Releases: ndsev/zserio
Zserio v2.7.0
The main goal of this release is to publish reading of debug string representation of Zserio objects using JSON format.
This release contains one improvement which generates new optional value reset method in Java and Python code.
The release contains as well two bug fixes in Zserio expression operators.
Fixes
#322 - Dynamic bitfield type do not compile using modulo operator
#401 - Any operator of uint64 type using known values generates uncompilable Java code
New Features
#278 - Implement reading of debug string representation
Improvements
#392 - Introduce optional value resetter in Java and Python
Zserio v2.6.1
The main goal of this release is to publish the following fixes in debug string representation of Zserio objects:
- Fix of debug string representation for optional enums and bitmask in generated Python code
- Fix of const correctness in debug string representation functions in generated C++ code
- Improvement of compilation error message in debug string representation if C++ reflections are not present
From this release, documentation of Zserio runtime libraries is available online:
Fixes
#397 - Debug string output can fail in Python in case of optional enum or bitmask
#398 - MSVC: Generated C++ code can't be compiled with C++ 17
Improvements
#394 - Implement const alternative of C++ reflections
#395 - Public zserio runtime documentation to GitHub pages
#396 - Improve C++ compilation error message for debug string if reflections are not present
Zserio v2.6.0
The main goal of this release is to publish debug string representation of Zserio objects using JSON format.
This release contains as well the following improvements in generated code:
- Adding of new method
choiceTag()
for choices in generated C++, Java and Python code - Adding of new interface
ZserioBitmask
for bitmasks in generated Java code - Adding of new real optional value indicator in generated Java and Python code
The release contains as well two bug fixes in Zserio expressions.
Fixes
#385 - Fix generated expressions with low precedence operators in comparison operator
#389 - Disable ternary operator in offset
New Features
#119 - Provide debug string representation
Improvements
#386 - Add choiceTag getter to generated choices
#390 - Introduce real optional value indicator in generated code
#393 - Introduce interface for zserio bitmasks in Java
Zserio v2.5.1
The main goal of this release is to publish C++ generator fixes which prevent generation of uncompilable code.
Besides of that, this release contains as well several fixes in core and in generated Java and Python code.
Fixes
#157 - Compound arguments of parameterized types are not properly checked
#201 - Possible resource leak in generated Java code
#220 - Extern type cannot be returned from function
#354 - Wrong evaluation of ternary operator for C++ string literals
#378 - Argument values of parameterized types are not properly checked
#387 - Unpackable choice generates uncompilable C++ code
#388 - Constraints with recursion generates uncompilable C++ code
Zserio v2.5.0
The main goal of this release is to publish the following new features in generated code:
- Types schema info in generated C++ code
- Reflection interface in generated C++ code
- Types schema info in generated Java code
This release contains the brand new language directive:
This release contains as well the following improvements in generated code:
- Redesign Service interface to use reflection in generated C++ code
- Passing original request object to service clients in generated C++ code
- Passing original request object to service clients in generated Java code
- Redesign encoding of packed arrays for compounds in generated C++, Java and Python code
Please note that redesign of encoding of packed arrays caused binary incompatibility between this release and all 2.4.x versions.
Thus, packed arrays written by API generated by 2.4.x versions cannot be parsed by API generated by this release.
The release contains as well several bug fixes.
Fixes
#219 - Functions return compound by value in C++
#340 - Inner classes and typedefs in generated C++ code can cause clashing
#353 - TypeInfo doesn't work with recursion
#360 - Implement warning if non-optional field depends on optional fields
#361 - HTML: Used-by links for template parameter types are not linking to instantations
#367 - StackOverflowError for schema with recursion in a template
#372 - Invalid error while instantiating template with instantiate type as a template argument
New Features
#103 - Introduce new Reflection interface for C++ emitter
#334 - Publish zserio Java libraries at Maven central
#351 - Add types schema info in generated Java code
#357 - Implement new command line argument for C++ reflection
#375 - Consider to introduce zserio compatibility version directive
Improvements
#305 - C++: Pass original request object to service clients
#306 - Java: Pass original request object to service clients
#335 - Java: Create string constants for service method names in generated code
#342 - Consider to remove pre-write actions in C++
#350 - Java: attach original exception as a cause
#358 - Extend C++ BitBuffer interface by method returning vector
#359 - Improve C++ Service interface with reflections
#364 - Disable packed warning for empty structure
#365 - HTML: Used-by does not cover parameters
#366 - HTML: Used-by does not cover expressions
#370 - Redesign encoding of packed arrays for compounds
Zserio v2.5.0-pre1
The main goal of this pre-release is to publish new Reflection interface together with types schema info for C++ generator.
This pre-release contains as well redesigned C++ service interface which uses new Reflection functionality.
Fixes
#219 - Functions return compound by value in C++
New Features
#103 - Introduce new Reflection interface for C++ emitter
Improvements
#305 - [C++] Pass original request object to service client
#334 - Publish zserio Java libraries at Maven central
#350 - Java: attach original exception as a cause
Zserio v2.4.2
The main goal of this minor release is to allow users to configure checking of rules ids uniqueness. Normally, rules ids should be unique within a single package only. However for some use cases, users might need to have all rules ids unique globally.
The release contains as well minor fix in HTML generator to generate validate HTML code even if rule id is not unique globally.
Fixes
#347 - Fix rules ids in rules overview in HTML generator
New Features
#346 - Check rule id uniqueness between all packages only on user request
Zserio v2.4.1
The main goal of this minor release is to improve packed arrays feature by automatic comparison of packed and unpacked array sizes. If packed array size is bigger, packed array will be left unpacked.
The release contains as well minor change in C++ generator not to generate field constructor for structures as explicit if it's not necessary.
Fixes
#331 - Unknown documentation see tag in template can cause compilation failure
New Features
#344 - Leave packed arrays unpacked if packed array size is bigger
Improvements
#337 - Add non-explicit default constructor to emitted c++ API (regression)
Zserio v2.4.0
The main goal of this release is to publish the following brand new language features:
Rules provide a way how to organize semantic restrictions for the schema which cannot be easily defined using constraints.
Packed arrays compress all integer types, enumeration types and bitmask types using delta compression.
Beside of that, Implicit arrays are deprecated in the language from this release.
Furthermore, the release contains the following new features in generated code:
- Types schema info in generated Python code
- New allocation strategy in generated C++ code
- New Zserio array types mapping in generated Java code
The release contains as well several bug fixes and improvements.
Fixes
#317 - Indexed offsets arrays can return wrong bit size
#318 - Offsets cannot be variable integer type
#325 - Template argument evaluation fails if top level package is specified
#326 - Improve checking of implicit arrays usage
#327 - Check never ending recursion via non-empty array
New Features
#308 - Add rules support into the language
#309 - Add delta compressed arrays support into the language
#329 - Add types schema info in generated Python code
#330 - Allow different memory allocation strategies in generated C++ code
Improvements
#311 - Remove support for 32-bit Windows platform
#312 - Render navigation bar in HTML created for markdown resources
#313 - Make java.util.List optional for java
#332 - Consider to deprecate implicit arrays
#338 - Add easy way to write a c++ object to a bit stream
#339 - Allow periods in rule IDs in rule_group
#343 - Check rule id uniqueness for all package
Zserio v2.4.0-pre3
The main goal of this pre-release is to publish the packed arrays for C++ and Java extensions.
This pre-release contains as well new utilities for serialization and deserialization zserio objects in C++ runtime library.
New Features
#309 - Add delta compressed arrays support into the language
Improvements
#338 - Add easy way to write a c++ object to a bit stream
#339 - Allow periods in rule IDs in rule_group