LAPACK の問題の修正に取り組みました。MIN/MAX ファミリの関数を解決する際に、チェック関数の両方にいくつかのバグがあり、他の関数よりも先に特定の関数をチェックする必要があることがわかりました。たとえば、amin0 と min0 はどちらも整数の引数を取りますが、amin0 は実際の結果を返し、min0 は整数を返します。つまり、一般的な min 関数を解決することによって amin0 を一致させることはできません。これは、amin0 の前に min0 を解決しようとすることによって達成されます。min1/amin1 と MAX ファミリにも同様の条件があります。
また、double の複合型を操作する組み込みの拡張機能をいくつか追加しました。そもそもなぜ標準にこれらが含まれていないのかを言うのは難しいです。
1月16日
Steven Bosscher は、NULL() へのポインターの設定が問題を引き起こしているという問題について書いています。まず、軌跡が失われ、コア ダンプが発生していました (修正済み)。2 つ目の問題は型変換でした。typespec ノードを設定するだけで、NULL ポインタが正しい型に変換されるようになりました。これも修正されました。
2 番目の問題は、自分自身を指すことができる構造に関係していました。派生型の宣言により、define-before-used をチェックするコードがトリガーされました。現在、派生型宣言内ではチェックを行いません。
キャサリンは、数日前に発見されたアークタンジェントの問題に取り組んでいます。x>0.5 の場合、atan(x) は有効桁数の半分を失います。問題は、計算または無限級数で使用される pi の値に関連していないようです。調査は続く。
1月15日
今日はコードはありませんが、ニュースがあります。
Claus Fischer は、checkgcc がインストールされている Web サーバーのアカウントを寄付しました。昨夜の LAPACK での実行は約 8 時間後に終了し、メモリの異常はまったく発生しませんでしたが、割り当て追跡オプションをまだ有効にしていませんでした。おそらく、メモリが解放されていない場所がたくさんあります。Web ステータス ページはまだ準備中です。Vielen Dank Claus!
メール キューに 2 つのアイテムがあり、明日届くと思います。
1月14日
Steven Bosscher は、g95_check_assign_symbol() でシンボルのランクを誤って考慮していた問題を修正しました。
彼はまた、RESHAPE() 組み込み関数が正しい型を返していないことも指摘しました。これまでの問題点は、単純化サブルーチンがパラメーターにしかアクセスできず、関数ノード自体にはアクセスできなかったことです。これらの場合の単純化には、引数リストのコピーの作成と新しい関数呼び出しの作成が含まれていました。
これは面倒だったので、新しいスキームでは現在の関数へのポインターをグローバル変数に保存します。単純化のアクションが型を設定することである場合、ノードへのポインターが得られます。これにより、作業がはるかに簡単になります。
Claus Fischer は、境界チェックを使用して g95 のバージョンをコンパイルしました。通常よりも約 30 倍遅く実行されますが、実行されないのではないかと心配していましたが、実行されました。mkf90 で実行すると問題がありますが、LAPACK ソースをループして実行しています。別の大きな仕事を実行していて、しばらく時間がかかります。