home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Frozen Fish 1: Amiga
/
FrozenFish-Apr94.iso
/
bbs
/
alib
/
d1xx
/
d149
/
scheme.lha
/
Scheme
/
plans.doc
< prev
next >
Wrap
Text File
|
1987-06-15
|
3KB
|
85 lines
===========================
FUTURE PLANS FOR THE SYSTEM
===========================
Scheme
Version 1.2
19-March-1988
TOPICS
------
NUMBERS
DUMP-OBJ
COMPILER
INTERFACES
================================================================================
NUMBERS
-------
I hope to extend the number system soon. Bignums and rational numbers are
high priority on my list. However, floating point numbers will eventually
be needed; they are probably the best way to implement transcendental
functions.
The hardest part (or at least the part I'm the least enthused about) is the
number <-> string conversion functions. These will be tough.
================================================================================
DUMP-OBJ
--------
Something I'm quite excited about implementing is a dump-obj function. This
would dump some representation of a Scheme object and all of its associated
objects to a file. Later, this file could be loaded back into the system.
To save the entire system, you would just do (dump-obj (the-environment))
from the top-level. This would allow you to save your own customized
versions of Scheme, without loading in a lot of initialization each time.
The process would be a lot like a garbage collection, except that addresses
would have to be marked in a relocation table, and things like symbols'
names would have to be noted as well. There are also some sticky issues,
like what does one do with open ports?
================================================================================
COMPILER
--------
There are provisions for compiled functions in the interpreter. In fact, I
have code (sans code generators) for a couple of compilers now. Some issues
are:
* How should relocation be handled so that compiled code will interact
well with things like dump-obj and the garbage collector?
* Should the compiler produce an intermediate file such as would be
produced by dump-obj?
================================================================================
INTERFACES
----------
It would be nice to provide external library interfaces through functions
packaged in their own environments. For example, you could load the
AmigaDOS environment and then access functions out of that environment.
There are some problems, though. I don't think it would be a great idea
to start adding a bunch of new object types into the system; it makes
garbage colletion and dump-obj? harder than ever.
Another possibility is to provide interface through AmigaDOS handlers. Then
system interfaces could be gained through the existing filesystem interface.
(How about a GFX: handler?) But, there are probably some things that
just wouldn't work well as handlers.