<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/vm_method.c, branch v2_1_5</title>
<subtitle>The Ruby Programming Language</subtitle>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/'/>
<entry>
<title>merge revision(s) r48111,r48118,r48120: [Backport #10421]</title>
<updated>2014-10-25T18:42:44+00:00</updated>
<author>
<name>nagachika</name>
<email>nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2014-10-25T18:42:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=eca3835c65f6e63b92dd5387257322323ab43563'/>
<id>eca3835c65f6e63b92dd5387257322323ab43563</id>
<content type='text'>
	* vm_method.c (rb_method_entry_make): warn redefinition only for
	  already defined methods, but not for undefined methods.
	  [ruby-dev:48691] [Bug #10421]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@48138 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	* vm_method.c (rb_method_entry_make): warn redefinition only for
	  already defined methods, but not for undefined methods.
	  [ruby-dev:48691] [Bug #10421]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@48138 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
<entry>
<title>merge revision(s) r45367,r45387,r45388,r45389: [Backport #9475]</title>
<updated>2014-05-15T15:24:05+00:00</updated>
<author>
<name>nagachika</name>
<email>nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2014-05-15T15:24:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=67f5f1be206c7ecb19aeb4cb1167dcedfb3466bd'/>
<id>67f5f1be206c7ecb19aeb4cb1167dcedfb3466bd</id>
<content type='text'>
	* vm_method.c (rb_method_entry_get_without_cache): get rid of
	  infinite recursion at aliases in a subclass and a superclass.
	  return actually defined class for other than singleton class.
	  [ruby-core:60431] [Bug #9475]

	* vm_method.c (rb_method_entry_get_without_cache): me-&gt;klass is 0
	  for a method aliased in a module.  [ruby-core:61636] [Bug #9663]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@45955 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	* vm_method.c (rb_method_entry_get_without_cache): get rid of
	  infinite recursion at aliases in a subclass and a superclass.
	  return actually defined class for other than singleton class.
	  [ruby-core:60431] [Bug #9475]

	* vm_method.c (rb_method_entry_get_without_cache): me-&gt;klass is 0
	  for a method aliased in a module.  [ruby-core:61636] [Bug #9663]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@45955 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
<entry>
<title>merge revision(s) 44931: [Backport #9452]</title>
<updated>2014-02-22T05:05:22+00:00</updated>
<author>
<name>naruse</name>
<email>naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2014-02-22T05:05:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=669e9ac5ff2593b175bd6b0b30d482d3e2fbced3'/>
<id>669e9ac5ff2593b175bd6b0b30d482d3e2fbced3</id>
<content type='text'>
	* vm_insnhelper.c (vm_call_method): should check ci-&gt;me-&gt;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-&gt;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-&gt;def-&gt;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.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@45107 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	* vm_insnhelper.c (vm_call_method): should check ci-&gt;me-&gt;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-&gt;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-&gt;def-&gt;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.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@45107 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
<entry>
<title>* vm_method.c: check definition of</title>
<updated>2013-12-20T08:57:24+00:00</updated>
<author>
<name>ko1</name>
<email>ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2013-12-20T08:57:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=f11b54213ad169975f98bbf0a39e1b303bc2795f'/>
<id>f11b54213ad169975f98bbf0a39e1b303bc2795f</id>
<content type='text'>
  GLOBAL_METHOD_CACHE_SIZE and GLOBAL_METHOD_CACHE_MASK.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44300 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
  GLOBAL_METHOD_CACHE_SIZE and GLOBAL_METHOD_CACHE_MASK.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44300 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
<entry>
<title>* include/ruby/ruby.h: rename OBJ_WRITE and OBJ_WRITTEN into</title>
<updated>2013-12-20T08:07:47+00:00</updated>
<author>
<name>ko1</name>
<email>ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2013-12-20T08:07:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=c702005a7bbb807cab666537b5ef1877c14c40ba'/>
<id>c702005a7bbb807cab666537b5ef1877c14c40ba</id>
<content type='text'>
  RB_OBJ_WRITE and RB_OBJ_WRITTEN.
* array.c, class.c, compile.c, hash.c, internal.h, iseq.c,
  proc.c, process.c, re.c, string.c, variable.c, vm.c,
  vm_eval.c, vm_insnhelper.c, vm_insnhelper.h,
  vm_method.c: catch up this change.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44299 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
  RB_OBJ_WRITE and RB_OBJ_WRITTEN.
* array.c, class.c, compile.c, hash.c, internal.h, iseq.c,
  proc.c, process.c, re.c, string.c, variable.c, vm.c,
  vm_eval.c, vm_insnhelper.c, vm_insnhelper.h,
  vm_method.c: catch up this change.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44299 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
<entry>
<title>* vm_method.c (rb_method_entry_make): fix WB miss.</title>
<updated>2013-12-16T07:46:48+00:00</updated>
<author>
<name>ko1</name>
<email>ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2013-12-16T07:46:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=d8eb7f3c0df627af7e2a961bfdcb069a9cde34ac'/>
<id>d8eb7f3c0df627af7e2a961bfdcb069a9cde34ac</id>
<content type='text'>
  Note that rb_method_entry_t::klass is not constified.
  We may  constify this field.
* test/ruby/test_alias.rb: add a test.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44234 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
  Note that rb_method_entry_t::klass is not constified.
  We may  constify this field.
* test/ruby/test_alias.rb: add a test.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44234 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
<entry>
<title>proc.c, vm_method.c: fix super and alias</title>
<updated>2013-12-13T13:29:23+00:00</updated>
<author>
<name>nobu</name>
<email>nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2013-12-13T13:29:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=b71956d12b061613f8ef9dfe3f8a75e56dfa799d'/>
<id>b71956d12b061613f8ef9dfe3f8a75e56dfa799d</id>
<content type='text'>
* proc.c (method_owner): return the class where alias is defined, not
  the class original method is defined.
* vm_method.c (rb_method_entry_make, rb_alias): store the originally
  defined class in me.  [Bug #7993] [Bug #7842] [Bug #9236]
* vm_method.c (rb_method_entry_get_without_cache): cache included
  module but not iclass.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44175 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* proc.c (method_owner): return the class where alias is defined, not
  the class original method is defined.
* vm_method.c (rb_method_entry_make, rb_alias): store the originally
  defined class in me.  [Bug #7993] [Bug #7842] [Bug #9236]
* vm_method.c (rb_method_entry_get_without_cache): cache included
  module but not iclass.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44175 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
<entry>
<title>vm.c: reduce clearing method cache</title>
<updated>2013-12-13T03:23:42+00:00</updated>
<author>
<name>nobu</name>
<email>nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2013-12-13T03:23:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=f2c319395ddb3239f4bf71861db3dc0c175c32bd'/>
<id>f2c319395ddb3239f4bf71861db3dc0c175c32bd</id>
<content type='text'>
* vm_method.c (rb_add_method, rb_alias): rb_method_entry_set()
  already clears method cache.

* vm_method.c (rb_export_method): ditto by rb_add_method().

* vm_method.c (set_method_visibility): ditto by rb_export_method().

* vm.c (vm_define_method): ditto by rb_add_method().

* vm.c (m_core_undef_method): ditto by rb_add_method() in rb_undef().

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44167 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* vm_method.c (rb_add_method, rb_alias): rb_method_entry_set()
  already clears method cache.

* vm_method.c (rb_export_method): ditto by rb_add_method().

* vm_method.c (set_method_visibility): ditto by rb_export_method().

* vm.c (vm_define_method): ditto by rb_add_method().

* vm.c (m_core_undef_method): ditto by rb_add_method() in rb_undef().

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44167 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
<entry>
<title>vm_method.c: add new ruby::method-cache-clear dtrace probe</title>
<updated>2013-12-09T22:50:44+00:00</updated>
<author>
<name>tmm1</name>
<email>tmm1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2013-12-09T22:50:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=4092574257645118e98224318b89cf80fd18a144'/>
<id>4092574257645118e98224318b89cf80fd18a144</id>
<content type='text'>
* vm_method.c (rb_clear_method_cache_by_class): fire
  ruby::method-cache-clear probe on global or klass-level method cache
  clear [Bug #9190]
* probes.d (provider ruby): new dtrace probe
* doc/dtrace_probes.rdoc: docs for new probe
* test/dtrace/test_method_cache.rb: test for new probe

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44103 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* vm_method.c (rb_clear_method_cache_by_class): fire
  ruby::method-cache-clear probe on global or klass-level method cache
  clear [Bug #9190]
* probes.d (provider ruby): new dtrace probe
* doc/dtrace_probes.rdoc: docs for new probe
* test/dtrace/test_method_cache.rb: test for new probe

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44103 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
<entry>
<title>* internal.h (RCLASS_SERIAL): Add RCLASS_SERIAL as a convenience</title>
<updated>2013-12-09T11:00:23+00:00</updated>
<author>
<name>charliesome</name>
<email>charliesome@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2013-12-09T11:00:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=c039c7081594a7e8e7cf5e96abbdc8fc6ac43a21'/>
<id>c039c7081594a7e8e7cf5e96abbdc8fc6ac43a21</id>
<content type='text'>
  accessor for RCLASS_EXT(klass)-&gt;class_serial.

* class.c, vm_insnhelper.c, vm_method.c: Use RCLASS_SERIAL

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44098 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
  accessor for RCLASS_EXT(klass)-&gt;class_serial.

* class.c, vm_insnhelper.c, vm_method.c: Use RCLASS_SERIAL

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44098 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
</feed>
