From: Rocky Bernstein Date: 2011-10-26T14:53:54+09:00 Subject: [ruby-core:40404] Re: 2.0 feature questionnaire --f46d04170345d7f11e04b02d47dc Content-Type: text/plain; charset=ISO-8859-1 On Tue, Oct 25, 2011 at 5:27 PM, Joshua Ballanco wrote: > On Tue, Oct 25, 2011 at 5:16 PM, Charles Oliver Nutter < > headius@headius.com> wrote: > >> > Does anyone have statistics on how often binding is used and what the >> costs >> > is for not optimizing those portions? >> > >> > Binding in Ruby is used by debuggers or other dynamic introspection >> tools to >> > give access to call stack objects. There are dynamic languages such as >> Perl >> > and some of the POSIX shells (bash and zsh but not more recent ksh) that >> > don't have something like binding; therefore debuggers in those >> languages >> > can't provide reliable info regarding certain variables on the call >> stack >> > other than the top-most frame. >> > >> > Does it matter? Some probably would argue it doesn't. I think access to >> > locals on the call stack in a debugger is nice to have. >> >> That is neither here nor there. I am not proposing removing bindings. >> >> What I am proposing is removal of the ability to use an arbitrary Proc >> as a binding. Right now, millions of Ruby developers are passing >> blocks around, blissfully unaware that they are exposing *all* state >> that surrounds the block to the called code. Please read my example >> again. >> > > This was the subject matter of my RubyConf talk. You can view the video > here: http://confreaks.net/videos/671-rubyconf2011-keeping-ruby-reasonable. If you skip to 19:33, I presented a very real example of how this property > of Proc#bindings can have an impact on performance. > Good talk! --f46d04170345d7f11e04b02d47dc Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable

On Tue, Oct 25, 2011 at 5:27 PM, Joshua = Ballanco <jballa= nc@gmail.com> wrote:
On Tue, Oct 25, 2011 at 5:16 P= M, Charles Oliver Nutter <headius@headius.com> wrote:
<= blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px= #ccc solid;padding-left:1ex">
> Does anyone have statistics on how often binding is used and what= the costs
> is for not optimizing those portions?
>
> Binding in Ruby is used by debuggers or other dynamic introspection to= ols to
> give access to call stack objects. There are dynamic languages such as= Perl
> and some of the POSIX shells (bash and zsh but not more recent ksh) th= at
> don't have something like binding; therefore debuggers in those la= nguages
> can't provide reliable info regarding certain variables on the cal= l stack
> other than the top-most frame.
>
> Does it matter? Some probably would argue it doesn't. I think acce= ss to
> locals on the call stack in a debugger is nice to have.

That is neither here nor there. I am not proposing removing bindings.=

What I am proposing is removal of the ability to use an arbitrary Proc
as a binding. Right now, millions of Ruby developers are passing
blocks around, blissfully unaware that they are exposing *all* state
that surrounds the block to the called code. Please read my example
again.

This was the subject matte= r of my RubyConf talk. You can view the video here: http://confreaks.net/videos/671-rubyconf2011-keeping-ruby-reasonable .= If you skip to 19:33, I presented a very real example of how this property= of Proc#bindings can have an impact on performance.

Good talk!

--f46d04170345d7f11e04b02d47dc--