2017-04-03 23 views
2

他の誰のためにstackコンパイル&をコンパイルすると、プロジェクト全体がstack ghciになるのですか?プロジェクト全体をコンパイル&リンクせずに `stack ghci`をロードするには?

前者をスキップして、すぐにソースを読み込むためにghciにジャンプしないでください。私はそれが私のプロジェクトのほとんどで私のために両方を行うことを観察したので、それは一見余分な仕事をしています。これは設計によるものか、スタックプロジェクトのいくつかを誤って構成した可能性がありますか?

おそらくこれはの下にcabalによって行われますか?stackはそれを求めていますか?

とにかく、stack ghciと入力するだけで、編集+リンクをスキップすることができますか? Haskell Tool Stack Documentationから

+1

どのバージョンのスタックを使用していますか?バージョン1.3.0以降、--no-buildフラグは必要なだけではいけません。完全ビルドをスキップし、必要な「初期ビルドステップ」を実行するだけです。 – mgsloan

+0

私は今のところほとんど1.1.2を使用しています。私は1.3.0を横にインストールして試しましたが、問題は私にそれを使用させてくれませんでした。私はあなたが書いたものを読むことがうれしいです、それは私に切り替えのモチベーションをもっと与えます。 – Wizek

答えて

3

初期負荷

をスピードアップGHCiの最初の起動を高速化するために2つの方法があります。

  • --no-build、初期ビルドをスキップするには、ステップ。これは、依存関係がすでに構築されている場合にのみ機能します。

またstack ghciがロードソースをスキップすることができます使用して(あなたは一つだけのファイルがでロードされ、手でそれを行うことができますしたい知っている場合):

  • --no-loadは、スキップしますすべての定義されたモジュールをghciにロードします。次に、:load MyModuleを直接使用して、プロジェクト内の特定のモジュールをロードすることができます。
+0

ありがとう! '--no-build'フラグは私が探していたものかもしれません!今すぐ試してみてください。 – Wizek

1

私はちょうど-fobject-codeもこの中で役割を果たしていることを実現しました。私はそれが設定されているかどうかわかりません(コマンドラインではなく、/package.yamlファイルではなく、~/.ghciにもありません)。

しかし、私が--ghci-options=-fbyte-codeでそれを否定すると、再コンパイルが行われていないようです。

まだ:reloadにファイルが変更されてからわずか1秒かかるため、-fobject-codeが初期ロード時に完全な再コンパイルを行う必要がある理由を、より完全に理解したいと思っています。 (例:ghcid

関連する問題