[#14696] Inconsistency in rescuability of "return" — Charles Oliver Nutter <charles.nutter@...>

Why can you not rescue return, break, etc when they are within

21 messages 2008/01/02

[#14738] Enumerable#zip Needs Love — James Gray <james@...>

The community has been building a Ruby 1.9 compatibility tip list on =20

15 messages 2008/01/03
[#14755] Re: Enumerable#zip Needs Love — Martin Duerst <duerst@...> 2008/01/04

Hello James,

[#14772] Manual Memory Management — Pramukta Kumar <prak@...>

I was thinking it would be nice to be able to free large objects at

36 messages 2008/01/04
[#14788] Re: Manual Memory Management — Marcin Raczkowski <mailing.mr@...> 2008/01/05

I would only like to add that RMgick for example provides free method to

[#14824] Re: Manual Memory Management — MenTaLguY <mental@...> 2008/01/07

On Sat, 5 Jan 2008 15:49:30 +0900, Marcin Raczkowski <mailing.mr@gmail.com> wrote:

[#14825] Re: Manual Memory Management — "Evan Weaver" <evan@...> 2008/01/07

Python supports 'del reference', which decrements the reference

[#14838] Re: Manual Memory Management — Marcin Raczkowski <mailing.mr@...> 2008/01/08

Evan Weaver wrote:

[#14911] Draft of some pages about encoding in Ruby 1.9 — Dave Thomas <dave@...>

Folks:

24 messages 2008/01/10

[#14976] nil encoding as synonym for binary encoding — David Flanagan <david@...>

The following just appeared in the ChangeLog

37 messages 2008/01/11
[#14977] Re: nil encoding as synonym for binary encoding — Yukihiro Matsumoto <matz@...> 2008/01/11

Hi,

[#14978] Re: nil encoding as synonym for binary encoding — Dave Thomas <dave@...> 2008/01/11

[#14979] Re: nil encoding as synonym for binary encoding — David Flanagan <david@...> 2008/01/11

Dave Thomas wrote:

[#14993] Re: nil encoding as synonym for binary encoding — Dave Thomas <dave@...> 2008/01/11

[#14980] Re: nil encoding as synonym for binary encoding — Gary Wright <gwtmp01@...> 2008/01/11

[#14981] Re: nil encoding as synonym for binary encoding — Yukihiro Matsumoto <matz@...> 2008/01/11

Hi,

[#14995] Re: nil encoding as synonym for binary encoding — David Flanagan <david@...> 2008/01/11

Yukihiro Matsumoto writes:

[#15050] how to "borrow" the RDoc::RubyParser and HTMLGenerator — Phlip <phlip2005@...>

Core Rubies:

17 messages 2008/01/13
[#15060] Re: how to "borrow" the RDoc::RubyParser and HTMLGenerator — Eric Hodel <drbrain@...7.net> 2008/01/14

On Jan 13, 2008, at 08:54 AM, Phlip wrote:

[#15062] Re: how to "borrow" the RDoc::RubyParser and HTMLGenerator — Phlip <phlip2005@...> 2008/01/14

Eric Hodel wrote:

[#15073] Re: how to "borrow" the RDoc::RubyParser and HTMLGenerator — Eric Hodel <drbrain@...7.net> 2008/01/14

On Jan 13, 2008, at 20:35 PM, Phlip wrote:

[#15185] Friendlier methods to compare two Time objects — "Jim Cropcho" <jim.cropcho@...>

Hello,

10 messages 2008/01/22

[#15194] Can large scale projects be successful implemented around a dynamic programming language? — Jordi <mumismo@...>

A good article I have found (may have been linked by slashdot, don't know)

8 messages 2008/01/24

[#15248] Symbol#empty? ? — "David A. Black" <dblack@...>

Hi --

24 messages 2008/01/28
[#15250] Re: Symbol#empty? ? — Yukihiro Matsumoto <matz@...> 2008/01/28

Hi,

Re: RCR allow indexing last n items

From: "Michal Suchanek" <hramrach@...>
Date: 2008-01-01 11:27:20 UTC
List: ruby-core #14665
On 31/12/2007, David A. Black <dblack@rubypal.com> wrote:
> Hi --
>
> On Mon, 31 Dec 2007, Michal Suchanek wrote:
>
> > On 31/12/2007, David A. Black <dblack@rubypal.com> wrote:
> >> I think it's a matter of defining what it means to start taking a
> >> substring at a non-existent point. As it now stands, you can never do
> >> that, whether the way you reach that non-existent point is with a
> >> positive or negative index:
> >>
> >>>> str = "abc"
> >> => "abc"
> >>>> str[4..10]
> >> => nil
> >>>> str[-4..-1]
> >> => nil
> >>
> >> Starting at a non-existent point is not the same as *stopping* at that
> >> point. In other words, this is meaningful:
> >>
> >>>> str[0..10]
> >> => "abc"
> >>
> >> because you're starting in the string, at a defined point, and going
> >> as far as you can. The problem with str[-4..-1] is not how far it
> >> goes, but the fact that it doesn't start in the string. At least,
> >> that's what makes it feel to me like it's not just the mirror case of
> >> the positive one.
> >
> > It's just a matter of point of view. You advocate the point of the
> > string implementation which always counts from the start of the string
> > but I am advocating the view from the interface side that pretends to
> > count from the end. And that's what the people using ruby see.
>
> I don't mean the start of the string; I mean the starting index, into
> the string, of the first character you want. If it's -10 on a
> 3-character string, then it's an index that's out of range.
>
> I guess you could look at it by saying there's no starting point;
> there's just n characters, with leading or trailing non-existent ones
> chopped off. I'm just not sure I like the semantics of having str[-10]
> be nil, but str[-10..anything] being a string.
>
no, it's not -10..anything, it's -10..anything as long as it defines a
part of the string.

Let me explain on a higher level:

a..b defines can be interpreted as an interval

* when used fo indexing a collection the collection length is added to
any negative border

In terms of intervals the collection is present inside interval 0...n

The rules for indexing are as follows:

* if a is not in 0...n return nil
* if a>b return ""
* return intersection of 0..n and a..b

This mans that there might be an intersection but the rules are
defined in different terms and would not return it. I propose to chnge
the rules to

* if a>b return ""
* if there is no intersection return nil
* return intersection of a..b and 0..n

Of course, this is the minimal change. It only allows returning
intersections that vere previously invalid because a was outside 0..n
(a < 0) but does preserve the old semantic as much as possible.

There is another semantic that is somewhat weird: if the interval is
invalid (a>b) the returned value is "" but when a is outside 0..n the
return value is nil. In some cases both is true but only one of the
values can be returned.

Thanks

Michal

In This Thread