freenode/#clasp - IRC Chatlog
Search
19:00:13
Bike
i guess i could add a C++ function that mutates a function's function-description from a provided source position info
19:04:45
drmeister
Yeah - the function-description is where we should store this stuff. There are issues with mutating them though. I think putting GC managed pointers into them needs to be done with some planning. Maybe we could clean this up.
19:05:38
Bike
incidentally, we seem to use an actual pathname rather than a database code like we do in source position infos
19:05:50
drmeister
There are four slots in a FunctionDescription that are special and are stored indirectly in the literals vector for the code that the FunctionDescription describes.
19:06:51
Bike
how does that work if the function doesn't have a literals vector? a funcallable instance doesn't have a literals vector, does it?
19:12:31
drmeister
It does somehow - if it doesn't we need it to somehow. We can stick things into a separate pool. I forgot the details. It's in the code somewhere or it should be.
19:14:24
Bike
hm, there's a comment. it says whenever a Function_O is created, a function description is created with new and then... some stuff about the gc roots in module i don't quite follow.
19:15:02
drmeister
Ok - I have a phone conference in another 15 min and I'm doing some homework for it.
19:17:14
drmeister
The GCRootsInModule* is a raw C pointer to a thing that keeps track of a bunch of GC roots. It's used by JITted code.
19:18:40
drmeister
A FunctionDescription* is also a raw C pointer to a thing that describes the Function_O
19:19:11
drmeister
The FunctionDescription* contains a GCRootsInModule* and indices into the vector of roots managed by the GCRootsInModule*.
19:21:20
drmeister
ACTION keeps reading: “Confidential Information” shall mean any information or tangible property pertaining... (sigh)
19:30:52
Bike
actually, looks all the function description stuff for generic function is set up to be broken.
20:28:19
drmeister
Xach in #lisp said that a new quicklisp dropped today - does that help us with any static-vectors or bordeaux-threads?
21:09:00
drmeister
Symbols added through the JIT interface are not going to be registered in a way that dlsym can find them for a while.
21:09:42
drmeister
There is another way to get the pointers to the functions though - through the JIT.
0:51:42
drmeister
I'm going to set up a function that calls this and then falls back to dlsym if it doesn't find the symbol.
1:51:15
drmeister
I could probably get it to work with dynamic libraries now - but it comes for free with faso files.