[#11357] [PATCH] an analogue of `long long' — "Nobuyoshi.Nakada" <nobu.nakada@...>

なかだです。

18 messages 2000/11/01
[#11358] Re: [PATCH] an analogue of `long long' — matz@... (Yukihiro Matsumoto) 2000/11/01

まつもと ゆきひろです

[#11364] Re: [PATCH] an analogue of `long long' — EGUCHI Osamu <eguchi@...> 2000/11/02

えぐち@エスアンドイー です。

[#11440] class Character (was: Ruby I18N) — Yasushi Shoji <yashi@...>

[ruby-dev:11428] からの続きですが、threadは切りました。

14 messages 2000/11/08
[#11442] Re: class Character (was: Ruby I18N) — TAKAHASHI Masayoshi <maki@...> 2000/11/08

高橋征義です。用語について。

[#11443] Re: class Character (was: Ruby I18N) — Yasushi Shoji <yashi@...> 2000/11/08

At Wed, 8 Nov 2000 20:44:55 +0900,

[#11520] A problem of Socket methods on Windows — OKA Toshiyuki <oka@...>

岡と申します。

22 messages 2000/11/15
[#11523] Re: A problem of Socket methods on Windows — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/11/15

なかだです。

[#11528] Re: A problem of Socket methods on Windows — matz@... (Yukihiro Matsumoto) 2000/11/15

まつもと ゆきひろです

[#11532] Re: A problem of Socket methods on Windows — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/11/15

なかだです。

[#11534] Re: A problem of Socket methods on Windows — OKA Toshiyuki <oka@...> 2000/11/15

岡です。

[#11535] Re: A problem of Socket methods on Windows — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/11/15

なかだです。

[#11538] Re: A problem of Socket methods on Windows — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/11/15

なかだです。

[#11662] IO (Re: fork problem?) — Tanaka Akira <akr@...17n.org>

In article <E140cR3-0002ls-00@ev.netlab.zetabits.co.jp>,

22 messages 2000/11/28
[#11663] Re: IO (Re: fork problem?) — matz@... (Yukihiro Matsumoto) 2000/11/28

まつもと ゆきひろです

[#11664] Re: IO (Re: fork problem?) — Tanaka Akira <akr@...17n.org> 2000/11/28

In article <E140fxW-0002u9-00@ev.netlab.zetabits.co.jp>,

[#11665] Re: IO (Re: fork problem?) — Tanaka Akira <akr@...17n.org> 2000/11/28

In article <hvor93w5wb8.fsf@coulee.m17n.org>,

[#11669] Re: IO (Re: fork problem?) — Tanaka Akira <akr@...17n.org> 2000/11/29

In article <hvoofz05uwz.fsf@coulee.m17n.org>,

[#11672] Re: IO (Re: fork problem?) — matz@... (Yukihiro Matsumoto) 2000/11/29

まつもと ゆきひろです

[#11675] Re: IO (Re: fork problem?) — Koji Arai <JCA02266@...> 2000/11/30

新井です。

[#11677] Re: IO (Re: fork problem?) — matz@... (Yukihiro Matsumoto) 2000/12/01

まつもと ゆきひろです

[ruby-dev:11470] Proposal of "Array of CharCode"

From: " たけ (tk)" <ggb03124@...>
Date: 2000-11-10 15:54:00 UTC
List: ruby-dev #11470
たけ(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

In This Thread