[#9869] a block argument within a block which argument has the same name leaks — <noreply@...>

Bugs item #7680, was opened at 2007-01-08 22:53

34 messages 2007/01/08
[#9871] Re: [ ruby-Bugs-7680 ] a block argument within a block which argument has the same name leaks — Yukihiro Matsumoto <matz@...> 2007/01/08

Hi,

[#9872] Re: [ ruby-Bugs-7680 ] a block argument within a block which argument has the same name leaks — Evan Webb <evan@...> 2007/01/08

On Jan 8, 2007, at 2:30 PM, Yukihiro Matsumoto wrote:

[#9873] Re: [ ruby-Bugs-7680 ] a block argument within a block which argument has the same name leaks — Yukihiro Matsumoto <matz@...> 2007/01/08

Hi,

[#9876] Re: [ ruby-Bugs-7680 ] a block argument within a block which argument has the same name leaks — dblack@... 2007/01/09

Hi --

[#9878] Re: [ ruby-Bugs-7680 ] a block argument within a block which argument has the same name leaks — Yukihiro Matsumoto <matz@...> 2007/01/09

Hi,

[#9879] Re: [ ruby-Bugs-7680 ] a block argument within a block which argument has the same name leaks — dblack@... 2007/01/09

Hi --

[#9880] Re: [ ruby-Bugs-7680 ] a block argument within a block which argument has the same name leaks — Yukihiro Matsumoto <matz@...> 2007/01/09

Hi,

[#9882] Re: [ ruby-Bugs-7680 ] a block argument within a block which argument has the same name leaks — Evan Phoenix <evan@...> 2007/01/09

[#9885] Re: [ ruby-Bugs-7680 ] a block argument within a block which argument has the same name leaks — Yukihiro Matsumoto <matz@...> 2007/01/09

Hi,

[#9887] Re: [ ruby-Bugs-7680 ] a block argument within a block which argument has the same name leaks — Evan Phoenix <evan@...> 2007/01/09

[#9888] Re: [ ruby-Bugs-7680 ] a block argument within a block which argument has the same name leaks — Charles Oliver Nutter <charles.nutter@...> 2007/01/09

Evan Phoenix wrote:

[#9892] Re: [ ruby-Bugs-7680 ] a block argument within a block which argument has the same name leaks — Yukihiro Matsumoto <matz@...> 2007/01/09

Hi,

[#9899] Re: [ ruby-Bugs-7680 ] a block argument within a block which argument has the same name leaks — Charles Oliver Nutter <charles.nutter@...> 2007/01/10

Yukihiro Matsumoto wrote:

[#9904] Re: [ ruby-Bugs-7680 ] a block argument within a block which argument has the same name leaks — Yukihiro Matsumoto <matz@...> 2007/01/10

Hi,

[#9960] Scoping and locating definitions — Jos Backus <jos@...>

Consider the following:

17 messages 2007/01/18
[#9964] Re: Scoping and locating definitions — Pit Capitain <pit@...> 2007/01/19

Jos Backus schrieb:

[#9966] Re: Scoping and locating definitions — Jos Backus <jos@...> 2007/01/19

On Fri, Jan 19, 2007 at 06:40:03PM +0900, Pit Capitain wrote:

[#9972] Re: Scoping and locating definitions — Jos Backus <jos@...> 2007/01/19

On Sat, Jan 20, 2007 at 02:18:19AM +0900, Jos Backus wrote:

[#9996] new method dispatch rule (matz' proposal) — SASADA Koichi <ko1@...>

Hi,

50 messages 2007/01/23
[#10002] Re: new method dispatch rule (matz' proposal) — Daniel DeLorme <dan-ml@...42.com> 2007/01/23

SASADA Koichi wrote:

[#10003] Re: new method dispatch rule (matz' proposal) — Yukihiro Matsumoto <matz@...> 2007/01/23

Hi,

[#10004] Re: new method dispatch rule (matz' proposal) — James Edward Gray II <james@...> 2007/01/23

On Jan 23, 2007, at 7:41 AM, Yukihiro Matsumoto wrote:

[#10017] Re: new method dispatch rule (matz' proposal) — Daniel DeLorme <dan-ml@...42.com> 2007/01/24

Yukihiro Matsumoto wrote:

[#10018] Re: new method dispatch rule (matz' proposal) — Yukihiro Matsumoto <matz@...> 2007/01/24

Hi,

[#10024] Re: new method dispatch rule (matz' proposal) — Daniel DeLorme <dan-ml@...42.com> 2007/01/24

Yukihiro Matsumoto wrote:

[#10027] Re: new method dispatch rule (matz' proposal) — Yukihiro Matsumoto <matz@...> 2007/01/24

Hi,

[#10048] Re: new method dispatch rule (matz' proposal) — Evan Phoenix <evan@...> 2007/01/25

The more this discussion goes on, the more I worry that Joe Q Public

[#10019] stable branch policy & schedule for 1.8.6 — "Akinori MUSHA" <knu@...>

Core developers,

29 messages 2007/01/24
[#10021] Re: stable branch policy & schedule for 1.8.6 — Charles Oliver Nutter <charles.nutter@...> 2007/01/24

Akinori MUSHA wrote:

[#10032] Re: stable branch policy & schedule for 1.8.6 — Joel VanderWerf <vjoel@...> 2007/01/24

Charles Oliver Nutter wrote:

[#10085] Collaborative Ruby Language Specification — "John Lam (CLR)" <jflam@...>

Hi Everyone,

36 messages 2007/01/28
[#10108] Re: Collaborative Ruby Language Specification — Charles Oliver Nutter <charles.nutter@...> 2007/01/29

M. Edward (Ed) Borasky wrote:

[#10112] Re: Collaborative Ruby Language Specification — "Eustaquio Rangel de Oliveira Jr." <eustaquiorangel@...> 2007/01/30

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

[#10114] add usage of uri.userinfo to open-uri.rb — <noreply@...>

Patches item #8309, was opened at 2007-01-30 15:25

16 messages 2007/01/30
[#10131] Re: [ ruby-Patches-8309 ] add usage of uri.userinfo to open-uri.rb — Yukihiro Matsumoto <matz@...> 2007/01/31

[#10132] Re: [ ruby-Patches-8309 ] add usage of uri.userinfo to open-uri.rb — Paulo Kh <paulo.koch@...> 2007/01/31

On 2007/01/31, at 06:07, Yukihiro Matsumoto wrote:

[#10137] Re: [ ruby-Patches-8309 ] add usage of uri.userinfo to open-uri.rb — Yukihiro Matsumoto <matz@...> 2007/01/31

Hi,

[#10139] Re: [ ruby-Patches-8309 ] add usage of uri.userinfo to open-uri.rb — Sam Roberts <sroberts@...> 2007/01/31

On Thu, Feb 01, 2007 at 01:19:34AM +0900, Yukihiro Matsumoto wrote:

[#10143] Re: [ ruby-Patches-8309 ] add usage of uri.userinfo to open-uri.rb — Yukihiro Matsumoto <matz@...> 2007/02/01

Hi,

Re: Scoping and locating definitions

From: Jos Backus <jos@...>
Date: 2007-01-21 20:39:40 UTC
List: ruby-core #9990
    Hi Wayne,

On Mon, Jan 22, 2007 at 03:57:59AM +0900, Wayne Vucenic wrote:
> Hi Terry,
> 
> On 1/20/07, Terry Weissman <terry@liveops.com> wrote:
> >The point is, in Python, if file A chooses to import package B, it is
> >very unlikely to affect code operating in completely unrelated file
> >C.  In Ruby, it's entirely possible that the import of B could have
> >broken something that C depended on.

A typical example (correct me if I'm wrong) would be for somebody to override
an existing method, introducing differing behavior whereas you'd be relying on
the behavior of the original method. E.g.:

    lizzy:/tmp% cat x
    class Foo
      def bar
	puts "hi"
      end
    end

    class Foo
      def bar
	puts "ho"
      end
    end

    Foo.new.bar
    lizzy:/tmp% ruby x
    ho
    lizzy:/tmp% 

In Ruby's defense, there's:

    lizzy:/tmp% ruby -w x
    x:8: warning: method redefined; discarding old bar
    ho
    lizzy:/tmp%

To make this more useful, one of my proposals is to augment this information
such that the interpreter would be able to tell you where it found the old
definition:

    lizzy:/tmp% ruby -w x
    x:8: warning: method redefined; discarding old bar at x:2
    ho
    lizzy:/tmp%

This would be helpful when trying to figure out where methods are defined.

Similarly:

    lizzy:/tmp% cat x    
    FOO = 1
    FOO = 2
    lizzy:/tmp% ruby x   
    x:2: warning: already initialized constant FOO at x:1
    lizzy:/tmp% 

> As you pointed out, this is a trade off between having a powerful
> language and having a safe one.  Most languages that I know won't let
> me redefine the + operator for integers.  I really like that Ruby lets
> me do it.  (I haven't needed to redefine +, at least not yet.)
> 
> I can imagine a reasonable language that has the features you'd like.
> I just wouldn't call it Ruby.
> 
> I'm glad Matz chose to position Ruby much more towards the "powerful"
> end of the spectrum rather than the "safe" end.  There are domains
> that can benefit from a lot of safety, and others that can benefit
> from a lot of power.  If I were programming the control system for a
> nuclear reactor, Ruby probably wouldn't be my first choice.  But
> that's one reason I don't do those kinds of projects.
> 
> >If you are in a world where all the code is written by good,
> >competent programmers who've agreed on the ground rules, Ruby can
> >give them all a lot of power.  But if you're not so sure about your
> >fellow programmers, or about code that you are loading off the net,
> >then Ruby's model offers much less protection than Python's.
> >
> >This kind of thing would make me much more scared to work on a big
> >project in Ruby than I would be in Python.
> 
> I wouldn't want to program a large project in Ruby with programmers
> that I didn't trust.  But having been on projects like this using
> "safer" languages, I also wouldn't want to program a large project in
> _any_ language with programmers that I didn't trust.  There are just
> so many ways another programmer can make a project difficult, and any
> language can only protect you from a handful of them.
> 

True. But I still wonder if some compromise wouldn't be possible through the
use of scoping control.

> (Hi Jos!  How are you doing?)
 
Doing fine :-) *waves*

> Wayne
> 
> ---
> Wayne Vucenic
> No Bugs Software
> Ruby, C#, and Erlang Agile Contract Programming in Silicon Valley
> 

-- 
Jos Backus
jos at catnook.com

In This Thread

Prev Next