Thread overview | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
|
August 06, 2014 D:YAML 0.5 (also, D:YAML 0.4.5, TinyEndian 0.1) | ||||
---|---|---|---|---|
| ||||
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 |
August 06, 2014 Re: D:YAML 0.5 (also, D:YAML 0.4.5, TinyEndian 0.1) | ||||
---|---|---|---|---|
| ||||
Posted in reply to Kiith-Sa | 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
|
August 06, 2014 Re: D:YAML 0.5 (also, D:YAML 0.4.5, TinyEndian 0.1) | ||||
---|---|---|---|---|
| ||||
Posted in reply to Kiith-Sa | 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.
|
August 07, 2014 Re: D:YAML 0.5 (also, D:YAML 0.4.5, TinyEndian 0.1) | ||||
---|---|---|---|---|
| ||||
Posted in reply to Gary Willoughby | 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.
|
August 07, 2014 Re: D:YAML 0.5 (also, D:YAML 0.4.5, TinyEndian 0.1) | ||||
---|---|---|---|---|
| ||||
Posted in reply to Kiith-Sa | 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/ |
August 08, 2014 Re: D:YAML 0.5 (also, D:YAML 0.4.5, TinyEndian 0.1) | ||||
---|---|---|---|---|
| ||||
Posted in reply to Kiith-Sa | 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.
|
August 08, 2014 Re: D:YAML 0.5 (also, D:YAML 0.4.5, TinyEndian 0.1) | ||||
---|---|---|---|---|
| ||||
Posted in reply to Jeremy DeHaan | 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 |
August 08, 2014 Re: D:YAML 0.5 (also, D:YAML 0.4.5, TinyEndian 0.1) | ||||
---|---|---|---|---|
| ||||
Posted in reply to Gary Willoughby | Should be fixed now with 0.4.6: http://code.dlang.org/packages/dyaml/0.4.6 |
August 09, 2014 Re: D:YAML 0.5 (also, D:YAML 0.4.5, TinyEndian 0.1) | ||||
---|---|---|---|---|
| ||||
Posted in reply to Kiith-Sa | 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.
|
Copyright © 1999-2021 by the D Language Foundation