[ruby-list:46178] ruby-chasen in 64bit machine

View: New views
4 Messages — Rating Filter:   Alert me  

[ruby-list:46178] ruby-chasen in 64bit machine

by Makoto Kishimoto :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

きしもとです

64ビットマシンで、ruby-chasenをインストール(している|できる)かたに
おたずねします。

ruby -rchasen -e "print(Chasen.sparse('test'))"

を実行すると、以下のどれのようになりますでしょうか?

(1) 通常期待される結果になる(端末がUTF-8なのでnkfを通しています)
$ ruby -rchasen -e "print(Chasen.sparse('test'))" | nkf -Ew
t       ティー  t       記号-アルファベット
e       イー    e       記号-アルファベット
s       エス    s       記号-アルファベット
t       ティー  t       記号-アルファベット
EOS

(2) 落ちる(バージョン表示は例)
$ ruby -rchasen -e "print(Chasen.sparse('test'))" | nkf -Ew
-e:1: [BUG] Segmentation fault
ruby 1.8.7 (2009-04-08 patchlevel 160) [amd64-freebsd7]

(3) 以上のどれでもない


[ruby-list:46181] Re: ruby-chasen in 64bit machine

by Tetsuo Sakaguchi :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

阪口です。

In message <20090707210714.070ccdaf.ksmakoto@...> 2009-07-07T21:07+0900,
        "KISHIMOTO, Makoto" <ksmakoto@...> wrote:
> (1) 通常期待される結果になる(端末がUTF-8なのでnkfを通しています)

こちらですね。(というかテストしようとさっき全部入れ直しましたが:-)
少し前に csup した ports collection で portinstall したものですが、
関係バージョンを列挙しておきます。

ports でのバージョン: (/var/db/pkg/)
    ja-chasen-2.4.4
    ja-chasen-base-2.4.4
    ja-ruby18-chasen-1.6_2
    ruby+pthreads+oniguruma-1.8.7.72_1,1

% ruby -v
ruby 1.8.7 (2008-08-11 patchlevel 72) [amd64-freebsd7]

% chasen -V
ChaSen version 2.4.4 (c) 1996-2007 Nara Institute of Science and Technology
Grammar files are in ChaSen's new v-gram format.

という感じです。

PS. amd64 にして私は愛用の jvim+onew を諦めました。。なんといってもポインタを
    int に代入しているらしき警告だらけで、どう見てもそれが原因で core dump
    していたので。。(個人的には sizeof (int) != sizeof (void *) な gcc に
    疑問を感じているけど、それだけ Cのコードが int が32ビットに依存している
    ものばかりなんでしょうね。)
    rubyや chasen周りではそういった警告は見てないと思います。
    (見逃している可能性はありますが。)
--
阪口哲男@図書館情報メディア研究科.大学院.筑波大学
Tetsuo SAKAGUCHI.
Graduate School of Library, Information and Media Studies
University of Tsukuba, JAPAN.


[ruby-list:46184] Re: ruby-chasen in 64bit machine

by Makoto Kishimoto :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

> PS. amd64 にして私は愛用の jvim+onew を諦めました。。なんといってもポインタを
>     int に代入しているらしき警告だらけで、どう見てもそれが原因で core dump
>     していたので。。(個人的には sizeof (int) != sizeof (void *) な gcc に
>     疑問を感じているけど、それだけ Cのコードが int が32ビットに依存している
>     ものばかりなんでしょうね。)
>     rubyや chasen周りではそういった警告は見てないと思います。
>     (見逃している可能性はありますが。)

ports で ruby-chasen のビルド中に

===>  Building for ja-ruby18-chasen-1.6_2
cc -I. -I. -I/usr/local/lib/ruby/1.8/amd64-freebsd7 -I. -I/usr/local/include/chasen -I/usr/local/include -fPIC -O2 -fno-strict-aliasing -pipe  -fPIC  -c chasen.c
chasen.c: In function 'f_chasen_sparse_tostr':
chasen.c:43: warning: cast to pointer from integer of different size
chasen.c: In function 'f_chasen_fparse_tostr':
chasen.c:57: warning: cast to pointer from integer of different size
cc -shared -o chasen.so chasen.o -L. -L/usr/local/lib -Wl,-R/usr/local/lib -L/usr/local/lib -Wl,-R/usr/local/lib -L.  -rdynamic -Wl,-soname,chasen.so   -Wl,-R -Wl,/usr/local/lib -L/usr/local/lib -lruby18 -lchasen -lstdc++  -lpthread -lrt -lcrypt -lm  -rpath=/usr/lib:/usr/local/lib -pthread

と、warning 出てないですかね?
chasen.h を include しておらず、(Cのデフォルトの)int の返り値を、char * に
キャストしているコードがあって、そこで出ています。
GCCのバージョンの違いかな、と思ったけど、そうでもないかな。
$ gcc --version
gcc (GCC) 4.2.1 20070719  [FreeBSD]


[ruby-list:46185] Re: ruby-chasen in 64bit machine

by Tetsuo Sakaguchi :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

In message <20090708091928.b238e12b.ksmakoto@...> 2009-07-08T09:19+0900,
        "KISHIMOTO, Makoto" <ksmakoto@...> wrote:
> ports で ruby-chasen のビルド中に
(中略)
> と、warning 出てないですかね?

さっき portupgrade -f してみたら確かに出ていますね。
でも、昨日のテストコードではこけませんね。

> $ gcc --version
> gcc (GCC) 4.2.1 20070719  [FreeBSD]

gccも同じだと思います。

% gcc --version
gcc (GCC) 4.2.1 20070719  [FreeBSD]
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

なので。

--
阪口哲男@図書館情報メディア研究科.大学院.筑波大学
Tetsuo SAKAGUCHI.
Graduate School of Library, Information and Media Studies
University of Tsukuba, JAPAN.