link-packages.scm 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. ; Part of Scheme 48 1.9. See file COPYING for notices and license.
  2. ; Authors: Richard Kelsey, Jonathan Rees, Mike Sperber, Marcus Crestani
  3. ; Static linker. Doesn't work very well this way (debug info is
  4. ; screwed up), so it's probably better to continue using linker.image
  5. ; instead.
  6. (define-structure linker linker-interface
  7. (open scheme-level-2
  8. compiler write-images
  9. platform
  10. debuginfo
  11. segments ;with-fresh-compiler-state
  12. packages
  13. packages-internal ;set-package-integrate?!
  14. names ;name->symbol
  15. scan-package ;collect-packages
  16. compile-packages ;compile-package
  17. reification
  18. closures ;make closure to pass to write-image
  19. filenames
  20. debug-data ;with-fresh-compiler-state
  21. locations
  22. tables fluids exceptions util)
  23. (files (link link)))
  24. (define-structure reification (export reify-structures)
  25. (open scheme-level-2
  26. packages
  27. packages-internal ;?
  28. usual-macros ;find-free-names-in-syntax-rules
  29. names bindings
  30. meta-types ;usual-variable-type
  31. locations
  32. primops
  33. tables records
  34. exceptions ;error
  35. features ;force-output
  36. util ;filter
  37. inline) ;name->extrinsic
  38. (files (link reify)))
  39. ; Database of procedure names 'n' stuff.
  40. ; (copy in env-packages.scm ...)
  41. (define-structure debuginfo debuginfo-interface
  42. (open scheme-level-2
  43. tables
  44. debug-data
  45. packages
  46. packages-internal
  47. syntactic
  48. segments ;debug-data-table
  49. features) ;make-immutable!
  50. (files (env debuginfo)))
  51. ; Mumble.
  52. (define-structure flatloading (export flatload all-file-names)
  53. (open scheme packages packages-internal filenames)
  54. (files (env flatload)))
  55. (define-structure loadc (export load-configuration
  56. ;; (structure-ref :syntax)
  57. )
  58. (open scheme
  59. environments ; *structure-ref
  60. syntactic ; $source-file-name
  61. fluids)
  62. (files (link loadc)))
  63. ; Everything.
  64. (define-structure link-config (export ) ;dummy structure...
  65. (open scheme-level-2
  66. linker
  67. names ; name?
  68. syntax-rules-apply
  69. defpackage
  70. types
  71. analysis
  72. loadc
  73. flatloading
  74. interfaces
  75. exceptions) ;warning
  76. ;; (files (alt init-defpackage.scm)) -- or (env ...), depending
  77. )