[#10481] ruby 1.4.6 preview3 — matz@... (Yukihiro Matsumoto)
8 messages
2000/08/01
[#10496] memory leak? — Minero Aoki <aamine@...>
あおきです。
8 messages
2000/08/02
[#10513] require './rbconfig'; rubytest.rb and instruby.rb — Ryo HAYASAKA <ryoh@...>
早坂@北陸先端です。
4 messages
2000/08/02
[#10595] fileutils.rb (2) — Minero Aoki <aamine@...>
あおきです。
5 messages
2000/08/07
[#10601] RubyCRT.dll for mswin32 — Katsuyuki Komatsu <komatsu@...>
小松です。
5 messages
2000/08/07
[#10626] irb — Kazuhiro NISHIYAMA <zn@...>
irbですが、irb --helpやirb -hでオプションのヘルプがでるように
8 messages
2000/08/12
[#10638] win32 times — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
7 messages
2000/08/15
[#10652] Forward: patches for mktemp -> mkstemp — "Akinori -Aki- MUSHA" <knu@...>
knu です。
5 messages
2000/08/18
[#10655] a regex bug? — "Akinori -Aki- MUSHA" <knu@...>
knu です。
11 messages
2000/08/20
[#10657] Re: a regex bug?
— matz@... (Yukihiro Matsumoto)
2000/08/20
まつもと ゆきひろです
[#10659] Re: a regex bug?
— Tanaka Akira <akr@...17n.org>
2000/08/21
In article <E13QXP4-0004kY-00@ev.netlab.zetabits.co.jp>,
[#10660] Re: a regex bug?
— Tanaka Akira <akr@...17n.org>
2000/08/21
後から気がついたのですが、
[#10661] bmingw package — WATANABE Hirofumi <eban@...>
わたなべです.
49 messages
2000/08/21
[#10664] Re: bmingw package
— "Nobuyoshi.Nakada" <nobu.nakada@...>
2000/08/21
なかだです。
[#10665] Re: bmingw package
— "Nobuyoshi.Nakada" <nobu.nakada@...>
2000/08/21
なかだです。
[#10667] Re: bmingw package
— WATANABE Hirofumi <eban@...>
2000/08/21
わたなべです.
[#10668] Re: bmingw package
— "Nobuyoshi.Nakada" <nobu.nakada@...>
2000/08/22
なかだです。
[#10670] Re: bmingw package
— WATANABE Hirofumi <eban@...>
2000/08/22
わたなべです.
[#10671] Re: bmingw package
— nobu.nakada@...
2000/08/22
なかだです。
[#10673] Re: bmingw package
— WATANABE Hirofumi <eban@...>
2000/08/23
わたなべです.
[#10675] Re: bmingw package
— "Nobuyoshi.Nakada" <nobu.nakada@...>
2000/08/23
なかだです。
[#10693] Re: bmingw package
— WATANABE Hirofumi <eban@...>
2000/08/28
わたなべです.
[#10707] Re: bmingw package
— nobu.nakada@...
2000/08/28
なかだです。
[#10713] Re: bmingw package
— WATANABE Hirofumi <eban@...>
2000/08/29
わたなべです.
[#10717] Re: bmingw package
— "Nobuyoshi.Nakada" <nobu.nakada@...>
2000/08/29
なかだです。
[#10723] Re: bmingw package
— WATANABE Hirofumi <eban@...>
2000/08/30
わたなべです.
[#10797] Re: bmingw package
— "Nobuyoshi.Nakada" <nobu.nakada@...>
2000/09/01
なかだです。
[#10821] Re: bmingw package
— WATANABE Hirofumi <eban@...>
2000/09/04
わたなべです.
[#10824] Re: bmingw package
— "Nobuyoshi.Nakada" <nobu.nakada@...>
2000/09/04
なかだです。
[#10825] Re: bmingw package
— WATANABE Hirofumi <eban@...>
2000/09/04
わたなべです.
[#10827] Re: bmingw package
— "Nobuyoshi.Nakada" <nobu.nakada@...>
2000/09/04
なかだです。
[#10837] Re: bmingw package
— WATANABE Hirofumi <eban@...>
2000/09/05
わたなべです.
[#10838] Re: bmingw package
— "Nobuyoshi.Nakada" <nobu.nakada@...>
2000/09/05
なかだです。
[#10842] Re: bmingw package
— WATANABE Hirofumi <eban@...>
2000/09/05
わたなべです.
[#10849] Re: bmingw package
— nobu.nakada@...
2000/09/05
なかだです。
[#10850] Re: bmingw package
— WATANABE Hirofumi <eban@...>
2000/09/06
わたなべです.
[#10851] Re: bmingw package
— "Nobuyoshi.Nakada" <nobu.nakada@...>
2000/09/06
なかだです。
[#10855] Re: bmingw package
— WATANABE Hirofumi <eban@...>
2000/09/07
わたなべです.
[#10859] Re: bmingw package
— "Nobuyoshi.Nakada" <nobu.nakada@...>
2000/09/07
なかだです。
[#10867] Re: bmingw package
— WATANABE Hirofumi <eban@...>
2000/09/08
わたなべです.
[#10677] Class Variable — Shin-ichiro Hara <sinara@...>
原です。
16 messages
2000/08/24
[#10681] Re: Class Variable
— matz@... (Yukihiro Matsumoto)
2000/08/25
まつもと ゆきひろです
[#10695] Re: Class Variable
— Shin-ichiro Hara <sinara@...>
2000/08/28
原です。
[#10682] [PATCH] win32/config.h.in — nobu.nakada@...
なかだです。
7 messages
2000/08/25
[#10688] ruby-1.6.0-20000824.i586-mswin32 bug — Kazuhiro NISHIYAMA <zn@...>
http://www.geocities.co.jp/SiliconValley-Bay/4076/
34 messages
2000/08/27
[#10692] Re: ruby-1.6.0-20000824.i586-mswin32 bug
— "Nobuyoshi.Nakada" <nobu.nakada@...>
2000/08/28
なかだです。
[#10705] Re: ruby-1.6.0-20000824.i586-mswin32 bug
— Kazuhiro NISHIYAMA <zn@...>
2000/08/28
"Nobuyoshi.Nakada" <nobu.nakada@nifty.ne.jp> wrote:
[#10711] Re: ruby-1.6.0-20000824.i586-mswin32 bug
— "Nobuyoshi.Nakada" <nobu.nakada@...>
2000/08/29
なかだです。
[#10720] Re: ruby-1.6.0-20000824.i586-mswin32 bug
— Katsuyuki Komatsu <komatsu@...>
2000/08/30
小松です.
[#10725] Re: ruby-1.6.0-20000824.i586-mswin32 bug
— "Nobuyoshi.Nakada" <nobu.nakada@...>
2000/08/30
なかだです。
[#10727] Re: ruby-1.6.0-20000824.i586-mswin32 bug
— matz@... (Yukihiro Matsumoto)
2000/08/30
まつもと ゆきひろです
[#10744] Re: ruby-1.6.0-20000824.i586-mswin32 bug
— "Nobuyoshi.Nakada" <nobu.nakada@...>
2000/08/30
なかだです。
[#10805] ruby-1.6.0-20000901.i586-mswin32.lzh
— Kazuhiro NISHIYAMA <zn@...>
2000/09/02
20000901のでもirbでCtrl+Cを押したら落ちました。
[#10807] Re: ruby-1.6.0-20000901.i586-mswin32.lzh
— matz@... (Yukihiro Matsumoto)
2000/09/02
まつもと ゆきひろです
[#10811] Re: Ctrl+C on win32 console <- Re: ruby-1.6.0-20000901.i586-mswin32.lzh
— " たけ (tk)" <ggb03124@...>
2000/09/03
たけ(tk)です。
[#10813] Re: Ctrl+C on win32 console <- Re: ruby-1.6.0-20000901.i586-mswin32.lzh
— nobu.nakada@...
2000/09/03
なかだです。
[#10830] Re: Ctrl+C on win32 console <- Re: ruby-1.6.0-20000901.i586-mswin32.lzh
— " たけ (tk)" <ggb03124@...>
2000/09/04
たけ(tk)です。
[#10832] Re: Ctrl+C on win32 console <- Re: ruby-1.6.0-20000901.i586-mswin32.lzh
— nobu.nakada@...
2000/09/04
なかだです。
[#10844] Re: Ctrl+C on win32 console <- Re: ruby-1.6.0-20000901.i586-mswin32.lzh
— "たけ(tk)" <ggb03124@...>
2000/09/05
たけ(tk)です。
[#10846] Re: Ctrl+C on win32 console <- Re: ruby-1.6.0-20000901.i586-mswin32.lzh
— matz@... (Yukihiro Matsumoto)
2000/09/05
まつもと ゆきひろです
[#10848] Re: Ctrl+C on win32 console <- Re: ruby-1.6.0-20000901.i586-mswin32.lzh
— " たけ (tk)" <ggb03124@...>
2000/09/05
たけ(tk)です。
[#10719] GD-0.6.2 patch — a-shigi@...
ども鴫原です。
7 messages
2000/08/29
[#10729] Fwd: patch of the ruby-1.4.6 for NT4.0&VC4.0 on DEC Alpha. — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
18 messages
2000/08/30
[#10730] Re: Fwd: patch of the ruby-1.4.6 for NT4.0&VC4.0 on DEC Alpha.
— WATANABE Hirofumi <eban@...>
2000/08/30
わたなべです.
[#10734] Re: Fwd: patch of the ruby-1.4.6 for NT4.0&VC4.0 on DEC Alpha.
— kou@...1609.sip.eee.yamaguchi-u.ac.jp (Koichi Okada)
2000/08/30
はじめまして。
[#10739] Re: Fwd: patch of the ruby-1.4.6 for NT4.0&VC4.0 on DEC Alpha.
— WATANABE Hirofumi <eban@...>
2000/08/30
わたなべです.
[#10740] Re: Fwd: patch of the ruby-1.4.6 for NT4.0&VC4.0 on DEC Alpha.
— matz@... (Yukihiro Matsumoto)
2000/08/30
まつもと ゆきひろです
[#10733] Re: Fwd: patch of the ruby-1.4.6 for NT4.0&VC4.0 on DEC Alpha.
— Katsuyuki Komatsu <komatsu@...>
2000/08/30
小松です.
[#10762] ruby 1.6.0 preview — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
42 messages
2000/08/31
[#10770] Re: ruby 1.6.0 preview
— akira yamada / やまだあきら <akira@...>
2000/08/31
[#10766] Re: ruby 1.6.0 preview
— Katsuyuki Komatsu <komatsu@...>
2000/08/31
小松です.
[#10779] Re: ruby 1.6.0 preview
— WATANABE Hirofumi <eban@...>
2000/09/01
わたなべです.
[#10787] ruby 1.6.0 preview2
— matz@... (Yukihiro Matsumoto)
2000/09/01
まつもと ゆきひろです
[ruby-dev:10689] Re: a regex bug?
From:
matz@... (Yukihiro Matsumoto)
Date:
2000-08-27 15:13:40 UTC
List:
ruby-dev #10689
まつもと ゆきひろです
In message "[ruby-dev:10683] Re: a regex bug?"
on 00/08/26, Tanaka Akira <akr@m17n.org> writes:
|ちなみに、(まだ未公開の) Emacs21 にも同様な問題があって、半田さんを通
|して問題を伝えたのですが、Stefan Monnier がさくっと直してしまったよう
|です。
そのパッチを半田さんから送って頂きました。で、それをヒントに
したものが添付のパッチです。
なんとなく動いているようです。しかし、これをさくっと直せるっ
てのは凄いなあ。
--- regex.c 2000/08/25 08:26:03 1.28
+++ regex.c 2000/08/26 16:56:23
@@ -151,2 +151,18 @@
+#define ENSURE_FAIL_STACK(n) \
+ do { \
+ if (stacke - stackp <= (n)) { \
+ unsigned char **stackx; \
+ unsigned int len = stacke - stackb; \
+ /* if (len > re_max_failures * MAX_NUM_FAILURE_ITEMS) \
+ { \
+ FREE_VARIABLES(); \
+ FREE_AND_RETURN(stackb,(-2)); \
+ }*/ \
+ \
+ /* Roughly double the size of the stack. */ \
+ EXPAND_FAIL_STACK(stackx, stackb, len); \
+ } \
+ } while (0)
+
/* Get the interface, including the syntax bits. */
@@ -2071,3 +2087,3 @@
store_jump_n(b, greedy?jump_n:finalize_push_n, laststart + 5,
- upper_bound/* - 1*/);
+ upper_bound - 1);
b += 5;
@@ -2089,3 +2105,3 @@
insert_op_2(set_number_at, laststart, b, b - laststart,
- upper_bound/* - 1*/);
+ upper_bound - 1);
b += 5;
@@ -3331,2 +3347,5 @@
+/* I.e., ptr and count. */
+#define NUM_COUNT_ITEMS 2
+
/* Individual items aside from the registers. */
@@ -3340,5 +3359,22 @@
/* We push this many things on the stack whenever we fail. */
-#define NUM_FAILURE_ITEMS (last_used_reg * NUM_REG_ITEMS + NUM_REG_ITEMS)
+#define NUM_FAILURE_ITEMS (num_failure_counts * NUM_COUNT_ITEMS + last_used_reg * NUM_REG_ITEMS + NUM_REG_ITEMS)
+/* This pushes counter information for succeed_n and jump_n */
+#define PUSH_FAILURE_COUNT(ptr) \
+ do { \
+ int c; \
+ EXTRACT_NUMBER(c, ptr); \
+ ENSURE_FAIL_STACK(2); \
+ *stackp++ = (unsigned char*)c; \
+ *stackp++ = (ptr); \
+ num_failure_counts++; \
+ } while (0)
+#define POP_FAILURE_COUNT() \
+ do { \
+ unsigned char *ptr = *--stackp; \
+ int count = (long)*--stackp; \
+ STORE_NUMBER(ptr, count); \
+ } while (0)
+
/* This pushes most of the information about the current state we will want
@@ -3356,15 +3392,6 @@
\
- if (stacke - stackp <= NUM_FAILURE_ITEMS) { \
- unsigned char **stackx; \
- unsigned int len = stacke - stackb; \
- /* if (len > re_max_failures * MAX_NUM_FAILURE_ITEMS) \
- { \
- FREE_VARIABLES(); \
- FREE_AND_RETURN(stackb,(-2)); \
- }*/ \
+ ENSURE_FAIL_STACK(NUM_FAILURE_ITEMS); \
+ *stackp++ = (unsigned char*)num_failure_counts; \
+ num_failure_counts = 0; \
\
- /* Roughly double the size of the stack. */ \
- EXPAND_FAIL_STACK(stackx, stackb, len); \
- } \
- \
/* Now push the info for each of those registers. */ \
@@ -3386,3 +3413,3 @@
- /* This pops what PUSH_FAILURE_POINT pushes. */
+/* This pops what PUSH_FAILURE_POINT pushes. */
@@ -3395,2 +3422,7 @@
stackp -= temp; /* Remove the register info. */ \
+ temp = (long)*--stackp; /* How many counters pushed. */ \
+ while (temp--) { \
+ POP_FAILURE_COUNT(); /* Remove the counter info. */ \
+ } \
+ num_failure_counts = 0; /* Reset num_failure_counts. */ \
} while(0)
@@ -3542,2 +3574,4 @@
+ int num_failure_counts = 0;
+
if (regs) {
@@ -3903,3 +3937,3 @@
would have to backtrack because of (as in, e.g., `a*a')
- then we can change to pop_failure_jump, because we'll
+ then we can change to finalize_jump, because we'll
never have to backtrack.
@@ -4027,5 +4061,6 @@
/* Originally, this is how many times we HAVE to succeed. */
- if (mcnt > 0) {
+ if (mcnt != 0) {
mcnt--;
p += 2;
+ PUSH_FAILURE_COUNT(p);
STORE_NUMBER_AND_INCR(p, mcnt);
@@ -4033,5 +4068,3 @@
}
- else if (mcnt == 0) {
- p[2] = unused;
- p[3] = unused;
+ else {
goto on_failure;
@@ -4045,2 +4078,3 @@
mcnt--;
+ PUSH_FAILURE_COUNT(p + 2);
STORE_NUMBER(p + 2, mcnt);
@@ -4261,2 +4295,6 @@
regstart[this_reg] = *--stackp;
+ }
+ mcnt = (long)*--stackp;
+ while (mcnt--) {
+ POP_FAILURE_COUNT();
}