[gambit-list] gsc crashing when using Snow + syntax-case + define-record*

James Long longster at gmail.com
Thu Oct 4 13:47:55 EDT 2007


I'm posting this to Gambit and not the Snow list because this is
Gambit specific (or at least specific to the portable implementation
of syntax-case that Gambit uses).  I believe there is a bug which
causes gsc to crash when compiling a snow package in Gambit's
syntax-case environment (gsc -e '(load "~~/syntax-case")', or in Snow
terms, using gambit-sc as the snow host).  Any package that uses
define-record* crashes.  It looks like Snow implements its own form of
define-record, and it must be somehow conflicting in the syntax-case
environment.

If I have a simple snow package like so:

(package* sc/v1.0.0
  (provide:
    (define-record* vec3d x y z)))

(display "Nothing here")

This code runs fine interpreted (using `snow -- sc.scm`)  as well as
compiling fine under Gambit without syntax-case, however when trying
to compile the module with a snow host of "gambit-sc" (which is just
gambit with syntax-case loaded in), I get an ugly crash:

/usr/share/snow/current/bin/snow: line 185: 25809 Bus error
   "${PROGRAM_gambit_comp}" -prelude '(begin (include
"'${SNOW_MACROS}'") (include*-cd "'${snow_file}'"))' -e '(load
"~~/syntax-case")' "${snow_file}"

If I change snow to include syntax-case.scm and not load it, 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))))

I also added -:dr- so I'd have a repl when this happened, and here's
the procedure attached to the current frame:

#<procedure #2> =
(lambda (%%%%lst512)
  (datum->syntax-object
   %%%%k310
   (apply (lambda %%%%exprs613
            (if (pair? %%%%exprs613) (sc#eval (if (null? (cdr
%%%%exprs613)) (car %%%%exprs613) (cons 'begin %%%%exprs613))
(sc#interaction-environment)) #f))
          %%%%lst512)))

I'm somewhat new to syntax-case so I have no idea what's going on.
Apologies for probably not debugging this very well, I'm just dumping
everything I can find about it.

I am using Snow 1.1.1 and Gambit 4.0.1.

-- 
James Long
Coptix, Inc.
longster at gmail.com



More information about the Gambit-list mailing list