Issue #16001 has been updated by piotrmurach (Piotr Murach).


> Right, I'm thinking we should just improve the documentation of `caller` and `caller_locations` then,
> to mention `limit` should be used when possible, otherwise the impact on performance can be very high.

This is quite a common thing to do and it's not only about performance, though the performance aspect is equally important. I often see code `caller[0]` used to refer to the immediate frame. On the syntax front, let me ask you what is the point of having `Array#first` or `Array#last`? When we could add documentation to explain what `array[0]` and `array[-1]` do respectively.  Well, one reason that I use Ruby is its expressiveness and ability for my code to be readable. I'm far from wanting to add aliases for the sake of it, they need to match the spirit of Ruby.

----------------------------------------
Feature #16001: Provide an alias to Kernel#caller_locations(1,1) and Kernel#caller(1,1)
https://bugs.ruby-lang.org/issues/16001#change-79646

* Author: piotrmurach (Piotr Murach)
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
----------------------------------------
As it is common to use `caller_locations(1,1)` and `caller(1,1)`, this proposes aliases to help get the previous backtrace frame and improve performance by avoiding getting full backtrace information.

The currently suggestions are:
* `immediate_caller`
* `first_caller`
* `caller_only`

This feature request is based on a conversation with Charles Nutter who says:
> This is such a common thing... maybe we need to add something like #caller_only or #caller1 that basically do caller(1,1).



-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>