[#44289] [Ruby 1.9 - Feature #5128][Open] 日本語ドキュメントをUTF-8に — Shyouhei Urabe <shyouhei@...>

34 messages 2011/08/01
[#44293] [Ruby 1.9 - Feature #5128] 日本語ドキュメントをUTF-8に — Nobuyoshi Nakada <nobu@...> 2011/08/01

[#44295] Re: [ruby-dev:44293] [Ruby 1.9 - Feature #5128] 日本語ドキュメントをUTF-8に — Urabe Shyouhei <shyouhei@...> 2011/08/01

(08/01/2011 11:52 AM), Nobuyoshi Nakada wrote:

[#44299] Re: [Ruby 1.9 - Feature #5128] 日本語ドキュメントをUTF-8に — Nobuyoshi Nakada <nobu@...> 2011/08/01

なかだです。

[#44418] [Ruby 1.9 - Feature #5128] 日本語ドキュメントをUTF-8に — Ayumu AIZAWA <ayumu.aizawa@...> 2011/08/24

[#44431] Re: [ruby-dev:44418] [Ruby 1.9 - Feature #5128] 日本語ドキュメントをUTF-8に — KOSAKI Motohiro <kosaki.motohiro@...> 2011/08/27

> あいざわです

[#44443] Re: [Ruby 1.9 - Feature #5128] 日本語ドキュメントをUTF-8に — Ayumu Aizawa <ayumu.aizawa@...> 2011/09/01

あいざわです

[#44315] [Ruby 1.9 - Bug #5139][Open] sigsegv のスタックオーバフロー — Tomoyuki Chikanaga <nagachika00@...>

18 messages 2011/08/02

[#44329] [Ruby 1.9 - Bug #5151][Open] test/socket/test_socket.rb fail when udp connection failed — Ayumu AIZAWA <ayumu.aizawa@...>

16 messages 2011/08/02

[#44368] [Ruby 1.9 - Feature #5180][Open] net/http の接続時に用いる IP アドレスの指定 — Yui NARUSE <naruse@...>

15 messages 2011/08/10

[#44413] [Ruby 1.9 - Bug #5217][Open] lineno is broken when source code has about 7000 lines — Yusuke Endoh <mame@...>

11 messages 2011/08/23

[ruby-dev:44356] [Ruby 1.9 - Bug #5160][Open] Float::INFINITY and Float::NAN incorrect in big endian architecture

From: Naohisa Goto <ngotogenome@...>
Date: 2011-08-05 11:34:27 UTC
List: ruby-dev #44356
Issue #5160 has been reported by Naohisa Goto.

----------------------------------------
Bug #5160: Float::INFINITY and Float::NAN incorrect in big endian architecture
http://redmine.ruby-lang.org/issues/5160

Author: Naohisa Goto
Status: Open
Priority: Normal
Assignee: Naohisa Goto
Category: 
Target version: 1.9.3
ruby -v: ruby 1.9.3dev (2011-08-05) [sparc-solaris2.10]


Big endian のCPUで、BYTE_ORDER が定義(#define)されておらず、かつ、INFINITY や NAN が未定義の環境では、Float::INFINITY および Float::NAN の値が化けてしまいます。(このため、make test-all でいくつかFが出ます。)
具体的には sparc Solaris 10 + gcc 4.4 で発生します。

 % ./miniruby -v -e 'p Float::INFINITY; p Float::NAN'
 ruby 1.9.3dev (2011-08-05) [sparc-solaris2.10]
 4.609571298396486e-41
 6.905458702346266e-41

上記の値をどうにかしてバイト列に戻すと、見事に逆順であるのがわかります。

numeric.c 内では、以下のように byte order をチェックしていますが、
 #elif BYTE_ORDER == LITTLE_ENDIAN
BYTE_ORDER と LITTLE_ENDIAN の両方が未定義のときは、CPUが何であっても little endian 扱いされてしまいます。

解決策としては、configureでbig endianか否かをチェックを行っていて、big endianの場合のみ config.hに定義されるマクロ
 #define WORDS_BIGENDIAN 1
があるので、これを利用するように変更したいと思います。

numeric.c 以外で BYTE_ORDER を直接使っている場所はなさそうでした。
(ext/digest/sha2/ では使っているが、sha2.h 内で #ifdef WORDS_BIGENDIAN にてチェックして必要な定義を行っている。)


-- 
http://redmine.ruby-lang.org

In This Thread

Prev Next