Commit Graph

4479 Commits

Author SHA1 Message Date
Jie Luo
920af75d1c Fix Bad Link for Common Lisp 2017-03-08 15:24:04 -08:00
Paul Yang
dd8d5f57d7 Rename encode/decode to serializeToString/mergeFromString (#2795)
This better shows the semantic of the API. For already setted fields,
mergeFromString do replacement for singular fields and appending for
repeated fields.
2017-03-08 14:31:34 -08:00
Emmanuel Odeke
769b693564
compiler/cli: PrintHelpText prints to stdout instead of stderr
Fixes #698.

PrintHelpText now prints to standard output instead of to standard error.
The purpose of this CL is to make it easy for users to grep for matches
otherwise stderr output has to be awkwardly redirectly to stdout
using this shell trick  `2>&1`, for example
```shell
protoc --help 2>&1 | grep cpp
```

of which we shouldn't be making users have to work that hard just to
get use of --help.

+ Exhibits:
* Before:
```shell
$ protoc --help | grep cpp
Usage: protoc [OPTION] PROTO_FILES
Parse PROTO_FILES and generate output based on the options given:
  -IPATH, --proto_path=PATH   Specify the directory in which to search
for
                              imports.  May be specified multiple times;
                              directories will be searched in order.  If
not
                              given, the current working directory is
used.
  --version                   Show version info and exit.
  -h, --help                  Show this text and exit.
  --encode=MESSAGE_TYPE       Read a text-format message of the given
type
                              from standard input and write it in binary
                              to standard output.  The message type must
                              be defined in PROTO_FILES or their
imports.
  --decode=MESSAGE_TYPE       Read a binary message of the given type
from
                              standard input and write it in text format
                              to standard output.  The message type must
                              be defined in PROTO_FILES or their
imports.
  --decode_raw                Read an arbitrary protocol message from
                              standard input and write the raw tag/value
                              pairs in text format to standard output.
No
                              PROTO_FILES should be given when using
this
                              flag.
  -oFILE,                     Writes a FileDescriptorSet (a protocol
buffer,
    --descriptor_set_out=FILE defined in descriptor.proto) containing
all of
                              the input files to FILE.
  --include_imports           When using --descriptor_set_out, also
include
                              all dependencies of the input files in the
                              set, so that the set is self-contained.
  --include_source_info       When using --descriptor_set_out, do not
strip
                              SourceCodeInfo from the
FileDescriptorProto.
                              This results in vastly larger descriptors
that
                              include information about the original
                              location of each decl in the source file
as
                              well as surrounding comments.
  --dependency_out=FILE       Write a dependency output file in the
format
                              expected by make. This writes the
transitive
                              set of input file paths to FILE
  --error_format=FORMAT       Set the format in which to print errors.
                              FORMAT may be 'gcc' (the default) or
'msvs'
                              (Microsoft Visual Studio format).
  --print_free_field_numbers  Print the free field numbers of the
messages
                              defined in the given proto files. Groups
share
                              the same field number space with the
parent
                              message. Extension ranges are counted as
                              occupied fields numbers.

  --plugin=EXECUTABLE         Specifies a plugin executable to use.
                              Normally, protoc searches the PATH for
                              plugins, but you may specify additional
                              executables not in the path using this
flag.
                              Additionally, EXECUTABLE may be of the
form
                              NAME=PATH, in which case the given plugin
name
                              is mapped to the given executable even if
                              the executable's own name differs.
  --cpp_out=OUT_DIR           Generate C++ header and source.
  --csharp_out=OUT_DIR        Generate C# source file.
  --java_out=OUT_DIR          Generate Java source file.
  --javanano_out=OUT_DIR      Generate Java Nano source file.
  --js_out=OUT_DIR            Generate JavaScript source.
  --objc_out=OUT_DIR          Generate Objective C header and source.
  --python_out=OUT_DIR        Generate Python source file.
  --ruby_out=OUT_DIR          Generate Ruby source file.
```

* After:
```shell
$ protoc --help | grep cpp
  --plugin=EXECUTABLE         Specifies a plugin executable to use.
                              Normally, protoc searches the PATH for
                              plugins, but you may specify additional
                              executables not in the path using this
flag.
                              Additionally, EXECUTABLE may be of the
form
                              NAME=PATH, in which case the given plugin
name
                              is mapped to the given executable even if
                              the executable's own name differs.
  --cpp_out=OUT_DIR           Generate C++ header and source.
  --csharp_out=OUT_DIR        Generate C# source file.
  --java_out=OUT_DIR          Generate Java source file.
  --javanano_out=OUT_DIR      Generate Java Nano source file.
  --js_out=OUT_DIR            Generate JavaScript source.
  --objc_out=OUT_DIR          Generate Objective C header and source.
  --python_out=OUT_DIR        Generate Python source file.
  --ruby_out=OUT_DIR          Generate Ruby source file.
```
2017-03-08 11:42:11 -07:00
Feng Xiao
2b7430d96a Merge pull request #2793 from keveman/master
Removed a stray return statement, causing compilation error.
2017-03-07 14:22:57 -08:00
Jisi Liu
f6d8c83384 Merge pull request #2613 from aausch/fix_memory_leak
optimization and quick workaround to memory leak
2017-03-06 16:48:54 -08:00
Manjunath Kudlur
21b58b51fe Removed a stray return statement, causing compilation error. 2017-03-06 15:50:26 -08:00
Adam Cozzette
651ba62ab5 JS: ensure that extension values are serialized even if they're falsy
There was a bug where for JavaScript we would only serialize an
extension value if it evaluated as truthy, which meant that values like
0 would get silently dropped (even in proto2, where field presence is
significant). This fixes issue #2605, and takes care of the output of
toObject() in addition to the binary format.
2017-03-06 15:37:40 -08:00
Jie Luo
06f9f609e1 Detect if Descriptor.cs changes for csharp
Merge pull request #2788 from anandolee/master
2017-03-06 15:33:41 -08:00
Feng Xiao
0c0a8879c3 Merge pull request #2751 from keveman/master
Added a header only cc_library target for the protobuf library.
2017-03-06 10:41:19 -08:00
Adam Cozzette
008ff033ef Merge pull request #2784 from acozzette/log-2-floor-int
Return uint32 from Log2FloorNonZero64
2017-03-03 07:06:15 -08:00
Manjunath Kudlur
6837b2dcb7 Added comment explaining the protobuf_headers target. 2017-03-02 18:02:05 -08:00
Jie Luo
af13bff3c7 Detect if Descriptor.cs changes for csharp 2017-03-02 17:15:58 -08:00
Feng Xiao
8610d0a9dd Merge pull request #2755 from xfxyjwf/rubycomp
Add Ruby compatibilty test against 3.0.0.
2017-03-02 14:33:02 -08:00
Thomas Van Lenten
352526c214 Merge pull request #2785 from thomasvl/threading_race
Handing threading race resolving methods.
2017-03-02 17:14:52 -05:00
Thomas Van Lenten
2d1c5e26cb Handing threading race resolving methods.
- Don't prune the extension registry as that can lead to failures when two
  threads are racing.
- If adding the method fails, check and see if it already is bound to decide
  the return result. Deals with threading races binding the methods.
2017-03-02 16:34:11 -05:00
Adam Cozzette
938206d66c Return uint32 from Log2FloorNonZero64
A uint32 is big enough to hold any return value from that function, and
doing it this way prevents compiler warnings in coded_stream.h about
narrowing a uint64 to a uint32.
2017-03-02 11:31:38 -08:00
Adam Cozzette
a7e3b0ab01 Merge pull request #2774 from acozzette/closure-builder
Use closurebuilder.py in favor of calcdeps.py for compiling JavaScript
2017-03-02 08:47:20 -08:00
Sergio Campamá
8b182cc455 Disable static analyzer for message semaphore creation (#2748)
Disable static analyzer for message semaphore creation
2017-03-01 14:00:56 -05:00
Matt Hauck
6011d7ca4c Fix gcc 4.1 build (#1035) (#1913)
* Fix gcc 4.1.2 compilation of map_field_inl.h

Fixes "error: object missing in reference to '...'" errors from #1035

* Disable 64-bit map keys on gcc <= 4.1

* Add missing case statements
2017-03-01 10:45:43 -08:00
Matt Hauck
25ecd559cc Change hint type to const void* (#2568)
This is both more correct, and the build fails on AIX without it
2017-03-01 10:43:28 -08:00
Paul Yang
bcbaabe53a Add mergeFrom method on Message (#2766)
This method merges the contents of the specified message into the
current message. Singular fields that are set in the specified message
overwrite the corresponding fields in the current message.  Repeated
fields are appended. Map fields key-value pairs are overritten.
Singular/Oneof sub-messages are recursively merged. All overritten
sub-messages are deep-copied.
2017-03-01 10:39:48 -08:00
Adam Cozzette
671e075c5e Use closurebuilder.py in favor of calcdeps.py for compiling JavaScript
There are two motivations for this:
1) calcdeps.py is deprecated and replaced by closurebuilder.py.
2) As part of this I was able to tweak things so that the Closure
compiler does not attempt to examine every .js file in the tree under
js/. This makes it possible to put compatibility tests and related files
in a subdirectory without them getting mixed up with the main .js files
we care about.
2017-03-01 07:43:11 -08:00
Adam Cozzette
7339fc04c4 Merge pull request #2674 from acozzette/js-test-cleanup
Removed log statement from writer_test.js
2017-03-01 07:11:33 -08:00
Feng Xiao
b7f25d42d3 Undef major/minor if they are defined as macro. 2017-02-28 18:13:04 -08:00
Adam Cozzette
aff9d9d39c Removed log statement from writer_test.js
This tweak makes the test output a bit easier to read because it cuts
out a lot of unnecessary logging.
2017-02-28 13:49:56 -08:00
Jisi Liu
5274d6ee31 Merge pull request #2770 from xfxyjwf/fixcmake
Remove the use of C++11 features.
2017-02-28 10:57:41 -08:00
Feng Xiao
83b0cc9ba6 Merge pull request #2772 from sschuberth/master
Fix links to the license in meta-data
2017-02-28 10:52:02 -08:00
Jie Luo
606cb7ed2c There might be duplicated enum values when allow_alias is true. Add PreferredAlias into OriginalNameAttribute to remove the duplication (#2727) 2017-02-28 10:51:19 -08:00
Sebastian Schuberth
902af0816e Prefer the term "3-Clause BSD License" over "New BSD License"
The first is the newer name, which is also more telling.
2017-02-28 09:58:24 +01:00
Sebastian Schuberth
6395a1cbd9 Fix links to the New BSD License in meta-data
The "New BSD License" is the "3-Clause BSD License", but the links were
pointing to the "2-Clause BSD License".
2017-02-28 09:54:21 +01:00
Feng Xiao
ffde972ac7 Remove the use of C++11 features. 2017-02-27 18:01:07 -08:00
Feng Xiao
9118ad659b Add Ruby compatibilty test against 3.0.0. 2017-02-27 17:38:54 -08:00
Adam Cozzette
d41c47fff9 Merge pull request #2733 from wmamrak/patch-1
Disable MSVC warning C4309
2017-02-27 08:50:32 -08:00
Adam Cozzette
8d61f9c3bf Merge pull request #2729 from MarcelRaad/fix_inline_msvc12
Fix unresolved symbols with MSVC12 and /Zc:inline
2017-02-27 08:29:10 -08:00
Feng Xiao
b4b0e304be Merge pull request #2355 from xfxyjwf/fixjson
Speed up JSON parsing.
2017-02-24 15:41:09 -08:00
Adam Cozzette
8387b88cdc Merge pull request #2732 from AsturaPhoenix/master
const FieldDescriptorCompare
2017-02-24 14:44:17 -08:00
Adam Cozzette
66c64e7045 Merge pull request #2747 from liutikas/master
Fix unused variables warnings in generated_message_reflection.h
2017-02-24 14:43:14 -08:00
Adam Cozzette
8c8b8e61f2 Merge pull request #2734 from msabramo/patch-1
README.md: Make docs URL a link
2017-02-24 14:24:02 -08:00
Jisi Liu
72b82e6875 Merge pull request #2630 from blodan/master
FreeBSD compatibility
2017-02-24 12:52:53 -08:00
Thomas Van Lenten
963473b1dd Merge pull request #2753 from thomasvl/recursive_drop
Add GPBMessageDropUnknownFieldsRecursively() and tests.
2017-02-23 15:18:17 -05:00
Thomas Van Lenten
d07176654b Add GPBMessageDropUnknownFieldsRecursively() and tests.
GPBMessageDropUnknownFieldsRecursively() is a new helper to drop the
unknownFields from a message and all sub messages (in fields or extensions).
2017-02-23 15:04:06 -05:00
Manjunath Kudlur
2d430f8c72 Added a header only cc_library target for the protobuf library. 2017-02-23 08:17:24 -08:00
John Brock
17174b54dd Updating README
- Adding more detail on running tests
- Adding info about the status of .NET 3.5 support and how to enable .NET 3.5
2017-02-23 10:51:52 +00:00
John Brock
f83d129555 Upgrading test-related libraries
NUnit 3.4.0 —> 3.6.0
dotnet-test-nunit 3.4.0-alpha-2 —> 3.4.0-beta-3
2017-02-23 10:51:52 +00:00
John Brock
c9b2c8f327 Fixes for .NET 3.5 compatibility
* Changing DOTNET35 framework symbols in preprocessor directives to the default built-in value of NET35.
* Adding extension method StreamExtension.CopyTo for .NET 3.5 because it didn’t exist until .NET 4, and adding associated unit tests.
2017-02-23 10:51:52 +00:00
Aurimas Liutikas
a434bfc232 Fix compiler warnings about unused variables in generated_message_reflection.h 2017-02-22 14:14:13 -08:00
Feng Xiao
1a8cbfd355 Merge pull request #2736 from na-ka-na/master3
Add an option to always print enums as ints in Json API
2017-02-21 11:08:05 -08:00
Sanchay Harneja
172e0a6423 Add an option to always print enums as ints in Json API
https://github.com/google/protobuf/issues/2735
2017-02-18 17:06:43 -08:00
Marc Abramowitz
86208c526b README.md: Make docs URL a link
Dedent URL so it renders as a link and not as code (fixed width font and not clickable).
2017-02-18 13:05:19 -08:00
Wojciech Mamrak
37bd5d525b Disable MSVC warning C4309
> warning C4309: static_cast': truncation of constant value

introduced in commit 9db5b11c9c
2017-02-18 15:44:29 +01:00