summaryrefslogtreecommitdiff
path: root/upb/msg.c
AgeCommit message (Collapse)Author
2019-03-27Moved macros from upb.h to port_def.inc to avoid leaking them to users. (#160)Joshua Haberman
* Use port_def.inc to prevent macros from leaking to users. * Added helpful comments to port_def.inc/port_undef.inc.
2019-03-27Removed reflection and other extraneous things from the core library. (#158)Joshua Haberman
* Removed reflection and other extraneous things from the core library. * Added missing files and ran buildifier. * New CMakeLists.txt. * Made table its own cc_library() for internal usage.
2019-01-23Properly align the arena.Joshua Haberman
2019-01-15Merge branch 'arrayapi' into defcleanupJoshua Haberman
2019-01-03Renamed upb_stringview -> upb_strview for C terseness.Josh Haberman
2018-09-11WIP.Josh Haberman
2018-09-06Fixed warnings.Josh Haberman
2018-09-06Added support for unknown fields to upb_msg.Josh Haberman
After this CL, upb passes all existing proto3 conformance tests. However the conformance suite is missing a lot of cases and should be fleshed out.
2018-09-06Removed default instance and oneof array from tables.Josh Haberman
2018-08-22Moved upb_msg parts that depend on def to a separate msgfactory.{c,h}.Josh Haberman
Also got rid of the premature "v1" business that was attempting to create a binary compatibility story. Also added an in-progress CMakeLists.txt file.
2018-08-12Enforced that upb_msg lives in an Arena only, and other simplifying.Joshua Haberman
upb_msg was trying to be general enough that it could either live in an arena or be allocated with malloc()/free(). This was too much complexity for too little benefit. We should commit to just saying that upb_msg is arena-only. I also ripped out the code to glue upb_msg to the existing handlers-based encoder/decoder. upb_msg has its own, small, simple encoder/decoder. I'm trying to whittle down upb_msg to a small and simple core. I updated the Lua extension for these changes. Lua needs some more work to properly create arenas per message. For now I just created a single global arena.
2018-06-14Revert "Prepare upb_value for encoding/decoding map."Bo Yang
This reverts commit f30dd0ff0cead9bb1f8f3b1b295392d75705486b.
2018-03-11Prepare upb_value for encoding/decoding map.Bo Yang
2018-03-08Bytes type should return size of stringviewBo Yang
2018-03-07In case of circular dependency, layout has to be inserted first.Bo Yang
2018-03-07Field missing submsg and hasbit information.Bo Yang
2018-03-07For encoding upb needs descriptor type instead of type.Bo Yang
2017-07-17New encode/decode: most (171 / 192) conformance tests pass.Joshua Haberman
2017-07-11Merge branch 'gencode2' into gencode3Joshua Haberman
2017-07-11Responded to PR comments.Joshua Haberman
2017-07-11Merge branch 'gencode2' into gencode3Joshua Haberman
2017-07-11Merge branch 'gencode' into gencode2Joshua Haberman
2017-07-10Removed incorrect assert and added comments.Joshua Haberman
2017-07-10Removed incorrect assertion.Joshua Haberman
Internal members aren't initialized by default_msg.
2017-07-10Merge branch 'gencode' into gencode2Joshua Haberman
2017-07-10Responded to PR comments.Joshua Haberman
2017-07-08A good start on upb_encode and upb_decode.Josh Haberman
2017-07-04First version of a real C codegen for upb.Joshua Haberman
Also includes an implementation of the conformance tests to display what the API usage will be like. There is still a lot to do, and things that are broken (oneofs, repeated fields, etc), but it's a good start.
2017-07-02Removed all upb_msgdef/upb_fielddef from upb_msg.Joshua Haberman
2017-07-02Start migrating upb_msglayout to be suitable for generated code.Joshua Haberman
This involves: - remove upb_msglayout -> upb_msgfactory dependency. - remove upb_msglayout -> upb_msgdef dependency (in progress). - make upb_msglayout use a representation that can be statically initialized by generated code. The goal here is that upb_msglayout becomes a kind of "descriptor lite": it contains enough data to parser and serialize protobufs and manipulate a upb_msg in memory, while being far smaller and simpler than a full descriptor. It also does not include field names, which can be a benefit for applications that do not want to leak field names. Generated code can then create a upb_msglayout, and do most things without ever needing to construct full descriptors/defs if they don't want to.
2017-01-24Fixed amalgamated build and added test.Josh Haberman
2017-01-21Make upb::SymbolTable no longer reference-counted.Josh Haberman
This transitions it from shared ownership to unique ownership.
2016-12-14Addressed PR comments.Josh Haberman
2016-12-12Basic serialization for upb_msg and Lua.Josh Haberman
Doesn't yet include strings, submessages, maps, or repeated fields.
2016-12-07Update for final PR comments.Josh Haberman
2016-12-06Changes for PR comments.Josh Haberman
2016-11-29Suppress warnings on 32-bit for this dead code for now.Josh Haberman
2016-11-29Removed some temporary code and fixed a few tests.Josh Haberman
2016-11-29New upb_msg code and Lua bindings around it.Josh Haberman
There are still some things that are unfinished, but we are at parity with what Lua had before.
2013-02-15Sync with 8 months of Google-internal development.Josh Haberman
Many things have changed and been simplified. The memory-management story for upb_def and upb_handlers is much more robust; upb_def and upb_handlers should be fairly stable interfaces now. There is still much work to do for the runtime component (upb_sink).
2012-03-24Sync from internal Google development.Joshua Haberman
Many improvements, too many to mention. One significant perf regression warrants investigation: omitfp.parsetoproto2_googlemessage1.upb_jit: 343 -> 252 (-26.53) plain.parsetoproto2_googlemessage1.upb_jit: 334 -> 251 (-24.85) 25% regression for this benchmark is bad, but since I don't think there's any fundamental design issue that caused it I'm going to go ahead with the commit anyway. Can investigate and fix later. Other benchmarks were neutral or showed slight improvement.
2011-12-22Sync with internal Google development.Joshua Haberman
This breaks the open-source build, will follow up with a change to fix it.
2011-11-23Refinement of upb_bytesrc interface.Joshua Haberman
Added a upb_byteregion that tracks a region of the input buffer; decoders use this instead of using a upb_bytesrc directly. upb_byteregion is also used as the way of passing a string to a upb_handlers callback. This symmetry makes decoders compose better; if you want to take a parsed string and decode it as something else, you can take the string directly from the callback and feed it as input to another parser. A commented-out version of a pinning interface is present; I decline to actually implement it (and accept its extra complexity) until/unless it is clear that it is actually a win. But it is included as a proof-of-concept, to show that it fits well with the existing interface.
2011-09-12Added an example, constified some more methods.Joshua Haberman
2011-09-04Const invasion: large parts of upb made const-correct.Joshua Haberman
2011-08-20Let the JIT emit hasbit-setting code in addition to calling a callback.Joshua Haberman
This leads to a major (20-40%) improvement in the parsetoproto2 benchmark with small messages. We now are faster than proto2 in all apples-to-apples comparisons, at least given the (admittedly limited) set of benchmarks in this source tree.
2011-08-19Benchmark to parse into proto2 messages.Joshua Haberman
2011-08-04More work on Lua extension, and consequent core refactoring.Joshua Haberman
2011-07-15Directory restructure.Joshua Haberman
Includes are now via upb/foo.h. Files specific to the protobuf format are now in upb/pb (the core library is concerned with message definitions, handlers, and byte streams, but knows nothing about any particular serializationf format).
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback