Releases: libAthena/athena
latest
What's Changed
- General: Minor general cleanup by @lioncash in #42
- IStreamReader/IStreamWriter: Simplify buffer functions where applicable by @lioncash in #44
- Revert "General: Minor general cleanup" by @Antidote in #45
- General: Minor general cleanup by @lioncash in #46
- Global: Change include into by @lioncash in #47
- LZBase/LZLookupTable: Minor cleanup by @lioncash in #48
- General: Silence -Wdocumentation warnings by @lioncash in #49
- Types: Tidy up header by @lioncash in #50
- General: Include headers that are necessary by @lioncash in #51
- General: Remove unused macros by @lioncash in #52
- General: Make constructors explicit where applicable by @lioncash in #53
- atdna/main: Avoid unnecessary string churn by @lioncash in #56
- MemoryWriter: Initialize member variables to deterministic values by @lioncash in #57
- MemoryWriter: Prevent potential leak within save() by @lioncash in #58
- Compression/LZ77: Remove unnecessary pointer casts by @lioncash in #59
- Checksums: Correct null check within crc16() by @lioncash in #60
- CMakeLists: Append sources to athena-core directly by @lioncash in #62
- FileWriterWin32: Handle large files within writeUBytes by @lioncash in #61
- CMakeLists: Define -DNOMINMAX and -DWIN32_LEAN_AND_MEAN on Windows by @lioncash in #63
- Global: Make operator|= and &= for enums constexpr by @lioncash in #64
- General: Be explicit about SeekOrigin and Endian types by @lioncash in #66
- Global: Make SeekOrigin an enum class by @lioncash in #67
- General: Make Endian an enum class by @lioncash in #68
- Global: Remove compatibility formatting define for size_t by @lioncash in #71
- IStream: Remove unimplemented operator<< prototype by @lioncash in #70
- IStreamWriter: Eliminate several casts by @lioncash in #69
- Fix build error in MemoryReader.cpp by @encounter in #73
New Contributors
- @lioncash made their first contribution in #41
- @encounter made their first contribution in #73
Full Changelog: 2.3.0...latest
Version 2.3.0 Release
YAML Serialization Comes to Athena!!
New DNAYaml Subclass
This subclass provides all functions of the base DNA class with additional support for YAML serialization and deserialization.
ATDNA YAML Generation
ATDNA is now able to generate type-sensitive code to automate the YAML emission/parsing process.
libyaml Embedded
Athena now includes libyaml as an embedded repository. Just clone Athena and you'll get a full YAML implementation.
Version 2.2.0 Release
Even More Stability Improvements in 2.2.0
Removal of Exception Throws
Athena now places error handling in the hands of the app where it belongs. Exceptions have been replaced by a global error hook.
Visual Studio 2015 Support
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.
Version 2.1.0 Release
Athena and ATDNA get even more flexible
Better ISO C++11 Adherence in DNA Headers
Some hacky tricks have been replaced with standards-compliant declarations, making Athena more solid across compilers and development environments.
ATDNA Enhancements
Compiler defines (as well as includes) are automatically supplied to ATDNA when invoked via CMake. -D flag is now available through the atdna command-line. __atdna__ macro is defined to 1 within ATDNA, so preprocessor guards may be used to isolate headers and add special ATDNA logic.
Renamed Unicode Methods
Methods previously named IStreamReader::readUnicode() and IStreamWriter::writeUnicode() are now named as IStreamReader::readWStringAsString() and IStreamWriter::writeStringAsWString() respectively.
Version 2.0.0 Release
Version 2.0.0 ushers in several improvements to Athena
Codebase Refinements
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.
Removal Of All Qt Requirements
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.
New Vector Data Types
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.
Companion ATDNA Generator
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.
Version 1.1.0 Release
Version 1.1.0 ushers in several improvements to Athena
Additional Data-Types
Now you can easily work with a wider variety of data formats thanks to new string and byte-buffer methods.
Modularized Qmake Build-System
Qt creator and Qmake users can now select portions of Athena à la carte; integrating only the parts your project needs.
Self-Sufficient Build Dependencies
Data compression/decompression libraries like zlib and lzo are now part of Athena's repository, so you can simply clone-n-go!