Commit Graph

2367 Commits

Author SHA1 Message Date
Derek Bailey e2b26ee19b
Make and generate_code.sh generate same outputs (#6855)
* added --bfbs-builtins

* update generate_code.bat

* forgot the .

* updated checking scripts

* added bypass for the monster_test.bfbs and arrays_test.bfbs diff issue

* removed check on windows for now
2021-09-24 12:01:34 -07:00
Louis DeScioli 9d686bf433
Include subdirectories in published npm package (#6850)
Updates the `files` globs in package.json to include subdirectories in order to also include the flexbuffers directory in the published npm package.

Updates .gitignore to include the tsc-generated JS files.
2021-09-23 16:22:49 -07:00
Louis DeScioli 1d26daff3e
Use ArrayBuffer type for JS flexbuffer's toObject (#6851) 2021-09-23 16:22:13 -07:00
Ivan Dlugos e72e18d9fd
feat(build): compile "universal" libraries and executables for Mac (#6852)
to support both x86_64 and arm64 with a single artifact
2021-09-23 12:36:20 -07:00
Derek Bailey 354d97f6da
fixed errant itemgroup element in C# test project (#6854)
errant save
2021-09-21 15:01:29 -07:00
Todd Hansen 6f7a57eaa0
[C#] Using 'global::' as qualifying_start_ within BaseGenerator (#6767)
* Update idl_gen_csharp.cpp

Change csharp generator to use "global::" for it's qualifying_start_ to disambiguate namespaces

* regenerate testing files

regenerate testing files

* Missed TableInC.cs

updated with global prefix

* Remove "global::" from qualifying_start_ for csharp generator

* C# global alias

* Tests and docs for --cs-global-alias

Add tests for --cs-global-alias to demonstrate use case for why it's needed.

Add documentation to Compiler.md

* Add also to help text

Add also to help text
2021-09-15 16:57:29 -05:00
Ivan Dlugos 90baa1444b
Dart: binary lists (typed_data) (#6839)
* Dart - add eager mode to Uint8ListReader

* Dart - add Int8ListReader

* Dart - use binary reader where useful

* Dart - test binary list reader laziness

* Dart - update generated code
2021-09-15 08:50:57 -07:00
Casper 0a3b017f09
Delete IDLOptions::lang (#6841)
Co-authored-by: Casper Neo <cneo@google.com>
2021-09-13 18:18:00 -04:00
Artavazd Balaian 47d35f1053
BugFix: Optional enum when it is null (#6835)
* Test to make sure optional enum is written properly

* Handle optional enum codegen: when cast optional enum add `?`

* Run `tests/generate_code.sh` to generate code from schema

* Fix type casting in case of CreateXXXTypeVector

* Reason why vector's type is not optional
2021-09-10 12:55:46 -04:00
Derek Bailey 8fb8c2ce1d
[C#] Use @ for keyword escaping (#6834) 2021-09-09 10:29:27 -07:00
Maksim Ivanov 1d063d87cf
[C++] Let builder accept custom-alloc std::vector (#6814)
Change the FlatBufferBuilder's methods to accept std::vector parameters
with non-default allocator, by adding another template parameter to
them. This should make using the builder slightly more convenient, as
one won't need to manually pass data() and size() separately.
2021-09-08 13:25:06 -07:00
Herr Frei 338331b55b
Changes to support binary schema file loading and parsing (flatc) (#6823)
* Changes to support binary schema file loading and parsing (flatc)
- parser.reset() is also called if binary schema file is given
- code flow changed to not try to load a binary schema as textual schema

* Removed unneeded braces
2021-09-08 13:19:00 -07:00
Rafal Kapuscik 156a30c753
Move Apple-specific build flags to Clang section (#6802)
This allows building FlatBuffers with gcc on macOS:
- avoid linking libc++ when not using clang
- look at compiler first, then OS-specific options

Signed-off-by: Rafal Kapuscik <rkapuscik@antmicro.com>
2021-09-08 13:14:53 -07:00
schoetbi 550d2f9048
Issue error if jsonschema has no root type defined #6821 (#6831) 2021-09-02 14:24:47 -07:00
SaintMalik c3a38242e6
Fix typos in docs (#6829) 2021-09-02 11:38:45 -04:00
Tyler Denniston 74c3d7eba2
[C++] Add mutable version of LookupByKey and test (#6826)
* [C++] Add mutable version of LookupByKey and test

This adds an overload of LookupByKey to allow lookup in sorted Vectors to
return a mutable instance of the object (or nullptr if not found).

* Fix naming
2021-08-31 17:17:20 -04:00
Casper db6eae5c42
Add html and latex to gitignore (#6819)
Co-authored-by: Casper Neo <cneo@google.com>
2021-08-30 16:36:00 -07:00
Björn Harrtell 0e9d79c355
[Java] Avoid casting ByteBuffer to Buffer (#6785)
* Revert "avoiding even more NoSuchMethod exceptions (#6729)"

This reverts commit 6fb2c90d9e.

* Revert "avoiding more NoSuchMethod exceptions (#6671)"

This reverts commit 752c7b576d.

* Revert "avoiding NoSuchMethod exception (#6658)"

This reverts commit 813d3632ec.

* Use Java 8 for Kotlin Linux builds to verify
2021-08-30 15:51:06 -07:00
Stefan F b20c4d3aad
[C++] Add GetMutableSizePrefixedRoot and generate GetMutableSizePrefixedXxx functions (#6815)
* flattests_cpp17 doesn't compile with Visual Studio 2017: warning C4100: 'indent': unreferenced formal parameter

stringify_util.h(127): error C2220: warning treated as error - no 'object' file generated
stringify_util.h(127): warning C4100: 'indent': unreferenced formal parameter
stringify_util.h(85): warning C4100: 'indent': unreferenced formal parameter
stringify_util.h(85): warning C4100: 'fbs': unreferenced formal parameter

* [C++] Add GetMutableSizePrefixedRoot() and generate a GetMutableSizePrefixed function
When using the mutable API together with size prefixed buffers these functions should be present.

* clang-format

* Cleanup branch for PR
Revert "flattests_cpp17 doesn't compile with Visual Studio 2017: warning C4100: 'indent': unreferenced formal parameter"

This reverts commit a92055203e.
2021-08-30 15:34:42 -07:00
Stefan F ae145293cc
flattests_cpp17 doesn't compile with Visual Studio 2017: warning C4100: 'indent': unreferenced formal parameter (#6811)
stringify_util.h(127): error C2220: warning treated as error - no 'object' file generated
stringify_util.h(127): warning C4100: 'indent': unreferenced formal parameter
stringify_util.h(85): warning C4100: 'indent': unreferenced formal parameter
stringify_util.h(85): warning C4100: 'fbs': unreferenced formal parameter
2021-08-30 15:32:36 -07:00
Ivan Dlugos e3c76a5cde
Dart lints (#6808)
* Dart - add analysis options with the recommended lints

* Dart - generate code without linter issues

* Dart - remove linter issues in example and test code

* Dart - remove linter issues in lib code

* Dart - update generate code in /tests/
2021-08-30 12:54:59 -07:00
Casper 4b9123baff
fix parser string=null (#6810)
Co-authored-by: Casper Neo <cneo@google.com>
2021-08-24 09:41:39 -04:00
Casper f89e0b1a6c
Refactor idl_gen_rust and Rust generated code to use consistent whitespace (#6809)
* Remove dead code in idl_gen_rust

* Use 2space indentation in mod.rs

* use In/DecrementIdentValue in idl_gen_rust

Fix some whitespace too in generated code.

* make default fn 2space ident

* More 2space formatting

* git clang format

* make vs2015 happy

Co-authored-by: Casper Neo <cneo@google.com>
2021-08-23 18:53:10 -04:00
Casper 273f6084e5
Fix Rust keyword inconsistency (#6794)
* Make Rust keyword escaping more consistent

* fix comment

* git clang format

Co-authored-by: Casper Neo <cneo@google.com>
2021-08-18 15:37:44 -04:00
Todd Hansen 4a0879458d
[C#] Remove superfluous semicolon in C# structs (#6791)
Aims to resolve #6788

-Remove superfluous semicolon in C# structs
2021-08-17 11:02:57 -04:00
Casper d6f51ea16d
fix ptr in flatbuffers cpp tutorial (#6787)
Co-authored-by: Casper Neo <cneo@google.com>
2021-08-16 14:43:26 -04:00
Todd Hansen 067dce6e79
[C#] Handle keywords (#6775)
* Handle keywords in C#

C# should handle keywords similarly to other languages by appending an underscore after the keyword.

* Fix clang-format for idl_gen_csharp.cpp

* Fix spacing clang-format issue
2021-08-16 14:09:21 -04:00
Todd Hansen 2ca5f0e72b
[C#] Respect command line parameter for file name extension and suffix (#6779)
* Make CSharp use the command line parameter for file name extension and suffix

* Default file name now has _generated in it,
so we need to rename all the generated test files

tests/namespace_test/NamespaceA/TableInC.* are no
longer used, so these can be deleted

* Fix C# testing projects so that they reference
the new _generated.cs files

* Revert "Fix C# testing projects so that they reference"

This reverts commit cf62b9c5d4.

* Revert "Default file name now has _generated in it,"

This reverts commit 042aa81f10.

* Revert "Make CSharp use the command line parameter for file name extension and suffix"

This reverts commit ba8cd06646.

* Make CSharp use the command line parameter for file name extension and suffix

* Fixup clang tidy

* Fix more clang-tidy
2021-08-15 15:51:58 -04:00
Wouter van Oortmerssen f20d2253ae update Java version to 2.0.3 2021-08-14 09:01:54 -07:00
Paulo Pinheiro 390d438e2a
[Kotlin] Fix CI by changing compiler to Java 11 (#6783)
With the changes introduced on #6729, #6671, #6658 it seems that using java
compiler version 8 is no longer possible. We are adjusting our CI build for
Kotlin to use Java 11 as compiler, while still emiting 1.8 bytecode.

The Kotlin CI action is also being breakdown into two: Mac & Linux.
Kotlin mac will test ios & mac builds while Linux will test js and JVM.
This change will improve build times for Kotlin on CI, which is currently
taking long times.
2021-08-14 08:57:38 -07:00
Kamil Rojewski 6fb2c90d9e
avoiding even more NoSuchMethod exceptions (#6729)
* avoiding more NoSuchMethod exceptions

refs #6657

* avoiding even more NoSuchMethod exceptions

refs #6657
2021-08-05 12:25:23 -07:00
Björn Harrtell a7b527d942
java: Use maven profile to target Java 8 bytecode (#6764) 2021-08-05 11:44:13 -07:00
bakinovsky-m 5d77820b34
[C++] Using calculated fields_number for field_names size (#6769)
* using already defined "fields_number" in "field_names" size calculation

* tests

* forgotten test
2021-08-05 11:41:49 -07:00
RWauson 909ce970ae
[C++] Use UnPackTo instead of UnPack if pointer exists (#6725)
Causes generated code to check for existing pointers in an object (when using the object based api) and use UnPackTo(existingPointer) rather than just using UnPack() to replace the pointer. This is a performance issue when unpacking to existing objects when using large buffer fields (e.g. image frames)

Co-authored-by: RobWauson <robwauson@gmail.com>
2021-08-05 11:40:03 -07:00
Casper 35e2cac6eb
Store vtables sorted in Rust builder (#6765)
* benchmark many vtables

* Rust: Store written_table rev-positions sorted.

The previous implementation was slow if there were too many tables.

Asymototically when inserting the n^th vtable: The old implementation
took O(n) lookup steps and O(1) insertion. The new implementation is
O(log n) lookup and O(n) insertion. This might be improved further by
using a balanced btree.

Benchmarking, create_many_tables is 7.5x faster (on my laptop):

// Simple vector cache
test create_many_tables ... bench: 728,875 ns/iter (+/- 12,279) = 44 MB/s

// Sorted vector cache
test create_many_tables ... bench: 97,843 ns/iter (+/- 4,430) = 334 MB/s

* Fix lints

Co-authored-by: Casper Neo <cneo@google.com>
2021-08-03 12:31:45 -07:00
mogemimi c39fc9dd9c
[C++] Use nullptr instead of 0 in generated headers (#6762) 2021-08-02 13:41:15 -07:00
mogemimi 775c6567d1
[C++] Fix compiler warning -Wredundant-parens in clang (#6761) 2021-08-02 13:40:17 -07:00
Ivan Dlugos 97d9527f6c
Dart 2.0 release prep (#6759)
* Dart - pubspec.yaml shouldn't contain authors section anymore - it's unused

* Dart - update CHANGELOG.md

* Dart - update test and publish scripts
2021-08-02 13:31:36 -07:00
Esun Kim e012054667
[C++] Use proper gRPC C++ API when using MemoryBuffer Slice (#6756)
* Use ByteBuffer

* Use Slice

* Upgrade gRPC to 1.39.0

* Update gRPC build script

* Reformat

* Added CMAKE_CXX_STANDARD=11 when building Abseil

* Enabled ABSL_ENABLE_INSTALL

* Added absl to grpctest deps
2021-07-29 10:41:51 -07:00
Ivan Dlugos 5235133f32
Dart - make ascii optimization optional in StringReader, same as in writeString() (#6758) 2021-07-29 10:39:03 -07:00
Ivan Dlugos c871df7702
Dart - change table building to assert() instead of exceptions (#6754) 2021-07-26 11:42:42 -07:00
Ivan Dlugos a6eeeb3b9c
Dart - inline small functions to increase performance (#6755)
~25 % for reading
~30-35 % for writing
2021-07-26 10:09:46 -07:00
tira-misu 3dd02144d5
[C#] Fix field name struct name collision (#6744) (#6757)
* Fix C/C++ Create<Type>Direct with sorted vectors

If a struct has a key the vector has to be sorted. To sort the vector
you can't use "const".

* Changes due to code review

* Improve code readability

* Add generate of JSON schema to string to lib

* option indent_step is supported

* Remove unused variables

* Fix break in test

* Fix style to be consistent with rest of the code

* [C#] Fix field name struct name collision (#6744)
2021-07-26 10:02:27 -07:00
mugisoba e77926f0ed
[C#] Add Union Constructor Utility for ObjectAPI. (#6105)
* [C#] add union constructor utility.

* add union utility test.

* std::tolower -> CharToLower

* use std::transform instead

* rebase to master. and regenerate test code
2021-07-26 10:01:41 -07:00
Ivan Dlugos ac23482022
Dart - fixup writeString() return type after previous merges (#6753) 2021-07-26 09:54:13 -07:00
Taiju Tsuiki 8be8a0a713
[C++] Fix union type handling on object api in C++17 (#6745) 2021-07-25 16:20:34 +07:00
Casper 12e341e4f8
Rework how Rust generated files are laid out (#6731)
* Refactored Rust Generated code into a module directory.

Each symbol will be generated into one file and then
imported into a module. This breaks the "out_dir"
pattern where some users would generate code in their
target/ directory. Also, these objects are best used
in their own module. It will be hard for users to share
their own module structure with flatbuffers namespaces.

There may be solutions to these drawbacks but that should
be discussed. I don't want to overengineer here.

* shadow error

* try fix .bat file

* fix .bat 2

* Restore accidentally deleted files

* Fixed some DONOTSUBMITs and made Rust outdir pattern use symlinks.

* fixed binary files

* git clang format

* make generated onefiles not public and fix .bat

* reduced diff with master in generate_code.sh

* fix shadowed variable

* add object api flags to .bat

* space

* Removed extern crate and extra &

* use statement

* more clippy lints

* format

* Undo extern crate -> use change, it actually matters to our tests

Co-authored-by: Casper Neo <cneo@google.com>
2021-07-22 19:02:28 -04:00
Ivan Dlugos c36672d803
Dart - optimize writeString for ASCII (#6736)
* Dart - optimize writeString for ASCII

* Dart - writeString() ASCII optimization optional
2021-07-22 10:36:37 -07:00
Ivan Dlugos 2bfc8e9f01
Dart - make writeString() argument non-nullable (#6737) 2021-07-20 07:54:48 -07:00
Casper 674a9f2aae
fix lints in rust tests (#6743)
Co-authored-by: Casper Neo <cneo@google.com>
2021-07-19 18:47:20 -04:00