libera/#clasp - IRC Chatlog
Search
19:44:59
Bike
it's got like fifteen thousand frames of bytecode_vm so it's probably going through almost all instructions
19:45:10
drmeister
My experience is the machine code and registers you can take to the bank. The source info that udb layers on top of it can be wrong sometimes.
19:45:56
drmeister
I had a breakthrough with debugging the VM a couple of days ago - it's what let me find the _longjmp thing that was messing with framepointers.
19:46:31
drmeister
I print debugging output (carefully) and then write a CL program to process it and find where problems occur.
19:47:23
drmeister
It was very helpful debugging the push_frame and pop_frame - The CL program loaded all the pushes and pops and identified when a pop occurred that didn't match a push.
19:53:45
Bike
ok, so backquote_append is also a C++ function with a wrapper with &va-rest. a pattern is forming.
19:57:47
Bike
and yet i'm only seeing problems with this generic function thing changed, so what the hell.
20:10:47
Bike
i had it print out everything it maybe-compiles, and it looks like it actually crashes halfway through printing one. well that's pretty frickin suspicious.
20:15:08
Bike
although actually that could just be a recursion thing, so i guess i should guard against that
20:39:04
Bike
i suspect that the vm goes really pear-shaped on infinite recursion, but i haven't yet caught it in the act. might need va-rest or something...
20:43:10
drmeister
I didn't get the page guard right on the VM - so the stack overflows without telling you it is overflowing.
20:44:03
drmeister
Edit clasp/include/clasp/core/configure_clasp.h down at the bottom you turn on DEBUG_VIRTUAL_MACHINE and it will catch overflows.
21:31:37
Bike
ok, so avoiding bclasp/cclasp in clos is going to boil down to the sort of stuff we were already doing to make discriminate stop doing weird internals stuff as much as possible, looks like
21:40:30
Bike
although... actually, there's probably not much point in bytecompiling the reinitializers and other static gf things... hrm...
2:42:42
Bike
and i'm not sure doing the static-gfs optimizations is even worthwhile if we just bytecompile stuff (it might be though)
2:44:38
Bike
removing the compiler in effective-method-function is doable regardless, and that's the one that's not just an optimization
2:45:43
Bike
come to think of it, the make-instance static-gfs stuff shouldn't use discriminate, and that's the most important one. so i can probably keep that one on no prob
2:59:41
Bike
for some reason it can't build slime though. it's trying to use the compiler macros even though i disabled them... stale fasls probably
3:30:35
Bike
kind of seems like it's pulling asdf fasls from some mysterious location that's not ~/.cache. oh well. i'll figure it out tomorrow