libera/#commonlisp - IRC Chatlog
Search
8:36:53
jackdaniel
if you want to embed other objects in a string, you may do (format nil "~cfoo" #\tab) or use a library cl-interpol
8:38:16
splittist
jackdaniel: such as https://github.com/splittist/printfcl (mi6x3m: don't use this (: )
8:55:40
jackdaniel
splittist: how is your pdf reader going? I'm waiting with anticipation because I like the idea very much :)
8:58:53
splittist
I have paused briefly to work on other stuff. But it can render some PDFs, as you have seen. And there is progress in font-format reading.
9:07:31
beach
But sometimes you might want to use the plist as a list of keyword arguments to a function, and then it is more common for the function to take keywords.
9:11:16
beach
I suggest you start looking things up in the glossary of the Common Lisp HyperSpec. In this case, look under "property list".
9:20:33
beach
I was suggesting the glossary specifically, because it contains definitions of things.
9:40:32
minion
mi6x3m: look at pcl: pcl-book: "Practical Common Lisp", an introduction to Common Lisp by Peter Seibel, available at http://www.gigamonkeys.com/book/ and in dead-tree form from Apress (as of 11 April 2005).
9:42:30
jackdaniel
and it is rather new, so it emphasizes techniques used today, not in early 90' or earlier
9:42:31
mi6x3m
i really dig the lisp culture beyond the fact that the language is really impressively designed and every aspect carefully thought through
11:56:22
beach
nij-: You can use RETURN-FROM and GO only when the BLOCK name or TAGBODY tag is in the lexical scope. So as edwlan[m] says, you need to use CATCH/THROW.
11:57:41
beach
nij-: You can't use condition signaling, because if signaling does a non-local control transfer, it is because it uses either RETURN-FROM, GO, or THROW.
12:05:29
beach
That's how the entire condition system can be written as portable code. It needs only special variables and those non-local control-transfer primitives to work.
13:27:16
Nilby
That's what I'm thinking, but I'm wondering if there's examples of how people have done that with brew or debian.
13:28:30
yitzi
I have used it in building maxima-jupyter and common-lisp-jupyter kernels, but distributed Lisp source code via brew and especially debian is a bad idea, IMHO.
13:30:18
Nilby
Right. My package is going to be just a binary, but for those systems they seem to prefer a source package which build to a binary package.
13:31:22
yitzi
Are the users of your package going to load their own quicklisp packages? Or just run your binary?
13:35:29
yitzi
Then quicklisp bundles would work just fine. One problem you may have with Debian is that you are effectively distributing the source code of all of your dependents so you'll need to include all of the licenses in the copyright file. For brew you could always make your own tap, so you don't really need to worry about getting approval from the brew folks.
13:42:04
Nilby
Right. The big pile of liscenses thing. I guess just getting a .deb or tap that people can install would be good. I see the common-lisp-jupyter and maxima-jupyter repo, but I don't see any packaging artifacts.
13:44:52
yitzi
They don't use quicklisp bundles to distribute themselves. They use it to install certain kinds of jupyter kernels. If you are looking for hints on how to do debian/brew packaging that is not a good place to look. If you want to see how a quicklisp bundle is made look here https://github.com/yitzchak/common-lisp-jupyter/blob/a29c0252a71d8f7147a6ecdbe9d656ffdb8f9fec/src/installer.lisp#L201
13:46:06
yitzi
Clasp does Debian packaging and has a hombrew tap if you want to see examples of those.
13:55:51
green_
An experiment from 13 years ago: https://github.com/ktp-forked-repos/slowlisp . I don't recommend going down this route.
14:01:19
Nilby
The whole common-lisp-controller was a very admirable attempt by great people, but it seems to have languished.
14:02:32
green_
Nilby.. you could also look at just bundling a ocicl systems.csv file and users could pull the dependencies with ocicl! It uses the same distribution backend infrastructure as homebrew.
14:05:19
green_
287 packages built and available so far: https://paste.centos.org/view/dcd69aec still a long way to go though...
14:11:23
Nilby
I'd be glad to add to ocicl, which seems promising, but I was hoping to get to a point of a single command install with a familiar/native packager.
14:25:44
nij-
In the last example of this CLHS page, where does :first-throw go? http://clhs.lisp.se/Body/s_throw.htm
14:30:45
bike
the first throw never "reaches" the inner catch. before it can, it has to execute the unwind-protect cleanup. the cleanup initiates another throw, aborting the first.
14:33:11
beach
green_: Not sure, but this could just be ASDF that converts warnings during compilation to an error to load the system.
14:35:05
nij-
So maybe in that failing system it's explicitly said that warnings are converted into errors.