From: Thien-Thi Nguyen <ttn@glug.org>
Cc: guile-user@gnu.org
Subject: Re: PHP to GUILE
Date: Tue, 27 Sep 2005 08:48:54 -0400 [thread overview]
Message-ID: <E1EKEtC-0004Lf-72@mail.agora-net.com> (raw)
In-Reply-To: <6efab235050927031160fe348a@mail.gmail.com> (message from Vorfeed Canal on Tue, 27 Sep 2005 14:11:47 +0400)
From: Vorfeed Canal <vorfeed.canal@gmail.com>
Date: Tue, 27 Sep 2005 14:11:47 +0400
Too much: we have two distinct things - stand-alone scheme modules
and non-stand-alone C glue code (:autoload is deprecated,
rememeber?).
i'm afraid i can't share in this "we". i use "standalone" shared object
libraries in cron-walk (part of ttn-do)[1], and in other places, all the
time, and guile 1.4.x does not deprecate #:autoload (as far as i can
tell). for example (from cron-walk), the module `(database tmpfile)'
has this entry in ~/local/lib/guile/1.4.1.106/.module-catalog:
((database tmpfile)
scm_init_module
"scm_init_database_tmpfile_module"
() . "/home/ttn/local/lib/guile/1.4.1.106/database/tmpfile.so.0.0.0")
when evaluating `(use-modules (database tmpfile))', there is exactly one
filesystem access, the dlopen of the tmpfile.so.0.0.0; "wrapper" scheme
code is not necessary.
Plus C glue code is architecture-dependent (thus must be in /usr/lib
somewhere) while scheme code is not (so it must go in /usr/share
somewhere).
all modules distributed w/ guile 1.4.x are installed in arch-dependent
dirs, in anticipation of the eventuality of scheme->sofile compilation,
thus sidestepping this problem. the point is, wherever you decide
additional modules should go, it's enough to update the module catalog
so that guile can find it. this supports local policy, which is one of
our shared concerns.
Too little: there are no supports for translators anyway
(or I'm wrong and it IS possible to write module in Logo?).
here is the entry for module (ice-9 q), in the same module catalog:
((ice-9 q)
. "/home/ttn/local/lib/guile/1.4.1.106/ice-9/q.scm")
you can see that its form differs from that of (database tmpfile).
essentially, a module's "implementation type" is one of the pieces of
metadata that is encoded in the module catalog. this means that the
system is ready to support other types. however, i will concede that
presently, the actual load operation (`load' vs `dlopen') to be used for
any particular implementation type is not yet specifiable. so i agree
halfly.
So I think for today simple search over two distinct lists (one for
architecture-dependent glue code and one for architecture-independent
scheme modules) are the best solution. Later when we'll have
translators and everything may be module catalogs will be usefull, but
not today.
is it not better to eliminate (or reduce) search? why use find(1) when
you have locate(1)?
I *AM* aware. But I think that modules catalogs are overkill for what
is awailable today and not enough for what is really needed in the
future. Thus it's better to use simpler approach: less complexity and
more-or-less the same benefits. Once we'll have loadable translators
and everything related we'll need some more complex approach.
the user pov sees no complexity:
(use-modules (ice-9 q) (database tmpfile))
complexity in implementation is another question.
And scheme code and shared object libraries are different enough to
make lumping them together rather impractical, while list and TCL are
not supported anyway - so what's the point ?
in practice (from user pov), lumping them together works fine.
the point (in this case) is to advance the guile module system while
honoring the past (as opposed to spurning it), solving its problems by
generalizing the partial solutions (of the past) and then respecializing
them to apply to new domains. when a problem is not yet solved, that's
an opportunity to hack. obviously, there is still hack potential in
supporting logo (for example).
To be frank the main part of doc is not even module system
specification and/or something like this but answer on simple question
WHY?. Why guile 1.4.1.1xx was ever developed ? Why parts of it are not
included in later versions of guile (yes, I know it's unofficial - yet
GNU Emacs does include some reimplemented extensions from XEmacs, so
it's not THE reason). I was unable to find this in documentation (or
better yet on site) so I was sure guile 1.4.1.106 is just bugfix
release for modern compilers.
i'm still working on a writeup for these (very relevant) questions. if
you're still around in spring/summer 2006 you'll probably see a post to
guile-user announcing it. if not but you think you might be interested
anyway, let me know and i will cc you.
It's my problem, right.
it is a problem/opportunity of the community and how it interacts.
Since guile 1.4 does not support some features I want/need (GOOPS and
pthreads are major ones) I can not use nice things from your
1.4.1.1xx releases.
ok, i will no longer suggest guile 1.4.x for your situation. instead i
suggest looking at the parts of it that you like and adding them in some
way or another to your methodology. see [2] for work in this vein.
thi
[1] http://www.glug.org/people/ttn/software/ttn-do/
http://www.glug.org/people/ttn/software/ttn-do/scm-html/cron-walk.scm.html.gz
[2] http://www.glug.org/people/ttn/software/guile-sdl/GUILE-FIXES
_______________________________________________
Guile-user mailing list
Guile-user@gnu.org
http://lists.gnu.org/mailman/listinfo/guile-user
next prev parent reply other threads:[~2005-09-27 12:48 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-09-25 21:50 PHP to GUILE Vorfeed Canal
2005-09-26 1:42 ` Kevin Ryde
2005-09-26 7:27 ` Zeeshan Ali
2005-09-26 8:17 ` Vorfeed Canal
2005-09-26 17:57 ` Zeeshan Ali
2005-09-26 19:05 ` Vorfeed Canal
2005-09-26 19:34 ` Zeeshan Ali
2005-09-26 7:43 ` Vorfeed Canal
2005-09-26 11:17 ` Thien-Thi Nguyen
[not found] ` <6efab23505092609331abd82b7@mail.gmail.com>
2005-09-26 16:34 ` Vorfeed Canal
2005-09-26 22:12 ` Thien-Thi Nguyen
2005-09-27 10:11 ` Vorfeed Canal
2005-09-27 12:48 ` Thien-Thi Nguyen [this message]
2005-09-27 14:36 ` Vorfeed Canal
2005-09-27 17:13 ` Thien-Thi Nguyen
2005-09-27 17:47 ` Vorfeed Canal
2005-09-27 19:44 ` Thien-Thi Nguyen
2005-09-26 12:23 ` Exceptions Ludovic Courtès
2005-09-26 19:20 ` Exceptions Vorfeed Canal
2005-09-27 8:42 ` Exceptions Ludovic Courtès
2005-09-27 10:54 ` Exceptions Vorfeed Canal
2005-09-27 15:45 ` Exceptions Ludovic Courtès
2005-09-27 17:18 ` Exceptions Vorfeed Canal
2005-09-28 7:10 ` Managing Guile and extensions versions Ludovic Courtès
2005-09-28 20:19 ` Vorfeed Canal
2005-09-29 15:34 ` Ludovic Courtès
2005-09-29 16:30 ` Vorfeed Canal
2005-09-30 22:07 ` Neil Jerram
2005-10-19 7:58 ` Rob Browning
2005-09-29 22:24 ` Kevin Ryde
2005-09-30 8:00 ` Ludovic Courtès
2005-10-02 1:59 ` Kevin Ryde
[not found] ` <6efab2350510020425j76899e29hec6ea7e3dcce6c3@mail.gmail.com>
2005-10-03 1:58 ` Kevin Ryde
2005-10-04 11:06 ` Vorfeed Canal
2005-10-04 23:58 ` Kevin Ryde
2005-10-05 14:18 ` Vorfeed Canal
2005-10-09 1:53 ` Kevin Ryde
2005-10-11 10:20 ` Vorfeed Canal
2005-10-11 14:56 ` Greg Troxel
2005-10-11 21:32 ` Kevin Ryde
2005-10-03 12:58 ` Ludovic Courtès
2005-09-26 19:37 ` PHP to GUILE Neil Jerram
[not found] ` <6efab235050926131843ce69e2@mail.gmail.com>
2005-09-26 20:18 ` Vorfeed Canal
2005-09-26 22:39 ` Kevin Ryde
2005-09-27 9:20 ` Vorfeed Canal
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/guile/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=E1EKEtC-0004Lf-72@mail.agora-net.com \
--to=ttn@glug.org \
--cc=guile-user@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).