mirror of
https://github.com/google/flatbuffers.git
synced 2026-06-01 19:58:15 +00:00
2e48c8dd317819645581058f662f1e8cb6e35d6e
MIPSEL, MIPS64EL and HP-PA architectures have quiet and signaling NaNs swapped. The test assumes correct values for i386 / amd64 but obviously fails on these architectures. It is documented in many places, like https://software.llnl.gov/yorick-doc/stdlib/ieee.html : Warning-- apparently there is no universal standard for what constitutes signalling versus quiet NaN on MIPS and HPPA architectures, qNaN and sNaN are reversed https://gcc.gnu.org/onlinedocs/gcc/MIPS-Options.html : -mnan=2008 -mnan=legacy These options control the encoding of the special not-a-number (NaN) IEEE 754 floating-point data. The -mnan=legacy option selects the legacy encoding. In this case quiet NaNs (qNaNs) are denoted by the first bit of their trailing significand field being 0, whereas signaling NaNs (sNaNs) are denoted by the first bit of their trailing significand field being 1. The -mnan=2008 option selects the IEEE 754-2008 encoding. In this case qNaNs are denoted by the first bit of their trailing significand field being 1, whereas sNaNs are denoted by the first bit of their trailing significand field being 0. The default is -mnan=legacy unless GCC has been configured with --with-nan=2008. The behavior mentioned above causes FTBFS in Debian starting with 1.12.0: https://buildd.debian.org/status/fetch.php?pkg=flatbuffers&arch=mips64el&ver=1.12.1%7Egit20200711.33e2d80%2Bdfsg1-0.1&stamp=1594830681&raw=0 https://buildd.debian.org/status/fetch.php?pkg=flatbuffers&arch=mipsel&ver=1.12.1%7Egit20200711.33e2d80%2Bdfsg1-0.1&stamp=1594832647&raw=0 https://buildd.debian.org/status/fetch.php?pkg=flatbuffers&arch=hppa&ver=1.12.1%7Egit20200711.33e2d80%2Bdfsg1-0.1&stamp=1594830726&raw=0 For HP-PA (PA-RISC) there is no way to override the reversal, and for MIPSEL/MIPS64EL there is no macro defining the '-mnan' choice, so both variants were added with OR boolean operator. Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
FlatBuffers
FlatBuffers is a cross platform serialization library architected for maximum memory efficiency. It allows you to directly access serialized data without parsing/unpacking it first, while still having great forwards/backwards compatibility.
Go to our landing page to browse our documentation.
Supported operating systems
- Windows
- MacOS X
- Linux
- Android
- And any others with a recent C++ compiler.
Supported programming languages
- C++
- C#
- C
- Dart
- Go
- Java
- JavaScript
- Lobster
- Lua
- PHP
- Python
- Rust
- TypeScript
and more in progress...
Contribution
- FlatBuffers Google Group to discuss FlatBuffers with other developers and users.
- FlatBuffers Issues Tracker to submit an issue.
- stackoverflow.com with
flatbufferstag for any questions regarding FlatBuffers.
To contribute to this project, see CONTRIBUTING.
Licensing
Flatbuffers is licensed under the Apache License, Version 2.0. See LICENSE for the full license text.
Description
FlatBuffers: Memory Efficient Serialization Library
cc-plus-pluscross-platformc-sharpflatbuffersgogrpcjavajavascriptjson-parsermarshallingmmapprotobufpythonrpcrustserializationserialization-librarytypescriptzero-copy
Readme
Apache-2.0
77 MiB
Languages
C++
37.8%
Rust
13.5%
Swift
7.7%
Python
6.9%
C#
5.6%
Other
28.5%