guile-devel
[Top][All Lists]
Advanced

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

Derick's SRFI collection & guile


From: Ian Price
Subject: Derick's SRFI collection & guile
Date: Sun, 26 Aug 2012 01:29:52 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.3 (gnu/linux)

Hi guilers,

In my zeal to get more packages up on my guildhall repo, I packaged the
portable r6rs srfi collection[0]. However, this particular package runs
into some trouble when it is installed.

The issue is, the portable srfi collection uses srfi 97 names[1], for
libraries along with a common convention for encoding those names on the
filesystem[2].

Now, guile does support srfi 97 names for srfis (at least within an
'import' expression), so that's no problem. However, guile doesn't
follow the same convention for filenames as other r6rs-compatible
schemes. This is _not_ in violation of the srfi, but it is a pain.

When I use, say, (import (srfi :2 and-let*)), guile translates this into
srfi/srfi-2.scm (I think), since this is the convention guile uses it's
own packaged srfis.

This means that while you can install the above package, and you will be
able to access the files under the (not for public consumption) (srfi
private ...) prefix, it cannot find the srfis included in the
package.

For srfis common to both guile and the portable collection this is no
issue, the only issue arises when I use one that isn't a part of guile e.g.

scheme@(guile−user)> (import (srfi :48))
While compiling expression:
ERROR: no code for module (srfi srfi−48)

Now, as I see it we have a few options available here.

1. Patch guile to also look up srfis using the above convention.
2. Absorb (set-difference portable-srfis guiles-srfis) into guile proper
3. I change the srfi package hosted on my repo to one that incorporates
these using the guile convention.

I recognise 3 is probably going to be the solution, both as punishement
for my zealotry :P, and because the repo is (currently) guile only and
thus guile should be accommodated first and foremost. However, I felt
that I should bring this issue up in case anyone has been bit by it thus
far, and in case anyone has any feedback regarding the other proposed
solutions.


0. https://code.launchpad.net/~scheme-libraries-team/scheme-libraries/srfi
though pkg-list.scm is courtesy rotty at his mirror 
https://github.com/rotty/srfi

1. http://srfi.schemers.org/srfi-97/srfi-97.html

2. The convention as used by the library is that : got "url-encoded" to
%3a, which I believe comes from Racket originally. To the best of my
knowledge, it is/was supported by ikarus/vicare, mosh, ypsilon I think,
racket, and arcfide was working on adding this to chez.

-- 
Ian Price -- shift-reset.com

"Programming is like pinball. The reward for doing it well is
the opportunity to do it again" - from "The Wizardy Compiled"




reply via email to

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