freenode/#sicl - IRC Chatlog
Search
8:31:15
no-defun-allowed
I get the same error with (LOOP UNLESS T DO (PROGN)), which is quite strange.
8:43:10
beach
heisig: I think you are being a bit unfair to ASDF. It looks quite well written to me, at least what I have seen so far.
8:45:42
heisig
beach: I didn't mean to sound overly critical. I just think there are some ways it could be improved further.
8:48:54
heisig
In terms of functionality, mostly. I think Fare had a nice write-up of what could be improved there.
13:27:11
beach
Now I can generate an ASDF plan correctly without warnings about deprecated APIs. I still need to configure how ASDF determines whether an action needs to be performed or not.
14:19:10
beach
While Fare's English is relatively good, some of his French quirks are visible in the comments in ASDF. :) Like "associated to" rather than "associated with".
16:19:30
beach
I think I figured out what to do, but I don't attempt it until tomorrow. I am tired after a long day of "work" (mainly reading ASDF source code and experimenting) and if I attempt it today, I will make mistakes.
16:20:44
beach
I think the secret is to define a method on COMPUTE-ACTION-STAMP that consults the global environment to see whether a file has already been loaded, and if so, returns the timestamp of when that happened.
16:23:35
beach
But I am convinced that using ASDF itself to load code into environments during bootstrapping is the right thing to do, as opposed to the kludge I created.
16:25:38
beach
I can then even work on creating more ASDF system definitions for the SICL code itself, rather than calling functions to load files explicitly as part of bootstrapping.
18:55:53
Bike
karlosz: i completely misdiagnosed the mirtype problem. the actual slowdown was easily fixable so the other stuff will just be a nice little optimization rather than performance critical
18:56:10
Bike
before i can merge i still need to fix some exciting problems like (cond ((values 'x 'y 'z))) => X Y Z
18:56:51
Bike
the actual problem is that the way master works with rtypes, (funcall x ...) and (funcall (values x) ...) compile identically
18:57:04
Bike
with the new code, a "take the primary value" operator gets thrown in, so suddenly there are no local calls anywhere
19:00:56
Bike
well, they're still there for normal calls, but not any funcall or multiple-value-call
19:02:34
Bike
i mean, in more detail, say you write (funcall #'f ...). this gets compiler macroexpanded to (cleavir-primop:funcall (coerce-fdesignator #'f) ...). coerce-fdesignator is a clasp function and this will get macroexpanded to (identity #'f), which turns into (prog1 #'f), which turns into (values #'f)