scsh-checkins
[Top] [All Lists]

[Scsh-checkins] scsh/scheme/bcomp mtype.scm

To: scsh-checkins@lists.sourceforge.net
Subject: [Scsh-checkins] scsh/scheme/bcomp mtype.scm
From: Martin Gasbichler <mainzelm@users.sourceforge.net>
Date: Mon Aug 4 00:33:01 2003
List-id: <scsh-checkins.lists.sourceforge.net>
Sender: scsh-checkins-admin@lists.sourceforge.net
Update of /cvsroot/scsh/scsh/scheme/bcomp
In directory sc8-pr-cvs1:/tmp/cvs-serv9727

Modified Files:
        mtype.scm 
Log Message:
Subject: Extend type<->sexp conversion to variable type

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)



<Prev in Thread] Current Thread [Next in Thread>