[ANN] LibXML-Ruby 0.3.6

LibXML-Ruby 0.3.6 is now available from Rubyforge. LibXML-Ruby is (as
you may have guessed) a C-language Ruby binding to the Gnome LibXML2
library, supporting a wide range of XML technologies and offering very
competitive performance across the board.

You can obtain LibXML-Ruby via Rubygems:

  gem install libxml-ruby

Or as standard tarball/zip packages:

  http://rubyforge.org/frs/?group_id=494&release_id=4388

This release is essentially our 'ground zero' release after a recent
effort to revive the sleeping LibXML-Ruby project with the help of
original author Sean Chittenden. Although fixes for a number of bugs in
the build and the code are included, no new functionality has yet been
added. We are keen to gain feedback from the community, whether positive
or negative, with a view to fixing the direction of the project. Our
mailing list:

  libxml-devel@rubyforge.org

You can find (a bit) more information, and API documentation, at the
project website on Rubyforge:

  http://libxml.rubyforge.org/

(Please note, *not* xml-tools as was previously the case).

For more information on the XML technologies supported by LibXML2, or
for help obtaining or installing it, please see:

  http://xmlsoft.org/

···

--
Ross Bamford - rosco@roscopeco.REMOVE.co.uk

Will this library be renamed LibXML2-Ruby soon? The current name is
slightly misleading.

···

--
Posted via http://www.ruby-forum.com/.

Tried to install it under windows and it failed because I didn't have Zlib.
This is with the ruby one click installer.

Thanks

···

On 2/23/06, Ross Bamford <rossrt@roscopeco.co.uk> wrote:

LibXML-Ruby 0.3.6 is now available from Rubyforge. LibXML-Ruby is (as
you may have guessed) a C-language Ruby binding to the Gnome LibXML2
library, supporting a wide range of XML technologies and offering very
competitive performance across the board.

You can obtain LibXML-Ruby via Rubygems:

        gem install libxml-ruby

Or as standard tarball/zip packages:

        http://rubyforge.org/frs/?group_id=494&release_id=4388

This release is essentially our 'ground zero' release after a recent
effort to revive the sleeping LibXML-Ruby project with the help of
original author Sean Chittenden. Although fixes for a number of bugs in
the build and the code are included, no new functionality has yet been
added. We are keen to gain feedback from the community, whether positive
or negative, with a view to fixing the direction of the project. Our
mailing list:

        libxml-devel@rubyforge.org

You can find (a bit) more information, and API documentation, at the
project website on Rubyforge:

        http://libxml.rubyforge.org/

(Please note, *not* xml-tools as was previously the case).

For more information on the XML technologies supported by LibXML2, or
for help obtaining or installing it, please see:

        http://xmlsoft.org/

--
Ross Bamford - rosco@roscopeco.REMOVE.co.uk

Wow, this is a pretty incredible speedup!

<meaningless:benchmark filled-with-mistakes="true">
Input doc:
keith@devel /work/frame/templates/main $ du -h main.chap.mx && wc
main.chap.mx
2.2M main.chap.mx
  21063 75272 2287526 main.chap.mx

LibXML
keith@devel /work/frame/templates/main $ time ruby -e "require
'rubygems'; require 'xml/libxml'; d =
XML::Document.file('main.chap.mx'); d.find('//String').each{|n| puts
n}" | wc
   2090 9200 99275

real 0m0.785s
user 0m0.728s
sys 0m0.068s

REXML:
time ruby -e "require 'rexml/document'; d =
REXML::Document.new(File.new('main.chap.mx')); REXML::XPath.each(d,
'//String/'){|n| puts n.text}" | wc
   2090 9200 60422

real 1m41.021s
user 1m40.710s
sys 0m0.308s

Computer: 2 x PIII 650Mhz, 1GB RAM
</meaningless:benchmark>

Nice work, folks.

Keith

···

On Thursday 23 February 2006 2:32 pm, Ross Bamford wrote:

LibXML-Ruby 0.3.6 is now available from Rubyforge. LibXML-Ruby is (as
you may have guessed) a C-language Ruby binding to the Gnome LibXML2
library, supporting a wide range of XML technologies and offering
very competitive performance across the board.

This sounds great. Thanks for producing these bindings. I am really
glad to see this as it adds a simple interface for validating against
an xml schema.

Sadly I'll eventualy need to get this compiled on windows, which I've
never had much luck with :wink:

  .adam

looks really great, thanks for your work.

i plane to use this binding within a MacOS X application.

for me, including "libxml-ruby" is easy using stadalonift.rb from
Jonathan Paisley, but i wonder on how to embed also the gnome libxml2
correctly bind to ruby...

do you have some advices for that point ?

···

Ross Bamford <rossrt@roscopeco.co.uk> wrote:

You can obtain LibXML-Ruby via Rubygems:

      gem install libxml-ruby

Or as standard tarball/zip packages:

      http://rubyforge.org/frs/?group_id=494&release_id=4388

--
une bévue

This is great news - does the library include bindings for libxslt as
well?

Ross Bamford wrote:

···

LibXML-Ruby 0.3.6 is now available from Rubyforge. LibXML-Ruby is (as
you may have guessed) a C-language Ruby binding to the Gnome LibXML2
library, supporting a wide range of XML technologies and offering very
competitive performance across the board.
...

I am having some trouble with building.

1) I have two libiconvs installed, one supplied with my OS in
    /usr and another in /opt/local. Using
    --with-iconv-dir=/opt/local fails to locate libiconv, but
    --with-iconv-dir=/usr works. I made a change to extconf.rb:

$ diff libxml-ruby-0.3.6.orig/ext/xml/extconf.rb libxml-ruby-0.3.6/ext/xml/extconf.rb
45,46c45,49
< unless have_library('iconv','iconv_open') or have_library('c','iconv_open') or
< have_library('recode','iconv_open')

···

On Feb 23, 2006, at 8:32 PM, Ross Bamford wrote:

LibXML-Ruby 0.3.6 is now available from Rubyforge

---
>
> unless have_library('iconv') or
> have_library('iconv','iconv_open') or
> have_library('c','iconv_open') or
> have_library('recode','iconv_open')

    and --with-iconv-dir=/opt/local worked.

2) You call two shell commands, xml2-config and xslt-config. I
    have two versions of libxml2 and libxslt installed, so this
    command is dependent on the correct command being in my PATH
    before the other one. I am not sure what to do about this
    problem.

-- Daniel

There is small documentation error at
http://libxml.rubyforge.org/doc/classes/XML/Dtd.html

The class is named Dtd, but DTD is used. Also, the name of two classes,
Dtd and SaxParser, is inconsistent with the naming conventions of the
library -- it should be DTD and SAXParser. </pedantic>

-- Daniel

···

--
Posted via http://www.ruby-forum.com/.

Yes, I have to agree. But the project was previously under the name
'libxml-ruby' and we wanted to get a release out quickly, with minimal
changes (beyond fixing things). This release should be completely
compatible with existing code, including the "require 'xml/libxml'"
part.

We're hoping to get feedback from this release and work that into the
next minor release, 0.4.0. Maybe between now and then we can slip a name
change in there ...

···

On Fri, 2006-02-24 at 04:48 +0900, Mr. Big wrote:

Will this library be renamed LibXML2-Ruby soon? The current name is
slightly misleading.

--
Ross Bamford - rosco@roscopeco.REMOVE.co.uk

Strange, because ZLib *is* included in the one-click installer.

Curt

···

On 2/23/06, Dominic Sisneros <dsisnero@gmail.com> wrote:

Tried to install it under windows and it failed because I didn't have Zlib.
This is with the ruby one click installer.

Thanks

On 2/23/06, Ross Bamford <rossrt@roscopeco.co.uk> wrote:
>
> LibXML-Ruby 0.3.6 is now available from Rubyforge. LibXML-Ruby is (as
> you may have guessed) a C-language Ruby binding to the Gnome LibXML2
> library, supporting a wide range of XML technologies and offering very
> competitive performance across the board.
>
> You can obtain LibXML-Ruby via Rubygems:
>
> gem install libxml-ruby
>
> Or as standard tarball/zip packages:
>
> http://rubyforge.org/frs/?group_id=494&release_id=4388
>
> This release is essentially our 'ground zero' release after a recent
> effort to revive the sleeping LibXML-Ruby project with the help of
> original author Sean Chittenden. Although fixes for a number of bugs in
> the build and the code are included, no new functionality has yet been
> added. We are keen to gain feedback from the community, whether positive
> or negative, with a view to fixing the direction of the project. Our
> mailing list:
>
> libxml-devel@rubyforge.org
>
> You can find (a bit) more information, and API documentation, at the
> project website on Rubyforge:
>
> http://libxml.rubyforge.org/
>
> (Please note, *not* xml-tools as was previously the case).
>
> For more information on the XML technologies supported by LibXML2, or
> for help obtaining or installing it, please see:
>
> http://xmlsoft.org/
>
> --
> Ross Bamford - rosco@roscopeco.REMOVE.co.uk
>
>
>

Hopefully if you have the required libraries it will work, but I have to
admit to not knowing much about compiling stuff on Windows...

One of the things we're interested in with this release is getting a
handle on cross-platform issues. There have been long-standing OSX
issues which are hopefully now fixed, but with limited hardware/software
for testing it's really important that we get reports of any problems
from OSX and Windows users.

···

On Sat, 2006-02-25 at 02:33 +0900, Adam Sanderson wrote:

This sounds great. Thanks for producing these bindings. I am really
glad to see this as it adds a simple interface for validating against
an xml schema.

Sadly I'll eventualy need to get this compiled on windows, which I've
never had much luck with :wink:

--
Ross Bamford - rosco@roscopeco.REMOVE.co.uk

I'm afraid I can't be much help there, I've no experience with OSX. I've
seen standaloneify.rb but it lost me at "Takes a built RubyCocoa app
bundle (as produced by the Xcode/ProjectBuilder template)..."

···

On Sat, 2006-02-25 at 04:08 +0900, Une bévue wrote:

Ross Bamford <rossrt@roscopeco.co.uk> wrote:

>
> You can obtain LibXML-Ruby via Rubygems:
>
> gem install libxml-ruby
>
> Or as standard tarball/zip packages:
>
> http://rubyforge.org/frs/?group_id=494&release_id=4388

looks really great, thanks for your work.

i plane to use this binding within a MacOS X application.

for me, including "libxml-ruby" is easy using stadalonift.rb from
Jonathan Paisley, but i wonder on how to embed also the gnome libxml2
correctly bind to ruby...

do you have some advices for that point ?

--
Ross Bamford - rosco@roscopeco.REMOVE.co.uk

We're working separately on bringing the libxslt bindings up to date in
the same way. We decided to concentrate on a first libxml release before
moving on to that.

I'm hoping to get baseline code into CVS this week, with a release to
follow ASAP.

···

On Sun, 2006-02-26 at 07:48 +0900, Joe wrote:

This is great news - does the library include bindings for libxslt as
well?

--
Ross Bamford - rosco@roscopeco.REMOVE.co.uk

> LibXML-Ruby 0.3.6 is now available from Rubyforge

I am having some trouble with building.

1) I have two libiconvs installed, one supplied with my OS in
    /usr and another in /opt/local. Using
    --with-iconv-dir=/opt/local fails to locate libiconv, but
    --with-iconv-dir=/usr works. I made a change to extconf.rb:

$ diff libxml-ruby-0.3.6.orig/ext/xml/extconf.rb libxml-ruby-0.3.6/
ext/xml/extconf.rb
45,46c45,49
< unless have_library('iconv','iconv_open') or have_library
('c','iconv_open') or
< have_library('recode','iconv_open')
---
>
> unless have_library('iconv') or
> have_library('iconv','iconv_open') or
> have_library('c','iconv_open') or
> have_library('recode','iconv_open')

    and --with-iconv-dir=/opt/local worked.

I'm not sure about this - I'm still finding my way around some things
here, but I'm pretty sure we do need iconv_open(3) in libiconv. Does it
compile with this change?

I'm going to forward this as a possible change to the mailing list at
libxml-devel@rubyforge.org .

2) You call two shell commands, xml2-config and xslt-config. I
    have two versions of libxml2 and libxslt installed, so this
    command is dependent on the correct command being in my PATH
    before the other one. I am not sure what to do about this
    problem.

If you are passing --with-xml2-<whatever> settings, you should be fine
to comment-out the lines that run those scripts (for both CFLAGS and
LDFLAGS). If that works for you I'll fix it with a default to the
dir_config and commit it.

(I'm still finding new stuff in mkmf so if I'm missing anything, please
let me know :))

···

On Sun, 2006-02-26 at 08:04 +0900, Daniel Harple wrote:

On Feb 23, 2006, at 8:32 PM, Ross Bamford wrote:

--
Ross Bamford - rosco@roscopeco.REMOVE.co.uk

Ross Bamford wrote:

···

On Fri, 2006-02-24 at 04:48 +0900, Mr. Big wrote:

Will this library be renamed LibXML2-Ruby soon? The current name is
slightly misleading.

Yes, I have to agree. But the project was previously under the name
'libxml-ruby' and we wanted to get a release out quickly, with minimal
changes (beyond fixing things). This release should be completely
compatible with existing code, including the "require 'xml/libxml'"
part.

We're hoping to get feedback from this release and work that into the
next minor release, 0.4.0. Maybe between now and then we can slip a name
change in there ...

Good work! I prefer the API (and, obviously, the speed)
over that of REXML. I do concur about the naming. Either
make it libxml2-ruby or bump the version to 2.3.6 :slight_smile:

Thanks!

E

--
Posted via http://www.ruby-forum.com/\.

> Tried to install it under windows and it failed because I didn't have Zlib.
> This is with the ruby one click installer.
Strange, because ZLib *is* included in the one-click installer.

Curt

···

On Fri, 2006-02-24 at 21:00 +0900, Curt Hibbs wrote:

On 2/23/06, Dominic Sisneros <dsisnero@gmail.com> wrote:

--
Ross Bamford - rosco@roscopeco.REMOVE.co.uk

even not general advices ?

what i think about that :

make a try apart (in my HOME)

with a fresh ruby, libxml2 and RubyLibxml.

what i have to know is the process of binding that's to say how your
RubyLibxml find ruby and libxml2, probably this is done at the config
step.

then, i can catch the right parameters to get that binding into my fresh
HOME Ruby and Libxml2 ?

anyway i'll ask on the RubyCocoa-talk list...

···

Ross Bamford <rossrt@roscopeco.co.uk> wrote:

I'm afraid I can't be much help there, I've no experience with OSX. I've
seen standaloneify.rb but it lost me at "Takes a built RubyCocoa app
bundle (as produced by the Xcode/ProjectBuilder template)..."

--
une bévue

What is the difference between this and xml-smart. It looks like xml-smart
has bindings for libxml also.
http://raa.ruby-lang.org/project/ruby-xml-smart
http://www.pri.univie.ac.at/~mangler/ruby-xml-smart/

···

On 2/25/06, Ross Bamford <rossrt@roscopeco.co.uk> wrote:

On Sun, 2006-02-26 at 07:48 +0900, Joe wrote:
> This is great news - does the library include bindings for libxslt as
> well?
>

We're working separately on bringing the libxslt bindings up to date in
the same way. We decided to concentrate on a first libxml release before
moving on to that.

I'm hoping to get baseline code into CVS this week, with a release to
follow ASAP.

--
Ross Bamford - rosco@roscopeco.REMOVE.co.uk

I'm not sure about this - I'm still finding my way around some things
here, but I'm pretty sure we do need iconv_open(3) in libiconv. Does it
compile with this change?

The problem is really strange. I have libiconv-1.9 installed in
/usr, and libiconv-1.10 installed in /opt/local. mkmf says
iconv_open(3) isn't available in v1.10, but it is. Have you
tested with libiconv-1.10? Was there ever a libiconv that did not
have iconv_open()?

If you are passing --with-xml2-<whatever> settings, you should be fine
to comment-out the lines that run those scripts (for both CFLAGS and
LDFLAGS). If that works for you I'll fix it with a default to the
dir_config and commit it.

I did this, and all unittests passed.

-- Daniel

···

On Feb 26, 2006, at 1:32 AM, Ross Bamford wrote: