문제

I've been trying for a week to get F# interactive working in Emacs and I haven't been able to.

The problem is that whenever I run "fsi" or "fsharpi" (either using fsharp mode or in a shell buffer), the buffer becomes unresponsive. I check the system monitor and see a mono process using 100% CPU and obviously anything I type doesn't get evaluated.

I've tried this on Emacs 24.1 and 23.2; also on OS X, Linux Mint and Fedora, and all cause the same exact problem.

I've tried different versions of mono (2.10.9, 3.0 and 2.8 on OS X; 2.10.8.1 on Linux Mint, can't remember on Fedora). I've also tried F# 2.0 and 3.0; all with same results.

I've also tried passing in "--no-gui" and "--readline" when launching the interpreter to no use.

Here's basically what happens

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 `;;'

However, the interpreter does work when running it on an "ansi-term" buffer:

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

I want to use it with fsharp mode so that I can send code to the interpreter easily.

I haven't seen anyone having problems of this kind online, and resolving this would make development so much more convenient.

Any ideas on how to get this working?

Edit: as expected, running it in comint mode also "hangs" (comint is what fsharp mode uses).

도움이 되었습니까?

해결책 2

The answer is to run the F# interpreter with the option "--readline-".

It should be solved (no need for this command line argument) in the Github repository https://github.com/fsharp/fsharp

다른 팁

What version of fsharp-mode are you using? The last update (v0.3) was just after the release of VS2010 (F# 2.0), and the release notes mention that an infinite-loop bug was fixed in that version.

Another possibility -- the last update to fsharp-mode predates Mono's support for F#, so my guess is that some piece of code in the Intellisense helper project (in the /src folder of the fsharp-mode code) is relying on Windows-specific behavior and breaking when you run it on Mono.

I think your best bet to get this working is to repost your question on the fsharp-opensource mailing list, as a number of people on there are running F# on Mono and might know how to fix the problem.

EDIT: The answer from the mailing list post is to pass in the --readline- flag. The trailing - turns readline off and fixes the problem.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top