This subclass provides all functions of the base DNA class with additional support for YAML serialization and deserialization.
ATDNA is now able to generate type-sensitive code to automate the YAML emission/parsing process.
Athena now includes libyaml as an embedded repository. Just clone Athena and you'll get a full YAML implementation.
Athena now places error handling in the hands of the app where it belongs. Exceptions have been replaced by a global error hook.
Athena and atdna now integrate with MS' latest v140 CRT and language features of MSVC 2015. From this release on, v140 is the preferred linking runtime on Windows.
Some hacky tricks have been replaced with standards-compliant declarations, making Athena more solid across compilers and development environments.
Compiler defines (as well as includes) are automatically supplied to ATDNA when invoked via CMake.
-Dflag is now available through the
__atdna__macro is defined to 1 within ATDNA, so preprocessor guards may be used to isolate headers and add special ATDNA logic.
Methods previously named
IStreamWriter::writeUnicode()are now named as
Athena has undergone numerous refactors and a rebalancing of the codebase. Athena is ~30% smaller as a result. Streaming I/O performance is noticeably better.
As of this release Athena now uses CMake. This allows clean integration of Athena into external projects using CMake. Using
find_package(Athena REQUIRED)is all that's necessary to import Athena's libraries and headers into a CMake project.
atVec2f, atVec3 and atVec4 have been added to help communicate 2, 3 and 4 component vectors in a transparent manner. These types are SSE compatible and are POD types, allowing quick memcpy or even straight assignment of the __m128 value to your custom vector classes.
As of this release Athena is partnered with an extremely powerful, automated reader/writer authoring tool, ATDNA. This is a source-to-source tool for generating complete implementations of streaming reader/writer classes based on C++ records in header files.
Now you can easily work with a wider variety of data formats thanks to new string and byte-buffer methods.
Qt creator and Qmake users can now select portions of Athena à la carte; integrating only the parts your project needs.
Data compression/decompression libraries like zlib and lzo are now part of Athena's repository, so you can simply clone-n-go!