<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/include, branch ruby_2_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) 63571,63572: [Backport #14816]</title>
<updated>2018-08-18T04:18:32+00:00</updated>
<author>
<name>nagachika</name>
<email>nagachika@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2018-08-18T04:18:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=99d1f2c5dc02dbeac42b4d27e4798774133c618a'/>
<id>99d1f2c5dc02dbeac42b4d27e4798774133c618a</id>
<content type='text'>
	`int isnan(double)` is a POSIXism

	- `isnan` is something relatively new.  We need to provide one for
	  those systems without it.  However:
	- X/Open defines `int isnan(double)`. Note the `int`.
	- C99 defines `isnan(x)` to be a macro.
	- C++11 nukes them all, undefines all the "masking macro"s, and
	  defines its own `bool isnan(double)`.  Note the `bool`.
	- In C++, `int isnan(double)` and `bool isnan(double)` are
	  incompatible.
	- So the mess.

	[Bug #14816][ruby-core:87364]
	further reading: https://developers.redhat.com/blog/2016/02/29/why-cstdlib-is-more-complicated-than-you-might-think/


	include/ruby/missing.h: defined(__cplusplus) before using __cplusplus

	* include/ruby/missing.h (isinf, isnan): For non-C++ programs,
	  defined(__cplusplus) may be needed before using __cplusplus.
	  [Bug #14816]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@64434 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	`int isnan(double)` is a POSIXism

	- `isnan` is something relatively new.  We need to provide one for
	  those systems without it.  However:
	- X/Open defines `int isnan(double)`. Note the `int`.
	- C99 defines `isnan(x)` to be a macro.
	- C++11 nukes them all, undefines all the "masking macro"s, and
	  defines its own `bool isnan(double)`.  Note the `bool`.
	- In C++, `int isnan(double)` and `bool isnan(double)` are
	  incompatible.
	- So the mess.

	[Bug #14816][ruby-core:87364]
	further reading: https://developers.redhat.com/blog/2016/02/29/why-cstdlib-is-more-complicated-than-you-might-think/


	include/ruby/missing.h: defined(__cplusplus) before using __cplusplus

	* include/ruby/missing.h (isinf, isnan): For non-C++ programs,
	  defined(__cplusplus) may be needed before using __cplusplus.
	  [Bug #14816]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@64434 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
<entry>
<title>merge revision(s) 62116,62151: [Backport #14425]</title>
<updated>2018-02-20T20:11:47+00:00</updated>
<author>
<name>naruse</name>
<email>naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2018-02-20T20:11:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=18b6b67233a923b53d46533f8fa5db05e7b2fe71'/>
<id>18b6b67233a923b53d46533f8fa5db05e7b2fe71</id>
<content type='text'>
	ruby.h: relax rb_funcall check on extra args for clang

	clang 5.+ (tested clang 7.0.0) seems to be attempting division-by-zero
	and giving a very large number for static args to rb_funcall.

	* include/ruby/ruby.h (rb_varargs_bad_length): relax check for clang
	* ext/-test-/funcall/funcall.c: renamed from passing_block.c
	  define extra_args_name function
	* test/-ext-/funcall/test_funcall.rb: new test
	  [ruby-core:85266] [Bug #14425]

	From: Eric Wong &lt;e@80x24.org&gt;

	ruby.h: relax rb_funcall(obj, id, 0, 0) case only

	* include/ruby/ruby.h (rb_varargs_argc_valid_p): relax rb_funcall
	  check on extra args only if argc == 0, for the compatibility
	  with wrong code which is probably confused with rb_funcallv.
	  [Bug #14425]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@62501 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
	ruby.h: relax rb_funcall check on extra args for clang

	clang 5.+ (tested clang 7.0.0) seems to be attempting division-by-zero
	and giving a very large number for static args to rb_funcall.

	* include/ruby/ruby.h (rb_varargs_bad_length): relax check for clang
	* ext/-test-/funcall/funcall.c: renamed from passing_block.c
	  define extra_args_name function
	* test/-ext-/funcall/test_funcall.rb: new test
	  [ruby-core:85266] [Bug #14425]

	From: Eric Wong &lt;e@80x24.org&gt;

	ruby.h: relax rb_funcall(obj, id, 0, 0) case only

	* include/ruby/ruby.h (rb_varargs_argc_valid_p): relax rb_funcall
	  check on extra args only if argc == 0, for the compatibility
	  with wrong code which is probably confused with rb_funcallv.
	  [Bug #14425]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_5@62501 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
<entry>
<title>undef HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR_CONSTANT_P on GCC 4.8</title>
<updated>2017-12-23T16:17:57+00:00</updated>
<author>
<name>naruse</name>
<email>naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2017-12-23T16:17:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=98bddfefc1773dc9a0f3771eb65224c26ee66281'/>
<id>98bddfefc1773dc9a0f3771eb65224c26ee66281</id>
<content type='text'>
GCC 4.8 with optimization causes error if it compiles following code.
[Bug #14221]

```c
__builtin_choose_expr(__builtin_constant_p(b),0,1)
```

https://github.com/ruby/ruby/pull/1778

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61429 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
GCC 4.8 with optimization causes error if it compiles following code.
[Bug #14221]

```c
__builtin_choose_expr(__builtin_constant_p(b),0,1)
```

https://github.com/ruby/ruby/pull/1778

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61429 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
<entry>
<title>force hash values fixable</title>
<updated>2017-12-22T08:52:11+00:00</updated>
<author>
<name>usa</name>
<email>usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2017-12-22T08:52:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=52220154a8310d0140829daa1de665003bb11dec'/>
<id>52220154a8310d0140829daa1de665003bb11dec</id>
<content type='text'>
* include/ruby/ruby.h (RB_ST2FIX): force fixable on LLP64 environment.

* hash.c (any_hash): ditto.
  [ruby-core:84395] [Bug #14218]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61413 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* include/ruby/ruby.h (RB_ST2FIX): force fixable on LLP64 environment.

* hash.c (any_hash): ditto.
  [ruby-core:84395] [Bug #14218]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61413 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
<entry>
<title>compile.c: add a RUBY_EVENT_COVERAGE_LINE event for line coverage</title>
<updated>2017-12-20T04:24:14+00:00</updated>
<author>
<name>mame</name>
<email>mame@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2017-12-20T04:24:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=c08e8886badd47890a54bdc54f1c09de7ad5c8e8'/>
<id>c08e8886badd47890a54bdc54f1c09de7ad5c8e8</id>
<content type='text'>
2.5's line coverage measurement was about two times slower than 2.4
because of two reasons; (1) vm_trace uses rb_iseq_event_flags (which
takes O(n) currently where n is the length of iseq) to get an event
type, and (2) RUBY_EVENT_LINE uses setjmp to call an event hook.

This change adds a special event for line coverage,
RUBY_EVENT_COVERAGE_LINE, and adds `tracecoverage` instructions where
the event occurs in iseq.
`tracecoverage` instruction calls an event hook without vm_trace.
And, RUBY_EVENT_COVERAGE_LINE is an internal event which does not
use setjmp.

This change also cancells lineno change due to the deletion of trace
instructions [Feature #14104].  So fixes [Bug #14191].

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61350 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
2.5's line coverage measurement was about two times slower than 2.4
because of two reasons; (1) vm_trace uses rb_iseq_event_flags (which
takes O(n) currently where n is the length of iseq) to get an event
type, and (2) RUBY_EVENT_LINE uses setjmp to call an event hook.

This change adds a special event for line coverage,
RUBY_EVENT_COVERAGE_LINE, and adds `tracecoverage` instructions where
the event occurs in iseq.
`tracecoverage` instruction calls an event hook without vm_trace.
And, RUBY_EVENT_COVERAGE_LINE is an internal event which does not
use setjmp.

This change also cancells lineno change due to the deletion of trace
instructions [Feature #14104].  So fixes [Bug #14191].

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61350 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
<entry>
<title>suppress warning: 'const' attribute on function returning 'void'</title>
<updated>2017-12-18T09:03:59+00:00</updated>
<author>
<name>naruse</name>
<email>naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2017-12-18T09:03:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=027b576b31cd12bad575b3a39476726273f58c41'/>
<id>027b576b31cd12bad575b3a39476726273f58c41</id>
<content type='text'>
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61323 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61323 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
<entry>
<title>Add FrozenError as a subclass of RuntimeError</title>
<updated>2017-12-12T00:46:34+00:00</updated>
<author>
<name>shyouhei</name>
<email>shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2017-12-12T00:46:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=b57915eddc91ce0369ae8bcf82d8c4364f42ea05'/>
<id>b57915eddc91ce0369ae8bcf82d8c4364f42ea05</id>
<content type='text'>
FrozenError will be used instead of RuntimeError for exceptions
raised when there is an attempt to modify a frozen object. The
reason for this change is to differentiate exceptions related
to frozen objects from generic exceptions such as those generated
by Kernel#raise without an exception class.

From: Jeremy Evans &lt;code@jeremyevans.net&gt;
Signed-off-by: Urabe Shyouhei &lt;shyouhei@ruby-lang.org&gt;


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61131 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
FrozenError will be used instead of RuntimeError for exceptions
raised when there is an attempt to modify a frozen object. The
reason for this change is to differentiate exceptions related
to frozen objects from generic exceptions such as those generated
by Kernel#raise without an exception class.

From: Jeremy Evans &lt;code@jeremyevans.net&gt;
Signed-off-by: Urabe Shyouhei &lt;shyouhei@ruby-lang.org&gt;


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61131 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
<entry>
<title>undef previous definition of `SIZEOF_STRUCT_STAT_ST_INO`</title>
<updated>2017-12-11T16:06:41+00:00</updated>
<author>
<name>usa</name>
<email>usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2017-12-11T16:06:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=f623428d1a82409382548a37b5e63ea69b47aef9'/>
<id>f623428d1a82409382548a37b5e63ea69b47aef9</id>
<content type='text'>
trying to solve build problem of MinGW.  see [Bug #14165]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61119 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
trying to solve build problem of MinGW.  see [Bug #14165]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61119 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
<entry>
<title>extern rb_time_utc_offset to get utc offset</title>
<updated>2017-12-11T12:09:47+00:00</updated>
<author>
<name>naruse</name>
<email>naruse@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2017-12-11T12:09:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=189ecfd2eb80b2175a1b5201107bb13996b5adb5'/>
<id>189ecfd2eb80b2175a1b5201107bb13996b5adb5</id>
<content type='text'>
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61116 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61116 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</pre>
</div>
</content>
</entry>
<entry>
<title>support 128bit ino on Windows (if available)</title>
<updated>2017-12-10T17:26:58+00:00</updated>
<author>
<name>usa</name>
<email>usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e</email>
</author>
<published>2017-12-10T17:26:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=91de3d6539ca93366cf5f5de0a26b4474ccecab2'/>
<id>91de3d6539ca93366cf5f5de0a26b4474ccecab2</id>
<content type='text'>
* win32/win32.c, include/ruby/win32.h (stati128, rb_{,u,l,ul}stati128): rename
  from stati64ns, change the type of st_ino to 64bit and added st_inohigh.

* dir.c, file.c (stat, lstat): follow above changes.

* file.c (rb_stat_ino): support 128bit ino.

* win32/win32.c (rb_{,u,l,ul}stati128): ditto.
  [Feature #13731]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61096 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* win32/win32.c, include/ruby/win32.h (stati128, rb_{,u,l,ul}stati128): rename
  from stati64ns, change the type of st_ino to 64bit and added st_inohigh.

* dir.c, file.c (stat, lstat): follow above changes.

* file.c (rb_stat_ino): support 128bit ino.

* win32/win32.c (rb_{,u,l,ul}stati128): ditto.
  [Feature #13731]


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