[#19261] lstripped here-document (Re: comments and continuing strings on the next line) — nobu.nakada@...

なかだです。

29 messages 2003/01/01
[#19360] Re: lstripped here-document (Re: comments and continuing strings on the next line) — "K.Kosako" <kosako@...> 2003/01/15

nobu.nakada@nifty.ne.jpさんの

[#19361] Re: lstripped here-document (Re: comments and continuing strings on the next line) — "NAKAMURA, Hiroshi" <nakahiro@...> 2003/01/15

なひです。

[#19364] Re: lstripped here-document (Re: comments and continuing strings on the next line) — nobu.nakada@... 2003/01/17

なかだです。

[#19366] Re: lstripped here-document (Re: comments and continuing strings on the next line) — "NAKAMURA, Hiroshi" <nakahiro@...> 2003/01/17

なひです。

[#19299] [BUG] errno == 0 — Kazuhiro Yoshida <moriq@...>

もりきゅうです。win32だけかもしれません。

22 messages 2003/01/04
[#19301] Re: [BUG] errno == 0 — "U.Nakamura" <usa@...> 2003/01/04

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

[#19302] Re: [BUG] errno == 0 — "U.Nakamura" <usa@...> 2003/01/04

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

[#19303] Re: [BUG] errno == 0 — "U.Nakamura" <usa@...> 2003/01/04

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

[#19304] Re: [BUG] errno == 0 — "U.Nakamura" <usa@...> 2003/01/04

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

[#19306] Re: [BUG] errno == 0 — nobu.nakada@... 2003/01/05

なかだです。

[ruby-dev:19383] detecting features in extconf.rb (Re: [ruby-cvs] rough/ext/zlib: * zlib.c: followed the latest Ruby.)

From: nobu.nakada@...
Date: 2003-01-19 21:23:33 UTC
List: ruby-dev #19383
なかだです。

At Sat, 18 Jan 2003 08:12:14 +0000,
katsu wrote:
>     rough/ext/zlib:
>       ChangeLog extconf.rb zlib.c
>   Log:
>     * zlib.c: followed the latest Ruby.
>     * extconf.rb: ditto.

これ見て思ったんですが

* クロスコンパイルの場合respond_to?は正しくないかも知れない。最
  初あまり考えずに使ってしまったんですが、後から考えると失敗で
  した。

* (パターンをStringで指定すると)egrep_cppはegrepのない環境では
  常に失敗する。

* ライブラリ名は固定ではない。

ということで、extconf.rbでのfeatureの検出方法についてのパッチで
す。

最近のcygwin+mingwだと、1.4.6はコンパイルできないみたいですが、
動作確認状況はこんなところ。

	1.4.6	1.6.8	1.8.0
linux	OK	OK	OK
cygwin	OK	OK	OK
mingw	-	OK	OK
mswin	NG	OK	OK
bccwin	-	-	OK

mswin32版の1.4.6ではやっぱりhave_ruby_funcがちゃんと動きません
が、これはconfig.statusでmkmfのことを考慮してないのとruby本体が
LIBPATHに対応してないせいなので、extconf.rbで処理するのは無理が
あります。まぁどうせ、使ってる人はもういないでしょう。

しかし、Allocation frameworkとかNORETURN()とか、検出が面倒なも
のはrbconfig.rbとかfeature.hみたいので分かるようにしておいたほ
うがいいかも。


Index: ext/zlib/extconf.rb
===================================================================
RCS file: /cvs/ruby/src/rough/ext/zlib/extconf.rb,v
retrieving revision 1.2
diff -u -2 -p -r1.2 extconf.rb
--- ext/zlib/extconf.rb	18 Jan 2003 08:12:14 -0000	1.2
+++ ext/zlib/extconf.rb	19 Jan 2003 16:36:02 -0000
@@ -16,10 +16,6 @@ def have_ruby_func(s)
   oldlibs = $libs
   oldlibpath = $LIBPATH
-  lib = 'ruby'
-  lib = 'libruby' if /mswin32/ =~ RUBY_PLATFORM
-  $libs = append_library($libs, lib)
-  archdir = CONFIG['archdir']
-  archdir ||= "$(libdir)/ruby/$(ruby_version)/$(arch)"      # for ruby-1.4
-  $LIBPATH = [ archdir, CONFIG['compile_dir'] ] + $LIBPATH
+  $libs += " " + CONFIG['LIBRUBYARG']
+  $LIBPATH = [$archdir] + $LIBPATH
   begin
     have_func s, 'ruby.h'
@@ -32,4 +28,9 @@ def have_ruby_func(s)
 end
 
+unless respond_to?(:try_compile)
+  class << self
+    alias try_compile try_link
+  end
+end
 
 dir_config "zlib"
@@ -40,12 +41,5 @@ if have_library('z', 'deflateReset') and
   defines = []
 
-  msg_check "checking for block_given?"   # for ruby-1.4
-  if Kernel.respond_to? :block_given? then
-    print "yes\n"
-    defines << "HAVE_BLOCK_GIVEN_P"
-  else
-    print "no\n"
-  end
-
+  have_ruby_func "rb_block_given_p"       # for ruby-1.4
   have_ruby_func 'rb_str_buf_new'         # for ruby-1.6
   have_ruby_func 'rb_io_print'            # for ruby-1.6
@@ -57,9 +51,9 @@ if have_library('z', 'deflateReset') and
 
   msg_check "checking for new NORETURN"   # for ruby-1.6
-  if egrep_cpp("^NORETURN", "#include \"config.h\"\nNORETURN(exit);\n") then
-    print "no\n"
-  else
+  if try_compile("#include \"config.h\"\nmain(){NORETURN(void exit());}\n") then
     print "yes\n"
     defines << "HAVE_NEW_NORETURN"
+  else
+    print "no\n"
   end
 
Index: ext/zlib/zlib.c
===================================================================
RCS file: /cvs/ruby/src/rough/ext/zlib/zlib.c,v
retrieving revision 1.8
diff -u -2 -p -r1.8 zlib.c
--- ext/zlib/zlib.c	18 Jan 2003 08:44:49 -0000	1.8
+++ ext/zlib/zlib.c	18 Jan 2003 10:40:06 -0000
@@ -11,5 +11,5 @@
 #include <time.h>
 
-#ifndef HAVE_BLOCK_GIVEN_P    /* for Ruby-1.4 */
+#ifndef HAVE_RB_BLOCK_GIVEN_P /* for Ruby-1.4 */
 #define rb_block_given_p()  rb_iterator_p()
 #endif


-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦

In This Thread

Prev Next