1.8.5 release schedule?

In article [email protected],
[email protected] writes:

bind e$B$9$k%"%I%l%9$re(B 127.0.0.1 e$B$K$9$k$He(B cygwin e$B$G$bLa$C$F$-$^$9$,!"7k2L$,e(B
e$B0c$$$^$9$M!#e(B

u2.send(“127.0.0.1”, 0, u1.getsockname)

e$BAw$k%G!<%?$,e(B “127.0.0.1” e$B$K$J$C$F$^$9$,!"$3$3$,e(B “”
e$B$@$H$I$&e(B
e$B$G$7$g$&!#e(B

send e$B$NBh0l0z?t$,e(B mesg e$B$J$N$GJQ$o$C$FEvA3$G$7$?e(B orz
e$B6u$@$H%@%a$G$9$Me(B.

$ /usr/local/ruby-1.8.5-preview1/bin/ruby -rsocket -ve ’

u1 = UDPSocket.new
u2 = UDPSocket.new
u1.bind(“127.0.0.1”, 0)
u2.send("", 0, u1.getsockname)
p u1.recv(10)

ruby 1.8.5 (2006-06-22) [i386-cygwin]

-e:6:in `recv’: Interrupt
from -e:6

$ /usr/local/ruby-1.8.5-preview1/bin/ruby -rsocket -ve ’
u1 = UDPSocket.new
u2 = UDPSocket.new
u1.bind(“127.0.0.1”, 0)
u2.send(“a”, 0, u1.getsockname)
p u1.recv(10)

ruby 1.8.5 (2006-06-22) [i386-cygwin]
“a”

$ /usr/local/ruby-1.8.5-preview1/bin/ruby -rsocket -ve ’
u1 = UDPSocket.new
u2 = UDPSocket.new
u1.bind("", 0)
u2.send(“a”, 0, u1.getsockname)
p u1.recv(10)

ruby 1.8.5 (2006-06-22) [i386-cygwin]
-e:5:in `send’: Cannot assign requested address - send(2)
(Errno::EADDRNOTAVAIL)

    from -e:5

Cygwin @ WindowsXP SP2 e$B$G$9!#e(B
bind e$B$9$k%"%I%l%9$re(B 127.0.0.1 e$B$K$9$k$He(B cygwin
e$B$G$bLa$C$F$-$^$9$,!"7k2L$,e(B
e$B0c$$$^$9$M!#e(B

$ uname -a
CYGWIN_NT-5.1 YUMI 1.5.19(0.150/4/2) 2006-01-20 13:28 i686 Cygwin

$ /usr/local/ruby-1.8.5-preview1/bin/ruby -rsocket -ve ’
u1 = UDPSocket.new
u2 = UDPSocket.new
u1.bind("", 0)
u2.send("", 0, u1.getsockname)
p u1.recv(10)

ruby 1.8.5 (2006-06-22) [i386-cygwin]
-e:6:in `recv’: Interrupt
from -e:6

$ /usr/local/ruby-1.8.5-preview1/bin/ruby -rsocket -ve ’
u1 = UDPSocket.new
u2 = UDPSocket.new
u1.bind(“127.0.0.1”, 0)
u2.send(“127.0.0.1”, 0, u1.getsockname)
p u1.recv(10)

ruby 1.8.5 (2006-06-22) [i386-cygwin]
“127.0.0.1”

e$B$A$J$_$Ke(B u1.bind("", 0) e$B;~$Ke(B netstat e$B$G$Oe(B UDP
e$B$NBT$A<u$1$OA}$($F$$$k$h$&e(B
e$B$G$9!#e(B

$ netstat -na|grep UDP
UDP 0.0.0.0:445 :
UDP 127.0.0.1:3177 :
UDP 219.104.42.196:137 :
UDP 219.104.42.196:138 :

$ netstat -na|grep UDP
UDP 0.0.0.0:445 :
UDP 0.0.0.0:3239 :
UDP 127.0.0.1:3177 :
UDP 219.104.42.196:137 :
UDP 219.104.42.196:138 :

e$B0J>e$G$9!#e(B

Ce$B$G=q$$$?%W%m%0%i%`$Ge(B127.0.0.1e$B$K8~$+$C$F6u%G!<%?$rAw$C$?$H$3$mL5;vFO$-$^e(B
e$B$7$?!#e(B
0.0.0.0 e$B$O%@%a$G$7$?!#e(B

127.0.0.1 e$B$K$D$$$F$OAw=PB&$NLdBj$H$$$&$3$H$K$J$k$N$G$7$g$&$+$M!#e(B

$ /usr/local/ruby-1.8.5-preview1/bin/ruby -rsocket -ve ’
u = UDPSocket.new
u.bind(“127.0.0.1”, 0)
p u.recv(10)

ruby 1.8.5 (2006-06-22) [i386-cygwin]
“”

$ cat udptest.c
#include <stdio.h>
#include <stdlib.h>
#include <winsock2.h>
int main(int argc, char argv[]) {
WSADATA wsaData;
SOCKET Socket;
SOCKADDR_IN Addr;
char
Buf = “a”;

WSAStartup(MAKEWORD(2,2), &wsaData);
Socket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
Addr.sin_family = AF_INET;
Addr.sin_port = htons(atoi(argv[1]));
Addr.sin_addr.s_addr = inet_addr(“127.0.0.1”);
sendto(Socket, Buf, 0, 0, (SOCKADDR*)&Addr, sizeof(Addr));
closesocket(Socket);
WSACleanup();
return 0;
}

$ gcc udptest.c -lwsock32
In file included from udptest.c:3:
/usr/lib/gcc/i686-pc-cygwin/3.4.4/…/…/…/…/include/w32api/winsock2.h:103:2:
warning: #warning “fd_set and associated macros have been defined in
sys/types.
This may cause runtime problems with W32 sockets”

$ ./a.exe 4231

ruby e$B$,e(B 0.0.0.0 e$B$GBT$A<u$1$F!"e(BCe$B8@8l%W%m%0%i%`$Ge(B
127.0.0.1 e$B$K6u%Q%1%C%H$re(B
e$BEj$2$F$bFO$-$^$7$?!#e(B

e$B$"$l$3$l$d$C$?$N$rE;$a$k$H$3$s$J46$8$N$h$&$G$9!#e(B

e$B"#6u%Q%1%C%He(B
e$B<u?.B&e(B e$BAw?.B&e(B
e$B!_e(B cygwin-ruby 0.0.0.0 cygwin-ruby 0.0.0.0
e$B!_e(B cygwin-ruby 0.0.0.0 cygwin-ruby 127.0.0.1
e$B!_e(B cygwin-ruby 127.0.0.1 cygwin-ruby 127.0.0.1
e$B!_e(B cygwin-ruby 0.0.0.0 Ce$B8@8le(B 0.0.0.0
e$B!{e(B cygwin-ruby 0.0.0.0 Ce$B8@8le(B 127.0.0.1
e$B!{e(B cygwin-ruby 127.0.0.1 Ce$B8@8le(B 127.0.0.1
e$B!_e(B mswin32-ruby 0.0.0.0 mswin32-ruby 0.0.0.0
e$B!{e(B mswin32-ruby 127.0.0.1 mswin32-ruby 127.0.0.1

e$B"#Hs6u%Q%1%C%He(B
e$B<u?.B&e(B e$BAw?.B&e(B
e$B!_e(B cygwin-ruby 0.0.0.0 cygwin-ruby 0.0.0.0
e$B!{e(B cygwin-ruby 0.0.0.0 cygwin-ruby 127.0.0.1
e$B!{e(B cygwin-ruby 127.0.0.1 cygwin-ruby 127.0.0.1
e$B!{e(B cygwin-ruby 0.0.0.0 Ce$B8@8le(B 127.0.0.1
e$B!{e(B cygwin-ruby 127.0.0.1 Ce$B8@8le(B 127.0.0.1

e$BE;$a$k$He(B

  1. 0.0.0.0 e$B$KAw?.$9$k$3$H$O=PMh$J$$!#e(B
  2. cygwin-ruby e$B$O6u%Q%1%C%H$rAw=P$G$-$J$$!#e(B

e$B$J$s$G$9$+$Me(B…

e$B2<5-$NDL$je(B Winsock2
e$B$r;H$o$:$Ke(BCe$B8@8l$G%W%m%0%i%`$r=q$$$F!"6u%Q%1%C%H$rEje(B
e$B$2$?$H$3$mFO$-$^$;$s$G$7$?!#e(B

$ cat udptest-unix.c
#include <stdlib.h>
#include <cygwin/in.h>
#include <sys/types.h>
#include <sys/socket.h>

int main(int argc, char *argv[]) {
int fd;
struct sockaddr_in sin;
char *addr = “127.0.0.1”;

    fd = socket(AF_INET, SOCK_DGRAM, 0);
    sin.sin_family = PF_INET;
    sin.sin_port = htons(atoi(argv[1]));
    inet_aton(addr, &(sin.sin_addr));
    sendto(fd, "a", 1, 0, (struct sockaddr *)&sin, sizeof(sin));
    close(fd);
    return 0;

}

e$B$h$C$FAw=P$G$-$J$$$N$Oe(B cygwin
e$B$,0-$$$H$$$&$3$H$K$J$k$N$G$7$g$&$+$Me(B…
e$B6u$G$O$J$$%Q%1%C%H$K$D$$$F$OFO$-$^$7$?!#e(B

In article [email protected],
[email protected] writes:

e$B$h$C$FAw=P$G$-$J$$$N$Oe(B cygwin e$B$,0-$$$H$$$&$3$H$K$J$k$N$G$7$g$&$+$Me(B…
e$B6u$G$O$J$$%Q%1%C%H$K$D$$$F$OFO$-$^$7$?!#e(B

cygwin e$B$N3+H/<T$K?R$M$?$$$H$3$m$G$9$M!#e(B

e$B$H$_$?$G$9!#e(B

On Sat, 24 Jun 2006 12:12:32 +0900
Yukihiro M. [email protected] wrote:

e$B@hDx!"CV$-$^$7$?!#e(B

ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.5-preview1.tar.gz

ia64 e$B$Ne(B Red Hat Enterprise Linux AS release 4
e$B4D6-$G;n$7$^$7$?!#e(B

configure e$B$N:G8e$Ke(B

config.status: WARNING: Makefile.in seems to ignore the --datarootdir
setting

e$B$,=P$^$7$?!#e(B

make test-all e$B$Oe(B

1519 tests, 14563 assertions, 1 failures, 0 errors

e$B$G$7$?!#e(B

1 failures e$B$Oe(B

This test is expected to be success with OpenSSL 0.9.7c or later.

e$B$J$N$G!"LdBj$J$$$H;W$$$^$9!#e(B

e$B4d7n$H?=$7$^$9!#e(B

FreeBSD 6.1-STABLE (2006-06-02e$B:"e(B) e$B>e$G;n$7$^$7$?!#e(B

e$BF1$8$h$&$Ke(Bconfiguree$B$N:G8e$G7Y9p$,=P$^$7$?!#e(B

config.status: creating Makefile
config.status: WARNING: …/Makefile.in seems to ignore the
–datarootdir setting

e$B;n$7$Ke(BFreeBSD portse$B$G%$%s%9%H!<%k$7$?e(Bautoconf
2.59e$B$r;H$C$?$H$3$me(B
e$B7Y9p$O=P$J$/$J$j$^$7$?!#e(B

make checke$B$N7k2L$O0J2<$NDL$j$G$7$?!#e(B

1564 tests, 15564 assertions, 0 failures, 0 errors

e$B$H$_$?$G$9!#e(B

[ruby-dev:28600] IO.popen raise Errno::EBADF

e$B$,<h$j9~$^$l$F$$$J$$$h$&$G$9!#FbMF$KLdBj$,$"$j$^$7$?$G$7$g$&$+!#e(B

e$B$H$_$?$G$9!#e(B

On Sun, 25 Jun 2006 22:30:35 +0900
e$B$H$_$?$^$5$R$me(B [email protected] wrote:

  1. Failure:
    test_seqpacket_pair(TestUNIXSocket) [./socket/test_unix.rb:148]:
    <“”> expected but was
    <“haha”>.

e$B$I$&$b!"e(BSolaris e$B$G$Oe(B SOCK_SEQPACKET
e$B;~$K6u%G!<%?$N%Q%1%C%H$OL5$+$C$?$3e(B
e$B$H$K$J$C$F$$$k$h$&$G$9!#e(B

e$B$3$l$,e(B Solaris e$B$N;EMM$J$N$+%P%0$J$N$+!"e(BSVR4
e$B$G$O$3$&$$$&$b$N$J$N$+!"e(B
e$B<B$Oe(B Linux e$B$,FCJL$J$N$+!D$O$o$+$j$^$;$s!#e(B

e$B$H$j$“$($:!”<!$N$h$&$K%F%9%H$r=$@5$7$?$i$&$^$/9T$-$^$7$?!#e(B

— test_unix.rb.orig Sun Jun 18 00:53:28 2006
+++ test_unix.rb Mon Jun 26 00:45:30 2006
@@ -141,14 +141,14 @@
def test_seqpacket_pair
s1, s2 = UNIXSocket.pair(Socket::SOCK_SEQPACKET)
assert_raise(Errno::EAGAIN) { s1.recv_nonblock(10) }

  • s2.send(“”, 0)
  • s2.send(“haha”, 0)
  • s2.send(“”, 0)
  • s2.send(“”, 0)
  • assert_equal(“”, s1.recv(10))
  • assert_equal(“haha”, s1.recv(10))
  • assert_equal(“”, s1.recv(10))
  • assert_equal(“”, s1.recv(10))
  • s2.send(“a”, 0)
  • s2.send(“bc”, 0)
  • s2.send(“d”, 0)
  • s2.send(“efg”, 0)
  • assert_equal(“a”, s1.recv(10))
  • assert_equal(“bc”, s1.recv(10))
  • assert_equal(“d”, s1.recv(10))
  • assert_equal(“efg”, s1.recv(10))
    assert_raise(Errno::EAGAIN) { s1.recv_nonblock(10) }
    rescue Errno::EPROTONOSUPPORT
    ensure

e$B$H$_$?$G$9!#e(B

On Sat, 24 Jun 2006 12:12:32 +0900
Yukihiro M. [email protected] wrote:

e$B@hDx!"CV$-$^$7$?!#e(B

ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.5-preview1.tar.gz

sun4u SunOS 5.9 e$B$G;n$7$F$_$^$7$?!#e(B

configure e$B$N:G8e$Ke(B

config.status: WARNING: Makefile.in seems to ignore the --datarootdir
setting

e$B$,=P$^$7$?!#e(B

make test-all e$B$Oe(B

1430 tests, 13504 assertions, 1 failures, 0 errors

  1. Failure:
    test_seqpacket_pair(TestUNIXSocket) [./socket/test_unix.rb:148]:
    <“”> expected but was
    <“haha”>.

e$B$G$7$?!#e(B

e$B1J0fe(B@e$BCNG=!%6e9)Bg$G$9!%e(B

From: Yukihiro M. [email protected]
Subject: [ruby-dev:28818] ruby 1.8.5 preview1 (Re: Re: 1.8.5 release
schedule?)
Date: Sat, 24 Jun 2006 12:12:32 +0900
Message-ID: [email protected]

e$B@hDx!"CV$-$^$7$?!#e(B
ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.5-preview1.tar.gz

preview1 e$B$ND>A0$Ke(B revert e$B$7$F$7$^$C$?e(B signal e$B$Ne(B patch
e$B$G$9$,!$e(B
e$B$b$72DG=$G$“$l$P!$e(Bpreview1 e$B$KE:IU$N%Q%C%A$r$”$F$Fe(B
e$B%F%9%H$7$F$_$F$$$?$@$1$J$$$G$7$g$&$+!)e(B
e$BLdBj$,$J$5$=$&$J$i!$:FE,MQ$r9M$($F$$$^$9!%e(B

Index: eval.c

RCS file: /var/cvs/src/ruby/eval.c,v
retrieving revision 1.616.2.175
diff -u -r1.616.2.175 eval.c
— eval.c 23 Jun 2006 21:37:08 -0000 1.616.2.175
+++ eval.c 25 Jun 2006 16:01:13 -0000
@@ -3,7 +3,7 @@
eval.e -

$Author: nagai $

  • $Date: 2006/06/23 21:37:08 $
  • $Date: 2006/06/21 08:37:32 $
    created at: Thu Jun 10 14:22:17 JST 1993

    Copyright (C) 1993-2003 Yukihiro M.
    @@ -1342,6 +1342,15 @@
    is_ruby_native_thread() {
    return NATIVETHREAD_EQUAL(ruby_thid, NATIVETHREAD_CURRENT());
    }

+# ifdef HAVE_NATIVETHREAD_KILL
+void
+ruby_native_thread_kill(sig)

  • int sig;
    +{
  • NATIVETHREAD_KILL(ruby_thid, sig);
    +}
    +# endif
    #endif

void
Index: ruby.h

RCS file: /var/cvs/src/ruby/ruby.h,v
retrieving revision 1.97.2.16
diff -u -r1.97.2.16 ruby.h
— ruby.h 23 Jun 2006 21:37:10 -0000 1.97.2.16
+++ ruby.h 25 Jun 2006 16:01:14 -0000
@@ -696,6 +696,9 @@

define NATIVETHREAD_CURRENT() pthread_self()

define NATIVETHREAD_EQUAL(t1,t2) pthread_equal((t1),(t2))

define HAVE_NATIVETHREAD

+# define NATIVETHREAD_KILL(th,sig) pthread_kill((th),(sig))
+# define HAVE_NATIVETHREAD_KILL
#elif defined(_WIN32) || defined(_WIN32_WCE)
typedef DWORD rb_nativethread_t;

define NATIVETHREAD_CURRENT() GetCurrentThreadId()

@@ -703,10 +706,13 @@

define HAVE_NATIVETHREAD

#endif
#ifdef HAVE_NATIVETHREAD
-RUBY_EXTERN int is_ruby_native_thread();
+int is_ruby_native_thread _((void));
#else
#define is_ruby_native_thread() (1)
#endif
+#ifdef HAVE_NATIVETHREAD_KILL
+void ruby_native_thread_kill _((int));
+#endif

#if defined(__cplusplus)
#if 0
Index: signal.c

RCS file: /var/cvs/src/ruby/signal.c,v
retrieving revision 1.50.2.11
diff -u -r1.50.2.11 signal.c
— signal.c 23 Jun 2006 21:37:08 -0000 1.50.2.11
+++ signal.c 25 Jun 2006 16:01:14 -0000
@@ -3,7 +3,7 @@
signal.c -

$Author: nagai $

  • $Date: 2006/06/23 21:37:08 $
  • $Date: 2006/06/21 08:37:32 $
    created at: Tue Dec 20 10:13:44 JST 1994

    Copyright (C) 1993-2003 Yukihiro M.
    @@ -304,6 +304,7 @@
    int safe;
    } trap_list[NSIG];
    static rb_atomic_t trap_pending_list[NSIG];
    +static char rb_trap_accept_nativethreads[NSIG];
    rb_atomic_t rb_trap_pending;
    rb_atomic_t rb_trap_immediate;
    int rb_prohibit_interrupt = 1;
    @@ -335,21 +336,23 @@
    {
    struct sigaction sigact, old;

  • rb_trap_accept_nativethreads[signum] = 0;

  • sigact.sa_handler = handler;
    sigemptyset(&sigact.sa_mask);
    sigact.sa_flags = 0;
    -#if defined(SA_RESTART)
    +# if defined(SA_RESTART)
    /* All other signals but VTALRM shall restart restartable syscall
    VTALRM will cause EINTR to syscall if interrupted.
    /
    if (signum != SIGVTALRM) {
    sigact.sa_flags |= SA_RESTART; /
    SVR4, 4.3+BSD */
    }
    -#endif
    -#ifdef SA_NOCLDWAIT
    +# endif
    +# ifdef SA_NOCLDWAIT
    if (signum == SIGCHLD && handler == SIG_IGN)
    sigact.sa_flags |= SA_NOCLDWAIT;
    -#endif
    +# endif
    sigaction(signum, &sigact, &old);
    return old.sa_handler;
    }
    @@ -361,9 +364,46 @@
    {
    ruby_signal(signum, handler);
    }
    -#else
    -#define ruby_signal(sig,handler) signal((sig),(handler))
    -#endif

+# ifdef HAVE_NATIVETHREAD
+static sighandler_t
+ruby_nativethread_signal(signum, handler)

  • int signum;
  • sighandler_t handler;
    +{
  • sighandler_t old;
  • old = ruby_signal(signum, handler);
  • rb_trap_accept_nativethreads[signum] = 1;
  • return old;
    +}

+void
+posix_nativethread_signal(signum, handler)

  • int signum;
  • sighandler_t handler;
    +{
  • ruby_nativethread_signal(signum, handler);
    +}
    +# endif

+#else /* !POSIX_SIGNAL */
+#define ruby_signal(sig,handler) (rb_trap_accept_nativethreads[sig] =
0, signal((sig),(handler)))
+
+# ifdef HAVE_NATIVETHREAD
+static sighandler_t
+ruby_nativethread_signal(signum, handler)

  • int signum;
  • sighandler_t handler;
    +{
  • sighandler_t old;
  • old = signal(signum, handler);
  • rb_trap_accept_nativethreads[signum] = 1;
  • return old;
    +}
    +# endif
    +#endif /* POSIX_SIGNAL */

static void signal_exec _((int sig));
static void
@@ -394,11 +434,36 @@
break;
}
}

  • else if (trap_list[sig].cmd == Qundef) {
  • rb_thread_signal_exit();
  • }
    else {
    rb_thread_trap_eval(trap_list[sig].cmd, sig, trap_list[sig].safe);
    }
    }

+#if defined(HAVE_NATIVETHREAD) && defined(HAVE_NATIVETHREAD_KILL)
+static void
+sigsend_to_ruby_thread(int sig)
+{
+# ifdef HAVE_SIGPROCMASK

  • sigset_t mask, old_mask;
    +# else
  • int mask, old_mask;
    +# endif

+# ifdef HAVE_SIGPROCMASK

  • sigfillset(&mask);
  • sigprocmask(SIG_BLOCK, &mask, &old_mask);
    +# else
  • mask = sigblock(~0);
  • sigsetmask(mask);
    +# endif
  • ruby_native_thread_kill(sig);
    +}
    +#endif

static RETSIGTYPE sighandler _((int));
static RETSIGTYPE
sighandler(sig)
@@ -414,11 +479,22 @@
rb_bug(“trap_handler: Bad signal %d”, sig);
}

+#if defined(HAVE_NATIVETHREAD) && defined(HAVE_NATIVETHREAD_KILL)

  • if (!is_ruby_native_thread() && !rb_trap_accept_nativethreads[sig])
    {
  •    sigsend_to_ruby_thread(sig);
    
  •    return;
    
  • }
    +#endif

#if !defined(BSD_SIGNAL) && !defined(POSIX_SIGNAL)

  • ruby_signal(sig, sighandler);
  • if (rb_trap_accept_nativethreads[sig]) {
  •    ruby_nativethread_signal(sig, sighandler);
    
  • } else {
  •    ruby_signal(sig, sighandler);
    
  • }
    #endif
  • if (ATOMIC_TEST(rb_trap_immediate)) {
  • if (trap_list[sig].cmd == 0 && ATOMIC_TEST(rb_trap_immediate)) {
    IN_MAIN_CONTEXT(signal_exec, sig);
    ATOMIC_SET(rb_trap_immediate, 1);
    }
    @@ -434,6 +510,13 @@
    sigbus(sig)
    int sig;
    {
    +#if defined(HAVE_NATIVETHREAD) && defined(HAVE_NATIVETHREAD_KILL)
  • if (!is_ruby_native_thread() && !rb_trap_accept_nativethreads[sig])
    {
  •    sigsend_to_ruby_thread(sig);
    
  •    return;
    
  • }
    +#endif
  • rb_bug(“Bus Error”);
    }
    #endif
    @@ -444,6 +527,13 @@
    sigsegv(sig)
    int sig;
    {
    +#if defined(HAVE_NATIVETHREAD) && defined(HAVE_NATIVETHREAD_KILL)
  • if (!is_ruby_native_thread() && !rb_trap_accept_nativethreads[sig])
    {
  •    sigsend_to_ruby_thread(sig);
    
  •    return;
    
  • }
    +#endif
  • rb_bug(“Segmentation fault”);
    }
    #endif
    @@ -772,6 +862,34 @@
    }
    }

+#if 0
+/*

    • If you write a handler which works on any native thread,
    • please enable this function and use it to install the handler,
    • instead of `install_sighandler()'.
  • */
    +#ifdef HAVE_NATIVETHREAD
    +static void
    +install_nativethread_sighandler(signum, handler)
  • int signum;
  • sighandler_t handler;
    +{
  • sighandler_t old;
  • int old_st;
  • old_st = rb_trap_accept_nativethreads[signum];
  • old = ruby_nativethread_signal(signum, handler);
  • if (old != SIG_DFL) {
  •    if (old_st) {
    
  •        ruby_nativethread_signal(signum, old);
    
  •    } else {
    
  •        ruby_signal(signum, old);
    
  •    }
    
  • }
    +}
    +#endif
    +#endif

static void
init_sigchld(sig)
int sig;

e$B$3$s$K$A$O!"$J$+$`$ie(B(e$B$&e(B)e$B$G$9!#e(B

e$B=PCY$l$^$7$?$,!"e(Bmswin32e$B$Oe(B1.8.4e$B$HF1$8$h$&$Ke(B3Fe$B$N$_$G$9!#e(B
(1543 tests, 15384 assertions, 3 failures, 0 errors)

3Fe$B$NCf?H$Oe(B[ruby-dev:28095]e$B$HF1$8$J$N$G$=$A$i$r;2>H$H$$$&$3$He(B
e$B$G!#e(B

OpenSSLe$B$N!"D>$;$k$J$iD>$7$?$$$s$G$9$,e(B…e$B!d$f$>$5$se(B

e$B$=$l$G$O!#e(B

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message “Re: [ruby-dev:28853] Re: ruby 1.8.5 preview1 (Re: Re: 1.8.5
release schedule?)”
on Mon, 26 Jun 2006 00:41:52 +0900, e$B$H$_$?$^$5$R$me(B
[email protected] writes:

|[ruby-dev:28600] IO.popen raise Errno::EBADF
|
|e$B$,<h$j9~$^$l$F$$$J$$$h$&$G$9!#FbMF$KLdBj$,$"$j$^$7$?$G$7$g$&$+!#e(B

e$B$"!"e(B1.9e$B$K$O<h$j9~$s$Ge(B1.8e$B$KF~$l$k$N$rK:$l$F$^$7$?!#e(B

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message “Re: [ruby-dev:28858] Re: ruby 1.8.5 preview1 (Re: Re: 1.8.5
release schedule?)”
on Mon, 26 Jun 2006 10:47:23 +0900, Yukihiro M.
[email protected] writes:

||[ruby-dev:28600] IO.popen raise Errno::EBADF
||
||e$B$,<h$j9~$^$l$F$$$J$$$h$&$G$9!#FbMF$KLdBj$,$“$j$^$7$?$G$7$g$&$+!#e(B
|
|e$B$”!"e(B1.9e$B$K$O<h$j9~$s$Ge(B1.8e$B$KF~$l$k$N$rK:$l$F$^$7$?!#e(B

e$B$h$/8+$?$ie(B1.9e$B$K$b<h$j9~$s$G$^$;$s$G$7$?!#<h$j9~$_$^$9!#e(B

In message [email protected]
on Mon, 26 Jun 2006 00:48:17 +0900,
e$B$H$_$?$^$5$R$me(B [email protected] wrote:

  1. Failure:
    test_seqpacket_pair(TestUNIXSocket) [./socket/test_unix.rb:148]:
    <“”> expected but was
    <“haha”>.

e$B$I$&$b!"e(BSolaris e$B$G$Oe(B SOCK_SEQPACKET e$B;~$K6u%G!<%?$N%Q%1%C%H$OL5$+$C$?$3e(B
e$B$H$K$J$C$F$$$k$h$&$G$9!#e(B
NetBSDe$B$Ne(Bsocket(2)e$B$K$O!"C<@^$C$FLu$9$H!"e(B

SOCK_SEQPACKETe$B$N%=%1%C%H$O!"8GDj$7$?:GBgD9$N7h$a$i$l$?%G!<%?%0e(B
e$B%i%`$r!"=g=x!"?.Mj@-$NJ]>Z$5$l$?!"APJ}8~$N%3%M%/%7%g%s$r4pK\$He(B
e$B$7$?%G!<%?E>Aw$rDs6!$9$k!#e(B
...
e$B$3$N5!G=$O%W%m%H%3%k$K0MB8$7!"e(BPF_NSe$B$K$@$18=:_<BAu$5$l$F$$$k!#e(B

e$B$H$$$&5-=R$,$"$j$^$9!#e(BPF_NSe$B$Oe(B(e$B$[$\e(B)e$B:#$OK4$-!"e(BXNS(by
Xerox)e$B$N%M%C%H%o!<e(B
e$B%/!&%5%]!<%H$K$J$j$^$9!#e(B(FreeBSDe$BJ}LL$Ge(BSPX(Netwaree$B$N%H%i%s%9%]!<%HAXe(B)e$B$re(B
e$B<BAu$7$F$$$?$+$b$7$l$^$;$s!#e(B)

e$B$^$?!"e(Bunix(4)e$B$K$O!"e(B

UNIXe$B%I%a%$%s$Ne(B(e$B%W%m%H%3%ke(B)e$B%U%!%_%j$Oe(BSOCK_STREAMe$B$He(BSOCK_DGRAMe$B$Ne(B
e$B7?$N%=%1%C%H$@$1$r%5%]!<%H$7!"%U%!%$%k%7%9%F%`$N%Q%9L>$r%"%I%le(B
e$B%9$H$7$F;HMQ$9$k!#e(B

e$B$H!“$”$j$^$9!#<B:]!"%+!<%M%k$N%=!<%9e(B(src/sys/kern/uipc_usrreq.c)e$B$Ne(B
e$B%3%a%s%H$K$O!"e(B

/*

  • Unix communications domain.
  • TODO:
  • SEQPACKET, RDM
  • rethink name space problems
  • need a proper out-of-band
    */

e$B$H!“$$$C$?5-=R$,$”$C$F!"e(Bsocket(PF_UNIX, SOCK_SEQPACKET,
0)e$B$H$+$O%(%i!<e(B
e$B$K$J$j$^$9!#e(B

BSDe$B7O$N%=%1%C%H$G$N<BAu$,$3$&$$$&>u67$G$9$+$i!“e(BUNIXe$B%I%a%$%s$Ne(B
SOCK_SEQPACKETe$B$J%=%1%C%H$N5sF0$H$7$F4|BT$9$kF0:n$H$O2?$J$N$+$H$$$C$?e(B
e$BJU$j$+$i0lEY9M$($kI,MW$,$”$k$N$G$O$J$$$G$7$g$&$+!#e(B

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message “Re: [ruby-dev:28886] Re: ruby 1.8.5 preview1”
on Wed, 28 Jun 2006 14:23:47 +0900, Takahiro K.
[email protected] writes:

|e$B$H!“$$$C$?5-=R$,$”$C$F!"e(Bsocket(PF_UNIX, SOCK_SEQPACKET, 0)e$B$H$+$O%(%i!<e(B
|e$B$K$J$j$^$9!#e(B
|
|BSDe$B7O$N%=%1%C%H$G$N<BAu$,$3$&$$$&>u67$G$9$+$i!“e(BUNIXe$B%I%a%$%s$Ne(B
|SOCK_SEQPACKETe$B$J%=%1%C%H$N5sF0$H$7$F4|BT$9$kF0:n$H$O2?$J$N$+$H$$$C$?e(B
|e$BJU$j$+$i0lEY9M$($kI,MW$,$”$k$N$G$O$J$$$G$7$g$&$+!#e(B

e$B$H$$$&$3$H$O!"$3$N%F%9%H$=$N$b$N$r:o$k$Y$-$G$O$J$$$+$H!#e(B

In article [email protected],
Takahiro K. [email protected] writes:

e$B$H$$$&$3$H$O!“$3$N%F%9%H$=$N$b$N$r:o$k$Y$-$G$O$J$$$+$H!#e(B
e$B$O$$!”$9$4$/4JC1$K8@$($P$=$&$$$&$3$H$G$9!#e(B

e$B$J$s$H$J$/=q$$$F$_$?$H$$$&$@$1$J$N$G!“$”$H$G>C$7$F$*$-$^$9!#e(B

In message [email protected]
on Wed, 28 Jun 2006 17:55:09 +0900,
Yukihiro M. [email protected] wrote:

|e$B$H!“$$$C$?5-=R$,$”$C$F!"e(Bsocket(PF_UNIX, SOCK_SEQPACKET, 0)e$B$H$+$O%(%i!<e(B
|e$B$K$J$j$^$9!#e(B
|
|BSDe$B7O$N%=%1%C%H$G$N<BAu$,$3$&$$$&>u67$G$9$+$i!“e(BUNIXe$B%I%a%$%s$Ne(B
|SOCK_SEQPACKETe$B$J%=%1%C%H$N5sF0$H$7$F4|BT$9$kF0:n$H$O2?$J$N$+$H$$$C$?e(B
|e$BJU$j$+$i0lEY9M$($kI,MW$,$”$k$N$G$O$J$$$G$7$g$&$+!#e(B

e$B$H$$$&$3$H$O!“$3$N%F%9%H$=$N$b$N$r:o$k$Y$-$G$O$J$$$+$H!#e(B
e$B$O$$!”$9$4$/4JC1$K8@$($P$=$&$$$&$3$H$G$9!#e(B
UNIXe$B%I%a%$%s$N%=%1%C%H$Ge(BSOCK_SEQPACKETe$B$r;H$C$F$b!“%W%i%C%H%U%)!<%`$K$h$Ce(B
e$B$FF0:n$,MM!9$@$C$?$j!”$=$b$=$b;H$($J$$$H$$$&%1!<%9$,B?$=$&$K;W$($k$+$ie(B
e$B$G$9!#e(B

e$B$b$C$H$b!"e(B

e$B$-$C$A$jF0:n$7$F!"$3$s$JIw$K$H$C$F$b<BMQE*$@e(B!

e$B$H!“$$$&4D6-$,$”$k$N$G$7$?$i!“$=$N8B$j$G$O$”$j$^$;$s!#e(B