priorities

Stephen Weeks MLton@sourcelight.com
Wed, 5 Dec 2001 10:59:40 -0800


After some more thought and reading your emails, here's what I view as the
minimum necessary before the next release.

* limit check coalescing
* fix Henry's bug
* gmp3
* anonymous CVS access
* cvsweb

The only hard one here is limit check coalescing.  But I think it's
more important than the exceptions stuff because it's costing us so
much in compile time and code size.

Here's the next lower priority batch of stuff, which is likely to
happen soon.

* exceptions paper and strategies for implementing handlers
* known-case optimization
* rework object headers to allow large arrays

Here's the next lower priority batch of stuff, in no particular order.

* Int64
* array/vector flattening
* bounds check elimination
* calling SML from C
* front end
* hacker guide
* overflow detection elimination
* stuff to help Anoq with the crosscompiler

> All fine.  I take it you want to be able to publicize the public CVS
> access in the next release.

Yes.  Clearly from the length of todo list, we still need to attract
more hackers.  (Neal? :-)

> > * rework object headers to allow large arrays
>
> This is reworking the bits and the gc?  So, that shouldn't be to bad.
> Also, keep in mind that we have the mod 8 alignment "bit" that we
> eventually want to use to speed up floating point.

I agree, it should be pretty easy to do just those changes.  It seems
easy enough to add the alignment bit (29) without affecting anything.
Here's the new proposal.

Header word
              al mark 
        31 30 29 28   27 -- 0
normal   1  0         number of pointers, number of words of nonpointers
stack    1  1         unused
array	 0  0	      number of pointers, number of bytes of nonpointers

Length word
        31
         0


> BTW: do we have any applications in the benchmark
> suite that use the threads?

No.  For now, all our benchmarks are written in SML using the basis
library, and thus there are no threads available.  But, it would be
nice to have a facility for MLton-specific benchmarks and include at
least a simple thread-switch benchmark (as in
doc/examples/thread-switch.sml).