freenode/#clasp - IRC Chatlog
Search
13:28:47
drmeister
I linked dev-typeq with the debug llvm library - it's hitting an assertion failure when evaluating the GEP instruction.
13:31:22
drmeister
I know we can do this with pointer arithmetic but the gep instruction should generate an offset load and that will be better.
13:32:46
drmeister
Oh! Right - use the compiler lab! Generate C++ that does this and look at the IR generated
13:33:14
Bike
i suspect that using casting to byte* and using gep is kind of not what gep is intended for, anyway
13:36:19
Bike
we're basically throwing around interior pointers, which is kind of weird for C to say the last
13:49:36
Bike
tried something like maru. typedef long header; typedef struct object { header head; char data[]; } object; int header_of(object* o) { return (((header*)o)[-1]); }
13:50:30
drmeister
Line 12. It uses a single index - which makes sense. I used two in my code where the first index was zero.
13:54:23
drmeister
It looks straightforward though - I'll switch my pointer arithmetic code to this.
16:44:52
scymtym
Shinmera: i don't have time to discuss this much right now, but https://techfak.de/~jmoringe/build-generator.ogv is a video i (hastily) made to explain the thing to somebody else. it should get the basic idea across
18:41:40
Bike
primitive typeq works and is slightly faster than predicates (when applicable). however any advantage with typep is negated by the fact my expansion involves a LET to avoid multiple evaluation, which bclasp has as an allocation i guess. oh well