$Id$ Interpreter kernel o Documentation strings. Put them into an extra field in S_Compound. New primitives: procedure-documentation, macro-documentation. o It should not matter to an extension writer whether a primitive is written in Scheme or in C -- primitives should not be invoked directly via the P_ functions. Instead, a more general mechanism is needed. o include/misc.h: Reader_Tweak_Stream() should call Primitive_Error() if ferror() is true. o Implement a pure heap for constant objects (should be placed into read-only text segment by "dump"). o Generic print, equal, etc. functions should be provided for extensions. o Treat # as comment character if file starts with #! (hard to implement, as this requires the reader to detect beginning of line). o map and for-each should also work for other data structures (such as vectors). o Dump for NEXT-OS/MACH. Extensions o Motif: add support for new widgets and new functions. o A socket/networking extension. o A UNIX process interface, like that in GNU Emacs. o A foreign function interface generator as described in the CFI's ``A Scheme-Based Extension Language Environment''. Projects o Symbol completion would be very useful (but hard to implement). o A reasonable debugger and a better trace facility are needed. o An interface to Tcl/Tk. o The error-handler should be invoked with a symbol identifying the error as an argument. The symbol has an error text property holding the full text. o Ports: the accessor functions should be part of the port object. o Hash tables. Need to be rehashed on each GC. Table object holds hash function, compare function, etc. o It should be possible to define new types in Scheme (not only in extensions). New primitive: define-type (similar to define-structure?).