On Sat, 2013-02-09 at 21:00 -0500, Mark H Weaver wrote: > Hi Richard, > > Don't worry, we'll get it working. Here's another attempt. > Replace the calls to 'scm_c_register_extension' with the following: > > scm_c_call_with_current_module (scm_c_resolve_module ("guile"), > bind_srfi_initializers, NULL); > > With the following additional definitions: > > static SCM > init_srfi_1 (void) > { > scm_init_srfi_1 (); > return SCM_UNSPECIFIED; > } > > static SCM > init_srfi_60 (void) > { > scm_init_srfi_60 (); > return SCM_UNSPECIFIED; > } > > static SCM > bind_srfi_initializers (void *dummy) > { > scm_c_define_gsubr ("%init-srfi-1", 0, 0, 0, init_srfi_1); > scm_c_define_gsubr ("%init-srfi-60", 0, 0, 0, init_srfi_60); > return SCM_UNSPECIFIED; > } > > Then, starting with the original versions of srfi-1.scm and srfi-60.scm > from Guile 1.8, replace the (load-extension ...) calls in those two > files with (%init-srfi-1) and (%init-srfi-60), respectively. With this Denemo starts up looking very good - no error messages from any of the scheme executed on startup. However the symbol make-regexp is undefined. Denemo executes
(use-modules (srfi srfi-1)) ; List library (use-modules (srfi srfi-8)) ; Returning and Accepting Multiple Values (use-modules (srfi srfi-13)) ; String library (use-modules (ice-9 regex)) ; regular expressions (use-modules (ice-9 optargs)) ; optional (define* ) arguments (use-modules (ice-9 q)) ; queue module at startup. I have displayed (defined? 'make-regexp) and it is #f from before the first of those module loads and remains #f throughout. I am not sure if it is defined or merely re-defined by (ice-9 regex). Could this be a side effect of those initialization calls made in the C code? Or is this a separate problem? ... I realize that I don't know for sure that srfi-1 has successfully loaded - is there a simple test for that? Thanks for your patience, Richard