OSX で g95 バイナリを使用して fortran プログラムをコンパイルすることに成功した

Jeffrey Whitaker は、OSX で g95 バイナリを使用して fortran プログラムをコンパイルすることに成功したと報告しました。万歳!

Joost Vandevondele は、彼の計算の 1 つの結果がわずかに変化したことに注目しました。問題は累乗の計算にあったと思います。OSX には pow() 関数がありませんので、単純な a**b=exp(b*log(a)) に置き換えました。振り返ってみると、 pow() がある場合に使用しないのは間違いだと思うので、 pow() 関数をチェックして、存在する場合はそれを使用します。

Earl Duque は、ある種の CFD であると思われる「オーバーフロー」プログラムである程度の成功を報告しました。彼はまた、私たちが対応している前処理のいくつかの奇妙なことを指摘しました. 名前リスト名を開始するために、’&’ に加えて ‘$’ 文字も追加しました。

Charles Rendleman と私は、g95 プログラムを他のプログラムとリンクする際の問題について連絡を取り合っています。問題の発生を防ぐために、いくつかのものを移動しました。また、メインの PROGRAM ユニットの外部で呼び出された場合に備えて、ランタイム ライブラリに基本的な自動初期化を追加しました。

Richard Maine さんがいくつかのバグを送ってくれました。1 つ目は、ACHAR() がデフォルト以外の種類の整数を受け入れないことに関係していましたが、これは修正されました。2 つ目は、VERIFY() 組み込み関数の 1 つずれのエラーです。彼の最後の問題は、連結操作の長さを計算できなかったことです。

Linux 以外のオペレーティング システムでかなり古いバージョンの gcc をビルドできないという報告が何人かの人々から寄せられています。かなり重要なことを言い忘れていました。GCC を完全にビルドする必要はありません。gcc/gcc/libbackend.a が作成されたところまで来たら、完了です。この時点以降、gcc がそれ自体をコンパイルしようとすると OSX ビルドがクラッシュしますが、g95 が必要とする部分は既にそこにあります。

Jack Moffitt は、powerpc-linux でビルドが成功したと報告しましたが、これは主に Linux のせいだと思います。powerpc-linux の処理が不足しているため、ライブラリの構成に失敗しました。構成を更新しましたが、OSX での powerpc によく似ていると想定しました。うまくいけば、そこでうまくいくでしょう。

少し手を加えるだけで、freebsd ビルドを取得することにも成功しました。

Earl Duque は、Richard の問題に対する修正の 1 つに関連する問題を送信しました。修正を修正しました。

 


6月28日

OSX への移植が開始されました。近い将来、さらにいくつかの移植が行われることを願っています。何人かの人々は、ソースに構成スクリプトが含まれていないことを指摘しました。現在はそうであり、どの UNIX システムでも箱から出してビルドできるはずです。

OSX への移植を試している人からの連絡に非常に興味があります。

ビルド プロセスはまだうまくいきません。現時点では、ライブラリとコンパイラを個別にビルドする必要があります。両者の統合が計画されています。

 


6月27日

g95のOSXへの移植に成功しました。OSX への移植により、I/O ライブラリの一部のコードでいくつかのバグが明らかになったため、バイナリはまだ投稿していません。だから、とにかく捨てるつもりのものをデバッグする代わりに、しばらくの間計画されていたマイナーな書き直しを行うことに集中するつもりです.

OSX が最も困難な UNIX ポートになることを願っています。これは、ヘンリー・スペンサーの有名な引用「UNIX を理解していない人は、不十分に再発明することを余儀なくされている」の生きた例です。

リスト出力で負のゼロを正しく出力する、サイズがゼロの共通ブロック、および読み取り専用メモリに保存された配列記述子をコンパイルする際に、いくつかの問題がありました。しかし、最良のものは、setjmp() によって使用されるライブラリ関数への一対の参照でした。これらを setjmp() で libc に入れるだけでなく、/usr/lib の libgcc.a に入れます。したがって、インストール プロセスの一部として、「システム」libgcc.a から .o が抽出され、g95 の libgcc.a に配置されます。

何人かの人々がビルドの失敗を報告しています。現在のソースは再編成されており、もう少し作業が必要です。

 


6月25日

Frank Muldoon さんは、Fortran 手続きが C 関数を呼び出せるようにする一般的な %VAL() と %REF() 拡張機能が実装されていないことを指摘しました。それらの基本的なサポートを追加しました。

 

タイトルとURLをコピーしました