Ken Williams wrote:
I don't really get that - what does "reference implementation" give us?
Does it just mean that if there's a bug in it, we can't fix it? Or that
there's not a complete set of documentation describing its behavior?
I'm using "reference implementation" in the same sense that Sun's Java
is the "reference implementation", as in it defined the public interface
and the "default" implementation. The file vutil/vutil.c is *exactly*
the same code as exists in the bleadperl/v5.10.0 util.c; indeed, when I
fix something in vutil.c, I literally chop out the associated block in
bleadperl/util.c and replace it with my code before generating the diff.
This is not as easy as it sounds and some intervention was required to
get ppport.h to support the same construct over all Perl releases from
5.005_04 to the latest 5.8.x.

The XS code in vutil/vxs.xs is more like the moral equivalent of the
parallel code in universal.c (I can't cut/paste because h2xs does not
produce comparable code with what exists in the core). Thankfully, the
Perl-level interface (i.e. what the XS code implements) has changed very
little over the last two years.

Now, for the purpose of providing version.pm everywhere, I ported the
XS/C code to pure Perl, and provided both in the same package with what
I thought was the best tool to do so in a painless way: Module::Build.
Unfortunately, when M::B became dependent on version.pm, all hell broke

I would prefer that the XS/C code be installed, by default, everywhere
possible. It's always going to be faster and it has been around longer,
so it is better tested. The pure Perl variant is a port, so it is
inherently "second generation" code. There has already been an instance
where a distro stupidly forced the pure Perl release, even though the XS
was able to be compiled, in the misguided belief that the pure Perl
release would be more portable. There are things that I do in the pure
Perl release that are much less efficient than the XS/C release.


John Peacock
Director of Information Research and Technology
Rowman & Littlefield Publishing Group
4501 Forbes Boulevard
Suite H
Lanham, MD 20706
301-459-3366 x.5010
fax 301-429-5748

Search Discussions

Discussion Posts


Follow ups

Related Discussions

Discussion Navigation
viewthread | post
posts ‹ prev | 18 of 33 | next ›
Discussion Overview
groupmodule-build @
postedJul 18, '06 at 12:16a
activeJul 26, '06 at 7:09a



site design / logo © 2018 Grokbase