Next on the agenda:

  * test Smalltalk in Smalltalk compiler more thoroughly
  * documentation for Blox and TCP

---

speed

* Lookup some better GCD algorithm for LargeInteger's in Knuth...

* Improve the memory manager.  The current one is effective, but not
  at all cunning.  I'm thinking of adding a LargeSpace.

---

stability

* Make the parser more stable to incorrect code

---

porting

* Port to Visual C++.  Its back-end is much better than GCC's Intel back-end
  (up to 30% faster than PGCC) so it might be worth the trouble even if MSVC
  has no && operator (which speeds up the interpreter quite a bit).  It might
  be useful to leverage some of the code in the GNU Emacs Win32 port.
  [is it still true with the forthcoming JIT which uses && heavily?]

* Port to Alpha.  It compiles cleanly (June 1999) but sigsegv as soon as the
  interpreter starts.

-----

smalltalk cpp:

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

-----

emacs mode:

* 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
