[#393742] Getting the class of an object. — Ralph Shnelvar <ralphs@...32.com>

Consider;

14 messages 2012/03/06

[#393815] arcadia IDE requires tcl/tk and ruby-tk — Thufir Hawat <hawat.thufir@...>

which or where tcl and tk does arcadia require? Is this a gem which I

13 messages 2012/03/13

[#393952] What’s the best way to check if a feature/class has been loaded? — Nikolai Weibull <now@...>

Hi!

18 messages 2012/03/21
[#393953] Re: What’s the best way to check if a feature/class has been loaded? — Xavier Noria <fxn@...> 2012/03/21

Active Support has recently added qualified_const_* methods to Module

[#393954] Re: What’s the best way to check if a feature/class has been loaded? — Xavier Noria <fxn@...> 2012/03/21

Ah, that won't work in 1.8.

[#393959] Re: What’s the best way to check if a feature/class has been loaded? — Nikolai Weibull <now@...> 2012/03/21

On Wed, Mar 21, 2012 at 16:43, Xavier Noria <fxn@hashref.com> wrote:

[#393960] Re: What’s the best way to check if a feature/class has been loaded? — Xavier Noria <fxn@...> 2012/03/21

On Wed, Mar 21, 2012 at 8:17 PM, Nikolai Weibull <now@bitwi.se> wrote:

[#393961] Re: What’s the best way to check if a feature/class has been loaded? — Nikolai Weibull <now@...> 2012/03/21

On Wed, Mar 21, 2012 at 20:48, Xavier Noria <fxn@hashref.com> wrote:

[#393962] Re: What’s the best way to check if a feature/class has been loaded? — Xavier Noria <fxn@...> 2012/03/21

On Wed, Mar 21, 2012 at 9:51 PM, Nikolai Weibull <now@bitwi.se> wrote:

[#393967] Re: What’s the best way to check if a feature/class has been loaded? — Nikolai Weibull <now@...> 2012/03/22

On Wed, Mar 21, 2012 at 22:11, Xavier Noria <fxn@hashref.com> wrote:

[#393969] Re: What’s the best way to check if a feature/class has been loaded? — Xavier Noria <fxn@...> 2012/03/22

On Thu, Mar 22, 2012 at 6:15 AM, Nikolai Weibull <now@bitwi.se> wrote:

[#394154] uninitialized constant SOCKSSocket — Resident Moron <lists@...>

I am running ruby 1.9.3 on a linux box. I would like to use

10 messages 2012/03/29

[#394160] Why z = Complex(1,2) rather than z = Complex.new(1,2)? — Ori Ben-Dor <lists@...>

What's this syntax, z = Complex(1,2), as opposed to z =

14 messages 2012/03/29

[#394175] shoes no such file to load -- rubygems — Mr theperson <lists@...>

I have installed shoes to develop GUI applications but when I try and

13 messages 2012/03/29

[#394201] Can't open url with a subdomain with an underscore — Jeroen van Ingen <lists@...>

I try to open the following URL: http://auto_diversen.marktplaza.nl/

10 messages 2012/03/30

[#394222] Ruby openssl ECC help plz — no name <lists@...>

I am confused on how to properly export public ECC key. I can see it

13 messages 2012/03/31

Re: Specification for the Ruby Language(current)

From: Brian Candler <lists@...>
Date: 2012-03-24 15:59:07 UTC
List: ruby-talk #394034
Tony Arcieri wrote in post #1053038:
> My understanding is the existing formal written language specification
> covers both Ruby 1.8 and Ruby 1.9, and in doing so is often too generic
> as
> to be useful in order to cover both cases. That is to say, where 1.8 and
> 1.9 differ, the written spec says something that is inclusive of both,

I'd say this is clearly documenting 1.8. For example:

"15.2.10.5.2 String#+
+( other )
Visibility: public
Behavior:
a) If other is not an instance of the class String, the behavior is
unspecified.
b) Let S and O be the contents of the receiver and the other
respectively.
c) Return a new direct instance of the class String the content of which
is the concatenation of S and O."

If only Strings could be described so succinctly in ruby 1.9. That spec
clearly says that String#+(other) is defined for all strings S and O,
and that's not the case in ruby 1.9.

Since there is no official documentation I had a go at understanding
ruby 1.9 String a couple of years ago - I got as far as
reverse-engineering about 200 different behaviours, many of them
arbitrary,  and then gave up.
<http://github.com/candlerb/string19/blob/master/string19.rb>

In any sane programming language, I think you should be able to describe
in one or two sentences things like "when are two strings equal?" or
"given that a and b are Strings, when does a + b raise an exception?"
Probably the only accurate way to document 1.9 is to say "the behaviour
of String is whatever it does in MRI ruby 1.9.XpY - go read the source
code".

But I also agree with you that the spec document is "too generic to be
useful". For example, there are programs which rely on the "undefined"
behaviour for String + non-String in ruby 1.8:

>> class Foo; def to_str; "GOTCHA"; end; end
=> nil
>> f = Foo.new
=> #<Foo:0x10cc6c458>
>> "hello" + f
=> "helloGOTCHA"

So any other ruby implementation written in conformance with the spec
but which behaved differently would not be compatible. Hence the spec is
actually pretty useless; it merely defines a family of "ruby-like
languages"

Furthermore, any attempt to form a language spec based on ruby 1.8, when
the core ruby team have clearly said that they are abandoning 1.8 in
favour of 1.9, can only have two outcomes:

(1) the spec becomes irrelevant, as there are no implementations which
conform to it; or

(2) ruby will fork into two sets of implementations, those based on 1.8
and those based on 1.9 (*)

Personally I would prefer (2) because then I continue to have a
ruby-like language I can work with. But then to avoid confusion it needs
to be called something other than "ruby".

It's been a while since I heard anything about the cut-down "rite"...
maybe that's the language to standardise and specify, and leave 1.9 in
its murk.

Regards,

Brian.

(*) Yes, jruby does both.

-- 
Posted via http://www.ruby-forum.com/.

In This Thread

Prev Next