私はEmacsでF#インタラクティブを機能させるために一週間努力してきましたが、できませんでした。
問題は、「fsi」または「fsharpi」を実行すると(fsharpモードを使用するかシェルバッファーで)、バッファーが応答しなくなることです。システムモニターをチェックすると、100%CPUを使用しているモノラルプロセスが表示されますが、入力したものはすべて評価されません。
私はこれをEmacs24.1と23.2で試しました。また、OS X、Linux Mint、Fedoraでも、まったく同じ問題が発生します。
さまざまなバージョンのmonoを試しました(OS Xでは2.10.9、3.0、2.8、Linux Mintでは2.10.8.1、Fedoraでは思い出せません)。F#2.0と3.0も試しました。すべて同じ結果になります。
また、インタプリタを起動するときに「--no-gui」と「--readline」を渡してみました。
これが基本的に何が起こるかです
bash-3.2$ fsharpi
Microsoft (R) F# 3.0 Interactive version (Mono build)
Copyright (c) Microsoft Corporation. All Rights Reserved.
For help type #help;;
> - 1+2;;
# after waiting for a minute, I kill the mono process
Killed: 9
bash-3.2$ bash: syntax error near unexpected token `;;'
ただし、インタプリタは「ansi-term」バッファで実行すると機能します。
bash-3.2$ fsharpi
Microsoft (R) F# 3.0 Interactive version (Mono build)
Copyright (c) Microsoft Corporation. All Rights Reserved.
For help type #help;;
> - 1+2;;
val it : int = 3
インタプリタにコードを簡単に送信できるように、fsharpモードで使用したいと思います。
この種の問題をオンラインで抱えている人を見たことがありません。これを解決すると、開発が非常に便利になります。
これを機能させる方法について何かアイデアはありますか?
編集:予想通り、comintモードで実行すると「ハング」します(comintはfsharpモードで使用されるものです)。