initial-packages.scm 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. ; Part of Scheme 48 1.9. See file COPYING for notices and license.
  2. ; Authors: Richard Kelsey, Jonathan Rees, Mike Sperber, Ivan Shmakov
  3. ; Packages involved in building the initial system.
  4. ; Access to values from packages and structures
  5. (define-structure environments environments-interface
  6. (open scheme-level-2
  7. packages bindings meta-types
  8. fluids cells
  9. locations ; contents location-assigned?
  10. exceptions) ; error
  11. (files (rts env)))
  12. ; EVAL and LOAD
  13. (define-structures ((evaluation evaluation-interface)
  14. (load-filenames load-filenames-interface))
  15. (open scheme-level-2
  16. packages ;package-uid package->environment link!
  17. environments ;package-for-load
  18. compiler-envs ;bind-source-filename
  19. reading-forms ;read-forms $note-file-package
  20. syntactic ;scan-forms expand-forms
  21. compiler ;compile-forms
  22. closures ;make-closure
  23. vm-exposure ;invoke-closure
  24. features ;current-noise-port force-output
  25. exceptions fluids cells)
  26. (files (rts eval)))
  27. ; Scheme = scheme-level-2 plus EVAL and friends
  28. (define-module (make-scheme environments evaluation)
  29. (define-structure scheme scheme-interface
  30. (open scheme-level-2
  31. environments
  32. evaluation))
  33. scheme)
  34. ; Command processor.
  35. (define-module (make-mini-command scheme) ;copied from debug-packages.scm
  36. (define-structure mini-command (export command-processor)
  37. (open scheme
  38. ascii byte-vectors os-strings
  39. writing methods
  40. conditions exceptions handle
  41. i/o) ;current-error-port
  42. (files (debug mini-command)
  43. (env dispcond))) ; avoid having to include this generally
  44. mini-command)
  45. ; For building systems.
  46. (define-module (make-initial-system scheme command)
  47. (define-structure initial-system (export start)
  48. (open scheme
  49. command
  50. interfaces ;make-simple-interface
  51. packages ;make-simple-package
  52. environments ;with-interaction-environment, etc.
  53. usual-resumer)
  54. (files (env start)))
  55. initial-system)
  56. ; Utility to load packages following dependency links (OPEN and ACCESS)
  57. ;Cf. (link-initial-system) and Makefile
  58. (define-structure ensures-loaded (export ensure-loaded)
  59. (open scheme-level-2
  60. features ;current-noise-port
  61. packages ;package-uid package-clients
  62. packages-internal ;package-loaded? set-package-loaded?!
  63. scan-package ;collect-packages check-structure
  64. compile-packages ;compile-package
  65. closures ;make-closure
  66. vm-exposure ;invoke-closure
  67. environments ;with-interaction-environment
  68. weak ;walk-population
  69. )
  70. (files (env load-package)))
  71. ; Things needed by the expression generated by REIFY-STRUCTURES.
  72. (define-structure for-reification for-reification-interface
  73. (open scheme-level-1
  74. packages packages-internal
  75. exceptions
  76. meta-types ;sexp->type structure-type
  77. interfaces ;make-simple-interface
  78. bindings
  79. nodes ;get-operator operator? operator-type
  80. primops ;get-primop primop? primop-type
  81. usual-macros ;usual-transform
  82. inline ;inline-transform
  83. transforms ;make-transform/xxx transform? transform-type
  84. tables)
  85. (files (bcomp for-reify)))