[#60404] is RB_GC_GUARD needed in rb_io_syswrite? — Eric Wong <normalperson@...>
I haven't gotten it to crash as-is, but it seems like we need to
4 messages
2014/02/01
[#60682] volatile usages — Eric Wong <normalperson@...>
Hi all, I went ahead and removed some use of volatile which were once
5 messages
2014/02/13
[#60794] [RFC] rearrange+pack vtm and time_object structs — Eric Wong <normalperson@...>
Extracted from addendum on top of Feature #9362 (cache-aligned objects).
4 messages
2014/02/16
[#61139] [ruby-trunk - Feature #9577] [Open] [PATCH] benchmark/driver.rb: align columns in text output — normalperson@...
Issue #9577 has been reported by Eric Wong.
3 messages
2014/02/28
[ruby-core:60454] [ruby-trunk - Feature #9453] Return symbols of defined methods for `attr` and friends
From:
jballanc@...
Date:
2014-02-05 00:27:11 UTC
List:
ruby-core #60454
Issue #9453 has been updated by Joshua Ballanco.
Tsuyoshi Sawada wrote:
> What is the point of defining a private accessor method? You can directly refer to the instance variables without using accessors.
The example I gave was just one case of "code in the wild" that would benefit from this change. Undoubtedly, as more people begin to take advantage of the ability to build method decorators (now that method definitions return something other than `nil`), having the attr* family of methods return something meaningful will mean that they can also benefit from these decorators.
----------------------------------------
Feature #9453: Return symbols of defined methods for `attr` and friends
https://bugs.ruby-lang.org/issues/9453#change-44914
* Author: Joshua Ballanco
* Status: Open
* Priority: Normal
* Assignee:
* Category: core
* Target version:
----------------------------------------
With Ruby 2.1 returning a symbol from `def` and `define_method`, that leaves `attr`, `attr_reader`, `attr_writer`, and `attr_accessor` as ways to define methods that still return nil. This is unfortunate, because it prevents the use of method decorators developed to work with `def` from also working with the `attr*` methods. Because these mechanisms can define more than one method, the return values would need to be arrays of symbols.
For an example of how this could be useful in real-world code, consider this sample from James Edward Gray II's Warehouse Keeper example (https://github.com/JEG2/warehouse_keeper):
attr_reader :images, :key_map, :window, :screen_manager, :animations
private :images, :key_map, :window, :screen_manager, :animations
if `attr_reader` returned symbols, then this could be simplified to:
private *attr_reader(:images, :key_map, :window, :screen_manager, :animations)
I've attached a patch that implements this change and includes a few tests. For those who use git, I've also submitted this as a pull request here: https://github.com/ruby/ruby/pull/517
---Files--------------------------------
attr_rv.patch (3.23 KB)
--
http://bugs.ruby-lang.org/