[#11357] [PATCH] an analogue of `long long' — "Nobuyoshi.Nakada" <nobu.nakada@...>
なかだです。
まつもと ゆきひろです
えぐち@エスアンドイー です。
まつもと ゆきひろです
えぐち@エスアンドイー です。
まつもと ゆきひろです
>From: matz@zetabits.com (Yukihiro Matsumoto)
まつもと ゆきひろです
[#11440] class Character (was: Ruby I18N) — Yasushi Shoji <yashi@...>
[ruby-dev:11428] からの続きですが、threadは切りました。
高橋征義です。用語について。
At Wed, 8 Nov 2000 20:44:55 +0900,
高橋征義です。
At Thu, 9 Nov 2000 13:30:34 +0900,
まつもと ゆきひろです
[#11447] gets は secure? — Kazuhiro NISHIYAMA <zn@...>
出力がInsecureなのに入力はsecureなのでしょうか?
[#11467] debug write in regex.c? — "Nobuyoshi.Nakada" <nobu.nakada@...>
なかだです。
[#11500] rb_to_integer/rb_to_int — "Nobuyoshi.Nakada" <nobu.nakada@...>
なかだです。
[#11520] A problem of Socket methods on Windows — OKA Toshiyuki <oka@...>
岡と申します。
なかだです。
まつもと ゆきひろです
なかだです。
岡です。
なかだです。
なかだです。
岡です。
なかだです。
[#11569] blocking on socket? — Shugo Maeda <shugo@...>
前田です。
[#11591] object.c パッチ — Kazuhiro NISHIYAMA <zn@...>
使われてなかったnil_plusの削除とOBJ_INFECTへの変更です。
[#11611] return value of waitpid2 — Koji Arai <JCA02266@...>
新井です。
まつもと ゆきひろです
荒井です。いや、新井です。(よくあることさ)
まつもと ゆきひろです
新井です。
新井です。
[#11618] Re: class variable — "Koji Arai" <jca02266@...>
新井です
なかだです。
まつもと ゆきひろです
> まつもと ゆきひろです
まつもと ゆきひろです
まつもと ゆきひろです
新井です。
[#11641] eval too slow — Wakou Aoyama <wakou@...>
青山です。
[#11650] conflict of NODE_DREGX_ONCE — "Nobuyoshi.Nakada" <nobu.nakada@...>
なかだです。
まつもと ゆきひろです
[#11662] IO (Re: fork problem?) — Tanaka Akira <akr@...17n.org>
In article <E140cR3-0002ls-00@ev.netlab.zetabits.co.jp>,
まつもと ゆきひろです
In article <E140fxW-0002u9-00@ev.netlab.zetabits.co.jp>,
In article <hvor93w5wb8.fsf@coulee.m17n.org>,
In article <hvoofz05uwz.fsf@coulee.m17n.org>,
まつもと ゆきひろです
新井です。
まつもと ゆきひろです
In article <E141eaC-0003w0-00@ev.netlab.zetabits.co.jp>,
まつもと ゆきひろです
In article <E142ZqF-0004rX-00@ev.netlab.zetabits.co.jp>,
まつもと ゆきひろです
In article <E143Zem-000271-00@ev.netlab.zetabits.co.jp>,
まつもと ゆきひろです
In article <E143amj-00028V-00@ev.netlab.zetabits.co.jp>,
[ruby-dev:11470] Proposal of "Array of CharCode"
たけ(tk)です。
》「文字列とは文字コードの配列+αである」
16ビットを越える大きな文字コード系の内部データは、4バイトプレーンな
文字コードそのままにするのがいいのではないか、という提案です。
(1)Regexp.c を見ていたんですが、Regexp の内部のリストではMBCを4バ
イトプレーンな文字コードで保存している。(SROTE_MBC、RESTORE_MBC マクロ
参照)。
(2)Ruby で様々な文字コード系に対応するとしても、そのエンコーディング
の多様性まで認めると、エンコーディングに従った文字コード取りだしルーティ
ンを事前に用意するか、何らかの方法でその char_code_type クラスのメソッド
を呼び出して「文字コード取り出し」を依頼しなければならなくなる。もし
、Ruby スクリプトによる文字コード系クラス(CharCodeType)の追加の可能性
を認めるなら、Regexp のC言語のルーティンから Ruby のインターフェースを
通して、実際にはC言語で書かれた CharCodeType クラスの処理を呼び出す。そ
れも1文字毎に行うということになりかねない。
(3)4バイトプレーンな文字コードの配列であれば、Regexp で元の文字列を
取り出すのは、PATFETCH マクロの様であるが、
#define PATFETCH(c) \
do {if (p == pend) goto end_of_pattern; \
c = (unsigned char) *p++; \
if (TRANSLATE_P()) c = (unsigned char)translate[c]; \
} while (0)
この部分を
#define PATFETCH(c)
do {if (p >= pend) goto end_of_pattern;
c = (INT32) *p++;
if (c < 0x100) if (TRANSLATE_P()) c = (unsigned char)translate[c];
} while (0)
に変えるだけで、「とりあえずの文字コード取り出し」は終了してしまう。
(4)パターンマッチングは通常は ASCII、SJIS、EUC といった小さな文字コー
ド系で十分だと思われるが、呼び出し側の Ruby インターフェース(re.c)で、
必要な場合にだけ regexp.convert_to( CharCodeType_Bigsize )を行って
Regexp.c の関数に処理を行わせればよい。
−−
Regexp.c の全体像がつかめていないので、甘いとは思いますが・・、
たけ(tk) ggb03124@nifty.ne.jp
http://member.nifty.ne.jp/take_tk