87 lines
1.9 KiB
Scheme
87 lines
1.9 KiB
Scheme
; Copyright (c) 1993-1999 by Richard Kelsey and Jonathan Rees. See file COPYING.
|
|
|
|
|
|
; Static linker. Doesn't work very well this way (debug info is
|
|
; screwed up), so it's probably better to continue using linker.image
|
|
; instead.
|
|
|
|
(define-structure linker linker-interface
|
|
(open scheme-level-2
|
|
compiler write-images
|
|
debuginfo
|
|
segments ;with-fresh-compiler-state
|
|
packages
|
|
packages-internal ;set-package-integrate?!
|
|
names ;name->symbol
|
|
scan-package ;collect-packages
|
|
compile-packages ;compile-package
|
|
reification
|
|
closures ;make closure to pass to write-image
|
|
filenames
|
|
debug-data ;with-fresh-compiler-state
|
|
locations
|
|
tables fluids signals util)
|
|
(files (link link)))
|
|
|
|
(define-structure reification (export reify-structures)
|
|
(open scheme-level-2
|
|
packages
|
|
packages-internal ;?
|
|
usual-macros ;find-free-names-in-syntax-rules
|
|
names bindings
|
|
meta-types ;usual-variable-type
|
|
locations
|
|
primops
|
|
tables records
|
|
signals ;error
|
|
features ;force-output
|
|
util ;filter
|
|
inline) ;name->extrinsic
|
|
(files (link reify)))
|
|
|
|
; Database of procedure names 'n' stuff.
|
|
; (copy in more-packages.scm ...)
|
|
|
|
(define-structure debuginfo debuginfo-interface
|
|
(open scheme-level-2
|
|
tables
|
|
debug-data
|
|
packages
|
|
packages-internal
|
|
syntactic
|
|
segments ;debug-data-table
|
|
features) ;make-immutable!
|
|
(files (env debuginfo)))
|
|
|
|
|
|
; Mumble.
|
|
|
|
(define-structure flatloading (export flatload all-file-names)
|
|
(open scheme packages packages-internal filenames)
|
|
(files (env flatload)))
|
|
|
|
(define-structure loadc (export load-configuration
|
|
;; (structure-ref :syntax)
|
|
)
|
|
(open scheme
|
|
environments ; *structure-ref
|
|
syntactic ; $source-file-name
|
|
fluids)
|
|
(files (link loadc)))
|
|
|
|
|
|
; Everything.
|
|
|
|
(define-structure link-config (export ) ;dummy structure...
|
|
(open scheme-level-2
|
|
linker
|
|
defpackage
|
|
types
|
|
analysis
|
|
loadc
|
|
flatloading
|
|
interfaces
|
|
signals) ;warn
|
|
;; (files (alt init-defpackage.scm)) -- or (env ...), depending
|
|
)
|