Re: Seeking GONZUS for collaboration

2016-02-25 Thread Sawyer X
I'll be honest, I never check this list. :)

But! Here's my [some form of] contribution:

* We[1] worked on Path::Hilbert::XS together as part of the p5pclub
efforts so the repo is under p5pclub organization:
https://github.com/p5pclub/path-hilbert-xs
* I can assure you we are both very responsive there. (Okay, Gonzo is
the responsive one, but I'm a ping away!)
* You can add optional support for it by simply trying to load it, as
Shlomi noted. Module::Implementation is also good, but seems a bit of
an overkill.
* Feel free to ping me or Gonzo on our CPAN emails, we will be happy
to help in any way!

All the best, :)
Sawyer.

[1] That also includes other people under the p5pclub organization,
namely Andre.


On Mon, Jan 18, 2016 at 12:14 AM, Paul Bennett  wrote:
>
> On Jan 17, 2016 4:50 PM, "Olaf Alders"  wrote:
>>
>> Have you had a look at https://metacpan.org/pod/Module::Implementation ?
>>
>> Olaf
>>
>
> I have now. Looks very promising indeed. Thanks!
>
> --
> Paul W Bennett


Re: Seeking GONZUS for collaboration

2016-01-17 Thread Olaf Alders

> On Jan 17, 2016, at 11:43 AM, Shlomi Fish  wrote:
> 
> Hi Paul,
> 
> On Sun, 17 Jan 2016 11:12:17 -0500
> Paul Bennett  wrote:
> 
>> I'm PWBENNETT and I want to talk with GONZUS about Path::Hilbert::XS and
>> how I can make my Path::Hilbert automatically load your ::XS module under
>> the covers if it's installed.
>> 
>> I welcome advice from anyone else who has experience shimming in ::XS
>> module alternatives if present. I know there are many of you out there; the
>> only one I can think of off the top of my head is INGY, but I don't mean to
>> single him out.
>> 
>> Thanks in advance,
>> 
> 
> I think you can do something like
> 
>   if (eval { require Path::Hilbert::XS; } and (!$@))
>   {
>   # Do something with @ISA or whatever.
>   }
> 
> Or is that not what you mean?

Have you had a look at https://metacpan.org/pod/Module::Implementation ?

Olaf



Re: Seeking GONZUS for collaboration

2016-01-17 Thread Paul Bennett
On Jan 17, 2016 11:47 AM, "David Oswald"  wrote:
>
> Have a look at the source (including Makefile.PL) of Math::Random::ISAAC,
List::Binary::Search, and Bytes::Random::Secure for ideas of how. Also
JSON, and Text::CSV.
>
> Most or all of the above load a Pure Perl module in the absence of an XS
alternative or the XS version if available.
>

I have a potentially corner-ish case here, as the API is (ever so slightly)
different between the two modules — the PP version has an OO interface that
the XS lacks.

Since the OO methods are just thin wrappers around the procedural interface
(which matches the XS interface verbatim), I'm thinking I might want to do
some symbol table trickery: rename the PP procedural subs (underscore
prefix or something), then in a BEGIN block try to require the XS module,
and either way install "correctly" named globs into %{__PACKAGE__ . '::'}.

I suspect the API of the XS module won't change, but I don't know, and I
don't like not knowing. Hence, I want to get the nod from GONZUS before I
go for it.

--
Paul W Bennett


Re: Seeking GONZUS for collaboration

2016-01-17 Thread Paul Bennett
On Jan 17, 2016 4:50 PM, "Olaf Alders"  wrote:
>
> Have you had a look at https://metacpan.org/pod/Module::Implementation ?
>
> Olaf
>

I have now. Looks very promising indeed. Thanks!

--
Paul W Bennett


Seeking GONZUS for collaboration

2016-01-17 Thread Paul Bennett
I'm PWBENNETT and I want to talk with GONZUS about Path::Hilbert::XS and
how I can make my Path::Hilbert automatically load your ::XS module under
the covers if it's installed.

I welcome advice from anyone else who has experience shimming in ::XS
module alternatives if present. I know there are many of you out there; the
only one I can think of off the top of my head is INGY, but I don't mean to
single him out.

Thanks in advance,

--
Paul W Bennett


Re: Seeking GONZUS for collaboration

2016-01-17 Thread Shlomi Fish
Hi Paul,

On Sun, 17 Jan 2016 11:12:17 -0500
Paul Bennett  wrote:

> I'm PWBENNETT and I want to talk with GONZUS about Path::Hilbert::XS and
> how I can make my Path::Hilbert automatically load your ::XS module under
> the covers if it's installed.
> 
> I welcome advice from anyone else who has experience shimming in ::XS
> module alternatives if present. I know there are many of you out there; the
> only one I can think of off the top of my head is INGY, but I don't mean to
> single him out.
> 
> Thanks in advance,
> 

I think you can do something like

if (eval { require Path::Hilbert::XS; } and (!$@))
{
# Do something with @ISA or whatever.
}

Or is that not what you mean?

Regards,

-- Shlomi


Re: Seeking GONZUS for collaboration

2016-01-17 Thread David Oswald
Have a look at the source (including Makefile.PL) of Math::Random::ISAAC,
List::Binary::Search, and Bytes::Random::Secure for ideas of how. Also
JSON, and Text::CSV.

Most or all of the above load a Pure Perl module in the absence of an XS
alternative or the XS version if available.
On Jan 17, 2016 9:12 AM, "Paul Bennett"  wrote:

> I'm PWBENNETT and I want to talk with GONZUS about Path::Hilbert::XS and
> how I can make my Path::Hilbert automatically load your ::XS module under
> the covers if it's installed.
>
> I welcome advice from anyone else who has experience shimming in ::XS
> module alternatives if present. I know there are many of you out there; the
> only one I can think of off the top of my head is INGY, but I don't mean to
> single him out.
>
> Thanks in advance,
>
> --
> Paul W Bennett
>