[ruby-list:4] Re: ruby の install について
From:
matz@... (Yukihiro Matsumoto)
Date:
1995-12-21 09:08:16 UTC
List:
ruby-list #4
まつもと ゆきひろ@トヨタケーラムです.
In message "ruby の install について"
on 95/12/21, KITA Jun-ichiro <kita@skylla.ics.es.osaka-u.ac.jp> writes:
|喜多@阪大情報と申します.
|
|`オブジェクト指向' であることと,`tk へのインターフェースがある' とい
|う点に興味をもったので,ruby をコンパイルしたのですが,いくつか気付い
|た点があったので,参考までに報告させて頂きます.
ありがとうございます.今後ともよろしく.
|等の問題があり,make test で成功するマシンは一台もありません.これはう
|ちの環境がおかしいのでしょうか?
これは配布直前に紛れ込んだバグです.以下のパッチを当ててくだ
さい.以下いくつかパッチがありますが,このメイルを patch -p
にパイプすると全部のパッチが当たるはずです.
--- array.c~ Thu Dec 21 14:39:19 1995
+++ array.c Thu Dec 21 14:36:06 1995
@@ -283,8 +283,8 @@
end = len + end;
if (end < 0) end = 0;
}
- if (len < end) end = len;
- if (beg < end) {
+ if (end > len) end = len;
+ if (beg > end) {
*lenp = 0;
}
else {
--- variable.c~ Thu Dec 21 16:23:39 1995
+++ variable.c Thu Dec 21 16:13:09 1995
@@ -315,7 +315,7 @@
}
static void
-readonly_setter(id, var, val)
+readonly_setter(val, id, var)
ID id;
void *var;
VALUE val;
|まず,configure で生成される Makefile についてですが,make clean する
|と,ext/ で make install されてしまいます.
確かに,これは失敗ですね.これのパッチはこうなります.
--- Makefile.in~ Wed Dec 20 12:06:12 1995
+++ Makefile.in Thu Dec 21 17:39:57 1995
@@ -96 +96 @@
- cd ext; ../ruby ./extmk.rb install
+ cd ext; ../ruby ./extmk.rb clean
|その他に,solaris 2.* では
|-lsocket -lnsl が必要なのに Makefile に記述されていません.
これも修正します.
--- ext/socket/extconf.rb~ Thu Dec 21 17:58:31 1995
+++ ext/socket/extconf.rb Thu Dec 21 17:57:01 1995
@@ -1,0 +2 @@
+have_library("nls", "gethostbyname")
|また,BSD/OS2.0.1 では,READ_DATA_PENDING が ReadDataPending() に
|define されるのですが,リンク時に `ReadDataPending() が無い' と怒られ
|てしまいます.とりあえず
|
|#ifdef bsdi
|# define READ_DATA_PENDING(fp) ((fp)->_r > 0)
|#endif
|
|として逃げていますが,これが正しいかどうかはよく分かりません.
多分,正しいと思います.
--- configure.in~ Wed Dec 6 12:23:41 1995
+++ configure.in Thu Dec 21 18:00:49 1995
@@ -76,3 +76,3 @@
[FILE *f = stdin; f->_cnt = 0;], rb_cv_fcnt="_cnt", )
-if test "$rb_cv_fcnt=" = ""; then
+if test "$rb_cv_fcnt" = ""; then
AC_TRY_COMPILE([#include <stdio.h>],
@@ -80,3 +80,3 @@
fi
-if test "$rb_cv_fcnt=" = ""; then
+if test "$rb_cv_fcnt" = ""; then
AC_TRY_COMPILE([#include <stdio.h>],
@@ -84,3 +84,3 @@
fi
-if test "$rb_cv_fcnt=" = ""; then
+if test "$rb_cv_fcnt" = ""; then
AC_TRY_COMPILE([#include <stdio.h>],
--- configure~ Wed Dec 6 12:23:44 1995
+++ configure Thu Dec 21 18:01:27 1995
@@ -2167,3 +2167,3 @@
-if test "$rb_cv_fcnt=" = ""; then
+if test "$rb_cv_fcnt" = ""; then
cat > conftest.$ac_ext <<EOF
@@ -2184,3 +2184,3 @@
fi
-if test "$rb_cv_fcnt=" = ""; then
+if test "$rb_cv_fcnt" = ""; then
cat > conftest.$ac_ext <<EOF
@@ -2201,3 +2201,3 @@
fi
-if test "$rb_cv_fcnt=" = ""; then
+if test "$rb_cv_fcnt" = ""; then
cat > conftest.$ac_ext <<EOF
|当方ではいくつかのアーキテクチャでコンパイルしてみましたが,
|(configure; make しただけ)
|
|・solaris 2.3 をのせている SS/20 では make test で Segmentation Fault
| して core dump する.これは gcc でも cc でも同じです.test.rb の
| variable のところで core dump します.
上のパッチで直ります.
|・SONY の NEWS(NEWS-OS 4.2.1a,gcc 2.6.3),BSD/OS2.0.1(付属の gcc),
| SS/10(solaris 1.1,cc),HP 9000(HP-UX A.09.05,gcc 2.6.3) で
| は make test で
| not ok array 2
| test failed
| といわれる
これも直ります.
|また,sample の tkbrowse.rb を実行すると,
|
|% ruby tkbrowse.rb
|tkbrowse.rb:10:in `require': No such file to load -- tkscrollbox
|
|といわれてしまいます.lib には tkscrollbox が無いのですが,入れ忘れた
|のではないでしょうか?
そうですね.失敗が多いなあ.以下につけておきます.
--- /dev/null Thu Dec 21 12:35:21 1995
+++ lib/tkscrollbox.rb Tue Dec 19 18:29:05 1995
@@ -0,0 +1,31 @@
+#
+# tkscrollbox.rb - Tk Listbox with Scrollbar
+# as an example of Composite Widget
+# $Date: 1995/12/12 18:21:01 $
+# by Yukihiro Matsumoto <matz@caelum.co.jp>
+
+require 'tk.rb'
+
+class TkScrollbox:TkListbox
+ include TkComposite
+ def initialize_composite
+ list = TkListbox.new(@frame)
+ scroll = TkScrollbar.new(@frame)
+ @path = list.path
+
+ list.yscroll proc{|idx|
+ scroll.set *idx
+ }
+ list.pack 'side'=>'left','fill'=>'both','expand'=>'yes'
+ scroll.command proc{|idx|
+ list.yview *idx
+ }
+ scroll.pack 'side'=>'right','fill'=>'y'
+
+ delegate('DEFALUT', list)
+ delegate('foreground', list, scroll)
+ delegate('background', list, scroll)
+ delegate('borderwidth', @frame)
+ delegate('relief', @frame)
+ end
+end
|以上,指摘だけで申し訳ないですが,参考になれば幸いです.
大変参考になりました.ありがとうございます.
今日中にruby-0.95a.tar.gzを用意します.パッチがうまく当たら
なかったりした場合には,明日にでも
ruby-archive@caelum.co.jp
に'get'というサブジェクトのメイルを送ってください.
# メイリングリストはruby-list@caelum.co.jpです.