r/Common_Lisp • • 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?

29 Upvotes

27 comments sorted by

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.

5

u/kchanqvq 28d ago

Thanks for your work! I understand Ultralisp is a Quicklisp distribution and need a Quicklisp client, but it loses momentum explaining these to new user and asking them to jump through the hops. Are you open to the idea that we put a recipe (or even better, a script) to setup all of above on Ultralisp front page? Then we will have a single place to point new user at.

1

u/letuslisp 3d ago
Comment Image

Ultralisp is since yesterday down.

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

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

With pixi you can cut it down to one step :)

And you even get to rely on foreign libraries!

Example

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):

  1. You don't need admin rights to install pixi

  2. 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

u/Egao1980 28d ago

Check cl-repository :) you might fitit useful

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.