> As Michael had brought up, even if you do this you need
> to make things "work" for parameters, and I'd say also for
> record types, though this doesn't necessarily imply the
> values are eq? (much less the bindings being the same).
>

What do you mean by one *has* to make things work for parameters? If a
library exporting a parameter is referenced twice and the standard allows
the library to be loaded twice in this case, we may end up with two unequal
parameter objects and the standard does not seem to forbid this, does it?
So, in such an implementation things will simply not work for parameters,
while such an implementation would be conforming to the standard.

Anyway, thanks very much for your feedback and interest!
>

Thanks! Show me a more beautiful specification of a programming language
than R7RS; that's why it has awaken my interest :-).

I have come up with another thing that looks like an edge case to me. What
about the following?

(define-library (macro-library)
  (export macro keyword)
  (import (scheme base))
  (begin
    (define-syntax macro
      (syntax-rules (keyword)
        ((_ keyword) 42)))))

(define-library (wrapper-library)
  (export wrapper)
  (import (scheme base) (macro-library))
  (begin
    (define-syntax wrapper
      (syntax-rules ()
        ((_) macro)))))

(import (scheme base) (scheme write) (macro-library) (wrapper-library))
(display ((wrapper) keyword))
(newline)

If I am not mistaken, this program won't portably display 42, will it? The
identifier `keyword' in the main program is bound to a syntactic keyword
coming from the loading of `macro-library' due to it being referenced by
the main program, while the macro resulting from `(wrapper)' does expect a
syntactic keyword coming from the loading of `macro-library' from
`wrapper-library'.

So just demanding that runtime bindings are the same across multiple
loadings of the same library won't suffice to make programs like the above
portable...

Marc
_______________________________________________
Scheme-reports mailing list
[email protected]
http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports

Reply via email to