summaryrefslogtreecommitdiff
path: root/Makefile
AgeCommit message (Collapse)Author
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-27Use FDO for benchmarks, which gives a 10-15% improvement.Joshua Haberman
2011-02-27Default to -O3 if user doesn't specify opt.Joshua Haberman
However if the user *does* specify a -O flag, don't override the optimization setting for upb_def.o to -Os like we usually do.
2011-02-27Don't require NASM to build unless using the x64 decoder.Joshua Haberman
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-19Fix building of Lua extension on OS X.Joshua Haberman
2011-02-18Bring lua extension up to date with new symtab APIs.Joshua Haberman
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-15Fix small problem in Makefile.Joshua Haberman
2011-02-15Whoops, fix small bug in Makefile.Joshua Haberman
2011-02-15Support "make Q=" to view full commands.Joshua Haberman
2011-02-15Fixes for building Lua extension.Joshua Haberman
2011-02-14Revive Lua extension.Joshua Haberman
It builds and you can inspect a symtab. Still need to expose streaming and message based interfaces.
2011-02-14Update to latest descriptor.proto.Joshua Haberman
2011-02-14More completely fixed the 0-key thing.Joshua Haberman
Unfortunately this degrades hash table lookup performance by about 8%, which affects the streaming benchmark for googlemessage1 by about 5%. We could get this back at the cost of some memory, but it would be nice to avoid that.
2011-02-13Added proper error about broken 0-values for enums.Joshua Haberman
2011-02-13Moved upbc -> src/Joshua Haberman
2011-02-13Fix upbc and descriptorgen, and update descriptor.Joshua Haberman
2011-02-13Cleanup Makefile and mv descriptor/ -> src/Joshua Haberman
2011-02-13Merged core/ and stream/ -> src/. The split wasn't worth it.Joshua Haberman
2011-02-08Fix upb's parsetostruct benchmark.Joshua Haberman
2011-02-06All tests pass again, valgrind-clean! Next up: benchmarks.Joshua Haberman
2011-02-05Tons of work: we're close to passing test_vs_proto2 again.Joshua Haberman
2011-02-02Gutted upb_msg a bit, re-adding only the essentials.Joshua Haberman
2011-01-29upb_strstream compiles again.Joshua Haberman
That covers all source files except upb_msg!
2011-01-25More work on decoder and stdio bytesrc/bytesink.Joshua Haberman
2011-01-24Decoder compiles again! But probably doesn't work.Joshua Haberman
2011-01-22Added test_stream.c for testing upb_stream.h.Joshua Haberman
2011-01-21Debugging test_def, it's close to working again!Joshua Haberman
2011-01-10More work on upb_src.Joshua Haberman
2010-12-06The last major revision to the upb_stream protocol.Joshua Haberman
Sources and sinks communicate by means of a upb_handlers object, which encapsulates a set of handler callbacks and will possibly offer richer semantics in the future like giving specific fields different callbacks. The upb_handlers protocol supports delegation, so sets of handlers can be written in reusable ways. For example, if a set of handlers is written to handle a specific .proto type, those handlers can be used whether that type is at the top level or whether it is a sub-message of a higher-level type. Delegation allows the streaming protocol to properly compose.
2010-08-02Fleshed out upb_msg: test_vs_proto2 compiles but fails.Joshua Haberman
2010-07-24Stream decoding benchmark.Joshua Haberman
2010-07-18First go at Lua bindings.Joshua Haberman
2010-07-17Fleshed out upb_stdio and upb_textprinter.Joshua Haberman
test_decoder now compiles and links! But it doesn't work yet.
2010-07-12Added more comments for upb_src interface.Joshua Haberman
2010-07-11Reduce decoder memory usage.Joshua Haberman
The "field" entry was only being used to determine whether we were inside a group, but the "end_offset" member contains enough information to tell us that.
2010-07-10Incremental progress towards getting upb_def to bootstrap.Joshua Haberman
2010-07-10Basic test_def links and passes no-op test!Joshua Haberman
2010-07-10Fleshed out upb_string further. Now upb_def's onlyJoshua Haberman
unresolved references are upb_src.
2010-07-10Tests for string and fleshed out implementation.Joshua Haberman
2010-07-09Split src/ into core/ and stream/.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-01-15upb_parser -> upb_decoderJoshua Haberman
2010-01-15Rename serializer -> encoder.Joshua Haberman
2010-01-12Move many serializing functions to .cc file, since they do not need to be ↵Joshua Haberman
exposed.
2009-12-29Only remaining undefined symbol is upb_msg_parsestr.Joshua Haberman
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback