Re: How to "signal" (or "require") that a certain Scheme implementation provides a certain SRFI Ciprian Dorin Craciun 28 Mar 2018 16:59 UTC
On Wed, Mar 28, 2018 at 7:44 PM, Shiro Kawai <email@example.com> wrote: > In R7RS, you can use 'library' feature requirement of cond-expand to ensure > the implementation provides srfi N: > > (cond-expand ((library (srfi N)))) Yes, I've missed that feature of `cond-expand`. Therefore listing `srfi-n` in `(features)` is not required. However its usage for "hard-requirement" of a particular library, like say SRFI 62 for comment values, would be cumbersome, as there is no "alternative" solution. Therefore one would have to write (and I had missed the `not` on the first try): (cond-expand ((not (library (srfi 62))) (error "comment values not supported"))) Instead of just: (import (srfi 62)) Moreover Chibi fails in using the `cond-expand` above even though it does support it. My point was this: requiring any SRFI to be importable provides a sense of "universality" and "uniformity" in not having any "special" SRFI's (at least from the point of view of the user); moreover it is trivial for any Scheme implementation that implements a "special" SRFI to just allow its importing without anything actually happening. (In fact in case of Chibi I think it's just a matter of creating an empty file in the library path.) I won't push any further on this subject, as it was just an observation. (Perhaps triggered by my OCD...) :) Ciprian.