freenode/#clasp - IRC Chatlog
Search
18:55:19
drmeister
I'm using this bug to familiarize myself with the Undo debugger and I realized that I love my Python extension to lldb to inspect lisp objects and I want it in the Undo debugger.
18:55:36
drmeister
So I'm modifying it so it's portable across lldb, gdb/python3 and gdb/python2 (udb)
18:56:12
drmeister
It only needs the ability to read from memory and print to the display - so I'm wrapping that behavior in an interface class and passing that to my clasp_inspect extension.
18:56:52
drmeister
It's a bit fussy because I have to figure out how to load it into lldb with Python3 and udb, which is still using Python2.7 - dangnabbit.
19:12:26
drmeister
I may need Bike though - the last one that we fixed was due to the compiler being invoked because of an invalidated constructor in static-gf. That's what it looks like now as well.
19:16:55
drmeister
https://github.com/clasp-developers/clasp/commit/76baa9fe8c867a5a79d10993b2dbca2f41de7dc2
19:17:24
drmeister
https://github.com/clasp-developers/clasp/commit/76baa9fe8c867a5a79d10993b2dbca2f41de7dc2
19:23:24
drmeister
It may be that every invocation of 'make-instance at the top level during load time needs to be handled differently.
19:26:31
drmeister
But it seems like when it happens with a build - it keeps happening with that build. Do you feel that way as well?
19:30:11
kpoeck
I keep changing wscript.conf, e.g now added DEBUG_MONITOR to be able to use -f debug-startup, but in my last build it doesn't happen
19:39:20
kpoeck
(when core:*debug-startup* (core:monitor-write (core:bformat nil "startup cclasp-compile* form: %s%N" form)))
19:39:42
drmeister
I see - we are printing messages when core:*debug-startup* is T and doing a compilation.
19:40:10
drmeister
However, these compilations are happening using the bclasp compiler - so it's not triggering this code.
19:41:08
drmeister
I appreciate the heads up. I often forget how this code works even though I wrote it.
19:44:21
drmeister
kpoeck: I'm going to start implementing image save/load for MPS as soon as I get this current problem resolved. I think I figured out how to do it.
19:45:06
drmeister
We have the ability to walk MPS memory and so I can serialize every object to a file.
19:45:25
drmeister
Then I can read the objects back in at startup and fix up all the internal pointers.
19:46:43
drmeister
The multiple entry points will use the approach used by sbcl. Every function call will do a little calculation to figure out what entry point it should use.
19:48:32
drmeister
It will give us back a register argument and it will enable tail-recursion because a function will consist of the body of the function using the fast-call calling convention (that allows tail-recursion) and a collection of ancillary functions for each arity of arguments that call the body of the function.
19:50:19
drmeister
It would be easier to implement this once the llvm JITLink for linux is more mature. I don't control that though.
20:08:13
drmeister
This time in Concrete-Syntax-Tree/Lambda-list/standard-grammars.lisp - it calls generate-grammar and that creates instances at load-time.
20:09:33
drmeister
I'll keep playing whack-a-mole with this until something new happens or I get through startup.
20:11:23
stassats
drmeister: can your time traveling debugger travel to the time before the pandemic?
20:15:00
drmeister
I'm writing a Python extension for gdb and lldb that interrogate lisp objects in memory.