freenode/#lisp - IRC Chatlog
Search
19:05:19
drmeister
If anyone has pointers on how to get Clasp's subclassp to respond properly - I'm all ears.
19:05:40
drmeister
I will continue to dig into the subtypep code to figure out where the crucial test is.
19:07:52
drmeister
Well, one reason I was having trouble was cacheing of the subtypep result- I figured out how to disable it.
19:13:21
axion
While I don't have a solution, I'd just like to thank you for your determination with Clasp over the years. I have not tried it yet, but it is a project on my radar.
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