[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[dennou-ruby:002970] Re: 単位がpercentのGphys



堀之内です。

私の対応が悪くて、ご迷惑おかけしました。
(神代さんすみません。下記のように近々バージョンアップします。
...解釈する単位追加を募集します。)

さて、この対処だけでは、SEGV の可能性はまだ
残ります。GC.disable すると、SEGV しなくなりますので、
RACC のパーサー(in C)の問題でしょう。

per は割り算として解釈されます。問題のひとつは、
percent が 'per cent' と解釈されてしまったことで、
これは神代さん(&西澤さんも同じ)の変更で対応できます。
しかし、あいかわらず、 '/s' や 'per cent' は SEGV できます。
そこで、rules.rb に手を入れて、二項演算の片方が
ない場合は構文エラーになるようにしました。
あと、細かな点として、今まで空文字列 '' は reduce5 (演算に
使われる基本単位への変換) ができなかったのが、'1' と
同じ扱いにしました。
あと、単位間の関係を記述するファイル dcunits.txt に 

  percent % permil centigrade millibar 

を追加しました。以上、先ほど commit しました。

他にも単位の追加希望ないでしょうか。少し待って追加してから
バージョンアップしたいと思います。

> おお、見逃していました!お騒がせしてすみません。
> 3年間バージョンアップされてないのでcvs版が更新されていると
> いう考えに至りませんで。。
> 
> -- 
> 水田 亮
> rmizuta@xxxxxxxxxxxxx
> 
> 
> > From: KOSHIRO Tsuyoshi <koshiro@xxxxxxxxxxxxxx>
> > Date: Fri, 23 May 2008 19:12:15 +0900
> > 
> > 神代です.
> > 
> > この件, 今年になってから私がCVSに修正コミットしました.
> > [dennou-ruby:002888] です.
> > 
> > At Fri, 23 May 2008 13:17:26 +0900,
> > Takeshi Horinouchi wrote:
> > > 
> > > 堀之内です。  
> > > 未対応すみません。ちょっとみてみます。
> > > 
> > > > 水田です。
> > > > 
> > > > unitsがpercentなGphysどうしの足し算をしたら落ちるのですが、
> > > > 検索すると[dennou-ruby:002534]-[dennou-ruby:002539]の件が
> > > > 解決されていないようです。
> > > > Segmentation faultでいきなり落ちるので原因を突き止めにくく
> > > > やっかいですので対処をおねがいしたいのですが・・。
> > > > 
> > > > -- 
> > > > 水田 亮
> > > > rmizuta@xxxxxxxxxxxxx
> > > > 
> > > > 
> > > > > From: KOSHIRO Tsuyoshi <koshiro@xxxxxxxxxxxxxx>
> > > > > Date: Tue, 06 Dec 2005 16:09:17 +0900
> > > > > Subject: [dennou-ruby:002534] NetCDF の units
> > > > > 
> > > > > 神代です.
> > > > > 
> > > > > 単位についての質問です.
> > > > > 
> > > > > 雲量のデータをNetCDF化して使っているんですが,単位を "percent" として
> > > > > います.
> > > > > このデータをGPhysで読んで,GPhysどうしを足し算すると,
> > > > > 
> > > >  :
> > > > 
> > > > 
> > > > > From: KOSHIRO Tsuyoshi <koshiro@xxxxxxxxxxxxxx>
> > > > > Date: Wed, 07 Dec 2005 14:21:01 +0900
> > > > > Subject: [dennou-ruby:002538] Re: NetCDF の units
> > > > > 
> > > > > 神代です.
> > > > > 
> > > > > At Wed, 07 Dec 2005 10:52:36 +0900, Takeshi Horinouchi wrote:
> > > > > 
> > > > > > 現状では単位は 0.01 とすればいいように思います。
> > > > > > お急ぎの場合、豊田さんが書いてるように自分で加えて
> > > > > > 再生成ですね。src/ で dcunits.txt に加えて make。
> > > > > 
> > > > > やってみました.
> > > > > % はうまくいきましたが,percent は #reduce5 で落ちてしまいます.
> > > > > どうも per〜 という名前の単位はうまく扱えないみたいです.
> > > > > 原因は src/lex.rb の 57行目
> > > > > 
> > > > >      if @copy.sub!(%r{^[ \t]*(per|PER|/)[ \t]*}, '') then
> > > > > 
> > > > > ではないかと思います.最初のメールのエラーもたぶんこれですね.
> > > > > 
> > > > > 
> > > > 
> > > > 
> > > > 
> > > > > From: Takeshi Horinouchi <horinout@xxxxxxxxxxxxxxxxxxxx>
> > > > > Date: Wed, 07 Dec 2005 17:22:08 +0900
> > > > > Subject: [dennou-ruby:002539] Re: NetCDF  の units
> > > > > 
> > > > > 堀之内です。
> > > > > 
> > > > > > % はうまくいきましたが,percent は #reduce5 で落ちてしまいます.
> > > > > > どうも per〜 という名前の単位はうまく扱えないみたいです.
> > > > > > 原因は src/lex.rb の 57行目
> > > > > > 
> > > > > >      if @copy.sub!(%r{^[ \t]*(per|PER|/)[ \t]*}, '') then
> > > > > > 
> > > > > > ではないかと思います.最初のメールのエラーもたぶんこれですね.
> > > > > 
> > > > > ここは豊田さんが書いたとこですね。割り算をあらわす場合 per の前後
> > > > > にはスペースを入れるもんではないでしょうか(mm per monthとか。
> > > > > "/"の場合はスペース要りませんが)。perなら前後(または後ろ)に
> > > > > スペースを1個以上要求すればいいと思いますが、いかが?
> > > > > 
> > > > > # このままでは天文単位もサポートできませんね。