Joshua Haberman
0f26f51486
Fix varint-skipping (oops).
16 years ago
Joshua Haberman
324d5cce9b
Renamed upb_struct -> upb_msg, fleshed out its definition.
16 years ago
Joshua Haberman
7ccb32c305
Finished hashtable implementation, not yet tested.
16 years ago
Joshua Haberman
e3905b425a
Simplified the varint-skipping function.
16 years ago
Joshua Haberman
0124bfd8fe
More work on inttable/strtable (not finished).
16 years ago
Joshua Haberman
9c21992286
Added MurmurHash for string hashing (not used yet).
16 years ago
Joshua Haberman
9f80d0d60e
Do unaligned reads if UPB_UNALIGNED_READS_OK is defined.
...
Also removed commented-out alternate implementations for
varint-reading code (they are still in the history).
16 years ago
Joshua Haberman
2bb7637797
Fixed conversion warning in tests.c.
16 years ago
Joshua Haberman
79d57263f5
Improvements to one-branch varint reading function.
16 years ago
Joshua Haberman
d1aa095cb3
High-level parsing interface written (not yet tested).
16 years ago
Joshua Haberman
0f50bcbceb
Small Makefile tweak.
16 years ago
Joshua Haberman
b04a376636
Alternative (optimized) implementations of varint parsing.
16 years ago
Joshua Haberman
24c14a3ad0
Increased robustness of 64-bit varint test.
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
ccca4d7136
Acknowledge authorship and fix warning in the eng() function.
16 years ago
Joshua Haberman
5ec762a600
Added TODO about experimenting with Cuckoo Hashing.
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
fdcefd68b1
Rethought upb_struct and new descriptor.h.
...
This is the next step in bootstrapping. upb_struct defines the
in-memory layout that will be used by both compile-time and run-time
defintions of protobufs. descriptor.h describes the proto format
using this format.
The next step is to create a descriptor.c that can parse descriptor
protos into this format. Then real run-time reflection can begin.
16 years ago
Joshua Haberman
d4f3e5a1af
Add descriptor.proto formats as C data.
...
This will be the bootstrapping strategy.
16 years ago
Joshua Haberman
894e7c6e58
Removed references to pbstruct from Makefile.
16 years ago
Joshua Haberman
0a1697f828
Removed pbstruct.
...
On more work/reflection, I don't think this is particularly
amenable to language-agnostic abstraction. Which is OK.
16 years ago
Joshua Haberman
3c515a6ce9
Very rough (doesn't even compile) pbstruct.
16 years ago
Joshua Haberman
a714989094
Detect overflow (unlikely except for malicious input).
16 years ago
Joshua Haberman
9f56ff3b5b
Fleshed out pbstruct a bit more.
16 years ago
Joshua Haberman
5f2344e480
Fixed off-by-one error in hashtable calculation.
16 years ago
Joshua Haberman
6e67cb48ef
Fixed bugs that lint caught.
16 years ago
Joshua Haberman
268bb50e80
Enabled more warnings, fixed the warnings.
16 years ago
Joshua Haberman
2d41d385f3
Add pbstream_lowlevel.h.
16 years ago
Joshua Haberman
c8d67b2686
More refactoring of structures.
...
pbstream_internal.h is now where even lower-level parsing
functions go.
16 years ago
Joshua Haberman
73ab650ad1
Added function for skipping data.
16 years ago
Joshua Haberman
14624e34d8
Added the first iteration of pbstruct.
16 years ago
Joshua Haberman
5a31f694a7
Implemented the array part of the fieldnum lookup.
16 years ago
Joshua Haberman
e195d5379d
Since the stack has a fixed size, don't allocate dynamically.
16 years ago
Joshua Haberman
eaa0cdd6a1
Oops, malloc(array[int]) didn't do what I thought.
16 years ago
Joshua Haberman
d351981f9e
Change to a fixed stack size.
...
Proto2 only allows a nesting depth of 64, so we follow suit.
16 years ago
Joshua Haberman
e67f5d5f02
Less code duplication, joy.
16 years ago
Joshua Haberman
47fb22194c
Another test, another bugfix.
16 years ago
Joshua Haberman
e6b461c84a
More tests and bugfixes -- parses its first proto!
16 years ago
Joshua Haberman
73978bfc74
API cleanup.
16 years ago
Joshua Haberman
1aa1627fc1
Implemented the _init_parser() function.
16 years ago
Joshua Haberman
afe132eb10
Remove DYNARRAY for the stack (wasn't buying much).
16 years ago
Joshua Haberman
446d7c27ee
Rip out more stuff that belongs in higher layers.
16 years ago
Joshua Haberman
537ca81ada
Credit where credit is due.
16 years ago
Joshua Haberman
ecd855279d
Removed CALLBACK() macro and struct of callbacks.
16 years ago
Joshua Haberman
7fefc5c875
Removed DECODE macro (wasn't buying much).
...
Also decided that groups aren't a TODO -- I don't plan to ever
support them (unless there is a real need).
16 years ago
Joshua Haberman
a0a99811be
Removed bounds checking, for speed and simplicity.
...
Callers must always over-allocate their buffer by at least
ten bytes. Since we will never read *more* than ten bytes,
there is no need to do bounds checking inside the parsing
code.
16 years ago