Chris Marshall
2014-04-15 21:20:48 UTC
< adding pdl-porters cc to this discussion >
Hi kmx-
My plan is to provide Alien::XXX modules for all the external
dependencies but, as you are aware, I've been chewing on
the problem for a while without much progress.
Part of the problem is that the current approach to implement
Alien modules from the original manifesto is too vague and
currently results in Alien::XXX modules that often only work
on a singleplatform or type of platform, don't give a clue in the
docs ortest results about whether or not it actually works, and
doesn't even handle consistently, correctly, or at all just
detecting and using an existing dependency!
I have some concrete ideas for a fix with the start here:
>
http://blogs.perl.org/users/chris_marshall/2013/12/a-framework-for-alien-modules-the-alien2-manifesto.html
I haven't had a lot of time to finish the second post on an
example Alien2 implementation with discussion. The hope
was that we could refactor the existing Alien::Base to
support the Alien2 improvements.
It might be simpler to finish some example "Alien2::XXX"
implementations to support the PDL2 -> PDL3 transition
(with the goal of splitting out non-core dependencies based
modules from the PDL core distribution and replacing the
all-in-one install by a bundle install). The "show me the code"
approach has the plus it will help PDL and provide some
concrete examples of what I mean in Alien2.
Below I've commented on the current status of dependency
detection in the PDL-2.007 distribution. This is off the top of
my head. Clarification and updates welcome.
Cheers,
Chris
On Tue, Apr 15, 2014 at 4:49 PM, kmx <***@volny.cz> wrote:
> Hi Chris,
>
> as for the ConsoleZ you are right.
>
> Maybe lets focus on external library detection. Here is my observation
> (based on strawberry-perl-5.19.10.3-...-PDLv02 testing):
>
> PDL::IO::Browser ### (PDL-2.007) ncursesw not detected
>
>
Alien::Curses or Alien::NCurses would work but I really want to
have a better data visualization tool for PDL. Text based should
be the fallback, not the default standard approach.
> PDL::Graphics::PLplot ### (PDL-2.007) Cannot find plplot library (libplplotd.dll), skipping PDL::Graphics::PLplot
>
>
I've only just been able to compile the latest PLplot library to
revisit this detection and use in the module. David Mertens
had done some work here but discovered Prima and switched
to his own implementation which is PDL::Graphics::Prima
> PDL::IO::HDF ### (PDL-2.007) Cannot find hdf library, libdf.a
>
> Definitely looking for an Alien::HDF4 here. Figured I would
do it at the same time as the HDF5 work.
> PDL::GSL::* ### (PDL-2.007) OK
>
> Detection ok, not sure where Alien::GSL stands but work for
that was part of the motivation for Joel Berger's Alien::Base
work. I would like to see a more comprehensive numeric
processing support in PDL, maybe via additional GSL bindings...
> PDL::GIS::Proj ### (PDL-2.007) PROJ4 library found but cannot initialize projection, won't build
>
> PROJ4 pretty much builds out of the box so an Alien::PROJ4
would work and the current detection using Devel::CheckLib seems
to work. If the projection is not found in the test, then probably
a needed environment variable is not set or the datum info has
not been installed.
> PDL::Transform::Proj4 ### (PDL-2.007) ~~ dtto ~~
>
>
Ditto
> PDL::IO::HDF5 ### Cannot find hdf5 library, libhdf5.so or libhdf5.a.
>
>
Alien::HDF5 is in the works to support PDL::IO::HDF5 but
it is still waiting on the Alien2 push...
> PDL::FFTW3 ### Sorry, Alien::FFTW3 doesn't work for Microsoft Windows
>
>
Have a rudimentary, incomplete Alien::FFTW3 that would be
nice to make cross platform but waiting on the Alien2 push...
> PDL::FFTW ### OK
>
> This module is no longer part of the PDL core and is
buggy. Once the PDL::FFTW3 is finished, I plan to
deprecate it completely.
> PDL::Graphics::Gnuplot ### OK
>
> This worked for cygwin and I've had it work for Strawberry
Perl. I assume Rob could say if that is the case for ASPerl.
> Alien::GSL ### does not detect existing library
>
> Alien::FFTW3 ### does not detect existing library
>
>
>
These need the Alien2 rework...
> Should I try to create patches for related modules? Or do you plan to
> unify lib detection over all PDL related modules? (Alien::* approach of
> Devel::CheckLib approach of other?)
>
> If you gimme a short crash course how a build system for PDL modules work
> I can start with some hacking.
>
> --
> kmx
>
Hi kmx-
My plan is to provide Alien::XXX modules for all the external
dependencies but, as you are aware, I've been chewing on
the problem for a while without much progress.
Part of the problem is that the current approach to implement
Alien modules from the original manifesto is too vague and
currently results in Alien::XXX modules that often only work
on a singleplatform or type of platform, don't give a clue in the
docs ortest results about whether or not it actually works, and
doesn't even handle consistently, correctly, or at all just
detecting and using an existing dependency!
I have some concrete ideas for a fix with the start here:
>
http://blogs.perl.org/users/chris_marshall/2013/12/a-framework-for-alien-modules-the-alien2-manifesto.html
I haven't had a lot of time to finish the second post on an
example Alien2 implementation with discussion. The hope
was that we could refactor the existing Alien::Base to
support the Alien2 improvements.
It might be simpler to finish some example "Alien2::XXX"
implementations to support the PDL2 -> PDL3 transition
(with the goal of splitting out non-core dependencies based
modules from the PDL core distribution and replacing the
all-in-one install by a bundle install). The "show me the code"
approach has the plus it will help PDL and provide some
concrete examples of what I mean in Alien2.
Below I've commented on the current status of dependency
detection in the PDL-2.007 distribution. This is off the top of
my head. Clarification and updates welcome.
Cheers,
Chris
On Tue, Apr 15, 2014 at 4:49 PM, kmx <***@volny.cz> wrote:
> Hi Chris,
>
> as for the ConsoleZ you are right.
>
> Maybe lets focus on external library detection. Here is my observation
> (based on strawberry-perl-5.19.10.3-...-PDLv02 testing):
>
> PDL::IO::Browser ### (PDL-2.007) ncursesw not detected
>
>
Alien::Curses or Alien::NCurses would work but I really want to
have a better data visualization tool for PDL. Text based should
be the fallback, not the default standard approach.
> PDL::Graphics::PLplot ### (PDL-2.007) Cannot find plplot library (libplplotd.dll), skipping PDL::Graphics::PLplot
>
>
I've only just been able to compile the latest PLplot library to
revisit this detection and use in the module. David Mertens
had done some work here but discovered Prima and switched
to his own implementation which is PDL::Graphics::Prima
> PDL::IO::HDF ### (PDL-2.007) Cannot find hdf library, libdf.a
>
> Definitely looking for an Alien::HDF4 here. Figured I would
do it at the same time as the HDF5 work.
> PDL::GSL::* ### (PDL-2.007) OK
>
> Detection ok, not sure where Alien::GSL stands but work for
that was part of the motivation for Joel Berger's Alien::Base
work. I would like to see a more comprehensive numeric
processing support in PDL, maybe via additional GSL bindings...
> PDL::GIS::Proj ### (PDL-2.007) PROJ4 library found but cannot initialize projection, won't build
>
> PROJ4 pretty much builds out of the box so an Alien::PROJ4
would work and the current detection using Devel::CheckLib seems
to work. If the projection is not found in the test, then probably
a needed environment variable is not set or the datum info has
not been installed.
> PDL::Transform::Proj4 ### (PDL-2.007) ~~ dtto ~~
>
>
Ditto
> PDL::IO::HDF5 ### Cannot find hdf5 library, libhdf5.so or libhdf5.a.
>
>
Alien::HDF5 is in the works to support PDL::IO::HDF5 but
it is still waiting on the Alien2 push...
> PDL::FFTW3 ### Sorry, Alien::FFTW3 doesn't work for Microsoft Windows
>
>
Have a rudimentary, incomplete Alien::FFTW3 that would be
nice to make cross platform but waiting on the Alien2 push...
> PDL::FFTW ### OK
>
> This module is no longer part of the PDL core and is
buggy. Once the PDL::FFTW3 is finished, I plan to
deprecate it completely.
> PDL::Graphics::Gnuplot ### OK
>
> This worked for cygwin and I've had it work for Strawberry
Perl. I assume Rob could say if that is the case for ASPerl.
> Alien::GSL ### does not detect existing library
>
> Alien::FFTW3 ### does not detect existing library
>
>
>
These need the Alien2 rework...
> Should I try to create patches for related modules? Or do you plan to
> unify lib detection over all PDL related modules? (Alien::* approach of
> Devel::CheckLib approach of other?)
>
> If you gimme a short crash course how a build system for PDL modules work
> I can start with some hacking.
>
> --
> kmx
>