-
-
Notifications
You must be signed in to change notification settings - Fork 277
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
dotnet fsi
can't be started on Windows
#1087
Comments
While I agree that supporting the dotnet core fsi binary would be interesting to try it out, it has nothing much to do with windows itself and should absolutely not be the default as it's not officialy released. The version of Also once it's here Ionide would need a way for users to choose the version of fsi being used (.Net FW and .Net Core) as they are very incompatible (And there is no fsproj here to drive what should be used). |
@vbfox the link you've provided has nothing to back your statement about anything being "not final". .Net Core version of FSI was considered "good enough" by developers to be shipped in generally available versions of .Net Core (2.1, 2.2) and VS2019 with F# 4.6. I know there are some issues with it though - I'm myself waiting for the next Core SDK update (it should be 2.2.300) to get some stuff fixed. If there are blocking issues upstream - they are better to be stated clearly and tracked somewhere. I'm not convinced you have to wait until 3.0 release to start thinking about Core support. Previews are coming one after another already. And it is quite disappointing to see the lack of fleshed-out responses here. It has to be implemented sooner or later, so I would've expected rough roadmap at least already. (This issue is just my perspective at the current state. For the grand task of .Net Core support tracking, a different issue can be opened. Or I can rename this one with a more appropriate name if it will get traction instead.) |
Although the latest previews of 2.1.x, 2.2.x, and 3.0-preview5 all have |
You might not ship the thing until 3.0 ships. Just let the users know why (no guesses please). Honestly, it feels like Ionide can't keep up the pace, not being a Microsoft project and with limited maintainers time. I hope Microsoft can consider it important enough to pick up as they did with Python VSCode extension. |
It's in preview is the reason. See hyper's issue log if you want to know why people do this. Hyper released immediately to make people happy and now everyone is miserable. Good software takes time. |
Links please. And again, silence serves no good. |
FSI status in .Net Core distributions of F# has been long and complicated (partially because a version was erroneously included in .Net Core some times ago before it was even working) but if Phillip Carter (The program manager for F# at Microsoft) say it's in preview it is. He is the one calling the shots after all.
Ionide is a community project, if something in it isn't to your taste (Missing feature, bug, the color of the logo is annoying) you have 2 choices, either you change the code or you convince someone to do the change for you. Follows that .Net core FSI will be supported out of the box when someone PR that change and the maintainer (Krzysztof) accept it. Essentially thanks for volunteering to do the change, everyone is awaiting your PR 😉 |
You're asking someone who haven't been involved much in development of any VSCode extension yet. And quite new to F# too (Touched it only a bit before, decided to give it a try for a small project after I found tools for Haskell in inferior shape). Sure, why not. Looks like it's just the usual lack of working hands. Looks like .Net Core 3.0 release has not much to do with it after all. Almost an arbitrary point in time before which everything FSI is considered lowest priority, since there is no better idea when it becomes "good enough". Trying to extract useful bits:
No idea about incompatibilities between two versions and what implications they have for this issue. I only have core version and will have to look up where to get the classic one. Even if my understanding is correct and that covers all the work to be done - there is no guarantee I will follow it further. But I hope we end up with something more approachable to anyone who also need this feature working. |
The good news is that with the dotnet SDK you don't need to worry about points 3, 4, 5 in your list. This is because there's already a mechanism with the dotnet sdk to pin specific versions (which effectively acts as a pin on the version of So at a high level we need:
It's not a gigantic change, just a little finicky. |
As @baronfel demonstrated we can help you contribute and give you advice along the way, or perhaps you can put a bounty on it. In F/OSS things come from each according to their need and ability, to all. If you can't do it and you can't afford to support someone doing it, it may not get done right away. This doesn't mean what you want to do isn't valuable, I think it is quite valuable. Without contributions valuable things may not get done in a timely manner. It's important that it stay that way if we want our community to have a say in the growth of the language and tooling. |
All the usual talk about contribution process - that's obvious, needless to repeat. |
Apologies, your responses led me to believe it was non obvious. Best of luck! |
dotnet fsi
can't be started on Windows
as a workaround I threw
in a bat file and am using that as my FSI file path. It seems to be working. |
This is fixed in latest releases of Ionide. To use |
@Krzysztof-Cieslak Do you think it might make sense to make this the default configuration? |
@eiriktsarpalis, yes it's the plan. I think we'll give people a few more weeks to move to SDK 3.x and then change it. |
Describe the bug
With VS2019 and with .NET Core SDK 2.2 comes an
fsi.exe
that has to be run like this:dotnet fsi
(Microsoft (R) F# Interactive version 10.4.0 for F# 4.6)
That means there is no
fsiFilePath
that is called directly.This extension settings don't take it into account yet.
There is one suggested way to make it work:
It works on some platforms, but not Windows. It also hacky since the parameter names doesn't match their usage ("fsiFilePath" is not fsi, "fsiExtraParameters" is not extra).
Something has to be done to support the new way of calling FSI.
To Reproduce
Steps to reproduce the behaviour:
settings.json
as shown above;Expected behaviour
FSI terminal opened.
Observed behavior
Following error message shown:
On Windows, there is an extra parameter added to the head of the parameters list, making it impossible to construct valid command for launching FSI.
Corresponding line in the code:
https://github.com/ionide/ionide-vscode-fsharp/blob/master/src/Components/Fsi.fs#L60
https://i.imgur.com/c7OvSbv.png
Environment (please complete the following information):
Known workaround
Make an
fsi.cmd
file with following content:Set it as "fsiFilePath", set "fsiExtraParameters" empty.
The text was updated successfully, but these errors were encountered: