[#44566] [Ruby 1.9 - Bug #5386][Open] FiberオブジェクトのGC時にSEGV — Kazuki Tsujimoto <kazuki@...>
[#44581] [Ruby 1.9 - Bug #5419][Open] FileUtils.cp_rの:preserveの動作 — Masatoshi Seki <seki@...>
[#44589] [Ruby 1.9 - Bug #5429][Open] 64ビットなFreeBSDのioctlでビット31が1なリクエストの時の不具合 — Makoto Kishimoto <redmine@...>
2011年11月14日11:25 Tomoyuki Chikanaga <[email protected]>:
[#44604] Ruby 2.0 release plan — "NARUSE, Yui" <naruse@...>
ささださんが既にいくつか 2.0 関連のメールを投げていらっしゃいますが、
sora_h です.
On 10/18/2011 03:49 PM, Shota Fukumori (sora_h) wrote:
RUBY_VERSION の存在をすっかり忘れていました.なるほど.
まつもと ゆきひろです
(2011/10/18 16:15), Yukihiro Matsumoto wrote:
まつもと ゆきひろです
On 10/18/2011 10:16 PM, Yukihiro Matsumoto wrote:
まつもと ゆきひろです
たとえば2.0の次のバージョン番号はどうしますか?
2011年10月20日3:31 Urabe Shyouhei <[email protected]>:
In message <CAK6Hhsqwv0wh8OVBb3Z5BQrh3-7dLHhL-pXvW+CBv8U1rayYZg@mail.gmail.com>
なかだです。
まつもと ゆきひろです
On 10/20/2011 01:45 PM, Yukihiro Matsumoto wrote:
まつもと ゆきひろです
(2011/10/20 13:36), Yukihiro Matsumoto wrote:
まつもと ゆきひろです
(2011/10/20 23:36), Yukihiro Matsumoto wrote:
遠藤です。
2011年10月18日17:41 Yusuke Endoh <[email protected]>:
遠藤です。
2011年10月18日17:43 Yusuke Endoh <[email protected]>:
遠藤です。
まつもとさん
まつもと ゆきひろです
遠藤です。
[#44680] [Ruby 2.0 - Feature #5454] keyword arguments — Yusuke Endoh <mame@...>
[#44688] [ruby-trunk - Bug #5475][Open] r33507以降SolarisでPTYが使えない — Naohisa Goto <ngotogenome@...>
MjAxMRskQkcvGyhCMTAbJEI3bhsoQjI0GyRCRnwbKEIxNjo1NiBOYW9oaXNhIEdvdG8gPG5nb3Rv
[#44702] Re: [ruby-cvs:40712] nobu:r33534 (trunk): * configure.in (RUBY_FUNC_ATTRIBUTE): unset temporary variable. — Tanaka Akira <akr@...>
2011/10/27 <[email protected]>:
boronのお守りをしている西田です.
2011年10月27日19:54 Yuya.Nishida. <[email protected]>:
[#44707] [ruby-trunk - Feature #5512][Open] Integer#/ の改訂 — tadayoshi funaba <redmine@...>
まつもと ゆきひろです
遠藤です。
[#44713] Re: [ruby-changes:21512] akr:r33561 (trunk): * configure.in: check dup3. — KOSAKI Motohiro <kosaki.motohiro@...>
(ruby-devへ河岸をうつします)
[#44719] [ruby-trunk - Feature #5520][Open] Numeric#exact?、Numeric#inexact? の追加 — tadayoshi funaba <redmine@...>
[#44720] [ruby-trunk - Feature #5521][Open] Numeric#rational?、Numeric#complex?、Numeric#float? の追加 — tadayoshi funaba <redmine@...>
まつもと ゆきひろです
むらたです。
[#44734] IO.select timeout — Tanaka Akira <akr@...>
気がついたのですが、IO.select で、timeout を使ったとき、
> 気がついたのですが、IO.select で、timeout を使ったとき、
[#44735] [ruby-trunk - Feature #2968] 数値の正負を返すメソッド — Kenta Murata <muraken@...>
[ruby-dev:44657] [Ruby 1.9 - Bug #5469][Open] Bus Error when accessing NAN and INFINITY
Issue #5469 has been reported by Naohisa Goto.
----------------------------------------
Bug #5469: Bus Error when accessing NAN and INFINITY
http://redmine.ruby-lang.org/issues/5469
Author: Naohisa Goto
Status: Open
Priority: Normal
Assignee:
Category:
Target version:
ruby -v: -
現在、INFINITYやNANが処理系で定義されていない場合、numeric.c 内の以下の変数を使います。
const unsigned char rb_infinity[] = "\x00\x00\x80\x7f";
const unsigned char rb_nan[] = "\x00\x00\xc0\x7f";
(上記はlittle endianの場合のみピックアップ)
しかし、この記述はワード境界のアラインメントを一切考慮していないため、
処理系とCPUアーキテクチャの組み合わせによっては、Bus Error が出ます。
具体的には、Sparc Solaris 10 上の Fujitsu C Compiler 5.6 で作成すると Bus Error が出ました。
以下のパッチのように共用体にすると大丈夫でした。
ただしバイナリ互換性は保たれなくなる気がします。
同じ記述は 1.9.3 にもありますが、メジャーな環境では起きていないようなので、バックポートする必要はないと思います。
===================================================================
--- include/ruby/missing.h (revision 33498)
+++ include/ruby/missing.h (working copy)
@@ -124,20 +124,27 @@
RUBY_EXTERN double cbrt(double);
#endif
+#if !defined(INFINITY) || !defined(NAN)
+union bytestream4_or_float {
+ unsigned char stream[4];
+ float float_value;
+};
+#endif
+
#ifdef INFINITY
# define HAVE_INFINITY
#else
/** @internal */
-RUBY_EXTERN const unsigned char rb_infinity[];
-# define INFINITY (*(float *)rb_infinity)
+RUBY_EXTERN const union bytestream4_or_float rb_infinity;
+# define INFINITY (rb_infinity.float_value)
#endif
#ifdef NAN
# define HAVE_NAN
#else
/** @internal */
-RUBY_EXTERN const unsigned char rb_nan[];
-# define NAN (*(float *)rb_nan)
+RUBY_EXTERN const union bytestream4_or_float rb_nan;
+# define NAN (rb_nan.float_value)
#endif
#ifndef isinf
Index: numeric.c
===================================================================
--- numeric.c (revision 33498)
+++ numeric.c (working copy)
@@ -66,16 +66,16 @@
#ifdef HAVE_INFINITY
#elif !defined(WORDS_BIGENDIAN) /* BYTE_ORDER == LITTLE_ENDIAN */
-const unsigned char rb_infinity[] = "\x00\x00\x80\x7f";
+const union bytestream4_or_float rb_infinity = { 0x00, 0x00, 0x80, 0x7f };
#else
-const unsigned char rb_infinity[] = "\x7f\x80\x00\x00";
+const union bytestream4_or_float rb_infinity = { 0x7f, 0x80, 0x00, 0x00 };
#endif
#ifdef HAVE_NAN
#elif !defined(WORDS_BIGENDIAN) /* BYTE_ORDER == LITTLE_ENDIAN */
-const unsigned char rb_nan[] = "\x00\x00\xc0\x7f";
+const union bytestream4_or_float rb_nan = { 0x00, 0x00, 0xc0, 0x7f };
#else
-const unsigned char rb_nan[] = "\x7f\xc0\x00\x00";
+const union bytestream4_or_float rb_nan = { 0x7f, 0xc0, 0x00, 0x00 };
#endif
#ifndef HAVE_ROUND
--
http://redmine.ruby-lang.org