freenode/#clasp - IRC Chatlog
Search
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 ^_^