Gerbil hasn't scaled to enough users or contributors to call it a
success. But at least it's not a failure.

I was referring to the use of a monorepo vs split repos :) Gerbil is quite complex and the approach hasn't failed you yet. All other Scheme implementations that I know about are in monorepos as well. That's good enough precedent for me; not sure others are convinced.

It's important to emphasize that a monorepo leads to a certain design style that is much more fluid than separate repos. I think this is actively desirable for any fast-moving library collection; some have reservations.

Gerbil would require bootstrapping on top of those various Scheme
implementations. The current version of Gerbil is quite tied to Gambit
Scheme for all I/O or lower-level functions.

Gerbil*could*  be ported to other Scheme implementations (and was, in
the past). But in a way, it would not be a "standard Scheme library
collection", unless you somehow hacked the library systems to become
interoperable. I'm not sure if that's possible in a portable way, but
identifying the gap would be interesting—and could lead to a SRFI for
extending the library system that way to make that possible.

Indeed, for the purposes of a portable library collection all 15+ major Scheme implementations adopting Gerbil's library and object systems is not going to be tractable, and booting all of Gerbil on another implementation just to use portable libraries is probably not going to fly either. Modesty in technical matters is a virtue when doing cross Scheme work. A large Scheme implementation is already a complex piece of machinery, and adding something like Gerbil on top makes it significantly more complex.

cond-expand itself doesn't work very portably, does it?

It is surprisingly portable; in fact, it's hard to think of many problems with it! The big stumbling block was R6RS, which has neither (cond-expand ...) nor (include ...) in the standard. IIRC there isn't an obviously correct way to fit them into the R6RS library expansion semantics. But chez-srfi comes with implementations of both cond-expand and include, specialized for the main R6RS implementations, and those give very good practical results.

Reply via email to