Commit Graph

887 Commits

Author SHA1 Message Date
Feng Xiao
0ad204845f Merge pull request #1416 from cwhipkey/master
Change protobuf CPP proto generator to support the 'lite' option in
2016-04-20 17:15:16 -07:00
Feng Xiao
f00300d7f0 Merge pull request #1414 from xyzzyz/googletest
Remove googletest.h header from stringprintf.cc
2016-04-20 11:20:34 -07:00
Jon Skeet
f265fb8152 Merge pull request #1401 from jskeet/enum-casing
Enum casing in C#
2016-04-20 09:01:58 +01:00
Jon Skeet
d90d615f71 Attempt to fix AppVeyor build by exporting GetEnumValueName 2016-04-20 03:46:03 +01:00
Jon Skeet
75626ed79c Add C# codegen changes to enum value names (mostly C++)
Overview of changes:
- A new C#-specific command-line option, legacy_enum_values to revert to the old behavior
- When legacy_enum_values isn't specified, we strip the enum name as a prefix, and PascalCase the value name
- A new attribute within the C# code so that we can always tell the original in-proto name

Regenerating the C# code with legacy_enum_values leads to code which still compiles and works - but
there's more still to do.
2016-04-20 03:45:59 +01:00
Jisi Liu
1b0ff34b90 Add missing includes in field mask test 2016-04-19 15:14:31 -07:00
Chad Whipkey
baf52bd79e Change protobuf CPP proto generator to support the 'lite' option in
proto3.

Added a couple unit test proto3 files, for arena_lite and lite. Cloned
the proto3_arena_unittest to test some of the basics of generated code
(and to ensure that the generated proto3 test files are used by some
test).
2016-04-15 09:23:50 -07:00
Adam Michalik
1b912fceee Remove googletest.h header from stringprintf.cc
It doesn't seem to be necessary here, and it pulls other testing headers
during compilation of release protobuf.
2016-04-14 15:54:31 -07:00
Joshua Haberman
814685ca2c Merge pull request #1397 from google/internal-merge
Internal merge
2016-04-11 23:37:42 -07:00
Jon Skeet
2a197b3eb0 Use 0 as the default value for all enums, rather than finding the actual enum value name
This will make it easier to change the enum value names, as it reduces the number of places they're used.
2016-04-11 06:47:43 +01:00
Jon Skeet
0a902ee0ac Fix to csharp_options - initialize internal_access to false. 2016-04-08 09:57:32 +01:00
Josh Haberman
2cd79bf3a8 Removed duplicated operator delete from merge conflict. 2016-04-07 14:26:59 -07:00
Josh Haberman
4465daa57a Merge branch 'master' into internal-merge 2016-04-07 14:10:19 -07:00
Jon Skeet
667f4a6282 Merge pull request #1393 from gvaish/master
Added support for internal_access for C#
2016-04-07 22:05:40 +01:00
Jie Luo
09292d5759 Merge pull request #1392 from anandolee/master
Sync the manually integrate changes in google3/third_party
2016-04-07 11:05:05 -07:00
Gaurav Vaish
a6e39316a7 Added support for internal_access for C# 2016-04-07 10:33:21 -07:00
Jie Luo
c61207492e sync the Manually integrate changes in google3/third_party 2016-04-06 14:32:30 -07:00
Jon Skeet
2a18bb5a33 Add more documentation for csharp_options.h
This also renames generate_directories to base_namespace_specified; generating directories is the
immediate *effect* of specifying a base namespace, but with this change the options reflect what has been
specified rather than the effect. (There may be other effects in the future, of course.)
2016-04-06 10:30:19 +01:00
Jon Skeet
bfd1c84a3d Line-wrapping changes only for C# generator code
This should have no behavioral changes at all.

This doesn't strictly enforce an 80-column limit, but removes the most egregious violations.
The indentation in the C# generator code is inconsistent in general, unfortunately - if we have
any good tools that can be trusted to reformat, I'd be happy to apply them.
2016-04-06 10:17:13 +01:00
Jon Skeet
89719f07a3 Merge pull request #1349 from gvaish/master
Added CLI option internal_access for types (C#)
2016-04-05 20:52:17 +01:00
Gaurav Vaish
74d8b0bebc Added access_level for types
* `csharp_options`: Added `Options` to encapsulate generator options.
   Supported options for now - file_extension, base_namespace
* `{Blah}Generator`: Now accept `Options*` as parameter to constructor
* `csharp_generator.cc`: Parse and populate options
* `Makefile.am`: Added `csharp_options.h`
* `extract_includes.bat.in`: Added `csharp_options.h`

Refactoring code to two commits. This is the first commit
2016-04-05 09:47:11 -07:00
Oleg Vereshko
268ce2818f Added deprecated option handling for objective-c generator 2016-04-04 18:13:30 +03:00
Jisi Liu
cba75ad404 Merge branch 'master' of github.com:google/protobuf 2016-04-01 16:46:49 -07:00
Jisi Liu
89343d87c6 Do not use C++11 unicode escape in unittest.
For fixing MSVC
2016-04-01 16:44:46 -07:00
Jisi Liu
93811ca9f7 Do not let windows.h define min/max macros 2016-04-01 15:55:49 -07:00
Jisi Liu
203bb5eb33 Fix re-definition issue of winsock.h and winsock2.h 2016-03-31 17:38:11 -07:00
Jisi Liu
bc1f2e7e6e Fix WIN32 build for map_test.
stubs/common.h undefines the GetMessage macro introduced in windows.h
map_test however include stubs/common.h before windows.h is transitively
included. This hack force map_test.cc to include windows.h first, so we
have a chance to undefine the GetMessage macro.
2016-03-31 15:17:40 -07:00
Jisi Liu
cbfd9d43c8 Remove export macros for classes nested in a template class. 2016-03-31 14:47:24 -07:00
Jisi Liu
5805c2dfb7 Fix javanano package 2016-03-31 13:50:38 -07:00
Jisi Liu
94aa50ffd6 Fix breakage of referring to table_ in static func
Referencing data member table_ in static functions break certain
platforms. Change it to refer to the declare type void** instead.
2016-03-31 13:18:03 -07:00
Jisi Liu
9e7fa0678d Temporarily disable begin is fast test. 2016-03-31 13:17:45 -07:00
Adam Michalik
955841e620 Replace #include <iostream> with #include <ostream>
iostream is not actually necessary here, and it introduces unnecessary
static initializers.
2016-03-30 12:54:40 -07:00
Jisi Liu
0de06f54bc Merge branch 'master' of github.com:google/protobuf 2016-03-30 11:43:44 -07:00
Jisi Liu
3b3c8abb96 Integrate google internal changes. 2016-03-30 11:39:59 -07:00
Jisi Liu
e164f1083f Use the T() instead of NULL for the default value.
The template can be specialized on primitives, e.g. double, where
converting NULL will trigger a warning.
2016-03-29 15:25:49 -07:00
topillar
64dfb5f80a Update coded_stream.h
fix warning treated as error prevents building on 64-bit windows.
2016-03-22 23:45:41 +08:00
Thomas Van Lenten
79a23c435c Shrink ObjC overhead (generated size and some runtime sizes)
NOTE: This is a binary breaking change as structure sizes have changed size
and/or order.

- Drop capturing field options, no other options were captured and other mobile
  targeted languages don't try to capture this sort information (saved 8
  bytes for every field defined (in static data and again in field descriptor
  instance size data).
- No longer generate/compile in the messages/enums in descriptor.proto. If
  developers need it, they should generate it and compile it in. Reduced the
  overhead of the core library.
- Compute the number of has_bits actually needs to avoid over reserving.
- Let the boolean single fields store via a has_bit to avoid storage, makes
  the common cases of the instance size smaller.
- Reorder some flags and down size the enums to contain the bits needed.
- Reorder the items in the structures to manually ensure they are are packed
  better (especially when generating 64bit code - 8 bytes for every field,
  16 bytes for every extension, instance sizes 8 bytes also).
- Split off the structure initialization so when the default is zero, the
  generated static storage doesn't need to reserve the space. This is batched
  at the message level, so all the fields for the message have to have zero
  defaults to get the saves. By definition all proto3 syntax  files fall into
  this case but it also saves space for the proto2 that use the standard
  defaults. (saves 8 bytes of static data for every field that had a zero
  default)
- Don't track the enums defined by a message. Nothing in the runtime needs it
  and it was just generation and runtime overhead. (saves 8 bytes per enum)
- Ensure EnumDescriptors are started up threadsafe in all cases.
- Split some of the Descriptor initialization into multiple methods so the
  generated code isn't padded with lots of zero/nil args.
- Change how oneof info is feed to the runtime enabling us to generate less
  static data (8 bytes saved per oneof for 64bit).
- Change how enum value informat is capture to pack the data and only decode
  it if it ends up being needed. Avoids padding issues causing bloat of 64bit,
  and removes the needs for extra pointers in addition to the data (just the
  data and one pointer now).
2016-03-17 10:04:21 -04:00
Thomas Van Lenten
44fdead9d2 Merge pull request #1291 from sergiocampama/devel
Adds more information to Objective C error.
2016-03-14 10:07:05 -04:00
Ben Vanik
58f07644ea Fixing compilation error when building with emscripten.
This change was previously done in //third_party in CL 108656107 but never made it to the open source project and was overwritten in an update.
2016-03-11 09:19:58 -08:00
Feng Xiao
48ebb29a8e Merge pull request #1299 from tatraian/master
Fix compiling clang/libc++ builds. (Issue: #1266)
2016-03-08 11:15:24 -08:00
Antal Tátrai
e2fb1d9822 Comment has been added to fix (issue #1266) 2016-03-08 20:01:42 +01:00
Thomas Van Lenten
1bf4b38f29 Fix up handing of fields with leading names that should be all caps.
Add a compile test to confirm things are working as expected.
2016-03-08 09:29:49 -05:00
Thomas Van Lenten
36650a07cf HeaderDoc support in the library and generated sources
- Convert most of the core library headers over to HeaderDoc format.
- Switch the generated comments over to HeaderDoc.
- Create GPBCodedOutputStream_PackagePrivate and move some things into there
  that should be more internal.
2016-03-07 12:07:03 -05:00
Antal Tátrai
3cc35adb6d Fix compiling clang/libc++ builds. (Issue: #1266) 2016-03-05 09:32:59 +01:00
Josh Haberman
513875da77 Generate well-known types in Ruby extension and prune unneeded proto2 dependencies. 2016-03-03 14:08:54 -08:00
Sergio Campama
b5a35b4411 Adds more information to Objective C error when the expected objc_class_prefix option is missing. 2016-03-03 16:49:53 -03:00
Paul Yang
78105897a8 Merge pull request #1260 from legrosbuffle/master
Make cpp generated enum constants constexpr when Options::proto_h is specified
2016-03-02 10:16:20 -08:00
murgatroid99
a862b6b77f Fix CommonJS relative require generation, and test it 2016-02-24 13:44:57 -08:00
Feng Xiao
513a8a69df Merge pull request #804 from bsilver8192/master
Add atomics support for 32-bit PPC.
2016-02-22 09:27:27 -08:00
Joshua Haberman
32daf513ce Merge pull request #1215 from haberman/commonjs
Added support for CommonJS require()
2016-02-19 14:39:17 -08:00