[#9950] [PATCH] merge 1.5 change into 1.4.4 — Katsuyuki Komatsu <komatsu@...>
小松です。
10 messages
2000/06/01
[#9954] Re: [PATCH] merge 1.5 change into 1.4.4
— matz@... (Yukihiro Matsumoto)
2000/06/02
まつもと ゆきひろです
[#9955] Re: [PATCH] merge 1.5 change into 1.4.4
— nagai@...
2000/06/02
永井@知能.九工大です.
[#9980] Array#index(val) vs. Array#value(idx) — Hideto ISHIBASHI <hideto-i@...4u.or.jp>
石橋"rubyholic"秀仁です。
4 messages
2000/06/07
[#9986] % in C — gotoken@... (GOTO Kentaro)
ごとけんです
6 messages
2000/06/08
[#9990] Generational GC — Masato KIYAMA <masato@...>
まさとです.
6 messages
2000/06/09
[#10006] Re: File Utilities — WATANABE Hirofumi <eban@...>
わたなべです.
7 messages
2000/06/10
[#10007] Re: [ruby-talk:03267] Re: mod_ruby error? — Wakou Aoyama <wakou@...>
青山です。
31 messages
2000/06/11
[#10008] Re: [ruby-talk:03267] Re: mod_ruby error?
— Wakou Aoyama <wakou@...>
2000/06/11
青山です。
[#10018] Re: [ruby-talk:03267] Re: mod_ruby error?
— Shugo Maeda <shugo@...>
2000/06/13
前田です。
[#10027] Re: [ruby-talk:03267] Re: mod_ruby error?
— Wakou Aoyama <wakou@...>
2000/06/13
青山です。
[#10028] Re: [ruby-talk:03267] Re: mod_ruby error?
— Wakou Aoyama <wakou@...>
2000/06/13
青山です。
[#10029] Re: [ruby-talk:03267] Re: mod_ruby error?
— Shugo Maeda <shugo@...>
2000/06/13
前田です。
[#10035] Re: [ruby-talk:03267] Re: mod_ruby error?
— Wakou Aoyama <wakou@...>
2000/06/13
青山です。
[#10038] Re: [ruby-talk:03267] Re: mod_ruby error?
— Shugo Maeda <shugo@...>
2000/06/14
前田です。
[#10041] Re: [ruby-talk:03267] Re: mod_ruby error?
— Wakou Aoyama <wakou@...>
2000/06/14
青山です。
[#10045] Re: [ruby-talk:03267] Re: mod_ruby error?
— Wakou Aoyama <wakou@...>
2000/06/14
青山です。
[#10046] Re: [ruby-talk:03267] Re: mod_ruby error?
— Wakou Aoyama <wakou@...>
2000/06/14
青山です。
[#10047] Re: [ruby-talk:03267] Re: mod_ruby error?
— Wakou Aoyama <wakou@...>
2000/06/14
青山です。
[#10048] Re: [ruby-talk:03267] Re: mod_ruby error?
— Wakou Aoyama <wakou@...>
2000/06/14
青山です。
[#10049] Re: mod_ruby error?
— Shugo Maeda <shugo@...>
2000/06/14
前田です。
[#10053] Re: mod_ruby error?
— Wakou Aoyama <wakou@...>
2000/06/15
青山です。
[#10062] Re: mod_ruby error?
— Shugo Maeda <shugo@...>
2000/06/16
前田@出張中です。
[#10063] Re: mod_ruby error?
— Wakou Aoyama <wakou@...>
2000/06/16
青山です。
[#10106] Re: mod_ruby error?
— Shugo Maeda <shugo@...>
2000/06/22
前田です。
[#10144] Re: mod_ruby error?
— Wakou Aoyama <wakou@...>
2000/06/27
青山です。
[#10147] Re: mod_ruby error?
— matz@... (Yukihiro Matsumoto)
2000/06/27
まつもと ゆきひろです
[#10152] Re: mod_ruby error?
— Wakou Aoyama <wakou@...>
2000/06/29
青山です。
[#10019] NT build problem — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
9 messages
2000/06/13
[#10032] compile error on cygwin — "Nobuyoshi.Nakada" <nobu.nakada@...>
なかだです。
4 messages
2000/06/13
[#10050] sleep on Solaris — とみたまさひろ <tommy@...>
とみたです。
5 messages
2000/06/15
[#10069] File::Stat#inspect — Koji Arai <JCA02266@...>
新井です。
7 messages
2000/06/16
[#10081] [PATCH] module === string.extend(module).dup — nobu.nakada@...
なかだです。
9 messages
2000/06/18
[#10083] Re: [PATCH] module === string.extend(module).dup
— matz@... (Yukihiro Matsumoto)
2000/06/18
まつもと ゆきひろです
[#10085] Re: [PATCH] module === string.extend(module).dup
— nobu.nakada@...
2000/06/18
なかだです。
[#10096] Re: [PATCH] module === string.extend(module).dup
— matz@... (Yukihiro Matsumoto)
2000/06/20
まつもと ゆきひろです
[#10097] Re: [PATCH] module === string.extend(module).dup
— nobu.nakada@...
2000/06/20
なかだです。
[#10109] bit fix for net/protocol.rb — Toshiro Kuwabara <toshirok@...3.so-net.ne.jp>
Toshです。
10 messages
2000/06/22
[#10110] Re: bit fix for net/protocol.rb
— "Kikutani, Makoto" <kikutani@...>
2000/06/22
日時 Fri, 23 Jun 2000 02:16:31 +0900 の
[#10125] configure.in — Tadayoshi Funaba <tadf@...>
ふなばです。
14 messages
2000/06/26
[#10126] Re: configure.in
— WATANABE Hirofumi <eban@...>
2000/06/27
わたなべです.
[#10129] Re: configure.in
— Katsuyuki Komatsu <komatsu@...>
2000/06/27
小松です。
[#10135] don't use mktemp() — Shugo Maeda <shugo@...>
前田です。
35 messages
2000/06/27
[#10136] Re: don't use mktemp()
— matz@... (Yukihiro Matsumoto)
2000/06/27
まつもと ゆきひろです
[#10137] Re: don't use mktemp()
— Shugo Maeda <shugo@...>
2000/06/27
前田です。
[#10141] Re: don't use mktemp()
— kjana@... (YANAGAWA Kazuhisa)
2000/06/27
In message <874s6f1rqj.wl@studly.netlab.co.jp>
[#10143] Re: don't use mktemp()
— WATANABE Hirofumi <eban@...>
2000/06/27
わたなべです.
[#10181] Re: don't use mktemp()
— Katsuyuki Komatsu <komatsu@...>
2000/07/03
小松です。
[#10183] Re: don't use mktemp()
— WATANABE Hirofumi <eban@...>
2000/07/03
わたなべです.
[#10188] Re: don't use mktemp()
— KIMURA Koichi <kimura@...>
2000/07/04
[#10189] Re: don't use mktemp()
— "Nobuyoshi.Nakada" <nobu.nakada@...>
2000/07/04
なかだです。
[#10190] Re: don't use mktemp()
— matz@... (Yukihiro Matsumoto)
2000/07/04
まつもと ゆきひろです
[#10145] Re: [ruby-list:23495] Re: Ruby 1.4.5 — Wakou Aoyama <wakou@...>
青山です。
4 messages
2000/06/27
[ruby-dev:10089] Re: [ruby-ext:00646] have_func in extconf.rb
From:
Hiroshi IGARASHI <igarashi@...>
Date:
2000-06-19 14:15:34 UTC
List:
ruby-dev #10089
いがらしです。
去年のメイルですがreplyがつかなかったので……ruby-devに振ります。
At Thu, 02 Dec 1999 15:06:43 +0900,
in [ruby-ext:00646] have_func in extconf.rb,
Hiroshi IGARASHI <igarashi@ueda.info.waseda.ac.jp> wrote:
> mkmf.rbあるいはextmk.rbが提供しているhave_funcメソッドで
> 特定の関数の存在をチェックできるはずですが……
> もし関数と思っていたものがマクロで定義されているとしたら、
> 見つからないことになりますよね。
>
> mkmf.rbなどでは
>
> /* #include <iconv.h> */
> int main() { return 0; }
> int t() { #{func}(); return 0; }
>
> というプログラムをコンパイルすることによって調べているようですが、
> 上のコメントのようにincludeするヘッダファイルも指定できるといいなと
> 思います。例えばhave_func("iconv", "iconv.h")とか。
この通りhave_funcにheaderを指定できるようにしたら、
今度はマクロ定義だけでなくprototype宣言も与えられたため、
単に無引数で呼び出しても引数の検査でコンパイルエラーに
なってしまいます。
[ruby-dev:9974]で、/mswin32|mingw/ =~ RUBY_PLATFORM な環境では
関数呼出と関数ポインタの参照の両方でチェックする必要がある
とのことですが、他の環境でも両方チェックするようにすれば
とりあえず引数検査でのエラーは避けられます。
というわけでパッチをつけておきます。
> iconv()のwrapperを、glibcじゃない怪しげなiconv実装と一緒に
> コンパイルしようとした時にはまりました。
今回は[ruby-list:23353]で紹介されていたiconv実装で試したのですが、
こちらもライブラリにはlibiconv()があって、
iconv.hでは #define iconv libiconv してます。
--
五十嵐 宏 (Hiroshi IGARASHI)
Mon Jun 19 22:21:31 2000 Hiroshi IGARASHI <iga@ruby-lang.org>
* ext/extmk.rb.in: have_func() takes 2nd argument to specify
a header file and do tests twice in all platforms.
* lib/mkmf.rb: ditto.
Index: ext/extmk.rb.in
===================================================================
RCS file: /home/cvs/ruby/ext/extmk.rb.in,v
retrieving revision 1.16
diff -u -r1.16 extmk.rb.in
--- ext/extmk.rb.in 2000/06/12 07:48:25 1.16
+++ ext/extmk.rb.in 2000/06/19 14:04:11
@@ -218,28 +218,30 @@
return true
end
-def have_func(func)
+def have_func(func, header=nil)
libs = $libs
-
- if /mswin32|mingw/ =~ RUBY_PLATFORM
- r = try_link(<<"SRC", libs)
+ src =
+ if /mswin32|mingw/ =~ RUBY_PLATFORM
+ r = <<"SRC"
#include <windows.h>
#include <winsock.h>
+SRC
+ else
+ ""
+ end
+ unless header.nil?
+ src << <<"SRC"
+#include <#{header}>
+SRC
+ end
+ r = try_link(src + <<"SRC", libs)
int main() { return 0; }
int t() { #{func}(); return 0; }
SRC
- unless r
- r = try_link(<<"SRC", libs)
-#include <windows.h>
-#include <winsock.h>
+ unless r
+ r = try_link(src + <<"SRC", libs)
int main() { return 0; }
int t() { void ((*p)()); p = (void ((*)()))#{func}; return 0; }
-SRC
- end
- else
- r = try_link(<<"SRC", libs)
-int main() { return 0; }
-int t() { #{func}(); return 0; }
SRC
end
unless r
Index: lib/mkmf.rb
===================================================================
RCS file: /home/cvs/ruby/lib/mkmf.rb,v
retrieving revision 1.18
diff -u -r1.18 mkmf.rb
--- lib/mkmf.rb 2000/06/19 03:37:55 1.18
+++ lib/mkmf.rb 2000/06/19 14:04:12
@@ -210,31 +210,33 @@
return true
end
-def have_func(func)
+def have_func(func, header=nil)
printf "checking for %s()... ", func
STDOUT.flush
libs = $libs
-
- if /mswin32|mingw/ =~ RUBY_PLATFORM
- r = try_link(<<"SRC", libs)
+ src =
+ if /mswin32|mingw/ =~ RUBY_PLATFORM
+ r = <<"SRC"
#include <windows.h>
#include <winsock.h>
+SRC
+ else
+ ""
+ end
+ unless header.nil?
+ src << <<"SRC"
+#include <#{header}>
+SRC
+ end
+ r = try_link(src + <<"SRC", libs)
int main() { return 0; }
int t() { #{func}(); return 0; }
SRC
- unless r
- r = try_link(<<"SRC", libs)
-#include <windows.h>
-#include <winsock.h>
+ unless r
+ r = try_link(src + <<"SRC", libs)
int main() { return 0; }
int t() { void ((*p)()); p = (void ((*)()))#{func}; return 0; }
-SRC
- end
- else
- r = try_link(<<"SRC", libs)
-int main() { return 0; }
-int t() { #{func}(); return 0; }
SRC
end
unless r