9

なぜ?ブートストラップ プロセスと実際のコンパイラ プロセスのコンパイルがありますが、どの部分が最も時間を消費しますか?

4

4 に答える 4

9

Gentoo の観点から:

Gentoo では、すべてがコンパイルされます。私たちが GHC のために行っていることは、開発者 (私のような非公式の開発者を含む) が GHC の新しいバージョンを古いバージョンからコンパイルして、バイナリ ブートストラップ バージョンを作成し、それをパッケージ化して、ユーザーがそれを使用して新しいバージョンをコンパイルできるようにすることです。

メモリからバイナリをコンパイルすると、2 倍以上の時間がかかることがあります (バイナリを使用してラップトップで新しいバージョンをコンパイルするには、約 45 分かかります)。いくつかの違いがあります (ドキュメントは、各ユーザーが自分でビルドするのではなく、バイナリと共にビルドおよび出荷されます) が、そのような大きな時間差を説明できるものはありません。バイナリとエンドユーザーの両方をビルドするために使用される実際の ebuild は、ここにあります (ghcbootstrap フラグを有効にすることは、バイナリをビルドすることを意味し、バイナリ フラグを有効にすることは、ユーザーが GHC を自分でビルドするのではなく、事前にビルドされたバイナリをインストールして使用することを意味します): http: //code.haskell.org/gentoo/gentoo-haskell/dev-lang/ghc/ghc-6.12.3.ebuild

そのため、Macports が実際に最初のブートストラップ バイナリをビルドしている場合 (特に、最後の C のみのリリースからビルドし、実際に必要なバージョンまでブートストラップしている場合) は、最初のブートストラップ プロセスに非常に時間がかかると思います。インストール)。

于 2010-07-01T06:58:41.993 に答える
4

GHC の構築は永遠にかかることで有名です。ソースからのビルドに 8 時間以上かかるという恐ろしい話を聞いたことがあります。私が理解していることによると、これは主に、GHC のデフォルト ビルドが自身のランタイム パフォーマンスを高速化するために大量の最適化を実行しようとするという事実によるものです。部分的に事前に構築されたシステム (macports が提供すると私が信じているもの) を使用しても、すべてのリンクが原因で、このプロセスには時間がかかる場合があります。

編集: 次の http://hackage.haskell.org/trac/ghc/wiki/Building/Using#HowtomakeGHCbuildquicklyを参照してください

于 2010-06-30T23:09:42.563 に答える
3

しばらく時間がかかる場合があります。以前 iBook G4 でコンパイルしたときは、7 時間もかかりました。十分な RAM と高速プロセッサを搭載した MacBook Pro でも、2 ~ 3 時間かかることがあります。

于 2010-06-30T21:31:30.703 に答える
2

一部のビルド プロセスにはかなりの時間がかかります。時間の長さは、CPU の速度と、ビルドに使用できるプロセッサ時間に大きく依存します。

特定の時点でハングアップする可能性があることが心配な場合はinstall-vフラグを指定して実行し、ビルド プロセスに関連するより説明的な出力を取得します。したがって、コマンドは次のようになります。

sudo port -v install [portfile]
于 2010-06-30T21:25:10.970 に答える