mirror of
https://github.com/enso-org/enso.git
synced 2024-08-17 00:40:34 +03:00
* Eliminating circe-yaml This change adds our very-own YAML parser on top of SnakeYAML. Compared to Circe parser on top of SnakeYAML. The advantage? In some not-so-distant future we might actually get rid of circe and the related performance issues. The logic is similar to what circe does i.e. analyzing SnakeYAML to build our own structure. This change is not complete, as there are still some tests failing, but most common Configs are already parseable. We _could_ auto-generate some of the code but still some of the logic would have to be tweaked by hand; the current logic has a number of special cases, as I found out the hard way. * wip: more tests passing * Fix remaining tests in ConfigSpec * Fixing YAML decoder for editions Dropping circe as a decoder for Editions revealed some problems. Turns out the current implementation had even more special cases to deal with. * nit * Allow for empty exports * Mostly complete encodin part Replaced almost all `toYAML` locations with SnakeYAML equivalent. The encoding has to use Java collections for which there exists a built-in support. If we were to use Scala collections we would have to deal with tagging, at the very least. * Remove the last remaining Circe's YAML parser * Bug fix + further loop optimization * removal of some dependencies * Remove circe-yaml Added a custom SnakeYAML Node updater to mimick the JSON -> YAML -> JSON conversion needed for updating fields. The algorithm recursively follows the key-path and inserts the desired Node. This is not a performance oriented code on purpose. * Fix compilation issues `circe-core` was marked as `provided` but no one eventually included it in the final jar, hence `NoClassFoundException`. * fix licensing * Removing obsolete circe definitions * fmt * nits * s/SnakeYamlDecoder/YamlDecoder * fmt * Partial revert, PM needs JSON decoders/encoders * style * incremental compilation gone wrong |
||
---|---|---|
.. | ||
main | ||
test/java/org/enso/semver |