|
From: Robert S. <ro...@st...> - 2022-10-17 18:04:45
|
Dear RD: I am in full support for eliminating support for GCL. I am happy to commit time and energy to excising it in a clean, reviewable pull request/patch on GitHub. With that said, here are my good-faith beliefs about why supporting GCL is a good thing. (I do *not* think the totality of reasons is worth keeping it, however.) Pros for keeping GCL: - Supporting GCL means increased portability of Maxima - - Some operating systems have GCL accessible due to it being a GNU project. - - GCL is an older Lisp and therefore works on older systems. - - GCL, like CLISP, gives you an inalienable right to its source code. - Since Maxima was co-developed with GCL, Maxima may be faster in some smaller arenas (symbol-plists IIRC?) than other Lisps. (This knowledge may be out of date.) Cons of keeping GCL: - I'm a professional Common Lisp programmer of more than a decade, and Maxima code is very hard to decipher. Supporting GCL and its quirks only makes it more difficult. Every time I see #+gcl (compile load execute) #-gcl (:compile-toplevel ...), I wince. - GCL's last release was 7 years ago. This is not OK for a Lisp implementation, because operating systems change, and de facto Lisp standards change. - GCL's last commits were December 2021. The commits were small in nature. - If I'm reading the git logs correctly, GCL is supported by exactly one person, and this person has been studiously keeping it afloat, alone, for 10+ years. GCL is not contributed to by the larger community, and, to my knowledge, has no commercial backing. - GCL, even after a push for it, is still not fully ANSI compliant. It's the one thing it ought to have got by now. - The larger Common Lisp community—at least the subset that makes open source libraries and distributes them—does not use GCL. - GCL requires a C compiler. GCL at this point is a liability to the Maxima team, Maxima contributors, and ultimately the Maxima project. Cheers, RS On Mon, Oct 17, 2022 at 09:46, Robert Dodier <rob...@gm...> wrote: > GCL has several deficiencies, and continuing to accommodate them is > keeping us from implementing various things, aside from being a time > sink. > > Things I can remember at the moment, there may be others. Also, this > is aside from dealing with GCL-specific bugs. > > * wildcards in DIRECTORY -- GCL doesn't behave as expected > * compiling pregexp.lisp -- most recent released version can't > compile pregexp.lisp; most recent unreleased version doesn't build on > my system > * ASDF, UIOP, Quicklisp -- doesn't work with GCL > * CFFI -- doesn't work with GCL > * Unicode characters -- GCL doesn't know about that > > Someone's going to say, well, nobody needs any of that stuff. I guess > that's true, but that's not very convincing, right? "We don't need > that" is an all-purpose argument which brings everything to a dead > halt if one really believes it. > > I'd like to get to a place where we can talk about the merits of this > feature or that feature, without the conversation immediately getting > derailed by "well, GCL doesn't support that." > > I know we've had similar discussions over the years. This week we have > someone volunteering to work on Maxima, so that's what's new. > > At this point I'd like to discontinue support for GCL in Maxima, and > discourage package maintainers from trying to use it, since that will > inevitably lead to users reporting non-working features as bugs. Can I > get anybody on board with that? > > FWIW > > Robert > > _______________________________________________ > Maxima-discuss mailing list > Max...@li... > https://lists.sourceforge.net/lists/listinfo/maxima-discuss |