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.