freenode/#lisp - IRC Chatlog
Search
23:43:17
luis
phoe_: are you handling the standard method combinations in method-combination-arglist? (Also, how about calling that method-combination-arguments or method-combination-options, maybe?)
23:44:49
phoe
luis: long-method-combination should be a subclass of standard-method-combination I think
23:47:08
phoe
luis: please file issues on that one to include standard-method-combinations in the algorithms and to add #'method-combination-options
23:47:27
luis
phoe: no, /you're/ right. :D (typep #<EXCL::LONG-METHOD-COMBINATION @ #x2063d5942> 'excl::standard-method-combination) => t
0:42:51
|3b|
cl-opengl users please test the branch at https://github.com/3b/cl-opengl/tree/enum-groups2 and see if it breaks any of your code
1:35:16
aeth
Firefox copy and paste has, well, it takes a second before it registers for some reason
1:35:38
aeth
(the other link was to prove in another channel that Valve can in fact release more than 3 games in a series)
1:37:22
aeth
ScaredySquirrel: http://www.gigamonkeys.com/book/ is generally the recommended introduction to CL book but there are many books. https://cliki.net/Lisp%20books
1:37:36
aeth
ScaredySquirrel: The other one, if you have no programming experience, is https://www.cs.cmu.edu/~dst/LispBook/ iirc
1:38:11
aeth
There are other introduction books but they're not available for free online and aren't as universally well-received
10:25:00
lukego
Is anybody else using ql2nix (https://github.com/bradleyjensen/ql2nix) to snapshot quicklisp distributions with nix or is it just me? I'm noticing that some packages aren't happy living on read-only filesystems and trying to figure out a fix/workaround.
10:26:39
lukego
seems like it's mostly packages that want to do some code generation and store the results on disk. I'm hoping it will be enough to ASDF:LOAD-OP them on a read/write filesystem and then transport the files onto read-only later. Or will they want to always be able to read/write their source dirs?
10:27:36
Shinmera
For the packages I control they either do their caching on first load, or whenever the user requests it.
10:29:44
Shinmera
From the top of my head, those would be qt-libs, uax-9, uax-14. There might be more, I don't quite remember.
10:33:00
phoe
lukego: I remember Xach mentioning this issue some time ago for packages that require write access to their own directory. Most notably it was CL-UNICODE I think.
10:33:38
Shinmera
Question: there is the DECLARATION declaration, which allows you to declare custom declarations symbols. My question is this: how would I now process these declarations if they appear in a top-level context?
10:33:45
phoe
lukego: in general, you cannot do that, since Lisp code can write stuff into asdf:system-relative-pathname at any time.
10:34:48
phoe
lukego: in practice, most systems *should* be happy with read-only access after they are compiled and built. At this point, if RW access is required, I'd try to file a bug so the system uses some temporary directories or configuration paths instead.
10:35:09
phoe
Shinmera: process? As in, do you want to be able to (DECLAIM (FROBNICATE FOO BAR BAZ))?
10:35:55
phoe
Impossible in pure ANSI CL. You'd need some mechanism to hook into the declaration system of each implementation.
10:35:57
Shinmera
I can do it if I have a macro that controls a body wherein this declaration may occur
10:36:20
phoe
Yes, but you can't do it at toplevel. The only thing standard ANSI CL can do is ignore these declarations.
10:36:27
Shinmera
just weird that DECLARATION exists at all given it's pretty useless if you can't react to it.
10:37:08
phoe
Shinmera: every Lisp implementation is allowed ignore *ALL* declarations aside from notinline, optimize safety and two more I think.
10:37:45
phoe
So, in pure theory, e.g. DECLARE CONNECTED from qtools should be freely ignorable in standard CL.
10:48:12
lukego
phoe, Shinmera: Seems like in this case the package gets a (QL:QUICKLOAD ...) before being transported onto read-only. Seems like that should trigger an ASDF:LOAD-OP right? I'm surprised there is more generated stuff being done after this.
10:53:55
jackdaniel
in principle compile-op compiles everything, load-op may use pre-existing artifacts
10:57:23
phoe
OK, to be correct - LOAD-OP may invoke COMPILE-OP if something is not compiled, but after LOAD-OP the system is sure to have been compiled and loaded
11:00:41
lukego
OK maybe I need to start digging in on a package-by-package basis and see what it is trying to do when it errors on r/o fs
11:08:11
phoe
lukego: that's the way to go, sadly. There are no general rules that can be applied here to help you.
11:08:50
lukego
I suppose that my "nuke them from orbit" option would be to setup some kind of read-write overlay/temp file system but let's see if it comes to that.
11:09:28
lukego
I'm looking at CL-UNICODE .asd now and seeing :perform (load-op (o c) (symbol-call :cl-unicode '#:create-source-files)) and wondering if it generates *every* time loaded?
11:12:11
phoe
or at least that is what https://github.com/edicl/cl-unicode/blob/911767add6656990e523cf3840f9f59a36a05385/build/dump.lisp#L241 tells me
11:12:57
jackdaniel
phoe: if you specialize load-op to do something more, then it will be done at each load
11:13:00
phoe
there is no need to generate this every time the system is loaded, only every time it is compiled
11:14:08
phoe
my question, though, is - can't CL-UNICODE cache the results of its compilation, probably by only generating and dumping the data in COMPILE-OP instead of LOAD-OP?
11:15:23
lukego
lemme see how to coax ql2nix to override the standard quicklisp version of cl-unicode with a local one that moves this from LOAD-OP to COMPILE-OP..
11:19:44
edgar-rft
https://edicl.github.io/cl-unicode/ says "CL-UNICODE builds parts of its source code automatically the first time it is compiled. This is done by parsing several Unicode data files which are included with the distribution and might take some time. This happens only once." but don't ask me if and how it works.