1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- ; Part of Scheme 48 1.9. See file COPYING for notices and license.
- ; Authors: Richard Kelsey, Jonathan Rees
- ; Script to load the Scheme 48 linker into Common Lisp.
- ; Requires Pseudoscheme 2.11.
- (defvar pseudoscheme-directory "../pseudo/")
- (load (concatenate 'string pseudoscheme-directory "loadit.lisp"))
- ; or perhaps (load (merge-pathnames "loadit.lisp" pseudoscheme-directory))
- (load-pseudoscheme pseudoscheme-directory)
- (progn (revised^4-scheme::define-sharp-macro #\.
- #'(lambda (c port)
- (read-char port)
- (eval (let ((*readtable* ps::scheme-readtable))
- (read port)))))
- (values))
- (ps:scheme)
- ;--------------------
- ; Scheme forms
- (benchmark-mode)
- (define config-env ; (interaction-environment) would also work here.
- (#.'scheme-translator:make-program-env
- '%config
- (list #.'scheme-translator:revised^4-scheme-structure)))
- (load "bcomp/module-language" config-env)
- (load "alt/config" config-env)
- (load "env/flatload" config-env)
- (eval '(set! *load-file-type* #f) config-env)
- (define load-config
- (let ((load-config (eval 'load-configuration config-env)))
- (lambda (filename)
- (load-config filename config-env))))
- (load-config "packages")
- (define flatload-package (eval 'flatload config-env))
- (flatload-package (eval 'linker-structures config-env) config-env)
- (let ((#.'clever-load:*compile-if-necessary-p* #t))
- (let ((#.'ps:*scheme-read* #.'#'ps::scheme-read-using-commonlisp-reader))
- (load "alt/pseudoscheme-record")
- (load "alt/pseudoscheme-features")))
- (let ((#.'clever-load:*compile-if-necessary-p* #t))
- (flatload-package (eval 'link-config config-env)))
- (load "alt/init-defpackage.scm")
- (define-syntax struct-list ;not in link.sbin
- (syntax-rules ()
- ((struct-list ?name ...) (list (cons '?name ?name) ...))))
- ;--------------------
- (quit)
- #+Lucid
- (defun disksave-restart-function ()
- (format t "~&Scheme 48 linker.~2%")
- ;; (hax:init-interrupt-delivery) - for threads
- (ps:scheme)
- (terpri))
- #+Lucid
- (defun dump-linker ()
- (lcl:disksave "link/linker-in-lucid" :gc t :full-gc t :verbose t
- :restart-function #'disksave-restart-function))
- ;(dump-linker)
- ;(lcl:quit)
- ; Debugging hacks
- ;(defun enable-lisp-packages ()
- ; (setq *readtable* ps:scheme-readtable)
- ; (values))
- ;(defun disable-lisp-packages ()
- ; (setq *readtable* ps::roadblock-readtable)
- ; (values))
|