This is the mail archive of the
kawa@sources.redhat.com
mailing list for the Kawa project.
Re: defmacro: Null pointer exceptions with compiled files
On Sun, 2004-05-30 at 16:16, Chris Dean wrote:
> Found it. Try module-static true:
>
> (module-name <incanddec>)
> (module-static #t)
>
> (module-export inc dec)
> ...
Note that type inference also appears to be faulty.
inc-and-dec.scm:
(module-name <IncAndDec>)
(module-static #t)
(module-export inc dec)
(defmacro inc (var)
`(begin
(set! ,var (+ ,var 1))
,var))
(defmacro dec (var)
`(begin
(set! ,var (- var 1))
,var))
gensym.scm:
(module-name <Gensym>)
(module-static #t)
(module-export gensym)
(define gensym-counter 0)
(define (gensym #!optional name)
(string->symbol
(string-append "gensym:#"
(number->string (inc gensym-counter))
(if name name ""))))
After -C compilation and the requires, (gensym "adam") produces:
Invalid parameter, was: null
java.lang.ClassCastException
If I replace (inc gensym-counter) with:
(begin (set! gensym-counter (+ gensym-counter 1)) gensym-counter))
And -C recompile then the gensym function starts working.
Regards,
Adam