On Tue, 6 Oct 2009, Marco Maggi wrote:
> I have written:
>> But, if it is an export problem, why the following works?
>> BLUE is not exported by (sublib):
>>
>> (library (sublib)
>> (export h)
>> (import (rnrs))
>> (define (blue)
>> 456)
>> (define h
>> (make-eq-hashtable))
>> (hashtable-set! h 'b blue))
>>
>> (library (lib)
>> (export thing)
>> (import (rnrs) (for (sublib) expand run))
>> (define-syntax thing
>> (lambda (stx)
>> (syntax-case stx ()
>> ((_)
>> (with-syntax ((f (hashtable-ref h 'b #f)))
>> #'('f)))))))
This should not work (portably) at all.
You are constructing a syntax object with an embedded procedure object.
That has no portable meaning in R6RS. Although certain implementations
might allow it for their own inscrutable purposes, it would really be
better for an implementation to raise a syntax error in cases like
these.
_______________________________________________
Larceny-users mailing list
[email protected]
https://lists.ccs.neu.edu/bin/listinfo/larceny-users