[Perldl] PDL-2.4.10 released

Joel Berger joel.a.berger at gmail.com
Sun Feb 5 06:39:58 HST 2012


Congratulations!

Would you like me to repost this on my blog, which is indexed by perlsphere?

Joel

On Sun, Feb 5, 2012 at 10:11 AM, chm <devel.chm.01 at gmail.com> wrote:
> All PDL Users-
>
> The PDL Development Team is pleased to announce the
> PDL-2.4.10 release of the Perl Data Language *and*
> the first PDF release of the PDL Book.
>
> PDL-2.4.10 is the latest point release with more
> functionality, portability, and robustness than ever
> before, including:
>
>  - POSIX threads support for all platforms
>  - Auto parallelization of PDL threadloops
>  - Support for PDLs larger than 2GiB
>  - PDL Book draft release (PDF format)
>  - Much, much, more...
>
> As always, the source distribution will be available
> at a CPAN mirror near you within a couple of days.
> Our sf.net site has the source distribution and the
> PDL Book:
>
>>
>> http://sourceforge.net/projects/pdl/files/PDL/2.4.10/PDL-Book-20120205.pdf/download
>
>
> Windows binary PPM are available in the usual site,
> see "Get PDL" in the sidebar at http://pdl.perl.org
> (the PDL website for links, documentation and info
> for all things PDL).
>
> The SciPDL-2.4.10 release for MacOS X systems will be
> announced when it is available.
>
> Enjoy and Happy PDL-ing!
>
> Chris Marshall
>  for the PDL Development Team
>
>
>
> Release Notes for PDL 2.4.10 --------------------------
>
> General Notes:
>
>  New Stuff:
>
>  * PDL::Constants module provides E, PI, I (or J) and more.
>
>  * PDL::NiceSlice has a new engine based on Filter::Simple
>    which is more selective about where the PDL::NiceSlice
>    source filter is applied.
>
>  * pdl() constructor now accepts a string argument which
>    can include MATLAB-style [ ; ] syntax, bad values,
>    inf values, and nan values.  This makes it much easier
>    to specify pdl values in programs and scripts.
>
>  * PDL now supports pthreads on all platforms as well
>    as a new, auto-parallelization capability for PDL
>    threadloops across multiple processors using the
>    PDL::ParallelCPU module.
>
>  * Many(!) bug fixes.
>
>
>  Incompatible Changes:
>
>  * List output from whichND is now deprecated.
>
>  * The default.perldlrc uses PDL::Constants to
>    provide E and PI.
>
>  * perldl.conf has new fields so be sure to update
>    any local versions you use with the new fields.
>
>  * rcols and wcols always use dim0 for the data
>    dimension and dim1 for the column dimension.
>    This only matters if you use the support for
>    reading multiple columns into a 2D pdl.
>
>  * Makefile.PL now requires at least version 6.31
>    of ExtUtils::MakeMaker to support the new standard
>    INSTALL_BASE option matching Module::Build usage.
>
>  * Prerequisite Text::Balanced minimum version is
>    now 1.89 although this is not expected to be an
>    issue because it is provided in the perl core
>    since 5.8.0.
>
>
> Highlights:
>
>  * General cleanup of code, including restructuring for clarity.
>
>  * List output from whichND() is now deprecated.  whichND() now returns
>   a piddle of coordinates in all cases with a warning when a list
>   context is detected.  See the docs for work-arounds to your code.
>
>  * PDL::IO::Misc now has better support for handles that are not
>   files (e.g., pipes or standard input) for rgrep(), rcols(),...
>
>  * Added bad value support to pctover() and oddpctover().
>   This was sf.net feature #3328001.
>
>  * New whereND() routine provides the same functionality as where
>   but with support for multi-dimensional masks and implicit
>   threading over higher dimensions.  This was sf.net feature
>   request #3390043.
>
>  * Many bugs fixed.
>
>     3059083  Problems with FITS header handling
>     3080505  PLplot segfaults on plshades call on OS X
>     3285520  status message from gslmroot_fsolver
>     3294808  sever on Empty piddle causes segfault
>     3295544  NiceSlice parsing bug
>     3299611  FITS I/O obscure bug
>     3300467  NiceSlice asterisk parsing issue
>     3307121  wmpeg sometimes kills perldl if file already exists
>     3307613  indexND of Empty pdls can segfault
>     3368883  t/opengl.t fails if display type not available
>     3375837  _read_flexhdr state machine fails
>     3388862  tiny bug in PDL-2.4.3. May apply to 2.4.9
>     3391645  bad printf formats in pdlapi.c and others
>     3394327  PDL::IO::FITS::wfits corrupting FITS image
>     3396738  PDL::Core::convert default return type
>     3410905  t/pgplot.t hangs test harness for PDL
>     3415115  whereND fails to handle all zero mask case
>     3428356  PDL::Transform::map output FITS header is slightly wrong
>     3434842  Error in definition of gsl_sf_laguerre_n function
>
>  * PDL::Constants now provides: E, PI, I and J and is loaded by the
>   default.perldlrc.  It is not yet part of 'use PDL' so you'll need
>   to 'use PDL::Constants ...' by hand for now.
>
>  * default.perldlrc sets $PDL::IO::FlexRaw::writeflexhdr=1 by
>   default so that writeflex() to a filename automatically writes
>   the header file.  This is different from the previous behavior
>   but it seems to "do what you mean".  Feedback welcome!
>
>  * PDL::NiceSlice now has a new engine based on Filter::Simple which
>   is smarter about only applying the slicing source filter to syntax
>   occurring outside of POD, comments, and quotelike strings.  The
>   new implementation is available for *files* by setting the
>   PDL_NICESLICE_ENGINE environment variable to 'Filter::Simple'.
>
>   Work is underway to port the new niceslice filter implementation
>   to perldl/pdl2.  Once this task is completed, the new engine will
>   become the default source filter and the PDL_NICESLICE_ENGINE
>   environment variable will be removed.
>
>  * There is experimental support for PDL::NiceSlice syntax in the
>   perl debugger (i.e., perl -d).  Just set the PERL5DB environment
>   variable to 'BEGIN { require "PDLdb.pl" }' to use niceslice
>   from the debugger command line.  If PERL5DB is already set,
>   you'll need to adjust the above recipe accordingly.
>
>  * Better handling of build configuration options from perldl.conf
>   as well as improvements in the detection of external dependencies.
>
>  * perldl.conf has some new fields added:
>    - POSIX_THREADS_INC and POSIX_THREADS_LIBS to specify
>          locations of your pthread header file and library
>    - PDL_CONFIG_VERSION to track the perldl.conf VERSION
>    - PDLDOC_IGNORE_AUTOLOADER to control pdldoc behavior
>    - PDL_BUILD_DIR provides the build directory path
>    - PDL_BUILD_VERSION provides the PDL build version
>          (to help with ambiguity from multiple PDL installs)
>
>   NOTE: If you are using a private or customized perldl.conf
>   file, please be sure to update with these additional fields
>   as the perl Makefile.PL doesn't yet detect version skew
>   automatically.
>
>  * PDL::IO::Browser now builds in many cases (but not all).
>   If you try it, please let us know how it goes.  Just edit
>   the value of WITH_IO_BROWSER in your perldl.conf before
>   configuring the build (i.e., perl Makefile.PL).
>
>  * PDL::PP has seen some significant improvements including
>   code cleanup, improved documentation, and code refactoring
>   for comprehension.  There is a new PDL::PP::pp_line_numbers()
>   routine which enables line # traceback for errors and warnings
>   from PP code.
>
>  * Improved error output from the pdl2 shell via the new
>   CleanErrors plugin which filters out the non-PDL part
>   of the error output leading to *much* more concise and
>   helpful reports.
>
>  * The pdl() constructor now accepts a string argument which
>   allows for writing pdls using a matlab/octave style
>   syntax as well as cutting and pasting from interactive
>   session output to create pdls initializations for scripts
>   and program files.
>
>   The new constructor also allows for inf, nan, and bad to
>   generate the appropriate values (case insensitive), e.g.,
>
>   $bad = pdl q[1 2 3 bad 5 6];  # Set 4th element to bad value
>   $bad = pdl q[1 2 3 BAD 5 6];  # ditto
>   $bad = pdl q[1 2 inf bad 5];  # 3rd element is IEEE inf
>   $bad = pdl q[nan 2 inf -inf]; # 1st value is IEEE nan
>
>   This is new functionality so feedback and problem reports
>   are welcome.
>
>  * PDL::Image2D has new routines: pnpoly() to determine the points
>   in a polygon from the sequence of vertex coordinates, and
>   cc4compt() for 4-component labeling of a binary image.
>
>  * PDL now supports pdls larger than 2GiB.  The element count
>   is still an int type internally so the total number of elements
>   per-piddle must be less than 2**31.
>
>  * POSIX threads (pthreads) are supported for win32 and cygwin
>   platforms.  Pthreads are now available for all PDL platforms.
>
>  * New PDL::ParallelCPU module provides automatic distribution
>   of implicit thread loops across a number of processors.  Now
>   you can watch your PDL computations maximize the load on
>   *all* your processors.  See the docs for how to configure this
>   feature and how to adjust your calculations to best take
>   advantage of this feature.
>
>  * PDL::Graphics::PLplot now works with the latest release of the
>   PLplot library and has improved configuration and build
>   handling.  Feedback welcome.
>
>  * rcols() and wcols() now use the same convention for multi-column
>   input and output: dim0 is *always* the data dimension and
>   dim1 corresponds to the columns in the file.  This adjustment
>   makes them their inverse operations.
>
>  * The ADEV calculation in statsover has been corrected along
>   with the documentation.
>
>  * PDL::Graphics::TriD changes:
>    - PDL::Graphics::TriD now builds using the perl OpenGL
>          module (POGL) when configured on cygwin with the
>          interface=W32API option.  By default, POGL used
>          interface=GLX on cygwin which does software rendering
>          via Mesa/X11 (slower!).  If you reinstall POGL with
>          the W32API setting, you will need to rebuild PDL and
>          PDL::Graphics::TriD to pick up the new configuration.
>    - A new 4-line graphics demo contributed by Mark Baker has
>          been added to 'demo 3dgal'.  Take a look.
>
>  * Various enhancements to FITS handling, including:
>   - add map() fix for nonlinear FITS headers
>   - Enable hdrpcy() in rfits() for Rice-compressed images
>
>  * Test suite improvements to provide better diagnostics from
>   failures and to make tests more correct avoiding "false fails"
>   in the test reports.  Various tests have been migrated to use
>   File::Temp::tempdir and File::Temp::tempfile to improve the
>   robustness for temporary files and directories naming and
>   creation during tests.
>
>  * Update ExtUtils::MakeMaker required version to 6.31 to support
>   the new standard of INSTALL_BASE to configure for a local
>   perl/PDL module installation.
>
>  * Update Text::Balanced required version to 1.89.  This is the
>   version present in perl 5.8.0 (the minimum required for PDL)
>   so this change in requirement is not expected to affect any
>   PDL users.
>
>  * pdldoc now searches your PDLLIB path for PDL::AutoLoader docs
>   in addition to the pre-extracted documentation database.  This
>   makes pdldoc give the same output as the help command in the
>   PDL shells.
>
>  * Many updates and additions to the PDL documentation.
>
>  * Devel::CheckLib is being used in more places during the
>   PDL configuration stage.  We plan to make this the standard
>   baseline for dependency library detection going forwards.
>   The included copy of Devel::CheckLib has been updated to 0.95.
>
>  * A new unified implementation of barf()/warn() for PDL removes
>   code duplication.  barf() is now defined in both PDL::Core and
>   the PDL packages.  PDL::cluck is added as an analog of Carp::cluck
>   (as PDL::barf is an analog of Carp::confess).  barf() now
>   generates its stack trace by hooking into Carp::confess on
>   both the Perl and C sides.
>
>  * Various fixes for PDL::Transform
>   - fix inverse in perspective()
>   - fix t_cubic() parameter parsing
>   - fix handling of multiple PCi_j systems in the piddle header
>
>  * Added SIGPIPE handlers to cases where PDL uses pipes to/from
>   external processes (such as ffmpeg or some NetPBM image
>   converter programs).  This should make PDL "SIGPIPE safe" by not
>   exiting when a PDL piped IO output process quits (e.g., as when
>   called from within the perldl/pdl2 shell).
>
> _______________________________________________
> Perldl mailing list
> Perldl at jach.hawaii.edu
> http://mailman.jach.hawaii.edu/mailman/listinfo/perldl




More information about the Perldl mailing list