[Ecls-list] HEADS UP!

Juan Jose Garcia Ripoll worm at arrakis.es
Tue Apr 8 08:20:05 UTC 2003


Hi,

I have almost finished the new implementation of SUBTYPEP, and intend to 
commit it to the CVS repository tomorrow afternoon. This implies severe 
changes on the system, and, even though the new implementation solves many 
errors (There will be now only about 700 failures in the GCL test-suite), 
there might pieces of ECL which still rely on old quirks.

So, I have tagged the CVS, as it is (with several fixes to the LOG* 
operations), as STABLE. Therefore,
++++++++
+++ Please notify before tomorrow afternoon any problem to build ECL!
++++++++
Weak hearts should stay with this release until otherwise stated.

As a side note, the new implementation is based on Henry Baker's paper 
(http://home.pipeline.com/~hbaker1/). However, I did not use separate tags 
for different type classes (arrays, intervals, classes, etc), but rather keep 
them together.

Furthermore, handling of intervals is a bit more clever: the basic element is 
the interval (REAL a *) (Where "A" may be *, an integer, or a list with one 
integer), and all other intervals are based on this:

INTEGER => (AND INTEGER (REAL * *))
(RATIO 2 3) => (AND RATIO (REAL 2 *) (NOT (REAL (3) *)))
(INTEGER 0 2) (AND INTEGER (REAL 0 *) (NOT (REAL 3 *)))
etc.

When facing a (SATISFIES whatever) or an unknown symbol, the algorithm simply 
gives up. There are NO OTHER situations in which the routine does not give a 
definitive answer. I will probably add a flag, so that the system may signal 
a correctable error when unknown type specifiers are found.

The best thing about having reimplemented SUBTYPEP is that now it is possible 
to do types intersections and type inference accurately, and the compiler 
will soon benefit from that!

Best regards

Juanjo





More information about the ecl-devel mailing list