guile-user
[Top][All Lists]
Advanced

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

Re: statically linking in srfi modules


From: Richard Shann
Subject: Re: statically linking in srfi modules
Date: Sun, 10 Feb 2013 11:11:15 +0000

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







reply via email to

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