summaryrefslogtreecommitdiff
path: root/Makefile
AgeCommit message (Collapse)Author
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-22Small Makefile fix.Joshua Haberman
2011-12-22Fixed the open-source build.Joshua Haberman
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-19Changes to get upb compiling inside Google.Joshua Haberman
2011-09-21Fix GDB unwinding through JIT-compiled frames.Joshua Haberman
2011-09-20Fixes to get upb to compile inside Google.Joshua Haberman
2011-09-20x86 JIT: now works without -NDNDEBUG (also small perf increase).Joshua Haberman
2011-09-20Fix perf-tests.sh to skip building non-upb tests.Joshua Haberman
2011-09-19Rename x86 -> x64, since JIT is x64-only.Joshua Haberman
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-31Header cleanup, clarify/correct comments for interfaces.Joshua Haberman
2011-08-31Make "benchmark" build "benchmarks", add bug note.Joshua Haberman
2011-08-31Revised upb_bytesink, refactored upb_textprinter (untested).Joshua Haberman
2011-08-20Fold gen-deps.sh into Makefile.Joshua Haberman
2011-08-20Fix stack alignment on OS X.Joshua Haberman
2011-08-20Some Makefile cleanup.Joshua Haberman
2011-08-19Renamed lang_ext -> bindings, README updates.Joshua Haberman
2011-08-19Fix proto2 benchmark for newer proto2.Josh Haberman
2011-08-19Benchmark to parse into proto2 messages.Joshua Haberman
2011-08-17Benchmark JIT vs no JIT without forcing a whole-project recompile.Joshua Haberman
2011-08-12Python: basic SymbolTable support and empty accessors.Joshua Haberman
2011-08-10Fixed overzealous assert().Joshua Haberman
2011-08-10Fixed a few memory leaks and Makefile tweaks.Joshua Haberman
2011-08-09Makefile target for running Python tests.Joshua Haberman
2011-07-29Significant work on Lua extension.Joshua Haberman
Also changes in core library to accommodate.
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-08Split upb_stream -> upb_bytestream/upb_handlers.Joshua Haberman
2011-05-08Decoder redesign in preparation for packed fields and start/endseq.Joshua Haberman
2011-04-06Disable GDB JIT interface on OS X.Josh Haberman
OS X doesn't use ELF, so our little trick doesn't work there.
2011-04-01First rough version of the JIT.Joshua Haberman
It can successfully parse SpeedMessage1. Preliminary results: 750MB/s on Core2 2.4GHz. This number is 2.5x proto2. This isn't apples-to-apples, because proto2 is parsing to a struct and we are just doing stream parsing, but for apps that are currently using proto2, this is the improvement they would see if they could move to stream-based processing. Unfortunately perf-regression-test.py is broken, and I'm not 100% sure why. It would be nice to fix it first (to ensure that there are no performance regressions for the table-based decoder) but I'm really impatient to get the JIT checked in.
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
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback