[#38080] ポートが閉じているときの例外など — Mitsuru Ogino <ogino@...>

荻野と申します。いつも質問や要望ばかりですみません。

36 messages 2003/08/11
[#38086] Re: ポートが閉じているときの例外など — nobu.nakada@... 2003/08/12

なかだです。

[#38088] Re: ポートが閉じているときの例外など — IWAOKA Masahiro <iwaoka@...> 2003/08/12

いわおかです。

[#38091] Re: ポートが閉じているときの例外など — Mitsuru Ogino <ogino@...> 2003/08/12

荻野です。

[#38092] Re: ポートが閉じているときの例外など — nobu.nakada@... 2003/08/12

なかだです。

[#38093] Re: ポートが閉じているときの例外など — IWAOKA Masahiro <iwaoka@...> 2003/08/12

いわおかです。

[#38095] Re: ポートが閉じているときの例外など — Takahiro Kambe <taca@...> 2003/08/12

In message <20030812150516.GV37221@barber.fe.rn.tuat.ac.jp>

[#38102] Re: ポートが閉じているときの例外など — Tetsuo NAKAGAWA <tet@...> 2003/08/14

中川と申します。

[#38121] Re: ポートが閉じているときの例外など — Takahiro Kambe <taca@...> 2003/08/15

In message <20030814.140757.707824131.tetsuo@sapphire.siz.nes.nec.co.jp>

[#38123] Re: ポートが閉じているときの例外など — nobu.nakada@... 2003/08/16

なかだです。

[#38130] Re: ポートが閉じているときの例外など — Takahiro Kambe <taca@...> 2003/08/16

In message <200308160517.h7G5HcPL012839@sharui.nakada.kanuma.tochigi.jp>

[#38137] Re: ポートが閉じているときの例外など — nobu.nakada@... 2003/08/18

なかだです。

[#38139] Re: ポートが閉じているときの例外など — Takahiro Kambe <taca@...> 2003/08/18

In message <200308180959.h7I9xnb7001977@sharui.nakada.kanuma.tochigi.jp>

[#38122] ruby-tcpwrap and mkmf.rb — Takahiro Kambe <taca@...>

こんにちは。

16 messages 2003/08/16
[#38125] Re: ruby-tcpwrap and mkmf.rb — "Akinori MUSHA" <knu@...> 2003/08/16

At Sat, 16 Aug 2003 12:51:55 +0900,

[#38183] String << の動作につきまして — kuto@...

うと と申します。

44 messages 2003/08/22
[#38187] Re: String << の動作につきまして — Take_tk <ggb03124@...> 2003/08/22

たけ(tk)です。

[#38189] Re: String << の動作につきまして — Tadayoshi Funaba <tadf@...5.so-net.ne.jp> 2003/08/23

ふなばです。

[#38190] Re: String << の動作につきまして — Take_tk <ggb03124@...> 2003/08/23

たけ(tk)です。

[#38191] Re: String << の動作につきまして — Tadayoshi Funaba <tadf@...5.so-net.ne.jp> 2003/08/23

ふなばです。

[#38194] Re: String << の動作につきまして — Take_tk <ggb03124@...> 2003/08/23

たけ(tk)です。

[#38196] Re: String << の動作につきまして — Tadayoshi Funaba <tadf@...5.so-net.ne.jp> 2003/08/23

ふなばです。

[#38203] Re: String << の動作につきまして — 西 啓一朗 <receiver@...> 2003/08/23

ども、西啓一朗@Ktouth Brand. です。

[#38208] Re: String << の動作につきまして — Tadayoshi Funaba <tadf@...5.so-net.ne.jp> 2003/08/23

ふなばです。

[#38211] Re: String << の動作につきまして — 西 啓一朗 <receiver@...> 2003/08/24

ども、西啓一朗@Ktouth Brand. です。

[#38195] 理解の進め方(Re: String << の動作につきまして) — Tadashi Oh-Ya <toy@...>

おおやです。

36 messages 2003/08/23
[#38206] 理解の進め方:シュールな世界 — Take_tk <ggb03124@...> 2003/08/23

たけ(tk)です。

[#38233] シュールな名前 — Take_tk <ggb03124@...> 2003/08/25

たけ(tk)です

[#38198] Tmailで送るメールに日付がつけられなくなりました — 川田誠司 <kawada.seiji@...>

はじめまして

11 messages 2003/08/23

[#38256] かみ砕いた説明をすべき範囲 — 西 啓一朗 <receiver@...>

ども。西啓一朗@Ktouth Brand. です。

41 messages 2003/08/26
[#38258] Re: かみ砕いた説明をすべき範囲 — nobu.nakada@... 2003/08/26

なかだです。

[#38261] Re: かみ砕いた説明をすべき範囲 — Take_tk <ggb03124@...> 2003/08/26

たけ(tk)です

[#38262] Re: かみ砕いた説明をすべき範囲 — nobu.nakada@... 2003/08/26

なかだです。

[#38264] Re: かみ砕いた説明をすべき範囲 — Take_tk <ggb03124@...> 2003/08/26

たけ(tk)です

[#38265] Re: かみ砕いた説明をすべき範囲 — IWAOKA Masahiro <iwaoka@...> 2003/08/26

いわおかです。

[#38267] Re: かみ砕いた説明をすべき範囲 — Take_tk <ggb03124@...> 2003/08/26

たけ(tk)です

[#38273] Re: かみ砕いた説明をすべき範囲 — matz@... (Yukihiro Matsumoto) 2003/08/26

まつもと ゆきひろです

[ruby-list:38172] Re: ruby-tcpwrap and mkmf.rb

From: nobu.nakada@...
Date: 2003-08-20 11:32:32 UTC
List: ruby-list #38172
なかだです。

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はできる。
    中田 伸悦

In This Thread