Joshua Haberman
fcfc37e7d4
Reduce decoder memory usage.
...
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.
15 years ago
Joshua Haberman
67b16cbe5c
Basic test_def links and passes no-op test!
15 years ago
Joshua Haberman
28ec9a1fa0
Split src/ into core/ and stream/.
15 years ago
Joshua Haberman
be5ddd8a64
Tweaks to upb_src/upb_sink interfaces.
15 years ago
Joshua Haberman
9d051254b3
Implemented upb_baredecoder, for bootstrapping.
15 years ago
Joshua Haberman
00b403a737
Decoder is finally complete, now just needs testing.
15 years ago
Joshua Haberman
61a0f0bc5f
More decoder work.
15 years ago
Joshua Haberman
edd1f5a61f
Work on decoder buffering.
15 years ago
Joshua Haberman
d7e631d9b0
Yet more.
15 years ago
Joshua Haberman
768644817b
More decoder work.
15 years ago
Joshua Haberman
b3d40eb92f
More decoder work.
15 years ago
Joshua Haberman
5633254357
Implement proper type checking again.
15 years ago
Joshua Haberman
5743636ad1
Decoder compiler but doesn't work yet.
15 years ago
Joshua Haberman
992a03be55
More decoder work, first attempts at compiling it.
15 years ago
Joshua Haberman
ed991c3b30
More work on upb_decoder.
15 years ago
Joshua Haberman
fbc57ee488
More work on the decoder.
15 years ago
Joshua Haberman
a8d3f8e543
More work on the decoder.
15 years ago
Joshua Haberman
d29f80d6f3
More incremental work.
15 years ago
Joshua Haberman
a484ea0275
WIP: intrusive changes to upb_decoder.
15 years ago
Joshua Haberman
8c1e7170b7
Defined the upb_src and upb_bytesrc interfaces.
15 years ago
Joshua Haberman
dda1499a0e
Add status to the sink interfaces.
15 years ago
Joshua Haberman
036fe6bb06
Flesh out implementation of upb_sizebuilder.
15 years ago
Joshua Haberman
611afe9c69
Removed union tag from types.
15 years ago
Joshua Haberman
d5566c6038
Remove struct keyword from all types, use typedef instead.
15 years ago
Joshua Haberman
9116c697f8
upb_parser -> upb_decoder
15 years ago
Joshua Haberman
50451ea441
Make onend upb_sink callback take the field as a parameter.
15 years ago
Joshua Haberman
b05205d224
Defined upb_sink interface and ported the parser to it.
15 years ago
Joshua Haberman
527c094500
Reduced the complexity of the cbparser interface.
15 years ago
Joshua Haberman
fa5710f1ca
upb_string* -> upb_strptr, to follow aliasing rules.
15 years ago
Joshua Haberman
c33d51581a
upbc compiles and links! But probably doesn't work yet.
15 years ago
Joshua Haberman
e5debfa1c9
More incremental work; ported some of upbc.
15 years ago
Joshua Haberman
0a6fc5fad3
Truly fixed type cyclic refcounting.
15 years ago
Joshua Haberman
18291eedc3
Make defs refcounted, rename upb_context->upbsymtab.
...
There is currently a memory leak when type definitions
form cycles. This will need to be dealt with.
15 years ago
Joshua Haberman
a95ab58e79
Overhaul defs to derive from a common base.
15 years ago
Joshua Haberman
9e3f5e343b
Make upb_msgdef own all its data.
...
This is in anticipation of making upb_msgdef's easy
to dup. This involved removing all traces of any
descriptors from the defs.
15 years ago
Joshua Haberman
868f118797
Changed parse API to know about msgdefs.
...
This should make it both easier to use and easier to
optimize, in exchange for a small amount of generality.
In practice, any remotely normal case is still very
natural.
15 years ago
Joshua Haberman
e252432a41
Refactoring: split defs into their own file, move private parsing funcs out of .h file.
15 years ago
Joshua Haberman
33a68acb14
Use a status object for errors so a message can be returned.
...
Also delay deletion of subfields until the entire message is
deleted.
16 years ago
Joshua Haberman
cd2f77d392
Incremental improvements to cbparser, and a test.
16 years ago
Joshua Haberman
f6ee945409
Renamed upb_stream_parser -> upb_cbparser, and API cleanup.
16 years ago
Joshua Haberman
f17ed90f77
Some cleanup and reformatting, fixed the benchmarks.
16 years ago
Joshua Haberman
040f7e6ba2
Significant memory-management refactoring any Python extension.
16 years ago
Joshua Haberman
8fa6a92f53
Major refactoring of upb_msg. Temporary functionality regression.
...
There is significant refactoring here, as well as some more trivial
name changes. upb_msg has become upb_msgdef, to reflect the fact
that a upb_msg is not *itself* a message, it describes a message.
There are other renamings, such as upb_parse_state -> upb_stream_parser.
More significantly, the upb_msg class and parser have been refactored
to reflect my recent realization about how memory management should
work. upb_msg now has no memory management, and a memory mangement
scheme (that works beautifully with multiple language runtimes) will
be layered on top of it.
This iteration has the new, read-only upb_msg. upb_mm_msg (a
memory-managed message class) will come in the next change.
16 years ago
Joshua Haberman
1733b58257
Fix a few small compile warnings.
16 years ago
Joshua Haberman
f03c8bd7dd
Minor bugfix and makefile change.
16 years ago
Joshua Haberman
946dcf4a5d
Fix tests (and src) such that all tests pass again.
16 years ago
Joshua Haberman
4240e0e598
Updated parser semantics to better support streaming.
16 years ago
Joshua Haberman
e373367fb7
Move parsing functions to header file in anticipation of code generation (want them inlined).
16 years ago
Joshua Haberman
ee1ed1ccb8
Compiler finally works (except string arrays). Untested. Holy crap that was a lot of work.
16 years ago
Joshua Haberman
40e8127a24
Abandon setjmp/longjmp, performance was not measurably increased.
16 years ago