This change only adds basic proto2 support without advanced features
like extensions, custom options, maps, etc.
The protoc binary now generates ruby code for proto2 syntax.
However, for now, it is restricted to proto2 files without advanced features
like extensions, in which case it still errors out.
This change also modifies the DSL to add proto messages to the DescriptorPool.
There is a new DSL Builder#add_file to create a new FileDescriptor. With this,
the generated ruby DSL looks something like:
Google::Protobuf::DescriptorPool.generated_pool.build do
add_file "test.proto" do
add_message "foo" do
optional :val, :int32, 1
end
end
end
This will find .bat files as well as .exe.
Only affects the case when plugins are invoked from PATH.
This does not change behaviour when compiled under Cygwin..
1. Fix C++ tests.
* Add missing files to Makefile.am and fix distcheck in tests.sh
* Remove BUILT_SOURCES from conformance/Makefile.am.
* Add some missing override keyword.
* Add a type cast to int64 because our StrCat() in stubs can't handle size_t.
2. Fix Java tests.
* Add missing test dependency on guava in pom.xml.
* Include newly referenced test data in test resources.
* Manually fix map_lite_test.proto which is overwritten because it's mapped
from map_test.proto in google3.
* Add back "optimize_for = LITE_RUNTIME" which is still needed to keep the
opensource test passing as it's still running lite tests.
* Add a type cast in newBuilder() because without it the code doesn't compile
with openjdk javac 1.8 (the compiler can't figure if it's the right type
due to complex generic typing).
3. Fix Python tests.
* Remove/replace references to <hash_map>.
* Suppress more warnings in setup.py.
* Replace incorrect header inclusion for google/protobuf/proto_api.h.
* Add strings::EndsWith to google/protobuf/stubs/strutil.h because it's
referenced in the updated python C extension code.
* Replace proto2 with google::protobuf. The proto2 name is leaked to
opensource because we removed the subsitition rule for proto2 namespace
but only fixed C++ source code and forgot to update python C extension code.
On Windows, both '/' and '\' are valid path separators. So when creating
the parent directories, split the filename on both
Signed-off-by: Akshat Gokhale <agokhale@pivotal.io>
The old version had a NOP for loop, which doesn't make sense. I'm pretty
sure this was the original intention. Newer GCC's
-Wunused-but-set-variable flags the old version.
It appears that Visual Studio does not work well with std::once_flag
because it has a bug causing it to initialize that during dynamic
initialization instead of constant initialization. This change works
around the problem by using function static initializers instead.
@gerben-s originally wrote this change for the Google-internal codebase
but I am just cherry-picking it here.
This fixes#4773.
The __MIPSEL__ is mips little endian, specific and we needed
to compile for a big endian mips target that also happened
to be a mips64, so replaced the __MIPSEL__ with a __mip__
which should preserve the build on little endian and allow a
build for a big endian setup.
$ echo | mips64-linux-gcc -E -dM -
... snip snip ...
#define __mips__ 1
#define __MIPSEB__ 1
Signed-off-by: Charles Hardin <ckhardin@gmail.com>
* Add -Og to no-warning-test
* Initialize value
* Implement PrintFieldName in CompactRepeatedFieldPrinter to prevent Woverloaded-virtual
* Update generated code
This came up when trying to round-trip the JSON<->proto3 conversion for
Envoy's envoy.admin.v2alpha.ConfigDump
(b903c1dc98/api/envoy/admin/v2alpha/config_dump.proto (L29)).
Validated fix on the Envoy code base and via the provided unit test.
Signed-off-by: Harvey Tuch <htuch@google.com>
Fixes#4771. Based on the solution included in the issues from
@wangjinhua.
Validated this works with Envoy's /config_dump JSON rendering.
Signed-off-by: Harvey Tuch <htuch@google.com>
This is invaluable for chasing down the culprit in failed JSON -> proto
conversions. We often see in Envoy that a failed JSON (or indirectly via
YAML) configuration won't load but it's unclear why.
Signed-off-by: Harvey Tuch <htuch@google.com>