libera/#sbcl - IRC Chatlog
Search
13:40:31
phoe
Krystof: AFAIK SBCL at some point in time had a compile-time warning for things like (defstruct foo (x 0 :type string)) - do you know if I remember correctly and what happened to it?
13:41:48
Krystof
I can't remember when it got removed. (I think it was unintentionally, as a side-effect of something else)
13:45:32
phoe
1.5.9 mentions: enhancements: more thorough compile-time type checking of various initforms (defclass, &key, defstruct).
14:25:12
phoe
I mean, it's not the first time SBCL would issue type warnings that broke already broken code
14:25:15
phoe
example being https://github.com/AccelerationNet/access/commit/cadf09373da4afc739cf177d0fcea3612778a3f7
15:18:00
scymtym
phoe: try (locally (declare (optimize (safety 0))) (defstruct f (x (print t) :type fixnum)))
15:20:54
scymtym
phoe: i guess the reasoning is like "it breaks too much stuff if enabled by default, but for (safety 0) the type error can cause a (runtime) crash so the warning is justified there"
15:22:25
phoe
scymtym: is the "breaks too much stuff if enabled by default" documented anywhere? asking for the purpose of writing a SBCL RFC-esque mail for enabling additional compiler warnings, codename SB-PEDANTIC
15:24:28
scymtym
phoe: i think https://irclog.tymoon.eu/freenode/%23sbcl?around=1574802609#1574802609
15:28:59
scymtym
in any case, bac9b5e7a introduced the check and 1513ac241 (right before the release) restricted the check to (safety 0) so that's the timeframe in which the discussion (if any) must have happened
15:38:40
Krystof
my memory is that there was a primordial check for defstruct slot initforms and type, well before 1.0
16:02:38
phoe
which SBCL-defined packages are "external" and therefore meant to be depended on by other people, and which are "internal"? I can't see a list in the manual
16:05:40
phoe
still, there's 38 SB-FOO packages I have access in my image; I'd rather have an explicit ones of those that I should touch as a user
16:06:41
mfiano
My guess is stay away from sb-int, sb-c, sb-vm, and maybe more. If in doubt, look at nibbles :D