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 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215
|
; Copyright (c) 1993-2008 by Richard Kelsey. See file COPYING.
(define-interface ps-primop-interface
(export get-prescheme-primop
(define-scheme-primop :syntax)
(define-polymorphic-scheme-primop :syntax)
(define-nonsimple-scheme-primop :syntax)
(define-scheme-cond-primop :syntax)
lshr))
(define-interface ps-c-primop-interface
(export simple-c-primop?
primop-generate-c
(define-c-generator :syntax)))
(define-interface ps-type-interface
(export ;type/int7u
;type/int8
;type/int8u
type/integer
type/unsigned-integer
type/float
type/char
type/address
type/null
type/unit
type/boolean
type/undetermined
type/input-port
type/output-port
type/unknown
type/string
other-type?
other-type-kind
other-type-subtypes
make-other-type
base-type?
base-type-name
base-type-uid
make-atomic-type
make-arrow-type
arrow-type?
arrow-type-result
arrow-type-args
make-pointer-type
pointer-type?
pointer-type-to
make-tuple-type
tuple-type?
tuple-type-types
record-type?
lookup-type
type-scheme?
schemify-type
instantiate-type-scheme
copy-type
type-scheme-type
make-nonpolymorphic!
type-scheme-free-uvars ; for error messages
; type-scheme-lattice-uvars
; type-scheme-type
type-eq?
; type>
; type>=
; lattice-type?
expand-type-spec
finalize-type
display-type
make-base-type-table
))
(define-interface type-variable-interface
(export make-uvar
make-tuple-uvar
uvar?
maybe-follow-uvar
uvar-source set-uvar-source!
reset-type-vars!
uvar-binding set-uvar-binding!
uvar-prefix
uvar-id
uvar-temp set-uvar-temp!
bind-uvar!
unique-id
))
(define-interface record-type-interface
(export reset-record-data!
all-record-types
get-record-type
record-type-name
record-type-fields
get-record-type-field
record-field-record-type
record-field-name
record-field-type))
(define-interface inference-interface
(export infer-definition-type
get-package-variable-type
get-variable-type
;add-type-coercions
node-type
lambda-node-return-type))
(define-interface inference-internal-interface
(export unify!
infer-type infer-types
check-arg-type
literal-value-type
))
(define-interface form-interface
(export make-form
form?
form-value
set-form-value!
form-value-type
set-form-value-type!
node-form
set-form-node!
set-form-integrate!
set-form-exported?!
form-node
form-var
form-exported?
form-type
set-form-type!
form-free set-form-free!
suspend-form-use!
use-this-form!
also-use-this-form!
set-form-lambdas!
form-lambdas
form-name
form-merge set-form-merge!
form-providers set-form-providers!
form-clients set-form-clients!
form-shadowed set-form-shadowed!
variable-set!? note-variable-set!!
make-form-unused!
variable->form
maybe-variable->form
; high level stuff
sort-forms
expand-and-simplify-form
remove-unreferenced-forms
integrate-stob-form
resimplify-form
))
(define-interface linking-interface
(export package-specs->packages+exports
package-source
define-prescheme!
prescheme-compiler-env
))
(define-interface c-internal-interface
(export c-assignment
indent-to
c-argument-var
form-tail-called?
*doing-tail-called-procedure?*
merged-procedure-reference
goto-protocol?
c-ify
c-value
form-value
form-name
form-c-name
form-type
c-assign-to-variable
write-c-identifier
write-value-list
write-value-list-with-extras
write-value+result-var-list
form-return-count
set-form-return-count!
simple-c-primop
c-variable
*current-merged-procedure*
*extra-tail-call-args*
write-c-block
write-c-coercion
no-value-node?
display-c-type
add-c-type-declaration!
note-jump-generated!
))
|