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
20:19:30
kpoeck
with commit c802f5f75c510ac227e863334953d0517f2c7a42 Tue Jul 21 21:12:08 2020 -0400 Tue Jul 21 21:12:08 2020 -0400 i can build fine
20:34:45
drmeister
Hey - we are hitting a problem that looks like the problem you hit. Or it might be a different problem. Bike is currently working on it.
20:35:35
drmeister
You keep coming into irc with a different ID. I worry sometimes that notifications won't get through to you.
20:36:20
drmeister
kpoeck67: Ok. If you are getting the problem in codegen-startup-shutdown then that really looks like the problem we are all hitting.
20:40:10
drmeister
I was too - it was on Bike's desk at Temple University. Now it's at ThirdLaw - but I'm thinking of moving it back to my house now that my fiber optic line is back up and not in danger of being ripped out by falling trees.
20:40:41
kpoeck67
I now share my office with a guy from Brazil, so trying to learn Portuguese now to mix up my languages even more
21:01:53
drmeister
Bike: Thank you. I've merged your new master code into badge and I'm building. What about realloc do you need? The ability to resize the vector - right?
21:05:32
Bike
basically, with bignums it's frequent to want to allocate the worst-case size, and then shrink
21:12:37
drmeister
Yeah - resize. You are using this class - right ? https://github.com/clasp-developers/clasp/blob/master/include/clasp/core/bignum.h#L326
21:13:09
drmeister
So if you want to allocate for the worst-case size and then shrink - that's a very helpful thing to say.
21:13:53
drmeister
GCVector as a 'capacity' and a 'length' and we can make the length from zero to 'capacity' - it's a stretchy vector.