[mecab-devel 20] Re: endian free

Back to archive index

Taku Kudo taku****@chase*****
2006年 4月 18日 (火) 03:14:25 JST


工藤です

On 4/17/06, NOKUBI Takatsugu <knok****@daion*****> wrote:
>   要望した本人の野首です。
>
> At Sun, 16 Apr 2006 04:44:06 +0900,
> Taku Kudo wrote:
> > ちょっと考えたのですが、リトルエンディアンをデフォルトに
> > するというのはどうでしょう? それなら、大部分を
> > しめるインテル系を使う限りにおいては速度低下がありません。
>
>   それでもいいかなと思ったのですが、世の中には4byteで1234とあるものが
> 3412とか2143となるCPUもあるので、それら全部を考慮したオーダー変換処理
> を用意してやらないといけないのが面倒そうです。

ややや  glib-2.0 の gtype.h をみるとPDP_ENDIANというのがあったのですが
このことでしょうか。

 * glibconfig.h defines G_BYTE_ORDER which expands to one of
 * the below macros.
 */
#define G_LITTLE_ENDIAN 1234
#define G_BIG_ENDIAN    4321
#define G_PDP_ENDIAN    3412            /* unused, need specific PDP check */

PDP_ENDIAN についてglibはサポートしていないように思えます。
PDP ENDIAN のサポートは置いとくにして、エンディアンの変換は
gtype.hがそのまま使えそうです。

> * ソフトウェア上は、ホストオーダーとネットワークオーダーをサポート
> * デフォルトはホストオーダー
> * オプション(もしくはデータの先頭になんらかのシグネチャを埋め込む)でネッ
>   トワークオーダーに切替えられる
>
>   とするのがいいような気もするのですが、いかがでしょうか。

切り替えるとは、実行時に切り替えるのでしょうか?
実行時だと、パフォーマンスに少なからず影響が出そうな気がするので、
エンディアンの切り替えはコンパイル時にやりたいです。

たとえば、ホストオーダーとネットワークオーダーを configure で切り替えるとか...

-- taku



Mecab-devel メーリングリストの案内
Back to archive index