DataMuseum.dk

Presents historical artifacts from the history of:

DKUUG/EUUG Conference tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about DKUUG/EUUG Conference tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download
Index: ┃ R T

⟦4886235e2⟧ TextFile

    Length: 4710 (0x1266)
    Types: TextFile
    Names: »Readme.vms«

Derivation

└─⟦a0efdde77⟧ Bits:30001252 EUUGD11 Tape, 1987 Spring Conference Helsinki
    └─ ⟦this⟧ »EUUGD11/gnu-31mar87/scheme/Readme.vms« 

TextFile

Some information on the implementation of Scheme and where things are.
VMS version.

Scheme consists of two parts, the "microcode" and the runtime system:

- The microcode is the part implemented in C, and consists of the
virtual machine (interpreter) and the primitives plus support
routines.  

- The runtime system is written in Scheme and contains the
read-eval-print loop and some debugging and programming tools.  There
are many possible runtime systems and 3 are generated when Scheme is
installed.  The runtime systems generated are:

o The bare system, which contains only the support for the
read-eval-print loop.  It lives in bare.bin .

o The normal development system which is the one we (the development
group at MIT) use.  It lives in normal.bin .

o The student system which is used for MIT course 6.001 (Structure
and interpretation of Computer Programs, text by Abelson, Sussman,
and Sussman), a simpler to use but somewhat restricted version of the
development system.  It lives in scheme.bin and is the default.

To change the default to the development system just rename scheme.bin
to student.bin and normal.bin to scheme.bin.

Description of the Scheme directory:

*.c, *.h, *.obj (if present), and *.exe are the C sources and object
code for the microcode.

*.scm are the scheme sources for the runtime system.

*.bin are the binary ("fasloadable") versions of the *.scm files and
the generated runtime systems.  The release does not contain any
.bin files, but they are generated by the installation procedure from
the .psb files (below).

*.psb are the portable version of the scheme runtime binaries.  These
are the same as the *.bin files but in a portable format independent
of character set, machine word size, and more easily used over serial
lines.

The scheme directory also contains some utility programs.  The
bintopsb and psbtobin programs translate between psb format and bin
format.  Psbtobin, needed at system generation, can be invoked with
the psbtobin DCL macro.

Some Interesting mods

1) New primitives

a) Write C procedures which will work as Scheme primitives (see the
file prims.h for more information).  For an example see sample.c or
xdebug.c .

b) Run findprim on all the primitive files by typing
findprim -o USRDEF.C <file-names>

c) Edit vmsfull.com and vmslink.com to include the new files.

d) Compile the files by either typing @vmsfull (which will compile them
all), or just compile (using the DCL ccm macro) all the new files.

e) Link the new microcode by typing @vmslink.

f) Once the microcode has been generated (step b above), load up a
Scheme, where the primitives can be obtained by using
MAKE-PRIMITIVE-PROCEDURE:

(MAKE-PRIMITIVE-PROCEDURE <symbol>) will return a procedure object
corresponding to a primitive named <symbol>, if there is one.  It can
then be used like any other procedure.  For examples, see the file
sample.scm in the scm directory.

2) Executable scheme

When scheme starts up it loads a band (a "linked" runtime system is
called a band for historical reasons).  This may be an unreasonably
slow process, so you may want to circumvent it by dumping a Scheme
which has the runtime system already loaded.  

The mechanism implementing this uses unexec.c, a file from GNU-EMACS.
It is heavily conditionalized for various machines and operating
systems, but we have only tried it on two configurations (VAX/BSD 4.2,
and HP9000s300/HPUX).  It is very unlikely to work on VMS (or other
non-Unix operating system), but if you DO make it work, we'd love to
have your version to distribute with the next release.  If you have
GNU-EMACS on your machine, and it dumps an executable image, you
should be able to make this work.  Look at dumpworld.c and unexec.c.
It is implemented using the optional primitive mechanism (see 1
above).

Note: If you write primitives (or other modifications) that you feel
other people might be interested in, please send them to us so that we
can include them in a later release.

3) Scheme compiler

The compiler exists only for Vaxes running BSD4.2, is experimental,
very unreliable, and hard to use.  We will document how to generate a
system with it and how to use it when it stabilizes (next release,
hopefully).  We do not distribute this compiler as part of the
release.

For bug reports send computer mail to

BUG-CSCHEME%MIT-OZ@MIT-MC (on the Arpanet)

or US Snail to

Scheme Team
c/o Prof. Hal Abelson
545 Technology Sq. rm 410
Cambridge MA 02139

Other related mailing lists:

INFO-CSCHEME%MIT-OZ@MIT-MC
	Questions, notices of bug fixes, etc.
	Send mail to INFO-CSCHEME-REQUEST to be added.
SCHEME@MIT-MC
	Applications, mostly for educational uses.
	Send mail to SCHEME-REQUEST to be added.