[#11890] Ruby and Solaris door library — "Hiro Asari" <asari.ruby@...>

Hi, there. This is my first patch against ruby. I think I followed

19 messages 2007/08/13
[#11892] Re: Ruby and Solaris door library — Daniel Berger <djberg96@...> 2007/08/14

Hiro Asari wrote:

[#11899] pack/unpack 64bit Integers — Hadmut Danisch <hadmut@...>

Hi,

13 messages 2007/08/14
[#11903] Re: pack/unpack 64bit Integers — Brian Candler <B.Candler@...> 2007/08/15

On Wed, Aug 15, 2007 at 06:50:01AM +0900, Hadmut Danisch wrote:

[#11948] Fibers in Ruby 1.9? — David Flanagan <david@...>

I just noticed that my ruby1.9 build of August 17th includes a Fiber

22 messages 2007/08/22
[#11949] Re: Fibers in Ruby 1.9? — Daniel Berger <djberg96@...> 2007/08/22

David Flanagan wrote:

[#11950] Re: Fibers in Ruby 1.9? — "Francis Cianfrocca" <garbagecat10@...> 2007/08/22

On 8/22/07, Daniel Berger <djberg96@gmail.com> wrote:

[#11952] Re: Fibers in Ruby 1.9? — MenTaLguY <mental@...> 2007/08/22

On Wed, 22 Aug 2007 20:50:12 +0900, "Francis Cianfrocca" <garbagecat10@gmail.com> wrote:

[#11988] String#length not working properly in Ruby 1.9 — "Vincent Isambart" <vincent.isambart@...>

I saw that Matz just merged his M17N implementation in the trunk.

17 messages 2007/08/25
[#11991] Re: String#length not working properly in Ruby 1.9 — "Michael Neumann" <mneumann@...> 2007/08/25

On Sat, 25 Aug 2007 10:54:20 +0200, Yukihiro Matsumoto

[#11992] Re: String#length not working properly in Ruby 1.9 — Yukihiro Matsumoto <matz@...> 2007/08/25

Hi,

[#12042] Encodings of string literals; explicit codepoint escapes? — David Flanagan <david@...>

This message contains queries that probably only Matz can answer:

16 messages 2007/08/31
[#12043] Re: Encodings of string literals; explicit codepoint escapes? — Yukihiro Matsumoto <matz@...> 2007/08/31

Hi,

Behavior of local_variables in Ruby 1.8 vs 1.9

From: Charles Oliver Nutter <charles.nutter@...>
Date: 2007-08-13 07:41:12 UTC
List: ruby-core #11891
Witness:

Ruby 1.8.6:
$ ruby -e "p local_variables; a = 1; p local_variables; b = 1; p 
local_variables"
["a", "b"]
["a", "b"]
["a", "b"]
$ ruby -e "proc { p local_variables; a = 1; p local_variables; b = 1; p 
local_variables }.call"
[]
["a"]
["b", "a"]

Ruby 1.9:
$ ruby1.9/ruby -e "proc { p local_variables; a = 1; p local_variables; b 
= 1; p local_variables }.call"
["a", "b"]
["a", "b"]
["a", "b"]
$ ruby1.9/ruby -e "p local_variables; a = 1; p local_variables; b = 1; p 
local_variables"
["a", "b"]
["a", "b"]
["a", "b"]

Now I presume the 1.8 behavior is due to block-local variables being 
managed in a dictionary, rather than by a static scoping structure as in 
Ruby 1.9. I prefer the 1.9 behavior here.

JRuby manages variables like 1.9, in static scoping structures, but up 
to now we have emulated the 1.8 behavior for local_variables within a 
block. However this requires that for all block-local variables, we have 
checks on every access to ensure that "nil" is returned for unassigned 
variables. This is overhead I'd like to eliminate by filling all 
variables with nil to begin with, but that would prevent us from knowing 
which variables to show in local_variables, since they're technically 
all initialized to nil.

I believe that the 1.8 behavior is largely just a side-effect. If it 
could be regarded as such, it would be reasonable for other Ruby 1.8 
implementations to omit the behavior and have local_variables act the 
same everywhere, as in Ruby 1.9.

Matz, do you consider the 1.8 behavior correct or the 1.9 behavior 
correct? Would you consider the 1.8 behavior a feature that should be 
emulated in other implementations of 1.8?

- Charlie

In This Thread

Prev Next