File: comp-packages.scm

package info (click to toggle)
scsh 0.5.1-2
  • links: PTS
  • area: non-free
  • in suites: potato, slink
  • size: 6,540 kB
  • ctags: 8,656
  • sloc: lisp: 39,346; ansic: 13,466; sh: 1,669; makefile: 624
file content (160 lines) | stat: -rw-r--r-- 3,925 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
; Copyright (c) 1993, 1994 Richard Kelsey and Jonathan Rees.  See file COPYING.


; Package definitions for byte-code compiler and initial image.


; Two basic structures needed to support the compiler.

(define-structure tables general-tables-interface
  (open scheme-level-1
	bummed-define-record-types
	signals
	features)    ; string-hash, make-immutable!
  (files (big general-table))
  (optimize auto-integrate))

(define-structure filenames filenames-interface
  (open scheme-level-1 signals)
  (files (big filename)))


; Type system

(define-structure meta-types meta-types-interface
  (open scheme-level-2
	bummed-define-record-types tables bitwise
	features ;make-immutable!
	util signals)
  (files (bcomp mtype))
  (optimize auto-integrate))

(define-structure interfaces interfaces-interface
  (open scheme-level-2 syntactic meta-types
	signals bummed-define-record-types tables
	weak)
  (files (bcomp interface))
  (optimize auto-integrate))


; Transforms and operators

(define-structure syntactic
    (compound-interface syntactic-interface
			nodes-interface)
  (open scheme-level-2 meta-types
	signals bummed-define-record-types tables fluids
	features		;make-immutable!
	;; locations		;location?
	)
  (files (bcomp syntax)
	 (bcomp schemify))
  (optimize auto-integrate))

(define-structure usual-macros usual-macros-interface
  (open scheme-level-2
	syntactic	;name?, $source-file-name
	fluids		;used in definition of %file-name%
	tables signals)
  (files (bcomp usual)
	 (bcomp rules)))

(define-structure reconstruction (export node-type reconstruct-type)
  (open scheme-level-2
	syntactic meta-types
	util		; last
	signals)
  (files (bcomp recon)))


; Package system

(define-structures ((packages packages-interface)
		    (packages-internal packages-internal-interface))
  (open scheme-level-2 syntactic meta-types interfaces
	signals bummed-define-record-types tables fluids
	util features locations weak)
  (files (bcomp package))
  (optimize auto-integrate))

(define-structure scan scan-interface
  (open scheme-level-2
	packages syntactic
	usual-macros		; for dealing with (usual-transforms ...)
	meta-types
	packages-internal
	signals fluids tables util
	features		;force-output
	filenames)		;translate
  (files (bcomp scan)
	 (bcomp undefined))
  (optimize auto-integrate))

; Compiler back end

(define-structures ((segments segments-interface)
		    (debug-data debug-data-interface))
  (open scheme-level-2 code-vectors templates
	syntactic
	architecture
	bummed-define-record-types
	features  ;make-immutable!
	records util tables fluids signals)
  (files (bcomp segment)
	 (bcomp state)
	 (bcomp ddata))
  (optimize auto-integrate))

; Byte-code compiler

(define-structure compiler compiler-interface
  (open scheme-level-2 syntactic scan meta-types
	architecture
	packages
	packages-internal       ;only for structure-package ?
	interfaces		;interface-ref
	locations		;make-undefined-location
	reconstruction
	segments
	signals
	tables
	enumerated		;enumerand->name
	util			;reduce
	fluids 
	features)		;force-output
  (files (bcomp comp)
	 (bcomp cprim)
	 (bcomp ctop))
  (optimize auto-integrate))

; DEFINE-STRUCTURE and friends

(define-structure defpackage defpackage-interface
  (open scheme-level-2
	packages syntactic usual-macros types
	interfaces
	source-file-names	;%file-name%
	signals			;error
	tables)
  (for-syntax (open scheme-level-2 signals))     ;syntax-error
  (files (bcomp module-language)
	 (bcomp config)))

(define-structure types types-interface  ;Typing language
  (open scheme-level-2 meta-types syntactic loopholes)
  (files (bcomp type))
  ;; (optimize auto-integrate)  - doesn't work
  )

(define-structure module-system (compound-interface defpackage-interface
						    types-interface)
  (open defpackage types))

; Static linker

(define-structure inline inline-interface
  (open scheme-level-2
	syntactic
	packages
	signals)
  (files (opt inline)))