1. 26 Dec, 2019 1 commit
    • Austin Schuh's avatar
      [Bazel] Add support for compatible_with and restricted_to (#5681) · 62ec7d52
      Austin Schuh authored
      * Add support for compatible_with and restricted_to
      
      These attributes have been available in Bazel for years.  Pass them
      through so the flatbuffer rules can be used with them.  They let you
      constrain which target platform is used.
      
      While we are here, fix gen_reflections to work with bazel.
      
      * Add docs
      62ec7d52
  2. 24 Dec, 2019 3 commits
  3. 23 Dec, 2019 6 commits
  4. 18 Dec, 2019 1 commit
  5. 17 Dec, 2019 2 commits
  6. 15 Dec, 2019 1 commit
    • Max Burke's avatar
      Bugfix for Rust generation of union fields named with language keywords (#5592) · eddebec1
      Max Burke authored
      * Bugfix for Rust generation of union fields named with language keywords
      
      Looking at ParseField, it appears that in the case of unions, an extra field with a `UnionTypeFieldSuffix` is added to the type definition, however, if the name of this field is a keyword in the target language, it isn't escaped.
      
      For example, if generating code for rust for a union field named `type`, flatc will generate a (non-keyword escaped) field named `type_type` for this hidden union field, and one (keyword escaped) called `type_` for the actual union contents.
      
      When the union accessors are generated, they refer to this `type_type` field, but they will escape it mistakenly, generating code like this:
      
      ```
        #[inline]
        #[allow(non_snake_case)]
        pub fn type__as_int(&self) -> Option<Int<'a>> {
          if self.type__type() == Type::Int {
            self.type_().map(|u| Int::init_from_table(u))
          } else {
            None
          }
        }
      ```
      
      Which will fail to build because the field is called `self.type_type()`, not `self.type__type()`.
      
      * [Rust] Add crate-relative use statements for FBS includes.
      
      At present if a flatbuffer description includes a reference to a type in
      another file, the generated Rust code needs to be hand-modified to add
      the appropriate `use` statements.
      
      This assumes that the dependencies are built into the same crate, which
      I think is a reasonable assumption?
      
      * Revert "[Rust] Add crate-relative use statements for FBS includes."
      
      This reverts commit d554d79fecf5afd6da6fb993b30b4cd523a5889a.
      
      * Address comments raised in PR
      
      * Update documentation comments per feedback
      
      * Fix typo
      eddebec1
  7. 13 Dec, 2019 1 commit
  8. 09 Dec, 2019 2 commits
  9. 06 Dec, 2019 1 commit
    • cryptocode's avatar
      Add --force-empty-vectors option (#5653) · a8e800bd
      cryptocode authored
      The rationale for this option is that JSON clients typically want empty arrays (i.e [] in the JSON) instead of missing properties, but not empty strings when the value isn't set.
      --force-empty is kept as-is, i.e. it will force both empty strings and vectors.
      
      Closes #5652
      a8e800bd
  10. 05 Dec, 2019 1 commit
  11. 02 Dec, 2019 5 commits
    • bttk's avatar
      Split Bazel targets into multiple packages (#5640) · 99d11e27
      bttk authored
      * Split Bazel targets into multiple packages
      
      * Merge /include/BUILD back into /BUILD
      99d11e27
    • Google AutoFuzz Team's avatar
      Remove a static_assert (#5643) · 4fd8eb21
      Google AutoFuzz Team authored
      Having a static_assert on MSAN and ASAN prevents
      the fuzzers from being used with different engines,
      like TSAN, UBSAN, … but also with fuzzers that aren't
      using MSAN/ASAN like afl for example.
      4fd8eb21
    • lu-wang-g's avatar
      Flatbuffers Python Object API (#5616) · 65f87035
      lu-wang-g authored
      * Flatbuffers Python Object API
      
      Implement the logic to generate the Python object API that can
      unpack the data from a buf class into an object class, and pack
      the data of an object class to a buf class.
      
      * Fix the build issues
      
      Remove unused parameters and replace auto in the for-loop statement
      with std::string to make it compatible with VS2010.
      
      * Fix the build issues.
      
      * Add support for Array type
      
      Added logic to handle Array type in Python Object API. Updated the
      generated code accordingly.
      
      * Fix the old style casting from int to char
      
      * Fixed another conversion from int to char
      
      * Fixed the import for typing
      
      Importing typing may cause errors when a machine do not have the
      moduel typing installed. This PR fixes the issue by guarding
      "import typing" with the "try/except" statement.
      
      * Fix issue of iterating the vector of import list
      
      * Update the generated examples using generate_code.sh
      
      * Fix the import order for typing
      
      The import list was stored in unordered_set, so that each generated
      codes may have different import order. Therefore, it failed in the
      consistency test where two generated copies need to have exactly the
      same apperance.
      
      * Optimize unpack using numpy
      
      Use numpy to unpack vector whenever it is possible to improve unpack
      performance.
      
      Also, added codegen command for Python specificly in generate_code.sh,
      because --no-includes cannot be turn on for Python.
      
      * Fix the import order
      
      * Update generate_code.bat for windows accordingly
      
      * Replace error message with pass
      
      Avoid printing error message for every Python2 users about typing.
      Replace it with pass.
      65f87035
    • Ivan Shynkarenka's avatar
      [Clang 10]: definition of implicit copy constructor for 'TableKeyComparatoris… · 75823cc2
      Ivan Shynkarenka authored
      [Clang 10]: definition of implicit copy constructor for 'TableKeyComparatoris deprecated #5649 (#5650)
      
      75823cc2
    • nilsocket's avatar
      [docs]: add missing semicolon (#5648) · 58e27924
      nilsocket authored
      Add missing semicolon for table field.
      58e27924
  12. 26 Nov, 2019 1 commit
  13. 25 Nov, 2019 3 commits
  14. 21 Nov, 2019 1 commit
  15. 18 Nov, 2019 2 commits
    • Vladimir Glavnyy's avatar
      Add testing of C++ with sanitizers (CI-Docker) (#5631) · 091fa1fd
      Vladimir Glavnyy authored
      * Add C++ build testing with clang and gcc
      
      This adds Dockerfiles which test building flatc and the C++ library against clang
      and gcc. See discussion at #5119.  It is derived from the Travis CI tooling.
      
      The GRPC tests are failing due to #5099 so those are commented out.
      
      These are run from the .travis.yml file rather than the tests/docker/languages
      folder because the builds may each take longer than 30 minutes and were hitting
      Travis timeouts.
      
      Parallel builds and build caching attempt to keep the build times low.
      
      * Add GCC 8.3 and Clang 7.0 with sanitizers into CI (based on #5130)
      
      - Add a docker based on Debian Buster.
      - Add C++ building scripts for the docker.
      - Leak-sanitizer requires SYS_PTRACE.
      091fa1fd
    • FujiZ's avatar
      ff3781dc
  16. 15 Nov, 2019 1 commit
    • Malar Kannan's avatar
      Support for python grpc - continuing the work from the pull request #4270 #4705 (#5613) · 6beb9f49
      Malar Kannan authored
      * Support for python grpc
      
      * add few fixes
      
      * Fixes build
      
      * Fix python generator
      
      * Add tests
      
      * Fix grpc python test
      
      * Fix tests and add incomplete python generator
      
      * Fix python generator
      
      * Add python generator methods
      
      * Fix Appveyor build
      
      * grpc python support v0.1
      
      * Update tests
      
      * update grpctest
      
      * Remove duplicated code and fix a brace
      
      * tests for flatbuffers grpc python
      
      * Updated tests + removed SerializeToString, From String
      
      * remove pickle import
      
      * include missing files in ci - BUILD and generated test result
      6beb9f49
  17. 14 Nov, 2019 3 commits
  18. 11 Nov, 2019 4 commits
  19. 07 Nov, 2019 1 commit