larcenists / larceny

Larceny Scheme implementation
Other
202 stars 32 forks source link

define-syntax inside of cond-expand in define-library raises an error #740

Closed ktakashi closed 8 years ago

ktakashi commented 8 years ago

The following script raises an error:

(define-library (foo)
  (export test-error)
  (import (scheme base))
  (cond-expand
   (larceny
    (import (except (srfi 64) test-error))
    (begin
      (define-syntax test-error
        (syntax-rules ()
          ((_ name)
           (define name 'dummy))))))
   (else
    (begin
      (define-syntax test-error
        (syntax-rules ()
          ((_ name)
           (define name 'dummy))))))))

(import (foo))
#|
Error: unhandled condition:
Compound condition has these components:
#<record &assertion>
#<record &who>
    who : "car"
#<record &message>
    message : "car: not a pair: #f \n"

Entering debugger; type "?" for help.
|#

NOTES: If there is no import clause then it works. If test-error is bound by define it works as well. As far as I've checked, this happens only when I tried to define test-error defined in (srfi 64).

WillClinger commented 8 years ago

Fixed by changeset 551d2b02e835ef79a75ad15914e6b8b1eb1685e4