6.4 Improvements To Make
- Allow users to set limits for
- Prefix and make more uniform all C function, variable, and constant
names. Provide a file full of #define's to provide backward
lgcd() needs to generate at most one bignum, but currently
divide() could use shifts instead of multiply and divide when
dumping an executable does not preserve ports. When
dumped executable, disk files could be reopened to the
same file and position as they had when the executable was dumped.
- Copying all of the stack is wasteful of storage. Any time a
call-with-current-continuation is called the stack could be re-rooted
with a frame which calls the contin just created. This in combination
with checking stack depth could also be used to allow stacks deeper
than 64K on the IBM PC.
- In the quest for speed, there has been some discussion about a "Forth"
style Scheme interpreter.
Provided there is still type code space available in SCM, if we devote
some of the IMCAR codes to "inlined" operations, we should get a
significant performance boost. What is eliminated is the having to look
ILOC and then dispatch on the subr type. The
IMCAR operation would be dispatched to directly. Another way to view
this is that we make available special form versions of
CDR, etc. Since the actual operation code is localized in the
interpreter, it is much easier than uncompilation and then recompilation
(trace car); For instance a switch gets set which tells
the interpreter to instead always look up the values of the associated
- Scott Schwartz <email@example.com> suggests: One way to
tidy up the dynamic loading stuff would be to grab the code from perl5.