[#36071] サマータイムでのsleepの動作について — Yoshikawa <yoshixool@...>
吉川と申します。
こんにちは、なかむら(う)です。
吉川です。
こんにちは、なかむら(う)です。
久保です。
> 2008/9/2 U.Nakamura <usa@garbagecollect.jp>:
久保です。
こんにちは、なかむら(う)です。
[#36076] optimize bigdivrem Part 1 — TOYOFUKU Chikanobu <nobu_toyofuku@...>
豊福です。
[#36082] x86_64環境でMarshal.dumpの不具合 — Kouichi Ushijima <ushijima@...>
NTTレゾナントの牛島と申します。
[#36096] [ANN] Ruby 1.9.1仕様凍結 — "Yugui (Yuki Sonoda)" <yugui@...>
Yuguiです。
成瀬です。
[#36124] [Bug: 1.9] undefined method `readpartial' for TestFileUtils::Stream — SASADA Koichi <ko1@...>
ささだです.
[#36132] [Feature #542] cgi.rb : CGI::unescape return encoding — Takeyuki Fujioka <redmine@...>
Feature #542: cgi.rb : CGI::unescape return encoding
成瀬です。
藤岡です。
藤岡です。
In article <48C0C20E.4000307@rabbix.jp>,
藤岡です。
In article <48C76705.5000202@rabbix.jp>,
藤岡です。
In article <48C8A83E.8000200@rabbix.jp>,
藤岡です。
成瀬です。
藤岡です。
藤岡です。
藤岡です。
西山和広です。
藤岡です。
成瀬です。
藤岡です。
藤岡です。
西山和広です。
In article <48be847681f43_55585b236f8341@redmine.ruby-lang.org>,
[#36147] GNU iconv dependency — Takahiro Kambe <taca@...>
こんにちは。
成瀬です。
In message <48C544C3.6090607@airemix.jp>
成瀬です。
In message <48C7D1E1.5040403@airemix.jp>
Takahiro Kambe wrote:
In message <48C7EC6B.5060306@airemix.jp>
Takahiro Kambe wrote:
In message <48C7F8DD.7060001@airemix.jp>
成瀬です。
In message <48C7FE1B.1050900@airemix.jp>
Takahiro Kambe wrote:
なかだです。
In message <48C95715.5080708@ruby-lang.org>
[#36167] OpenSSL Test Failure — Tadashi Saito <shiba@...2.accsnet.ne.jp>
斎藤です。
[#36174] [Feature #546] String#gsub と Strnig#scan のブロックパラメータの一致 — Motonori IWAMURO <redmine@...>
Feature #546: String#gsub と Strnig#scan のブロックパラメータの一致
[#36201] ソケット関連の定数がいろいろ未定義 (Re: [Bug #547](Closed) IPV6系の定数が未定義) — "IWAMURO Motonori" <deenheart+ruby@...>
岩室です。
岩室です。
[#36233] [Bug #554] Sync_m#sync_try_lockの引数が無視されている — akira yamada <redmine@...>
Bug #554: Sync_m#sync_try_lockの引数が無視されている
[#36245] [Feature #546] String#gsub と Strnig#scan のブロックパラメータの一致 — Yui NARUSE <redmine@...>
チケット #546 が更新されました。 (by Yui NARUSE)
[#36281] 合成文字の2コードポイント目 — "NARUSE, Yui" <naruse@...>
成瀬です。
まつもと ゆきひろです
In article <E1KeKG9-0004NC-Jb@x61.netlab.jp>,
まつもと ゆきひろです
In article <E1KeRWe-00037N-Vb@x61.netlab.jp>,
成瀬です。
In article <48CC86FD.3000409@airemix.jp>,
Tanaka Akira wrote:
In article <48CE068E.3080701@airemix.jp>,
成瀬です。
まつもと ゆきひろです
In article <E1KfNyE-0005XO-0P@x61.netlab.jp>,
まつもと ゆきひろです
In article <E1KfQYp-00032T-F6@x61.netlab.jp>,
まつもと ゆきひろです
In article <E1KfRzT-0004jm-DU@x61.netlab.jp>,
In article <87tzcg3dt2.fsf@fsij.org>,
At 21:44 08/09/18, Tanaka Akira wrote:
[#36290] adding Pathname#abspath() — "Akinori MUSHA" <knu@...>
SUSv3のrealpath(3)の項には、存在しないコンポーネントがあったら
名前が良くなかったですね。Pathname#resolve()でどうでしょうか。
In article <86wshfn0zl.knu@iDaemons.org>,
At Sun, 14 Sep 2008 23:20:56 +0900,
In article <86vdwxn9rh.knu@iDaemons.org>,
At Mon, 22 Sep 2008 12:43:18 +0900,
In article <86od2gcvvj.knu@iDaemons.org>,
At Wed, 24 Sep 2008 02:02:59 +0900,
In article <86ljxgd0jt.knu@iDaemons.org>,
At Fri, 26 Sep 2008 02:29:43 +0900,
田中さん、この件はどうでしょう。
In article <86tz7s28my.knu@iDaemons.org>,
At Wed, 21 Jan 2009 21:54:34 +0900,
In article <86sknc0y2o.knu@iDaemons.org>,
[#36300] [patch] performance improvement patch for benchmark/bm_so_count_words.rb — "masayoshi takahashi" <maki@...>
高橋征義です。
まつもと ゆきひろです
高橋征義です。
[#36325] mathn (#**) — Tadayoshi Funaba <tadf@...>
mahtn した場合、
けいじゅ@いしつかです.
> 消したのは [ruby-dev: 20780] からのスレッドなのですが, その中で消して
mathn の課題はそれはそれとして、1.9 ではこの場合、やはり mathn しなくて
[#36329] [Bug:1.9] emacs21で色が付かない — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
[#36336] [Bug #571] IPv6系の定数が未定義 (for 1.8) — Motonori IWAMURO <redmine@...>
Bug #571: IPv6系の定数が未定義 (for 1.8)
[#36346] add "Error" suffix for Encoding Exceptions — Tadashi Saito <shiba@...2.accsnet.ne.jp>
斎藤と申します。
成瀬です。
斎藤と申します。
遠藤です。
こんにちは、なかむら(う)です。
At 22:25 08/09/18, U.Nakamura wrote:
まつもと ゆきひろです
In article <E1KgbIm-00010I-Qi@x61.netlab.jp>,
成瀬です。
[#36349] Complex/image — Tadayoshi Funaba <tadf@...>
[ruby-math:00543] を読んで、image はやめて imag に変更したらどうか、つ
けいじゅ@いしつかです.
> imageとimagの件ですが, 現行では両方定義されているけど, imageは削除って
けいじゅ@いしつかです.
まつもと ゆきひろです
[#36352] Temporarily removing Precision module — Yugui <yugui@...>
Yuguiです。
[#36448] [Feature #583] TmpdirとTempfile — Yuki Sonoda <redmine@...>
Feature #583: TmpdirとTempfile
[#36461] {Complex,Rational}::Unify — Tadayoshi Funaba <tadf@...>
Complex と Rational では、Unify が定義された場合、可能なら整数等に正規
まつもと ゆきひろです
> mathn.rbはcomplex.rbなどと同一の作者が同時に(一体として)作成
けいじゅ@いしつかです.
> まず, Unifyなしで動作するように, mathn側で対応させてください. それから,
けいじゅ@いしつかです.
> mathn動かなくなっていると思うので, あまり大丈夫ではありません.
けいじゅ@いしつかです.
> これらのメソッドを呼び出すのではなく, 再定義することによって振る舞いを
けいじゅ@いしつかです.
> 当然, mathnで対応することはできます.
けいじゅ@いしつかです.
> >それで、僕が改めて言うまでもないことですが、mathn は石塚さんの担当なの
けいじゅ@いしつかです.
まつもと ゆきひろです
けいじゅ@いしつかです.
まつもと ゆきひろです
けいじゅ@いしつかです.
Yuguiです。
けいじゅ@いしつかです.
Yuguiです。
こんにちは、なかむら(う)です。
[#36493] [Bug: 1.9] tmpdir on mswin32 — SASADA Koichi <ko1@...>
ささだです.
[#36505] 文字コード変換の追加 (悲鳴) — Martin Duerst <duerst@...>
http://redmine.ruby-lang.org/wiki/ruby/DevelopersMeeting20080922
Yugiuです。
[#36511] [Bug #595] Fiber ignores ensure clause — Koichi Sasada <redmine@...>
Bug #595: Fiber ignores ensure clause
[#36512] Encoding.default_internal のためのパッチ — Martin Duerst <duerst@...>
[ruby-core:18774] に Michael Selig から Encoding::default_internal
成瀬です。
まつもと ゆきひろです
こんにちは、なかむら(う)です。
まつもと ゆきひろです
成瀬です。
まつもと ゆきひろです
永井@知能.九工大です.
まつもと ゆきひろです
Yukihiro Matsumoto さんは書きました:
まつもと ゆきひろです
なかだです。
まつもと ゆきひろです
At 14:58 08/09/25, Yukihiro Matsumoto wrote:
まつもと ゆきひろです
成瀬です。
まつもと ゆきひろです
In article <E1Kj3Iz-0003yT-HU@x61.netlab.jp>,
[#36528] driver and target of test-knownbug/btest-miniruby — "U.Nakamura" <usa@...>
こんにちは、なかむら(う)です。
[#36628] [IA-64]BigDecimal#sqrt の仕様 — TAKANO Mitsuhiro <takano32@...>
こんにちは
高野です。
まつもと ゆきひろです
高野です。
まつもと ゆきひろです
[#36631] net/pop.rb: APOPの脆弱性対応 — Kazuhiro NISHIYAMA <zn@...>
西山和広です。
[ruby-dev:36300] [patch] performance improvement patch for benchmark/bm_so_count_words.rb
高橋征義です。
1.9でbenchmarkを走らせたところ、bm_so_count_wordsの結果がひどかった
(1.8のときより30倍くらい遅くなる)ので、パッチを書いてみました。
基本的にはsinglebyteの時にエンコーディングを気にせず、1.8の時の
コードのように処理させるものです。これでも1.8の2倍程度の時間は
かかってしまうようですが(Mac OS X 10.5.4)。
あと、single_byte_optimizable(str) に、rb_enc_str_asciionly_p(str) を
加えてしまってもいいのでしょうか? 一般に加えてしまってよいのか
よく分からなかったので、このpatchでは、
if (single_byte_optimizable(str) || rb_enc_str_asciionly_p(str)) {
などという形で判別するようにしています。
singlebyteの時だけ早くなってどーする、と意見もあるかと
思いますが、ないよりはマシかと思うので、よろしくお願いします。
高橋征義 (takahashimm@gmail.com)
Attachments (1)
--- string.c.old 2008-09-15 07:38:22.000000000 +0900
+++ string.c 2008-09-15 07:39:00.000000000 +0900
@@ -4323,7 +4323,7 @@ tr_trans(VALUE str, VALUE src, VALUE rep
int last = 0, modify = 0, i, l;
char *s, *send;
VALUE hash = 0;
- int singlebyte = single_byte_optimizable(str);
+ int singlebyte = (single_byte_optimizable(str) || rb_enc_str_asciionly_p(str));
StringValue(src);
StringValue(repl);
@@ -4756,17 +4756,28 @@ rb_str_squeeze_bang(int argc, VALUE *arg
if (!s || RSTRING_LEN(str) == 0) return Qnil;
send = RSTRING_END(str);
save = -1;
- while (s < send) {
- unsigned int c = rb_enc_codepoint(s, send, enc);
- int clen = rb_enc_codelen(c, enc);
- if (c != save || (argc > 0 && !tr_find(c, squeez, del, nodel))) {
- if (t != s) rb_enc_mbcput(c, t, enc);
- save = c;
- t += clen;
+ if (single_byte_optimizable(str) || rb_enc_str_asciionly_p(str)) {
+ while (s < send) {
+ unsigned int c = *s++ & 0xff;
+ if (c != save || (argc > 0 && !tr_find(c, squeez, del, nodel))) {
+ *t++ = save = c;
+ }
+ }
+ } else {
+ while (s < send) {
+ unsigned int c = rb_enc_codepoint(s, send, enc);
+ int clen = rb_enc_codelen(c, enc);
+
+ if (c != save || (argc > 0 && !tr_find(c, squeez, del, nodel))) {
+ if (t != s) rb_enc_mbcput(c, t, enc);
+ save = c;
+ t += clen;
+ }
+ s += clen;
}
- s += clen;
}
+
*t = '\0';
if (t - RSTRING_PTR(str) != RSTRING_LEN(str)) {
STR_SET_LEN(str, t - RSTRING_PTR(str));
@@ -4863,6 +4874,7 @@ rb_str_count(int argc, VALUE *argv, VALU
VALUE del = 0, nodel = 0;
char *s, *send;
int i;
+ int single_byte_targets = 1;
if (argc < 1) {
rb_raise(rb_eArgError, "wrong number of arguments");
@@ -4873,21 +4885,34 @@ rb_str_count(int argc, VALUE *argv, VALU
StringValue(s);
enc = rb_enc_check(str, s);
tr_setup_table(s, table,i==0, &del, &nodel, enc);
+ if (RSTRING_LEN(s)>1) single_byte_targets = 0;
}
s = RSTRING_PTR(str);
if (!s || RSTRING_LEN(str) == 0) return INT2FIX(0);
send = RSTRING_END(str);
i = 0;
- while (s < send) {
- unsigned int c = rb_enc_codepoint(s, send, enc);
- int clen = rb_enc_codelen(c, enc);
- if (tr_find(c, table, del, nodel)) {
- i++;
+ if (single_byte_optimizable(str) || single_byte_targets) {
+ while (s < send) {
+ unsigned int c = *s;
+ if (tr_find(c, table, del, nodel)) {
+ i++;
+ }
+ s++;
+ }
+ } else {
+ while (s < send) {
+ unsigned int c = rb_enc_codepoint(s, send, enc);
+ int clen = rb_enc_codelen(c, enc);
+
+ if (tr_find(c, table, del, nodel)) {
+ i++;
+ }
+ s += clen;
}
- s += clen;
}
+
return INT2NUM(i);
}
@@ -5617,19 +5642,29 @@ rb_str_rstrip_bang(VALUE str)
s = RSTRING_PTR(str);
if (!s || RSTRING_LEN(str) == 0) return Qnil;
t = e = RSTRING_END(str);
- while (s < e) {
- unsigned int cc = rb_enc_codepoint(s, e, enc);
- if (!cc || rb_enc_isspace(cc, enc)) {
- if (!space_seen) t = s;
- space_seen = Qtrue;
- }
- else {
- space_seen = Qfalse;
+ if (single_byte_optimizable(str) || rb_enc_str_asciionly_p(str)) {
+ /* remove trailing '\0's */
+ while (s < t && t[-1] == '\0') t--;
+
+ /* remove trailing spaces */
+ while (s < t && rb_enc_isspace(*(t-1), enc)) t--;
+ } else {
+ while (s < e) {
+ unsigned int cc = rb_enc_codepoint(s, e, enc);
+
+ if (!cc || rb_enc_isspace(cc, enc)) {
+ if (!space_seen) t = s;
+ space_seen = Qtrue;
+ }
+ else {
+ space_seen = Qfalse;
+ }
+ s += rb_enc_codelen(cc, enc);
}
- s += rb_enc_codelen(cc, enc);
+ if (!space_seen) t = s;
}
- if (!space_seen) t = s;
+
if (t < e) {
rb_str_modify(str);
STR_SET_LEN(str, t-RSTRING_PTR(str));