[#38020] irb で %W(#{...}) — yoshihisa masuda <sacong@...>
マスダといいます。
[#38036] undef variable — hirocy <hirocy@...>
hirocyです.
[#38039] proc method — "K.Sasada" <ko1@...>
こんにちは。ささだです。
[#38056] ファイル書換え? — 中村文建 <tx6f-nkmr@...>
初めまして、MLに参加させて頂く中村と申します。
[#38057] [ANN] Ruby-GNOME2-0.6.0 — Masao Mutoh <mutoh@...>
むとうです。
[#38059] [ANN] rbbr-0.3.0 — Masao Mutoh <mutoh@...>
むとうです。
[#38073] module extendable? — Takeshi Horinouchi <horinout@...>
堀之内と申します。
[#38080] ポートが閉じているときの例外など — Mitsuru Ogino <ogino@...>
荻野と申します。いつも質問や要望ばかりですみません。
なかだです。
いわおかです。
荻野です。
なかだです。
いわおかです。
In message <20030812150516.GV37221@barber.fe.rn.tuat.ac.jp>
中川と申します。
In message <20030814.140757.707824131.tetsuo@sapphire.siz.nes.nec.co.jp>
なかだです。
In message <200308160517.h7G5HcPL012839@sharui.nakada.kanuma.tochigi.jp>
なかだです。
In message <200308180959.h7I9xnb7001977@sharui.nakada.kanuma.tochigi.jp>
なかだです。
まつもと ゆきひろです
[#38090] ruby-1.8 で eruby が SEGV — Kazuhiko <kazuhiko@...>
かずひこです。
[#38104] XMLRPC::ModRubyServer — OHARA Shigeki <os@...>
大原です。
[#38122] ruby-tcpwrap and mkmf.rb — Takahiro Kambe <taca@...>
こんにちは。
At Sat, 16 Aug 2003 12:51:55 +0900,
In message <200308160518.h7G5IXPL012842@sharui.nakada.kanuma.tochigi.jp>
なかだです。
In message <200308160714.h7G7ErPL014647@sharui.nakada.kanuma.tochigi.jp>
前田です。
In message <87d6f3znlc.wl@kirk.priv.netlab.jp>
前田です。
わたなべです。
[#38164] Ruby1.8.0でRuby-PostgreSQLがビルドできない — kensaku Maki <sakaki@...>
はじめまして、まきと申します。
[#38183] String << の動作につきまして — kuto@...
うと と申します。
たけ(tk)です。
ふなばです。
たけ(tk)です。
ふなばです。
たけ(tk)です。
ふなばです。
ども、西啓一朗@Ktouth Brand. です。
ふなばです。
ども、西啓一朗@Ktouth Brand. です。
[#38195] 理解の進め方(Re: String << の動作につきまして) — Tadashi Oh-Ya <toy@...>
おおやです。
たけ(tk)です。
In "[ruby-list:38206] 理解の進め方:シュールな世界"
たけ(tk)です
[#38198] Tmailで送るメールに日付がつけられなくなりました — 川田誠司 <kawada.seiji@...>
はじめまして
[#38256] かみ砕いた説明をすべき範囲 — 西 啓一朗 <receiver@...>
ども。西啓一朗@Ktouth Brand. です。
なかだです。
たけ(tk)です
なかだです。
たけ(tk)です
いわおかです。
たけ(tk)です
まつもと ゆきひろです
たけ(tk)です。
たけ(tk)です。
[ruby-list:38172] Re: ruby-tcpwrap and mkmf.rb
なかだです。
At Wed, 20 Aug 2003 12:38:17 +0900,
Shugo Maeda wrote:
> 現状では、やはり最初のパッチのように自前でチェックするしかなさそ
> うなので、そのようにしたものを0.6としてリリースしました。
> RAAに登録してあります。
わたなべさんのブロックを使うという案でいってみました。
これだと、have_libwrapはこういう形になります。
def have_libwrap
have_library("wrap"){|src|src+"int allow_severity, deny_severity;"}
end
このほうが、任意のテストに対して対処できるというメリットがあり
ます。
Index: lib/mkmf.rb
===================================================================
RCS file: /cvs/ruby/src/ruby/lib/mkmf.rb,v
retrieving revision 1.146
diff -u -2 -p -r1.146 mkmf.rb
--- lib/mkmf.rb 16 Aug 2003 14:58:34 -0000 1.146
+++ lib/mkmf.rb 20 Aug 2003 09:02:40 -0000
@@ -195,12 +195,14 @@ end
def create_tmpsrc(src)
+ src = yield(src) if block_given?
+ src = src.sub(/[^\n]\z/, "\\&\n")
open(CONFTEST_C, "w") do |cfile|
cfile.print src
end
+ src
end
-def try_do(src, command)
- src = src.sub(/[^\n]\z/, "\\&\n")
- create_tmpsrc(src)
+def try_do(src, command, &b)
+ src = create_tmpsrc(src, &b)
xsystem(command)
ensure
@@ -235,22 +237,22 @@ def libpathflag(libpath=$LIBPATH)
end
-def try_link0(src, opt="")
- try_do(src, link_command("", opt))
+def try_link0(src, opt="", &b)
+ try_do(src, link_command("", opt), &b)
end
-def try_link(src, opt="")
- try_link0(src, opt)
+def try_link(src, opt="", &b)
+ try_link0(src, opt, &b)
ensure
rm_f "conftest*", "c0x32*"
end
-def try_compile(src, opt="")
- try_do(src, cc_command(opt))
+def try_compile(src, opt="", &b)
+ try_do(src, cc_command(opt), &b)
ensure
rm_f "conftest*"
end
-def try_cpp(src, opt="")
- try_do(src, cpp_command(CPPOUTFILE, opt))
+def try_cpp(src, opt="", &b)
+ try_do(src, cpp_command(CPPOUTFILE, opt), &b)
ensure
rm_f "conftest*"
@@ -266,18 +268,21 @@ def cpp_include(header)
end
-def try_static_assert(expr, headers = nil, opt = "")
+def try_static_assert(expr, headers = nil, opt = "", &b)
headers = cpp_include(headers)
- try_compile(<<SRC, opt)
+ try_compile(<<SRC, opt, &b)
#{COMMON_HEADERS}
#{headers}
+/*top*/
int tmp[(#{expr}) ? 1 : -1];
SRC
end
-def try_constant(const, headers = nil, opt = "")
+def try_constant(const, headers = nil, opt = "", &b)
+ headers = cpp_include(headers)
if CROSS_COMPILING
- unless try_compile(<<"SRC", opt)
+ unless try_compile(<<"SRC", opt, &b)
#{COMMON_HEADERS}
-#{cpp_include(headers)}
+#{headers}
+/*top*/
int tmp = #{const};
SRC
@@ -307,9 +312,10 @@ SRC
else
src = %{#{COMMON_HEADERS}
-#{cpp_include(headers)}
+#{headers}
#include <stdio.h>
+/*top*/
int main() {printf("%d\\n", (int)(#{const})); return 0;}
}
- if try_link0(src, opt)
+ if try_link0(src, opt, &b)
xpopen("./conftest") do |f|
return Integer(f.gets)
@@ -320,8 +326,9 @@ int main() {printf("%d\\n", (int)(#{cons
end
-def try_func(func, libs, headers = nil)
+def try_func(func, libs, headers = nil, &b)
headers = cpp_include(headers)
- try_link(<<"SRC", libs) or try_link(<<"SRC", libs)
+ try_link(<<"SRC", libs, &b) or try_link(<<"SRC", libs, &b)
#{headers}
+/*top*/
int main() { return 0; }
int t() { #{func}(); return 0; }
@@ -329,4 +336,5 @@ SRC
#{COMMON_HEADERS}
#{headers}
+/*top*/
int main() { return 0; }
int t() { void ((*volatile p)()); p = (void ((*)()))#{func}; return 0; }
@@ -334,7 +342,6 @@ SRC
end
-def egrep_cpp(pat, src, opt="")
- src = src.sub(/[^\n]\z/, "\\&\n")
- create_tmpsrc(src)
+def egrep_cpp(pat, src, opt = "", &b)
+ src = create_tmpsrc(src, &b)
xpopen(cpp_command('', opt)) do |f|
if Regexp === pat
@@ -361,7 +368,8 @@ ensure
end
-def macro_defined?(macro, src, opt="")
+def macro_defined?(macro, src, opt = "", &b)
src = src.sub(/[^\n]\z/, "\\&\n")
- try_cpp(src + <<"SRC", opt)
+ try_cpp(src + <<"SRC", opt, &b)
+/*top*/
#ifndef #{macro}
# error
@@ -370,6 +378,6 @@ SRC
end
-def try_run(src, opt="")
- if try_link0(src, opt)
+def try_run(src, opt = "", &b)
+ if try_link0(src, opt, &b)
xsystem("./conftest")
else
@@ -447,5 +455,5 @@ def checking_for(m)
end
-def have_library(lib, func=nil)
+def have_library(lib, func = nil, &b)
func = "main" if !func or func.empty?
checking_for "#{func}() in -l#{lib}" do
@@ -454,5 +462,5 @@ def have_library(lib, func=nil)
else
libs = append_library($libs, lib)
- if try_func(func, libs)
+ if try_func(func, libs, &b)
$libs = libs
true
@@ -464,10 +472,10 @@ def have_library(lib, func=nil)
end
-def find_library(lib, func, *paths)
+def find_library(lib, func, *paths, &b)
checking_for "#{func}() in -l#{lib}" do
libpath = $LIBPATH
libs = append_library($libs, lib)
begin
- until r = try_func(func, libs) or paths.empty?
+ until r = try_func(func, libs, &b) or paths.empty?
$LIBPATH = libpath | [paths.shift]
end
@@ -483,7 +491,7 @@ def find_library(lib, func, *paths)
end
-def have_func(func, header=nil)
+def have_func(func, headers = nil, &b)
checking_for "#{func}()" do
- if try_func(func, $libs, header)
+ if try_func(func, $libs, headers, &b)
$defs.push(format("-DHAVE_%s", func.upcase))
true
@@ -494,7 +502,7 @@ def have_func(func, header=nil)
end
-def have_header(header)
+def have_header(header, &b)
checking_for header do
- if try_cpp(cpp_include(header))
+ if try_cpp(cpp_include(header), &b)
$defs.push(format("-DHAVE_%s", header.tr("a-z./\055", "A-Z___")))
true
@@ -505,9 +513,10 @@ def have_header(header)
end
-def have_struct_member(type, member, header=nil)
+def have_struct_member(type, member, header = nil, &b)
checking_for "#{type}.#{member}" do
- if try_compile(<<"SRC")
+ if try_compile(<<"SRC", &b)
#{COMMON_HEADERS}
#{cpp_include(header)}
+/*top*/
int main() { return 0; }
int s = (char *)&((#{type}*)0)->#{member} - (char *)0;
@@ -521,13 +530,16 @@ SRC
end
-def have_type(type, header=nil, opt="")
+def have_type(type, header = nil, opt = "", &b)
checking_for type do
- if try_compile(<<"SRC", opt) or try_compile(<<"SRC", opt)
+ header = cpp_include(header)
+ if try_compile(<<"SRC", opt, &b) or try_compile(<<"SRC", opt, &b)
#{COMMON_HEADERS}
-#{cpp_include(header)}
+#{header}
+/*top*/
static #{type} t;
SRC
#{COMMON_HEADERS}
-#{cpp_include(header)}
+#{header}
+/*top*/
static #{type} *t;
SRC
@@ -540,10 +552,10 @@ SRC
end
-def check_sizeof(type, header=nil)
+def check_sizeof(type, header = nil, &b)
expr = "sizeof(#{type})"
m = "checking size of #{type}... "
message "%s", m
Logging::message "check_sizeof: %s--------------------\n", m
- if size = try_constant(expr, header)
+ if size = try_constant(expr, header, &b)
$defs.push(format("-DSIZEOF_%s", type.upcase))
end
--
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
中田 伸悦