Show HN: A Common Lisp implementation in development, supports ASDF
96 points| andreamonaco | 10 months ago |savannah.nongnu.org
Now it ships with ASDF and is capable of loading systems!
Let me know if you like it. Support on Patreon or Liberapay is much appreciated
danilor|10 months ago
andreamonaco|10 months ago
Savannah is very basic, perhaps too much, but it's okay for my project.
kazinator|10 months ago
I abandoned that when I discovered there's no control. I seem to recall having to wait like over a week for someone to enable non-fast-forward pushes. Overly strict and understaffed. I opted for self hosting.
I kept the project web page there, though.
volemo|10 months ago
badmonster|10 months ago
whartung|10 months ago
How many LOOP macros does the community need, particularly when bootstrapping an implementation, as an example.
Similarly with, arguably 70-80% of the runtime. The CL spec is dominated by the large library which, ideally, should be mostly portable CL, at least I would think.
klibertp|10 months ago
I'm unsure how complete it is, but it seems to cover much of the standard.
g2963|10 months ago
LOOP is a great example, because all loop is just MIT LOOP version 829, originally cleaned up by burke. but nobody can resist deploying their personal architectural touch, so while the basic framework of loop remains identical across impelementations, there's superficial refactoring done by pretty much everyone. if you take SBCL and franz lisp as state of the art in free software and commercial respectivaly, they have equally solid improvements on original loop, that actually produce incompatible behavior in underspecified corners of spec. respective developer communities are very defensive about their incompatible behavior being the correct behavior of course. beach's SICL from sibling comment is the xkcd joke about standards "20 standards? we need a new standard the unifies them all! -- now we have 21 standards"
LOOP in this case is a very simple example, but for example CLOS was originally implemented on top of PCL, Portable CommonLoops, an interlisp system, that was massaged into being compliant CLOS over years. for example sbcl uses a ship of theseus PCL, but franz lisp did from scratch rewrite. the hypothetical portability of that layer is significantly trickier than LOOP since clos is is deeply tied to the type system, and the boundary between some hypothetical base system common lisp and its clos layer becomes complicated during system bootstrapping. but that's not all! of course clos has to be deeply tied to the compiler, the type system, all kinds of things, to provide optimizations. discovering the appropriate slicing boundary is difficult to say the least.
WalterGR|10 months ago
I think most free CL implementations have a stepper. Which ones do not?
andreamonaco|10 months ago
eadmund|10 months ago
Have you thought about writing up your experience?
andreamonaco|10 months ago
andreamonaco|10 months ago
nexo-v1|10 months ago
andreamonaco|10 months ago
badmonster|10 months ago
andreamonaco|10 months ago
neonscribe|10 months ago
andreamonaco|10 months ago
CleverLikeAnOx|10 months ago
mikedelago|10 months ago
https://asdf.common-lisp.dev/
In common lisp, you don't need a build system at all; you can `(load "file.lisp")` everything and it should generally just work. But of course, build systems are useful tools, so nonetheless ASDF exists and it's nice enough to the degree that nobody has built a better and more widespread common lisp build system.
Some good trivial examples are in the lisp cookbook:
https://lispcookbook.github.io/cl-cookbook/systems.html
alexjplant|10 months ago
> ASDF (Another System Definition Facility) is a package format and a build tool for Common Lisp libraries. It is analogous to tools such as Make and Ant.
Contemporary developers using more mainstream languages are likely more familiar with asdf [2], the "Multiple Runtime Version Manager".
[1] https://en.wikipedia.org/wiki/Another_System_Definition_Faci...
[2] https://asdf-vm.com/
kazinator|10 months ago
[deleted]
andreamonaco|10 months ago
valorzard|10 months ago
kstrauser|10 months ago
I mentioned here recently that I released a personal project under the GPLv3. The very first issue someone filed in GitHub was to ask me to relicense it as something more business friendly. I don't think I've been so offended by an issue before. If I'm writing something for fun, I could not possibly be less interested in helping else someone monetize my work. They can play by Free Software rules, or they can write their own version for themselves and license it however they want. I don't owe them the freedom to make it un-Free.
The fact that this is hosted on a FSF-managed service indicates the author likely sees it similarly.
-__---____-ZXyw|10 months ago
https://common-lisp.net/implementations
I think a full-featured GPLv3 implementation would be very cool, personally.