---------- Forwarded message ---------- From: Stefan Israelsson Tampe Date: Mon, Jun 13, 2011 at 1:03 PM Subject: Re: `set!' of generated temporary in macro expansion causes warning To: Andreas Rottmann It looks like you just put the symbol in the current module, so maybe the warning is just unessesary. here is the code in psyntax: (define get-global-definition-hook (lambda (symbol module) (if (and (not module) (current-module)) (warn "module system is booted, we should have a module" symbol)) (let ((v (module-variable (if module (resolve-module (cdr module)) (current-module)) symbol))) so module parameter beeing #f will lead to a warning and an evaluation of (module-variable (current-module) symbol) So if it's ok for the temporaries to be in the current-module then the warning need to silenced. E.g. In (set! generate-temporaries (lambda (ls) (arg-check list? ls 'generate-temporaries) (map (lambda (x) (wrap (gensym-hook) top-wrap #f)) ls))) Replace #f with (current-module) and you will not have a warning. But My psyntax-fu is weak so this is just my 2c. Be aware that changing this can pollute current-module /Stefan On Mon, Jun 13, 2011 at 12:10 PM, Andreas Rottmann wrote: > Hi! > > This is a much-stripped-down version of a `define-values' macro, > exposing what seems like a psyntax bug: > > % cat guile-psyntax-temp-set-issue.scm > (define-syntax define+set! > (lambda (form) > (syntax-case form () > ((_) > (with-syntax (((mutable-id) (generate-temporaries '(id)))) > #'(begin > (define mutable-id #f) > (set! mutable-id #t))))))) > > (define+set!) > > % guile guile-psyntax-temp-set-issue.scm > ;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0 > ;;; or pass the --no-auto-compile argument to disable. > ;;; compiling /home/rotty/tmp/guile-psyntax-temp-set-issue.scm > > ;;; WARNING (module system is booted, we should have a module #{ g65}#) > ;;; compiled > /home/rotty/.cache/guile/ccache/2.0-LE-8-2.0/home/rotty/tmp/guile-psyntax-temp-set-issue.scm.go > > Note the WARNING line; it seems during expansion something goes wrong > wrt. to modules -- it'd be really nice if some psyntax guru can have a > look at this. > > Regards, Rotty > -- > Andreas Rottmann -- > >