[gambit-list] Libraries for day-to-day projects ?

mikel evins mevins at me.com
Tue Jul 8 12:23:15 EDT 2014

On Jul 8, 2014, at 10:56 AM, Álvaro Castro-Castilla <alvaro.castro.castilla at gmail.com> wrote:

> Thanks for the explanation, I appreciate. I might have used the similarity to Quicklisp too lightly, since I just took the reference regarding the concept of "set of libraries for day-to-day projects".  I'd say that the concept is closer to the Yeoman project + a set of generic libraries.
> I don't see SchemeSpheres reaching that kind of integration any time soon. The model is more adapted to Gambit's C/universal code generation (doesn't intend to be multi-implementation at the moment), and tries to make it easier to use and automate some of Gambit's features. I don't see the idea of a flat super-module working well for Gambit, but maybe I'm wrong on this.

I don't see why it wouldn't work as well for Gambit as for Common Lisp. A Quicklisp-style tool would be helpful for any Scheme implementation that supported it. Even if it was Gambit-only, I'd still be a fan. Judging by the effect that Quicklisp has had on the Common Lisp world, it's probably reasonable to expect that people would want to port it, and that library authors would want to make their libraries work with it.

> This leads me to a question: would Gambit be able to discard unused function in some way? I guess it's a hard thing to do since the generated code needs to be linked and thus only a link-time optimization would be able to do that... and still, that would be for C functions.
> Perhaps a post-syntactic expansion done at the Scheme code level could achieve that, and pave the road towards the concept of Quicklisp. Either that or a module-per-function approach. But this last approach wouldn't allow Gambit to provide for the single-host optimization, am I right?

I don't think you need that to implement a Quicklisp-style tool. I mean, it wouldn't hurt, but it's not required.

What's required is 

- a collection of libraries that work well with Gambit
- some analog of ASDF that makes it easy to load all of these libraries, and easy for each library to declare its dependencies on others
- an easily-accessible repository for the libraries
- an efficient way to collect updates to the libraries and make them accessible from the repo
- a tool that enables you to quickly and easily search the libraries by name and description
- a tool that enables you to quickly and easily download and install any given library
- an easy way to tell the tools about nonstandard and local repositories
- an easy way to tell the tools that you want a specific version of a library, or multiple versions of a library

That's kind of a lot, but on the other hand, Zach is just one guy and does it in his spare time.

More information about the Gambit-list mailing list