freenode/#clasp - IRC Chatlog
Search
12:08:58
drmeister
The "bit width" of a bitvector is 1, of a crumb-vector is 2 and of a nibble-vector is 4.
12:10:45
drmeister
Hey Shinmera - at some point I'll have to mention that I've completely broken the build on linut and linum - I haven't had time to come up with a solution.
12:11:37
drmeister
I added two more dependencies (libunwind and liblzma), which turned out to be useless because I can't get libunwind to work properly. I have to either get it to work or remove it again.
12:13:12
drmeister
I could get some basic backtraces working on linux if I could get libunwind to work - but it thwarted my initial attempts.
12:14:40
drmeister
Well, thank you. I guess that sounds like a passive aggressive way to ask if you could install libunwind - but really - I'm not sure how to proceed with it.
12:15:55
drmeister
I'll dig into it more once I get mps working, it did look like a nice way to get minimal backtraces.
12:21:26
drmeister
It's supposed to be a portable library to walk stack frames and gather info on them using DWARF. It has a mechanism to register JITted code - but I couldn't get it to work so I stepped back from it for a bit.
12:25:07
drmeister
It's tricky to get backtraces with function names for JITted frames and to match the frames up with Common Lisp arguments in some frames when (declare (optimize (debug 3)))
12:26:35
drmeister
I put in a question to the llvm-dev group - I should dig through my email and see if I got a response.
14:34:54
drmeister
'cause it's deadsville over here - although I did have one productive conversation about moving a 3000lb marble table
14:35:59
drmeister
We just got an instrument called a "Langmuir trough", it's used to create single molecule thick membranes. It benefits from vibration suppression. The 3000lb marble table in storage in our chemistry dept. basement would do that nicely.
14:37:26
drmeister
I am having some productive quiet time sorting out bitvector size calculations for MPS.
14:38:58
drmeister
I'm also rearranging the MPS object layout tables to eliminate pointer chasing in many cases.
15:27:20
Bike
i got an "sclasp-boehm-common-lisp.bc" file but i'm not sure how to get an image out of it. wondering since i'll need to understand the load process in more detail...
15:28:16
drmeister
When you build Clasp the "normal" way it generates a clang link command at the end. You can copy/edit/paste that.
15:29:23
drmeister
It links together at least two bitcode files - clasp-boehm-common-lisp.bc and boehm-all-cxx.a (a bunch of bitcode files in an archive).
15:30:51
drmeister
Nope - at the very least I needed to use the 'ld' linker. I thought "If I have to call out to the OS to run ld why not just use clang?".
15:50:47
drmeister
Bike: When you build clasp with ./waf build_cboehm - at the end it dumps the link command with...
15:51:04
drmeister
That's from the wscript file here: https://github.com/drmeister/clasp/blob/analyze/wscript#L1041
15:53:41
drmeister
I would remove the clasp/build/boehm/fasl/cclasp-boehm-image.fasl and run ./waf build_cboehm to get that line.
15:54:25
drmeister
Or you can reconstruct what the Python code in the wscript::link_fasl function is doing.
15:55:24
Bike
yeah, i killed the file and set it to build, but i forgot i made a few source changes sooooo.
16:51:38
drmeister
stassats: I'm adding support for multithreading with MPS. Each thread maintains its own allocation points.
18:18:28
Bike
i wonder if it might be good to implement cfasls (not actually that hard i don't think) and then have defun not produce inline definitions for loading.
19:38:19
drmeister
I'm still puzzled with what happens when I kill a thread. Do I leak resources when that happens?
19:43:28
drmeister
I see - so it's the perennial problem of converting an asyncronous signal into a synchronous one that can unwind the stack.