< :前の番号
^ :番号順リスト
> :次の番号
P :前の記事
N :次の記事
|<:スレッドの先頭
>|:次のスレッド
^ :返事先
_:自分への返事
>:同じ返事先を持つ記事(前)
<:同じ返事先を持つ記事(後)
---:分割してスレッド表示、再表示
| :分割して(縦)スレッド表示、再表示
~ :スレッドのフレーム消去
.:インデックス
..:インデックスのインデックス
こんにちは、なかむら(う)です。
In message "[ruby-dev:13900] Re: Prototype for rb_gc_mark / volatile in ruby.h"
on 2001/07/17, Kenta MURATA <muraken2 / nifty.com> wrote:
| VC++ の cl.exe で -Za を付けると, MSDN Library で ``Microsoft
| 固有拡張'' として紹介されているものがあらゆる無効になったと思
| います. だから, declspec 等もダメになり, もしかしたら
| __stdcall なんかもダメになるかもしれません.
考えようによっては正しい動作のような気もしないではないですが、
手元に規格書がないのでなんとも言えません。
| > 現状のrubyのソースを考えると、__STDC__を自前で定義するよりも
| > __STDC__でコードを変えてる部分を個別にいじった方が作業量は
| > だいぶ少なそうです。
| > それもなんかやですが、致命的なのはruby.hとregex.cにあるvolatile
| > 絡みくらい(あとはプロトタイプ宣言の有無程度)なので、そこだけ
| > 対応で十分かもしれません。
|
| 僕もその方が懸命だと思います. gcc と同じコードを使う場合は
| VC++ は捨てた方が楽なんですねぇ.
というわけなので、最小限のパッチです。
まぁ、__STDC__の数はたかがしれてるので全部対応してもいいかな
ぁ、とか思いつつありますけど。
Index: ruby.h
===================================================================
RCS file: /src/ruby/ruby.h,v
retrieving revision 1.50
diff -u -p -r1.50 ruby.h
--- ruby.h 2001/07/14 15:17:19 1.50
+++ ruby.h 2001/07/17 00:56:13
@@ -45,7 +45,7 @@ extern "C" {
#define ISDIGIT(c) isdigit((unsigned char)(c))
#define ISXDIGIT(c) isxdigit((unsigned char)(c))
-#ifndef __STDC__
+#if !defined(__STDC__) && !defined(_MSC_VER)
# define volatile
#endif
Index: regex.c
===================================================================
RCS file: /src/ruby/regex.c,v
retrieving revision 1.47
diff -u -p -r1.47 regex.c
--- regex.c 2001/07/14 15:17:19 1.47
+++ regex.c 2001/07/17 00:56:15
@@ -51,7 +51,7 @@
# include <sys/types.h>
#endif
-#ifndef __STDC__
+#if !defined(__STDC__) && !defined(_MSC_VER)
# define volatile
#endif
それでは。
--
U.Nakamura <usa / osb.att.ne.jp>