guile-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Problem with define-macro from compiled file (Guile 1.9)


From: Hans Aberg
Subject: Re: Problem with define-macro from compiled file (Guile 1.9)
Date: Fri, 7 Jan 2011 09:53:44 +0100

On 6 Jan 2011, at 19:18, Patrick Bernaud wrote:

I have a case where a macro is defined in a file that is then loaded
by another which makes use of the macro. And it produces a 'wrong type
to apply' error from the VM.

(Works fine with GUILE_AUTO_COMPILE=0 and compiled files removed).

For example, with the 'when' macro from the manual:

-%<---- when.scm ----%<-
(define-macro (when cond exp . rest)
`(if ,cond
     (begin ,exp . ,rest)))
-%<---- when.scm ----%<-

-%<---- test.scm ----%<-
(load "when.scm")
(when #t (display "Launching missiles!\n"))
-%<---- test.scm ----%<-

If you are writing your own macro, I find 'define-syntax' easier:

(use-syntax (ice-9 syncase))

(define-syntax when
 (syntax-rules ()
   ((when cond x ...)
     (if cond (begin x ...)))
))

(when #t (display "Launching missiles!\n"))





reply via email to

[Prev in Thread] Current Thread [Next in Thread]