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"