freenode/#lisp - IRC Chatlog
Search
20:13:59
drmeister
Is this a problem? (subtypep (find-class 'core:simple-vector-int8-t) 'vector) -> NIL && (subtypep (find-class 'core:simple-vector-int8-t) (find-class 'vector)) -> T
20:14:27
drmeister
It's inconsistent right? It means I still have to weave 'core:simple-vector-int8-t into the subtypep code.
20:23:22
jasom
e.g. all strings are in a single class despite there being 3 string types specified in the standard
20:27:15
jasom
I don't know if you're allowed to have the class of a vector be something other than the ones specified in the standard
20:27:47
jasom
hmm actually I think you are because IIRC some implementations define vectors of base-char to be a subclass of string
3:13:51
pookleblinky
heh. Mezzano, what hopes to become a full OS, is smaller than neovim *and* sbcl.
3:17:49
beach
Don't worry, it will get bigger as new features and new compiler optimizations are added.
3:46:38
beach
He wants to know whether I would "adopt" his version. I need to know what that means. I certainly had not planned on any extensive maintenance work on mine.
3:50:29
Lord_Nightmare
maybe replace yours with his, but host yours as another branch on that same project?
3:54:07
beach
It is a bit sad that Jean-Philippe does not hang out here, or they could have coordinated this work.
4:17:58
newdan
In SLDB/Slime, I can put my cursor over a stack frame and hit the v key to show the code that the frame corresponds to. I can hit t to show locals, and I can hit e to evaluate an expression in the frame's context in the CL-USER package
4:18:25
newdan
Is there any way I can evaluate code in the frame's context but in a different package? Particularly, in the package that the frame's code is defined in?
4:19:49
newdan
Bike: Is that the most convenient way to do it? Is that a normal part of your own workflow when debugging with Slime?
4:22:51
newdan
Even though I use defpackage/in-package which seems like a pretty standard way of doing it
4:22:51
Bike
as in, swank has a frame-package implementation interface, and sbcl just returns nil (meaning "lol i dunno")
4:27:55
newdan
I have (declaim (optimize (speed 0) (debug 3) (safety 3))) at the top of one of the files although that feels like a pretty crappy way of doing it
4:29:16
beach
I have that as a default, because I figure I will put explicit declarations where I need more speed. And there are very few such places.
4:29:26
newdan
Because I want it to apply to basically everywhere, and I can't tell when that declaim happens or if it will have a good impact
4:30:18
newdan
lol yes I was getting that impression, will try that now and see if it helps, thanks for the tip
4:31:04
newdan
I also have (sb-ext:restrict-compiler-policy 'debug 3), I don't know if that's needed or what that even does
4:31:45
newdan
But as a newbie I agree beach , it would be nice to have debugging turned on unless it's turned off on purpose
4:32:17
newdan
For a while I was really confused that a bunch of my vars seemed to be missing, I've since learned that I guess the compiler tries to reduce the number of variables when possible
4:34:00
beach
newdan: For example, it is common for the compiler to eliminate a variable that is no longer "live" in that it can't be referenced anymore, even though the variable is still in scope.
4:35:46
beach
newdan: So, for instance, if your stack frame corresponds to a control point inside a LET, but the last reference to some of the lexical variables precedes the control point, then you won't see it in the stack frame.
4:36:23
newdan
I see, that's pretty cool. Unfortunately the e key on a frame still wants to execute in CL-USER after putting the declaim stuff in sbclrc, but I'm still pretty happy to at least have moved that stuff to sbclrc
4:36:44
beach
I don't know the details of SBCL, but if I were working on it, I would keep variables live artificially until they get out of scope when DEBUG is 3.
4:37:34
newdan
Oh, I don't know. I restarted SBCL but I didn't try to look for/delete FASL files or anything
4:39:21
fiddlerwoaroof
beach: on a slightly off-topic note, shouldn't it be possible to use method specializers as type declarations?
4:40:41
beach
Is it not possible? Method specializers are either class names or EQL specializers. Both are allowed in declarations. No?
4:41:22
newdan
Still not fixing the eval in frame. I am using quicklisp to load my system, I dunno if (ql:quickload :foo :force t) does the same thing you want (although it did look like it forced something to recompile)
4:41:30
fiddlerwoaroof
I should be more specific, I was surprised that sbcl didn't seem to make use of such type information.
4:42:10
fiddlerwoaroof
I used DEFMETHOD to decalare one argument an integer and another a string and then I passed the string to format as ~D
4:42:28
fiddlerwoaroof
usually, if sbcl knows the type, it'll warn you, but I didn't get any warning
4:42:29
beach
fiddlerwoaroof: For standard objects, it is tricky because some other thread may do a change-class.
4:43:28
fiddlerwoaroof
I was trying to figure out why the type didn't propagate like I half-expected it to
7:03:48
fiddlerwoaroof
Am I missing anything important in this? I'm trying to write a macro for running a single method of a generic function in isolation.
7:06:58
fiddlerwoaroof
Everything seems to work, I'm just wondering if I'm missing any subtle edge-cases
7:09:00
beach
Looks OK to me. Notice, though, as I pointed out the other day, that some classes of generic functions may use a different signature for its methods.
7:11:09
fiddlerwoaroof
I didn't think of that, I'll have to keep that in mind if I start using this more generally
7:12:38
beach
For example, if it can be determined that no method calls CALL-NEXT-METHOD, then the NEXT-METHODS argument may be omitted.
7:13:33
beach
Another example: I can imagine some systems which would not cons up a list of arguments to pass to methods if, say, there are only required parameters.
7:17:23
pjb
fiddlerwoaroof: also, it will fail since you don't define next-method-p and call-next-method!