Thread overview
D:YAML 0.2 released
Oct 15, 2011
Kiith-Sa
Oct 15, 2011
bls
Oct 16, 2011
Kiith-Sa
Oct 16, 2011
Jacob Carlborg
Oct 16, 2011
Kiith-Sa
Oct 16, 2011
Jacob Carlborg
October 15, 2011
I've just released D:YAML 0.2 . This release brings emitting functionality, finishing the main part of D:YAML feature set. From now on, the focus will be on polishing D:YAML, making code more maintainable, optimizing and improving documentation.

D:YAML is a YAML parser and emitter library for D.

Emitting code has been fully implemented (mostly translated from PyYAML),
along with support for emitting custom types (loading custom types
already works with 0.1).

YAML tags are now stored in nodes, allowing D:YAML to be more compliant to the specification.

Many scanner, composer and constructor bugs have been fixed.

Loader API has been broken to make it more extensible in future -
Representer and Constructor are no more specified in the constructor,
and the load() shortcut functions have been removed, as all that's needed to
load a YAML document now is Loader("file.yaml").load() .

Tutorials, API documentation and examples have been updated to reflect the changes.


Note that D:YAML is still a work in progress and its API might yet see some compatibility breaking changes. Basic Loader/Dumper API is unlikely to break any more, but it will be updated when std.stream is rewritten.

GitHub: https://github.com/kiith-sa/D-YAML
Docs  : dyaml.alwaysdata.net/docs

You can get D:YAML 0.2 here: https://github.com/kiith-sa/D-YAML/downloads

October 15, 2011
Am 15.10.2011 19:06, schrieb Kiith-Sa:
> I've just released D:YAML 0.2 . This release brings emitting functionality
...

what do you think about bringing in (adapt) your YAML tool into the Orange  serialisation library. (orange.. https://github.com/jacob-carlborg/orange)

Sounds probably not too interesting but in conjunction with the upcoming std.database/ ORM  stuff Serialisation/De-Serialisation will become pretty important .

// occupied snippet from Orange ..
class Foo
{
    int a;
}

void main ()
{
    auto foo = new Foo; // create something to serialize
    foo.a = 3; // change the default value of "a"

    auto archive = new YAMlArchive!(char); // create an yaml archive
    auto serializer = new Serializer(archive); // create the serializer

    serializer.serialize(foo);
October 16, 2011
On 2011-10-15 19:06, Kiith-Sa wrote:
> I've just released D:YAML 0.2 . This release brings emitting functionality,
> finishing the main part of D:YAML feature set. From now on, the focus will
> be on polishing D:YAML, making code more maintainable, optimizing and
> improving documentation.
>
> D:YAML is a YAML parser and emitter library for D.
>
> Emitting code has been fully implemented (mostly translated from PyYAML),
> along with support for emitting custom types (loading custom types
> already works with 0.1).
>
> YAML tags are now stored in nodes, allowing D:YAML to be more compliant to
> the specification.
>
> Many scanner, composer and constructor bugs have been fixed.
>
> Loader API has been broken to make it more extensible in future -
> Representer and Constructor are no more specified in the constructor,
> and the load() shortcut functions have been removed, as all that's needed to
> load a YAML document now is Loader("file.yaml").load() .
>
> Tutorials, API documentation and examples have been updated to reflect the
> changes.
>
>
> Note that D:YAML is still a work in progress and its API might yet see some
> compatibility breaking changes. Basic Loader/Dumper API is unlikely to break
> any more, but it will be updated when std.stream is rewritten.
>
> GitHub: https://github.com/kiith-sa/D-YAML
> Docs  : dyaml.alwaysdata.net/docs
>
> You can get D:YAML 0.2 here: https://github.com/kiith-sa/D-YAML/downloads

I can see that D:YAML is Boost licensed, how does that work out when PyYAML is MIT licensed?

-- 
/Jacob Carlborg
October 16, 2011
Jacob Carlborg wrote:

> On 2011-10-15 19:06, Kiith-Sa wrote:
>> I've just released D:YAML 0.2 . This release brings emitting functionality, finishing the main part of D:YAML feature set. From now on, the focus will be on polishing D:YAML, making code more maintainable, optimizing and improving documentation.
>>
>> D:YAML is a YAML parser and emitter library for D.
>>
>> Emitting code has been fully implemented (mostly translated from PyYAML),
>> along with support for emitting custom types (loading custom types
>> already works with 0.1).
>>
>> YAML tags are now stored in nodes, allowing D:YAML to be more compliant to the specification.
>>
>> Many scanner, composer and constructor bugs have been fixed.
>>
>> Loader API has been broken to make it more extensible in future -
>> Representer and Constructor are no more specified in the constructor,
>> and the load() shortcut functions have been removed, as all that's needed
>> to load a YAML document now is Loader("file.yaml").load() .
>>
>> Tutorials, API documentation and examples have been updated to reflect the changes.
>>
>>
>> Note that D:YAML is still a work in progress and its API might yet see some compatibility breaking changes. Basic Loader/Dumper API is unlikely to break any more, but it will be updated when std.stream is rewritten.
>>
>> GitHub: https://github.com/kiith-sa/D-YAML
>> Docs  : dyaml.alwaysdata.net/docs
>>
>> You can get D:YAML 0.2 here: https://github.com/kiith-sa/D-YAML/downloads
> 
> I can see that D:YAML is Boost licensed, how does that work out when PyYAML is MIT licensed?
> 

I asked Kirill Simonov (the PyYAML dev) about releasing D:YAML under the Boost license, he said he has no problem with that.
October 16, 2011
bls wrote:

> Am 15.10.2011 19:06, schrieb Kiith-Sa:
>> I've just released D:YAML 0.2 . This release brings emitting functionality
> ...
> 
> what do you think about bringing in (adapt) your YAML tool into the
> Orange  serialisation library. (orange..
> https://github.com/jacob-carlborg/orange)
> 
> Sounds probably not too interesting but in conjunction with the upcoming std.database/ ORM  stuff Serialisation/De-Serialisation will become pretty important .
> 
> // occupied snippet from Orange ..
> class Foo
> {
>      int a;
> }
> 
> void main ()
> {
>      auto foo = new Foo; // create something to serialize
>      foo.a = 3; // change the default value of "a"
> 
>      auto archive = new YAMlArchive!(char); // create an yaml archive
>      auto serializer = new Serializer(archive); // create the serializer
> 
>      serializer.serialize(foo);

I can't rule out doing this in the future, but it seems like Orange work, not D:YAML work.

Currently, D:YAML API is still not stable, so I don't think it would be a good idea right now anyway. Once the API is stable, I'll do a 1.0 release. Further releases will see no breaking changes.
October 16, 2011
On 2011-10-16 11:45, Kiith-Sa wrote:
> Jacob Carlborg wrote:
>
>> On 2011-10-15 19:06, Kiith-Sa wrote:
>>> I've just released D:YAML 0.2 . This release brings emitting
>>> functionality, finishing the main part of D:YAML feature set. From now
>>> on, the focus will be on polishing D:YAML, making code more maintainable,
>>> optimizing and improving documentation.
>>>
>>> D:YAML is a YAML parser and emitter library for D.
>>>
>>> Emitting code has been fully implemented (mostly translated from PyYAML),
>>> along with support for emitting custom types (loading custom types
>>> already works with 0.1).
>>>
>>> YAML tags are now stored in nodes, allowing D:YAML to be more compliant
>>> to the specification.
>>>
>>> Many scanner, composer and constructor bugs have been fixed.
>>>
>>> Loader API has been broken to make it more extensible in future -
>>> Representer and Constructor are no more specified in the constructor,
>>> and the load() shortcut functions have been removed, as all that's needed
>>> to load a YAML document now is Loader("file.yaml").load() .
>>>
>>> Tutorials, API documentation and examples have been updated to reflect
>>> the changes.
>>>
>>>
>>> Note that D:YAML is still a work in progress and its API might yet see
>>> some compatibility breaking changes. Basic Loader/Dumper API is unlikely
>>> to break any more, but it will be updated when std.stream is rewritten.
>>>
>>> GitHub: https://github.com/kiith-sa/D-YAML
>>> Docs  : dyaml.alwaysdata.net/docs
>>>
>>> You can get D:YAML 0.2 here: https://github.com/kiith-sa/D-YAML/downloads
>>
>> I can see that D:YAML is Boost licensed, how does that work out when
>> PyYAML is MIT licensed?
>>
>
> I asked Kirill Simonov (the PyYAML dev) about releasing D:YAML under the
> Boost license, he said he has no problem with that.

Ok, thanks.

-- 
/Jacob Carlborg