[#7954] Doesn't build on Alpha — akira yamada / やまだあきら <akira@...>
8 messages
1999/10/02
[#7956] Re: Doesn't build on Alpha
— Shugo Maeda <shugo@...>
1999/10/02
前田@ruby-lang.org用のサーバ構築中です。
[#7968] array .{first, last, at} — Kazunori NISHI <kazunori@...>
西@九大です。
25 messages
1999/10/07
[#7969] Re: array .{first, last, at}
— nobu.nakada@...
1999/10/07
なかだです。
[#7983] Re: array .{first, last, at}
— Kazunori NISHI <kazunori@...>
1999/10/12
西@九大です。
[#7984] Re: array .{first, last, at}
— matz@... (Yukihiro Matsumoto)
1999/10/12
まつもと ゆきひろです
[#7985] [patch] Array#delete_at w/ minus value
— EGUCHI Osamu <eguchi@...>
1999/10/12
えぐち@エスアンドイーです。
[#8037] no bang method always returned unique?
— EGUCHI Osamu <eguchi@...>
1999/10/16
えぐち@エスアンドイーです。
[#8041] Re: no bang method always returned unique?
— matz@... (Yukihiro Matsumoto)
1999/10/16
まつもと ゆきひろです
[#8043] Re: no bang method always returned unique?
— EGUCHI Osamu <eguchi@...>
1999/10/17
えぐち@エスアンドイー です。
[#7991] Re: [patch] Array#delete_at w/ minus value
— matz@... (Yukihiro Matsumoto)
1999/10/13
まつもと ゆきひろです
[#7994] Re: [patch] Array#delete_at w/ minus value
— EGUCHI Osamu <eguchi@...>
1999/10/13
えぐち@エスアンドイー です。
[#7995] Re: [patch] Array#delete_at w/ minus value
— matz@... (Yukihiro Matsumoto)
1999/10/13
まつもと ゆきひろです
[#7996] Re: [patch] Array#delete_at w/ minus value
— EGUCHI Osamu <eguchi@...>
1999/10/13
えぐち@エスアンドイー です。
[#7997] Re: [patch] Array#delete_at w/ minus value
— matz@... (Yukihiro Matsumoto)
1999/10/13
まつもと ゆきひろです
[#7998] Re: [patch] Array#delete_at w/ minus value
— EGUCHI Osamu <eguchi@...>
1999/10/13
えぐち@エスアンドイー です。
[#7972] socket.c Socket::Constants SOL_TCP — WATANABE Tetsuya <tetsu@...>
渡辺哲也です。
5 messages
1999/10/10
[#7974] [CYGWIN] bug? system() and socket — Shin-ichiro Hara <sinara@...>
原です。
5 messages
1999/10/10
[#7990] socks5 — とみたまさひろ <tommy@...>
とみたです。
16 messages
1999/10/12
[#7992] Re: socks5
— matz@... (Yukihiro Matsumoto)
1999/10/13
まつもと ゆきひろです
[#8003] Re: socks5
— とみたまさひろ <tommy@...>
1999/10/13
とみたです。
[#8004] Re: socks5
— matz@... (Yukihiro Matsumoto)
1999/10/13
まつもと ゆきひろです
[#8014] Re: socks5
— とみたまさひろ <tommy@...>
1999/10/13
とみたです。
[#8026] Re: socks5
— matz@... (Yukihiro Matsumoto)
1999/10/15
まつもと ゆきひろです
[#7993] prime numbers at st.c — Kazuhiro Yoshida <moriq.kazuhiro@...>
もりきゅうです.
2 messages
1999/10/13
[#8005] signal.c in cvs — Masaki Fukushima <fukusima@...>
福嶋です。
6 messages
1999/10/13
[#8020] [PATCH] Win32API — WATANABE Hirofumi <eban@...>
わたなべです.
9 messages
1999/10/14
[#8033] rb_compile_string and rb_load_protect — Masaki Suketa <CQN02273@...>
助田です.
6 messages
1999/10/16
[#8036] Re: rb_compile_string and rb_load_protect
— matz@... (Yukihiro Matsumoto)
1999/10/16
まつもと ゆきひろです
[#8038] [patch] build on sunos4 w/ VPATH fail — EGUCHI Osamu <eguchi@...>
えぐち@エスアンドイー です。
7 messages
1999/10/16
[#8045] signal exception semantics — nobu.nakada@...
なかだです。
7 messages
1999/10/17
[#8048] non terminated string — Minero Aoki <aamine@...>
あおきです。
5 messages
1999/10/17
[#8051] error.c for latest cygwin — WATANABE Hirofumi <eban@...>
わたなべです.
11 messages
1999/10/17
[#8053] Re: error.c for latest cygwin
— matz@... (Yukihiro Matsumoto)
1999/10/18
まつもと ゆきひろです
[#8157] Re: error.c for latest cygwin
— Katsuyuki Komatsu <komatsu@...>
1999/11/01
小松です。
[#8060] Re: [ruby-list:17813] Re: Exception.html & Errno.html for ruby-man-1.4.2-jp — "NAKAMURA, Hiroshi" <nakahiro@...>
なひです.そろそろruby-dev?
4 messages
1999/10/19
[#8078] [patch] File.lchmod and File.lchown — EGUCHI Osamu <eguchi@...>
えぐち@エスアンドイーです。
7 messages
1999/10/20
[#8080] Re: [patch] File.lchmod and File.lchown
— matz@... (Yukihiro Matsumoto)
1999/10/21
まつもと ゆきひろです
[#8081] Re: [patch] File.lchmod and File.lchown
— EGUCHI Osamu <eguchi@...>
1999/10/21
えぐち@エスアンドイー です。
[#8082] Ruby 1.4.2 with Tcl/Tk 8.2 — akira yamada / やまだあきら <akira@...>
9 messages
1999/10/21
[#8129] Re: Ruby 1.4.2 with Tcl/Tk 8.2
— akira yamada / やまだあきら <akira@...>
1999/10/28
[#8090] Re: [ruby-list:17940] Enumerable#collect — Takashi Ikeda <cercine@...>
池田孝志です。
11 messages
1999/10/22
[#8097] Re: [ruby-list:17940] Enumerable#collect
— nobu.nakada@...
1999/10/23
なかだです。
[#8098] Re: [ruby-list:17940] Enumerable#collect
— Takashi Ikeda <cercine@...>
1999/10/23
池田孝志です。
[#8100] Re: [ruby-list:17940] Enumerable#collect
— EGUCHI Osamu <eguchi@...>
1999/10/23
えぐち@エスアンドイー です。
[#8106] Re: [ruby-list:17940] Enumerable#collect
— matz@... (Yukihiro Matsumoto)
1999/10/23
まつもと ゆきひろです
[#8091] named argument? — ttate@...
立石です。
7 messages
1999/10/22
[#8108] Re: [ruby-list:17963] Re: bug? system — ttate@...
立石です。
5 messages
1999/10/23
[#8137] multiple conditional switch — kjana@... (YANAGAWA Kazuhisa)
♪昨日手紙が.... じゃなくて (^^; 今日 ruby 本が届きました.どうもあり
8 messages
1999/10/29
[#8152] Ruby 1.5 (cvs) irb, cgi.rb — Wakou Aoyama <wakou@...>
青山です。
5 messages
1999/10/30
[ruby-dev:8045] signal exception semantics
From:
nobu.nakada@...
Date:
1999-10-17 04:48:50 UTC
List:
ruby-dev #8045
なかだです。
先週から外部と隔離(^^;)されたような状態になってしまって、週末し
かメールを読むことができなくなってしまいました。
んで、忘れないうちに先週ちょっと書いてた signal に関する思い付
きを実験したのを書いておきます。(って備忘録じゃないんだから)
signal のブロックに限らず、例外に処理されたことを通知してやるっ
ていうのはやっぱり不自然でしょうか。
diff --recursive --unified=2 dist/error.c build/error.c
--- dist/error.c Sat Oct 16 23:10:10 1999
+++ build/error.c Sun Oct 17 00:14:53 1999
@@ -384,4 +384,11 @@
}
+static VALUE
+exc_rescued(exc)
+ VALUE exc;
+{
+ return Qnil;
+}
+
#ifdef __BEOS__
typedef struct {
@@ -504,4 +511,12 @@
static void init_syserr _((void));
+static VALUE
+signal_rescued(self)
+ VALUE self;
+{
+ rb_signal_unblock(STR2CSTR(rb_iv_get(self, "mesg")));
+ return exc_rescued(self);
+}
+
void
Init_Exception()
@@ -517,4 +532,5 @@
rb_define_method(rb_eException, "backtrace", exc_backtrace, 0);
rb_define_method(rb_eException, "set_backtrace", exc_set_backtrace, 1);
+ rb_define_private_method(rb_eException, "rescued", exc_rescued, 0);
rb_eSystemExit = rb_define_class("SystemExit", rb_eException);
@@ -522,4 +538,5 @@
rb_eInterrupt = rb_define_class("Interrupt", rb_eException);
rb_eSignal = rb_define_class("SignalException", rb_eException);
+ rb_define_private_method(rb_eSignal, "rescued", signal_rescued, 0);
rb_eStandardError = rb_define_class("StandardError", rb_eException);
diff --recursive --unified=2 dist/eval.c build/eval.c
--- dist/eval.c Sat Oct 16 23:10:10 1999
+++ build/eval.c Sun Oct 17 00:14:54 1999
@@ -2042,9 +2042,14 @@
case NODE_RESCUE:
- retry_entry:
{
volatile VALUE e_info = ruby_errinfo;
+ retry_entry:
PUSH_TAG(PROT_NONE);
+ if (e_info != ruby_errinfo) { /* retrying */
+ if (!NIL_P(ruby_errinfo))
+ rb_funcall2(ruby_errinfo, rb_intern("rescued"), 0, 0);
+ ruby_errinfo = e_info;
+ }
if ((state = EXEC_TAG()) == 0) {
result = rb_eval(self, node->nd_head);
@@ -2056,4 +2061,6 @@
while (resq) {
if (handle_rescue(self, resq)) {
+ volatile VALUE exc = ruby_errinfo;
+
state = 0;
PUSH_TAG(PROT_NONE);
@@ -2068,4 +2075,8 @@
state = 0;
goto retry_entry;
+ }
+ if (exc != ruby_errinfo) {
+ /* rescued successfully or new exception raised */
+ rb_funcall2(exc, rb_intern("rescued"), 0, 0);
}
break;
diff --recursive --unified=2 dist/signal.c build/signal.c
--- dist/signal.c Sat Oct 16 23:10:12 1999
+++ build/signal.c Sun Oct 17 00:14:54 1999
@@ -265,4 +265,10 @@
}
+# ifdef HAVE_SIGPROCMASK
+static sigset_t trap_last_mask;
+# else
+static int trap_last_mask;
+# endif
+
static VALUE trap_list[NSIG];
static int trap_pending_list[NSIG];
@@ -346,4 +352,11 @@
int sig;
{
+#ifdef HAVE_SIGPROCMASK
+ sigaddset(&trap_last_mask, sig);
+ sigprocmask(SIG_SETMASK, &trap_last_mask, NULL);
+#else
+ trap_last_mask |= sigmask(sig);
+ sigsetmask(trap_last_mask);
+#endif
if (sig >= NSIG) {
rb_bug("trap_handler: Bad signal %d", sig);
@@ -365,4 +378,24 @@
}
+void
+rb_signal_unblock(signm)
+ const char* signm;
+{
+ int signo;
+
+ if (strncmp("SIG", signm, 3) == 0)
+ signm += 3;
+ if (!(signo = signm2signo(signm)))
+ return;
+
+#ifdef HAVE_SIGPROCMASK
+ sigdelset(&trap_last_mask, signo);
+ sigprocmask(SIG_SETMASK, &trap_last_mask, NULL);
+#else
+ trap_last_mask &= ~sigmask(signo);
+ sigsetmask(trap_last_mask);
+#endif
+}
+
#ifdef SIGBUS
static RETSIGTYPE
@@ -419,10 +452,4 @@
VALUE sig, cmd;
};
-
-# ifdef HAVE_SIGPROCMASK
-static sigset_t trap_last_mask;
-# else
-static int trap_last_mask;
-# endif
static RETSIGTYPE
--
そうだ 強気に ちょっと インチキに☆彡
中田 "Bugるくらいがちょうどいいかも;-)" 伸悦