[#12073] Re: Ruby is much slower on linux when compiled with --enable-pthread? — "M. Edward (Ed) Borasky" <znmeb@...>

-----BEGIN PGP SIGNED MESSAGE-----

9 messages 2007/09/04

[#12085] New array methods cycle, choice, shuffle (plus bug in cycle) — David Flanagan <david@...>

Four new methods have been added to Array the Ruby 1.9 trunk. I've got

81 messages 2007/09/06
[#18036] Re: New array methods cycle, choice, shuffle (plus bug in cycle) — Charles Oliver Nutter <charles.nutter@...> 2008/07/31

Restarting this thread because I missed it the first time around and

[#18037] Re: New array methods cycle, choice, shuffle (plus bug in cycle) — Yukihiro Matsumoto <matz@...> 2008/07/31

Hi,

[#18038] Re: New array methods cycle, choice, shuffle (plus bug in cycle) — "Gregory Brown" <gregory.t.brown@...> 2008/08/01

On Thu, Jul 31, 2008 at 7:50 PM, Yukihiro Matsumoto <matz@ruby-lang.org> wrote:

[#18046] Re: New array methods cycle, choice, shuffle (plus bug in cycle) — Michael Neumann <mneumann@...> 2008/08/01

Gregory Brown wrote:

[#18048] Re: New array methods cycle, choice, shuffle (plus bug in cycle) — Charles Oliver Nutter <charles.nutter@...> 2008/08/01

Michael Neumann wrote:

[#18051] Re: New array methods cycle, choice, shuffle (plus bug in cycle) — "David A. Black" <dblack@...> 2008/08/01

Hi --

[#18053] Re: New array methods cycle, choice, shuffle (plus bug in cycle) — "Wilson Bilkovich" <wilsonb@...> 2008/08/01

On 8/1/08, David A. Black <dblack@rubypal.com> wrote:

[#18074] Re: New array methods cycle, choice, shuffle (plus bug in cycle) — David Flanagan <david@...> 2008/08/01

Wilson Bilkovich wrote:

[#18080] Re: New array methods cycle, choice, shuffle (plus bug in cycle) — Yukihiro Matsumoto <matz@...> 2008/08/02

Hi,

[#18097] Re: New array methods cycle, choice, shuffle (plus bug in cycle) — "Pit Capitain" <pit.capitain@...> 2008/08/03

2008/8/2 Yukihiro Matsumoto <matz@ruby-lang.org>:

[#18040] Re: New array methods cycle, choice, shuffle (plus bug in cycle) — Jim Weirich <jim.weirich@...> 2008/08/01

On Jul 31, 2008, at 7:33 PM, Charles Oliver Nutter wrote:

[#18056] Re: New array methods cycle, choice, shuffle (plus bug in cycle) — Thomas Enebo <Thomas.Enebo@...> 2008/08/01

Jim Weirich wrote:

[#18059] Re: New array methods cycle, choice, shuffle (plus bug in cycle) — Jim Weirich <jim.weirich@...> 2008/08/01

On Aug 1, 2008, at 1:53 PM, Thomas Enebo wrote:

[#12096] Next 1.8.6 on Sept. 22 — Urabe Shyouhei <shyouhei@...>

Hi all.

28 messages 2007/09/09

[#12201] how about actors implemented in ruby-core itself — hemant <gethemant@...>

Hi,

12 messages 2007/09/20

[#12248] arbitrary Unicode characters in identifiers? — David Flanagan <david@...>

12 messages 2007/09/26

[#12284] gc.c -- possible logic error? — Hugh Sasse <hgs@...>

I've been looking at Tom Copeland's memory allocation problem:

36 messages 2007/09/28
[#12329] Re: gc.c -- possible logic error? — Tanaka Akira <akr@...> 2007/10/01

In article <Pine.GSO.4.64.0709281302390.26570@brains.eng.cse.dmu.ac.uk>,

[#12305] Will 1.8.6 remain compiled with VC6? — "Luis Lavena" <luislavena@...>

Hello Core developers.

29 messages 2007/09/30
[#12306] Re: Will 1.8.6 remain compiled with VC6? — "Austin Ziegler" <halostatue@...> 2007/09/30

On 9/30/07, Luis Lavena <luislavena@gmail.com> wrote:

Re: class variables and singleton classes

From: David Flanagan <david@...>
Date: 2007-09-20 17:49:49 UTC
List: ruby-core #12206
Eric,

I think this is just one manifestation of the fact that class variables 
are no longer shared between classes and subclasses. That is: I don't 
think the behavior you're seeing is specific to singletons.

Here's what I write about class variables and inheritance in the book 
I'm working on.  These particular paragraphs have not been through 
technical review, but I think I've got it right.  (Also note that the 
info on eigenclass.org about class variables is out-of-date and the code 
snippets there no longer do what they are said to do:

--- begin book excerpt ---

       <para>
	Class variables are inherited by subclasses.  If a class
	<literal>A</literal> defines a variables <literal>@@a</literal>,
	then a subclass <literal>B</literal> can use that variable.
       </para>

       <para>
	In Ruby 1.9 and later, class variables behave like constants.
	That is, when a subclass assigns a new value to a class variable
	defined by a superclass, it is simply creating a new class
	variable in the subclass, and it does not affect the
	superclass's copy of the variable.
       </para>

       <para>
	In Ruby 1.8 and earlier, however, class variables are actually
	shared between classes and their subclasses. If a subclass
	assigns a value to a class variable already in use by a
	superclass, it alters the value seen by the superclass.  The
	mere presence of the subclass can alter the behavior of any
	class methods in the superclass that use the class
	variable. This is a strong argument for the use of class
	instance variables instead of class variables.
       </para>

       <para>
	The following code illustrates the differences between versions
	of Ruby.  It outputs "123" in Ruby 1.8 and outputs "111" in Ruby
         1.9:
       </para>

<programlisting><![CDATA[
class A
   @@value = 1                   # class variable
   def A.value; @@value; end     # class variable accessor method
end
print A.value                   # display value of A's class variable
class B < A; @@value = 2; end   # subclass defines class variable
print A.value                   # display value of A's class variable
class C < A; @@value = 3; end   # another subclass defines class variable
print A.value                   # display value of A's class variable
]]></programlisting>

--- end book excerpt --

	David


Eric Hodel wrote:
> Class variables in singleton classes are separate from class variables 
> in classes in 1.9 now.  Is this on purpose?
> 
> $ cat class_variables.rb
> module X
>   @@cv1 = nil
> 
>   class << self
>     def cv1() @@cv1 ||= 'cv1' end
>   end
> 
>   def self.cv1=(obj) @@cv1 = obj end
> 
>   @@cv2 = nil
> 
>   def self.cv2() @@cv2 ||= 'cv2' end
>   def self.cv2=(obj) @@cv2 = obj end
> end
> 
> p X.cv1
> X.cv1 = 'new1'
> p X.cv1
> 
> p X.cv2
> X.cv2 = 'new2'
> p X.cv2
> 
> $ ruby18 -v class_variables.rb
> ruby 1.8.6 (2007-06-30 patchlevel 5000) [i686-darwin8.10.1]
> "cv1"
> "new1"
> "cv2"
> "new2"
> $ ruby19 -v class_variables.rb
> ruby 1.9.0 (2007-09-15 patchlevel 0) [i686-darwin8.10.1]
> syck.so: warning: method redefined; discarding old value
> "cv1"
> "cv1"
> "cv2"
> "new2"
> 
> -- 
> Poor workers blame their tools. Good workers build better tools. The
> best workers get their tools to do the work for them. -- Syndicate Wars
> 
> 
> 


In This Thread