Releases: ndsev/zserio-cpp17
v1.0.0
This is the first stable release of the Zserio C++17 extension for production use.
It is designed as an extension to the Zserio version 2.18.0.
This release contains the following new features:
- New command line parameter
-withSourcesAmalgamationfor amalgamation support (disabled by default). - Adaptation of the runtime library to be built as a shared library.
- New
usingdeclarations for template arguments,ArrayViewinstantiations andViewsinDataabstraction.
Fixes
#79 - Wrong code generated for choice with only default case
#88 - Optional with default value is not reset during read
#92 - Debug builds with a huge choice are very demanding on memory
#95 - Add missing cstdint include in JsonEncoder.h
#98 - Client Methods do not Respect -withTypeInfoCode
#101 - Fix RTTI issues in the runtime library for MacOS
#102 - Templated Struct View is Missing the zserioData() Implementation
#103 - Fix Temporary Optional Value Access
#105 - Any and dependant types don't work properly in multi target environment with hidden symbols
New Features
#89 - Emitted c++ code for templates should have a using declaration per template argument
#90 - Amalgamation Support is Missing
#91 - Improve Access to View and Array Types
#93 - Adapt runtime to build as shared library
#107 - Emitted c++ code for arrays should have a using declaration per ArrayView instantiation
Improvements
#85 - Zserio Optional doesn't have all versions of constructors / assignment operators
#94 - Fixes problem with RTTI in Zserio runtime
#100 - Adapt runtime to build without or with custom SQLite dependency
#104 - Improve test framework to catch the missing zserioData() implementation
Zserio C++17 Extension v0.5.0
This is the fifth pre-release of the new Zserio C++17 extension aimed for the full testing.
This pre-release fully supports the Zserio language and Zserio templates are implemented using C++ native templates.
The C++17 extension is designed as an extension to the Zserio version 2.17.0.
The C++17 extension binary cannot be run standalone. It must be run using Zserio bundle (or Zserio core). It is enough just to copy zserio_cpp17.jar to the directory where Zserio bundle (or Zserio core) is located and run the following command:
java -jar zserio.jar schema_name.zs -cpp17 output_directory_name
Zserio C++17 Extension v0.4.0
This is the fourth pre-release of the new Zserio C++17 extension aimed for the full testing.
This pre-release integrates important user feedback, including support of std::pmr::polymorphic_allocator.
The command line argument -setCppAllocator now accepts three new values:
std:This value sets thestd::allocatorto be used in generated code.pmr:This value sets thestd::pmr::polymorphic_allocatorto be used in generated code.ppmr:This value sets thezserio::pmr::PropagatingPolymorhpicAllocatorto be used in generated code.
This pre-release fully supports the Zserio language. However, Zserio templates are still implemented using template instantiations, not using C++ native templates.
The C++17 extension is designed as an extension to the Zserio version 2.16.0.
The C++17 extension binary cannot be run standalone. It must be run using Zserio bundle (or Zserio core) by the following command:
java -cp zserio.jar:zserio_cpp17.jar zserio.tools.ZserioTool schema_name.zs -cpp17 output_directory_name
Please note that the classpath separator on Windows is
';'instead of':'.
Zserio C++17 Extension v0.3.0
This is the third pre-release of the new Zserio C++17 extension aimed for the full testing.
This pre-release is the first feature complete pre-release including Type Information, Reflections, Introspections and JSON export and import.
It fully supports the Zserio language. However, Zserio templates are implemented using template instantiations, not using C++ native templates.
The C++17 extension is designed as an extension to the Zserio version 2.16.0.
The C++17 extension binary cannot be run standalone. It must be run using Zserio bundle (or Zserio core) by the following command:
java -cp zserio.jar:zserio_cpp17.jar zserio.tools.ZserioTool schema_name.zs -cpp17 output_directory_name
Please note that the classpath separator on Windows is
';'instead of':'.
Zserio C++17 Extension v0.2.0
This is the second pre-release of the new Zserio C++17 extension aimed for the full beta testing.
This pre-release fully supports the Zserio language but has the following limitations:
- Zserio templates are implemented using template instantiations, not using C++ native templates
- Support for generic programming, including type information, JSON export and import and reflections is not implemented
The C++17 extension is designed as an extension to the Zserio version 2.16.0.
The C++17 extension binary cannot be run standalone. It must be run using Zserio bundle (or Zserio core) by the following command:
java -cp zserio.jar:zserio_cpp17.jar zserio.tools.ZserioTool schema_name.zs -cpp17 output_directory_name
Please note that the classpath separator on Windows is
';'instead of':'.
Zserio C++17 Extension v0.1.0
This is the first pre-release of the brand new Zserio C++17 extension aimed for the first beta testing.
This pre-release has many limitations:
- The following Zserio language features are not implemented and are silently ignored without any warning and generated code:
- SQL Tables
- SQL Databases
- Service Types
- Pubsub Types
- Offsets
- Zserio Extended Members are not implemented and are always generated as regular compound fields
- Zserio templates are implemented using template instantiations, not using C++ native templates
- Support for generic programming, including type information, JSON export and import and reflections is not implemented
The C++17 extension is designed as an extension to the Zserio version 2.15.0.
The C++17 extension binary cannot be run standalone. It must be run using Zserio bundle (or Zserio core) by the following command:
java -cp zserio.jar:zserio_cpp17.jar zserio.tools.ZserioTool schema_name.zs -cpp17 output_directory_name
Please note that the classpath separator on Windows is
';'instead of':'.
Please note that the generated C++17 sources must be linked with the attached Zserio C++17 runtime library.