Commit graph

18 commits

Author SHA1 Message Date
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 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 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 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 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 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
Ferdinand Majerech 23290239a7 There should be no problem constructing new instances of Tag,
Anchor and TagDirectives in separate threads anymore. D:YAML
still is not thread safe itself, though (it's the user's
responsibility to handle synchronization when working with a
single node from two threads, for example).
2011-10-14 19:54:41 +02:00
Ferdinand Majerech 765b74ffca Updated the API documentation.
Updated examples based on the new Loader API.
(Dumper API still needs examples)
2011-10-14 10:34:53 +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 967fe8c48b Added various node manipulation functions so e.g. new elements
can be added to collections before emitting. The code is
somewhat ugly, might be revised later.
2011-08-21 23:53:19 +02:00
Ferdinand Majerech b0f2ce201a Added Node constructors needed to create new nodes to emit. 2011-08-21 03:56:21 +02:00
Ferdinand Majerech dde7d2f64f Node equality test now takes tag into account, as the
specification requires.
2011-08-20 22:38: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
Ferdinand Majerech 283c42bf8f Initial commit. 2011-08-16 14:53:13 +02:00