3 ms·
What's the benefit? If your tooling already requires lossless round-trips to and from text, why invent a funky storage format that doesn't interoperate and can'
by meredydd 9y ago
What's the benefit? If your tooling already requires lossless round-trips to and from text, why invent a funky storage format that doesn't interoperate and can't be fixed with a text editor when it all blows up? You already have a perfect serialisation of the AST, in a format every other tool understands - that is, source code.
(And heaven forbid you should want to make a checkpoint commit that doesn't parse...)
- pshc 9y agoSome potential use cases: - Using Merkle trees, we can assign every node a hash-based ID. So now we can refer to other nodes by ID. This lets us store a graph whose vertices are all the tree nodes. - With the graph, we can now reference bindings not by string literal, but by ID. This eliminates shadowing problems and missing imports. - There is now one source of truth for the names of variables and functions. As a result, in source control, a commit that renames something is a one-line change.