123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539 |
- ; Copyright (c) 1993-2008 by Richard Kelsey and Jonathan Rees. See file COPYING.
- ; Meta-modules: the big picture.
- ; Various implementations of Primitive Scheme.
- (define-structure low-structures low-structures-interface
- (open meta-module-system the-interfaces)
- (files low-packages))
- (define-structure debug-low-structures low-structures-interface
- (open meta-module-system the-interfaces
- ;; built-in-structures
- )
- (files (alt low-packages)))
- ; Usual Scheme 48 run-time system.
- (define (make-run-time low-structures)
- (structures (run-time-structures-interface
- run-time-internals-structures-interface
- features-structures-interface)
- (open meta-module-system the-interfaces
- low-structures)
- (files rts-packages)))
- ; Alternatives to the usual Scheme 48 run-time system.
- (define-structure alt-features-structures features-structures-interface
- (open meta-module-system the-interfaces)
- (files (alt features-packages)))
- (define-structure cheat-features-structures features-structures-interface
- (open meta-module-system the-interfaces)
- (begin (define-structures ((ascii ascii-interface)
- (bitwise bitwise-interface)
- (code-vectors code-vectors-interface)
- (features features-interface)
- (records records-interface)
- (record-types record-types-interface)
- (simple-signals signals-interface))
- ;; Assumes use of FLATLOAD. The implementations of these
- ;; structures will become available via some miracle, e.g.
- ;; a command ",open simple-signals ... code-vectors" or an
- ;; explicit LOAD of something. Cf. the rule for
- ;; link/linker.image in the Makefile.
- )))
- (define-module (make-alt-run-time features-structures)
- (structures (low-structures-interface
- run-time-structures-interface)
- (open meta-module-system the-interfaces
- features-structures)
- (files alt-packages
- (alt low-packages))))
- ; Byte-code compiler and related things.
- (define-module (make-compiler-structures run-time-structures
- features-structures)
- (define-structure compiler-structures compiler-structures-interface
- (open meta-module-system the-interfaces
- run-time-structures
- features-structures)
- (files comp-packages))
- compiler-structures)
- ; The initial system (initial.image). Cf. the rule for initial.image
- ; in the Makefile.
- (define (make-initial-structures low-structures
- run-time-structures
- run-time-internals-structures
- features-structures
- compiler-structures)
- (structure initial-structures-interface
- (open meta-module-system the-interfaces
- low-structures ;Cf. desirable-structures
- run-time-structures
- features-structures
- run-time-internals-structures
- compiler-structures)
- (files initial-packages)))
- ; Small systems.
- (define-structure (make-debug-structures low-structures
- run-time-structures
- run-time-internals-structures
- features-structures
- initial-structures)
- (structure debug-structures-interface
- (open meta-module-system the-interfaces
- low-structures
- run-time-structures
- run-time-internals-structures
- features-structures
- initial-structures)
- (files debug-packages)))
- ; Static linker.
- (define-module (make-linker-structures features-structures
- run-time-structures
- compiler-structures)
- (define-structure linker-structures linker-structures-interface
- (open meta-module-system the-interfaces
- features-structures
- run-time-structures
- compiler-structures)
- (files link-packages))
- linker-structures)
- ; The following definition of THE-INTERFACES assumes that we're
- ; "flatloading." If we were really using the module system, then its
- ; interface would have to include all of the interfaces defined in
- ; interfaces.scm, and it would need a (files interfaces) clause.
- (define-structure the-interfaces the-interfaces-interface
- (open )
- ;; (files interfaces)
- )
- (define-interface the-interfaces-interface
- (export scheme-level-0-interface
- primitives-interface
- ;; ... etc. etc. ad nauseum
- for-reification-interface))
- ; This definition of META-MODULE-SYSTEM assumes that we're flatloading.
- ; If we weren't, it would have to be
- ; (def meta-module-system module-system)
- ; instead.
- (define-structure meta-module-system (export ) (open )) ;Kludge
- ; --------------------
- ; Particular assemblies:
- ; The usual run-time system (for initial.image, etc.).
- (def run-time-structures run-time-internals-structures features-structures
- (make-run-time low-structures))
- ; The byte-code compiler as constituted for initial.image and friends.
- (def compiler-structures
- (make-compiler-structures run-time-structures
- features-structures))
- ; The initial system made in the usual way.
- (def initial-structures
- (make-initial-structures low-structures
- run-time-structures
- run-time-internals-structures
- features-structures
- compiler-structures))
- ; Debug systems.
- (def debug-structures
- (make-debug-structures low-structures
- run-time-structures
- run-time-internals-structures
- features-structures
- initial-structures))
- ; The usual development environment (scheme48.image).
- (define-structure usual-structures (export (usual-features :structure))
- (open meta-module-system
- run-time-structures
- compiler-structures
- initial-structures
- (make-linker-structures features-structures
- run-time-structures
- compiler-structures))
- (files ;; more-interfaces, when not flatloading
- env-packages
- ;; (sort interfaces), when not flatloading
- (sort packages)
- more-packages))
- ; The linker running in a random Scheme system (Lucid, Scheme->C, or
- ; old version of Scheme 48). If running in Scheme 48, this becomes
- ; link/linker.image.
- (def alt-low-structures alt-run-time-structures
- (make-alt-run-time cheat-features-structures))
- (def linker-structures
- (make-linker-structures cheat-features-structures
- alt-run-time-structures
- (make-compiler-structures cheat-features-structures
- alt-run-time-structures)))
- ; --------------------
- ; Meta-interfaces.
- ; These are ignored by FLATLOAD, but DESIRABLE-STRUCTURES (in
- ; initial.scm) extracts the list of structures to be reified from
- ; them.
- (define-interface features-structures-interface
- (export ((ascii
- bitwise
- code-vectors
- features
- records
- simple-signals)
- :structure)))
- (define-interface low-structures-interface
- (export ((all-operators
- ascii
- bitwise
- byte-vectors
- cells
- code-vectors
- features
- records
- simple-signals
- cells
- channels
- closures
- code-quote
- escapes
- locations
- loopholes
- low-level
- ports
- primitives
- low-proposals
- scheme-level-0
- shared-bindings
- silly
- source-file-names
- structure-refs
- debug-messages
- unicode
- vm-exposure
- write-images)
- :structure)))
- (define-interface run-time-structures-interface
- (export ((architecture
- channel-i/o
- condvars
- define-record-types
- encodings
- enum-case
- enumerated
- fluids
- os-strings
- proposals
- queues
- record-types
- scheduler
- scheme-level-1
- scheme-level-2
- set-text-procedures
- templates
- text-codecs
- threads
- util
- vm-data
- weak)
- :structure)))
- (define-interface run-time-internals-structures-interface
- (export ((channel-ports
- simple-conditions
- continuations
- ;; escapes
- exceptions
- exceptions-internal
- fluids-internal
- handle
- i/o
- i/o-internal
- methods
- meta-methods
- interrupts
- external-events
- low-level
- more-types
- number-i/o
- ;; primitives
- reading
- records-internal
- root-scheduler
- session-data
- threads-internal
- vm-exceptions
- usual-resumer
- ;; silly
- ;; structure-refs
- ;; vm-exposure
- wind
- writing)
- :structure)))
-
- (define-interface compiler-structures-interface
- (export ((analysis
- bc-generation
- bindings
- compiler
- compiler-envs
- compile-packages
- debug-data
- debug-data-internal
- defpackage
- filenames
- flat-environments
- frames
- inline
- meta-types
- interfaces
- module-system
- names
- nodes
- optimizer
- packages
- packages-internal
- primops
- reading-forms
- reconstruction
- segments
- scan-package
- syntactic
- strong
- tables
- transforms
- types
- undefined
- usual-macros)
- :structure)))
- (define-interface initial-structures-interface
- (export ((environments
- evaluation
- ensures-loaded
- ;; for-reification is in there, but shouldn't get reified.
- )
- :structure)
- ((make-scheme
- make-mini-command
- make-initial-system)
- :procedure)))
- ; Initial + usual (scheme48.image).
- (define-interface linker-structures-interface
- (export ((analysis
- debuginfo
- expander
- flatloading
- linker
- link-config
- loadc
- reification
- usages)
- :structure)))
- (define debug-structures-interface
- (export ((mini-eval
- mini-environments
- mini-scheme
- little-system
- mini-for-reification
- mini-packages
- mini-system
- run
- medium-scheme
- medium-system)
- :structure)
- mini-eval
- mini-environments))
- ; Must list all the packages defined in this file that are to be
- ; visible in the command processor's config package.
- (define-interface more-structures-interface
- (export ((more-structures
- usual-features
- arrays
- assembler
- assembling
- general-tables
- bigbit
- bignums ratnums recnums floatnums
- build
- callback
- command-levels
- command-processor
- command-state
- compact-tables
- conditions
- c-system-function
- debugging
- define-record-types
- defrecord
- destructuring
- disassembler
- disclosers
- display-conditions
- dump/restore
- dynamic-externals
- enum-case
- enum-sets
- extended-numbers
- extended-ports
- externals
- external-calls
- finite-types
- floatnums
- formats
- i/o-conditions
- inspector
- inspector-internal
- inversion-lists
- list-interfaces
- load-dynamic-externals
- locks
- lu-decompositions
- masks
- mask-types
- mvlet
- nondeterminism
- package-commands-internal
- package-mutation
- parse-bytecode
- placeholders
- pp
- ;profile
- queues
- shared-objects
- time
- random
- receiving
- reduce
- search-trees
- signals
- sockets
- unicode-char-maps
- delete-neighbor-duplicates
- binary-searches
- sorted
- list-merge-sort
- vector-merge-sort
- vector-heap-sort
- vector-insertion-sort
- sorting
- sort
- sparse-vectors
- reinitializers
- spatial
- strong
- text-codec-utils
- traverse
- udp-sockets
- unicode-normalizations
- r6rs-unicode
- value-pipes
- variable-argument-lists
- big-scheme
- big-util
- ;; From link-packages.scm:
- analysis
- debuginfo
- expander
- flatloading
- linker
- link-config
- reification ;?
- shadowing
- ;; Compatibility
- record table
- ; CML packages (see scheme/cml/packages.scm)
- rendezvous
- rendezvous-channels
- rendezvous-async-channels
- rendezvous-placeholders
- rendezvous-jars
- rendezvous-time
- ; do-it-yourself
- make-rendezvous
- trans-ids
- ; POSIX packages (see scheme/posix/packages.scm)
- posix-files
- posix-time
- posix-users
- posix-process-data
- posix-processes
- posix-regexps
- posix-i/o
- regexps regexps-internal
- posix
- ; SRFI packages
- srfi-1 srfi-2 srfi-4 srfi-5 srfi-6 srfi-7 srfi-8 srfi-9
- srfi-11 srfi-13 srfi-14 srfi-16 srfi-17 srfi-19
- srfi-23 srfi-25 srfi-26 srfi-27 srfi-28
- srfi-31 srfi-34 srfi-35 srfi-36 srfi-37
- srfi-39 srfi-40 srfi-42 srfi-43 srfi-45
- srfi-60 srfi-61 srfi-63 srfi-66 srfi-67
- srfi-71 srfi-74 srfi-78
- test-suites
- )
- :structure)
- ((define-signature define-package) :syntax)))
|