-
Notifications
You must be signed in to change notification settings - Fork 46
Developer's Corner
This page contains documentation and links related to the maintenance and development of the Perl Data Language.
The first step in developing PDL is getting the source files from the Git repository on Sourceforge. To begin, you should install Git. Then see the PDL FAQ 4.11 I have gotten developer access to Git, how do I upload my changes?.
As of April 2022, pdl.perl.org is hosted by GitHub Pages from github.com/PDLPorters/pdlporters.github.com. See their docs for how to operate this.
As a temporary measure, there are redirecting HTML pages under PDLdocs/
with <link rel=canonical>
to tell Google to use MetaCPAN pages instead. Once Google searches for e.g. whistogram
stop giving hits for pdl.perl.org those can safely be removed.
Read the Results from the Fall 2009 Usage and Installation Survey.
This section is for Matt and other Mac OS X PDL users/developers to document the recipe for building SciPDL for a new PDL release. Ideally, following these instructions would allow another PDL developer with a Mac OS X platform to build a new SciPDL package for release.
Checking Dependencies with Devel::CheckLib
Dependency checking is a critical component of the build process for PDL where many of the submodules depend on external libraries to provide needed functionality. We would like to move to a common framework for dependency detection that this platform independent and robust.
Devel::CheckLib looks like a promising approach. The idea is that Devel::CheckLib implements checks for libraries, include files, and functionality by compiling test programs with candidate options and verifying that they build and run. To this end, the current release of Devel::CheckLib is bundled with the PDL release to support checks without additional required external dependencies.
Portions of PDL have not been modified in a long time, in some cases a decade or more. The following command (in a bash shell from the top of the PDL git repository) sorts all the files in the tree by the date of last commit. You might find something you never knew was in there! (note: this may take some time to run because git, unlike cvs, does not keep track of files, but of commits, so there is not (to my knowledge) a one-off way to do this).
git ls-tree -r --name-only HEAD | while read filename; do echo "$(git log -1 --format="%ai" -- $filename) $filename"; done | sort -r