[#31320] Import RubyGems to Ruby 1.9 — "NAKAMURA, Hiroshi" <nakahiro@...>
-----BEGIN PGP SIGNED MESSAGE-----
なかだです。
-----BEGIN PGP SIGNED MESSAGE-----
-----BEGIN PGP SIGNED MESSAGE-----
-----BEGIN PGP SIGNED MESSAGE-----
-----BEGIN PGP SIGNED MESSAGE-----
まつもと ゆきひろです
-----BEGIN PGP SIGNED MESSAGE-----
-----BEGIN PGP SIGNED MESSAGE-----
まつもと ゆきひろです
-----BEGIN PGP SIGNED MESSAGE-----
まつもと ゆきひろです
-----BEGIN PGP SIGNED MESSAGE-----
まつもと ゆきひろです
-----BEGIN PGP SIGNED MESSAGE-----
まつもと ゆきひろです
-----BEGIN PGP SIGNED MESSAGE-----
まつもと ゆきひろです
In article <E1Ika5D-0007fc-GG@x31>,
-----BEGIN PGP SIGNED MESSAGE-----
まつもと ゆきひろです
-----BEGIN PGP SIGNED MESSAGE-----
In message <471447D5.5050902@sarion.co.jp>
咳といいます。
Rubygems は、基本的に他のパッケージシステムから包みやすい作り
In message <868x62huhe.knu@iDaemons.org>
At Wed, 17 Oct 2007 22:04:23 +0900,
Tuesday 16 October 2007 14:09:13 に NAKAMURA, Hiroshi さんは書きました:
-----BEGIN PGP SIGNED MESSAGE-----
押田です。
Sunday 21 October 2007 00:17:43 に NAKAMURA, Hiroshi さんは書きました:
> ちなみに「ruby/1.9.1の標準添付からどのライブラリを外すか?」という議論も
-----BEGIN PGP SIGNED MESSAGE-----
-----BEGIN PGP SIGNED MESSAGE-----
ささだです。
-----BEGIN PGP SIGNED MESSAGE-----
まつもと ゆきひろです
-----BEGIN PGP SIGNED MESSAGE-----
> U parsearg, tadf
まつもと ゆきひろです
-----BEGIN PGP SIGNED MESSAGE-----
[#31323] Bignum#to_s の Karatsuba 基数変換による高速化 — "Kenta Murata" <muraken@...>
むらけんです.
まつもと ゆきひろです
むらけんです.
まつもと ゆきひろです
遠藤です。
むらたです.
遠藤です。
むらたです.
[#31333] Invalid error message by illegal regexp — KIMURA Koichi <kimura.koichi@...>
木村です。
[#31351] set_trace_func NULL pointer given — eklerni <eklerni@...>
From:eklerni
[#31357] invalid string for Date.parse — Yukihiro Matsumoto <matz@...>
まつもと ゆきひろです
> となります。どうも、junではじまっているので6月とみなしている
なかだです。
[#31371] simultaneous exceptions dump core — "Yusuke ENDOH" <mame@...>
遠藤と申します。
ささだです。
遠藤です。
[#31376] Re: [ ruby-Bugs-9490 ] Date module, step method, infinite loop if +step+ is 0 should raise an exception? — Urabe Shyouhei <shyouhei@...>
rubyforgeで表題の件が卜部にassignされてるのですが、どうしましょう。
Date のほうで、合せたらいいというのなら、それでいいと思います。
[#31377] Re: [ ruby-Patches-11719 ] add a :passive option to open-uri's open method — Urabe Shyouhei <shyouhei@...>
rubyforgeで表題の件が卜部にassignされてるのですが、どうしましょう。
In article <46BE0E9B.70309@ruby-lang.org>,
[#31397] File exists - /tmp/bootstraptest.tmpwd — Tanaka Akira <akr@...>
ひとつのマシンで、あるユーザが btest した後、他のユーザが
ささだです。
In article <46C18A65.7030209@atdot.net>,
[#31407] [BUG] Stack consistency error (sp: 11, bp: 12) — Tanaka Akira <akr@...>
以下のようにすると Stack consistency error になります。
[#31448] Ruby's (new) Bizarre Operator(s) — Nobuyoshi Nakada <nobu@...>
なかだです。
まつもと ゆきひろです
バンサンです。
[#31462] Dir.mktmpdir for 1.8 — Tanaka Akira <akr@...>
Dir.mktmpdir を 1.8 に入れたいんですが、どうでしょう?
まつもと ゆきひろです
In article <E1IMCUq-00083X-Uo@x31>,
[#31470] nested fiber invocation — Yukihiro Matsumoto <matz@...>
まつもと ゆきひろです
[#31473] setter of $! — SASADA Koichi <ko1@...>
ささだです。
[#31475] lambda {|(v0,v1),v2|}.call([1],2) — Tanaka Akira <akr@...>
以下の例は ArgumentError になりません。
ささだです。
[#31502] {|(a,a)|} — Tanaka Akira <akr@...>
以下がエラーになりません。
[#31522] a, a = 1, 2 — Tanaka Akira <akr@...>
ふと気がついたんですが、a, a = 1, 2 とすると、1.8 と 1.9 で
こんにちは、なかむら(う)です。
[#31525] いくつかのバグ報告と提案(5点) — eklerni <eklerni@...>
From:eklerni
なかだです。
まつもと ゆきひろです
[#31539] strtod の精度 — Satoshi Nakagawa <snakagawa@...>
中川といいます。
まつもと ゆきひろです
中川です。
中川です。
まつもと ゆきひろです
中川です。
中川です。
まつもと ゆきひろです
In article <EEC70971-AED4-4830-801B-A507561AEDCD@infoteria.co.jp>,
[#31576] test/win32ole — SASADA Koichi <ko1@...>
ささだです.
[#31583] Fiber reviesed — SASADA Koichi <ko1@...>
ささだです.
遠藤です。
ささだです.
遠藤です。
ささだです.
[#31625] IO.sysdup2, IO.sysdup, IO.sysclose — Tanaka Akira <akr@...>
redirect の処理をちょっと書いてみたところ、
まつもと ゆきひろです
In article <E1IOaVr-0001Yu-4H@x31>,
In article <87d4xc97ml.fsf@fsij.org>,
[#31646] Re: [ruby-cvs:20498] Ruby:r13261 (trunk): * encoding.c: provide basic features for M17N. — Tanaka Akira <akr@...>
In article <200708250329.l7P3TjNP004245@ci.ruby-lang.org>,
まつもと ゆきひろです
[#31651] rb_enc_mbclen — Tanaka Akira <akr@...>
rb_enc_mbclen のインターフェースは GB18030 などで困るんじゃ
[ruby-dev:31334] Re: Invalid error message by illegal regexp
なかだです。
At Thu, 2 Aug 2007 13:45:04 +0900,
KIMURA Koichi wrote in [ruby-dev:31333]:
> ruby -e "/a(?=b)?/.match('a')"
> とか
> ruby -e "/a(?=b?/.match('a')"
> としたときに、
>
> 0: uninitialized Regexp (TypeError)
>
> という適切ではないであろうエラーメッセージが出力されます。
すいません。直そうとは思っていたんですが、後回しにしたまま忘れて
ました。
> rb_reg_initialize で失敗した(not 0が返ってきた)ときの対処を変えるか
> rb_reg_desc内部の判定を調節すれば良いと思いますが、具体的な修正方法
> はお任せします。
元々は、rb_compile_errorを呼ぶときはrb_reg_descには0を渡していた
ので、失敗したら rb_reg_desc(s, len, 0) でもいいと思いますが、オ
プションが表示されていないことに気がつきました。
オプションの変換回りも整理して、こんなところでどうでしょうか。
Index: re.c
===================================================================
--- re.c (revision 12861)
+++ re.c (working copy)
@@ -197,4 +197,39 @@ char_to_option(int c)
}
+static char *
+option_to_str(char str[4], int options)
+{
+ char *p = str;
+ if (options & ONIG_OPTION_MULTILINE) *p++ = 'm';
+ if (options & ONIG_OPTION_IGNORECASE) *p++ = 'i';
+ if (options & ONIG_OPTION_EXTEND) *p++ = 'x';
+ *p = 0;
+ return str;
+}
+
+static const char *
+arg_kcode(int options)
+{
+ switch (options & ARG_KCODE_MASK) {
+ case ARG_KCODE_NONE: return "n";
+ case ARG_KCODE_EUC: return "e";
+ case ARG_KCODE_SJIS: return "s";
+ case ARG_KCODE_UTF8: return "u";
+ }
+ return "";
+}
+
+static const char *
+opt_kcode(int flags)
+{
+ switch (flags) {
+ case KCODE_NONE: return "n";
+ case KCODE_EUC: return "e";
+ case KCODE_SJIS: return "s";
+ case KCODE_UTF8: return "u";
+ }
+ return "";
+}
+
extern int
rb_char_to_option_kcode(int c, int *option, int *kcode)
@@ -417,27 +452,11 @@ rb_reg_desc(const char *s, long len, VAL
rb_str_buf_cat2(str, "/");
if (re) {
+ char opts[4];
rb_reg_check(re);
- if (RREGEXP(re)->ptr->options & ONIG_OPTION_MULTILINE)
- rb_str_buf_cat2(str, "m");
- if (RREGEXP(re)->ptr->options & ONIG_OPTION_IGNORECASE)
- rb_str_buf_cat2(str, "i");
- if (RREGEXP(re)->ptr->options & ONIG_OPTION_EXTEND)
- rb_str_buf_cat2(str, "x");
+ if (*option_to_str(opts, RREGEXP(re)->ptr->options))
+ rb_str_buf_cat2(str, opts);
if (FL_TEST(re, KCODE_FIXED)) {
- switch ((RBASIC(re)->flags & KCODE_MASK)) {
- case KCODE_NONE:
- rb_str_buf_cat2(str, "n");
- break;
- case KCODE_EUC:
- rb_str_buf_cat2(str, "e");
- break;
- case KCODE_SJIS:
- rb_str_buf_cat2(str, "s");
- break;
- case KCODE_UTF8:
- rb_str_buf_cat2(str, "u");
- break;
- }
+ rb_str_buf_cat2(str, opt_kcode(RBASIC(re)->flags & KCODE_MASK));
}
}
@@ -514,4 +533,5 @@ rb_reg_to_s(VALUE re)
const UChar* ptr;
VALUE str = rb_str_buf_new2("(?");
+ char optbuf[5];
rb_reg_check(re);
@@ -578,13 +598,10 @@ rb_reg_to_s(VALUE re)
}
- if (options & ONIG_OPTION_MULTILINE) rb_str_buf_cat2(str, "m");
- if (options & ONIG_OPTION_IGNORECASE) rb_str_buf_cat2(str, "i");
- if (options & ONIG_OPTION_EXTEND) rb_str_buf_cat2(str, "x");
+ if (*option_to_str(optbuf, options)) rb_str_buf_cat2(str, optbuf);
if ((options & embeddable) != embeddable) {
- rb_str_buf_cat2(str, "-");
- if (!(options & ONIG_OPTION_MULTILINE)) rb_str_buf_cat2(str, "m");
- if (!(options & ONIG_OPTION_IGNORECASE)) rb_str_buf_cat2(str, "i");
- if (!(options & ONIG_OPTION_EXTEND)) rb_str_buf_cat2(str, "x");
+ optbuf[0] = '-';
+ option_to_str(optbuf + 1, ~options)
+ rb_str_buf_cat2(str, optbuf);
}
@@ -1528,5 +1545,12 @@ rb_reg_compile(const char *s, long len,
if (rb_reg_initialize(re, s, len, options, err) != 0) {
- VALUE desc = rb_reg_desc(s, len, re);
+ char opts[6];
+ VALUE desc = rb_str_buf_new2("/");
+
+ rb_reg_expr_str(desc, s, len);
+ opts[0] = '/';
+ option_to_str(opts + 1, options);
+ strlcat(opts, arg_kcode(options), sizeof(opts));
+ rb_str_buf_cat2(desc, opts);
rb_compile_error(file, line, "%s: %s", err, RSTRING_PTR(desc));
}
@@ -2066,20 +2090,9 @@ rb_reg_s_union(int argc, VALUE *argv)
args[0] = source;
args[1] = Qnil;
- switch (kcode) {
- case -1:
+ if (kcode == -1) {
args[2] = Qnil;
- break;
- case KCODE_NONE:
- args[2] = rb_str_new2("n");
- break;
- case KCODE_EUC:
- args[2] = rb_str_new2("e");
- break;
- case KCODE_SJIS:
- args[2] = rb_str_new2("s");
- break;
- case KCODE_UTF8:
- args[2] = rb_str_new2("u");
- break;
+ }
+ else {
+ args[2] = rb_str_new2(opt_kcode(kcode));
}
return rb_class_new_instance(3, args, rb_cRegexp);
--
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
中田 伸悦