I can't get my module to compile when I use Gambit with syntax-case loaded as the snow host, and also use define-record* anywhere in the module. gsc just crashes. I can replicate this with the following program:
(package* test/v1.0.0 (provide: (define-record* rec a b c)))
% SNOW_HOST=gambit-sc; export SNOW_HOST % snow --compile test.scm /usr/share/snow/current/bin/snow: line 185: 1492 Bus error "${PROGRAM_gambit_comp}" -:dr- -prelude '(begin (include "'${SNOW_MACROS}'") (include*-cd "'${snow_file}'"))' -e '(load "~~/syntax-case")' "${snow_file}"
If I change snow to include syntax-case.scm instead of load it when calling gsc, I get this error:
*** ERROR IN #<procedure #2> -- Wrong number of arguments passed to procedure (sc#eval '(begin (define (_snow:macro-expand expr) expr) (cond-expand ((or guile kawa) #f) (else '(begin)))) '#(env #(top-ribcage *top* #t) ((top) #(top-ribcage *top* #t))))
This only happens if define-record* is used in the syntax-case environment. I'm not quite sure how to debug this, and any help would be appreciated.
I am using Snow v1.1.1 and Gambit 4.0.1.
Afficher les réponses par date
Has anyone been able to find anything out about this? This seems like a serious problem. I can't use Snow if I can't use syntax-case. The only warning the Snow documentation gives about syntax-case is that it isn't as portable as define-macro, but it should work.
On 10/11/07, James Long longster@gmail.com wrote:
I can't get my module to compile when I use Gambit with syntax-case loaded as the snow host, and also use define-record* anywhere in the module. gsc just crashes. I can replicate this with the following program:
(package* test/v1.0.0 (provide: (define-record* rec a b c)))
% SNOW_HOST=gambit-sc; export SNOW_HOST % snow --compile test.scm /usr/share/snow/current/bin/snow: line 185: 1492 Bus error "${PROGRAM_gambit_comp}" -:dr- -prelude '(begin (include "'${SNOW_MACROS}'") (include*-cd "'${snow_file}'"))' -e '(load "~~/syntax-case")' "${snow_file}"
If I change snow to include syntax-case.scm instead of load it when calling gsc, I get this error:
*** ERROR IN #<procedure #2> -- Wrong number of arguments passed to procedure (sc#eval '(begin (define (_snow:macro-expand expr) expr) (cond-expand ((or guile kawa) #f) (else '(begin)))) '#(env #(top-ribcage *top* #t) ((top) #(top-ribcage *top* #t))))
This only happens if define-record* is used in the syntax-case environment. I'm not quite sure how to debug this, and any help would be appreciated.
I am using Snow v1.1.1 and Gambit 4.0.1.
-- James Long Coptix, Inc. longster@gmail.com
snow-users-list@iro.umontreal.ca