Project wish list

Jeffrey Hobbs wrote in comp.lang.tcl on 2002-02-15:

So how can people help out? Well, I have many partly formed ideas that I would be glad to pass on to interested parties. It would be nice if those in academia could interest a student or three to work on interesting projects in the core. I guarantee you I can find projects of interesting enough research value for their time.

Do you like compilers, GUI, IO, algorithms, automata theory, OS internals, or ??? I guarantee you, you name me a preference, and I'll return at least 3 projects or merit. Let me just give some morsels:

Compiler: (a specialty of MS at the moment)

  • Simple post-pass optimization (making things like if 0 completely disappear)
  • Byte-compiling of more commands (switch, l*, ...) - Jazz it up by better reusing code between eval'ed and bc'ed variants (this isn't so great now)
  • Reorganization of TclExecuteByteCode for enhanced performance (this really will require thinking)
  • Place more variables into the local var table.
  • Get better information about tracing, eventually dynamically and use this to optimize the code, eventually even shedding temporary variables and using only the stack.

GUI: oh, this list would go on forever

  • themeing
  • enhanced native platform capability
  • work on TkGS
  • more widgets
  • a truly efficient megawidget system
  • improve embedding / embedability
  • ...

IO:

  • design / write cool VFS extensions (webdav, for example)
  • special path optimizations for simple IO cases
  • core UDP support (that means fileevent and all that works too)

algorithms: this is basically looking at whatever algs Tcl uses, and seeing what might get improved

  • hash table performance
  • UTF <> Unicode handling
  • ...

automata theory:

  • this would be the regexp engine (maniacal laugh) -- the engine tends to allocate and free a lot many small chunks of memory on the fly (could be improved), and has no support for backwards matching of regexps in a string.

OS internals:

  • loading DLLs from memory, see loading from memory
  • core DLL function caller (x-platform)
  • threading tweaks
  • improved allocators

I could get into fine detail on any of the points. Look at all those fun projects! What I would give to be a student again. Find a couple bored friends. Have a semester long hack fest.