(toppers-users 3773) Re: SSPカーネルのgenoffsetに軽微なバグ?

Masaki Muranaka monamour @ monaka.org
2012年 1月 18日 (水) 17:57:16 JST


高田先生、みなさま:

差分取りながらアレコレ検討して,理解できてきました.
確かに ASP 由来の問題ですね.

use strict の件は,ASP のコードを読み解いていくにつれ,確かに一筋縄ではいかない気がしてきました.
一方,旧世代系カーネルのものは相対的に見通しがよいようです.

旧世代系については,cygdrive
パスの問題などユーザビリティに関連するバックポートが公式では宙に浮いた状態になっていますので,ついでに非公式にアップデートをかけました.

https://bitbucket.org/monaka/toppers_utils/downloads
の Branches のうち,-monami -minimal -gnu のsuffixがついているものが,それぞれのカーネルのものに対応します.
asp-monami のブランチは,上記の通り挫けましたので無変更です.
ちょっとした動作チェックはしましたが,きちんとテストしたわけではないです.


2012年1月18日0:37 Hiroaki TAKADA <hiro @ ertl.jp>:
> もなかさん、皆様
>
> もなかさんがご指摘のユーティリティ群の問題は、いずれもASPカーネル
> から来ている問題ですね。
>
>> 1. genoffset のサブルーチン parse_bit で、
>> print STDERR "genoffset: endian mismatch: $line\n";
>> なるエラーメッセージがありますが、$line は続くループ中で使われていて、
>> サブルーチン内では未定義です。
>> 関数外で定義したものを参照していると見なすには、不自然と思います。
>
> これは、サブルーチン外で定義したものを参照しています。確かに、あまり
> 良いコードではないですが、genoffset は今後使わなくする方向なので、
> このままにしておきます。
>
>> 2. makerelease の read_file で、
>>        open($fh, $filename) || die "Cannot open $infile";
>> とありますが、同スクリプト中では変数 infile は未定義です。
>
> これは、ASP 1.7.0 の問題です。最新版(未リリース)では修正されています。
>
>> // ...といったコードの検出は、以前も本MLで指摘したかもしれませんが、
>> // use strict と use warnings を使えば簡単に検出できます。
>
> 検討します。が、1のような話しがあるので、use strict をすると動かない
> コードが出てきそうなので、ちょっと慎重にやりたいです。
>
>> SSP カーネルの configure のサブルーチン generate 内で、
>> $sys と $cpu が絡む条件判断がありますが、ともに未定義です。
>> 盲腸コードではないかという気がするのですが、いかがでしょうか。
>
> これは、ご指摘通り、JSPカーネルのコードの名残りですね。削除したいと
> 思います。
>
> 高田広章
> 名古屋大学
>
> (12/01/17 11:18), Masaki Muranaka wrote:
>> TOPPERS-Users MLのみなさま:
>> こんにちは。
>>
>> SSPカーネルを斜め読みしていて、重箱の隅的に気になるところ(バグ?)がありました。
>> 他の新世代カーネルから引き継いだ可能性もありそうな気もしますが、未確認です。
>>
>> 1. genoffset のサブルーチン parse_bit で、
>> print STDERR "genoffset: endian mismatch: $line\n";
>> なるエラーメッセージがありますが、$line は続くループ中で使われていて、
>> サブルーチン内では未定義です。
>> 関数外で定義したものを参照していると見なすには、不自然と思います。
>>
>> 2. makerelease の read_file で、
>>        open($fh, $filename) || die "Cannot open $infile";
>> とありますが、同スクリプト中では変数 infile は未定義です。
>>
>>
>> // ...といったコードの検出は、以前も本MLで指摘したかもしれませんが、
>> // use strict と use warnings を使えば簡単に検出できます。
>>
>> --
>> from もなか