forked from google/flatbuffers
-
Notifications
You must be signed in to change notification settings - Fork 0
Pull from google/flatbuffers #2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…g endian machine with unsafe mode. (#5076)
* Add flatbuffer_cc library support * Update flags so all the tests pass Tests now all pass! * Modify the tests to use the generated code This should be a simple serialize/deserialize test of the new generated code to make sure the bazel rules are doing something sane. * Use generated monster_test.fb in testing/test.cpp cmake drops it's generated code in tests/monster_test_generated.h Instead of checking that in, let's generate it with bazel. * Make grpc tests depend on monster_test_generated.h * Remove redundant cmake dependency This should address @aardappel's feedback. * Run flatc for Android as well This will fix the last travis.ci failure * Add generated output folder and fix flags * Move flatbuffers_header_build_rules to the library that uses it * Use --cpp-ptr-type to fix android Android was the only target using the STL emulation layer. It needed the --cpp-ptr-type flatbuffers::unique_ptr flag to work. Add it! * Roll back changes to use autogenerated monster_test_generated. Flip tests/test.cpp to use the autogenerated file as well.
…rom flatc version (#5086) * disable reproducible build warning due to date/time macros * wrapped GCC pragmas in #ifdef _GNUC_ * removed __DATE__ and __TIME__ macros from flatc.cpp
* Enable flatbuffer to initialize Parser from bfbs (#4283) Now its possible to generate json data from bfbs data type and flatbuffers data and visa versa. * add deserialize functionality in parser from bfbs * add small usage sample * Fix build break * Merge branch 'pr/1' into fix-issue4283 * Fix buildbreak * Build monster_test.bfbs with --bfbs-builtins Attribute flexbuffer has be included in bfbs. Only with this attribute test will run. By initialization a parser by a bfbs the attribute has to be known for this filed. monsterdata_test.golden has a flexbuffer field so parse would fail. * Fix generate_code.sh * Revert automatic indent changes by IDE * Auto detect size prefixed binary schema files * Use identifier (bfbs) to detect schema files
* Pulling in protobuf's faster UTF-8 encoder. * Remove Utf8 unsafe code.
By avoiding redundant alignment+alloc checks (startVector does prep) and virtual calls (by making the class final) in inner loops.
Change-Id: I3f23bb1478763334dbc7e43579555518fb2412c2
Track and emit required FlatBuffers namespace imports in generated Go code. Update Go code generator by moving most functionality into the generator class, to facilitate namespace tracking. (Note that the git diff in this combined commit may appear large due to this refactoring, but very little code was actually changed.) Update Go code generator by tracking namespace imports when generating FlatBuffers code. Update Go code generator by emitting package imports to correctly reference code in other FlatBuffers namespaces. Create Go test that checks the usage of InParentNamespace objects (as defined in the example schema). Create Docker test that checks the Go language port. Fixes #4883 Fixes #3927 Individual commits: * remove "static" from soon-to-be method functions * move almost all functions into class as methods * set current namespace and emit package names if needed * track imported namespaces * parent namespaces work * docker test for go ^1.11 * update base image name for go docker test * remove cerr debugging * formatting fixes * re-run generate_code.sh * explicitly test namespace imports and usage
In flatbuffers, build_defs.bzl has been updated to have the
bazel rule `flatbuffer_cc_library` defined. Therefore, it should
be possible to build another application and using `flatbuffer_cc_library`
directly (by `load("@com_github_google_flatbuffers//:build_defs.bzl", "flatbuffer_cc_library")`)
However, when I tried to do the above, I saw the following errors in bazel:
```
ERROR: /root/.cache/bazel/_bazel_root/c27e9809996ce9a9c0ed8dd79ef0897b/external/arrow/BUILD.bazel:12:1: in deps attribute of cc_library rule @arrow//:arrow_format: target '@arrow//:runtime_cc' does not exist. Since this rule was created by the macro 'flatbuffer_cc_library', the error might have been caused by the macro implementation in /root/.cache/bazel/_bazel_root/c27e9809996ce9a9c0ed8dd79ef0897b/external/com_github_google_flatbuffers/build_defs.bzl:216:16
```
The reason for the bazel error was that `//:runtime_cc` and `//:flatc` does not have
the repo name prefixed.
By prefix `` the above bazel build error could be resolved.
This fix should help other programs to use flatbuffers directly through bazel.
Signed-off-by: Yong Tang <[email protected]>
* Add `NaN` and `Inf` defaults to the C++ generated code. * Refactoring: add FloatConstantGenerator * Refactoring-2: - remove isnan checking for all float/double values - add most probable implementation of virtual methods of FloatConstantGenerator * Add conditional (FLATBUFFERS_NAN_DEFAULTS) isnan checking
* support clearing flatBuffer builder in js * remove unused member reset force_defaults dont actually need to clear data in bytebuffer
* Add default NaN/Inf to C#, Java, Python * Python NaN/Inf test added * Remove MSVC2010/13 dependent code
… PHP (#5125) * Docker test for Zend PHP 7.3 * hhvm * move failing hhvm test to TODO zone * c# mono 5.18 test * python coverage reports
* Fix high certainty warnings from PVS-studio - Introduced FLATBUFFERS_ATTRIBUTE macro to use [[attribute]] if modern C++ compiler used * Update the note about __cplusplus usage in the MSVC
* Add `const` keyword to the `operator-(const uoffset_t &)` function in `VectorIterator` * Support reverse iterator in Vector Introduced a new VectorReverseIterator type. We cannot directly use `std::reverse_iterator<VectorIterator>` because the signature of `operator*` and `operator->` in the VectorIterator class are not standard signatures. Also added `rbegin()`, `rend()`, `cbegin()`, `cend()`, `crbegin()` and `crend()` in the Vector class.
* [Rust] Added global namespace imports * Documented the need for global imports * Added white_space params to GenNamespaceImports * Removed a \n from GenNamespaceImports
- enable FLATBUFFERS_ATTRIBUTE if C++17 or higher
- GCC: fixed broken `fallthrough` (checked with 7.3 and 8.2) - Clang: added `fallthrough` support - Clang: added `-Wimplicit-fallthrough` checking
Fix a typo in the static assert message in `make_unsigned` Support more specifications for `make_unsigned`
With the introduction of Windows 10 on ARM (ARM64), code that assumes that Windows targets are always x86 or x86_64 targets needs to be updated. The hot function ReadUInt64 has been optimized in MSVC builds using the compiler intrinsic __movsb. Since this does not exist on ARM64 Windows, this change uses the pure C++ path that other platforms use instead.
…an work with non-sequential enums as well as those beginning at something other than zero. (#5151) Also including the resulting changes in php files.
Change-Id: I0ebd4502f98d009ce5afe8c8bafb629284f0366c
(see comments in the code). Change-Id: I5603abb0db436145739653692644bbcfd3c946e3
Change-Id: Idfc8d9cfbdefda44f803a6232700842ee6b6bffd
Change-Id: Ib771bfa46ccdf38eff25be857b1b73f8b300c649
* [FlexBuffers][Java] Implementation of FlexBuffers API This is the initial attemp to implement FlexBuffer on Java. There is some limitations as compared to the C++ implementation: 1 - No mutations implemented yet 2 - Does not parse from json Also, this initial implementation is not focused and performance, but get the basics write. So there is many opportunities for optimization, for instance, remove all enums, return CharSequence instead of Strings and object pooling. * [FlexBuffers][Java] Optimizations and simplification of the Builder API. This change removes BitWidth enum in favor of static ints. Also make all "reads" APIs closer to C++ implementation (try to cast or convert as much as possible, assuming user knows what he is doing). Finally, we remove the helper classes for building vectors and maps. There is no official benchmarks, but the unit tests are running in less than 50% for previous runs, which mean those optimizations are worth it. * [FlexBuffers][Java] Fix Reference::asString behavior There was a incorrect assumption that strings would be null-terminated, which could lead to truncated strings. S now it relies size instead of null-termination. Other minor improvements
…ctory to allow the factory to keep a pool of larger than initialsize sized buffers. (#5500)
* [C#] Fix retrieving enumeration vectors as arrays * [C#] Don't generate CreateVectorBlock for enums
* wrap quotes to enum name map to prevent syntax errorn when enum value is negative * Add a test that covers signed enum case
* Cargo clippy lints * more lints * more lints * Restored a doc comment * Comment on float eps-eq and adjusted casting
…le (#5507) * fix: segment fault with empty namespace when generating dart file * fix: compile err * fix: compile err * fix: imported file names * fix test issues * fix some language style issues
…5506) Also add a FlexBuffer constructor to simplify usage
* Add element size parameter to __vector_as_arraysegment Add element size parameter to __vector_as_arraysegment fixing issue where VectorAsBytes returns incorrect size span for multibyte element types. * Update codegen Update codegen and Table to return typed span. * update test files update test files
Change-Id: Ie82abaf178495c4692e7d10be6b4a13f2fa1bee6
Change-Id: Ie94386ff8e10fd2a964bd9155139b50953746a37
…5233) * Java: Added access object for vector of struct and vector of tables. * Java: Workarounds removed when accessing the union vector.
* Draft with Array specialization (#5508) * Array specialization + SFINAE to fold copy-paste (#5508) * Add implicit specialization of Array<scalar> and Array<struct> (#5508) - Tag dispatching is used for implicit specialization - Array<scalar> and Array<struct> have different iterators and accessors - Array<scalar> and Array<struct> have different Mutate() methods * Add implicit specialization of Array<scalar> and Array<struct> (#5508) - Tag dispatching is used for implicit specialization - Array<scalar> and Array<struct> have different iterators and accessors - Array<scalar> and Array<struct> have different Mutate() methods
…tring(). (#5532) The real position of a string is calculated by using the indirect() method, which should be based on parentWidth and not byteWidth, as it was implemented. We are also fixing the flag BUILDER_FLAG_SHARE_STRINGS on FlexBuffersBuilder that was set as '1', same value as BUILDER_FLAG_SHARE_KEYS.
* Adds XOPEN_SOURCE for PATH_MAX and POSIX 1993 for stat These are the only two required extension for compilation of flatbuffers using -std=c++11 instead of gnu++11. * Sets _XOPEN_SOURCE to 600 and enable POSIX2001 for fseeko
Fixes build errors from using newer crate versions with an old Rust version.
Alongside --binary and --json, an additional switch (--flexbuffers) can be passed to convert data using FlexBuffers
Change-Id: I59ff072e526fc63b3215767a4d4a2a8944b65654
tira-misu
pushed a commit
that referenced
this pull request
Nov 16, 2022
* Fix nightly no_std * Fix nightly no_std
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Thank you for submitting a PR!
Please make sure you include the names of the affected language(s) in your PR title.
This helps us get the correct maintainers to look at your issue.
If you make changes to any of the code generators, be sure to run
cd tests && sh generate_code.sh(or equivalent .bat) and include the generatedcode changes in the PR. This allows us to better see the effect of the PR.
If your PR includes C++ code, please adhere to the Google C++ Style Guide,
and don't forget we try to support older compilers (e.g. VS2010, GCC 4.6.3),
so only some C++11 support is available.
Include other details as appropriate.
Thanks!