Joshua Haberman
bd9f8f580d
Fixed a few bugs with the fast decoder.
...
1. For long tags we were putting table entries in the wrong slot.
2. For repeated strings, when the buffer flipped to no longer alias we
were failing to notice and kept aliasing anyway.
4 years ago
Joshua Haberman
3eba47914b
Allocate hasbits and table slots in "hotness" order.
...
Without a profile, we assume that fields with smaller numbers
are hotter.
4 years ago
Joshua Haberman
021db6fcd5
Allow larger tags into the table if they are unique mod 31.
...
Also fixed a bug with fixed packed in decode_fast.c.
4 years ago
Joshua Haberman
86d9908c55
Fastdecode support for packed fields.
...
This is not very optimized yet. There is a lot of room to
optimize it further.
4 years ago
Joshua Haberman
e3e797b680
Added fasttable support for oneofs.
4 years ago
Joshua Haberman
e2c709e047
Repeated string and primitive support.
...
Much of the code was adapted from Gerben's code in:
6333031195
4 years ago
Joshua Haberman
a345af9883
Added a codegen parameter for whether fasttables are generated or not.
...
Example:
$ CC=clang bazel build -c opt --copt=-g benchmarks:benchmark --//:fasttable_enabled=false
INFO: Build option --//:fasttable_enabled has changed, discarding analysis cache.
INFO: Analyzed target //benchmarks:benchmark (0 packages loaded, 913 targets configured).
INFO: Found 1 target...
Target //benchmarks:benchmark up-to-date:
bazel-bin/benchmarks/benchmark
INFO: Elapsed time: 0.760s, Critical Path: 0.58s
INFO: 7 processes: 1 internal, 6 linux-sandbox.
INFO: Build completed successfully, 7 total actions
$ bazel-bin/benchmarks/benchmark --benchmark_filter=BM_Parse_Upb
------------------------------------------------------------------------------
Benchmark Time CPU Iterations
------------------------------------------------------------------------------
BM_Parse_Upb_FileDesc_WithArena 10985 ns 10984 ns 63567 651.857MB/s
BM_Parse_Upb_FileDesc_WithInitialBlock 10556 ns 10554 ns 66138 678.458MB/s
$ CC=clang bazel build -c opt --copt=-g benchmarks:benchmark --//:fasttable_enabled=true
INFO: Build option --//:fasttable_enabled has changed, discarding analysis cache.
INFO: Analyzed target //benchmarks:benchmark (0 packages loaded, 913 targets configured).
INFO: Found 1 target...
Target //benchmarks:benchmark up-to-date:
bazel-bin/benchmarks/benchmark
INFO: Elapsed time: 0.744s, Critical Path: 0.58s
INFO: 7 processes: 1 internal, 6 linux-sandbox.
INFO: Build completed successfully, 7 total actions
$ bazel-bin/benchmarks/benchmark --benchmark_filter=BM_Parse_Upb
------------------------------------------------------------------------------
Benchmark Time CPU Iterations
------------------------------------------------------------------------------
BM_Parse_Upb_FileDesc_WithArena 3284 ns 3284 ns 213495 2.1293GB/s
BM_Parse_Upb_FileDesc_WithInitialBlock 2882 ns 2882 ns 243069 2.4262GB/s
Biggest unknown is whether this parameter should default to true or false.
4 years ago
Joshua Haberman
2c1664906a
Removed license comments and upb_amalgamation for google3.
4 years ago
Joshua Haberman
b7dc77415a
Added licenses() to all BUILD files.
4 years ago
Joshua Haberman
e3f41de6c7
Split monolithic BUILD file into many build files.
4 years ago
RPG3D
ce66f6047d
Update libprotobuf.cmake
4 years ago
RPG3D
6aaa40f2a9
Update libprotobuf.cmake
...
link log library on Android
4 years ago
RPG3D
6eedd1a519
Update libprotobuf-lite.cmake
...
link log library on Android
4 years ago
Daniel Joos
c8f76331ab
Adds a CMake option to build `libprotoc` separately ( #7949 )
...
This exposes the variable `protobuf_BUILD_LIBPROTOC` as CMake option to be able to build libprotoc without building the protoc binary.
4 years ago
Joshua Haberman
a633ad452d
Ran update_file_lists.sh to pick up arenastring.cc.
4 years ago
Afshin Pir
a446e6472b
Previously, I had incorrectly used some newer features of CMake(version 3.14). But Now I have updated this code to work with older versions of CMake too.
4 years ago
Joshua Haberman
95e6c5b474
Sync from Piper @327110949
...
PROTOBUF_SYNC_PIPER
4 years ago
Peter Newman
e2cc2de304
Fix lots of spelling errors ( #7751 )
...
* Fix a typo
* Fix lots of spelling errors
* Fix a few more spelling mistakes
* s/parsable/parseable/
* Don't touch the third party files
* Cloneable is the preferred C# term
* Copyable is the preferred C++ term
* Revert "s/parsable/parseable/"
This reverts commit 534ecf7675
.
* Revert unparseable->unparsable corrections
4 years ago
Ron Klein
a076adc20f
documentation: fix path for fetching submodules
5 years ago
listonjesse
2ae7cf0e03
Auxillary -> Auxiliary
5 years ago
Joshua Haberman
6ed738305b
Sync from Piper @311396324
...
PROTOBUF_SYNC_PIPER
5 years ago
afshinpir
c91ab40081
Correcting import path selection for protoc
...
When there are multiple proto file inputs, they are matched with the provided proto directories (-I option). These directories are tested sequentially for each input proto file and if input file is in a subdirectory of provided proto directories, this directory is considered as base for calculating output directory. This update provides same manner and removes limitations imposed by using `${CMAKE_CURRENT_SOURCE_DIR}` as main proto import directory.
1- `${CMAKE_CURRENT_SOURCE_DIR}` is only added to include directories if no import directory is provided and we are not in `APPEND_PATH` mode. In addition it is added as last possible directory to decrease its priority in searching.
2- Each directory is checked against `${_protobuf_include_path}` to find first possible directory which is parent directory of input proto file. If a directory is found, `${_rel_dir}` is calculated based on its value. If no suitable folder is found, an error will be generated.
5 years ago
afshinpir
c62ffaa539
Incorrect selection of base name
...
protoc just changes last extension. We need this change to support files like a.b.proto in the path.
5 years ago
Joshua Haberman
b99994d994
Sync from Piper @304070343
...
PROTOBUF_SYNC_PIPER
5 years ago
Falko Axmann
460376190b
cmake: extended protobuf_generate
...
Added an optional `PLUGIN` argument to `protobuf_generate` which
will be forwarded to the `--plugin=` argument of `protoc`.
5 years ago
Chuck Atkins
10c48c980f
Intel compiler: silence noisy warning for incorrectly evaluated inlining
5 years ago
Rafi Kamal
de75651d7a
Merge 3.11.0-rc1 changes to master ( #6917 )
...
* Update CHANGES.txt with 3.11.0-RC1 release notes (#6909 )
* Revert "Make shared libraries be able to link to MSVC static runtime libraries, so that VC runtime is not required." (#6914 )
* Marked update_compatibility_version.py as executable (#6916 )
5 years ago
Rafi Kamal
01425cb262
Revert "Make shared libraries be able to link to MSVC static runtime libraries, so that VC runtime is not required." ( #6914 )
...
This reverts commit 129a7c875f
. We are
seeing the following error when building Python release artifacts in Windows:
" error LNK2038: mismatch detected for 'RuntimeLibrary': value
'MD_DynamicRelease' doesn't match value 'MT_StaticRelease' in
descriptor.obj".
5 years ago
Rafi Kamal
58d4420e2d
Down Integrate Internal Changes
5 years ago
veawor
129a7c875f
Make shared libraries be able to link to MSVC static runtime libraries, so that VC runtime is not required.
5 years ago
Daniel Johansen
e93dea7746
update Cmake example to build Visual Studio to newest 2019 version.
5 years ago
debugx
9fdb2cf2bb
fixed typo
5 years ago
Changming Sun
95a1c4fbc4
Fix #6098
5 years ago
Yannic Bonenberger
27e85ab55d
Address review comments
5 years ago
Yannic Bonenberger
4979489451
Add test to verify BUILD- and cmake-files are in sync with src/Makefile.am
5 years ago
Adam Cozzette
582640ef31
Updated cmake path to io_win32.h ( #6397 )
...
Fixes #6382 .
5 years ago
Ben Bader
56e7bdf278
Fix builtin_atomics check in CMakeLists.txt
5 years ago
boscosiu
55ed1d427c
link libatomic on systems without adequate builtin atomics
5 years ago
Hao Nguyen
51026d9229
Down integrate to GitHub
6 years ago
Carlos O'Ryan
b10d490efd
Fix RPATH when CMAKE_INSTALL_LIBDIR != lib.
...
In some platforms ${CMAKE_INSTALL_LIBDIR} expands to `lib64`. The libraries
are correctly installed in that directory, but the RPATH is set to point to
`$ORIGIN/../lib`, where it should be `$ORIGIN/../lib64`.
6 years ago
Hao Nguyen
1d4e959374
Down integrate to GitHub
6 years ago
Hao Nguyen
176f7db11d
Down integrate to Github
6 years ago
Hao Nguyen
c163a2d1a4
Revert accidentally commit
6 years ago
Hao Nguyen
a48a574f7e
Down integrate to Github
6 years ago
Phillipp Schoppmann
8e5b2f1b82
Update file list for protobuf_lite
6 years ago
Adam Cozzette
e6779e9b2a
Added io_win32.h to header list in CMake config
...
This should fix #5717 and ensure that this header gets installed
properly on Windows.
6 years ago
Hao Nguyen
d47c3e9258
Fix CMake conflict
6 years ago
Hao Nguyen
2f864fdfdf
Down integrate to Github
6 years ago
Yilun Chong
d8c2501b43
down integration from internal
6 years ago
Xiang Dai
e479410564
delete all duplicate empty blanks ( #5758 )
...
Signed-off-by: Xiang Dai <764524258@qq.com>
6 years ago