I just stumbled across the paper, and it looks really nice. I definitely would like to
have it used in Moose. I actually started to prototype a cache based on Fuel, but
obviously Marea is way better.
In the paper, you mention that the use in Moose is to be able to handle multiple models.
That is a use case, but I think it's not a critical one. A more interesting use case
is the one in which we want to store an AST alongside FAMIX. There are two challenges
- The size of AST data is really prohibitive for being loaded in memory all the time
- For the AST to be most valuable, we need to be able to link parts of the model to the
corresponding AST nodes. See the picture in the attachment for an example: an invocation
between methodA and methodB would have a corresponding message send node in the AST of
If I understand Marea right, we could consider as roots all the AST root nodes, and
essentially have them all swapped until we get to use one for some detailed analysis such
as whether the invocation happens inside a loop or not. Is that correct?
"It's not what we do that matters most, it's how we do it."