PDP-10 / its

Incompatible Timesharing System
Other
846 stars 80 forks source link

S48 - Scheme interpreter #770

Open larsbrinkhoff opened 6 years ago

larsbrinkhoff commented 6 years ago

AI: S48;
AI: X48;


; To start up a bare system, do (boot).
; Then you can load the world by doing (cold-load).
; Suspend an image by saying something like
;  (run-form '(dump "AI: X48; S48 SUS")).
larsbrinkhoff commented 6 years ago

Script used to load the VM:

    t
    (load '(s48/top t_load t))
    (load-s48)
    (scheme-reset)

Then the system could be bootstrapped with:

    (load '(s48/top boot_macros scm))
    (init)
    (cold-load)
    (run-form '(write-image "~temp/s48.image"))

or resumed with:

    (eval (resume "~temp/s48.image") s48-env)
larsbrinkhoff commented 6 years ago

Information from http://mumble.net/~jar/s48/

We developed under Common Lisp on the Symbolics 3600, as well as under Maclisp on the PDP-10, using various sets of macros that gave these Lisps a Scheme-like syntax. This was not 'incestuous' since the part of the system executed by the underlying Lisp (the virtual machine, or VM) was carefully written in such a way that it in principle it did not need a garbage collector, tail recursion, or other Lisp-specific apparatus; it was really a C or assembly-level program with Lisp syntax. Scheme 48's Lispy implementation language ('LIL' was the acronym used at MIT for this kind of thing in the 1970s) was later dubbed 'Pre-Scheme'.