-$Id: TODO,v 1.2 1995/08/28 13:29:07 adams Exp $
+$Id: TODO,v 1.3 1996/03/12 17:13:42 adams Exp $
Problems:
[] Why is the new code not more than 12% faster than the old code?
-[] Move split earlier, to after applicat.
+[DONE] Move split earlier, to after applicat.
[] Make split introduce closures with no code pointer as tuples.
than having to test a wierd combination of the form, name and type
slots.
-[] Figure out a way to get some debugging information (even just an
-expression) into the `local' continuations. Getting an environment is
-harder but worth-while.
+[] Dataflow does not have to keep the transitive closure. This could
+save lots of space.
+
+
+[PARTLY DONE] Figure out a way to get some debugging information (even
+just an expression) into the `local' continuations. Getting an
+environment is harder but worth-while.
[] Fix lamlift, split and friends to maintain alpha-conversion wrt
extra stubs.
Prescan the whole program to see if a letrec label is used in a
%make-trivial-closure.
+
[] RTLGEN.
RTLGEN should be rewritten in the following way to generate better
[] Implement checked primitive procedures. This requires a preserving
call to arbitrary primitives and debugging info for preservations.
-
+PARTLY DONE -- type based rewriting replaces primitives with unchecked
+versions if possible.
Implementation strategies
-[] Make all variables in the source code be represented by structures
-to allow instant lookup. Requires strict alpha conversion.
+[UNLIKELY] Make all variables in the source code be represented by
+structures to allow instant lookup. Requires strict alpha conversion.
Extra functionality
make up for RTL's lack of boolean `registers'. An open-coder for MEMQ
in predicate position might be helpful.
-[] Make SF integrate more procedures as
+[DONE] Make SF integrate more procedures as
(access <name> system-global-environment)
Include anything from R4RS that we can improve.
-[] Make the unsyntaxer hide all the `spurrious' accesses introduced
-above. There should be a flag which when set, elides the access
-provided that the <name> would not be captured.
+[DONE] Make the unsyntaxer hide all the `spurrious' accesses
+introduced above. There should be a flag which when set, elides the
+access provided that the <name> would not be captured.