Commit graph

6 commits

Author SHA1 Message Date
Ferdinand Majerech 2c9d464389 Reader was reimplemented.
After experiments with loading the whole file at once, and
with decoding and parsing in separate thread, lazy reader
turned to be the fastest/least memory intensive solution.
Characters are now decoded in small batches.
This improved parsing speed by ~20%.

No global state anymore. Anchors are now zero terminated strings
and TagDirectives are a simple array. Event structure was changed
to prevent size increase.
Minor fixes and improvements.
2011-11-16 03:10:29 +01:00
Ferdinand Majerech f95f0d14c8 Const correctness and minor bugfixes all over the code. 2011-10-30 20:24:43 +01:00
Ferdinand Majerech c787531497 Node struct enlarged to 40 bytes. There is no significant
slowdown and a slight memory usage increase. Fixed a potential
bug in Reader. Tag is now implemented as a zero-terminated
string, removing the need for global state.
Node opIndex now returns a reference.
2011-10-26 21:05:56 +02:00
Ferdinand Majerech 934df763ad Most of emitter work done. There are some more changes left until 0.2,
and the turorials and documentation still need some updating.
2011-10-11 15:58:23 +02:00
Ferdinand Majerech 2c230751d2 Added support for null tag structs (used in parsing), using
the Tag struct throughout the code. Event struct size decreased
to 48 bytes.
2011-08-21 00:07:32 +02:00
Ferdinand Majerech 7192503fe6 Implemented a Tag struct taking as little memory as possible.
Removed endMark from Node to keep it in 32 bytes on 64bit.
This will result in slightly worse debugging messages, but we
still have the start position of a node.

Tag is needed for better compliance with the spec and emitting
support for multiple tags with the same D data type.
2011-08-20 22:15:20 +02:00