ruby-dev (Japanese) list archive (unofficial mirror)
 help / color / mirror / Atom feed
* [ruby-dev:47341] LONG_LONG availability
@ 2013-05-13 23:00 Tanaka Akira
  2013-05-15  8:23 ` [ruby-dev:47345] " Tanaka Akira
  0 siblings, 1 reply; 7+ messages in thread
From: Tanaka Akira @ 2013-05-13 23:00 UTC (permalink / raw
  To: ruby developers list

気がついてしまったのですが、Ruby 1.9.2 のころから
include/ruby/ruby.h に以下のコードがあります。

#ifdef SIZEOF_LONG_LONG
typedef char ruby_check_sizeof_long_long[SIZEOF_LONG_LONG ==
sizeof(LONG_LONG) ? 1 : -1];
#endif

手元の GNU/Linux 環境での
.ext/include/x86_64-linux/ruby/config.h には次の定義があります。

#define SIZEOF_LONG_LONG 8
#define SIZEOF___INT64 0

この環境には __int64 はないんですが、SIZEOF___INT64 は定義されています。

同様に long long はなくても SIZEOF_LONG_LONG は定義されるとすると、
#ifdef SIZEOF_LONG_LONG ... #endif は常に条件が成立して、
ruby_check_sizeof_long_long はいつも定義されるように思います。
そうすると LONG_LONG が定義されていない環境ではコンパイルエラーになるはずです。

にもかかわらずそれに関する苦情をみた覚えがありません。
ということはつまり ruby を動かそうとするような環境としては
64bit 整数型 (long long や __int64) がない環境はもはや存在しない、
ということなんでしょうか。
-- 
[田中 哲][たなか あきら][Tanaka Akira]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [ruby-dev:47345] Re: LONG_LONG availability
  2013-05-13 23:00 [ruby-dev:47341] LONG_LONG availability Tanaka Akira
@ 2013-05-15  8:23 ` Tanaka Akira
  2013-05-15  8:29   ` [ruby-dev:47346] " NARUSE, Yui
  2013-05-20  1:15   ` [ruby-dev:47358] " Kenta Murata
  0 siblings, 2 replies; 7+ messages in thread
From: Tanaka Akira @ 2013-05-15  8:23 UTC (permalink / raw
  To: ruby developers list

2013年5月14日 8:00 Tanaka Akira <akr@fsij•org>:
> 気がついてしまったのですが、Ruby 1.9.2 のころから
> include/ruby/ruby.h に以下のコードがあります。
>
> #ifdef SIZEOF_LONG_LONG
> typedef char ruby_check_sizeof_long_long[SIZEOF_LONG_LONG ==
> sizeof(LONG_LONG) ? 1 : -1];
> #endif

この部分はなかださんが変えてしまったので書いておきますが、
少なくとも bigdecimal と dl が無条件に LONG_LONG を使うようで、
LONG_LONG がなくても動くようになったわけではありません。

まぁ、bigdecimal での使い方はひどく怪しくて、
[ruby-dev:47340] はそこから見つけたものですが。
-- 
[田中 哲][たなか あきら][Tanaka Akira]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [ruby-dev:47346] Re: LONG_LONG availability
  2013-05-15  8:23 ` [ruby-dev:47345] " Tanaka Akira
@ 2013-05-15  8:29   ` NARUSE, Yui
  2013-05-15 11:36     ` [ruby-dev:47348] " Zachary Scott
  2013-05-20  1:15   ` [ruby-dev:47358] " Kenta Murata
  1 sibling, 1 reply; 7+ messages in thread
From: NARUSE, Yui @ 2013-05-15  8:29 UTC (permalink / raw
  To: ruby developers list

「Rubyソースコードの仮定事項」に追加してしまいますかねぇ

https://bugs.ruby-lang.org/projects/ruby-trunk/wiki/AssumptionsJa

2013年5月15日 17:23 Tanaka Akira <akr@fsij•org>:
> 2013年5月14日 8:00 Tanaka Akira <akr@fsij•org>:
>> 気がついてしまったのですが、Ruby 1.9.2 のころから
>> include/ruby/ruby.h に以下のコードがあります。
>>
>> #ifdef SIZEOF_LONG_LONG
>> typedef char ruby_check_sizeof_long_long[SIZEOF_LONG_LONG ==
>> sizeof(LONG_LONG) ? 1 : -1];
>> #endif
>
> この部分はなかださんが変えてしまったので書いておきますが、
> 少なくとも bigdecimal と dl が無条件に LONG_LONG を使うようで、
> LONG_LONG がなくても動くようになったわけではありません。
>
> まぁ、bigdecimal での使い方はひどく怪しくて、
> [ruby-dev:47340] はそこから見つけたものですが。
> --
> [田中 哲][たなか あきら][Tanaka Akira]
>



-- 
NARUSE, Yui  <naruse@airemix•jp>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [ruby-dev:47348] Re: LONG_LONG availability
  2013-05-15  8:29   ` [ruby-dev:47346] " NARUSE, Yui
@ 2013-05-15 11:36     ` Zachary Scott
  2013-05-15 12:16       ` [ruby-dev:47349] " NARUSE, Yui
  0 siblings, 1 reply; 7+ messages in thread
From: Zachary Scott @ 2013-05-15 11:36 UTC (permalink / raw
  To: ruby developers list

[-- Attachment #1: Type: text/plain, Size: 1240 bytes --]

Sorry to go off-topic, but is there an English translation for the
Assumptions wiki page? Is it still valid?

On Wednesday, May 15, 2013, NARUSE, Yui wrote:

> 「Rubyソースコードの仮定事項」に追加してしまいますかねぇ
>
> https://bugs.ruby-lang.org/projects/ruby-trunk/wiki/AssumptionsJa
>
> 2013年5月15日 17:23 Tanaka Akira <akr@fsij•org <javascript:;>>:
> > 2013年5月14日 8:00 Tanaka Akira <akr@fsij•org <javascript:;>>:
> >> 気がついてしまったのですが、Ruby 1.9.2 のころから
> >> include/ruby/ruby.h に以下のコードがあります。
> >>
> >> #ifdef SIZEOF_LONG_LONG
> >> typedef char ruby_check_sizeof_long_long[SIZEOF_LONG_LONG ==
> >> sizeof(LONG_LONG) ? 1 : -1];
> >> #endif
> >
> > この部分はなかださんが変えてしまったので書いておきますが、
> > 少なくとも bigdecimal と dl が無条件に LONG_LONG を使うようで、
> > LONG_LONG がなくても動くようになったわけではありません。
> >
> > まぁ、bigdecimal での使い方はひどく怪しくて、
> > [ruby-dev:47340] はそこから見つけたものですが。
> > --
> > [田中 哲][たなか あきら][Tanaka Akira]
> >
>
>
>
> --
> NARUSE, Yui  <naruse@airemix•jp <javascript:;>>
>
>

[-- Attachment #2: Type: text/html, Size: 1887 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [ruby-dev:47349] Re: LONG_LONG availability
  2013-05-15 11:36     ` [ruby-dev:47348] " Zachary Scott
@ 2013-05-15 12:16       ` NARUSE, Yui
  0 siblings, 0 replies; 7+ messages in thread
From: NARUSE, Yui @ 2013-05-15 12:16 UTC (permalink / raw
  To: ruby developers list

It is still valid but there's no English version.
Therefore I add
https://bugs.ruby-lang.org/projects/ruby-trunk/wiki/Assumptions with
google translete ;-)

2013年5月15日 20:36 Zachary Scott <zachary@zacharyscott•net>:
> Sorry to go off-topic, but is there an English translation for the
> Assumptions wiki page? Is it still valid?
>
>
> On Wednesday, May 15, 2013, NARUSE, Yui wrote:
>>
>> 「Rubyソースコードの仮定事項」に追加してしまいますかねぇ
>>
>> https://bugs.ruby-lang.org/projects/ruby-trunk/wiki/AssumptionsJa
>>
>> 2013年5月15日 17:23 Tanaka Akira <akr@fsij•org>:
>> > 2013年5月14日 8:00 Tanaka Akira <akr@fsij•org>:
>> >> 気がついてしまったのですが、Ruby 1.9.2 のころから
>> >> include/ruby/ruby.h に以下のコードがあります。
>> >>
>> >> #ifdef SIZEOF_LONG_LONG
>> >> typedef char ruby_check_sizeof_long_long[SIZEOF_LONG_LONG ==
>> >> sizeof(LONG_LONG) ? 1 : -1];
>> >> #endif
>> >
>> > この部分はなかださんが変えてしまったので書いておきますが、
>> > 少なくとも bigdecimal と dl が無条件に LONG_LONG を使うようで、
>> > LONG_LONG がなくても動くようになったわけではありません。
>> >
>> > まぁ、bigdecimal での使い方はひどく怪しくて、
>> > [ruby-dev:47340] はそこから見つけたものですが。
>> > --
>> > [田中 哲][たなか あきら][Tanaka Akira]
>> >
>>
>>
>>
>> --
>> NARUSE, Yui  <naruse@airemix•jp>
>>
>



-- 
NARUSE, Yui  <naruse@airemix•jp>

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [ruby-dev:47358] Re: LONG_LONG availability
  2013-05-15  8:23 ` [ruby-dev:47345] " Tanaka Akira
  2013-05-15  8:29   ` [ruby-dev:47346] " NARUSE, Yui
@ 2013-05-20  1:15   ` Kenta Murata
  2013-05-20  1:24     ` [ruby-dev:47359] " Tanaka Akira
  1 sibling, 1 reply; 7+ messages in thread
From: Kenta Murata @ 2013-05-20  1:15 UTC (permalink / raw
  To: ruby developers list

[-- Attachment #1: Type: text/plain, Size: 555 bytes --]

むらたです。

2013/5/15 Tanaka Akira <akr@fsij•org>:
> まぁ、bigdecimal での使い方はひどく怪しくて、
> [ruby-dev:47340] はそこから見つけたものですが。

もしかして、

> bigdecimal.c:2186:     vexp = LL3NUM((LONG_LONG)round(d));

ここですよね?

-- 
Kenta Murata
OpenPGP FP = 1D69 ADDE 081C 9CC2 2E54  98C1 CEFE 8AFB 6081 B062

本を書きました!!
『Ruby 逆引きレシピ』 http://www.amazon.co.jp/dp/4798119881/mrkn-22

E-mail: mrkn@mrkn•jp
twitter: http://twitter.com/mrkn/
blog: http://d.hatena.ne.jp/mrkn/

[-- Attachment #2: Type: text/html, Size: 1452 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [ruby-dev:47359] Re: LONG_LONG availability
  2013-05-20  1:15   ` [ruby-dev:47358] " Kenta Murata
@ 2013-05-20  1:24     ` Tanaka Akira
  0 siblings, 0 replies; 7+ messages in thread
From: Tanaka Akira @ 2013-05-20  1:24 UTC (permalink / raw
  To: ruby developers list

2013年5月20日 10:15 Kenta Murata <muraken@gmail•com>:

> もしかして、
>
>> bigdecimal.c:2186:     vexp = LL3NUM((LONG_LONG)round(d));
>
> ここですよね?

はい。そうです。表現可能な範囲を考慮せずに double を LONG_LONG に
cast するなんて怪しいですよね。
-- 
[田中 哲][たなか あきら][Tanaka Akira]

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2013-05-20  1:49 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-05-13 23:00 [ruby-dev:47341] LONG_LONG availability Tanaka Akira
2013-05-15  8:23 ` [ruby-dev:47345] " Tanaka Akira
2013-05-15  8:29   ` [ruby-dev:47346] " NARUSE, Yui
2013-05-15 11:36     ` [ruby-dev:47348] " Zachary Scott
2013-05-15 12:16       ` [ruby-dev:47349] " NARUSE, Yui
2013-05-20  1:15   ` [ruby-dev:47358] " Kenta Murata
2013-05-20  1:24     ` [ruby-dev:47359] " Tanaka Akira

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).