Commit graph

17 commits

Author SHA1 Message Date
John-Colvin 2b1abda154 Fix remaining format errors 2012-12-11 16:06:20 +00:00
kiith-sa 4f78702a57 Added pure/@safe/nothrow where possible. 2012-09-09 01:42:13 +02:00
kiith-sa 37a661b034 Fixed compilation with DMD 2.058.
There are some hacks to allow toHash() methods
to be const nothrow @safe, these are due to
Phobos problems (e.g. Variant.toHash() is not const nor nothrow).
2012-08-30 15:38:51 +02:00
Ferdinand Majerech 04af9bf240 Fixed some compilation bugs on 32bit. 2012-01-22 10:37:44 +01:00
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 0e0113ef0e Moved variant.d to dyaml/std/variant. Profile build doesn't inline anymore (made profiling too difficult). More optimizations, speedup (parsing only). 2011-10-29 18:22:45 +02: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 62f7e2e4df Optimized dumping performance. Dumping is now about half as fast
as loading. Also slightly improved loading performance.
Greatly improved performance with very small files. We can now
load 10000 24 byte files in a second, and dump them at the same
speed.
Fixed another FastCharSearch bug.
2011-10-25 20:23:44 +02:00
Ferdinand Majerech 8b995e5061 Fixed a bug in FastCharSearch.
Reader buffer is now manually allocated, decreasing GC workload
even further.
2011-10-25 00:16:43 +02:00
Ferdinand Majerech 97bdf819fa Replaced possibleSimpleKeys associative array in Scanner with an
ordinary array, added a mixin to generate fast lookup tables for
character search, and used said mixin in the greatest
bottlenecks. Another great speedup, at least 20%, can't keep
track of it anymore.
2011-10-24 20:36:26 +02:00
Ferdinand Majerech 97693b4417 Got rid of most UTF-8 decoding that took a lot of time.
Removed unnecessary calls to Stream.available(),
again for grat speed gain. Also various small optimizations.
Overall, improved loading speed about 400%.
2011-10-24 00:46:35 +02:00
Ferdinand Majerech 9d68b6fa9a Optimized GC performance when loading,
greatly decreasing memory usage and
improving speed by 30% or more.
2011-10-23 20:17:37 +02:00
Ferdinand Majerech 8ad650e089 Cleaned up exceptions and their messages.
Some minor dog fixes.
2011-10-18 16:12:22 +02:00
Ferdinand Majerech 8360da733d All YAML exceptions now keep track of file and line they've been
thrown at, making debugging easier.
2011-10-13 11:30:14 +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 283c42bf8f Initial commit. 2011-08-16 14:53:13 +02:00