ruby-core@ruby-lang.org archive (unofficial mirror)
 help / color / mirror / Atom feed
From: "Wilson Bilkovich" <wilsonb@gmail.com>
To: ruby-core@ruby-lang.org
Subject: [ruby-core:18474] Re: [ANN] Ruby 1.9.1 feature freeze
Date: Sun, 7 Sep 2008 06:23:28 +0900	[thread overview]
Message-ID: <d4e4955b0809061429p54401b6endf5e07b0a5a10aa5@mail.gmail.com> (raw)
In-Reply-To: <E1Kc3wb-000509-MS@x61.netlab.jp>

On 9/6/08, Yukihiro Matsumoto <matz@ruby-lang.org> wrote:
> Hi,
>
>  In message "Re: [ruby-core:18452] [ANN] Ruby 1.9.1 feature freeze"
>
>     on Fri, 5 Sep 2008 01:13:56 +0900, "Roger Pack" <rogerpack2005@gmail.com> writes:
>
>  |Would it be possible to have a few patches applied before freeze [if
>  |possible]-I know I would use them [for being able to run racc against
>  |the original method definitions, etc.] :)
>  |
>  |http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-core/12598
>
>
> This is a proposal to add __file__ and __line__ methods to Method and
>  Proc objects.  Issues are:
>
>   * the method names.  I don't think proposed names that are
>     surrounded by underscores are appropriate.
>   * non-Ruby defined methods/procs.  the patch raises TypeError, but
>     is it really appropriate?  Should they return nil for such cases?
>   * use-case.  the proposal comes with use-case sourceref.rb, but any
>     other use case?
>


RSpec currently uses eval("caller(0)", @a_proc_instance) to simulate
this behavior.
I had not seen this proposal before, but I like it.
I looked into this while working on RSpec for Rubinius, and this seems
to be the only way to determine where a particular block_pass or proc
was created.

RSpec cares about this because (as one example) it allows users to
specify 'examples' to run by regexp against their description.

These 'examples' could be in any spec file, so it uses what I have
taken to calling the 'declaration trace' .. in other words, what you
get when you eval Kernel#caller with a proc as binding.

Using eval for this is slow and ugly; it would be nice to have a clean
feature to implement.
I considered proposing Proc#caller when I first encountered this, but
__file__ and __line__ are nice.

While I am on the subject, here is the bug ticket I filed related to this:
http://redmine.ruby-lang.org/issues/show/146

  reply	other threads:[~2008-09-06 21:30 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <966599840809022308q2d6f4370l1de6340c9f1fee8a@mail.gmail.com>
2008-09-04 16:13 ` [ruby-core:18452] [ANN] Ruby 1.9.1 feature freeze Roger Pack
2008-09-04 17:34   ` [ruby-core:18455] " hemant
2008-09-06 18:38     ` [ruby-core:18469] " Charles Oliver Nutter
2008-09-06 19:53   ` [ruby-core:18471] " Yukihiro Matsumoto
2008-09-06 21:23     ` Wilson Bilkovich [this message]
2008-09-08  4:02     ` [ruby-core:18487] " Roger Pack
2008-09-08  9:05     ` [ruby-core:18490] " Nobuyoshi Nakada
2008-09-08  9:36       ` [ruby-core:18491] " Yukihiro Matsumoto
2008-09-08 11:22         ` [ruby-core:18493] " Trans
2008-09-09  8:30           ` [ruby-core:18519] " Yukihiro Matsumoto
2008-09-09 23:39             ` [ruby-core:18528] " Trans
2008-09-08 14:41         ` [ruby-core:18496] " Wilson Bilkovich
     [not found]         ` <966599840809080824t69da9db3saec127e89bb6069@mail.gmail.com>
2008-09-08 15:20           ` [ruby-core:18497] " Roger Pack
2008-09-08 18:26             ` [ruby-core:18501] " Wilson Bilkovich
2008-09-09  1:40               ` [ruby-core:18509] " Charles Oliver Nutter
     [not found]               ` <966599840809091113k4c738de3kcfdb74bd747ac1d4@mail.gmail.com>
2008-09-09 18:21                 ` [ruby-core:18521] " Roger Pack
2008-09-10 17:01                   ` [ruby-core:18546] " Paul Brannan
2008-09-16 20:10                   ` [ruby-core:18636] " Roger Pack
2008-09-08 15:24         ` [ruby-core:18498] " Robert Klemme
2008-09-08 19:27           ` [ruby-core:18502] " Joel VanderWerf
2008-09-20 18:49       ` [ruby-core:18763] " Roger Pack
2008-09-25  1:18         ` [ruby-core:18875] " Nobuyoshi Nakada
     [not found]         ` <966599840809251625t77060aedq4248037a6c95cc84@mail.gmail.com>
2008-09-26  4:17           ` [ruby-core:18970] " Roger Pack
2008-09-26 14:09             ` [ruby-core:18978] " Nobuyoshi Nakada
2008-09-26 16:19               ` [ruby-core:18981] " Roger Pack
2008-09-26 18:25                 ` [ruby-core:18984] " Nobuyoshi Nakada
2008-12-19 21:55       ` [ruby-core:20708] " Roger Pack

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.ruby-lang.org/en/community/mailing-lists/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=d4e4955b0809061429p54401b6endf5e07b0a5a10aa5@mail.gmail.com \
    --to=ruby-core@ruby-lang.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).