[#23474] [BUG] rb_gc_mark(): unknown data type 0x18(0x9728508) non object — Tanaka Akira <akr@...17n.org>
先程の commit から、とあるプログラムが core を吐くようになりました。
5 messages
2004/05/07
[#23476] Re: [BUG] rb_gc_mark(): unknown data type 0x18(0x9728508) non object
— matz@... (Yukihiro Matsumoto)
2004/05/07
まつもと ゆきひろです
[#23477] Re: [BUG] rb_gc_mark(): unknown data type 0x18(0x9728508) non object
— Tanaka Akira <akr@...17n.org>
2004/05/07
In article <1083932343.892095.14210.nullmailer@picachu.netlab.jp>,
[#23480] [BUG] numeric.c (flo_to_s) broken? — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
山本です。
19 messages
2004/05/08
[#23482] Re: [BUG] numeric.c (flo_to_s) broken?
— "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
2004/05/08
山本です。
[#23483] Re: [BUG] numeric.c (flo_to_s) broken?
— "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
2004/05/08
山本です。
[#23484] Re: [BUG] numeric.c (flo_to_s) broken?
— "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
2004/05/08
山本です。
[#23485] Re: [BUG] numeric.c (flo_to_s) broken?
— "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
2004/05/08
山本です。たびたびすみません。
[#23486] Re: [BUG] numeric.c (flo_to_s) broken?
— "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
2004/05/08
山本です。
[#23499] Re: [BUG] numeric.c (flo_to_s) broken?
— "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
2004/05/14
山本です。
[#23503] Re: [BUG] numeric.c (flo_to_s) broken?
— akira yamada / やまだあきら <akira@...>
2004/05/14
[#23507] Re: [BUG] numeric.c (flo_to_s) broken?
— "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
2004/05/14
山本です。
[#23528] Re: [BUG] numeric.c (flo_to_s) broken?
— "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
2004/05/17
山本です。
[#23488] Re: [ruby-cvs] ruby, ruby/ext, ruby/lib, ruby/lib/test/unit/ui/console, ruby/test, ruby/test/drb, ruby/test/ruby, ruby/test/soap/calc: * ext/extmk.rb (extmake): skip uncompiled extensions. — MIYAMUKO Katsuyuki <k-miyamuko@...>
みやむこです。
18 messages
2004/05/11
[#23527] Re: [ruby-cvs] ruby, ruby/ext, ruby/lib, ruby/lib/test/unit/ui/console,ruby/test, ruby/test/drb, ruby/test/ruby, ruby/test/soap/calc: * ext/extmk.rb(extmake): skip uncompiled extensions.
— nobu.nakada@...
2004/05/17
なかだです。
[#23537] Re: [ruby-cvs] ruby, ruby/ext, ruby/lib, ruby/lib/test/unit/ui/console,ruby/test, ruby/test/drb, ruby/test/ruby, ruby/test/soap/calc: * ext/extmk.rb(extmake): skip uncompiled extensions.
— MIYAMUKO Katsuyuki <k-miyamuko@...>
2004/05/18
みやむこです。
[#23538] Re: [ruby-cvs] ruby, ruby/ext, ruby/lib, ruby/lib/test/unit/ui/console,ruby/test,ruby/test/drb, ruby/test/ruby, ruby/test/soap/calc: * ext/extmk.rb(extmake):skip uncompiled extensions.
— nobu.nakada@...
2004/05/19
なかだです。
[#23539] Re: [ruby-cvs] ruby, ruby/ext, ruby/lib, ruby/lib/test/unit/ui/console,ruby/test,ruby/test/drb, ruby/test/ruby, ruby/test/soap/calc: * ext/extmk.rb(extmake):skip uncompiled extensions.
— MIYAMUKO Katsuyuki <k-miyamuko@...>
2004/05/19
みやむこです。
[#23543] Re: [ruby-cvs] ruby, ruby/ext, ruby/lib, ruby/lib/test/unit/ui/console,ruby/test,ruby/test/drb,ruby/test/ruby, ruby/test/soap/calc: * ext/extmk.rb(extmake):skip uncompiledextensions.
— nobu.nakada@...
2004/05/19
なかだです。
[#23546] Re: [ruby-cvs] ruby, ruby/ext, ruby/lib, ruby/lib/test/unit/ui/console,ruby/test,ruby/test/drb,ruby/test/ruby, ruby/test/soap/calc: * ext/extmk.rb(extmake):skip uncompiledextensions.
— GOTOU Yuuzou <gotoyuzo@...>
2004/05/19
In message <200405191205.i4JC5voY028322@sharui.nakada.niregi.kanuma.tochigi.jp>,
[#23547] Re: [ruby-cvs] ruby, ruby/ext, ruby/lib, ruby/lib/test/unit/ui/console,ruby/test,ruby/test/drb,ruby/test/ruby, ruby/test/soap/calc: * ext/extmk.rb(extmake):skip uncompiledextensions.
— nobu.nakada@...
2004/05/19
なかだです。
[#23555] Re: [ruby-cvs] ruby, ruby/ext, ruby/lib, ruby/lib/test/unit/ui/console,ruby/test,ruby/test/drb,ruby/test/ruby, ruby/test/soap/calc: * ext/extmk.rb(extmake):skip uncompiledextensions.
— MIYAMUKO Katsuyuki <k-miyamuko@...>
2004/05/21
みやむこです。
[#23557] Re: [ruby-cvs] ruby, ruby/ext, ruby/lib, ruby/lib/test/unit/ui/console,ruby/test,ruby/test/drb,ruby/test/ruby,ruby/test/soap/calc: * ext/extmk.rb(extmake):skip uncompiledextensions.
— nobu.nakada@...
2004/05/21
なかだです。
[#23559] Re: [ruby-cvs] ruby, ruby/ext, ruby/lib, ruby/lib/test/unit/ui/console,ruby/test,ruby/test/drb,ruby/test/ruby,ruby/test/soap/calc: * ext/extmk.rb(extmake):skip uncompiledextensions.
— MIYAMUKO Katsuyuki <k-miyamuko@...>
2004/05/21
みやむこです。
[#23561] Re: [ruby-cvs] ruby, ruby/ext, ruby/lib, ruby/lib/test/unit/ui/console,ruby/test,ruby/test/drb,ruby/test/ruby,ruby/test/soap/calc:* ext/extmk.rb(extmake):skip uncompiledextensions.
— nobu.nakada@...
2004/05/22
なかだです。
[#23489] ruby-mode.el: if defined?(super) — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
1 message
2004/05/13
[#23492] ruby 1.8.1 (2004-05-13) has 7 failures and 3 errors — akira yamada <akira@...>
19 messages
2004/05/13
[#23495] Re: ruby 1.8.1 (2004-05-13) has 7 failures and 3 errors
— "NAKAMURA, Hiroshi" <nakahiro@...>
2004/05/13
なひです。
[#23496] Re: ruby 1.8.1 (2004-05-13) has 7 failures and 3 errors
— akira yamada / やまだあきら <akira@...>
2004/05/13
[#23497] Re: ruby 1.8.1 (2004-05-13) has 7 failures and 3 errors
— nobu.nakada@...
2004/05/13
なかだです。
[#23608] ruby_1_8 (2004-05-24) has 4 failures and 1 error
— akira yamada / やまだあきら <akira@...>
2004/05/25
[#23533] Ruby2.0 spec summary around parameters and variables — SASADA Koichi <ko1@...>
ささだです。
22 messages
2004/05/17
[#23552] Re: Ruby2.0 spec summary around parameters and variables
— SASADA Koichi <ko1@...>
2004/05/20
SASADA Koichi <ko1@atdot.net> wrote :
[#23563] Re: Ruby2.0 spec summary around parameters and variables
— Minero Aoki <aamine@...>
2004/05/22
青木です。
[#23564] Re: Ruby2.0 spec summary around parameters and variables
— matz@... (Yukihiro Matsumoto)
2004/05/22
まつもと ゆきひろです
[#23568] Re: Ruby2.0 spec summary around parameters and variables
— Minero Aoki <aamine@...>
2004/05/22
青木です。
[#23569] Re: Ruby2.0 spec summary around parameters and variables
— matz@... (Yukihiro Matsumoto)
2004/05/22
まつもと ゆきひろです
[#23580] Re: Ruby2.0 spec summary around parameters and variables
— Minero Aoki <aamine@...>
2004/05/23
青木です。
[#23581] Re: Ruby2.0 spec summary around parameters and variables
— matz@... (Yukihiro Matsumoto)
2004/05/23
まつもと ゆきひろです
[#23562] HEAD's test/cvs failed on windows — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
山本です。
8 messages
2004/05/22
[#23573] Re: HEAD's test/cvs failed on windows
— "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
2004/05/23
山本です。
[#23566] try_run in ext/tcltklib/extconf.rb — WATANABE Hirofumi <eban@...>
わたなべです。
7 messages
2004/05/22
[#23572] keyword argments (Ruby2.0 spec) — Hidetoshi NAGAI <nagai@...>
永井@知能.九工大です.
14 messages
2004/05/23
[#23578] Re: keyword argments (Ruby2.0 spec)
— matz@... (Yukihiro Matsumoto)
2004/05/23
まつもと ゆきひろです
[#23584] Re: keyword argments (Ruby2.0 spec)
— Hidetoshi NAGAI <nagai@...>
2004/05/23
永井@知能.九工大です.
[#23585] Re: keyword argments (Ruby2.0 spec)
— matz@... (Yukihiro Matsumoto)
2004/05/23
まつもと ゆきひろです
[#23587] Re: keyword argments (Ruby2.0 spec)
— Hidetoshi NAGAI <nagai@...>
2004/05/24
永井@知能.九工大です.
[#23615] console freezed on test/drb/drbtest.rb : test_06_timeout (bcc32) — "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
山本です。
11 messages
2004/05/25
[#23625] Re: console freezed on test/drb/drbtest.rb : test_06_timeout (bcc32)
— "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
2004/05/26
山本です。
[#23626] Re: console freezed on test/drb/drbtest.rb : test_06_timeout (bcc32)
— Tanaka Akira <akr@...17n.org>
2004/05/26
In article <20040526131944.EB3E1A88.ocean@m2.ccsnet.ne.jp>,
[#23627] Re: console freezed on test/drb/drbtest.rb : test_06_timeout (bcc32)
— "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
2004/05/26
山本です。
[#23636] Re: console freezed on test/drb/drbtest.rb : test_06_timeout (bcc32)
— WATANABE Hirofumi <eban@...>
2004/05/27
わたなべです。
[#23639] Re: console freezed on test/drb/drbtest.rb : test_06_timeout (bcc32)
— "H.Yamamoto" <ocean@...2.ccsnet.ne.jp>
2004/05/27
山本です。
[#23648] Re: console freezed on test/drb/drbtest.rb : test_06_timeout (bcc32)
— WATANABE Hirofumi <eban@...>
2004/05/27
わたなべです。
[#23628] [uri.rb] non-hierarchical URI with a fragment — Masahiro Sakai (酒井政裕) <sakai@...>
さかいといいます。
6 messages
2004/05/26
[#23629] Re: [uri.rb] non-hierarchical URI with a fragment
— akira yamada / やまだあきら <akira@...>
2004/05/26
[#23630] NEWOBJ() in dfree — nobu.nakada@...
なかだです。
7 messages
2004/05/26
[#23638] SEGV eval.c: file = data->frame.node->nd_file — Tanaka Akira <akr@...17n.org>
さきほど、cvs update したところ、とあるプログラム(五月雨)が core dump
9 messages
2004/05/27
[#23641] Re: SEGV eval.c: file = data->frame.node->nd_file
— nobu.nakada@...
2004/05/27
なかだです。
[ruby-dev:23596] Re: RegexpError: undefined bytecode (bug)
From:
<kkosako@...>
Date:
2004-05-24 06:25:34 UTC
List:
ruby-dev #23596
> -----Original Message-----
> From: Masahiro Sakai (酒井政裕) [mailto:sakai@tom.sfc.keio.ac.jp]
> たまたま気が付いたのですが、1.9で正規表現のマッチングを行うと、
> 以下のようなエラーが発生することがあるようです。
>
> % ruby -ruri -ve 'URI::ABS_URI =~ "http://example.org/Andr\xC3\xA9"'
> -e:1:in `=~': undefined bytecode (bug): /^ (RegexpError)
設計ミスです。
Ruby 1.9.0(Oniguruma 2.2.8)へのパッチです。
--
小迫@出向中
--- regint.h.orig 2004-04-28 01:20:02.000000000 +0900
+++ regint.h 2004-05-24 14:51:42.000000000 +0900
@@ -500,6 +500,8 @@ enum OpCode {
OP_REPEAT_NG, /* {n,m}? (non greedy) */
OP_REPEAT_INC,
OP_REPEAT_INC_NG, /* non greedy */
+ OP_REPEAT_INC_SG, /* search and get in stack */
+ OP_REPEAT_INC_NG_SG, /* search and get in stack (non greedy) */
OP_NULL_CHECK_START, /* null loop checker start */
OP_NULL_CHECK_END, /* null loop checker end */
OP_NULL_CHECK_END_MEMST, /* null loop checker end (with capture status) */
--- regparse.h.orig 2004-03-06 00:31:54.000000000 +0900
+++ regparse.h 2004-05-24 14:32:30.000000000 +0900
@@ -96,6 +96,7 @@ typedef struct {
} CClassNode;
typedef struct {
+ int state;
struct _Node* target;
int lower;
int upper;
@@ -121,6 +122,7 @@ typedef struct {
#define NST_ADDR_FIXED (1<<9)
#define NST_NAMED_GROUP (1<<10)
#define NST_NAME_REF (1<<11)
+#define NST_IN_REPEAT (1<<12) /* STK_REPEAT is nested in match stack. */
#define SET_EFFECT_STATUS(node,f) (node)->u.effect.state |= (f)
#define CLEAR_EFFECT_STATUS(node,f) (node)->u.effect.state &= ~(f)
@@ -140,6 +142,7 @@ typedef struct {
#define IS_CALL_RECURSION(cn) (((cn)->state & NST_RECURSION) != 0)
#define IS_CALL_NAME_REF(cn) (((cn)->state & NST_NAME_REF) != 0)
#define IS_BACKREF_NAME_REF(bn) (((bn)->state & NST_NAME_REF) != 0)
+#define IS_QUALIFIER_IN_REPEAT(qn) (((qn)->state & NST_IN_REPEAT) != 0)
typedef struct {
int state;
--- regparse.c.orig 2004-04-28 01:37:56.000000000 +0900
+++ regparse.c 2004-05-24 14:33:11.000000000 +0900
@@ -1058,6 +1058,7 @@ node_new_qualifier(int lower, int upper,
Node* node = node_new();
CHECK_NULL_RETURN(node);
node->type = N_QUALIFIER;
+ NQUALIFIER(node).state = 0;
NQUALIFIER(node).target = NULL;
NQUALIFIER(node).lower = lower;
NQUALIFIER(node).upper = upper;
--- regcomp.c.orig 2004-04-28 01:20:01.000000000 +0900
+++ regcomp.c 2004-05-24 14:53:31.000000000 +0900
@@ -684,7 +684,16 @@ compile_range_repeat_node(QualifierNode*
r = compile_tree_empty_check(qn->target, reg, empty_info);
if (r) return r;
- r = add_opcode(reg, qn->greedy ? OP_REPEAT_INC : OP_REPEAT_INC_NG);
+ if (
+#ifdef USE_SUBEXP_CALL
+ reg->num_call > 0 ||
+#endif
+ IS_QUALIFIER_IN_REPEAT(qn)) {
+ r = add_opcode(reg, qn->greedy ? OP_REPEAT_INC_SG : OP_REPEAT_INC_NG_SG);
+ }
+ else {
+ r = add_opcode(reg, qn->greedy ? OP_REPEAT_INC : OP_REPEAT_INC_NG);
+ }
if (r) return r;
r = add_mem_num(reg, num_repeat); /* OP_REPEAT ID */
return r;
@@ -3057,6 +3066,10 @@ setup_tree(Node* node, regex_t* reg, int
QualifierNode* qn = &(NQUALIFIER(node));
Node* target = qn->target;
+ if ((state & IN_REPEAT) != 0) {
+ qn->state |= NST_IN_REPEAT;
+ }
+
if (IS_REPEAT_INFINITE(qn->upper) || qn->upper >= 1) {
r = get_min_match_length(target, &d, env);
if (r) break;
--- regexec.c.orig 2004-04-28 01:20:02.000000000 +0900
+++ regexec.c 2004-05-24 14:59:40.000000000 +0900
@@ -1053,6 +1053,7 @@ match_at(regex_t* reg, UChar* str, UChar
char *alloca_base;
StackType *stk_alloc, *stk_base, *stk, *stk_end;
StackType *stkp; /* used as any purpose. */
+ StackIndex si;
StackIndex *repeat_stk;
StackIndex *mem_start_stk, *mem_end_stk;
n = reg->num_repeat + reg->num_mem * 2;
@@ -2170,79 +2171,67 @@ match_at(regex_t* reg, UChar* str, UChar
break;
case OP_REPEAT_INC: STAT_OP_IN(OP_REPEAT_INC);
- {
- StackIndex si;
-
- GET_MEMNUM_INC(mem, p); /* mem: OP_REPEAT ID */
-#ifdef USE_SUBEXP_CALL
- if (reg->num_call > 0) {
- STACK_GET_REPEAT(mem, stkp);
- si = GET_STACK_INDEX(stkp);
- }
- else {
- si = repeat_stk[mem];
- stkp = STACK_AT(si);
- }
-#else
- si = repeat_stk[mem];
- stkp = STACK_AT(si);
-#endif
- stkp->u.repeat.count++;
- if (stkp->u.repeat.count == reg->repeat_range[mem].upper) {
- /* end of repeat. Nothing to do. */
- }
- else if (stkp->u.repeat.count >= reg->repeat_range[mem].lower) {
- STACK_PUSH_ALT(p, s, sprev);
- p = stkp->u.repeat.pcode;
- }
- else {
- p = stkp->u.repeat.pcode;
- }
- STACK_PUSH_REPEAT_INC(si);
+ GET_MEMNUM_INC(mem, p); /* mem: OP_REPEAT ID */
+ si = repeat_stk[mem];
+ stkp = STACK_AT(si);
+
+ repeat_inc:
+ stkp->u.repeat.count++;
+ if (stkp->u.repeat.count == reg->repeat_range[mem].upper) {
+ /* end of repeat. Nothing to do. */
+ }
+ else if (stkp->u.repeat.count >= reg->repeat_range[mem].lower) {
+ STACK_PUSH_ALT(p, s, sprev);
+ p = stkp->u.repeat.pcode;
}
+ else {
+ p = stkp->u.repeat.pcode;
+ }
+ STACK_PUSH_REPEAT_INC(si);
STAT_OP_OUT;
continue;
break;
- case OP_REPEAT_INC_NG: STAT_OP_IN(OP_REPEAT_INC_NG);
- {
- StackIndex si;
-
- GET_MEMNUM_INC(mem, p); /* mem: OP_REPEAT ID */
-#ifdef USE_SUBEXP_CALL
- if (reg->num_call > 0) {
- STACK_GET_REPEAT(mem, stkp);
- si = GET_STACK_INDEX(stkp);
- }
- else {
- si = repeat_stk[mem];
- stkp = STACK_AT(si);
- }
-#else
- si = repeat_stk[mem];
- stkp = STACK_AT(si);
-#endif
- stkp->u.repeat.count++;
- if (stkp->u.repeat.count < reg->repeat_range[mem].upper) {
- if (stkp->u.repeat.count >= reg->repeat_range[mem].lower) {
- UChar* pcode = stkp->u.repeat.pcode;
+ case OP_REPEAT_INC_SG: STAT_OP_IN(OP_REPEAT_INC_SG);
+ GET_MEMNUM_INC(mem, p); /* mem: OP_REPEAT ID */
+ STACK_GET_REPEAT(mem, stkp);
+ si = GET_STACK_INDEX(stkp);
+ goto repeat_inc;
+ break;
- STACK_PUSH_REPEAT_INC(si);
- STACK_PUSH_ALT(pcode, s, sprev);
- }
- else {
- p = stkp->u.repeat.pcode;
- STACK_PUSH_REPEAT_INC(si);
- }
- }
- else if (stkp->u.repeat.count == reg->repeat_range[mem].upper) {
- STACK_PUSH_REPEAT_INC(si);
- }
+ case OP_REPEAT_INC_NG: STAT_OP_IN(OP_REPEAT_INC_NG);
+ GET_MEMNUM_INC(mem, p); /* mem: OP_REPEAT ID */
+ si = repeat_stk[mem];
+ stkp = STACK_AT(si);
+
+ repeat_inc_ng:
+ stkp->u.repeat.count++;
+ if (stkp->u.repeat.count < reg->repeat_range[mem].upper) {
+ if (stkp->u.repeat.count >= reg->repeat_range[mem].lower) {
+ UChar* pcode = stkp->u.repeat.pcode;
+
+ STACK_PUSH_REPEAT_INC(si);
+ STACK_PUSH_ALT(pcode, s, sprev);
+ }
+ else {
+ p = stkp->u.repeat.pcode;
+ STACK_PUSH_REPEAT_INC(si);
+ }
+ }
+ else if (stkp->u.repeat.count == reg->repeat_range[mem].upper) {
+ STACK_PUSH_REPEAT_INC(si);
}
STAT_OP_OUT;
continue;
break;
+ case OP_REPEAT_INC_NG_SG: STAT_OP_IN(OP_REPEAT_INC_NG_SG);
+ GET_MEMNUM_INC(mem, p); /* mem: OP_REPEAT ID */
+ STACK_GET_REPEAT(mem, stkp);
+ si = GET_STACK_INDEX(stkp);
+ goto repeat_inc_ng;
+ break;
+
case OP_PUSH_POS: STAT_OP_IN(OP_PUSH_POS);
STACK_PUSH_POS(s, sprev);
STAT_OP_OUT;