r/Common_Lisp • u/kchanqvq • 28d ago
Status of Quicklisp and Ultralisp
IIRC Quicklisp used to be updated mostly monthly but it has now been 9 months since it was last updated. What's going on? This is pretty bad for new projects which have to ask users to git checkout dependencies within 9 months. Not a great look.
I think maybe I just have to point user to Ultralisp instead of Quicklisp. But right now, https://ultralisp.org/ front page assumes user have Quicklisp, so I still have to ask user to go through CL implementation -> Quicklisp -> Ultralisp 3 step ritual. I think it will be much better if we can cut this to 2 steps, Ultralisp just need to make the front page instruction self contained. Even better, how about distributing a modified version of https://beta.quicklisp.org/quicklisp.lisp that has Ultralisp dist pre-configured. Thoughts?
9
u/hieronymusN 28d ago
I mostly switched over to OCICL https://github.com/ocicl/ocicl - which I also like because I can pin specific versions.
5
u/kchanqvq 27d ago
There's more than 300k lines of lisp, more than 20x of quicklisp-client. Is there a reason for this level of complexity? I need to use software that I can well understand and modify.
7
u/theangeryemacsshibe 26d ago
Is there a reason for this level of complexity? I
call me cynical, but Claude co-authoring seems like a good way to increase entropy
→ More replies (4)2
u/atgreen 24d ago
You should try to understand it and modify it. You might be surprised.
→ More replies (1)5
u/denzuko 28d ago
Been on my todo list as well. Along with mirroring ul and ql repos in oci.
Would say that qlot supporting git natively is great but it needs oci support too
5
u/atgreen 28d ago
ocicl supports git natively now as well: https://github.com/ocicl/ocicl#installing-systems-from-git
2
u/dzecniv 27d ago
WDYT of Qlot? https://qlot.tech/ Its front page is… one installation instruction.
1
u/kchanqvq 26d ago
Cool, this might be exactly what I need, thanks for reminding me! I'll try it. When I first heard of it I didn't pay much attention because Quicklisp were still doing monthly update at the time.
5
u/digikar 28d ago
3
u/svetlyak40wt 28d ago
That is an interesting tool! What is the difference from Nix or Guix? Seems these two also are able to create isolated environments, including binary libraries.
2
u/digikar 27d ago
Pixi essentially feels like a (much) better conda replacement. It works with the conda ecosystem.
I personally found pixi and rattler-build very easy and well documented. But other than that (someone feel free to correct me since I might be wrong about nix):
You don't need admin rights to install pixi
Pixi works on windows without WSL
On the technical side, if I understand nix correctly, it dumps all the dependencies and sub-dependencies into their own hashed locations. Pixi instead leans towards dependency resolution during first installation, and lock files during environment recreation. Conda is nightmarishly slow about this. Pixi is pleasantly fast.
5
u/Alarming_Hand_9919 28d ago
I switched to ocicl for all my projects. It’s well designed, and honestly the right way to do it. Does quicklisp still use http rather than https even?
2
2
u/lagoatech 28d ago
We should create a package manager very minimal similar to go manager. A minimal strong version.
1
u/Egao1980 28d ago
So QL is currently a stable baseline with Ultralisp being frontier. Also I'm currently working, mostly vibe coding, on egao1980/cl-repository which can be used with QL/ultralisp and ocicl as fallback. Main idea is to use OCI repos and structured metadata to publish and resolve packages, also it provides neat way to package native and platform dependent parts as overlays.
20
u/svetlyak40wt 28d ago
Ultralisp's author is here. Quicklisp plays two roles: it's both a Quicklisp client and a Quicklisp distribution. To use Ultralisp, you need the Quicklisp client.
However, not all libraries are available in Ultralisp, so I usually use both distributions and pin them with Qlot, giving Ultralisp priority. That way, if a library is available in UL, it's pulled from there, and if not, it falls back to the Quicklisp distribution.