Joshua Haberman
982b634bc5
Fixed a few minor bugs found by fuzzing.
4 years ago
Joshua Haberman
c9d2e58480
Merge pull request #310 from haberman/fast-table
...
Fast table-driven parsing for upb (2+GB/s)
4 years ago
Joshua Haberman
a01f3e23a4
Fixes for google3 build, and exclude even more tests from macOS to avoid timeout.
4 years ago
Joshua Haberman
a83d55ee4b
Exclude Clang tests from MacOS to avoid Kokoro timeouts.
...
The real solution is to have each Kokoro build as part of a
separate job that runs in parallel.
4 years ago
Joshua Haberman
73fcfe9ed0
Tried to slim down the tests a bit more.
4 years ago
Joshua Haberman
baab25b7aa
Removed excess/redundant tests from Kokoro script.
4 years ago
Joshua Haberman
1eb7bd39e7
Some formatting fixes.
4 years ago
Joshua Haberman
9d87055ce4
Updated Kokoro build script.
4 years ago
Joshua Haberman
4bd34da105
WIP.
4 years ago
Joshua Haberman
a7993615bf
Merge branch 'master' into fast-table
4 years ago
Joshua Haberman
3a3efe69a2
Added incompatible_use_toolchain_transition = True per https://github.com/bazelbuild/bazel/issues/11584
4 years ago
Joshua Haberman
7b4e376f79
Switch unordered_set -> absl::flat_hash_set.
4 years ago
Joshua Haberman
fe62fc83e1
Removed obsolete includes in benchmark.
4 years ago
Joshua Haberman
5ed089dc42
Merge pull request #335 from haberman/wyhash-rule
...
Added a BUILD file for wyhash.
4 years ago
Joshua Haberman
e9b79542ad
Added a BUILD file for wyhash.
...
This will make the build more closely resemble the google3
build.
The CMake output from this is a bit busted, but the build
does succeed.
4 years ago
Joshua Haberman
7b8ae7ec4e
Merge branch 'master' into size-benchmarks
4 years ago
Joshua Haberman
a5b5445da6
Merge pull request #334 from haberman/rm-port-c
...
Removed obsolete port.c file.
4 years ago
Joshua Haberman
6c16cba83f
Removed obsolete port.c file.
4 years ago
Joshua Haberman
484d8f746a
Updated comment in wyhash.h to correct spelling mistake.
4 years ago
Joshua Haberman
6a9d0f45b8
Merge pull request #333 from haberman/32bitfixes
...
Fixed a critical bug on 32-bit builds, and added much more Kokoro testing
4 years ago
Joshua Haberman
5b1f0d86a1
For Kokoro, only build/test -m32 on Linux.
...
Also fixed a bunch of bugs found by gcc's -fanalyzer.
4 years ago
Joshua Haberman
0497f8deed
Fixed a critical bug on 32-bit builds, and added much more Kokoro testing.
...
There was a bug in our arena code where we assumed that
sizeof(upb_array) would be a multiple of 8. On i386 it was
not, and this was causing memory corruption on 32-bit builds.
4 years ago
Joshua Haberman
7543f851f1
Merge pull request #332 from haberman/php-amalgamation
...
Amalgamation no longer bundles wyhash, but #includes it.
4 years ago
Joshua Haberman
64abb5eb11
Amalgamation no longer bundles wyhash, but #includes it.
...
Also fixed a few spelling mistakes.
4 years ago
Joshua Haberman
a2a40792b5
Merge pull request #331 from haberman/json-oneof-fix
...
Bugfix for JSON decoding: only check real oneofs for duplicates.
4 years ago
Joshua Haberman
dd0994d377
Bugfix for JSON decoding: only check real oneofs for duplicates.
...
Also fixed upb_msg_whichoneof() to work properly for synthetic
fields, and to be simpler in general.
4 years ago
Joshua Haberman
496f638025
Merge pull request #330 from haberman/symtab-longjmp
...
symtab: use longjmp() for errors and avoid intermediate table.
4 years ago
Joshua Haberman
c9f9668234
symtab: use longjmp() for errors and avoid intermediate table.
...
We used to use a separate "add table" during the upb_symtab_addfile()
operation to make it easier to back out the file if it contained
errors. But this created unnecessary work of re-adding the same symbols
to the main symtab once everything was validated.
Instead we directly add symbols to the main symbols table. If there is
an error in validation, we remove precisely the set of symbols that
were already added.
This also requires using a separate arena for each file. We can fuse
it with the symtab's main arena if the operation is successful.
LoadDescriptor_Upb 61.2µs ± 4% 53.5µs ± 1% -12.50% (p=0.000 n=12+12)
LoadAdsDescriptor_Upb 4.43ms ± 1% 3.06ms ± 0% -31.00% (p=0.000 n=12+12)
LoadDescriptor_Proto2 257µs ± 0% 259µs ± 0% +1.00% (p=0.000 n=12+12)
LoadAdsDescriptor_Proto2 13.9ms ± 1% 13.9ms ± 1% ~ (p=0.128 n=12+12)
4 years ago
Joshua Haberman
4d9a8cd67b
Merge branch 'master' into symtab-longjmp
4 years ago
Joshua Haberman
6322d1d72d
Merge pull request #329 from haberman/benchmark-ads-descriptor
...
Added benchmark for loading ads descriptor.
4 years ago
Joshua Haberman
5ec1d39224
Avoid building .pb.cc for ads protos, as C++ takes forever to compile.
4 years ago
Joshua Haberman
43c207ea7e
Added CMake dummy rule.
4 years ago
Joshua Haberman
c3b5637646
Added benchmark for loading ads descriptor.
...
Generally this seems to track the speed of loading descriptor.proto.
----------------------------------------------------------------------------------------------------
Benchmark Time CPU Iterations
----------------------------------------------------------------------------------------------------
BM_LoadDescriptor_Upb 59091 ns 59086 ns 11747 121.182MB/s
BM_LoadAdsDescriptor_Upb 4218587 ns 4218582 ns 166 120.544MB/s
BM_LoadDescriptor_Proto2 241083 ns 241049 ns 2903 29.7043MB/s
BM_LoadAdsDescriptor_Proto2 13442631 ns 13442099 ns 52 34.8975MB/s
4 years ago
Joshua Haberman
acd72c6d3f
WIP.
4 years ago
Joshua Haberman
6ae3b66cd2
Merge pull request #328 from haberman/optdefload
...
Optimized the loading of descriptors
4 years ago
Joshua Haberman
8113ebd6c7
Added explanatory comment about integer constants.
4 years ago
Joshua Haberman
f2d826b9f3
Got rid of floating-point division in table init.
...
Ideally we would get rid of all floating-point operations
in table.c, but that's a job for another day.
4 years ago
Joshua Haberman
723cd8ffc1
Added wyhash code and LICENSE, and removed temporary benchmark.
4 years ago
Joshua Haberman
15e20636c3
Merge branch 'master' into optdefload
4 years ago
Joshua Haberman
154f2c25f4
Added UTF-8 validation for proto3 string fields.
4 years ago
Joshua Haberman
e8f9eac68c
Added #defines UPB_ENABLE_FASTTABLE and UPB_TRY_ENABLE_FASTTABLE.
...
These control whether fasttable decoding is on.
4 years ago
Joshua Haberman
994cf07cf3
Merge pull request #327 from benjaminp/modern-linking
...
Migrate to modern Starlark linking api.
4 years ago
Benjamin Peterson
b5bd5807a7
Migrate to modern Starlark linking api.
...
See https://github.com/bazelbuild/bazel/issues/10860 .
4 years ago
Joshua Haberman
dc64613607
Merge branch 'fastest-table' into fast-table
4 years ago
Joshua Haberman
e86541ac1d
Fixed the build after the merge.
4 years ago
Joshua Haberman
1cd0cb17d3
Merge branch 'master' into fastest-table
4 years ago
Joshua Haberman
901744a97e
Merge pull request #326 from haberman/c99
...
Drop C89/C90 support and MSVC prior to Visual Studio 2015.
4 years ago
Joshua Haberman
a0d16e7073
Added a few missing copts, and made some functions proper prototypes.
4 years ago
Joshua Haberman
558315a1c3
Added COPTS to :port.
4 years ago
Joshua Haberman
7e5bd65098
Plumbed copts (including the crucial -std=c99) to upb_proto_library() aspect.
4 years ago