Re: Making SRFI go faster Amirouche Boubekki 25 Apr 2021 11:34 UTC
> > It is also a technical issue, the Scheme world is so diverse in terms > > of implementations and goals that it is difficult to contribute to > > Scheme without a dedicated Scheme implementation for the purpose of > > the SRFI process and RnRS. > > It is, but a big collection of working code would also motivate porting > work. If I understand correctly, SRFI / RnRS libraries would be collectively owned by participants including maintainers of Scheme implementations that want to take part in the process? The alternative at the moment is to copy and tweak sample implementations or create an implementation from scratch. > Unit testing and CI could be solved in one place, especially if we > use a monorepo. I agree. > Then adding tests for any new code can immediately use > the work that has gone into those tools, and for portability there are > lots of existing cond-expand's to use as examples for how to do it. As far as I know cond-expand is not trivial to implement. And even if it was, it will not completely eliminate the problem that some Scheme may want to use a completely different implementation that will force us to have cond-expand based on implementations. > > A sample implementation of Scheme and SRFI would be awesome but I assume > it's too difficult to pull off, unless an existing implementation is > gradually turned into the sample implementation by adding features. > As far as I know there is no Scheme implementation that can run on a trivial subset of Scheme (that is maximally portable across Scheme implementations and Operating Systems), and that is easy to debug (breakpoints, step debugger, variable inspection, one step macro expansion). Including a garbage collector is too much work (I am clueless about the subject). Regarding things like threads, network or SRFI-170, it could be emulated (a portable C FFI can be a very useful addition :). > >> Would the people around SRFI be interested in formalizing the > >> lightweight work we already more or less have? > > > I do not understand the question. What needs formalization? > > Really just blessing a monorepo with "official" status. The community is > already doing work like this, but it's split into many libraries around > the net, with different people working on each library. If we had one > library that is known as a canonical one, with many people working on it > (roughly, the people now writing SRFIs, plus anyone else who wants to > join) people would slowly learn to trust it. I agree. I still wonder whether being portable like the projects below is not more work than the alternative I describe above. One drawback of relying a lot on external implementations, is that if the maintainer goes, scheme-live will end-up with debt code or we will need to decide to drop support for that implementation, which is a difficult choice. Also I support your approach to request some formal acknowledgement for this monorepo: the projects you mentioned below have tried to reach an informal consensus, but did not succeed, it can be improved and that is not wasted effort. scheme-live can probably re-use some of those libraries. > The library collections like Schemepunk, Yuni, Spells, Spheres, etc. are > especially interesting as prior art. These are like Scheme Live, but > tend to have one maintainer who stops working on it after a few years. > Ideally we could roll all of them into one collection with enough people > to ensure continued maintenance. Those are great projects. Also it shows there is a strong interest about the subject.