Open smarr opened 2 years ago
cc @woess
@eregon @chumer is this solved with object inlining? (I am just randomly going through old issue in-between meetings)
No, because there are no nodes for DynamicObject yet, only the DynamicObjectLibrary, and Truffle library messages cannot be DSL-inlined.
OTOH DynamicObjectLibrary can internally use DSL node inlining, currently it does so for 4 nodes but not for the rest and currently the structure is still the same as in the description.
We are planning to redo the dynamic object module using regular (sometimes inlinable) nodes, similar to how TruffleString works nowadays. @woess I think this is good feedback we should probably work into the new design.
On TruffleRuby, I am seeing for unit-test code a lot of AST sub trees of the shape:
It seems that reading a missing field requires 3 nodes, and is one of the most common subtrees I see on the ActiveSupport unit tests.
Perhaps there's potential to reduce the footprint for those.
/cc @eregon