{"push_id":1339678301,"size":1,"distinct_size":1,"ref":"refs/heads/if-else","head":"d3085705e9a2e65b7b68cb9b81d5c13988ea062d","before":"5dfa3d8c0db01bad097cafcb5a46fc0fc60ecce9","commits":[{"sha":"d3085705e9a2e65b7b68cb9b81d5c13988ea062d","author":{"name":"Michał 'Griwes' Dominiak","email":"5707ea82799b4796c132dffe77c925ce9a9ee2b0@griwes.info"},"message":"codegen: generate lower-level C++ with \"registers\" for variables.\n\nC++ is awkwardly too high level for some of the rules of Vapor I want to\nimplement, hence this change. The resulting generated code is horrible\nand in general completely (or almost completely?) unoptimizable... I\nhope I will be able to make that better soon-ish. There are two obvious\nnext steps here:\n\n1) Actually implement object lifetimes. `materialization_instruction`\nand the rest of the instructions do well with constructing an object\n(I'm 99% sure that once I start generating something else than just C++\nthis will get far more complicated, but shush for now), but there's\nliterally no place that destroys objects. Need to do this at the end of\nscopes, which will be the first step to actually do the correct thing\nhere.\n\n2) Implement variable usage analysis, and then automatically move\nvariables on their last use. This is deeply necessary for sanity (both\nof the programmer and of the generated C++).\n\nThen... outside of this branch, probably the next step would be\nuser-defined types and tuples, and function arguments.","distinct":true,"url":"https://api.github.com/repos/griwes/vapor/commits/d3085705e9a2e65b7b68cb9b81d5c13988ea062d"}]}
{"actor":{"display_login":"griwes"}}