2

Ctrl+C (または +Z など) を押しても、Windows コマンド ライン (またはパワー シェル) でhaskell アプリケーション (またはhappstackアプリ) が終了しません。

現在、ウィンドウを閉じてから、新しいコマンドライン/パワーシェルウィンドウを開き、アプリの場所に移動して、runhaskellで再度起動する必要があります。コードが変更されるたびにアプリを「自動リロード」する簡単な方法はありますか?

それとも私は何か間違ったことをしていますか?

4

1 に答える 1

2

一般的に、Ctrl-C とウィンドウにはいくつかの問題があります。詳細についてはよくわかりません。おそらく、Windows を使用している誰かがより良い修正を思い付くことができます。

最も簡単なことはforkIOwaitForTermination

do tid <- forkIO $ simpleHTTP nullConf yourApp
   waitForTermination
   killThread tid

waitForTermination終了信号を受信するまでブロックします。UNIX プラットフォームでは、^C です。Windows では、文字 'e' (終了) です。returnバッファリングによっては、キーを押さなければならない場合があります。

Linux では、ソース ファイルが保存されるたびに happstack-plugins/plugins-auto を使用して、自動的に再コンパイルし、実行中のサーバーに変更をリロードできます。ただし、plugins-auto は Linux 固有の inotify ライブラリに依存しているため、現時点では Windows をサポートしていません。inotify のサポートを一般化して、利用可能になったときに使用できるようにし、Windows でポーリング ソリューションを使用できるようにする作業が進行中です。

plugins-auto チェックアウトの古いデモを見るには:

http://happstack.blogspot.com/2010/10/recompile-your-haskell-based-templates.html

于 2012-01-05T05:27:33.170 に答える