Search
Tuesday, 21st of May 2019, 9:56:36 UTC
10:38:10
no-defun-allowed
Morning heisig!
12:02:32
Bike
this seems like an actual bug.
12:03:08
Bike
i wonder what the problem is. the %f body isn't being compiled in an environment where x is special?
12:04:08
Bike
the bug? https://paste.gnome.org/pou91nks7
12:04:36
Bike
in clasp/cst this returns BAD, but it should return GOOD
12:04:44
Bike
oh, maybe it's just not doing special bindings for &aux correctly
12:05:25
Bike
((lambda (&aux g) (declare (special g)) (boundp 'g))) => NIL
12:05:47
beach
Looks like you are right.
12:10:45
Bike
the lambda list processing goes through the normal set-or-bind-variable, so maybe the declaration isn't noticed correctly
12:11:57
Bike
yeah, process-parameter doesn't get (special g) in the idspecs
12:14:31
beach
Does it work for parameters in other positions in the lambda list?
12:15:33
Bike
yeah, required parameters are fine
12:15:43
Bike
i think it's because itemize-lambda-list returns no items for &aux
12:16:29
Bike
https://github.com/robert-strandh/SICL/blob/master/Code/Cleavir/CST-to-AST/itemize-lambda-list.lisp#L30-L32
12:17:26
Bike
given that itemize-lambda-list is only used for separating the declaration specifiers, i guess i thsould return something here
12:17:36
Bike
and doing so might not break anything else
12:40:33
beach
Oh, I only now saw karlosz' link.
14:06:11
Lord_Nightmare2
** NICK Lord_Nightmare
20:09:45
Bike
beach: i hit an issue with local environments in cleavir. it's like this - say we have a (declare (notinline foo)) - this will end up as an environment #<INLINE #<ATOM-CST raw: FOO> #<ATOM-CST raw: NOTINLINE>>. stuff like FUNCTION-INFO deals with symbols, so it fails to see the local declaration.
20:10:09
Bike
beach: is it intentional for these environments to have CSTs in them, or should we take raws? I'm asking because I know you've been dealing with trucler and stuff.
Tuesday, 21st of May 2019, 21:56:36 UTC