[#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:60684] [ruby-trunk - Bug #9452] [Closed] Refining methods that should be private
From:
shugo@...
Date:
2014-02-13 14:44:48 UTC
List:
ruby-core #60684
Issue #9452 has been updated by Shugo Maeda.
Status changed from Open to Closed
% Done changed from 0 to 100
Applied in changeset r44931.
----------
* vm_insnhelper.c (vm_call_method): should check ci->me->flag of
a refining method in case the method is private.
[ruby-core:60111] [Bug #9452]
* vm_method.c (make_method_entry_refined): set me->flag of a refined
method entry to NOEX_PUBLIC in case the original method is private
and it is refined as a public method. The original flag is stored
in me->def->body.orig_me, so it's OK to make a refined method
entry public. [ruby-core:60111] [Bug #9452]
* test/ruby/test_refinement.rb: related tests.
----------------------------------------
Bug #9452: Refining methods that should be private
https://bugs.ruby-lang.org/issues/9452#change-45109
* Author: Jan Lelis
* Status: Closed
* Priority: Normal
* Assignee: Shugo Maeda
* Category:
* Target version:
* ruby -v: ruby 2.2.0dev (2014-01-25 trunk 44707) [x86_64-linux]
* Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN, 2.1: UNKNOWN
----------------------------------------
Are refinements also meant to add private methods? This is what I tried:
module R
refine Object do
def m
puts "Success!"
end
private(:m)
end
end
using R
m # success
42.m # success (= not private)
However, I can get near the desired functionality by defining a private method first:
class Object
private
def m
end
end
module R
refine Object do
def m
puts "Success!"
end
end
end
using R
m # success
42.m # no success (= it is private)
It calls the right code. But requires global core ext.
--
http://bugs.ruby-lang.org/