freenode/#sicl - IRC Chatlog
Search
4:25:01
ck_
beach: [no action needed on your part] I did most of what we discussed about the floating printer (good thing too, because it revealed a bug in the clhs-conforming code). I didn't touch the variable names, but put in some documentation strings instead. If you ever use it, I'd like to know :)
4:29:13
ck_
beach: so like I told the mcclim people, I'd like to say thanks to you as well. Not everyone is so welcoming.
4:33:46
ck_
You said, if I recall, in #lisp that "by end of year" is the current planning for an executable sicl?
4:34:23
beach
Yes, I just wanted enough time, but still push myself a bit. And I needed a well defined date.
9:06:32
beach
Somewhere, very likely programmatically generated, I have a (DECLARE (DECLARE...)) somewhere.
9:07:13
beach
Before CST was fixed by Bike, it ignored this declaration, because it didn't recognize the type of declaration.
11:31:52
scymtym
this seems suspicious assuming DECLARATION-CSTS actually holds CSTs: https://github.com/robert-strandh/SICL/blob/master/Code/Cleavir2/CST-to-AST/convert-let-and-letstar.lisp#L106
12:29:35
scymtym
beach: sure, i thought this was a good opportunity to put the s-expression pattern matcher to work
13:21:09
Bike
i should probably change cst to signal an error on declare declare, since it's definitely illegal
13:24:37
Bike
Well, what error are you getting? I would expect CST to treat the DECLARE as a type declaration
13:33:58
beach
So (declare (declare (ignore))) has been transformed into (declare (type (declare (ignore))))
13:43:00
beach
Then it calls MERGE-TYPE with the client, with the description (i.e. NIL) and the type (i.e. DECLARE).
13:44:00
beach
MERGE-TYPE specializes on the description, so the default method is called, which calls error.
13:49:47
beach
OK, so we have an ordinary list of CSTs, each one being a CST version of (declare ...).
13:53:40
beach
But if there are declarations, we build (let <bindings> (declare (declare ...) (declare...)) RESULT) instead.
13:56:48
Bike
wouldn't doing (cons (cons 'declare (mapcar #'rest declarations)) result) work too? so (declare x) (declare y) becomes (declare x y)