|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - downloadIndex: ┃ T ┃
Length: 4613 (0x1205) Types: TextFile Names: »TO_DO«
└─⟦a0efdde77⟧ Bits:30001252 EUUGD11 Tape, 1987 Spring Conference Helsinki └─ ⟦this⟧ »EUUGD11/gnu-31mar87/scheme/TO_DO«
For Emacs: -*-Text-*- CScheme microcode changes and experiments: __________________________________________ Please add to this file as needed and write a comment with date and author when done. Simple changes: _______________ [rel4] Fix Stack_Top. It is currently the highest available location on the stack rather than first non available location. This would simplify a lot of things where extraneous ones are added and subtracted because of current convention. [] Control points should have a slot with the number of display slots in them. This involves also the appropriate runtime system change. *** We're not sure this should be done -- Jinx & Jim *** [] Collect code which appears explicitely in various places into procedures or macros. In particular, collect - lookup code in BASMOD and LOOKUP. [rel4] - GCloop and PurifyLoop in GCLOOP, which are almost identical. [] Add compilation of AUX variables through frame/offset. [] Fix bug under BSD4.2 by which if Scheme is proceeded in background and then forgrounded, interrupts are not updated. (Check whether SIGCONT is sent again when forgrounded). -- It isn't. I have no idea how to do this. -- Jinx [] Use CBREAK mode in BSD4.2 so that all interrupt characters are available. [] Command line option checking: if the command line arguments don't make sense, print a usage kind of message [JSM: Bad idea with butterfly and fetchparam to be considered]. Add also a help option. Extend the command line parser from Bintopsb and Psbtobin and use it instead of the crock in boot. Add keywords -cross -bare -student -normal, etc for "memorable" bands. Potentially always require -band or one of the above to have a band different from the default. Change -emacs into -editor since it can in principle work under other editors. [] Add -load command line option. This can be done by redirecting stdin until EOF. [rel4] The option has been added, but the feature not yet implemented. It needs changing all IO calls to use C variables rather than stdin, stdout, stderr explicitly. [] Fix ascii dependencies in string.c and elsewhere. [rel4] Support for init files (current directory primitive). On unix, prefix-volume returns the previous directory name. Thus (prefix-volume ".") can be used for this. [rel4] Timer interrupt [] Interrupt queues (vs. interrupt character). [] Make stack overflow checks occur only at apply time and other fixed places (throw, etc.) [rel4] Make Scheme strings have a \0 character at the end so that printing, etc, become faster. Note that all primitives must be made to maintain this convention. [rel3] Portable version of OS: unknown.c. No interrupts and mostly unimplemented primitives, but it should run anywhere. More difficult changes: _______________________ [rel3] Provide a dump-world primitive which makes an executable Scheme. [rel4] Reasonable emacs interface. Extension to GNU EMACS, and -emacs command line option to Scheme. Immediate IO is kludged (requires carriage return which is then discarded). [] Separate constant space and pure space. Reorganize memory so pure space can be shared on executable images. [] Rewrite bignum code so that in the portable case it does not depend on sizeof(long) = 2 * sizeof(unsigned short) . [rel4] Partly done by allowing it to use characters. Should be fixed to use larger number of digits and a single bit for sign. [] Complete garbage collect. To disk. [] Change primitives so they are C functions of one argument which is given to them by the interpreter. [rel3] Change primitives so that they do not usually need to pop frames, etc. The primitive-apply code in the interpreter pops the frame on return, and primitives do not remove things from the stack. Only primitives which are hooks into the interpreter (apply, scode-eval, catch, etc.) need to do something special, but these don't return normally since they jump-back to eval or something like that. Note that backing out and writing primitives becomes considerably simpler. [] Env-counter rack and environment frames on the stack. [rel3] Reorganize primitives and come up with a simple user-extensibility mechanism. [] Fix external primitive mechanism so that: 1) external names are re-interned when set-fixed-objects-vector is done (not easy), or everything is done at string level. 2) only the names referenced by a piece of code are dumped with it (rather than the whole vector). 3) Make all primitives use this mechanism and get rid of external type. Dream on: _________ [] Efficient byte-code interpreter. [] Compiler to C. [] Edwin (tied to compilation)