[#1711] Re: open-uri patch, added progress_proc hook — "T. Onoma" <transami@...>

Tanaka Akira:

22 messages 2003/11/19
[#1737] Re: open-uri patch, added progress_proc hook — Mathieu Bouchard <matju@...> 2003/11/23

[#1739] Re: open-uri patch, added progress_proc hook — Mathieu Bouchard <matju@...> 2003/11/23

[#1740] Re: open-uri patch, added progress_proc hook — "T. Onoma" <transami@...> 2003/11/23

On Sunday 23 November 2003 08:26 pm, Mathieu Bouchard wrote:

[#1741] Re: open-uri patch, added progress_proc hook — Mathieu Bouchard <matju@...> 2003/11/23

[#1718] Re: open-uri patch, added progress_proc hook — Elliott Hughes <ehughes@...>

22 messages 2003/11/21
[#1722] Re: open-uri patch, added progress_proc hook — Tanaka Akira <akr@...17n.org> 2003/11/22

In article <AD4480A509455343AEFACCC231BA850F17C434@ukexchange>,

[#1724] Re: open-uri patch, added progress_proc hook — "T. Onoma" <transami@...> 2003/11/22

On Saturday 22 November 2003 04:34 pm, Tanaka Akira wrote:

[#1726] Re: open-uri patch, added progress_proc hook — Tanaka Akira <akr@...17n.org> 2003/11/23

In article <200311221024.05642.transami@runbox.com>,

[#1731] Re: open-uri patch, added progress_proc hook — "T. Onoma" <transami@...> 2003/11/23

On Sunday 23 November 2003 02:24 am, Tanaka Akira wrote:

[#1732] Re: open-uri patch, added progress_proc hook — Tanaka Akira <akr@...17n.org> 2003/11/23

In article <200311230325.21687.transami@runbox.com>,

[#1733] Re: open-uri patch, added progress_proc hook — "T. Onoma" <transami@...> 2003/11/23

On Sunday 23 November 2003 03:10 pm, Tanaka Akira wrote:

[#1750] Re: open-uri patch, added progress_proc hook — Tanaka Akira <akr@...17n.org> 2003/11/24

In article <200311230648.41003.transami@runbox.com>,

[#1759] Re: open-uri patch, added progress_proc hook — Sean E Russell <ser@...> 2003/11/24

On Monday 24 November 2003 03:19, Tanaka Akira wrote:

[#1762] Re: open-uri patch, added progress_proc hook — "Nathaniel Talbott" <nathaniel@...> 2003/11/24

Sean E Russell [mailto:ser@germane-software.com] wrote:

[#1753] gc_sweep under 1.8 ... not syck.so — Richard Kilmer <rich@...>

We still encountered a gc_sweep in our use of Ruby 1.8 on Linux (v8).

16 messages 2003/11/24
[#1754] Re: gc_sweep under 1.8 ... not syck.so — ts <decoux@...> 2003/11/24

>>>>> "R" == Richard Kilmer <rich@infoether.com> writes:

[#1757] Re: gc_sweep under 1.8 ... not syck.so — Richard Kilmer <rich@...> 2003/11/24

Yes, there are several (Ruby) threads working during this gc_sweep.

[#1758] Re: gc_sweep under 1.8 ... not syck.so — ts <decoux@...> 2003/11/24

>>>>> "R" == Richard Kilmer <rich@infoether.com> writes:

[#1763] Re: gc_sweep under 1.8 ... not syck.so — Richard Kilmer <rich@...> 2003/11/24

of course this effects 300 machines ;-)

[#1755] Re: Controlled block variables — Jamis Buck <jgb3@...>

On Mon, 2003-11-24 at 02:04, T. Onoma wrote:

26 messages 2003/11/24
[#1756] Re: Controlled block variables — "T. Onoma" <transami@...> 2003/11/24

On Monday 24 November 2003 05:22 pm, Jamis Buck wrote:

[#1760] Re: Controlled block variables — Sean E Russell <ser@...> 2003/11/24

On Monday 24 November 2003 11:51, T. Onoma wrote:

[#1761] Re: Controlled block variables — "T. Onoma" <transami@...> 2003/11/24

On Monday 24 November 2003 06:40 pm, Sean E Russell wrote:

Re: open-uri patch, added progress_proc hook

From: "T. Onoma" <transami@...>
Date: 2003-11-23 20:07:54 UTC
List: ruby-core #1740
On Sunday 23 November 2003 08:26 pm, Mathieu Bouchard wrote:
> Actually, looking at http://www.rubygarden.org/ruby?Rite, I can only see a
> change in the opposite direction, block locals, and although I can't
> justify that change either, at least it doesn't have as much of a
> compatibility issue.
>
> What confuses me most in all of this is, why the change towards a flat
> local space isn't included in Matz' list, and why an opposite idea is
> included in Matz' list. I also feel that the item in matz' list is not
> completely clear, and suspect that I don't really understand it.
>

Lets clear this up, b/c i've read that too, and became very confused for a 
while. I do not believe that page has a proper explination and makes you 
think that the blocks are somehow fully isolated, but they are not. So...

Here is the current behavior:

  a = [1,2,3]
  i = nil
  a.each { |x| i = x + i.to_i }
  p "#{i}"  # => "6"

The i = nil is required prior to the block in order for i to "persist" in the 
outer scope as it passes through the inner scope of the block. Without it the 
last statement would produce:

  p "#{i}"  # => ""

Now the newly proposed behavior would allow us to remove the i = nil.

  a = [1,2,3]
  a.each { |x| i = x + i.to_i }
  p "#{i}"  # => "6"

So i exists at both levels.

Basically what is happening is that blocks no longer represent divisions of 
scope. Those barriers are now only on def, class, module, and the TOPLEVEL.  
So we are loosing a mechinism of inner scoping, albiet a limted one.

This WILL brake code. Consider:

  a = [1,2,3]
  a.each { |x| i = x + i.to_i }
  p "#{i}"  # => "6"

  a = [1,2,3]
  a.each { |x| i = x + i.to_i }
  p "#{i}"  # => "12"  # => Doh! It's not 6 anymore!

If all Matz wants to do is get rid of the "silly" i=nil, so the code looks 
cleaner then he should try something like:

  a = [1,2,3]
  a.each { i |x| i = x + i.to_i }
  p "#{i}"  # => "6"

See the difference? And no "back" breaking. But maybe he's after something 
else. I don't know.

-t0


In This Thread