Thanks for the prompt reply to both of you. However the proposed solution do not work in my case. After implementing the begin-for-syntax alternative I now get
scheme@(guile-user)> (load "main.scm") ;;; compiling /Users/mgubi/t/build-64-guile-2.0/test-modules/main.scm ;;; note: source file /Users/mgubi/t/build-64-guile-2.0/test-modules/test-modules.scm ;;; newer than compiled /Users/mgubi/.cache/guile/ccache/2.0-LE-8-2.0/Users/mgubi/t/build-64-guile-2.0/test-modules/test-modules.scm.go ;;; compiling /Users/mgubi/t/build-64-guile-2.0/test-modules/test-modules.scm ;;; /Users/mgubi/t/build-64-guile-2.0/test-modules/test-modules.scm:15:34: warning: possibly unbound variable `compile-interface-spec' ;;; /Users/mgubi/t/build-64-guile-2.0/test-modules/test-modules.scm:32:11: warning: possibly unbound variable `:use' ;;; /Users/mgubi/t/build-64-guile-2.0/test-modules/test-modules.scm:33:11: warning: possibly unbound variable `:inherit' ;;; /Users/mgubi/t/build-64-guile-2.0/test-modules/test-modules.scm:34:11: warning: possibly unbound variable `:export' ;;; compiled /Users/mgubi/.cache/guile/ccache/2.0-LE-8-2.0/Users/mgubi/t/build-64-guile-2.0/test-modules/test-modules.scm.go ;;; WARNING: compilation of /Users/mgubi/t/build-64-guile-2.0/test-modules/main.scm failed: ;;; ERROR: No variable named %module-public-interface in #<directory (sub mymodule) 10507ed80> ERROR: In procedure scm-error: ERROR: No variable named %module-public-interface in #<directory (sub mymodule) 10507ed80> Entering a new prompt. Type `,bt' for a backtrace or `,q' to continue. scheme@(guile-user) [1]> if I understand correctly this backtrace it seems that the module is not completely loaded at compile time and there is not public interface available. How can I force the evaluation of the loaded modules in order to get a list of exported symbols? Best massimiliano On Mar 7, 2012, at 9:32 PM, Andy Wingo wrote: > Hi! > > Mark gave great answers; I just wanted to give one more option: > > On Tue 06 Mar 2012 22:48, Gubinelli Massimiliano <m.gubine...@gmail.com> > writes: > >> (load "test-modules.scm") > > Add a definition first: > > (cond-expand > (guile-2 > (define-syntax-rule (begin-for-syntax form ...) > (eval-when (load compile eval) (begin form ...)))) > (else > (define begin-for-syntax begin))) > > Then: > > (begin-for-syntax > (load "test-modules.scm")) > > Regards, > > Andy > -- > http://wingolog.org/ On Mar 7, 2012, at 9:32 PM, Andy Wingo wrote: > Hi! > > Mark gave great answers; I just wanted to give one more option: > > On Tue 06 Mar 2012 22:48, Gubinelli Massimiliano <m.gubine...@gmail.com> > writes: > >> (load "test-modules.scm") > > Add a definition first: > > (cond-expand > (guile-2 > (define-syntax-rule (begin-for-syntax form ...) > (eval-when (load compile eval) (begin form ...)))) > (else > (define begin-for-syntax begin))) > > Then: > > (begin-for-syntax > (load "test-modules.scm")) > > Regards, > > Andy > -- > http://wingolog.org/