Joshua Haberman
c241976485
In the midst of a major refactoring.
15 years ago
Joshua Haberman
08b4a91204
Add a test for circularly-linked descriptors.
...
The test currently triggers valgrind-detected memory errors.
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
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.
15 years ago
Joshua Haberman
46fac0f58d
Tests use valgrind, chdir in test.
15 years ago
Joshua Haberman
00ba0d1ac1
Unit test comparing parsed results with proto2.
15 years ago
Joshua Haberman
cd2f77d392
Incremental improvements to cbparser, and a test.
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
cfd67dda49
Various fixes.
16 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
952ea88db2
Remove perf-cppflags from repository.
16 years ago
Joshua Haberman
306bc554c6
More work on benchmarks (performance tests).
16 years ago
Joshua Haberman
84cd1538ee
Integrated benchmarks into main Makefile.
16 years ago
Joshua Haberman
2aaea5390a
Makefile is much improved ("make deps" works again, etc).
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
e8c58eb78d
Sketches of serialization.
16 years ago
Joshua Haberman
a1a9596d02
Fix tests and the build (though a few tests are failing).
16 years ago
Joshua Haberman
1e388b0af3
Significant, experimental changes (setjmp/longjmp, group handling).
16 years ago
Joshua Haberman
528cdd2ecd
Updated benchmark to correctly test both upb and proto2.
16 years ago
Joshua Haberman
2abf342804
Benchmark now should build out-of-the-box.
16 years ago
Joshua Haberman
6485e39865
A few more tweaks to the benchmark Makefile.
16 years ago
Joshua Haberman
4d9c39b94d
Make benchmark run out-of-the-box.
16 years ago
Joshua Haberman
462b26c1cc
Directory restructuring.
16 years ago
Joshua Haberman
127adf4036
More work on the benchmark.
16 years ago
Joshua Haberman
137991c7b2
Added the beginnings of a benchmark.
16 years ago
Joshua Haberman
b94a9f2101
More documentation, tidying up, etc.
16 years ago
Joshua Haberman
5235966ed5
Lots of documentation, cleanup, and fixed memory leaks.
16 years ago
Joshua Haberman
421f276086
Beginnings of a upb compiler.
16 years ago
Joshua Haberman
aecbfe4224
Moved upb_enum to a proper C file, updated upb_inlinedefs.
16 years ago
Joshua Haberman
9eaab71e99
Fixed bugs and memory leaks.
16 years ago
Joshua Haberman
2c5c3fdc25
More tests and fixes.
16 years ago
Joshua Haberman
b0ef7f0b67
More fixes, completions, still doesn't quite work.
16 years ago
Joshua Haberman
6fdf83f59f
Let gcc do dependency generation.
16 years ago
Joshua Haberman
2d21601d47
Reworked low-level parsing: smaller, safer.
16 years ago
Joshua Haberman
03616c86ea
Fixed test_table and a few bugs in upb_table.
16 years ago
Joshua Haberman
1139650320
Use "static inline" instead of "extern inline" for now.
16 years ago
Joshua Haberman
9595dfa2dc
Fleshed out upb_context some.
16 years ago
Joshua Haberman
324d5cce9b
Renamed upb_struct -> upb_msg, fleshed out its definition.
16 years ago
Joshua Haberman
0f50bcbceb
Small Makefile tweak.
16 years ago
Joshua Haberman
c419731462
Bring 'tests' back up to date and build it again.
16 years ago
Joshua Haberman
bc717d8402
Implement inlining that works with both C99 and all versions of GCC.
16 years ago
Joshua Haberman
f4c00fc979
More work on the table implementation.
...
It currently beats std::map and std::hash_map by >10x.
16 years ago
Joshua Haberman
0aedd1825f
Makefile: build descriptor.o.
16 years ago
Joshua Haberman
d1f78c88fa
A bunch more work, a fast table for field lookup.
16 years ago
Joshua Haberman
0c80c38475
A flurry of activity. Doesn't compile yet.
...
- a descriptor.c that describes the data structures in
descriptor.proto using the data structures in descriptor.h.
- everything renamed pbstream -> upb.
- modularization rethought.
- Doesn't compile yet, but should once things settle back down.
16 years ago
Joshua Haberman
894e7c6e58
Removed references to pbstruct from Makefile.
16 years ago