Joshua Haberman
a80bcc5085
Recover bad performance of 0-keyed tables.
...
We do this by special-casing the (unusual) zero case
and only bother checking the is_empty bit in the
zero case.
14 years ago
Joshua Haberman
5137ac8d61
Update to latest descriptor.proto.
14 years ago
Joshua Haberman
4f9aeee6c7
More completely fixed the 0-key thing.
...
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.
14 years ago
Joshua Haberman
6117730c85
Remove the restriction that 0 cannot be a table key.
...
This fixes issue:
http://code.google.com/p/upb/issues/detail?id=1
14 years ago
Joshua Haberman
b2d66287d9
Add warning about upcoming delegation changes.
14 years ago
Joshua Haberman
b40b40fb89
Cleaned up README.
14 years ago
Joshua Haberman
091d5f7924
Cleaned up README, removed TODO in favor of issues on Google Code.
14 years ago
Joshua Haberman
6881b2c5cb
Added proper error about broken 0-values for enums.
14 years ago
Joshua Haberman
b037b3e8f7
Moved upbc -> src/
14 years ago
Joshua Haberman
4dce5ab709
Fix upbc and descriptorgen, and update descriptor.
14 years ago
Joshua Haberman
ddb74551f4
Cleanup Makefile and mv descriptor/ -> src/
14 years ago
Joshua Haberman
6bdbb45e88
Merged core/ and stream/ -> src/. The split wasn't worth it.
14 years ago
Joshua Haberman
ee84a7da16
Add (but do not activate) an SSE varint decoder.
14 years ago
Joshua Haberman
bd1dfd397e
Cache temporary string in the decoder, for better benchmark numbers.
14 years ago
Joshua Haberman
c358fff57f
Cache decoding objects for better benchmark results. (~15%)
...
I would prefer to find an API that is both fast and doesn't
require this, but we'll do this for now.
14 years ago
Joshua Haberman
f858a8f287
Precompute bit offset and bitmask for a small perf improvement.
14 years ago
Joshua Haberman
6e308b7e80
Fix upb's parsetostruct benchmark.
14 years ago
Joshua Haberman
0313826cef
Benchmarks compile and run again!
14 years ago
Joshua Haberman
4667ed4be9
All tests pass again, valgrind-clean! Next up: benchmarks.
14 years ago
Joshua Haberman
806ba1c80d
Another round of fixes.
...
test_vs_proto2.googlemessage1 passes again,
with no memory leaks!
14 years ago
Joshua Haberman
3affb31926
Tons of work: we're close to passing test_vs_proto2 again.
14 years ago
Joshua Haberman
e170259e4a
Improved table benchmark accuracy and output formatting.
14 years ago
Joshua Haberman
f07cd8ff1d
Merge branch 'src-refactoring'
14 years ago
Joshua Haberman
8465e5e650
Gutted upb_msg a bit, re-adding only the essentials.
14 years ago
Joshua Haberman
9aa7e559d6
Fixes to decoder and textprinter: it works (for some input)!
...
A protobuf -> text stream for descriptor.proto
now outputs the same text as proto2.
14 years ago
Joshua Haberman
02a8cdfff2
Fixes to decoder, stdio, textprinter.
14 years ago
Joshua Haberman
93099cccd1
upb_strstream compiles again.
...
That covers all source files except upb_msg!
14 years ago
Joshua Haberman
8536bbc5f8
Some work on upb_msg, but it has a long way to go.
14 years ago
Joshua Haberman
d98db7cb56
Textprinter is compiling again.
14 years ago
Joshua Haberman
fbb9fd35e0
Improve comments in headers, to better explain core interfaces.
14 years ago
Joshua Haberman
5af1ade543
More work on textprinter.
14 years ago
Joshua Haberman
2c24cbb108
More work on decoder and stdio bytesrc/bytesink.
14 years ago
Joshua Haberman
93381f1411
Decoder compiles again! But probably doesn't work.
14 years ago
Joshua Haberman
fe659c8c93
Getting closer to a decoder that could actually compile and work.
14 years ago
Joshua Haberman
58a70b55c6
Decoder code structure is mostly in-place.
14 years ago
Joshua Haberman
5511aa16b0
Begin porting old decoder to new interfaces.
...
Doesn't build yet.
14 years ago
Joshua Haberman
2ea9737e5d
Added test_stream.c for testing upb_stream.h.
14 years ago
Joshua Haberman
c9df91b04a
upb bootstraps again! and with no memory leaks!
14 years ago
Joshua Haberman
a695b92cce
Debugging test_def, it's close to working again!
14 years ago
Joshua Haberman
1dea81b1c2
Interface refinement: rename some constants.
...
* UPB_STOP -> UPB_BREAK, better represents breaking
out of a parsing loop.
* UPB_STATUS_OK -> UPB_OK, for all status codes, more
concise at no readability cost (perhaps an improvement).
14 years ago
Joshua Haberman
a38742bbe1
A few minor changes to the streaming protocol.
...
1. the start and end callbacks can now return
a upb_flow_t and set a status message.
2. clarified some semantics around passing an
error status back from the callbacks.
14 years ago
Joshua Haberman
e9b9bbf216
Add INLINE to a few identifiers.
14 years ago
Joshua Haberman
bcc688a303
upb_def compiles again!
14 years ago
Joshua Haberman
4559918090
More work on upb_src.
14 years ago
Joshua Haberman
db512df98e
A bunch of work on upb_def and upb_value.
14 years ago
Joshua Haberman
b471ca6b81
The last major revision to the upb_stream protocol.
...
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.
14 years ago
Joshua Haberman
2a7f51f3fd
Change upb_src to use push-based interface.
...
Unfortunately my previous detailed commit message was
lost somehow by git or vi. Will have to explain in more
detail at a later date the rationale for this change.
The build will be broken until I port the old decoder
to this new interface.
14 years ago
Joshua Haberman
a9e998159c
Fleshed out upb_msg: test_vs_proto2 compiles but fails.
15 years ago
Joshua Haberman
4e7dc9d8b6
Re-add a simplified upb_msg.
15 years ago
Joshua Haberman
2a617bf12c
Optimizations and bugfix to benchmark.
15 years ago