www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.announce - [GSoC] std.experimental.xml is now a PR!

reply Lodovico Giaretta <lodovico giaretart.net> writes:
Hi!

I'm pleased to announce that my GSoC project, a replacement for 
the outdated std.xml, is now a Phobos PR! [1] It is an (almost 
complete) mirror of my repository [2], which is also available on 
DUB [3].

I would like to thank my mentor Robert burner Schadek for his 
great support and everybody who already gave some feedback during 
these months.

The PR is not meant for immediate merging. Some things still need 
improvement (docs/unittests/...) while others will come in a 
second iteration (advanced DTD handling). It is meant to for some 
reviews, focusing mainly on the design and usability of the 
library.

In the PR description you will find all the details, including a 
nice "wishlist" of things that I found missing in D during the 
development and some open questions.

So, if you have any consideration/suggestion, drop a line here or 
on the PR, and if you find bugs, don't hesitate to file an issue 
on the issue tracker of my repository.

Thank you very much!

[1] https://github.com/dlang/phobos/pull/4741
[2] https://github.com/lodo1995/experimental.xml
[3] https://code.dlang.org/packages/std-experimental-xml
Aug 24 2016
next sibling parent reply Suliman <evermind live.ru> writes:
Add more examples of usage please.
Aug 24 2016
parent reply Lodovico Giaretta <lodovico giaretart.net> writes:
On Wednesday, 24 August 2016 at 10:22:04 UTC, Suliman wrote:
 Add more examples of usage please.
Thank you very much for having a look. Did you see the examples at [1]? I don't want to add other examples to that page, it would become too long, but maybe I could add specific examples in the pages of the various modules. What do you think? [1] https://lodo1995.github.io/experimental.xml/std/experimental/xml.html
Aug 24 2016
parent reply Suliman <evermind live.ru> writes:
On Wednesday, 24 August 2016 at 10:26:53 UTC, Lodovico Giaretta 
wrote:
 On Wednesday, 24 August 2016 at 10:22:04 UTC, Suliman wrote:
 Add more examples of usage please.
Thank you very much for having a look. Did you see the examples at [1]? I don't want to add other examples to that page, it would become too long, but maybe I could add specific examples in the pages of the various modules. What do you think? [1] https://lodo1995.github.io/experimental.xml/std/experimental/xml.html
IMHO is much better to attend every function with short example of it's usage. For example: https://lodo1995.github.io/experimental.xml/std/experimental/xml/parser.html it's hard to understand what it's doing. Not every D-people are good programmers. A lot of people prefer to look at example to understand what function is doing. And if it's good just copy-past ready to use code.
Aug 24 2016
next sibling parent Lodovico Giaretta <lodovico giaretart.net> writes:
On Wednesday, 24 August 2016 at 12:00:43 UTC, Suliman wrote:
 On Wednesday, 24 August 2016 at 10:26:53 UTC, Lodovico Giaretta 
 wrote:
 [...]
IMHO is much better to attend every function with short example of it's usage. For example: https://lodo1995.github.io/experimental.xml/std/experimental/xml/parser.html it's hard to understand what it's doing. Not every D-people are good programmers. A lot of people prefer to look at example to understand what function is doing. And if it's good just copy-past ready to use code.
Understood, you are right. I'll work on this. Thank you.
Aug 24 2016
prev sibling parent Chris Wright <dhasenan gmail.com> writes:
On Wed, 24 Aug 2016 12:00:43 +0000, Suliman wrote:

 On Wednesday, 24 August 2016 at 10:26:53 UTC, Lodovico Giaretta wrote:
 On Wednesday, 24 August 2016 at 10:22:04 UTC, Suliman wrote:
 Add more examples of usage please.
Thank you very much for having a look. Did you see the examples at [1]? I don't want to add other examples to that page, it would become too long, but maybe I could add specific examples in the pages of the various modules. What do you think? [1] https://lodo1995.github.io/experimental.xml/std/experimental/xml.html
IMHO is much better to attend every function with short example of it's usage. For example: https://lodo1995.github.io/experimental.xml/std/experimental/xml/
parser.html
 it's hard to understand what it's doing.
 
 Not every D-people are good programmers.
I'd rather say, not everyone using D learns best from specifications plus lengthy examples. Short, pithy examples work better for some. It's also easier to ensure that you have good coverage that way. For my part, I best learn the essentials from *short* examples and the details from prose. I can learn general usage from prose, but it takes me a fair bit longer for non-trivial things (especially when it makes heavy use of templates). I can learn details from examples, but it's much slower. This isn't a lack of programming skill on my part. It's just, I'm a human, so I'm good at pattern matching.
Aug 24 2016
prev sibling next sibling parent reply Lurker <lurker gmail.com> writes:
On Wednesday, 24 August 2016 at 09:31:44 UTC, Lodovico Giaretta 
wrote:
 Hi!

 I'm pleased to announce that my GSoC project, a replacement for 
 the outdated std.xml, is now a Phobos PR! [1] It is an (almost 
 complete) mirror of my repository [2], which is also available 
 on DUB [3].

 I would like to thank my mentor Robert burner Schadek for his 
 great support and everybody who already gave some feedback 
 during these months.

 The PR is not meant for immediate merging. Some things still 
 need improvement (docs/unittests/...) while others will come in 
 a second iteration (advanced DTD handling). It is meant to for 
 some reviews, focusing mainly on the design and usability of 
 the library.

 In the PR description you will find all the details, including 
 a nice "wishlist" of things that I found missing in D during 
 the development and some open questions.

 So, if you have any consideration/suggestion, drop a line here 
 or on the PR, and if you find bugs, don't hesitate to file an 
 issue on the issue tracker of my repository.

 Thank you very much!

 [1] https://github.com/dlang/phobos/pull/4741
 [2] https://github.com/lodo1995/experimental.xml
 [3] https://code.dlang.org/packages/std-experimental-xml
Looks good at first glance. How does it compare against established XML parsers performance-wise, e.g. Phobos XML, RapidXML, pugixml etc. Tango claimed to be the fastest XML parser at some point in time, curious how it compares. http://xmlbench.sourceforge.net/ might be a good start.
Aug 25 2016
parent Lodovico Giaretta <lodovico giaretart.net> writes:
On Thursday, 25 August 2016 at 21:36:34 UTC, Lurker wrote:
 On Wednesday, 24 August 2016 at 09:31:44 UTC, Lodovico Giaretta 
 wrote:
 [...]
Looks good at first glance. How does it compare against established XML parsers performance-wise, e.g. Phobos XML, RapidXML, pugixml etc. Tango claimed to be the fastest XML parser at some point in time, curious how it compares. http://xmlbench.sourceforge.net/ might be a good start.
Hi! Sorry for the late reply, I've been quite busy. I didn't perform many comparisons against other APIs. Also, performance has not been the main target. I mean, the infrastructure for making it fast is there. The library contains a small number of string handling functions that can be optimized, leading to great speed improvements in all components. But these functions hasn't been fully optimized yet. About raw performance, the repository contains a simple benchmarking driver which I use to track performance regressions in the code. On my laptop, excluding the time needed to load the input from disk, I can easily process XML with speeds over 50MB/s, which looks like a good start. Easy win comparisons: this library is way faster than Java's built-in XML library and also way faster than the current Phobos std.xml API.
 http://xmlbench.sourceforge.net/ might be a good start.
Thank you for pointing this out. I will have a look.
Aug 27 2016
prev sibling parent reply NVolcz <niklas.volcz gmail.com> writes:
On Wednesday, 24 August 2016 at 09:31:44 UTC, Lodovico Giaretta 
wrote:
 Hi!

 I'm pleased to announce that my GSoC project, a replacement for 
 the outdated std.xml, is now a Phobos PR! [1] It is an (almost 
 complete) mirror of my repository [2], which is also available 
 on DUB [3].

 I would like to thank my mentor Robert burner Schadek for his 
 great support and everybody who already gave some feedback 
 during these months.

 The PR is not meant for immediate merging. Some things still 
 need improvement (docs/unittests/...) while others will come in 
 a second iteration (advanced DTD handling). It is meant to for 
 some reviews, focusing mainly on the design and usability of 
 the library.

 In the PR description you will find all the details, including 
 a nice "wishlist" of things that I found missing in D during 
 the development and some open questions.

 So, if you have any consideration/suggestion, drop a line here 
 or on the PR, and if you find bugs, don't hesitate to file an 
 issue on the issue tracker of my repository.

 Thank you very much!

 [1] https://github.com/dlang/phobos/pull/4741
 [2] https://github.com/lodo1995/experimental.xml
 [3] https://code.dlang.org/packages/std-experimental-xml
I like the new cursor API very much since it enables new use cases that are were hard to do with the old API. Thanks for your hard work! Examples are a bit scares. I like the way Phobos documents every functions with an unittest/example. I'm all for that! Another thing I encountered some days ago was that the default error handler is using asserts to signal error. https://github.com/lodo1995/experimental.xml/issues/30 It is not obvious from the API that you're required to have a error handler. Two ideas: Use exceptions instead of asserts. This way it is recoverable in the default use case. Require a error handler in the constructor.
Aug 27 2016
parent Suliman <evermind live.ru> writes:
On Sunday, 28 August 2016 at 06:28:35 UTC, NVolcz wrote:
 On Wednesday, 24 August 2016 at 09:31:44 UTC, Lodovico Giaretta 
 wrote:
 Hi!

 I'm pleased to announce that my GSoC project, a replacement 
 for the outdated std.xml, is now a Phobos PR! [1] It is an 
 (almost complete) mirror of my repository [2], which is also 
 available on DUB [3].

 I would like to thank my mentor Robert burner Schadek for his 
 great support and everybody who already gave some feedback 
 during these months.

 The PR is not meant for immediate merging. Some things still 
 need improvement (docs/unittests/...) while others will come 
 in a second iteration (advanced DTD handling). It is meant to 
 for some reviews, focusing mainly on the design and usability 
 of the library.

 In the PR description you will find all the details, including 
 a nice "wishlist" of things that I found missing in D during 
 the development and some open questions.

 So, if you have any consideration/suggestion, drop a line here 
 or on the PR, and if you find bugs, don't hesitate to file an 
 issue on the issue tracker of my repository.

 Thank you very much!

 [1] https://github.com/dlang/phobos/pull/4741
 [2] https://github.com/lodo1995/experimental.xml
 [3] https://code.dlang.org/packages/std-experimental-xml
I like the new cursor API very much since it enables new use cases that are were hard to do with the old API. Thanks for your hard work! Examples are a bit scares. I like the way Phobos documents every functions with an unittest/example. I'm all for that! Another thing I encountered some days ago was that the default error handler is using asserts to signal error. https://github.com/lodo1995/experimental.xml/issues/30 It is not obvious from the API that you're required to have a error handler. Two ideas: Use exceptions instead of asserts. This way it is recoverable in the default use case. Require a error handler in the constructor.
Examples still sucks. Hard to start use lib.
Oct 01 2016