[#70257] [Ruby trunk - Feature #11420] [Open] Introduce ID key table into MRI — ko1@...

Issue #11420 has been reported by Koichi Sasada.

11 messages 2015/08/06

[ruby-core:70276] [Ruby trunk - Bug #11406] Inconsistent behavior when creating a range of strings which end in an integer greater than 10

From: nobu@...
Date: 2015-08-09 03:36:17 UTC
List: ruby-core #70276
Issue #11406 has been updated by Nobuyoshi Nakada.


https://github.com/nobu/ruby/tree/bug/11406-String%23upto-numeric-suffix

----------------------------------------
Bug #11406: Inconsistent behavior when creating a range of strings which end in an integer greater than 10
https://bugs.ruby-lang.org/issues/11406#change-53699

* Author: Michael Martinez
* Status: Open
* Priority: Normal
* Assignee: 
* ruby -v: 2.2.2
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN
----------------------------------------
# Steps to Reproduce

In Ruby v2.2.2

1. Create a range of strings using 'foo1' up to 'foo9':

    ~~~ruby
    ('foo1'..'foo9').to_a
    => ["foo1", "foo2", "foo3", "foo4", "foo5", "foo6", "foo7", "foo8", "foo9"]
    ~~~

    Observe the results are as we expect

2. Create a range of strings using 'foo1' up to 'foo10'

    ~~~ruby
    ('foo1'..'foo10').to_a
    => ["foo1", "foo2","foo3","foo4","foo5", "foo6", "foo7", "foo8", "foo9", "fop0","fop1", "fop2", "fop3", "fop4", "fop5", "fop6", "fop7", "fop8", "fop9", "foq0", ....]
    ~~~
    Also:

    ~~~ruby
    ('foo1'..'foo10').to_a.size
    => 4707939
    ~~~

    Observe that the output loops `1..9` about 523104 times (arbitrarily?)

# Expected Results

The output in step 1 makes me expect for Ruby's range class to intelligently create ranges using a strings that include integers inside them. However this only seems to work for `1..9` ranges.

# Actual Results
Inconsistent behavior for range creation.


---Files--------------------------------
Screen Shot 2015-07-29 at 5.40.16 PM.png (54.4 KB)


-- 
https://bugs.ruby-lang.org/

In This Thread

Prev Next