Commit graph

184 commits

Author SHA1 Message Date
Ferdinand Majerech 4d737be931 Fixed a bug that broke mappings longer than 65536 lines. 2012-09-26 11:51:47 +02:00
kiith-sa c7e97b6113 User defined constructors now can construct all default types (e.g. float). 2012-09-22 22:45:37 +02:00
kiith-sa edf3e2a799 Using std.typecons.Flag where possible, and more in->const. 2012-09-14 01:21:01 +02:00
kiith-sa 19d88d156a Simplified some Emitter code. 2012-09-14 01:16:05 +02:00
kiith-sa 58fc17197b Replaced some incorrect 'in' uses with 'const'. 2012-09-13 21:37:28 +02: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 c690d56d9f Added a property to determine if the node is null. 2012-04-07 03:59:54 +02:00
Ferdinand Majerech 5aacfe79b2 Improved an error message when there's no constructor for a tag. 2012-04-01 16:57:21 +02:00
Ferdinand Majerech fdceb1bdcb Fixed a bug on Ubuntu 10.04 2012-03-23 19:57:57 +01:00
Ferdinand Majerech 206499a399 Fixed CDC on Windows 2012-03-20 06:29:25 +01:00
Ferdinand Majerech 1a1783a228 Fixed a compilation bug on 32bit. 2012-03-19 14:31:11 +01:00
Ferdinand Majerech d64de6a312 Merged implementations of Node.remove() and Node.removeAt(). 2012-03-01 17:43:42 +01:00
Ferdinand Majerech 2505c0b3af Improved Node exception messages. 2012-03-01 15:23:53 +01:00
Ferdinand Majerech 2448c69f55 Added containsKey() to check if a mapping has specified key. 2012-03-01 13:17:32 +01:00
Ferdinand Majerech ebc6e64c2b API BREAKING:
Node opEquals(), opIndex(), opIndexAssign(), remove(), removeAt()
no longer automatically convert to string. This was changed
to prevent the API from getting too non-obvious, and to
remove the need for too many special cases in the code.
The API documentation was changed accordingly.
opApply()  still automatically converts to string.

Added a contains() method to Node.

Clarified YAML null values in the documentation.

Improved unittests.

Fixed a bug that caused opIndex() and opIndexAssign() to only
work with exactly the same type as stored in the node
(e.g. real, but not double, for floating-point values)

Fixed some potential bugs.

Minor documentation fixes.
2012-03-01 11:44:05 +01:00
Ferdinand Majerech 7673281ae4 CDC fixes for Windows. 2012-01-24 11:23:06 +01:00
Ferdinand Majerech 242960e927 Updated DMD links. 2012-01-23 18:40:05 +01:00
Ferdinand Majerech aad93aa42e Updated changelog for 0.4 . 2012-01-23 16:57:40 +01:00
Ferdinand Majerech 3e1b01f097 Updated version numbers to 0.4 . 2012-01-23 16:20:52 +01:00
Ferdinand Majerech 9596806644 Red-Black Trees are now used for duplicate detection, and planned
to be used for unordered map storage. This is because AAs still
don't work correctly and even if they did, require the user to
define both toHash and opCmp/opEquals for every YAML
struct/class. Now only opCmp needs to be defined.
Documentation/tutorials/examples have been updated accordingly.
2012-01-23 15:57:26 +01:00
Ferdinand Majerech 07eadc9403 Fixed a bug with parsing null values caused by std.regex changes,
and a minor ZeroString fix.
2012-01-23 01:19:49 +01:00
Ferdinand Majerech 06e3a6db3b CDC improvements and an a fix in AutoDDoc. 2012-01-23 01:16:57 +01:00
Ferdinand Majerech d46a3ac5c2 Fixed a bug that caused an out of range error when a key in a
mapping could not be found.
2012-01-22 17:03:32 +01:00
Ferdinand Majerech 04af9bf240 Fixed some compilation bugs on 32bit. 2012-01-22 10:37:44 +01:00
Ferdinand Majerech 01c0ea6cd6 Merge pull request #1 from stefanhepp/master
Added a fix for a compile error with the latest dmd version
2012-01-20 01:37:19 -08:00
Stefan Hepp bb54e6db41 Fix for compile error with dmd 2.057 2012-01-19 17:51:42 +01:00
Ferdinand Majerech 10dbb55ed8 Minor documentation and API fixes. 2011-11-18 12:28:29 +01:00
Ferdinand Majerech fbc962623d Simplified the Constructor API. 2011-11-17 23:53:24 +01:00
Ferdinand Majerech ab154480fb Final commit before tha 0.3 release. 2011-11-16 20:41:21 +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 8208e817de Updated Node for much more constness (unfortunately, quite some
code duplication as well). No longer need a custom Variant.
2011-10-30 18:12:02 +01:00
Ferdinand Majerech 508696584e More constness in Node. 2011-10-30 10:52:40 +01:00
Ferdinand Majerech b3a51800f7 Removed Node.getToVar as it turned out to be a premature
optimization.
2011-10-29 22:53:46 +02:00
Ferdinand Majerech c385a3ae4d Fixed a documentation bug. 2011-10-29 21:57:36 +02:00
Ferdinand Majerech e835f1a191 Updated Representer API doc, minor documentation changes. 2011-10-29 20:43:30 +02: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 be5664a24d Updated D:YAML with DMD 2.056 support. Fixed some bugs.
Found a bug in std.variant and bundled a fixed version.
2011-10-29 00:31:14 +02:00
Ferdinand Majerech 5d35f44416 Nodes now remember their scalar and collection style, although
these are not accessible by the user (as the spec says).
This allows D:YAML to remember styles between loading and
dumping.
2011-10-27 23:13:14 +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 6eda5d9d4a Added a profile build target (release with debug symbols).
Release doesn't have debug symbols anymore.
2011-10-26 06:39:06 +02:00
Ferdinand Majerech 60b57ca00d Minor optimizations.
Queue now only adds ranges to the GC if the type allocated has
indirections.
2011-10-26 06:30:10 +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 915428c8ed CDC and yaml_bench makefile now always compile with debug
symbols. yaml_bench can now repeat the benchmark many times in a
single run. yaml_gen can now disable collection keys in mappings.
2011-10-23 16:10:27 +02:00
Ferdinand Majerech 13ea5f0c24 Added a shortcut alias called "as" for Node.get(), and replaced
get() with as() all over the code, tutorials, examples and docs.
Fixed a bug in YAML benchmark makefile.
Fixed a bug in autoddoc configuration.
2011-10-22 17:06:32 +02:00