On the agenda:

1.95
    * decently working JIT for x86 (done, there are bugs in the GC)
    * libtoolize it (done)
    * work under 64-bit architectures (done)

1.96
    * working i18n (mostly done, have to test LcCollate and MBCS)
    * finish TCP (mostly done, have to test out-of-band data, ICMP and UDP)
    * JIT must be able to run the browser

1.97
    * installation of locale data files
    * documentation for Blox and TCP
    * working type inferencing engine

1.98

    * working JIT for SPARC & PPC (GNU lightning)
    * maybe: CORBA module (i.e. GNU Smalltalk linked to the GNOME goad)?

1.99
    * test everything more thoroughly

Let's go!

-----

more things to do somewhen...

speed

* Lookup some better GCD algorithm for LargeIntegers...

* Improve the memory manager.  The current one is effective, but not at
  all cunning.  I'm thinking of always allocating large objects in
  FixedSpace (since object are large, they wouldn't fragment the heap
  that much).

* Annotate the CodeTree with possible ranges of integer values
  (getting clues by ifTrue/ifFalse's, assignments, and maybe
  adding/subtracting values with known ranges).  This should allow
  one to know for sure when overflow cannot happen and to propagate
  TREE_IS_INTEGER flags. (planned for 1.97)

-----

blox

* Bind to GTK.  Maybe with a --enable-blox={tk,gtk} configure option
  so that the work made to date is not wasted.  Prefer GTK under Unix,
  Tk under Windows (more stable).  Use libgnomeui for the canvas
  widget.  A little has been done to make geometry management compatible
  with GTK (Alignments can be used to obtain rubber-sheet geometry
  management).

-----

porting

* Check on more Unices.  Solaris has been fixed, should check Compaq Unix at
  least.

-----

smalltalk cpp:

* make it work - nothing less, nothing more ;-)

-----

emacs mode:

* make it work again

here are some notes from Steve Byrne

* fix $. to be handled specially -- indenter gets confused on 
   ch == $.
      <here>ifTrue: 

* fix emacs mode so when a compile error occurs, it can be scanned ala C-x`

* doesn't align right -- the indicated line is much too far over to the left.

    self computeTypeString: elementType block: 
	[ :size :alignment 
	  :typeString | aBlock value: size * numElts
			       value: alignment
			       value: '(CArrayCType baseType: CArray ',
--> 	                             'subType: ', typeString,


* block parameter indenting in .el should align parameters better.

* emacs isearch c-u c-s should search for a string anchored at the start of a
  line, to help finding method definitions.

* quitting smalltalk subprocess 1) doesn't scroll necessarily (it should) 2)
  doesn't cause a new directory to be associatged with the buffer when
  it runs the first time (it should, doing a filein from a random context
  is a bad thing).

* fix monitoring so that it works across immediate expression boundaries
  (currently, around each call to yylex it gets turned on and off, isntead
  of being restored to its old state.)

* this code, without the dot after blue, causes * scalar to indent wrong.

  - otherRGB
       ^RGB red: red - otherRBG red
	    green: green - otherRGB green
	    blue: blue - otherRGB blue.
  !

  * scalar
