libera/#clasp - IRC Chatlog
Search
13:28:58
Bike
not getting anywhere with libunwind, so going back to debug info... debuginfo.lisp mentions "the fact that a source position info's filename is often irrelevant", which i don't understand
14:00:40
drmeister
Let's take another look at libunwind later today. Linking a library shouldn't be this difficult.
14:01:24
drmeister
I've figured out non-consing transfer of info from a C++ library to CL. Using adjustable strings with fill-pointers
14:08:25
drmeister
I've been experimenting with multithreaded programming and yesterday I tried batching jobs for the threads but that didn't improve the scaling - so now I'm looking at strategies to reduce consing. I want to write efficient multithreaded code going forward and this is an test case for how to do that.
14:27:46
drmeister
By reducing the consing using the approach above I dropped the time to analyze the 48GB of data from 30 min to 23 min.
14:41:43
drmeister
Bike: If I wanted to compile every dtree interpreter all at once - what would I do?
14:42:02
drmeister
Do we have a way of getting all the dtree interpreters? I can walk memory and find them if not.
14:44:32
Bike
i think what you'd want to do is call clos:compile-discriminating-function on whichever generic functions are concerning
14:46:17
drmeister
The difference between core::clos__interpret_dtree_program and [perf-215208.map] is what I figure is interpretation time?
14:46:36
Bike
well, i'd try compile-discriminating-function on whatever that in particular is and see how it goes
14:46:56
drmeister
When I build a snapshot - that's a good time to compile all the extant interpreters.
14:48:31
drmeister
I would add a facility to walk memory and gather up objects that match a pattern. At the very least a stamp.
14:56:04
Bike
it seems unlikely to me that there are very many generic functions not named by interned symbols
15:03:11
drmeister
Bike: If you give me a function that I could call that would compile everything I would call it at the beginning of image_save and then I'd collect everything (including interpreters) and then package everything up.
15:22:38
drmeister
I probably have the same backtrace. I started up a little different from you probably.
17:18:34
drmeister
Bike: If I were to put those functions somewhere in the lisp code -where would you like them?
17:35:02
Bike
so i mean the thing is with this latest error, we're not doing any libunwind calls at all, and it still crashes
17:35:24
drmeister
Yeah - I don't trust that we are linking properly and I don't want to read too much into that yet.
17:35:28
Bike
that does look like the linking problem, but i fixed the linking problem (or at least it builds iclasp now)
17:38:14
Bike
changed the wscript to do cfg.env.append_value('LIB', cfg.env.LIB_UNWIND) unconditionally instead of just on mac
19:01:19
drmeister
Sorry - mine was using gcc - I just noticed it in my paste above. I've been sloppy.
19:09:44
drmeister
So as a sanity check I generated the CPP generated output. We are using this header file...
19:11:09
drmeister
All is right with the world. The basic contract between computer and programmer still holds.
19:24:31
drmeister
But I need to turn on libunwind the way we have been turning it on. So - do you have any recommendations?
19:25:17
Bike
do cfg.env.append_value('LIB', cfg.env.LIB_UNWIND) unconditionally, ditto LIB_UNWIND_X86_64, and uncomment the cfg.check_cxx calls