Hello guile.
I don't know if that's a bug. Anyway, I am confused about this so I ask. I came
across this problem playing with guix source code. I will share different
"tests" each test is a directory with nothing but the files I share.
each time the command to try the test (inside it's directory) is `guile
--no-auto-compile -L . main.scm`
base/
main.scm:
-----
(define-module (main)
#:export (valid-path?))
(define-syntax define-enumerate-type
(syntax-rules ()
((_ name->int (name id) ...)
(define-syntax name->int
(syntax-rules (name ...)
((_ name) id) ...)))))
(define-enumerate-type operation-id
(valid-path? 1))
(define-syntax operation
(syntax-rules ()
((operation name)
(lambda ()
(simple-format #t "~S\n" (operation-id name))
(+ 3 (operation-id name))))))
(define-syntax define-operation
(syntax-rules ()
((prout (name))
(define name (operation name)))))
(define-operation (valid-path?))
(simple-format #t "~S\n" (operation-id valid-path?))
-----
RUNS
split-base/
lib.scm:
-----
(define-module (lib)
#:export (operation-id))
(define-syntax define-enumerate-type
(syntax-rules ()
((_ name->int (name id) ...)
(define-syntax name->int
(syntax-rules (name ...)
((_ name) id) ...)))))
(define-enumerate-type operation-id
(valid-path? 1))
-----
main.scm:
-----
(define-module (main)
#:use-module (lib)
;; #:export (valid-path?))
(define-syntax operation
(syntax-rules ()
((operation name)
(lambda ()
(simple-format #t "~S\n" (operation-id name))
(+ 3 (operation-id name))))))
(define-syntax define-operation
(syntax-rules ()
((prout (name))
(define name (operation name)))))
(define-operation (valid-path?))
;; (export valid-path?)
;; (simple-format #t "~S\n" (operation-id valid-path?))
-----
Now. this RUNS. There is 3 tests from this "split-base"
split-define-module-export: from split-base, uncomment "#:export (valid-path?)"
: FAILS
Note the difference with "base", which RUNS.
split-export : from split-base (so, comment again #:export), uncomment "(export
valid-path?)" : RUNS
Here I note that there is a difference between #:export (...) and (export ...).
Is this a bug? Or an undocumented feature? Or a misunderstanding from me?
split-simple-format : from split-base, uncomment "(simple-format ...)" : FAILS.
Here the "interesting" difference is between base and split-base. I am really
confused there and I am asking for comments, please :).
Thank you!