scsh-0.6/scheme/initial-packages.scm

106 lines
2.8 KiB
Scheme

; Copyright (c) 1993-1999 by Richard Kelsey and Jonathan Rees. See file COPYING.
; Packages involved in building the initial system.
; Access to values from packages and structures
(define-structure environments environments-interface
(open scheme-level-2
packages bindings meta-types
fluids
locations ; contents location-assigned?
signals) ; error
(files (rts env)))
; EVAL and LOAD
(define-structure evaluation evaluation-interface
(open scheme-level-2
packages ;package-uid package->environment link!
environments ;package-for-load
compiler-envs ;bind-source-filename
reading-forms ;read-forms $note-file-package
syntactic ;scan-forms expand-forms
compiler ;compile-forms
closures ;make-closure
vm-exposure ;invoke-closure
features ;current-noise-port force-output
signals fluids)
(files (rts eval)))
; Scheme = scheme-level-2 plus EVAL and friends
(define-module (make-scheme environments evaluation)
(define-structure scheme scheme-interface
(open scheme-level-2
environments
evaluation))
scheme)
; Command processor.
(define-module (make-mini-command scheme) ;copied from debug-packages.scm
(define-structure mini-command (export command-processor)
(open scheme
signals conditions handle
display-conditions
i/o) ;current-error-port
(files (debug mini-command)))
mini-command)
; For building systems.
(define-module (make-initial-system scheme command)
(define-structure initial-system (export start)
(open scheme
command
interfaces ;make-simple-interface
packages ;make-simple-package
environments ;with-interaction-environment, etc.
usual-resumer
conditions handle ;error? with-handler
signals) ;error
(files (env start)))
initial-system)
; Utility to load packages following dependency links (OPEN and ACCESS)
;Cf. (link-initial-system) and Makefile
(define-structure ensures-loaded (export ensure-loaded)
(open scheme-level-2
features ;current-noise-port
packages ;package-uid package-clients
packages-internal ;package-loaded? set-package-loaded?!
scan-package ;collect-packages check-structure
compile-packages ;compile-package
closures ;make-closure
vm-exposure ;invoke-closure
environments ;with-interaction-environment
weak ;walk-population
)
(files (env load-package)))
; Things needed by the expression generated by REIFY-STRUCTURES.
(define-structure for-reification for-reification-interface
(open scheme-level-1
packages packages-internal
signals
meta-types ;sexp->type structure-type
interfaces ;make-simple-interface
bindings
nodes ;get-operator operator? operator-type
primops ;get-primop primop? primop-type
usual-macros ;usual-transform
inline ;inline-transform
transforms ;make-transform transform? transform-type
tables)
(files (bcomp for-reify)))