[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Should letrec via syntax work within eval-when (expand load eval)?
From: |
Rob Browning |
Subject: |
Should letrec via syntax work within eval-when (expand load eval)? |
Date: |
Mon, 29 Jul 2019 20:57:38 -0500 |
I narrowed down an issue I'd hit to this:
;; somefile.scm
(define-syntax foo
(syntax-rules ()
((_ any ...) (letrec ((x y) (y 'foo)) x))))
(eval-when (expand load eval) (foo 1))
Which produces this with 2.2.4 and 2.2.6:
$ guile -s somefile.scm
[...]
Backtrace:
7 (primitive-load "/home/rlb/src/lokke/standalone/ele.scm")
In ice-9/eval.scm:
721:20 6 (primitive-eval (eval-when (expand load eval) (foo 1)))
In ice-9/psyntax.scm:
1235:36 5 (expand-top-sequence ((eval-when (expand load eval) #)) …)
1182:24 4 (parse _ (("placeholder" placeholder)) ((top) #(# # …)) …)
285:10 3 (parse _ (("placeholder" placeholder)) ((top) #(# # …)) …)
In ice-9/eval.scm:
619:8 2 (_ #(#<directory (guile-user) 55e5e3a3b140> #<variab…> …))
298:34 1 (_ #(#<directory (guile-user) 55e5e3a3b140> #<variab…> …))
227:9 0 (_ _)
ice-9/eval.scm:227:9: Unbound variable: #<variable 55e5e3924d60 value:
#<undefined>>
but works fine without the eval-when, and I wondered if that was
expected.
Thanks
--
Rob Browning
rlb @defaultvalue.org and @debian.org
GPG as of 2011-07-10 E6A9 DA3C C9FD 1FF8 C676 D2C4 C0F0 39E9 ED1B 597A
GPG as of 2002-11-03 14DD 432F AE39 534D B592 F9A0 25C8 D377 8C7E 73A4
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Should letrec via syntax work within eval-when (expand load eval)?,
Rob Browning <=