[#41431] [ruby-trunk - Bug #5694][Open] Proc#arity doesn't take optional arguments into account. — Marc-Andre Lafortune <ruby-core@...>

27 messages 2011/12/01
[#41442] [ruby-trunk - Bug #5694] Proc#arity doesn't take optional arguments into account. — Thomas Sawyer <transfire@...> 2011/12/01

[#41443] Re: [ruby-trunk - Bug #5694] Proc#arity doesn't take optional arguments into account. — Yehuda Katz <wycats@...> 2011/12/01

Maybe we can add a new arity_range method that does this?

[#41496] [ruby-trunk - Bug #5714][Open] Unexpected error of STDIN#read with non-ascii input on Windows XP — Heesob Park <phasis@...>

22 messages 2011/12/06

[#41511] [ruby-trunk - Bug #5719][Open] Hash::[] can't handle 100000+ args — Nick Quaranto <nick@...>

13 messages 2011/12/07

[#41557] [ruby-trunk - Bug #5730][Open] Optinal block parameters assigns wrong — Yukihiro Matsumoto <matz@...>

14 messages 2011/12/08

[#41586] [ruby-trunk - Feature #5741][Open] Secure Erasure of Passwords — Martin Bosslet <Martin.Bosslet@...>

17 messages 2011/12/10

[#41672] [ruby-trunk - Feature #5767][Open] Cache expanded_load_path to reduce startup time — Yura Sokolov <funny.falcon@...>

13 messages 2011/12/15

[#41681] Documentation of the language itself (syntax, meanings, etc) — Rodrigo Rosenfeld Rosas <rr.rosas@...>

Since Ruby is built on top of simple concepts, most of the documentation

23 messages 2011/12/15
[#41683] Re: Documentation of the language itself (syntax, meanings, etc) — Gary Wright <gwtmp01@...> 2011/12/15

[#41686] Re: Documentation of the language itself (syntax, meanings, etc) — Rodrigo Rosenfeld Rosas <rr.rosas@...> 2011/12/16

Em 15-12-2011 19:23, Gary Wright escreveu:

[#41717] Feature : optional argument in File.join — Michel Demazure <michel@...>

In Windows, when using File.join, one often ends with a path containing

13 messages 2011/12/19
[#41719] Re: Feature : optional argument in File.join — Luis Lavena <luislavena@...> 2011/12/19

On Mon, Dec 19, 2011 at 6:09 AM, Michel Demazure <michel@demazure.com> wrote:

[#41720] Re: Feature : optional argument in File.join — Michel Demazure <michel@...> 2011/12/19

Luis Lavena wrote in post #1037331:

[#41728] [ruby-trunk - Feature #5781][Open] Query attributes (attribute methods ending in `?` mark) — Thomas Sawyer <transfire@...>

15 messages 2011/12/19

[#41799] Best way to separate implementation specific code? — Luis Lavena <luislavena@...>

Hello,

15 messages 2011/12/24
[#41800] Re: Best way to separate implementation specific code? — KOSAKI Motohiro <kosaki.motohiro@...> 2011/12/24

2011/12/24 Luis Lavena <luislavena@gmail.com>:

[#41811] Re: Best way to separate implementation specific code? — "U.Nakamura" <usa@...> 2011/12/26

Hello,

[#41817] Re: Best way to separate implementation specific code? — Luis Lavena <luislavena@...> 2011/12/26

On Sun, Dec 25, 2011 at 10:51 PM, U.Nakamura <usa@garbagecollect.jp> wrote:

[#41812] [ruby-trunk - Feature #5809][Open] Benchmark#bm: remove the label_width parameter — Benoit Daloze <redmine@...>

11 messages 2011/12/26

[ruby-core:41708] Re: [ruby-trunk - Bug #5694] Proc#arity doesn't take optional arguments into account.

From: Marc-Andre Lafortune <ruby-core-mailing-list@...>
Date: 2011-12-17 19:54:30 UTC
List: ruby-core #41708
Hi,

On Sun, Dec 11, 2011 at 10:51 PM, Yukihiro Matsumoto <matz@ruby-lang.org> wrote:
> Hi,
>
> In message "Re: [ruby-core:41600] [ruby-trunk - Bug #5694] Proc#arity doesn't take optional arguments into account."
> n Mon, 12 Dec 2011 11:30:26 +0900, Marc-Andre Lafortune <ruby-core@marc-andre.ca> writes:
>
> |Yukihiro Matsumoto wrote:
> |> We are not going to add incompatible changes to trunk, ...
> |
> |Could you please explain to me what difference you see between an "incompatible change" and any "bug fix"?
>
> Good point. t's whether the change makes difference from intention
> of the original designer. ...

So do we agree that my patch is not an incompatible change?

>irst I thought to keep the original arity
> behavior, but after investigating the behavior, both Method#arity and
> Proc#arity have weird corner cases.

Apart from the one I'm pointing out (which is only present in Ruby
1.9), what other corner cases are there? In particular, is there any
corner case in the 1.8 line?

> My idea for new behavior is:
>
>  arity ignores all optional arguments
>  arity returns -n-1 if there's rest argument
>  where n is number of mandatory arguments
>
> Any opinion?

Can you explain what would be gained by this new behavior, i.e. how is
this change more helpful than the current behavior?

Also, can you explain why you consider that breaking the previous
behavior would be a good idea?

A quick check for uses of `arity` in Rails reveal that the typical use
looks like "does this method use only 1 parameter or can it use more
than that?"

Among other things, this change could break many Rails app.

Moreover, Rails and any other gem using `arity` would have to jump
through hoops to maintain a compatible version with Ruby 1.8.7 (which
doesn't have the `parameters` method) and Ruby 1.9.2+.

Finally, assuming you decide to go forward with this feature change
for Ruby 2.0, shouldn't the 1.9 line still be fixed with my patch to
be consistent?

Thanks

In This Thread