REBOL3 tracker
  0.9.12 beta
Ticket #0002117 User: anonymous

Project:



rss
TypeIssue Statusreviewed Date27-Feb-2014 23:44
Versionr3 master CategoryUnspecified Submitted byabolka
PlatformAll Severityminor Prioritynormal

Summary [Epic] The Great Indexing Compromise
Description Rebol 2, Rebol 3, and Red currently all use slightly differing indexing models -- the stuff that underlies how path-based indexing, pick, poke, index? work.

Under much sweat and tears, this issue was intensely and extensively debated on the REBOL4 AltME world during Nov 2012. Without trying to summarise or even repeat the argument here, none of the two prominent positions could reach convincing consensus. But behold: many participants sensed eventually, that a compromise was reached.

This is a meta-issue to summarise and track the steps toward that compromise.

The corner stones of this compromise:

1. Non-contiguous ordinal indexing ("1-based") with zero hole for paths, pick, poke, index? ("like R2").

2. Contiguous offset indexing ("0-based") with pickz, pokez, indexz? (to be newly introduced). Details in #613.

3. "Backwards" ordinal accessors: first-back, second-back, third-back. Details in #1983.

4. Errors upon falling into the zero hole: so `pick [] 0` would cause an error (and _not_ silently return NONE as in R2).
Example code

			

Assigned ton/a Fixed in- Last Update5-Mar-2014 19:37


Comments
(0004274)
BrianH
27-Feb-2014 23:53

Note: The bounds checking changes introduced in Rebol 3 (first "" == none rather than triggering an error) are pointedly not part of this compromise. If we need to tweak those, that's a separate debate that hasn't happened yet (though Ladislav and I discussed some ideas a while ago, to no conclusion yet). This is just about the overall indexing model(s).

Date User Field Action Change
5-Mar-2014 19:37 BrianH Summary Modified The Great Indexing Compromise => [Epic] The Great Indexing Compromise
4-Mar-2014 02:59 BrianH Status Modified submitted => reviewed
27-Feb-2014 23:53 BrianH Comment : 0004274 Added -
27-Feb-2014 23:45 abolka Description Modified -
27-Feb-2014 23:44 abolka Ticket Added -