digitalmars.D.announce - D:YAML 0.1
- Kiith-Sa (13/13) Aug 16 2011 D:YAML is a YAML parser library for D.
- Jacob Carlborg (5/18) Aug 16 2011 Interesting, I've been looking for a D YAML library for a while. How is
- Kiith-Sa (5/30) Aug 16 2011 Not yet. I intend to implement an emitter first and then start
- Jacob Carlborg (4/34) Aug 16 2011 Does the parser/lexer take advantage of D's slices to make it faster?
- Kiith-Sa (8/44) Aug 17 2011 In some places, yes, in some places, no. I didn't concentrate on prevent...
- Jacob Carlborg (6/16) Aug 17 2011 Ok, I see. It should be possible to create a parser that doesn't
- Jimmy Cao (4/31) Aug 16 2011 This is great!
- Nick Sabalausky (3/17) Aug 16 2011 Cool, I've been interested in YAML, but there wasn't a D library for it....
- Mike Parker (3/27) Aug 17 2011 Ditto. This is one I've been waiting for, since I have neither the time
- jdrewsen (2/15) Aug 16 2011 Very nice! Gotta have a look on this one.
D:YAML is a YAML parser library for D. It is mostly compliant with the YAML 1.1 spec, although there are some unsupported features (e.g. recursive data structures). Currently there is only a parser, not an emitter. The API is not yet stable, there will be breaking changes. (e.g. part of the API depends on std.stream and will probably be changed when std.stream is rewritten.) Docs can be found in doc/html in the package. There are some (very) basic tutorials/examples and an API doc. Much of D:YAML code has been ported to D from PyYAML. D:YAML is written in D2. There is no D1 or Tango support, and none is planned. Link: https://github.com/kiith-sa/D-YAML
Aug 16 2011
On 2011-08-16 20:13, Kiith-Sa wrote:D:YAML is a YAML parser library for D. It is mostly compliant with the YAML 1.1 spec, although there are some unsupported features (e.g. recursive data structures). Currently there is only a parser, not an emitter. The API is not yet stable, there will be breaking changes. (e.g. part of the API depends on std.stream and will probably be changed when std.stream is rewritten.) Docs can be found in doc/html in the package. There are some (very) basic tutorials/examples and an API doc. Much of D:YAML code has been ported to D from PyYAML. D:YAML is written in D2. There is no D1 or Tango support, and none is planned. Link: https://github.com/kiith-sa/D-YAMLInteresting, I've been looking for a D YAML library for a while. How is the performance, have you made any benchmarks? -- /Jacob Carlborg
Aug 16 2011
Jacob Carlborg wrote:On 2011-08-16 20:13, Kiith-Sa wrote:Not yet. I intend to implement an emitter first and then start benchmarking/profiling/optimizing. However, as much of the code is directly translated from PyYAML (Python code, not the libYAML C extension), I imagine it will be somewhat faster than that.D:YAML is a YAML parser library for D. It is mostly compliant with the YAML 1.1 spec, although there are some unsupported features (e.g. recursive data structures). Currently there is only a parser, not an emitter. The API is not yet stable, there will be breaking changes. (e.g. part of the API depends on std.stream and will probably be changed when std.stream is rewritten.) Docs can be found in doc/html in the package. There are some (very) basic tutorials/examples and an API doc. Much of D:YAML code has been ported to D from PyYAML. D:YAML is written in D2. There is no D1 or Tango support, and none is planned. Link: https://github.com/kiith-sa/D-YAMLInteresting, I've been looking for a D YAML library for a while. How is the performance, have you made any benchmarks?
Aug 16 2011
On 2011-08-16 21:12, Kiith-Sa wrote:Jacob Carlborg wrote:Does the parser/lexer take advantage of D's slices to make it faster? -- /Jacob CarlborgOn 2011-08-16 20:13, Kiith-Sa wrote:Not yet. I intend to implement an emitter first and then start benchmarking/profiling/optimizing. However, as much of the code is directly translated from PyYAML (Python code, not the libYAML C extension), I imagine it will be somewhat faster than that.D:YAML is a YAML parser library for D. It is mostly compliant with the YAML 1.1 spec, although there are some unsupported features (e.g. recursive data structures). Currently there is only a parser, not an emitter. The API is not yet stable, there will be breaking changes. (e.g. part of the API depends on std.stream and will probably be changed when std.stream is rewritten.) Docs can be found in doc/html in the package. There are some (very) basic tutorials/examples and an API doc. Much of D:YAML code has been ported to D from PyYAML. D:YAML is written in D2. There is no D1 or Tango support, and none is planned. Link: https://github.com/kiith-sa/D-YAMLInteresting, I've been looking for a D YAML library for a while. How is the performance, have you made any benchmarks?
Aug 16 2011
Jacob Carlborg wrote:On 2011-08-16 21:12, Kiith-Sa wrote:In some places, yes, in some places, no. I didn't concentrate on preventing new strings from being allocated, but a lot of string data should pass through the code unchanged, with just slices changing. Phobos functions should help with that (E.g: afaik when you split() a string, you just get slices to the same string data?). Still, the parser, scanner (and composer) are precisely the parts of code that were ported from PyYAML, and the code is mostly similar to PyYAML.Jacob Carlborg wrote:Does the parser/lexer take advantage of D's slices to make it faster?On 2011-08-16 20:13, Kiith-Sa wrote:Not yet. I intend to implement an emitter first and then start benchmarking/profiling/optimizing. However, as much of the code is directly translated from PyYAML (Python code, not the libYAML C extension), I imagine it will be somewhat faster than that.D:YAML is a YAML parser library for D. It is mostly compliant with the YAML 1.1 spec, although there are some unsupported features (e.g. recursive data structures). Currently there is only a parser, not an emitter. The API is not yet stable, there will be breaking changes. (e.g. part of the API depends on std.stream and will probably be changed when std.stream is rewritten.) Docs can be found in doc/html in the package. There are some (very) basic tutorials/examples and an API doc. Much of D:YAML code has been ported to D from PyYAML. D:YAML is written in D2. There is no D1 or Tango support, and none is planned. Link: https://github.com/kiith-sa/D-YAMLInteresting, I've been looking for a D YAML library for a while. How is the performance, have you made any benchmarks?
Aug 17 2011
On 2011-08-17 13:08, Kiith-Sa wrote:Jacob Carlborg wrote:Ok, I see. It should be possible to create a parser that doesn't allocate memory, only uses slicing. A great example of that is the XML module in Tango. -- /Jacob CarlborgDoes the parser/lexer take advantage of D's slices to make it faster?In some places, yes, in some places, no. I didn't concentrate on preventing new strings from being allocated, but a lot of string data should pass through the code unchanged, with just slices changing. Phobos functions should help with that (E.g: afaik when you split() a string, you just get slices to the same string data?). Still, the parser, scanner (and composer) are precisely the parts of code that were ported from PyYAML, and the code is mostly similar to PyYAML.
Aug 17 2011
This is great! With std.xml and std.json being somewhat dysfunctional, it's nice to have a YAML library. On Tue, Aug 16, 2011 at 1:58 PM, Jacob Carlborg <doob me.com> wrote:On 2011-08-16 20:13, Kiith-Sa wrote:D:YAML is a YAML parser library for D. It is mostly compliant with the YAML 1.1 spec, although there are some unsupported features (e.g. recursive data structures). Currently there is only a parser, not an emitter. The API is not yet stable, there will be breaking changes. (e.g. part of the API depends on std.stream and will probably be changed when std.stream is rewritten.) Docs can be found in doc/html in the package. There are some (very) basic tutorials/examples and an API doc. Much of D:YAML code has been ported to D from PyYAML. D:YAML is written in D2. There is no D1 or Tango support, and none is planned. Link: https://github.com/kiith-sa/D-**YAML<https://github.com/kiith-sa/D-YAML>Interesting, I've been looking for a D YAML library for a while. How is the performance, have you made any benchmarks? -- /Jacob Carlborg
Aug 16 2011
"Kiith-Sa" <42 theanswer.com> wrote in message news:j2ec0p$al6$1 digitalmars.com...D:YAML is a YAML parser library for D. It is mostly compliant with the YAML 1.1 spec, although there are some unsupported features (e.g. recursive data structures). Currently there is only a parser, not an emitter. The API is not yet stable, there will be breaking changes. (e.g. part of the API depends on std.stream and will probably be changed when std.stream is rewritten.) Docs can be found in doc/html in the package. There are some (very) basic tutorials/examples and an API doc. Much of D:YAML code has been ported to D from PyYAML. D:YAML is written in D2. There is no D1 or Tango support, and none is planned. Link: https://github.com/kiith-sa/D-YAMLCool, I've been interested in YAML, but there wasn't a D library for it.
Aug 16 2011
On 8/17/2011 5:01 AM, Nick Sabalausky wrote:"Kiith-Sa"<42 theanswer.com> wrote in message news:j2ec0p$al6$1 digitalmars.com...Ditto. This is one I've been waiting for, since I have neither the time nor the inclination to work on it myself.D:YAML is a YAML parser library for D. It is mostly compliant with the YAML 1.1 spec, although there are some unsupported features (e.g. recursive data structures). Currently there is only a parser, not an emitter. The API is not yet stable, there will be breaking changes. (e.g. part of the API depends on std.stream and will probably be changed when std.stream is rewritten.) Docs can be found in doc/html in the package. There are some (very) basic tutorials/examples and an API doc. Much of D:YAML code has been ported to D from PyYAML. D:YAML is written in D2. There is no D1 or Tango support, and none is planned. Link: https://github.com/kiith-sa/D-YAMLCool, I've been interested in YAML, but there wasn't a D library for it.
Aug 17 2011
Den 16-08-2011 20:13, Kiith-Sa skrev:D:YAML is a YAML parser library for D. It is mostly compliant with the YAML 1.1 spec, although there are some unsupported features (e.g. recursive data structures). Currently there is only a parser, not an emitter. The API is not yet stable, there will be breaking changes. (e.g. part of the API depends on std.stream and will probably be changed when std.stream is rewritten.) Docs can be found in doc/html in the package. There are some (very) basic tutorials/examples and an API doc. Much of D:YAML code has been ported to D from PyYAML. D:YAML is written in D2. There is no D1 or Tango support, and none is planned. Link: https://github.com/kiith-sa/D-YAMLVery nice! Gotta have a look on this one.
Aug 16 2011