summaryrefslogtreecommitdiff
path: root/src/upb_def.h
AgeCommit message (Collapse)Author
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).
2011-07-14Major refactoring: upb_string is gone in favor of upb_strref.Joshua Haberman
2011-06-17Major refactoring: abandon upb_msg, add upb_accessors.Joshua Haberman
Next on the chopping block is upb_string.
2011-05-21Make all handlers objects refcounted.Joshua Haberman
I'm realizing that basically all upb objects will need to be refcounted to be sharable across languages, but *not* messages which are on their way out so we can get out of the business of data representations. Things which must be refcounted: - encoders, decoders - handlers objects - defs
2011-05-19Change dispatcher error handling model.Joshua Haberman
Now the dispatcher will call error handlers instaed of returning statuses that the caller has to constantly check.
2011-05-10Vastly improved/simplified the upb_handlers API.Joshua Haberman
2011-05-08Decoder redesign in preparation for packed fields and start/endseq.Joshua Haberman
2011-03-20Update copyright to be Google Inc.Josh Haberman
This doesn't reflect any material change in how I will be working on upb, and I have no problem making this change. It's still open source under the BSD license, and I'll still be working on it well beyond the hours that constitute a normal job.
2011-03-20upb_stream: all callbacks registered ahead-of-time.Josh Haberman
This is a significant change to the upb_stream protocol, and should hopefully be the last significant change. All callbacks are now registered ahead-of-time instead of having delegated callbacks registered at runtime, which makes it much easier to aggressively optimize ahead-of-time (like with a JIT). Other impacts of this change: - You no longer need to have loaded descriptor.proto as a upb_def to load other descriptors! This means the special-case code we used for bootstrapping is no longer necessary, and we no longer need to link the descriptor for descriptor.proto into upb. - A client can now register any upb_value as what will be delivered to their value callback, not just a upb_fielddef*. This should allow for other clients to get more bang out of the streaming decoder. This change unfortunately causes a bit of a performance regression -- I think largely due to highly suboptimal code that GCC generates when structs are returned by value. See: http://blog.reverberate.org/2011/03/19/when-a-compilers-slow-code-actually-bites-you/ On the other hand, once we have a JIT this should no longer matter. Performance numbers: plain.parsestream_googlemessage1.upb_table: 374 -> 396 (5.88) plain.parsestream_googlemessage2.upb_table: 616 -> 449 (-27.11) plain.parsetostruct_googlemessage1.upb_table_byref: 268 -> 269 (0.37) plain.parsetostruct_googlemessage1.upb_table_byval: 215 -> 204 (-5.12) plain.parsetostruct_googlemessage2.upb_table_byref: 307 -> 281 (-8.47) plain.parsetostruct_googlemessage2.upb_table_byval: 297 -> 272 (-8.42) omitfp.parsestream_googlemessage1.upb_table: 423 -> 410 (-3.07) omitfp.parsestream_googlemessage2.upb_table: 679 -> 483 (-28.87) omitfp.parsetostruct_googlemessage1.upb_table_byref: 287 -> 282 (-1.74) omitfp.parsetostruct_googlemessage1.upb_table_byval: 226 -> 219 (-3.10) omitfp.parsetostruct_googlemessage2.upb_table_byref: 315 -> 298 (-5.40) omitfp.parsetostruct_googlemessage2.upb_table_byval: 297 -> 287 (-3.37)
2011-02-23Added proper support for enum default values.Joshua Haberman
2011-02-22Major work on Lua extension and default values.Joshua Haberman
Default values are now supported, and the Lua extension can now create and modify individual protobuf objects.
2011-02-18Change the API for getting the bootstrapped defs.Joshua Haberman
The symtab that contains them is now hidden, and you can look them up by name but there is no access to the symtab itself, so there is no risk of mutating it (by extending it, adding other defs to it, etc).
2011-02-17First version of an assembly language decoder.Joshua Haberman
It is slower than the C decoder for now because it falls off the fast path too often. But it can successfully decode varints, fixed32 and fixed64.
2011-02-17Split inttable into a hash part and an array part.Joshua Haberman
upb_inttable() now supports a "compact" operation that will decide on an array size and put all entries with small enough keys into the array part for faster lookup. Also exposed the upb_itof_ent structure and put a few useful values there, so they are one fewer pointer chase away.
2011-02-17Track buffer end instead of buffer length, for a small perf improvement.Joshua Haberman
2011-02-13Merged core/ and stream/ -> src/. The split wasn't worth it.Joshua Haberman
2010-07-09Split src/ into core/ and stream/.Joshua Haberman
2010-07-09Strip out some stuff that's not currently being used.Joshua Haberman
2010-07-09Tweaks to upb_src/upb_sink interfaces.Joshua Haberman
2010-07-07Defined the function for getting a upb_symtab for descriptor.proto.Joshua Haberman
2010-07-03More work on upb_def.Joshua Haberman
2010-06-26Incremental progress on upb_def.Joshua Haberman
2010-06-14Work to make upb_def consume a upb_src.Joshua Haberman
2010-06-09More decoder work, first attempts at compiling it.Joshua Haberman
2010-06-09More work on upb_decoder.Joshua Haberman
2010-06-07Changes to upb_def to stop using upb_msg.Joshua Haberman
2010-01-16Removed union tag from types.Joshua Haberman
2010-01-15Remove struct keyword from all types, use typedef instead.Joshua Haberman
2010-01-02upb_string* -> upb_strptr, to follow aliasing rules.Joshua Haberman
2009-12-29Getting closer, only a few functions undefined now.Joshua Haberman
2009-12-28More incremental work; ported some of upbc.Joshua Haberman
2009-12-22More progress, upb_data and upb_def compile (but are incomplete).Joshua Haberman
2009-12-21In the midst of a major refactoring.Joshua Haberman
2009-12-06Refined interface of upb_symtab.Joshua Haberman
2009-12-06Truly fixed type cyclic refcounting.Joshua Haberman
2009-12-06Circular references truly work now, along with a test.Joshua Haberman
One simplification to come.
2009-12-05Scheme for collecting circular refs.Joshua Haberman
"make descriptorgen" is now valgrind-clean again.
2009-12-05Make defs refcounted, rename upb_context->upbsymtab.Joshua Haberman
There is currently a memory leak when type definitions form cycles. This will need to be dealt with.
2009-11-28Overhaul defs to derive from a common base.Joshua Haberman
2009-11-27WIP of cleaning up defs.Joshua Haberman
2009-11-26Reference-count upb_msgdef and upb_enumdef.Joshua Haberman
The context owns a reference on each def, defs own references on defs they reference, and msgs own refs on their def.
2009-11-26Make upb_msgdef own all its data.Joshua Haberman
This is in anticipation of making upb_msgdef's easy to dup. This involved removing all traces of any descriptors from the defs.
2009-11-14Renamed upb_msg_fielddef -> upb_fielddef, upb_enum -> upb_enumdef.Joshua Haberman
2009-11-14Refactoring: split defs into their own file, move private parsing funcs out ↵Joshua Haberman
of .h file.
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback