www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.announce - D:YAML 0.5 (also, D:YAML 0.4.5, TinyEndian 0.1)

reply "Kiith-Sa" <kiithsacmp gmail.com> writes:
D:YAML is a YAML parser and emitter for D.


It's been a while since the last release and many small features
have been
added to the Git master over time, so I finally forced myself to
do an
official release.

D:YAML at GitHub:

https://github.com/kiith-sa/D-YAML


## Highlights ##

Some breaking changes:

    YAML loading API using std.stream is now obsolete. D:YAML 0.5
requires DMD
    2.066 (yes, the one that is not yet released - see 0.4.5 below
for
    compatibility).

DUB by default:

    Stopped using my own build script, updated examples to use DUB,
etc.

Significantly less memory allocations, both GC and malloc:

    D:YAML scanner now uses slices to avoid any allocations. UTF-8
is now used
    internally instead of decoding into UTF-32.

Better performance:

    I've spent some time profiling and optimizing, mainly for the
use case of
    'parsing few-kiB mostly ASCII files not using crazy advanced
YAML features'
    (I use YAML for game-related stuff). Performance for the above
use case
    is up about 80% (or, time spent is down to about 55%). For
mostly-unicode
    (that is, mostly non-ASCII unicode) files, performance is down
slightly
    (~10-15%). I don't have any thorough measurements to release,
just did various
    tests as I went.

Retired the dyaml.alwaysdata.net site, moved API docs/tutorials
to my new
site:

    http://defenestrate.eu/docs/dyaml/


And various small features/fixes/improvements. See the full
changelog for
details:

https://github.com/kiith-sa/D-YAML/releases/tag/v0.5.0


## D:YAML 0.4.5 ##

For compatibility with DMD 2.065, I also made a "release" out of
the last
state of git master before 2.066 was required. See the release at
GitHub:

https://github.com/kiith-sa/D-YAML/releases/tag/v0.4.5


## TinyEndian ##

This is just a single module with two functions that I separated
into a DUB
package as I think it may be useful. When removing the std.stream
dependency
from D:YAML I had to replace EndianStream with my own code (based
on
EndianStream but mostly rewritten). The result are two pure
nothrow
 nogc functions to detect UTF byte order marks and swap endianness

https://github.com/kiith-sa/tinyendian
Aug 06 2014
next sibling parent "Jonathan M Davis" <jmdavisProg gmx.com> writes:
On Wednesday, 6 August 2014 at 17:09:50 UTC, Kiith-Sa wrote:
 D:YAML is a YAML parser and emitter for D.
Thanks a lot for working on this. I actually really hate YAML, but I'm forced to work with it sometimes, and this library saved me from having to write a parser for it myself. - Jonathan M Davis
Aug 06 2014
prev sibling parent reply "Gary Willoughby" <dev nomad.so> writes:
On Wednesday, 6 August 2014 at 17:09:50 UTC, Kiith-Sa wrote:
 ## D:YAML 0.4.5 ##

 For compatibility with DMD 2.065, I also made a "release" out of
 the last
 state of git master before 2.066 was required. See the release 
 at
 GitHub:

 https://github.com/kiith-sa/D-YAML/releases/tag/v0.4.5
Great thanks. One tiny issue however is that v0.4.5 is not available via the dub registry. It looks like the registry has only picked up v0.5.0.
Aug 06 2014
parent reply "Kiith-Sa" <kiithsacmp gmail.com> writes:
On Wednesday, 6 August 2014 at 21:18:00 UTC, Gary Willoughby 
wrote:
 On Wednesday, 6 August 2014 at 17:09:50 UTC, Kiith-Sa wrote:
 ## D:YAML 0.4.5 ##

 For compatibility with DMD 2.065, I also made a "release" out 
 of
 the last
 state of git master before 2.066 was required. See the release 
 at
 GitHub:

 https://github.com/kiith-sa/D-YAML/releases/tag/v0.4.5
Great thanks. One tiny issue however is that v0.4.5 is not available via the dub registry. It looks like the registry has only picked up v0.5.0.
Is there any way to work this around? (I'm not in charge of the dub package, and even if I were I don't see how I could force it to detect the older tag) - the only thing I can think of right now is putting it into a separate repo and registering it as a separate package, which is rather unwieldy.
Aug 07 2014
next sibling parent reply "Gary Willoughby" <dev nomad.so> writes:
On Thursday, 7 August 2014 at 13:38:20 UTC, Kiith-Sa wrote:
 On Wednesday, 6 August 2014 at 21:18:00 UTC, Gary Willoughby 
 wrote:
 On Wednesday, 6 August 2014 at 17:09:50 UTC, Kiith-Sa wrote:
 ## D:YAML 0.4.5 ##

 For compatibility with DMD 2.065, I also made a "release" out 
 of
 the last
 state of git master before 2.066 was required. See the 
 release at
 GitHub:

 https://github.com/kiith-sa/D-YAML/releases/tag/v0.4.5
Great thanks. One tiny issue however is that v0.4.5 is not available via the dub registry. It looks like the registry has only picked up v0.5.0.
Is there any way to work this around? (I'm not in charge of the dub package, and even if I were I don't see how I could force it to detect the older tag) - the only thing I can think of right now is putting it into a separate repo and registering it as a separate package, which is rather unwieldy.
Try asking for a solution here: http://forum.rejectedsoftware.com/groups/rejectedsoftware.dub/
Aug 07 2014
parent reply "Kiith-Sa" <kiithsacmp gmail.com> writes:
Should be fixed now with 0.4.6:

http://code.dlang.org/packages/dyaml/0.4.6
Aug 08 2014
parent "Gary Willoughby" <dev nomad.so> writes:
On Friday, 8 August 2014 at 22:00:03 UTC, Kiith-Sa wrote:
 Should be fixed now with 0.4.6:

 http://code.dlang.org/packages/dyaml/0.4.6
Awesome! ta.
Aug 09 2014
prev sibling parent reply "Jeremy DeHaan" <dehaan.jeremiah gmail.com> writes:
On Thursday, 7 August 2014 at 13:38:20 UTC, Kiith-Sa wrote:
 On Wednesday, 6 August 2014 at 21:18:00 UTC, Gary Willoughby 
 wrote:
 On Wednesday, 6 August 2014 at 17:09:50 UTC, Kiith-Sa wrote:
 ## D:YAML 0.4.5 ##

 For compatibility with DMD 2.065, I also made a "release" out 
 of
 the last
 state of git master before 2.066 was required. See the 
 release at
 GitHub:

 https://github.com/kiith-sa/D-YAML/releases/tag/v0.4.5
Great thanks. One tiny issue however is that v0.4.5 is not available via the dub registry. It looks like the registry has only picked up v0.5.0.
Is there any way to work this around? (I'm not in charge of the dub package, and even if I were I don't see how I could force it to detect the older tag) - the only thing I can think of right now is putting it into a separate repo and registering it as a separate package, which is rather unwieldy.
As far as I know, the DUB registry doesn't look at tags. It looks at branches that are in the repository. I think it only detects branches that are either numbered explicitly or are master.
Aug 07 2014
parent Jacob Carlborg <doob me.com> writes:
On 2014-08-08 05:36, Jeremy DeHaan wrote:

 As far as I know, the DUB registry doesn't look at tags. It looks at
 branches that are in the repository. I think it only detects branches
 that are either numbered explicitly or are master.
It does look at tags. -- /Jacob Carlborg
Aug 08 2014