[#32498] Re: [ruby-cvs:21399] Ruby:r14162 (trunk): * parse.y (expr): redefinable not (!) operator. — SASADA Koichi <ko1@...>

 ささだです.

9 messages 2007/12/09

[#32512] Re: [ruby-cvs:21409] Ruby:r14172 (trunk): * transcode.c: new file to provide encoding conversion features. — Nobuyoshi Nakada <nobu@...>

なかだです。

33 messages 2007/12/10
[#32520] Re: [ruby-cvs:21409] Ruby:r14172 (trunk): * transcode.c: new file to provide encoding conversion features. — Martin Duerst <duerst@...> 2007/12/10

中田さん、こんにちは。

[#32527] Re: [ruby-cvs:21409] Ruby:r14172 (trunk): * transcode.c: new file to provide encoding conversion features. — Nobuyoshi Nakada <nobu@...> 2007/12/10

なかだです。

[#32535] Re: [ruby-cvs:21409] Ruby:r14172 (trunk): * transcode.c: new file to provide encoding conversion features. — Yukihiro Matsumoto <matz@...> 2007/12/11

まつもと ゆきひろです

[#32537] Re: [ruby-cvs:21409] Ruby:r14172 (trunk): * transcode.c: new file to provide encoding conversion features. — Martin Duerst <duerst@...> 2007/12/11

At 15:33 07/12/11, Yukihiro Matsumoto wrote:

[#32538] Re: [ruby-cvs:21409] Ruby:r14172 (trunk): * transcode.c: new file to provide encoding conversion features. — Yukihiro Matsumoto <matz@...> 2007/12/11

まつもと ゆきひろです

[#32539] Re: [ruby-cvs:21409] Ruby:r14172 (trunk): * transcode.c: new file to provide encoding conversion features. — Nobuyoshi Nakada <nobu@...> 2007/12/11

なかだです。

[#32550] Binary String — Hidetoshi NAGAI <nagai@...>

永井@知能.九工大です.

204 messages 2007/12/12
[#32551] Re: Binary String — Yukihiro Matsumoto <matz@...> 2007/12/12

まつもと ゆきひろです

[#32552] Re: Binary String — Hidetoshi NAGAI <nagai@...> 2007/12/12

永井@知能.九工大です.

[#32553] Re: Binary String — Yukihiro Matsumoto <matz@...> 2007/12/12

まつもと ゆきひろです

[#32560] Re: Binary String — Hidetoshi NAGAI <nagai@...> 2007/12/12

永井@知能.九工大です.

[#32561] Re: Binary String — Nobuyoshi Nakada <nobu@...> 2007/12/12

なかだです。

[#33018] Re: Binary String — Hidetoshi NAGAI <nagai@...> 2008/01/11

永井@知能.九工大です.

[#33019] Re: Binary String — Tanaka Akira <akr@...> 2008/01/11

In article <20080111.171950.78716471.nagai@ai.kyutech.ac.jp>,

[#33024] Re: Binary String — Hidetoshi NAGAI <nagai@...> 2008/01/11

永井@知能.九工大です.

[#33027] Re: Binary String — Tanaka Akira <akr@...> 2008/01/11

In article <20080111.184442.74744388.nagai@ai.kyutech.ac.jp>,

[#33041] Re: Binary String — Hidetoshi NAGAI <nagai@...> 2008/01/11

永井@知能.九工大です.

[#33047] Re: Binary String — Tanaka Akira <akr@...> 2008/01/11

In article <20080112.004750.74741782.nagai@ai.kyutech.ac.jp>,

[#33055] Re: Binary String — Hidetoshi NAGAI <nagai@...> 2008/01/12

永井@知能.九工大です.

[#33080] Re: Binary String — Tanaka Akira <akr@...> 2008/01/13

In article <20080112.100830.112615025.nagai@ai.kyutech.ac.jp>,

[#33104] Re: Binary String — Hidetoshi NAGAI <nagai@...> 2008/01/14

永井@知能.九工大です.

[#33108] Re: Binary String — "NARUSE, Yui" <naruse@...> 2008/01/15

成瀬です。

[#33121] Re: Binary String — Hidetoshi NAGAI <nagai@...> 2008/01/15

永井@知能.九工大です.

[#33123] Re: Binary String — "NARUSE, Yui" <naruse@...> 2008/01/15

成瀬です。

[#33127] Re: Binary String — Hidetoshi NAGAI <nagai@...> 2008/01/16

永井@知能.九工大です.

[#33138] Re: Binary String — "NARUSE, Yui" <naruse@...> 2008/01/16

成瀬です。

[#33147] Re: Binary String — Hidetoshi NAGAI <nagai@...> 2008/01/17

永井@知能.九工大です.

[#33152] Re: Binary String — "NARUSE, Yui" <naruse@...> 2008/01/17

成瀬です。

[#33153] Re: Binary String — 遊楽庵 <yu_raku_an@...> 2008/01/17

遊楽庵です。

[#33154] Re: Binary String — "NARUSE, Yui" <naruse@...> 2008/01/17

成瀬です。

[#33157] Re: Binary String — Yukihiro Matsumoto <matz@...> 2008/01/17

まつもと ゆきひろです

[#33330] Re: Binary String — "NARUSE, Yui" <naruse@...> 2008/01/23

成瀬です。

[#33336] Re: Binary String — Tanaka Akira <akr@...> 2008/01/23

In article <47975933.8010907@airemix.com>,

[#33337] Re: Binary String — Yukihiro Matsumoto <matz@...> 2008/01/23

まつもと ゆきひろです

[#33346] Re: Binary String — "U.Nakamura" <usa@...> 2008/01/24

こんにちは、なかむら(う)です。

[#33348] Re: Binary String — Yukihiro Matsumoto <matz@...> 2008/01/24

まつもと ゆきひろです

[#33352] Re: Binary String — "U.Nakamura" <usa@...> 2008/01/24

こんにちは、なかむら(う)です。

[#33353] Re: Binary String — Yukihiro Matsumoto <matz@...> 2008/01/24

まつもと ゆきひろです

[#33122] Re: Binary String — Tanaka Akira <akr@...> 2008/01/15

In article <20080115.024201.41653719.nagai@ai.kyutech.ac.jp>,

[#33126] Re: Binary String — Hidetoshi NAGAI <nagai@...> 2008/01/16

永井@知能.九工大です.

[#33151] Re: Binary String — Tanaka Akira <akr@...> 2008/01/17

In article <20080116.102057.41656941.nagai@ai.kyutech.ac.jp>,

[#33160] Re: Binary String — Hidetoshi NAGAI <nagai@...> 2008/01/17

永井@知能.九工大です.

[#33165] Re: Binary String — Tanaka Akira <akr@...> 2008/01/18

In article <20080117.233832.74721189.nagai@ai.kyutech.ac.jp>,

[#33188] Re: Binary String — Hidetoshi NAGAI <nagai@...> 2008/01/19

永井@知能.九工大です.

[#33193] Re: Binary String — Yukihiro Matsumoto <matz@...> 2008/01/19

まつもと ゆきひろです

[#33202] Re: Binary String — Hidetoshi NAGAI <nagai@...> 2008/01/19

永井@知能.九工大です.

[#33230] Re: Binary String — Yukihiro Matsumoto <matz@...> 2008/01/20

まつもと ゆきひろです

[#33236] Re: Binary String — Hidetoshi NAGAI <nagai@...> 2008/01/21

永井@知能.九工大です.

[#33238] Re: Binary String — SASADA Koichi <ko1@...> 2008/01/21

 m17n には近づかないようにしているささだです。

[#33241] Re: Binary String — "NARUSE, Yui" <naruse@...> 2008/01/21

成瀬です。

[#33248] Re: Binary String — Yukihiro Matsumoto <matz@...> 2008/01/21

まつもと ゆきひろです

[#33281] Re: Binary String — Hidetoshi NAGAI <nagai@...> 2008/01/22

永井@知能.九工大です.

[#33285] Re: Binary String — "NARUSE, Yui" <naruse@...> 2008/01/22

成瀬です。

[#33318] Re: Binary String — Hidetoshi NAGAI <nagai@...> 2008/01/23

永井@知能.九工大です.

[#33186] Ruby1.9 String バイト列へのインデックス アクセス — "Hisanori Kiryu" <hkiryu@...> 2008/01/19

長文失礼します。

[#33192] Re: Ruby1.9 String バイト列へのインデックス アクセス — Yukihiro Matsumoto <matz@...> 2008/01/19

まつもと ゆきひろです

[#33195] Re: Ruby1.9 String バイト列へのインデックス アクセス — rubikitch@... 2008/01/19

From: Yukihiro Matsumoto <matz@ruby-lang.org>

[#33199] Re: Ruby1.9 String バイト列へのインデックス アクセス — "NARUSE, Yui" <naruse@...> 2008/01/19

成瀬です。

[#33020] Re: Binary String — "NARUSE, Yui" <naruse@...> 2008/01/11

成瀬です。

[#32610] 1.9.1 issues left (as of 12/15) — Yukihiro Matsumoto <matz@...>

まつもと ゆきひろです

14 messages 2007/12/15

[#32715] issues left as of 12/25 2:00am JST — Yukihiro Matsumoto <matz@...>

まつもと ゆきひろです

41 messages 2007/12/24
[#32738] issues left as of 12/25 noon JST — Yukihiro Matsumoto <matz@...> 2007/12/25

まつもと ゆきひろです

[#32739] Re: issues left as of 12/25 noon JST — Yukihiro Matsumoto <matz@...> 2007/12/25

まつもと ゆきひろです

[#32791] Re: [ruby-list:44387] [ANN] Ruby 1.9.0 is released — SASADA Koichi <ko1@...>

 ささだです。

21 messages 2007/12/25

[#32823] class TimeSpan — "NARUSE, Yui" <naruse@...>

成瀬です。

18 messages 2007/12/27

[#32843] Windowでのデフォルトエンコーディング — KIMURA Koichi <kimura.koichi@...>

木村です。

30 messages 2007/12/28
[#32845] Re: Windowでのデフォルトエンコーディング — "U.Nakamura" <usa@...> 2007/12/28

こんにちは、なかむら(う)です。

[#32851] Re: Window でのデフォルトエンコーディング — Martin Duerst <duerst@...> 2007/12/28

At 13:55 07/12/28, U.Nakamura wrote:

[#32853] Re: Windowでのデフォルトエンコーディング — "NARUSE, Yui" <naruse@...> 2007/12/28

U.Nakamura wrote:

[#32857] Re: Windowでのデフォルトエンコーディング — "U.Nakamura" <usa@...> 2007/12/28

こんにちは、なかむら(う)です。

[#32852] Resolv::DNS#getaddresses doesn't return IPv6 address — "NARUSE, Yui" <naruse@...>

成瀬です。

17 messages 2007/12/28
[#32923] Re: Resolv::DNS#getaddresses doesn't return IPv6 address — Takahiro Kambe <taca@...> 2008/01/05

こんにちは。

[#32924] Re: Resolv::DNS#getaddresses doesn't return IPv6 address — "NARUSE, Yui" <naruse@...> 2008/01/05

成瀬です。

[#32925] Re: Resolv::DNS#getaddresses doesn't return IPv6 address — Takahiro Kambe <taca@...> 2008/01/05

In message <477EF0C9.4060103@airemix.com>

[#32929] Re: Resolv::DNS#getaddresses doesn't return IPv6 address — "NARUSE, Yui" <naruse@...> 2008/01/05

成瀬です

[ruby-dev:32575] Re: transcoder loading

From: Nobuyoshi Nakada <nobu@...>
Date: 2007-12-13 07:43:20 UTC
List: ruby-dev #32575
なかだです。

At Thu, 13 Dec 2007 13:27:57 +0900,
Martin Duerst wrote in [ruby-dev:32572]:
> >transcoderを拡張ライブラリに出してみました。ext/とは別にしたほう
> >がいいかもしれませんが。
> 
> その通りだと思います。これからデータのファイルが増えるので、
> メインのところにはちょっと不便ですが、ext にするといちいち
> require が必要になると思いますが、これはとても不便だと思います。
> require が必要になったら結局 String#encode が定義されているが、
> require しないと使えない、という不思議な現象になってしまうでしょう。

requireは自動的に行うように考えています。

> ファイルの場所を考えると、enc の中、もしくは enc/trans では
> いいのではないかと思います。

最初はenc/transを考えていたのですが、結局やることはextと同じなの
で、とりあえず手を抜きました。

> >include/ruby/transcode.hとext/enc/trans/iso_8859/iso_8859.cは、
> >それぞれtranscode_data.hとtranscode_data_iso_8859.cをsvn mv した
> >ものです。
> 
> 細かいところだけいいますと、/iso_8859/ の部分は要らないと思います。
> ファイル一つだけのためのディレクトリは余り意味がないと思います。

extmk.rbで扱うための手抜きの他に、複数ファイルに分ける場合がある
かもしれないということです。

> しかも、iso-8859 見たいに標準にそってファイルをまとめることに
> は長期的にはならないと思います。データの効率を考えると文字種
> (例えば Latin、Greek、など) にそってまとめた方がいいと思います。

これはちょっとよくわからなかったんですが、たとえばLatin文字セッ
トの各encodingでのcodepoint表を作る、といったことでしょうか。

言語ごとに作業を分けられるというメリットがあるかと思いますが、
String#encodeでの指定などはどういう風になるんでしょうか。

> 後は、(予定していた) transcode.h と (既に存在する) transcode_data.h
> は別物として考えています。transcode.h はルビから使える機能を定義し、
> transcode_data.h はデータ形式関係のものを定義し、ルビからは
> アクセスしなくていいもの、という考え方です。

了解です。

> >-/* in the future, add some mechanism for dynamically adding stuff here */
> >-#define MAX_TRANSCODERS 29  /* todo: fix: this number has to be adjusted 
> >by hand */
> >-static transcoder transcoder_table[MAX_TRANSCODERS];
> >+static st_table *transcoder_table;
> 
> ハッシュにするのはありかと思います。



> >+#define TRANSCODER_SEP '@'
> 
> これは内部だけの決まりだと思いましたが、ファイル名にまで使われているので、
> 十分検討した方がいいと思います。

requireするときには'/'に書き換えるということも可能でしょう。実際
最初はそのようにしたんですが、ディレクトリが多すぎるように感じた
のでこのようにしてみました。

> >+    for (s = key; *s; ++s) {
> >+      if (ISUPPER(*s)) *s = tolower(*s);
> 
> 今まで見たところで、ルビ内の Encoding は全部大文字になっていますので、
> なぜでここで小文字にしますか。

ライブラリ名は小文字という慣習が(おおむね)ありますので。

> >+             rb_transcoding *my_transcoding)
> > {
> >     char *in_p = *in_pos, *out_p = *out_pos;
> >-    const BYTE_LOOKUP *conv_tree_start = my_transcoder->conv_tree_start;
> >+    const BYTE_LOOKUP *conv_tree_start = my_transcoder->transcode_arg;
> 
> 変数、メンバーの名前を変える必要がないと思います。

抽象化のためです。rb_register_transcoder()に関数ポインタを渡すよ
うにすることで、str_encode()とtranscode_loop()は直接の関係を持た
なくなります。つまり、transcoderによってはtreeとはまったく異なる
ものを使うことになるかもしれません。

> > transcode_loop(char **in_pos, char **out_pos,
> >              char *in_stop, char *out_stop,
> >-             transcoder *my_transcoder,
> >-             transcoding *my_transcoding)
> >+             const rb_transcoder *my_transcoder,
> >+             int from_utf8,
> 
> 変数を増やさない方がいいと思います。

> >+void
> >+rb_transcode_loop_from_utf8(char **in_pos, char **out_pos,
> >+                          char *in_stop, char *out_stop,
> >+                          const rb_transcoder *my_transcoder,
> >+                          rb_transcoding *my_transcoding)
> >+{
> >+    transcode_loop(in_pos, out_pos, in_stop, out_stop,
> >+                 my_transcoder, 1, my_transcoding);
> >+}
> >+
> >+void
> >+rb_transcode_loop_simple(char **in_pos, char **out_pos,
> >+                      char *in_stop, char *out_stop,
> >+                      const rb_transcoder *my_transcoder,
> >+                      rb_transcoding *my_transcoding)
> >+{
> >+    transcode_loop(in_pos, out_pos, in_stop, out_stop,
> >+                 my_transcoder, 0, my_transcoding);
> >+}
> >+
> 
> 関数を増やす必要が現在内と思います。

transcode_loop()をコピーするよりは、フラグ引数のままのほうがよい
だろうと思いました。

> >     /* for simple testing: */
> >-    transcode_loop(&fromp, &bp, (sp+slen), (bp+blen), my_transcoder, 
> >&my_transcoding);
> >+    my_transcoder->transcode_loop(&fromp, &bp, (sp+slen), (bp+blen),
> >+                                my_transcoder->transcode_arg, &my_transcoding);
> 
> やりたいことが分かりますが、あくまでもデータ中心にやった方がいいと思います。

テーブル駆動ということですか? iso-8859系とutf-8間ではそれがいい
と思いますが、必ずしもそういう変換ばかりではありませんから。

> >Index: ext/enc/trans/iso_8859/lib/iso-8859-1@utf-8.rb
> >===================================================================
> >--- ext/enc/trans/iso_8859/lib/iso-8859-1@utf-8.rb     (revision 0)
> >+++ ext/enc/trans/iso_8859/lib/iso-8859-1@utf-8.rb     (revision 0)
> >@@ -0,0 +1 @@
> >+require "enc/trans/iso_8859"
> >Index: ext/enc/trans/iso_8859/lib/utf-8@iso-8859-1.rb
> 
> いちいち一行のファイルを作るのはちょっとやりすぎだと思います。
> もうちょっといい方法はないのでしょうか。

同感です。

> このやり方でルビの内部でどの変換があるのか分からないという問題になる
> のもよく分かります。これは例えば force_encoding の ([ruby-dev:32563]
> など) と関係するだけではなく、utf-8 とか経由の二段階とかで変換するときにも
> 問題になりそうです。

変換パスを登録するDBのようなものが必要になりますかねぇ。

> >+typedef struct {
> >+    const BYTE_LOOKUP *conv_tree_start;
> >+    int max_output;
> >+} iso_8859_transcoder;
> 
> これは少なくともいまの段階で必要ないかと思います。

1.9.1までには少なくとも日本語の変換も可能にしたいです。

-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦

In This Thread