[#1378] differences between Module and Class ? — Mathieu Bouchard <matju@...>

25 messages 2003/08/11
[#1387] Re: differences between Module and Class ? — matz@... (Yukihiro Matsumoto) 2003/08/12

Hi,

[#1442] Re: differences between Module and Class ? — Mathieu Bouchard <matju@...> 2003/08/21

[#1406] _id2ref bug? — Ryan Pavlik <rpav@...>

While debugging some caching code, I've come across a segfault related

22 messages 2003/08/14
[#1407] Re: _id2ref bug? — matz@... (Yukihiro Matsumoto) 2003/08/14

Hi,

[#1413] Re: _id2ref bug? (REPRODUCED, short) — Ryan Pavlik <rpav@...> 2003/08/14

On Fri, 15 Aug 2003 01:57:18 +0900

Re: proc/block with return

From: dblack@...
Date: 2003-08-13 00:41:32 UTC
List: ruby-core #1392
Hi --

On Tue, 12 Aug 2003, Mathieu Bouchard wrote:

>
> On Tue, 12 Aug 2003, Mathieu Bouchard wrote:
>
> > it seems that the semantics of return inside of a proc/block have changed
> > in subtle ways, but I can't really figure out what's going on.
> > [...]
> > But I will please need some help to figure out the consequences of the
> > above log entry. I would like examples of how ruby 1.8 is different from
> > 1.6, and what are similarly constructed cases that are _not_ different
> > from 1.6, so that I can have a precise idea of the change.
>
> Actually I've found one difference which is especially troublesome:
>
> irb(main):001:0> def f(&b) b.call; end; def g; f{return 42}+1; end; g
> => 43
> irb(main):002:0> def f; yield; end; def g; f{return 42}+1; end; g
> => 42

This seems to behave the same way in 1.6.8:

  irb(main):001:0> VERSION
  => "1.6.8"
  irb(main):002:0>  def f(&b) b.call; end; def g; f{return 42}+1; end; g
  => 43
  irb(main):003:0> def f; yield; end; def g; f{return 42}+1; end; g
  => 42

(which isn't about its possible undesireability, just about the
history)


David

-- 
David Alan Black
home: dblack@superlink.net
work: blackdav@shu.edu
Web:  http://pirate.shu.edu/~blackdav


In This Thread