summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2011-02-20Split varint decoders into separate .h file.Joshua Haberman
This makes it easier to benchmark and test the multiple possible implementations of varint decoding.
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-18Fix efficiency bug for major (50% performance improvement!Joshua Haberman
There was a bug with string referencing that prevented strings from being recycled as often as they ought to be.
2011-02-17Return updated buf as second return value, to free up a reg.Joshua Haberman
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-15Remove upb_dstate and specialize upb_decode_fixed for perf improvement.Joshua Haberman
The compiler wasn't keeping upb_dstate in memory anyway (which was the original goal). This simplifies the decoder. upb_decode_fixed was intended to minimize the number of branches, but since it was calling out to memcpy as a function, this turned out to be a pessimization. Performance is encouraging: plain32.parsestream_googlemessage1.upb_table: 254 -> 242 (-4.72) plain32.parsestream_googlemessage2.upb_table: 357 -> 400 (12.04) plain32.parsetostruct_googlemessage1.upb_table_byref: 143 -> 144 (0.70) plain32.parsetostruct_googlemessage1.upb_table_byval: 122 -> 118 (-3.28) plain32.parsetostruct_googlemessage2.upb_table_byref: 189 -> 200 (5.82) plain32.parsetostruct_googlemessage2.upb_table_byval: 198 -> 200 (1.01) omitfp32.parsestream_googlemessage1.upb_table: 267 -> 265 (-0.75) omitfp32.parsestream_googlemessage2.upb_table: 377 -> 465 (23.34) omitfp32.parsetostruct_googlemessage1.upb_table_byref: 140 -> 151 (7.86) omitfp32.parsetostruct_googlemessage1.upb_table_byval: 131 -> 131 (0.00) omitfp32.parsetostruct_googlemessage2.upb_table_byref: 204 -> 214 (4.90) omitfp32.parsetostruct_googlemessage2.upb_table_byval: 200 -> 206 (3.00) plain.parsestream_googlemessage1.upb_table: 313 -> 317 (1.28) plain.parsestream_googlemessage2.upb_table: 476 -> 541 (13.66) plain.parsetostruct_googlemessage1.upb_table_byref: 189 -> 189 (0.00) plain.parsetostruct_googlemessage1.upb_table_byval: 165 -> 165 (0.00) plain.parsetostruct_googlemessage2.upb_table_byref: 263 -> 270 (2.66) plain.parsetostruct_googlemessage2.upb_table_byval: 248 -> 255 (2.82) omitfp.parsestream_googlemessage1.upb_table: 306 -> 305 (-0.33) omitfp.parsestream_googlemessage2.upb_table: 471 -> 531 (12.74) omitfp.parsetostruct_googlemessage1.upb_table_byref: 189 -> 190 (0.53) omitfp.parsetostruct_googlemessage1.upb_table_byval: 166 -> 172 (3.61) omitfp.parsetostruct_googlemessage2.upb_table_byref: 258 -> 270 (4.65) omitfp.parsetostruct_googlemessage2.upb_table_byval: 248 -> 265 (6.85)
2011-02-15Fix small problem in Makefile.Joshua Haberman
2011-02-15Whoops, fix small bug in Makefile.Joshua Haberman
2011-02-15Make -DUPB_THREAD_UNSAFE the default for now.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-14Make "byval" benchmarks actually byval.Joshua Haberman
2011-02-14Recover bad performance of 0-keyed tables.Joshua Haberman
We do this by special-casing the (unusual) zero case and only bother checking the is_empty bit in the zero case.
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-14Remove the restriction that 0 cannot be a table key.Joshua Haberman
This fixes issue: http://code.google.com/p/upb/issues/detail?id=1
2011-02-14Add warning about upcoming delegation changes.Joshua Haberman
2011-02-13Cleaned up README.Joshua Haberman
2011-02-13Cleaned up README, removed TODO in favor of issues on Google Code.Joshua Haberman
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-10Add (but do not activate) an SSE varint decoder.Joshua Haberman
2011-02-09Cache temporary string in the decoder, for better benchmark numbers.Joshua Haberman
2011-02-09Cache decoding objects for better benchmark results. (~15%)Joshua Haberman
I would prefer to find an API that is both fast and doesn't require this, but we'll do this for now.
2011-02-09Precompute bit offset and bitmask for a small perf improvement.Joshua Haberman
2011-02-08Fix upb's parsetostruct benchmark.Joshua Haberman
2011-02-06Benchmarks compile and run again!Joshua Haberman
2011-02-06All tests pass again, valgrind-clean! Next up: benchmarks.Joshua Haberman
2011-02-05Another round of fixes.Joshua Haberman
test_vs_proto2.googlemessage1 passes again, with no memory leaks!
2011-02-05Tons of work: we're close to passing test_vs_proto2 again.Joshua Haberman
2011-02-04Improved table benchmark accuracy and output formatting.Joshua Haberman
2011-02-03Merge branch 'src-refactoring'Joshua Haberman
2011-02-02Gutted upb_msg a bit, re-adding only the essentials.Joshua Haberman
2011-01-30Fixes to decoder and textprinter: it works (for some input)!Joshua Haberman
A protobuf -> text stream for descriptor.proto now outputs the same text as proto2.
2011-01-29Fixes to decoder, stdio, textprinter.Joshua Haberman
2011-01-29upb_strstream compiles again.Joshua Haberman
That covers all source files except upb_msg!
2011-01-29Some work on upb_msg, but it has a long way to go.Joshua Haberman
2011-01-29Textprinter is compiling again.Joshua Haberman
2011-01-28Improve comments in headers, to better explain core interfaces.Joshua Haberman
2011-01-28More work on textprinter.Joshua Haberman
2011-01-25More work on decoder and stdio bytesrc/bytesink.Joshua Haberman
2011-01-24Decoder compiles again! But probably doesn't work.Joshua Haberman
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback