3

私は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モードで使用されるものです)。

4

2 に答える 2

3

どのバージョンfsharp-modeを使用していますか?最後の更新(v0.3)は、VS2010(F#2.0)のリリース直後であり、リリースノートには、そのバージョンで無限ループのバグが修正されたと記載されています。

fsharp-mode別の可能性-MonoのF#のサポートよりも前の最後の更新であるため、Intellisenseヘルパープロジェクト(コードの/srcフォルダー内fsharp-mode)の一部のコードは、Windows固有の動作に依存しており、実行すると破損する可能性があります。単核症。

これを機能させるための最善の策は、 fsharp-opensourceメーリングリストに質問を再投稿することだと思います。そこにいる多くの人がMonoでF#を実行していて、問題の修正方法を知っている可能性があるからです。

編集:メーリングリストの投稿からの答えは、--readline-旗を渡すことです。末尾-はreadlineをオフにし、問題を修正します。

于 2012-10-26T18:01:29.053 に答える
1

答えは、オプション「--readline-」を指定してF#インタープリターを実行することです。

Githubリポジトリhttps://github.com/fsharp/fsharpで解決する必要があります(このコマンドライン引数は必要ありません) 。

于 2012-10-30T13:58:34.707 に答える