docs/changelog
v0.8.1 (18 June 2023)
Bugfixes
- #28 Symbols are now exported, unless visibility is set to private.
v0.8.0 (12 January 2023)
- Operations extension system is no longer experimental
API changes
- Changed binarylang/plugins to binarylang/operations
- Reworked visibility system:
- Everything is exported by default
- The visibility of parsers, discriminator fields (for unions) and symbols generated by plugins is controlled by the new parser option visibility.
- Specific fields (including discriminators) can be marked as private using the {.private.} pragma.
Bugfixes
- Fixed a bug in operation related to type inference
v0.7.0 (11 January 2023)
- Implemented a plugin system for modular and toggleable codegen
API changes
- Changed binarylang/plugins to binarylang/operations to avoid terminology confusion in relation to the new plugin system
v0.6.0 (11 January 2023)
- Added toStr plugin
- Added cpu endian parser option
- You can now choose between value or ref semantics with a new parser option
- Split codebase in multiple source files
- Removed deprecated procs
- MagicError is now exported
API changes
- Default semantics changed from ref to value
Bugfixes
- Multiple values in a single union branch selector did not work in the latest Nim compiler
v0.5.1 (8 April 2021)
Bugfixes
- BinaryLang now correctly uses the alterned type specified by the last operation, in the struct's/union's type declaration.
v0.5.0 (8 April 2021)
API changes
- The plugin system is reworked as follows:
- Call syntax is used instead of expression-bracket-expression, in order to support arbitrary number of arguments.
- The API is homogenic regardless of whether the plugin interfaces with the stream or not.
- Type conversion is supported by explicit annotation.
- Due to the above, properties are rendered redundant, and therefore not a thing anymore (completely removed).
v0.4.0 (3 April 2021)
API changes
- createParser/createVariantParser were renamed to struct/union respectively
- complex type is now divided into product and sum type for parsers created with the struct/union macro respectively. Sum parsers differ from product parsers in that the first argument is mandatory and is treated differently since it refers to the discriminator. Specifically, the passed argument is calculated only during parsing, whereas during serialization the value stored in the disc field is used.
- The discriminator field of sum parsers is always called disc implicitly. The second argument of the union macro must be a single identifier denoting the type of the discriminator -as opposed to an expression-colon-expression-.
v0.3.3 (2 April 2021)
- Converters are now also exported when exporting the corresponding parser
Bugfixes
- Magic now works properly in createVariantParser
v0.3.2 (2 April 2021)
Bugfixes:
- symbol table under branches of variant parsers was not updated after each field
- anonymous fields in variant parsers were not discarded
v0.3.1 (25 March 2021)
- Implemented converters properly. They are now procs with the names:
v0.3.0 (25 March 2021)
- Bugfixes for @put/@hook properties.
- The underlying field when using properties can now be accessed with the identifier <field>Impl.
- Exportation of fields using * now also works when using properties.
- Parser and parser's type symbols can now be exported by prepending * to the parser's name.
- createParser and createVariantParser now also generate converters from/to string.
v0.2.0 (22 March 2021)
With many breaking changes, this marks the beginning of version control!
- Documentation is updated and refined to reflect the new API.
- createParser now declares an object type which is used by the parsing/encoding procs. This enables describing recursive parsers.
- The first argument of createParser/createVariantParser must now mandatorily be in lowercase and it has an extra meaning: it is used for deriving the name of the object type: objname ≡ capitalizeAscii(parsername).
- @hook property is implemented
- typeGetter is marked as deprecated.
- Switched from unittest to testament.
Made with Nim. Generated: 2023-06-18 10:30:53 UTC