This is meant to be a collection of ideas currently floating around the PDL mailing list for current and future development.
All, I've consolidated the topics and discussion from perldl and pdl-porters from the past few weeks as part of an effort to produce a PDL_way_forward_draft. It still needs some corrections to wiki as well as some reorganization.
However, the summary list should, at least, be a single place to look for the ideas and consensus as I saw it forming. I see this as a scratch page of specific tasks to move forward with PDL.
The list is long but there are some major thoughts and key ideas that stick out:
- Better Handling of External Dependencies
- General Thoughts
- Padre Development for Strawberry Perl Pro Release
- Computational Improvements
- Documentation and Usability Fixes
- Modularize PDL
- Coordinate PDL Plans with Perl6
- Build Process Fixes
- Provide a Baseline Default 2D and 3D Graphics Capability
There seems to be a growing consensus that PDL should be split into a solid, installable-everywhere core, and a handful of supporting modules. The module would be easily installable using the CPAN Bundle namespace, in which case a person wanting to use PDL for their own work would install Bundle::PDL instead of just PDL since the latter would only contain the core.
As first steps in this process, we're going to try doing this with PLplot:
- Move PLplot out of the core
- Package PLplot and create something of a migration guide, including necessary steps with git so that moving future packages out of the core is straightforward
- Repeat for PGPLOT, OpenGL, and other packages deemed 'not necessary for core functionality'
[David/run4flat] I think we should also write a rock-solid Alien::PLplot package that will interface with various OS's package managers to ensure that PLplot is installed using the native package management, or download and compile the source if the native package management does not include PLplot or is unknown. Similar Alien packages can and should be written for OpenGL, PGPLOT, and whatever else gets split off the core.
In order to guarantee that PLplot works on any machine, it was suggested that somebody write an OpenGL driver for PLplot. In this way, ensuring that PLplot has a consistent, reliable interface boils down to ensuring that OpenGL properly installs.
An area that needs to be discussed more. Here's what we know:
- It should have some use beyond just threading. For example, it should probably have linear fitting capabilities
- It should install almost everywhere the Perl can install
- OS Packagers have observed that breaking PDL into components should be coarse-grained, not fine grained, to minimize version skew issues. For example, file IO is something that could easily go either way, but should probably be in the core.
- PDL REPL (Read-Eval-Print-Loop), i.e. perldl shell in Padre
- PDL function look-up as part of the Padre help system