[#9382] the sign of a number is omitted when squaring it. -2**2 vs (-2)**2 — <noreply@...>

Bugs item #6468, was opened at 2006-11-03 17:25

9 messages 2006/11/03

[#9385] merge YARV into Ruby — SASADA Koichi <ko1@...>

Hi,

42 messages 2006/11/04
[#9405] Re: merge YARV into Ruby — "Kirill Shutemov" <k.shutemov@...> 2006/11/06

On 11/4/06, SASADA Koichi <ko1@atdot.net> wrote:

[#9406] Re: merge YARV into Ruby — Sylvain Joyeux <sylvain.joyeux@...4x.org> 2006/11/06

On Monday 06 November 2006 16:01, Kirill Shutemov wrote:

[#9417] Re: merge YARV into Ruby — Sean Russell <ser@...> 2006/11/06

On Monday 06 November 2006 10:15, Sylvain Joyeux wrote:

[#9428] Re: merge YARV into Ruby — "Kirill Shutemov" <k.shutemov@...> 2006/11/06

On 11/6/06, Sean Russell <ser@germane-software.com> wrote:

[#9402] fast mutexes for 1.8? — MenTaLguY <mental@...>

Many people have been using Thread.critical for locking because Ruby

24 messages 2006/11/06

[#9450] Bikeshed: No more Symbol < String? — Kornelius Kalnbach <murphy@...>

Hi ruby-core!

21 messages 2006/11/07
[#9452] Re: Bikeshed: No more Symbol < String? — Yukihiro Matsumoto <matz@...> 2006/11/07

Hi,

[#9493] Future Plans for Ruby 1.8 Series — URABE Shyouhei <shyouhei@...>

This week Japanese rubyists were talking about the future of ruby_1_8

13 messages 2006/11/09

[#9515] External entropy pool for random number generator — "Kirill Shutemov" <k.shutemov@...>

In the attachment patch which allow to use external entropy pool for

13 messages 2006/11/11
[#9522] Re: External entropy pool for random number generator — "Nobuyoshi Nakada" <nobu@...> 2006/11/13

Hi,

[#9554] Ruby 1.[89].\d+ and beyond. — Hugh Sasse <hgs@...>

I've been thinking about how version numbers are restricting what we can do.

30 messages 2006/11/16
[#9561] Re: Ruby 1.[89].\d+ and beyond. — Eric Hodel <drbrain@...7.net> 2006/11/16

[#9563] Re: Ruby 1.[89].\d+ and beyond. — Hugh Sasse <hgs@...> 2006/11/16

On Fri, 17 Nov 2006, Eric Hodel wrote:

[#9564] Re: Ruby 1.[89].\d+ and beyond. — Eric Hodel <drbrain@...7.net> 2006/11/16

On Nov 16, 2006, at 12:02 PM, Hugh Sasse wrote:

[#9571] Re: Ruby 1.[89].\d+ and beyond. — "Robert Dober" <robert.dober@...> 2006/11/19

On 11/16/06, Eric Hodel <drbrain@segment7.net> wrote:

[#9604] #ancestors never includes the singleton class (inconsistent) — <noreply@...>

Bugs item #6820, was opened at 2006-11-22 08:49

12 messages 2006/11/22
[#9618] Re: [ ruby-Bugs-6820 ] #ancestors never includes the singleton class (inconsistent) — Yukihiro Matsumoto <matz@...> 2006/11/25

Hi,

[#9629] Re: [ ruby-Bugs-6820 ] #ancestors never includes the singleton class (inconsistent) — Sylvain Joyeux <sylvain.joyeux@...4x.org> 2006/11/27

> It is supposed to. Singleton classes (or eigenclasses, if you want to

Ruby 1.[89].\d+ and beyond.

From: Hugh Sasse <hgs@...>
Date: 2006-11-16 14:47:18 UTC
List: ruby-core #9554
I've been thinking about how version numbers are restricting what we can do.
We are having difficulties releasing 1.8.x because x can only be in [6789]
before we run out of numbers.  Similarly, 1.9 will be the upper limit of
the 1.y series.

In version.h, somewhere in the 1.6 series (I've only looked at the
highest _TEENY versions for each release) we got some more constants:

#define RUBY_VERSION_MAJOR 1
#define RUBY_VERSION_MINOR 6
#define RUBY_VERSION_TEENY 8
#define RUBY_RELEASE_YEAR 2002
#define RUBY_RELEASE_MONTH 12
#define RUBY_RELEASE_DAY 24

which don't get passed through version.c to the Ruby API as far as I
can see.  There seems to be no reason why 1.4.x, 1.3.x can't have
these added. I've not looked at 1.2.x and below.  We'd need some
functionality added to version.c to allow direct access to those
numbers.

I'd suggest the following strategy:

  * Add these constants with appropriate values in backports to 1.4.x,
    and 1.3.x if that was a stable release series.  I was not in the 
    Ruby community then.

  * Promote RUBY_VERSION to a built-in Version class.  Then we can
    mixin comparable, which goes back at least as far as 1.3.x, and
    this would make version checking more flexible.  We could permit
    comparisons with Strings, and possibly tweak String so comparisons
    the other way behave sensibly.  That would need some debate.

  * Do all the above in such a way that ..._MAJOR, _MINOR and _TEENY
    can go beyond 9. [1]

At this point we would be left with old code that uses string
comparisons to check versions.  If this were running against
(theoretically) newly released 1.6.9, 1.4.7, and 1.3.8 versions, it
would still work correctly.  It would only break when 1.8.10 and
beyond come out, so we have some time to hunt down and kill those
bugs.

Releasing 1.3.8, 1.4.7 and 1.6.9 would allow those reluctant to
upgrade _MINOR versions to cope with a new versioning system.

To reach this point, we need:

  * Matz to approve this; 

  * Someone to craft this version handling stuff in C as per
    README.EXT.  (I don't do enough of that for me to do it quickly.
    But I don't mind attempting this.)

Else, if Matz doesn't approve of this then I don't have any other
solution to suggest at the moment.

The pressures for more version numbers come from these areas that I
am aware of:

  * People still want more documentation, and improvements to
    documentation.  There is little reward for working on that if
    it won't get released to those using stable ruby (most people).

  * People are working on speed improvements that many are keen to see.

  * It would be helpful to developers to have more version numbers
    between now and Ruby 2.0 (Rite).  [All those scary decisions about
    continuations, etc, can be deliberated.]

Does the above seem reasonable?  Is it even sane :-) ?

        Hugh

[1] We'll take the "Spinal Tap" jokes as read.

In This Thread

Prev Next