[#36672] [Bug #616] instance_eval and Module#to_s — Shyouhei Urabe <redmine@...>

Bug #616: instance_eval and Module#to_s

12 messages 2008/10/06

[#36750] [Bug #650] Marshal.load raises RegexpError — Shyouhei Urabe <redmine@...>

Bug #650: Marshal.load raises RegexpError

30 messages 2008/10/15
[#36769] Re: [Bug #650] Marshal.load raises RegexpError — Yukihiro Matsumoto <matz@...> 2008/10/17

まつもと ゆきひろです

[#36771] Re: [Bug #650] Marshal.load raises RegexpError — Urabe Shyouhei <shyouhei@...> 2008/10/17

卜部です。

[#36772] Re: [Bug #650] Marshal.load raises RegexpError — Yukihiro Matsumoto <matz@...> 2008/10/17

まつもと ゆきひろです

[#36773] Re: [Bug #650] Marshal.load raises RegexpError — Urabe Shyouhei <shyouhei@...> 2008/10/17

卜部です。

[#36784] Re: [Bug #650] Marshal.load raises RegexpError — Yukihiro Matsumoto <matz@...> 2008/10/18

まつもと ゆきひろです

[#36785] Re: [Bug #650] Marshal.load raises RegexpError — Urabe Shyouhei <shyouhei@...> 2008/10/18

卜部です。

[#36793] Re: [Bug #650] Marshal.load raises RegexpError — Yukihiro Matsumoto <matz@...> 2008/10/19

まつもと ゆきひろです

[#36794] Re: [Bug #650] Marshal.load raises RegexpError — Urabe Shyouhei <shyouhei@...> 2008/10/19

Yukihiro Matsumoto さんは書きました:

[#36823] Re: [Bug #650] Marshal.load raises RegexpError — Yukihiro Matsumoto <matz@...> 2008/10/21

まつもと ゆきひろです

[#36830] Re: [Bug #650] Marshal.load raises RegexpError — Urabe Shyouhei <shyouhei@...> 2008/10/21

もとの正規表現にバグがあるのは認めますが、それに巻き込まれてでかいPStore

[#36833] Re: [Bug #650] Marshal.load raises RegexpError — Yukihiro Matsumoto <matz@...> 2008/10/21

まつもと ゆきひろです

[#36764] Re: [ruby-cvs:27036] Ruby:r19818 (trunk): * transcode.c (str_transcode0): String#encode without argument now — Martin Duerst <duerst@...>

まつもとさん、こんばんは。

11 messages 2008/10/17
[#36767] Re: [ruby-cvs:27036] Ruby:r19818 (trunk): * transcode.c (str_transcode0): String#encode without argument now — Yukihiro Matsumoto <matz@...> 2008/10/17

まつもと ゆきひろです

[#36799] Re: [ruby-cvs:27036] Ruby:r19818 (trunk): * transcode.c (str_transcode0): String#encode without argument now — Martin Duerst <duerst@...> 2008/10/20

まつもとさん、こんにちは。

[#36774] ConverterNotFoundError while making Ruby in Windows(trunk) — Masaki Suketa <masaki.suketa@...>

助田です。

13 messages 2008/10/17
[#36797] Re: ConverterNotFoundError while making Ruby in Windows(trunk) — "U.Nakamura" <usa@...> 2008/10/20

こんにちは、なかむら(う)です。

[#36800] Re: ConverterNotFoundError while making Ruby in Windows(trunk) — "U.Nakamura" <usa@...> 2008/10/20

こんにちは、なかむら(う)です。

[#36789] [Bug #660] 数字を3桁ずつコンマで区切るsprintf書式指定 — "rubikitch ." <redmine@...>

Bug #660: 数字を3桁ずつコンマで区切るsprintf書式指定

13 messages 2008/10/19

[#37007] [Bug:1.9] 1+1+1+...+1 dumps core — "Yusuke ENDOH" <mame@...>

遠藤です。

13 messages 2008/10/31

[ruby-dev:36913] dtoa() / freedtoa() の改造

From: Tadashi Saito <shiba@...2.accsnet.ne.jp>
Date: 2008-10-24 17:31:20 UTC
List: ruby-dev #36913
斎藤と申します。

[ruby-dev:32792]の、C API 名前空間のお話の続きです。
10ヶ月前の話で、しかもABIフリーズまで24時間なくて、すみません。
取りこめる範囲だけで結構です。

util.cのfreedtoa()は、名前から察するに同ファイルのdtoa()の内部だけで使われる事を
意図しているのではないでしょうか。staticにしてほしいです。

またdtoa()も、外部に出す必要があるならばprefixを付けてほしいです。util.cの他の
関数を見るならば、ruby_でしょうか。

…というところまでが末尾のパッチの範囲なのですが、疑問に残る点があります。

dtoa()が使われるのはどうもmissing/vsnprintf.cの中、つまりvsnprintf()
(とsnprintf()) が使えない環境のみのようです。
しかしvsnprintf()が存在するような自分の環境でも、使われないdtoa()が定義されて
います。これは本来、必要ない事ではないでしょうか。

思うに、sprintf.cでHAVE_*をチェックせずに
  #include "missing/vsnprintf.c"
しているのが問題だと思うのですが、これにはどんな理由があるのでしょうか。
自分にはちょっと分かりませんでした。

とりあえず
 * freedtoa()を staticに
 * dtoa()を ruby_dtoa()に
するパッチが以下です。検討いただけるとありがたく思います。


Index: sprintf.c
===================================================================
--- sprintf.c   (revision 19921)
+++ sprintf.c   (working copy)
@@ -1083,7 +1083,7 @@
 #undef vsnprintf
 #undef snprintf
 #define FLOATING_POINT 1
-#define BSD__dtoa dtoa
+#define BSD__dtoa ruby_dtoa
 #include "missing/vsnprintf.c"
 
 static int
Index: util.c
===================================================================
--- util.c      (revision 19921)
+++ util.c      (working copy)
@@ -3092,7 +3092,7 @@
  * when MULTIPLE_THREADS is not defined.
  */
 
-void
+static void
 freedtoa(char *s)
 {
     Bigint *b = (Bigint *)((int *)s - 1);
@@ -3139,7 +3139,7 @@
  */
 
 char *
-dtoa(double d, int mode, int ndigits, int *decpt, int *sign, char **rve)
+ruby_dtoa(double d, int mode, int ndigits, int *decpt, int *sign, char **rve)
 {
  /* Arguments ndigits, decpt, sign are similar to those
     of ecvt and fcvt; trailing zeros are suppressed from


--
斎藤ただし

In This Thread

Prev Next