I've run into a dataflow/slice crash in perl/PDL-2.007_02
for large piddles (>2GiB in size). Here is a program that
reproduces the crash for me on cygwin64 perl and on
SPP. Both on the same win7 system.
The failure seems to be related to dataflow and slice
but I really don't know enough about this affine slice
stuff and dataflow implementation to even start to
guess where to look. :-(
If you have a PDL-2.007_02 install and >4GiB of RAM,
I would appreciate if you would see if you can
reproduce the problem and to determine if it is
specific to windows somehow.
--Chris
~~~~~~
use PDL;
use PDL::NiceSlice;
$PDL::BIGPDL = 1; # maybe this should be the default
$recs = ones(byte,3149824,998);
print "\$recs(:,900)->sum is ", $recs(:,900)->sum, "\n";
$ufr = $recs(29:-4068); # After this...perl crashes
print "\$ufr(:,900)->sum is ", $ufr(:,900)->sum, "\n";
~~~~~
Given the plan to release PDL 2.014 with 64bit index support,
this is a priority bug for that release.
Last edit: Chris Marshall 2015-09-27
Since the failure happens when the operation crosses the 2**31 boundary, it is likely something in the code that is an int and needs to be PDL_Indx type.
Here is a simpler piece of code showing the problem which may be easier to debug:
It is not specific to Windows. For your simpler example I get a "Segmentation fault: 11" on my Mac running PDL 2.00716.
I bet it’s an int deep in the trans magic. That’s where I’ll start looking.
Related
Bugs:
#400Fixed in git master and will appear in the next PDL CPAN release.