* can be done in 2.0

** bring WikiWorks back to life (done)

** fix all the ANSI test suite failures (done)

** implement FloatE/FloatQ (done)

** implement non-local returns (done)

** port some software (TGen? Refactoring Browser? XSL?)


* planned for 2.1

** port more software

** finish VFS

** write SIF file-in

** almost definitely we must do some of the VM tasks below


* maybe in 2.2?

** use VFS to (re)implement packages 

** port more software

** Of course, every kind of black magic could be done in the JIT....


----------------------------------------------------------------------

* VM

** Improve the memory manager.  The current one works, but it's not so
cunning and does not scale at all when there are many small objects.
We really should use multiple heaps each with its own OOP table,
and/or use memory locks to implement write barriers for a true
generational GC

** 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. (some broken code is there, we should really
use SSA...)


* Blox

** Use 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),
and the bindings are partly done.


* other goodies

** follow the implementation lines of compiler/STLoader.st to implement
SIF file-in.  Easily done.

** implement a better packaging system allowing zipped source files with
XML package descriptions to be delivered and installed.  Investigate
using fastjar from gcc, and extending the current Virtual File System
infrastructure.

** make the smalltalk cpp work - nothing less, nothing more ;-)

** integrate VisualWorks' XSL processor (needs an XPath parser).

** print entities correctly in the URIResolver.  A file named abc&def
should print abc&amp;def in the file list.


* emacs mode

** it is actually very limited.  Nowhere near the Blox browser.  Is
it worthwhile to keep it?

** 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,
instead 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
