SF#411 relax reshape() constraints
Nobody has claimed this yet.
- Dominant language
- Perl
- Stars
- 105
- Forks
- 49
- PR merge metrics
- No merged PRs in 30d
Description
@devel-chm writes:
To avoid a bug in the reshape() routine, it no longer will operate on a PDL with data flow active. This avoids an interaction between reshape() and its dimension mangling and mv() which can re-order dimensions in such a way that the reshape() implementation ends up indexing out of the piddle data. This was motivated by the fact that reshape() is mainly for turning a contiguous block of data into an equivalent multidimensional piddle and so applying it to a piddle with scrambled axis orders doesn't really make sense.
However, many uses of reshape() are essentially shorthand for a sequence of splitdim() operations and it would be nice if this were allowed. I'm opening this ticket as a reminder to address this following the coming PDL-2.015 release. As always, feedback and suggestions on bug fixes are welcome.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the reshape(), splitdim(), and mv() implementations and the interaction described in the issue. Determine how reshape() can safely operate with active data flow without indexing outside the piddle data, then verify that equivalent splitdim()-style uses work without regressing the existing safeguard.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- perl
- Domain
- data
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100