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
Ferdinand Majerech
fb67e775e4
Added a YAML benchmark that loads and optionally extracts data
...
from and/or dumps a YAML file.
2011-10-22 16:20:06 +02:00
Ferdinand Majerech
3078262129
Fixed an Emitter bug which caused tags to always be emitted in
...
full format.
Specified field names for the tag directive tuple to make code
more readbvle.
Fixed a bug in Dumpler.tagDirectives documentation example.
2011-10-22 11:18:57 +02:00
Ferdinand Majerech
1f2243190f
Added a random YAML generator to serve as an example and for
...
benchmarking.
2011-10-22 00:24:29 +02:00
Ferdinand Majerech
7402d8f827
Fixed Makefile of the yaml_stats example.
...
Fixed a bug in Node that caused an empty exception message.
2011-10-21 20:40:37 +02:00
Ferdinand Majerech
f726ff0b94
Added an example application that displays statistics about YAML
...
documents.
2011-10-20 23:20:02 +02:00
Ferdinand Majerech
d5a063930d
Clarified Node documentation.
...
Fixed a bug that caused errors when loading documents with YAML
version directives.
2011-10-20 20:01:52 +02:00
Ferdinand Majerech
a87d618732
Examples' Makefiles now have a clean target.
2011-10-20 15:51:31 +02:00
Ferdinand Majerech
33a376b038
String representation of a Node's tag can now be accessed by the
...
user.
2011-10-20 15:48:21 +02:00
Ferdinand Majerech
fb814c66c2
Implemented a simple Queue data structure, until Phobos has a
...
replacement. Tokens are not immutable anymore.
2011-10-20 10:34:34 +02:00
Ferdinand Majerech
595302fbff
Bumped version strings to 0.3 so it won't get forgotten later.
2011-10-18 21:46:05 +02:00
Ferdinand Majerech
2cd2de44ff
Updated Constructor API documentation with examples.
2011-10-18 21:40:37 +02:00
Ferdinand Majerech
93b66da54c
Added a Resolver example to the API documentation.
2011-10-18 16:29:16 +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
009017eef0
Simplified the Constructor and Resolver example -
...
no need for range checks as they are handled in Node itself.
2011-10-17 13:13:02 +02:00
Ferdinand Majerech
548480b06b
Changed the Constructor API (for loading of custom types) to
...
make it easier to load custom classes/structs. Updated API docs,
tutorials and examples accordingly.
2011-10-17 12:53:38 +02:00