I took a further look at the SvGROW calls in
PDL/Basic/Core routines and the two that I found
both use int type for their sizes.  That would
limit a piddle size to <2**31 or about 2GB.

It looks like 64bit support for PDL may need
to be added to the list for the future.  I don't
know the scope of the changes that would be
required to support larger PDL data objects.

--Chris

On 8/3/2010 8:39 PM, Chris Marshall wrote:
> On 8/3/2010 8:30 PM, P Kishor wrote:
>> On Tue, Aug 3, 2010 at 7:19 PM, Chris Marshall<[email protected]>   wrote:
>>> On 8/3/2010 8:01 PM, P Kishor wrote:
>>>>
>>>> also on 64-bit Snow Leopard (Mac OS X 10.6.4)
>>>>
>>>> punk...@lucknow ~$ perl -MPDL -e '$PDL::BIGPDL=1; $x = sequence(float,
>>>> 23171, 23171); print $x->info("%M")."\n"'
>>>> perl(85899) malloc: *** mmap(size=18446744071562166272) failed (error
>>>> code=12)
>>>> *** error: can't allocate region
>>>> *** set a breakpoint in malloc_error_break to debug
>>>> Out of memory!
>>>> punk...@lucknow ~$
>>>
>>> What is perl -V?
>
> I looked at the PDL/Basic/Core stuff and it looks like
> if SvGROW can handle a>2GB string then, in principle,
> PDL should be able to handle piddles of that size.
>
> Could you see if you can create a string more than 2GB
> long?  It might take a while but it will tell us if the
> limit is perl or PDL.  Since the PDL routines for growing
> a new piddle use 4byte ints for their sizes (rather than
> size_t objects), it is pretty clear that there is a bug
> in the PDL allocation stuff if perl can handle the longer
> strings.
>
> --Chris

_______________________________________________
Perldl mailing list
[email protected]
http://mailman.jach.hawaii.edu/mailman/listinfo/perldl

Reply via email to