type->sexp was not capable of converting the variable type to a
sexp. This caused problems if the module system wanted to tell the
user that the types of exported bindings did not match:
config> (define-structure foo (export (bar :syntax)) (open scheme) (begin (define bar 1)))
; no values returned
config> ,user
> ,open foo
Error: exception
wrong-type-argument
(checked-record-ref '(variable #{Type :value #f #f}) '#{Record-type 14 meta-type} 1)
I've now extended TYPE->SEXP by a check for the variable type and let
it produce a list with 'VARIABLE as first and the actual type as
second element. Likewise, I extended SEXP->TYPE to produce a variable
type if 'VARIABEL is the first element of a list.
This seems to work but a second look by someone who really understands
the type system would be appreciated.
(Merge from s48 rev 423)
|
||
|---|---|---|
| .. | ||
| alt | ||
| bcomp | ||
| big | ||
| debug | ||
| env | ||
| infix | ||
| link | ||
| misc | ||
| opt | ||
| prescheme | ||
| rts | ||
| srfi | ||
| vm | ||
| alt-packages.scm | ||
| comp-packages.scm | ||
| debug-packages.scm | ||
| initial-packages.scm | ||
| interfaces.scm | ||
| link-packages.scm | ||
| low-packages.scm | ||
| more-interfaces.scm | ||
| more-packages.scm | ||
| packages.scm | ||
| rts-packages.scm | ||