This is the mail archive of the guile@cygnus.com mailing list for the Guile project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Polymorphism in Scheme (Re: records)


Mikael Djurfeldt <mdj@mdj-pc.nada.kth.se> writes:

> > (ice-9 syncase) will no longer work in the new module system. 
> > The current implementation uses symbol properties which are meaningless
> > in a system with more than one top-level environment.
> 
> 1. The current implementation doesn't use symbol properties.

From ice-9/syncase.scm:
[...]
(for-each (lambda (symbol)
	    (set-symbol-property! symbol 'primitive-syntax #t))
	  primitive-syntax)


> 2. The current module system has more than one top-level environment.

It has first class variables but not first class top-level environments.
An environment binds symbols to values (better: locations).  The
question "what's the value of symbol x" is no longer valid because
the answer to the question would be another question: "in which
environment?".


> > Fortunately this is the only problem I've encountered.  All other
> > modules work as before and needed no (or minor) modifications.
> 
> I'm sure we can adapt the syntax-case module to the new system.

I think that it has to be re-written from scratch.  :(


Jost
-- 

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]