4 ms·
Qi: a Simple Package Manager for Common Lisp
- 616c 11y agoThis looks pretty cool. It sounds like it can wrap Quicklisp, which is real good considering how much work and apprecation there is for @xach re the Quicklisp work. He also expects to have a big donor announcement status announcement in a few days, according to blog.quicklisp.org. This seems like it is not just a package manager, but maybe like a project manager, between Quicklisp and cl-project? Anyway, every few months I am happy to get back into the CL scene. There is something I cannot get me to move away from the dark arts of Lisp!
- CodyReichert 11y agoQuicklisp is definitely awesome - CL is a million times better with it. You don't need to use Quicklisp to use Qi, but you can definitely use them together. The same is true for cl-project (which I really like). The biggest use-case in mind was the ability to specify dependency versions and custom dependencies that aren't in quicklisp (pulling from a private git repo was my use-case; someone added support for mercurial recently).
- yarrel 11y agoThis seems to focus more on project lifecycles and scaffolding than Roswell (my current go-to toplevel for Common Lisp). I'm not sure about using yml to track dependencies, those should be in the asdf file, although I guess this is to enable pinning etc.
- 616c 11y agoI too was looking at Roswell only to discover the core is in C. There is a very amusing issue where one contributor/user asks why not in Go, but then one of the core devs is like "Is there not another language we might be interested in? You know, the one we're developing for?" https://github.com/roswell/roswell/issues/104 https://github.com/roswell/roswell/issues/104 I am not sure why C in the first place. It looks like a fun tool, but seems like minor heresy. Jokes aside, the ease of shoving things down a la Lisp images, albeit unpopular, made me think building a Lisp mgmt tool in Lisp is easier for idiots like me who took ages to understand the ./configure, make, make install workflow of *nix platforms.
- jlarocco 11y agoI'm not sure I understand what this is providing over QuickLisp and QuickProject. Version pinning seems useful, but I don't see an explanation of how it's being done, and I don't understand how it can work with a REPL. It seems like it would be better to handle it in asdf and QuickLisp. Using YAML also seems like a poor choice for Common Lisp, where everything is s-expressions. Also, there's already a Common Lisp project named "Qi": http://cliki.net/Qi http://cliki.net/Qi
- 616c 11y agoThat is a very fun story. It is not really Qi anymore, it is Shen. And boy oh boy does that have an interesting backstory unto itself. If you wanna try the proprietary cum BSD-licensed core of it, a K-lambda language that is like a Lisp on Haskell/Idris-typed steroids, give it a shot. http://www.shenlanguage.org/download_form.html http://www.shenlanguage.org/download_form.html
- 616c 11y agoIf the author shows up, as one of a few here who wants to know, why YAML? In other languages YAML parsers are a dime-a-dozen affair, while the same is true of SEXP/EDNish type stuff so proudly mocked in Lispland by insiders and outsiders alike. Was it personal preference or something more? I scanned your stuff, but did not see anything insightful on the landing page.
- eudox 11y agoYAML is a neat format.
- 616c 11y agoI take your opinion pretty seriously with the weight of your CL work. If you have time, I would love to hear your rationale.
- CodyReichert 11y agoHey, author here. YAML was chosen, as another user guessed correctly below, to enable version pinning. ASDF, as far as I knew, did not support any `version` in it's `dependencies` section. A while after the YAML configuration was implemented, though, I came across some docs on how to extend the ASDF configuration file with your own sections. That would allow Qi to get ride of the YAML file and just use ASDF (which would be ideal). The YAML file might not have been the _best_ choice, but it's widely supported and I needed more flexibility than the ASD file. As soon as I have more time, I'll definitely be looking at how to move that into the ASD file. It was the first issue: https://github.com/CodyReichert/qi/issues/1 https://github.com/CodyReichert/qi/issues/1