Search
Thursday, 10th of January 2019, 13:01:06 UTC
13:06:08
scymtym
i tried (defun foo (x y) (class-name x y)) with sbcl-1.4.15 and it doesn't signal a warning
13:10:04
jdz
Signals for me. Maybe because I have safety set to 3.
13:13:25
jdz
Or rather, sb-ext:*derive-function-types* is true.
13:17:12
jdz
So yes, it would be nice if this warning would be emitted when the callee is a generic function without setting sb-ext:*derive-function-types*.
14:00:18
pfdietz
ACTION reads "calls the GF" as "calls the girlfriend".
15:37:08
stassats
compile-or-load-defgeneric clears the GF type
15:37:23
stassats
that's why defmethod self calling doesn't get any mismatch warnings
15:40:18
stassats
writing #<BUILT-IN-CLASSOID FUNCTION (read-only)>, there
15:40:29
stassats
but after evaluating it it's actually :generic-function
15:40:36
stassats
using :generic-function does give a warning
15:44:23
stassats
fine, but doing (defmethod whatever (x) (whatever x 32)) for the first time doesn't warn
16:07:11
specbot
https://bugs.launchpad.net/bugs/1811251
19:01:06
stassats
pfdietz: good news: it's not my regression, bad news: it's not my regression
19:07:58
stassats
but it appears to be newish
19:17:52
stassats
i'm writing a tool for inspecting IR1, so i'll delay investigating until then
19:18:00
stassats
as it should make things simpler
23:12:25
stassats
ugh, i'm deep into the weeds with defgeneric ftype specifiers
23:12:57
stassats
it tries to be really smart and ends up being dumb
23:13:13
stassats
so i have to unravel all the smartness and keep it consistently dumb
23:33:21
stassats
how come (progn (defgeneric foo (&key)) (defmethod foo (&rest rest) test) (foo :bar 10)) is an error?
23:34:18
stassats
yet if the gf is defined by DEFMETHOD it's not
23:35:32
stassats
(progn (defmethod foo ((x list) &rest bar) bar) (defmethod foo ((x integer) &key bar) bar) (foo nil :bar 20))
23:37:00
stassats
ok, i don't need to worry about that for compile time warnings, as i'm simply disabling keyword checking there
23:37:31
stassats
because new methods can add new keyword arguments
23:37:43
stassats
after compilation is finished
0:04:22
stassats
ugh, this is PCL and i'm close to just giving up
0:04:38
stassats
although it's not the most convoluted part
0:10:37
stassats
and i gave up, who knows what it wants to do
0:11:02
stassats
i know what i want to do, but it'll probably break something
0:14:02
stassats
the gf created by defmethod has :no-lambda-list in its arg info, then gf-lambda-list gets the lambda-list of the last method
0:14:07
stassats
what happens if it's removed?
0:22:42
stassats
maybe i can just fix the original problem and not try to make sense of anything else
Friday, 11th of January 2019, 1:01:06 UTC