guile-devel
[Top][All Lists]
Advanced

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

Re: Text collation


From: Rob Browning
Subject: Re: Text collation
Date: Sun, 22 Oct 2006 19:01:32 -0700
User-agent: Gnus/5.110006 (No Gnus v0.6) Emacs/21.4 (gnu/linux)

address@hidden (Ludovic Courtès) writes:

>    On IRC, Rob identified a number of issues with this approach:
>
>    * It would be the first `ice-9' module that does a `dynamic-link', so
>      we may want to think twice before doing it.
>
>    * The C programmer willing to use those functions would have to link
>      against `libguile-i18n' additionally.

Yes, the main question is to what extent we want people coding in C to
have to link aginst libraries other than -lguile.  Of course, this is
already the case for some of the SRFIs.

>    There's another (small) issue:
>
>    * The online help is a bit confused because the doc of the i18n.c
>      functions is include in libguile's `guile-procedure.txt'.  Thus,
>      `(help make-locale)' always works, even when `(ice-9 i18n)' is not
>      loaded.

Perhaps that's something we'll eventually want to fix in the
documentation system, but a really simple approach might be to just
mention the required module in the documentation for each function.

> While I agree that this practically precludes use of those functions
> by C programmers (as is the case for those SRFIs that are
> implemented in C)

Actually, if I understand you correctly, this isn't the case.  The
SRFIs (which provide C interfaces) are definitely intended for use by
C programmers.  The programmers just have to make sure to include the
correct -lguile-srfi-* for the SRFI in question.

Although I'm not sure it's a great idea, one other possibility would
be to put the C code in libguile, and to provide a C init function,
called from init.c, that doesn't do anything more than publish a
scheme-side init function that can handle the full initialization
later.

Then the startup process should be relatively unaffected, and
ice-9/i18n.scm would just do something like this:

  (define-module (ice-9 i18n) ...)
  (scm-init-i18n)

This would avoid the need to make it possible to use dynamic-link for
items that are already in libguile.  Of course, whether or not the
approach is a good idea is a different question.

-- 
Rob Browning
rlb @defaultvalue.org and @debian.org; previously @cs.utexas.edu
GPG starting 2002-11-03 = 14DD 432F AE39 534D B592  F9A0 25C8 D377 8C7E 73A4




reply via email to

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