[#6728] Ruby 1.3.3-990507 — matz <matz@...>

Ruby 1.3.3-990507 is out, check out:

34 messages 1999/05/07
[#6731] Re: Ruby 1.3.3-990507 — Katsuyuki Komatsu <komatsu@...> 1999/05/07

小松です。

[#6779] Re: private inner class (Re: Re: class def in class def) — Koji Oda <oda@...1.qnes.nec.co.jp>

小田@QNES です。

13 messages 1999/05/13

[#6789] Ruby 1.3.3-990513 — Yukihiro Matsumoto <matz@...>

Ruby 1.3.3-990513 is out, check out:

59 messages 1999/05/13
[#6811] Re: Ruby 1.3.3-990513 — Koji Oda <oda@...1.qnes.nec.co.jp> 1999/05/14

小田@QNES です。

[#6814] Re: Ruby 1.3.3-990513 — matz@... (Yukihiro Matsumoto) 1999/05/15

まつもと ゆきひろです

[#6821] Re: Ruby 1.3.3-990513 — Koji Oda <oda@...1.qnes.nec.co.jp> 1999/05/16

小田@QNES です。

[#6790] Re: Ruby 1.3.3-990513 — Katsuyuki Komatsu <komatsu@...> 1999/05/13

小松です。

[#6891] Ruby 1.3.3-990518 — Yukihiro Matsumoto <matz@...>

Ruby 1.3.3-990518 is out, check out:

19 messages 1999/05/18

[#6919] ext/socket/getaddrinfo.c tiny fix — Jun-ichiro itojun Hagino <itojun@...>

ext/socket/getaddrinfo.cに以下のpatchをおねがいします。

22 messages 1999/05/20
[#6921] Re: ext/socket/getaddrinfo.c tiny fix — Jun-ichiro itojun Hagino <itojun@...> 1999/05/20

[#7034] Ruby 1.3.4-990531 — Yukihiro Matsumoto <matz@...>

Ruby 1.3.4-990531 is out, check out:

25 messages 1999/05/31

[ruby-dev:6770] Re: Ruby 1.3.3-990507

From: WATANABE Tetsuya <tetsu@...>
Date: 1999-05-13 03:37:06 UTC
List: ruby-dev #6770
渡辺哲也です。

HP-UX 10.20 と HP-UX 11 についてです。

すでに小松さんが HP-UX 10.20 で試されているようなの
ですが、小松さんのパッチ以外でも引かかる部分があり
ました。HP C Compiler は、けっこううるさいので、そ
の関係と思います。

パッチファイルは、個別になっていて使いにくくなって
しまいましたすいません。それと、配布時点のソースへ
のパッチになっているのでそのままではパッチファイル
として使えないと思います。ごめんなさい。

対象は、ext/socket と ext/pty です。

最初に ext/socket から。

addrinfo.h の __P ですが、K&R のときに、関数の「()」
がなくなってしまうための対応です。

socket.c では、マクロ (#ifdef) の「#」が行の先頭に
ないための対応です。

------------------------------
--- addrinfo.h.org	Thu May  6 15:27:35 1999
+++ addrinfo.h	Wed May 12 19:21:57 1999
@@ -66,10 +66,10 @@
 #define freeaddrinfo freeaddrinfo__compat
 
 #ifndef __P
-# ifdef HAVE_PROTOTYPES 1
+# ifdef HAVE_PROTOTYPES
 #  define __P(args) args
 # else
-#  define __P(args)
+#  define __P(args) ()
 # endif
 #endif
 
@@ -134,12 +134,6 @@
 	char	*ai_canonname;	/* canonical name for hostname */
 	struct sockaddr *ai_addr;	/* binary address */
 	struct addrinfo *ai_next;	/* next structure in linked list */
-};
-
-struct sockaddr_storage {
-	u_int8_t __ss_len;
-	u_int8_t __ss_family;
-	u_int8_t fill[126];
 };
 
 extern int getaddrinfo __P((
--- socket.c.org	Fri May  7 17:24:36 1999
+++ socket.c	Wed May 12 19:29:12 1999
@@ -1756,11 +1756,11 @@
 	if (strcmp(STR2CSTR(af), "AF_INET") == 0) {
 	    hints.ai_family = PF_INET;
 	}
-    #ifdef INET6
+#ifdef INET6
 	else if (strcmp(STR2CSTR(af), "AF_INET6") == 0) {
 	    hints.ai_family = PF_INET6;
 	}
-    #endif
+#endif
 	else {
 	    hints.ai_family = PF_UNSPEC;
 	}
------------------------------

次に ext/pty ですが、ANSI-C のプロトタイプが残って
いました。ほかに HP-UX のためにマクロで「hpux」を指
定していたのですが、これは HP C Compiler により、動
くものと動かないものがあります。マニュアルには hpux 
と __hpux があるのですが... で、__hpux は、私が試し
た範囲では使えていますので、修正しました。

------------------------------
--- pty.c.org	Wed May  5 22:46:51 1999
+++ pty.c	Thu May 13 09:38:20 1999
@@ -22,7 +22,7 @@
 #define	DEVICELEN	16
 
 #if !defined(HAVE_OPENPTY)
-#ifdef hpux
+#ifdef __hpux
 char	*MasterDevice = "/dev/ptym/pty%s",
 	*SlaveDevice =  "/dev/pty/tty%s",
 	*deviceNo[] = {
@@ -108,9 +108,10 @@
 };
 
 static void
-set_signal_action(RETSIGTYPE (*action)())
+set_signal_action(action)
+    RETSIGTYPE (*action)();
 {
-#ifdef hpux
+#ifdef __hpux
     struct sigvec sv;
     /*
      * signal SIGCHLD should be delivered on stop of the child
@@ -194,7 +195,9 @@
 static void getDevice _((int*, int*));
 
 static void
-establishShell(char *shellname, struct pty_info *info)
+establishShell(shellname, info)
+    char *shellname;
+    struct pty_info *info;
 {	
     static int		i,j,master,slave,currentPid;
     static char		procName[32];
------------------------------

余談ですが HP-UX の configure の指定方法です。gcc 
は使わない前提です(ある方は gcc で普通にしてくださ
い問題はないと思います)。

HP-UX 10.20 では、次のように指定します。

CC=cc CFLAGS='-O +Onoinline' ./configure

gcc があっても gcc は、使わず HP C Compiler にしま
す。それと、最適化のオプションは上記のようにしてく
ださい。+Onoinline を外すと「node 0」エラーになりま
す。

HP-UX 11 では、HP C Compiler のデフォルトが ANSI-C 
モードになっています。そのため次のように指定します。

CC='cc -Ac' CFLAGS='+O1' ./configure

ここでは、最適化のオプションを +O1 にしています。こ
れ以上では「node 0」エラーになってしまいます。

この「node 0」エラーは、HP C Compiler の最適化の問
題と思われます。

--
WATANABE Tetsuya
 e-mail: Tetsuya_WATANABE@hp.com
         tetsu@jpn.hp.com

In This Thread