|
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: ┃ R T ┃
Length: 4710 (0x1266) Types: TextFile Names: »Readme.vms«
└─⟦a0efdde77⟧ Bits:30001252 EUUGD11 Tape, 1987 Spring Conference Helsinki └─ ⟦this⟧ »EUUGD11/gnu-31mar87/scheme/Readme.vms«
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.