freenode/#clasp - IRC Chatlog
Search
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.
20:38:09
Bike
i'm reading linkers and loaders. it mentions, in retrospect obviously, that C++ static data might require "constructors" to be run to initialize data, so modern loaders support that. maybe we could exploit that for lisp data
20:40:31
Bike
the major difference being that we have some order restrictions on when they're run, which C++ doesn't for whatever reason. i don't know if that would cause friction
20:42:12
drmeister
It does - but there is a solution to it. There is a way to impose an order - I do this.
20:43:29
drmeister
You can't control the order from C++ - but I learned "one simple trick that programmers hate" - that gets around it.
20:47:51
Bike
i see. then the remaining problem is convincing the loader to put things in GC-managed space. that might be pretty difficult.
23:15:52
Bike
the answer appears to be nothing doing, at least without a lot of work that probably wouldn't be worth it right now
23:18:40
Bike
building up the system by loading fasls still entails some bootstrapping stuff, even if the compiler is run off line. though i should still be able to do some optimizations i wanted. i think.
23:20:49
drmeister
Hi frgo - I had a question for you. You defined a method void free() - does it need to have that name? I'm getting a weird warning about it.
23:22:00
frgo
hi drmeister: names are ... not that important. So, no, that method could be named differently.
23:34:28
Bike
maybe i can rearrange some things anyway. like i think we can probably define the basic classes pretty much right off
23:46:09
Bike
drmeister: unrelated question. (1) is my impression that we can't jit more than one thing at once in the near future correct? 2) does compile-file involve the jit other than for :compile-toplevel and load-time-value stuff?
23:46:30
Bike
unrelated questions, but then it sou nds like they're unrelated to each other, which is false... terrible.
1:44:49
whoman
was there a project, i forget the name, of shared CL code which clasp uses ? or something like this. i remember being linked to it from this channel but i cannot remember the name of the project
1:49:42
whoman
stassats, do you know if it is active or any plans about it ? on passing curiosity, i could contact the guy
1:58:00
whoman
i did not want to assume the file modification dates if anyone knew more. ah well ^_^