freenode/#clasp - IRC Chatlog
Search
14:24:02
drmeister
I just hit a problem that looks like the one that kpoeck is seeing - but in the badge branch that I was about to merge.
14:27:02
drmeister
Interesting observation - I'm doing this on linux and lldb is showing common lisp symbols in the backtraces.
14:28:56
drmeister
lldb is complaining about the DWARF is what it looks like - and we generate DWARF.
14:37:29
Bike
also, i'm still workin on bignum stuff, and i noticed cando uses bignums directly a lot - as in the mpz things, which we will presumably no longer be using
14:39:15
drmeister
I see one place here: https://github.com/cando-developers/cando/blob/master/src/chem/oligomer.cc#L729
14:46:55
drmeister
Bike: my debugging experience here with the undo debugger is very interesting. It's revealing some of the holes in our DWARF generation.
14:47:19
drmeister
CODEGEN-STARTUP-SHUTDOWN^COMPILER^FN^^ (closure=<optimized out>, nargs=<optimized out>, farg0=<optimized out>, farg1=<optimized out>, farg2=<optimized out>, farg3=<optimized out>) at cmpintrinsics.lsp:9999912
14:47:48
drmeister
That looks like one of those cases where I stuck 999999xxx into the origin because I couldn't think of anything better.
14:48:22
drmeister
Of course it's right on instructions that I really, really want to know where they came from.
15:05:11
drmeister
I think another remarkable thing about this debugger is even though variables may be optimized away through much of the code - I should be able to recover them in the registers at particular times when they are used.
15:08:12
Bike
i don't know where the remainder of those are coming from. we should have source info on all instructions originating from compile-file by now. i don't know why this keeps happening.
15:18:00
drmeister
It's not a big deal - we can fix them up now that we can pinpoint where they are with udb (undo debugger).
15:18:50
drmeister
I know how to implement (1) image save/load for both MPS and boehm (if we want) (2) multiple entry points (3) garbage collected code (4) excellent debuggability.
15:20:18
drmeister
The image save/load with boehm is kind of remarkable. We will get a compaction of memory when we image save/load.
15:20:30
drmeister
We just need to know what MPS knows about objects and apply that to the Boehm GC.
15:22:10
drmeister
But I may not bother with Boehm image save/load because to get that information we would need to build with boehm, run the static analyzer using that and then build with boehm again in a new build stage that uses clasp_gc.cc to build boehm to add the image save/load facility.
15:22:33
drmeister
This is what we do with MPS and I'd like to move to MPS completely and only use Boehm to run the static analyzer.
15:23:57
drmeister
This undo debugger opens up a wonderful new future where low level debugging isn't as much of an excruciating slog that it has been for me.
15:33:45
drmeister
I'll spend more time with it on the weekend. But I can already see how fantastically useful it will be for these problems.
15:33:56
drmeister
https://www.dropbox.com/s/zeqzasoqcvoqc5x/Screen%20Recording%202020-07-31%20at%2011.31.39%20AM.mov?dl=0
15:36:12
drmeister
Since I can recover registers at any point in time I can access lexical values in optimized code.
16:20:15
karlosz
does anyone know how to reliably reproduce? still builds and loads asdf fine for me
16:21:26
drmeister
karlosz: Not yet. I have a macOS and a linux machine where it loads asdf fine for me and a completely different setup (badge branch) where a similar problem happens.
16:21:53
drmeister
::notify kpoeck When you get that error you are seeing starting up iclasp-boehm. Can you run ./iclasp-boehm -f debug-startup
16:22:29
drmeister
That might help us figure out if it's the same problem cropping up in a not completely reproducible way.
16:32:03
drmeister
Bike: If your crash is in a defclass and kpoeck's crash is in a defclass - then we have a pattern.
16:35:10
drmeister
I've got it doing a bclasp-compile* - does that happen at startup? I guess when you are loading a DEFCLASS is the compiler being invoked to create generic functions or something?
16:36:33
Bike
static-gfs computes a function that has the effect of make-instance for a given class.
16:37:27
drmeister
By the way - I'm using the -tui GUI interface of udb (which is running on top of gdb) and I see common lisp source.
17:01:28
drmeister
Bike and I just spoke - it may be a problem with static-gf's not being set up at load-time. Bike is looking into it.
19:14:39
Colleen
kpoeck: drmeister said 17 hours ago: I was able to build clasp with your wscript.config on macOS Catalina
19:14:39
Colleen
kpoeck: drmeister said 2 hours, 52 minutes ago: When you get that error you are seeing starting up iclasp-boehm. Can you run ./iclasp-boehm -f debug-startup