Bug 6798 – Integrate overloadings for multidimentional indexing and slicing

Status
RESOLVED
Resolution
FIXED
Severity
enhancement
Priority
P2
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2011-10-09T17:34:00Z
Last change time
2014-08-15T22:10:11Z
Keywords
patch
Assigned to
nobody
Creator
k.hara.pg

Comments

Comment #0 by k.hara.pg — 2011-10-09T17:34:56Z
The following replacement has been proposed by issue 3474. x[$-2, y[$-6, $-9], $-2] // is translated to // x.opIndex(x.opDollar!0 - 2, // y.opIndex(y.opDollar!0 - 6, y.opDollar!1 - 9), // x.opDollar!2 - 2) Similarly, I propose the following replacement for the overloading mixture of indexing and slicing. x[2..$, $-1, y[$-6, 0..$]] // is translated to // x.opIndex(x.opSlice!0(2, x.opDollar!0), // x.opDollar!1 - 1, // y.opIndex(y.opDollar!0 - 6, y.opSlice!1(0, y.opDollar!1))) And additionally, I propose to merge slicing into indexing. x[] // is translated to // x.opIndex() After all, the indexing and slicing getter will be translated to x.opIndex(...), and the setter will be translated to x.opIndexAssign(value, ...). And also, opSlice and opSliceAssign would be unnecessary.
Comment #1 by bearophile_hugs — 2011-10-09T19:55:28Z
So is this: y[$-6, 0..$:2] getting translated like this? y.opIndex(y.opDollar!0 - 6, y.opSlice!1(0, y.opDollar!1, 2)) Strides/steps are sometimes useful in numerics code.
Comment #2 by k.hara.pg — 2011-10-10T02:35:06Z
Posted pull request. https://github.com/D-Programming-Language/dmd/pull/443 (This does not contains stride syntax/overloading.)
Comment #3 by bearophile_hugs — 2011-10-13T13:02:20Z
There was a discussion thread about the idea of supporting a syntax like: y[$-6, 0..$:2] Don: http://www.digitalmars.com/webnews/newsgroups.php?art_group=digitalmars.D&article_id=146464 And in my opinion one of the last messages in that thread, by Robert Jacques, seals the topic. I think nice stride syntax will be useful for user-defined types: http://www.digitalmars.com/webnews/newsgroups.php?art_group=digitalmars.D&article_id=146533 Do you want me to open another enhancement request that asks just for the stride syntax?
Comment #4 by verylonglogin.reg — 2013-04-09T07:42:42Z
What is the state of this issue and the pull?
Comment #5 by hsteoh — 2014-08-15T22:10:11Z