| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| README.md | 2026-07-29 | 6.5 kB | |
| Release 0.6.2 source code.tar.gz | 2026-07-29 | 601.0 kB | |
| Release 0.6.2 source code.zip | 2026-07-29 | 730.1 kB | |
| Totals: 3 Items | 1.3 MB | 0 | |
Release 0.6.2 is primarily a bug fix release, please refer to CHANGELOG for details (copied below)
A long standing bug has been fixed where where objects created before a call to
_create_as_root would not be properly aligned, and buffer end is now also
padded to largest object seen within the buffer. Note that for clang debug
builds, -fsanitize=undefined has been added and this may require dependent
source code to also use that flag to avoid missing linker symbols. The feature
can be disabled in CMakeLists.txt. CMake has been bumped to version 3.16 which
is the latest version where Appveyor will build MVSC 2025. A buffer overrun
in flatcc parser on malformed floating point input was fixed. Warnings added
for potential name conflicts in enum names and table fields that could result
in confusing C compiler errors. Not all warnings are errors to the option -s
was also added to silence warnings. The existing -g option can resolve some
conflicts. Some _with_size variants of verified functions would verify a type
hash identifier agains the wrong buffer location, but this appears to only
have a effected very few users. Generated header guards could contain invalid
symbols if present in the filename, such as hyphens - these are now mapped to
underscore. It is still possible to create conflicting names, e.g. by having
schema files like 'foo-bar.fbs' and 'foo_bar.fbs', or 'foo.fbs' and 'Foo.fbs',
in which case conflicting schema files will not be processed as they are
considered a different path to an already processed file.
Changelog [0.6.2]
- CMake: avoid assuming location of build dir during configuration.
- Use untyped integer constants in place of enums for public interface flags to allow for safe bit masking operations (PR [#248]).
- Added experimental support for generating
compile_commands.jsonviaCMakeList.txtfor use with clangd. - Remove
fallthroughmacro for improved portability (#247, [#252]). - Added
parse_float/double_compare,parse_float/double_is_equalto portable library, and addedparse_float/double_isnanto mirror isinf. This should help with GCC 32-bit double precision conversion issue. - Add Github Actions builds to replace stale Travis CI build. This also includes source code fixes for some build variants. Although Windows build is included it only covers recent 64-bit Windows. More work is need for older Windows variants. (#250).
- Increase maximum allowed schema file size from 64 KiB to 1 MB (#256).
- Fix seg fault in json parser while adding null characters to a too short input string for a fixed length char array struct field (#257).
- Fix regression where empty namespace in schema does not reset root scope correctly in parser (#265).
- Fix lexer checks that breaks with UTF-8, notably UTF-8 schema comments (#267).
- Add sanitizer flag for clang debug and related warnings (input from several PRs incl. [#237]).
- Fix missing runtime check for building too large tables (#235).
- Fix alignment of large objects created outside root buffer (#127).
- Pad top level buffer end to largest object in buffer
- Add
_with_sizeverifiers to enable verification of size prefixed buffers that are aligned above 4 bytes (sizeof(uoffset_t)) (#210, PR [#213]). Also fixes a (uoffset_t) cast that would truncate very large verifierbufsizarguments above 4GB before the verifier checked for argument overflow (not expected to be a practical problem, but could be abused). - Fix
__[portable_aligned_alloc,the fallback implementation ofaligned_allocso returns null proper and not a small offset on alloc failure. Most platforms do not depend on this function (#269). Also fix equivalent FLATCC_ALIGNED_ALLOC that does not necessarily use malloc. - Fix flatcc compiler error message when schema has a union as first table field with explicit id attribute 1. Explicit id must leave space for the hidden type field, but id 1 is valid since id 0 is valid for the type field id. (#271).
- Add C23 support for "pstdbool.h" header.
- Fix strict aliasing UB. In the vast majority of cases
*(T *)pstyle memory access is supported by compilers, but some both enable strict aliasing by default while being very aggressive with strict aliasing. This can lead to reading uninitialized memory and/or segfaults in the monster_test test case, but is less likely problematic in dynamically allocated memory buffers. For performance reasons this fix is not universally applied when deemed unnecessary. Added README section "Strict Aliasing". (#274). - Fix flatcc cli flags for --schema --outfile. (#216).
- Replace cmetrohash and murmur hash with xxhash. (#238).
- Update verifier to accept buffers with misaligned empty vectors because C++ has been discovered to be doing this for 10 years by now. The original stricter verifier can be activated with a compile time flag (#287, [#289]).
- Fix low impact incorrect use of strncmp in str_set hash table comp:arison. In flatcc this only affects duplicate header file inclusion detection during C code generation. Unlikely worst case a file might not be included which would cause a compile time error in user code. However, do take note if using the str_set table for other purposes. (#308).
- Fix some GCC indentation warnings in generated code - warnings are disabled in build already, but this may help some users (#313).
- Fix %d vs uint32 type in some printformatting (#315).
- Fix UB in builder, memsetting 0 bytes of null pointer (#344).
- Fix GCC 15 warning in grisu3 (#338).
- Bump CMake to >= 3.26.1 (Debian Bookworm).
- Fix CMAKE warnings on custom commands with TARGET and DEPENDS (CMP0175).
- Issue warnings on some potential name conflicts that can break C source
and add
-soption to silence warnings (#354). - Fix potential UB in pprintint due to integer promotion, and silence warnings.
- Fix buffer overrun in flatcc parser on malformed floating point input (#374).
- Fix overflow check of default values in schema parser (#381).
- Replace rewind with fseek for better error handling, low impact (#380).
- Fix binary schema gen. for string arrays (a rare FlatCC only feature) (#295).
- Fix _with_size verifier functions (#346).
- Fix shortened identifier regression in parser error messager (#371).
- Make sure header guards are valid symbols (e.g. filenames with '-') (#293).