* 2.2

** use intptr_t instead of long for SmallIntegers.  In general,
use stdint.h/inttypes.h way more widely (with an automatically
generated one, perusing Autoconf). (done)

** use libffi to fix bugs in C call-outs (done)

** remove logging and -s (done)

** new bytecode set! (done)

** shared library (done)

** some kind of sandboxing (partly done)

** Java support (partly done)

** deprecate SMALLTALK_IMAGE and SMALLTALK_KERNEL in favor of
two new options, --image-directory and --kernel-directory
(harder than it looks)

** fix debugging of JITted code (boring)

** fix bitrot in JITter

* sometime

** add check in/check out to the browser so that .st files remain
in sync.  Maybe with CVS support (see Smalltalk/X).

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

** implement SmallScript file-in?

** port more software (Ref. Browser?)

** use VFS to (re)implement packages?


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

* code auditing

** check endian-cleanness of ByteStream's float and double I/O.
Possibly fix by mutuating code from the Java package.

* VM

** create combined pop/push and store/pop tree codes in the JIT
compiler.  They're still there from the old bytecode set and they
should improve performance by ~5%.

** Fix some copy & paste redundancies in comp.c (the small iteration
to find out the length of loops) and opt.c (basic block creation in
the verifier).

** Use multiple malloc-ed areas for the OOP table, and make heap.c
only an implementation detail of alloc.c (not really necessary
anymore with MAP_NORESERVE, and quite complicated)

** Implement polymorphic inline caching


* Blox

** Use GTK.  Might or might not use libgnomeui for the canvas
widget.  There is already a custom geometry manager compatible
with Tk's placer.

** Clean up the browser's code

*** remove stray sends of #initialize.  A good project to learn
about the reflection system (e.g. identify initializations from
outside #new and so on).

*** simplify UI creation (too many panes!)


* other

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

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

** interface DLD with C++ demangler (easy).

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

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

** support IPv6.  Not hard to do.


* emacs mode

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

** 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`

** sometimes it locks up!

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