Skip to content
Compare
Choose a tag to compare
@ryanfleury ryanfleury released this
· 20 commits to master since this release
Compare
Choose a tag to compare

Metadesk's first full stable release. As of this point, we do not plan on changing the API or language substantially without another major update. The repository is now equipped with proper examples (in the examples folder) and we've published a full API reference at https://dion.systems/metadesk_reference.

The docs/metadesk_reference.mdesk file in the repository should now reflect the API in its entirety, and can be used to generate bindings for other languages (right now, we are just using it to generate the API documentation).

The most major feature we've added since Beta 0.2 is the Expression Parser. This new part of the API allows you to easily consider a range of Metadesk node siblings as encoding an expression tree. The parser parses that range of siblings (as opposed to text, or a stream of tokens) to produce more structured expression trees, which can be evaluated. The rules for these expressions—for example, which symbols have what precedence, associativity, whether they are binary or unary operators, and so on—are controlled by usage of the API (there is not one singular expression syntax). For more information, check out the examples/expr folder.

The library has now been tested in integrating with non-metaprogram codebases as well, to ensure that it can be used in cases outside of metaprogramming. This makes Metadesk suitable for application run-time config data, asset metadata, or anything else you can think of that you'd like to store in text on disk.

Other than that, most of the changes since Beta 0.2 are minor cleanups or bugfixes.

We will continue updating Metadesk with bugfixes and small improvements, as we find them.