freenode/#clasp - IRC Chatlog
Search
14:15:46
Bike
well, besides organization, karlosz set it up so that calls can use simpler conventions
14:16:07
Bike
for example, if you call a function bound with flet (so redefinability is not a concern, etc) it doesn't need a closure allocated
14:17:51
Bike
i haven't set up the type directed transformation stuff yet, unfortunately. my current plan is that instead of inlining global functions at ast level, they'll have a set of "transformers" attached, that rewrite the call in various ways
14:18:10
Bike
one of the transformers will just be inlining, so (a) it can use premade IR from the client instead of recompiling the AST, and (b) more policy control
14:19:31
beach
So the AST of the global function is still present in the caller AST, but could be discarded according to later decisions?
14:20:16
Bike
well, no, i'm planning on not including an inline AST at all. for the moment i'm holding off on that since i'm not doing sweeping changes in AST yet
14:21:36
Bike
the transformers are arbitrary functions, so for example a client could have some IR for CAR or whatever, eliminate checks in it based on type info, and then inline it
14:23:16
Bike
yeah. i think something pretty general is required for the specific kind of optimizations
14:23:32
Bike
but i haven't written any of this yet. might need some kind of toolkit to let clients write transformations cleanly
14:24:43
Bike
i know you're busy, but if you want to see what the BIR looks like I wrote a readme for it
14:36:10
beach
You did a great job on the explanations. I realize there is a lot more to write, of course. But what is written so far is very easy to understand.
15:39:00
Bike
right now i'm porting over the hir function copier, and when i tried it, a copied function being compiled caused translation errors
15:39:18
Bike
so i thought of some things i expect to be true of bir and wrote tests for them in the verifier
15:39:36
Bike
presto, better error, and i can run the verifier before and after transformations to isolate what caused the inconsistency
15:42:31
Bike
in the past i've effectively done that by graphing the ir and staring at it really hard, which isn't the most convenient workflow