PDLPorters / PDLPorters/pdl

SF#411 relax reshape() constraints

Open
#217 2 comments 0 reactions 0 assignees View on GitHub

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.

https://sourceforge.net/p/pdl/bugs/411/

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.