[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: r6rs libraries
From: |
Julian Graham |
Subject: |
Re: r6rs libraries |
Date: |
Wed, 4 Mar 2009 00:23:20 -0500 |
Hi Guilers,
R6RS libraries updates!
* I'm pleased to report that both the balloons example and the
quotient+remainder macro example are working, which I'm going to take
as more or less a vindication of the module environment-based implicit
phasing approach I've been using. (I didn't quite trust it at first,
but it turns out that when you call `syncase' in the right context, it
does exactly what you want it to, even when it comes to modules!)
* The on-disk directory organization I've been using for the interim
(and around which I've written a rudimentary library load mechanism)
prefixes version numbers with periods. E.g., `(foo bar baz (6))' ->
foo/bar/.6/baz.scm. This seems relatively portable and would work
reasonably well for a mapping of library hierarchies onto Guile module
directories -- but I'm no longer sure that libraries and modules need
to co-exist directly. It might be saner to offer a method of
tranforming a library expression into a regular Guile module by
"wrapping" it with a module declaration and then storing it on disk in
a traditional location -- e.g., the library name:
(foo bar baz (6))
...would be live in
$GUILE_LOAD_PATH/ice-9/r6rs-libraries/foo/bar/baz-6.scm
...and could be imported using either `(import (foo bar baz (6))' or
`(use-modules (ice-9 r6rs-libraries foo bar baz-6))'. What do people
think? (Of course, this still leaves open the question of how to
handle version-matching...)
I'm going to clean things up a bit and then I'll post some code.
Regards,
Julian
- Re: r6rs libraries,
Julian Graham <=