Joshua Haberman
c7a95061a7
Successfully bootstraps!!
15 years ago
Joshua Haberman
ae0beee285
Fixed upb_string error with strange vsnprintf() behavior.
15 years ago
Joshua Haberman
db6c7387bc
Incremental progress towards getting upb_def to bootstrap.
15 years ago
Joshua Haberman
28ec9a1fa0
Split src/ into core/ and stream/.
15 years ago
Joshua Haberman
c4aecc414b
Strip out some stuff that's not currently being used.
15 years ago
Joshua Haberman
b04ff41664
Dynamically allocate string for error msg.
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
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
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
90e4f08678
Incremental work on serialization.
15 years ago
Joshua Haberman
6a8dfa5f26
upb_array -> upb_arrayptr.
15 years ago
Joshua Haberman
15604083c7
Move string representations back upb.h -> upb_data.h.
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
cc39625767
Getting closer, only a few functions undefined now.
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
e15f834a91
Circular references truly work now, along with a test.
...
One simplification to come.
15 years ago
Joshua Haberman
651c92ab33
Scheme for collecting circular refs.
...
"make descriptorgen" is now valgrind-clean again.
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
246a36998b
WIP of cleaning up defs.
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
7cde43ea0a
Renamed upb_msg_fielddef -> upb_fielddef, upb_enum -> upb_enumdef.
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.
15 years ago
Joshua Haberman
f17ed90f77
Some cleanup and reformatting, fixed the benchmarks.
15 years ago
Joshua Haberman
040f7e6ba2
Significant memory-management refactoring any Python extension.
15 years ago
Joshua Haberman
2282d2489b
Refactoring: unify upb_msg.
...
The cost is that a upb_msg will now always have an overhead
of 2*sizeof(void*). This is comparable to proto2 overhead.
The benefit is that upb_msg is now self-describing, and
read-only algorithms can now operate on a upb_msg regardless
of the memory-management scheme.
Also, upb_array and upb_string now know inherently if they
own their associated memory, and upb_array has a generic
pointer for memory management purposes like upb_msg does.
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
4f205f3dc3
Header file rearranging/prettifying.
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
b2a39e50d8
Remove extraneous string include.
16 years ago
Joshua Haberman
e48f855b06
Implemented upb_msg_eql.
16 years ago
Joshua Haberman
e8718306a5
Bugfix and additions to upb.h and upb_string.h
16 years ago
Joshua Haberman
462b26c1cc
Directory restructuring.
16 years ago
Joshua Haberman
d7b666ecf4
Remove branch prediction hints. They seem to hurt more than help.
16 years ago
Joshua Haberman
5235966ed5
Lots of documentation, cleanup, and fixed memory leaks.
16 years ago
Joshua Haberman
06efc6b12c
Fixed a lot of bugs, parser and compiler now work a little!
16 years ago
Joshua Haberman
94a2f5bd9c
Move upb_string into its own header file.
16 years ago
Joshua Haberman
aecbfe4224
Moved upb_enum to a proper C file, updated upb_inlinedefs.
16 years ago
Joshua Haberman
62be5969a1
Move FileDescriptorProto to an internal symbol table.
16 years ago
Joshua Haberman
485b964662
Bugfixes.
16 years ago
Joshua Haberman
b0ef7f0b67
More fixes, completions, still doesn't quite work.
16 years ago