Joshua Haberman
9482957425
Enforce that filenames are unique when loaded into symtab.
...
This brings upb into line with C++. PHP already checks this
internally, so this should not be an issue there. Ruby on the
other hand does not currently check this, so this change will
cause our Ruby implementation to reject some programs that
would otherwise have been accepted.
4 years ago
Joshua Haberman
aaad7801bf
Merge pull request #393 from haberman/has-attribute
...
Fixed the __has_attribute() check for old versions of Clang.
4 years ago
Joshua Haberman
7887dc0c76
Fixed the __has_attribute() check for old versions of Clang.
4 years ago
Joshua Haberman
01e7436ed3
Merge pull request #390 from haberman/musttail
...
Converted fasttable decoder to use __attribute__((musttail)) when it is available
4 years ago
Joshua Haberman
4132034634
Addressed PR comment.
4 years ago
Joshua Haberman
ed708fcd5d
Addressed PR comments.
4 years ago
Joshua Haberman
876abae2db
Removed some debug printing and simplified checktag slightly.
4 years ago
Joshua Haberman
286441afa7
Fixed a size regression due to inlining UTF-8 verification.
...
Overall size/speed impact on fasttable decoder is now:
name old time/op new time/op delta
ArenaOneAlloc 21.5ns ± 0% 21.5ns ± 0% ~ (p=0.060 n=12+12)
ArenaInitialBlockOneAlloc 6.33ns ± 0% 6.33ns ± 0% ~ (p=0.413 n=11+12)
LoadDescriptor_Upb 43.4µs ± 1% 45.5µs ± 1% +4.79% (p=0.000 n=12+12)
LoadAdsDescriptor_Upb 2.50ms ± 0% 2.51ms ± 2% ~ (p=0.512 n=10+11)
LoadDescriptor_Proto2 240µs ± 0% 240µs ± 0% -0.25% (p=0.000 n=12+12)
LoadAdsDescriptor_Proto2 12.9ms ± 0% 12.9ms ± 0% +0.20% (p=0.014 n=10+12)
Parse_Upb_FileDesc<UseArena,Copy> 4.99µs ± 0% 5.04µs ± 0% +0.98% (p=0.000 n=11+10)
Parse_Upb_FileDesc<UseArena,Alias> 4.02µs ± 0% 4.18µs ± 0% +4.16% (p=0.000 n=10+12)
Parse_Upb_FileDesc<InitBlock,Copy> 4.49µs ± 0% 4.54µs ± 0% +1.16% (p=0.000 n=11+10)
Parse_Upb_FileDesc<InitBlock,Alias> 3.60µs ± 0% 3.80µs ± 0% +5.73% (p=0.000 n=12+11)
Parse_Proto2<FileDesc,NoArena,Copy> 29.3µs ± 0% 29.3µs ± 0% ~ (p=0.069 n=11+12)
Parse_Proto2<FileDesc,UseArena,Copy> 20.2µs ± 3% 20.3µs ± 2% ~ (p=0.880 n=12+11)
Parse_Proto2<FileDesc,InitBlock,Copy> 16.5µs ± 0% 16.5µs ± 0% ~ (p=1.000 n=12+12)
Parse_Proto2<FileDescSV,InitBlock,Alias> 16.4µs ± 0% 16.4µs ± 1% ~ (p=0.590 n=12+12)
SerializeDescriptor_Proto2 5.31µs ± 1% 6.65µs ±29% +25.07% (p=0.000 n=12+12)
SerializeDescriptor_Upb 12.4µs ± 0% 12.5µs ± 0% +1.23% (p=0.000 n=12+12)
FILE SIZE VM SIZE
-------------- --------------
+16% +128 [ = ] 0 [Unmapped]
-1.2% -4 -1.2% -4 [section .text]
[NEW] +2 [NEW] +2 fastdecode_isdonefallback
[DEL] -6 [DEL] -6 fastdecode_longstring_noutf8
-0.2% -124 -0.2% -124 upb/decode_fast.c
+5.8% +64 +6.0% +64 upb_pom_1bt_max64b
+2.7% +64 +2.7% +64 upb_ppv8_2bt
+2.7% +32 +2.8% +32 upb_psm_1bt_max256b
+2.8% +32 +3.0% +32 upb_psm_1bt_max64b
+2.8% +32 +3.0% +32 upb_psm_2bt_max64b
+4.0% +24 +4.2% +24 upb_psv8_1bt
+2.0% +16 +2.1% +16 upb_prf4_2bt
+1.3% +16 +1.4% +16 upb_prz8_2bt
-0.3% -4 -0.3% -4 [3 Others]
-1.6% -8 -1.7% -8 upb_cob_1bt
-1.6% -8 -1.7% -8 upb_csb_1bt
-2.5% -16 -2.6% -16 upb_pov4_1bt
-1.3% -16 -1.3% -16 upb_prv8_2bt
-2.5% -16 -2.7% -16 upb_psv4_1bt
-2.5% -16 -2.6% -16 upb_psv4_2bt
-3.0% -32 -3.1% -32 upb_prs_2bt
-2.6% -32 -2.6% -32 upb_prv4_2bt
-4.9% -48 -5.1% -48 upb_prb_2bt
-3.9% -48 -4.0% -48 upb_prv4_1bt
-7.2% -72 -7.5% -72 upb_prb_1bt
-7.8% -88 -8.0% -88 upb_prs_1bt
[ = ] 0 -0.1% -128 TOTAL
There is a bit of speed regression, but it appears there were bigger
CPU regressions prior to this. We probably need some separate
optimization attention again to get back to the performance numbers
we had when fasttable was first submitted.
4 years ago
Joshua Haberman
75df4cdaa3
Loosened the check for fasttable to match what we did before.
4 years ago
Joshua Haberman
e84793dd73
Cleaned up debugging artifacts.
4 years ago
Joshua Haberman
a4b35aa388
Everything passes except 4 conformance tests.
4 years ago
Joshua Haberman
6e10b5789d
Removed redundant license from port_def in amalgmation.
4 years ago
Joshua Haberman
4f1e48ecc6
Updated amalgamator to avoid duplicating license blocks.
4 years ago
Joshua Haberman
0723bfa700
Merge pull request #387 from haberman/json-null
...
JSON: Only perform multiple oneof check for non-null fields.
4 years ago
Joshua Haberman
dda5416569
Update bazel-skylib main branch name.
4 years ago
Joshua Haberman
2fa52e6951
Merge branch 'master' into json-null
4 years ago
Joshua Haberman
a3126b7c7e
Merge pull request #388 from haberman/fix-macos
...
Fix macOS build for XCode 11.3
4 years ago
Joshua Haberman
b344a6c582
Fixed the macOS build for XCode 11.3.
...
This works around:
https://github.com/bazelbuild/bazel/issues/12905
4 years ago
Joshua Haberman
a778f2639a
Only perform multiple oneof check for non-null fields.
...
This allows payloads like:
{"oneofUint32": null, "oneofString": "test"}
4 years ago
Joshua Haberman
42bdfcb849
Fix BUILD file.
4 years ago
Joshua Haberman
75d6dab37a
Merge pull request #384 from haberman/internal
...
Renamed .int.h to _internal.h, for greater clarity.
4 years ago
Joshua Haberman
3881393907
Renamed .int.h to _internal.h, for greater clarity.
4 years ago
Matt Fowles Kulukundis
5084cbe646
Merge pull request #383 from fowles/master
...
Fix build rules for more restrive deps checks
4 years ago
Matt Kulukundis
da4b75b979
Fix build rules for more restrive deps checks
...
- add msg.int.h access for generated files
- actually declare reflective/non as different things
4 years ago
Joshua Haberman
a8f9cf54cf
Merge pull request #382 from haberman/license-headers
...
Added license headers to all files
4 years ago
Joshua Haberman
1ba446ccfe
Updated Google, Inc. to Google LLC.
4 years ago
Joshua Haberman
823eb09694
Update all 2011 dates to 2021.
4 years ago
Matt Fowles Kulukundis
ff89277ef0
Merge pull request #380 from fowles/master
...
Spell out deps explicitly
4 years ago
Joshua Haberman
5f74d43cf9
Re-add some comment text that was accidentally removed.
4 years ago
Joshua Haberman
0f27b0450a
Merge branch 'master' into license-headers
4 years ago
Joshua Haberman
e59d2c8fa7
Added license headers to all files.
4 years ago
Joshua Haberman
be4f64b926
Merge pull request #381 from haberman/mv-msg-public
...
Put public message interface into msg.h and moved internal functions to msg.int.h.
4 years ago
Joshua Haberman
1674f28dd7
Put public message interface into msg.h and moved internal functions to msg.int.h.
4 years ago
Matt Kulukundis
6481f6319e
Spell out deps explicitly
...
Google internal bazel is more strict about deps, so both reflection and
non need to be spelled out explicitly.
4 years ago
Matt Fowles Kulukundis
f104225a1e
Merge pull request #376 from haberman/fix-quadratic-mem
...
Fixed quadratic memory usage in upb_array_append().
4 years ago
Joshua Haberman
3c3799498d
Merge pull request #379 from fowles/master
...
Remove unused file test_util.h
4 years ago
Matt Kulukundis
2e83d5c98f
Remove unused file test_util.h
4 years ago
Matt Fowles Kulukundis
b053fa6991
Merge pull request #378 from fowles/master
...
Allow arena fuse to fail and only fuse when they are safe
4 years ago
Matt Kulukundis
7876639e50
remove unused macro
4 years ago
Matt Kulukundis
5b97df91dd
Restrict fuse to matching block_alloc
4 years ago
Matt Kulukundis
e74d6c23de
Small renames and use uintptr_t instead of void*
4 years ago
Matt Kulukundis
d9a0c58108
Allow arena fuse to fail
...
Track initial blocks to avoid having fuse operate on arenas that cannot
be fused.
4 years ago
Joshua Haberman
53f5d9f69b
Merge pull request #377 from haberman/json-parse-null
...
Fixed "NULL + 0" UB in JSON encoder and decoder.
4 years ago
Joshua Haberman
8370818143
Switch to a macro to avoid signed/const mismatches.
4 years ago
Joshua Haberman
63ad3db980
Fixed "NULL + 0" UB in JSON encoder and decoder.
4 years ago
Joshua Haberman
add9b12f18
Fixed quadratic memory usage in upb_array_append().
...
We were erroneously calling realloc() instead of resize(),
forcing the entire array to be reallocated for every array
append.
4 years ago
Joshua Haberman
97e2aeb7ee
Merge pull request #375 from haberman/cleanups
...
A few minor cleanups
4 years ago
Joshua Haberman
83c0edbd2a
A few minor cleanups.
4 years ago
Joshua Haberman
baa7fe7473
Merge pull request #374 from haberman/update-deps
...
Updated versions of ABSL and protobuf deps.
4 years ago
Joshua Haberman
900bd5c426
Merge pull request #355 from haberman/aarch64
...
The fasttable parser works on ARM64!
4 years ago