<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/include/ruby/ruby.h, branch v2_0_0_451</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) 41343,41360,41386: [Backport #8531]</title>
<updated>2013-06-18T18:40:31+00:00</updated>
<author>
<name>nagachika</name>
<email>nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2013-06-18T18:40:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=fff67882f9ed1436a32fd9120158d274c4515234'/>
<id>fff67882f9ed1436a32fd9120158d274c4515234</id>
<content type='text'>
	test/ruby/test_symbol.rb: tests for [Bug #8531]
	* include/ruby/ruby.h, vm_eval.c (rb_funcall_with_block):
	  new function to invoke a method with a block passed
	  as an argument.

	* string.c (sym_call): use the above function to avoid
	  a block sharing. [ruby-dev:47438] [Bug #8531]

	* vm_insnhelper.c (vm_yield_with_cfunc): don't set block
	  in the frame.

	* test/ruby/test_symbol.rb (TestSymbol#test_block_given_to_proc):
	  run related tests.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_0_0@41393 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	test/ruby/test_symbol.rb: tests for [Bug #8531]
	* include/ruby/ruby.h, vm_eval.c (rb_funcall_with_block):
	  new function to invoke a method with a block passed
	  as an argument.

	* string.c (sym_call): use the above function to avoid
	  a block sharing. [ruby-dev:47438] [Bug #8531]

	* vm_insnhelper.c (vm_yield_with_cfunc): don't set block
	  in the frame.

	* test/ruby/test_symbol.rb (TestSymbol#test_block_given_to_proc):
	  run related tests.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_0_0@41393 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
<entry>
<title>merge revision(s) 39335:</title>
<updated>2013-02-23T05:20:05+00:00</updated>
<author>
<name>nobu</name>
<email>nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2013-02-23T05:20:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=2fd5dcc08c4066ee5da9d2b401f40625769fe731'/>
<id>2fd5dcc08c4066ee5da9d2b401f40625769fe731</id>
<content type='text'>
	* include/ruby/ruby.h (HAVE_RB_SCAN_ARGS_OPTIONAL_HASH): for
	  rb_scan_args() optional hash feature.  [Bug #7861]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_0_0@39426 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	* include/ruby/ruby.h (HAVE_RB_SCAN_ARGS_OPTIONAL_HASH): for
	  rb_scan_args() optional hash feature.  [Bug #7861]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_0_0@39426 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
<entry>
<title>ruby.h: align</title>
<updated>2013-01-08T17:13:26+00:00</updated>
<author>
<name>nobu</name>
<email>nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2013-01-08T17:13:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=8ad71433279fe8caa1e06038674c0559edfa1468'/>
<id>8ad71433279fe8caa1e06038674c0559edfa1468</id>
<content type='text'>
* include/ruby/ruby.h (RBasic): to be aligned on a VALUE size
  boundary.  [Bug #7647]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38741 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* include/ruby/ruby.h (RBasic): to be aligned on a VALUE size
  boundary.  [Bug #7647]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38741 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
<entry>
<title>* include/ruby/ruby.h (RUBY_EVENT_SPECIFIED_LINE): make it special.</title>
<updated>2013-01-07T08:38:25+00:00</updated>
<author>
<name>ko1</name>
<email>ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2013-01-07T08:38:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=06f2a86f1a57ded8177f0611bb107f0c4bcc2e70'/>
<id>06f2a86f1a57ded8177f0611bb107f0c4bcc2e70</id>
<content type='text'>
  This flag is not contained by RUBY_EVENT_TRACEPOINT_ALL.
  This event is experimental one. It is possible to remove/rename
  flag name after 2.0.1.
* vm_trace.c (get_event_id): return :line if SPECIFIED_LINE was
  occurred. `:specified_line' never been returned.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38728 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
  This flag is not contained by RUBY_EVENT_TRACEPOINT_ALL.
  This event is experimental one. It is possible to remove/rename
  flag name after 2.0.1.
* vm_trace.c (get_event_id): return :line if SPECIFIED_LINE was
  occurred. `:specified_line' never been returned.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38728 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
<entry>
<title>ruby.h: RTEST NIL_P</title>
<updated>2012-12-20T09:29:57+00:00</updated>
<author>
<name>nobu</name>
<email>nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2012-12-20T09:29:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=8497a7b9187a05210a4f6b842d06d1268d704d35'/>
<id>8497a7b9187a05210a4f6b842d06d1268d704d35</id>
<content type='text'>
* include/ruby/ruby.h (RTEST, NIL_P): make bare expressions without
  outermost parentheses.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38499 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* include/ruby/ruby.h (RTEST, NIL_P): make bare expressions without
  outermost parentheses.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38499 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
<entry>
<title>* include/ruby/ruby.h (RB_UNUSED_VAR): new macro to suppress</title>
<updated>2012-12-13T03:09:22+00:00</updated>
<author>
<name>shugo</name>
<email>shugo@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2012-12-13T03:09:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=3a6dec0c5daf568f4846f10fed9c115bc164871b'/>
<id>3a6dec0c5daf568f4846f10fed9c115bc164871b</id>
<content type='text'>
  warnings for unused variables.

* ext/bigdecimal/bigdecimal.c (ENTER): use RB_UNUSED_VAR() to
  suppress annoying warnings by -Wunused-but-set-variable in gcc 4.6.

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

* ext/bigdecimal/bigdecimal.c (ENTER): use RB_UNUSED_VAR() to
  suppress annoying warnings by -Wunused-but-set-variable in gcc 4.6.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38351 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
<entry>
<title>* fix the behavior when a module is included into a refinement.</title>
<updated>2012-12-10T16:05:45+00:00</updated>
<author>
<name>shugo</name>
<email>shugo@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2012-12-10T16:05:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=7ef16d224a80a6e1e8c01b5b45ac7e2315a04e4c'/>
<id>7ef16d224a80a6e1e8c01b5b45ac7e2315a04e4c</id>
<content type='text'>
  This change is a little tricky, so it might be better to prohibit
  module inclusion to refinements.

* include/ruby/ruby.h (RMODULE_INCLUDED_INTO_REFINEMENT): new flag
  to represent that a module (iclass) is included into a refinement.

* class.c (include_modules_at): set RMODULE_INCLUDED_INTO_REFINEMENT
  if klass is a refinement.

* eval.c (rb_mod_refine): set the superclass of a refinement to the
  refined class for super.

* eval.c (rb_using_refinement): skip the above superclass (the
  refined class) when creating iclasses for refinements.  Otherwise,
  `using Refinement1; using Refinement2' creates iclasses:
  &lt;Refinement2&gt; -&gt; &lt;RefinedClass&gt; -&gt; &lt;Refinement1&gt; -&gt; RefinedClass,
  where &lt;Module&gt; is an iclass for Module, so RefinedClass is
  searched before Refinement1.  The correct iclasses should be
  &lt;Refinement2&gt; -&gt; &lt;Refinement1&gt; -&gt; RefinedClass.

* vm_insnhelper.c (vm_search_normal_superclass): if klass is an
  iclass for a refinement, use the refinement's superclass instead
  of the iclass's superclass.  Otherwise, multiple refinements are
  searched by super.  For example, if a refinement Refinement2
  includes a module M (i.e., Refinement2 -&gt; &lt;M&gt; -&gt; RefinedClass,
  and if refinements iclasses are &lt;Refinement2&gt; -&gt; &lt;M&gt;' -&gt;
  &lt;Refinement1&gt; -&gt; RefinedClass, then super in &lt;Refinement2&gt; should
  use Refinement2's superclass &lt;M&gt; instead of &lt;Refinement2&gt;'s
  superclass &lt;M&gt;'.

* vm_insnhelper.c (vm_search_super_method): do not raise a
  NotImplementError if current_defind_class is a module included
  into a refinement.  Because of the change of
  vm_search_normal_superclass(), the receiver might not be an
  instance of the module('s iclass).

* test/ruby/test_refinement.rb: related test.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38298 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
  This change is a little tricky, so it might be better to prohibit
  module inclusion to refinements.

* include/ruby/ruby.h (RMODULE_INCLUDED_INTO_REFINEMENT): new flag
  to represent that a module (iclass) is included into a refinement.

* class.c (include_modules_at): set RMODULE_INCLUDED_INTO_REFINEMENT
  if klass is a refinement.

* eval.c (rb_mod_refine): set the superclass of a refinement to the
  refined class for super.

* eval.c (rb_using_refinement): skip the above superclass (the
  refined class) when creating iclasses for refinements.  Otherwise,
  `using Refinement1; using Refinement2' creates iclasses:
  &lt;Refinement2&gt; -&gt; &lt;RefinedClass&gt; -&gt; &lt;Refinement1&gt; -&gt; RefinedClass,
  where &lt;Module&gt; is an iclass for Module, so RefinedClass is
  searched before Refinement1.  The correct iclasses should be
  &lt;Refinement2&gt; -&gt; &lt;Refinement1&gt; -&gt; RefinedClass.

* vm_insnhelper.c (vm_search_normal_superclass): if klass is an
  iclass for a refinement, use the refinement's superclass instead
  of the iclass's superclass.  Otherwise, multiple refinements are
  searched by super.  For example, if a refinement Refinement2
  includes a module M (i.e., Refinement2 -&gt; &lt;M&gt; -&gt; RefinedClass,
  and if refinements iclasses are &lt;Refinement2&gt; -&gt; &lt;M&gt;' -&gt;
  &lt;Refinement1&gt; -&gt; RefinedClass, then super in &lt;Refinement2&gt; should
  use Refinement2's superclass &lt;M&gt; instead of &lt;Refinement2&gt;'s
  superclass &lt;M&gt;'.

* vm_insnhelper.c (vm_search_super_method): do not raise a
  NotImplementError if current_defind_class is a module included
  into a refinement.  Because of the change of
  vm_search_normal_superclass(), the receiver might not be an
  instance of the module('s iclass).

* test/ruby/test_refinement.rb: related test.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38298 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
<entry>
<title>* eval.c (rb_mod_refine), vm_eval.c (rb_yield_refine_block):</title>
<updated>2012-12-08T02:37:16+00:00</updated>
<author>
<name>shugo</name>
<email>shugo@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2012-12-08T02:37:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=db051011d68950cd1261f91e724513282d419d9e'/>
<id>db051011d68950cd1261f91e724513282d419d9e</id>
<content type='text'>
  Module#refine activates all refinements defined in that module
  only in a given block.

* string.c (sym_to_proc, sym_call): don't use refinements.

* test/ruby/test_refinement.rb: related test.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38269 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
  Module#refine activates all refinements defined in that module
  only in a given block.

* string.c (sym_to_proc, sym_call): don't use refinements.

* test/ruby/test_refinement.rb: related test.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38269 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
<entry>
<title>* include/ruby/ruby.h (rb_event_flag_t):  Maintain integer precision</title>
<updated>2012-11-30T17:59:06+00:00</updated>
<author>
<name>drbrain</name>
<email>drbrain@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2012-11-30T17:59:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=57a83c4c9ac1de6da5184972cc10e33f44f6f747'/>
<id>57a83c4c9ac1de6da5184972cc10e33f44f6f747</id>
<content type='text'>
  for clang error (VALUE aka unsigned long vs unsigned int)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38084 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
  for clang error (VALUE aka unsigned long vs unsigned int)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38084 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
<entry>
<title>  [EXPERIMENTAL]</title>
<updated>2012-11-30T17:00:30+00:00</updated>
<author>
<name>ko1</name>
<email>ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2012-11-30T17:00:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=12f2f7371f2dcf9c8da2a96fa251d1af2a7e977e'/>
<id>12f2f7371f2dcf9c8da2a96fa251d1af2a7e977e</id>
<content type='text'>
* iseq.c: add following two methods.
* ISeq#line_trace_all returns all line traces (line numbers)
* ISeq#line_trace_specify(pos, set) set `pos'th line event to
  specified_line event (if set is true).
  These features are introduced for debuggers (mainly to make
  breakpoint).
* iseq.h: add decl. of C APIs.
* test/ruby/test_iseq.rb: add tests.
* vm_trace.c: add `specified_line' event.
* include/ruby/ruby.h: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38076 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* iseq.c: add following two methods.
* ISeq#line_trace_all returns all line traces (line numbers)
* ISeq#line_trace_specify(pos, set) set `pos'th line event to
  specified_line event (if set is true).
  These features are introduced for debuggers (mainly to make
  breakpoint).
* iseq.h: add decl. of C APIs.
* test/ruby/test_iseq.rb: add tests.
* vm_trace.c: add `specified_line' event.
* include/ruby/ruby.h: ditto.



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