libera/#sbcl - IRC Chatlog
Search
14:16:47
Krystof
jackdaniel: you can muffle it for the particular interface functions where you or someone else has decided that it's a good idea: (defun foo (&optional x &key y) (declare (sb-ext:muffle-conditions sb-kernel:&optional-and-&key-in-lambda-list)) (list x y))
14:22:04
Krystof
and if it was a deliberate choice, it was a terrible choice: have you tried to use note-output-record-child-changed?
14:25:33
Krystof
in the olden days, "why does read-from-string not accept my :start keyword?" was a faq
14:26:07
Krystof
but needing to know the implicit defaults of five? six? arguments in order to be able to use the :check-overlapping keyword?
14:27:47
jackdaniel
sure, it is a bad style and it is a style warning after all, still I don't like it (because such lambda lists are usually not a result of sloppiness like not using binded variables)
14:28:23
Krystof
what I say to myself is: if the style warning had been there in 1990, maybe whoever came up with note-output-record-child-changed would have done something different
14:29:14
Krystof
I agree that for the specific case of something that's in a specification document, it's annoying. And I hope to make it that those three cases are the only cases in existence. (There might be one more in CLIM, can't remember)
14:30:35
jackdaniel
there is present, present-to-string, with-input-eidtor-typeout, with-input-editing
14:44:00
jackdaniel
speaking of note-output-record-child-changed and muffling conditions, I suppose that I need to put the whole defgeneric in locally declare, right?
15:18:08
stassats
Krystof: the way i end up with &optional and &key is when i exported a function with &optional, and after some time had to extend it
15:18:37
stassats
so that warning wouldn't help, the warning would have to be "using &optional in an exported function, now you can't add &key!"
19:55:33
karlosz
i have more stack changes coming up which take block local information into account rather than hacking it which the random tester will probably have a field day with
19:56:20
karlosz
stack is pretty incoherent: it's weird that dx lvars go in the pushed set but dx lvars are totally absent from the popped set for each block
19:56:45
karlosz
using somewhat unrelated mechanisms like map-block-nlxes and entry nodes to get at that info
19:57:57
karlosz
envanal could just insert a cleanup funny node that has that info and propagate that which ltn uses to put on the popped set rather than scanning the cleanups for each block manually
19:58:16
karlosz
of course the way we do conditional dx means we have to treat dx totally differently
19:58:51
karlosz
(let ((x (if y (cons a b) 4))) (declare (dynamic-extent x)) blah) just doesn't work due to the way we represent conditional dx
19:59:37
karlosz
maybe having a concept of a 'root object' lvar which the inaccessible subparts are subordinate to
20:00:36
karlosz
though other stack objects could be made intermediate to the inaccessible subparts and the declared dx object which would make sharing a coherent stack pointer probably not feasible
0:56:15
pdietz
There was a lot of pain with dx in the past. I have a specialized random tester for it.