Sdk: Why were the C# and F# REPLs removed and when/how will it implemented "as a separate tool"?

Created on 22 Jul 2016  路  21Comments  路  Source: dotnet/sdk

Steps to reproduce

dotnet repl
dotnet repl csi
dotnet repl fsi
None of these start a REPL!

Expected behavior

REPL opened

Actual behavior

No executable found matching command "dotnet-repl"

Environment data

dotnet --info output:

.NET Command Line Tools (1.0.0-preview2-003121)

Product Information:
Version: 1.0.0-preview2-003121
Commit SHA-1 hash: 1e9d529bc5

Runtime Environment:
OS Name: Windows
OS Version: 10.0.10586
OS Platform: Windows
RID: win10-x86

Most helpful comment

A online REPL is not enough at all, one of the benefits of REPL-driven-development is the fact, that you can interactively interact with your whole codebase; that's just not possible with such simplistic online tool.

All 21 comments

Ditto, was the first thing I tried with my dotnet command I installed to do some F#.

Issue dotnet/sdk#5036 says that it was going to be reimplemented as a separate tool, but I've heard nothing of the sort. Is this going to be available in preview 3 or rtm?

There is not a timeline for REPL commands at this time.

I don't know if this is the right place to ask this (please forgive me in case it's the wrong place), but is there any news concerning the REPL status for dotnetcore? Is there any chance to get a REPL some day? If yes, which languages will be supported and by when we can expect to be relased?

I am also interested.

I don't think it's going to come back unless somebody pull requests it back in

This includes that a fundamental tool is meant to stay absent in .Net Core.

Is this project still meant to be the standard development toolkit in our ecosystem?

I ask, since this effects all the operating systems and basically means that we abandon the fundamental 'run this code instantly' functionality in our IDE`s once we use the .Net Core platform.

This is the vital upside of dynamically typed languages and a unique feature in statically typed languages.

So we give up one of our critical benefits in our default implementation?

What bothers me most is that the last comment before closing the issue is rather vague: "There is not a timeline for REPL commands at this time."

At this time, could mean that they are thinking about it and a REPL may be added in the (near) future or that there is no intent to implement this feature and it probably never come. I don't blame Microsoft for not implementing it (a REPL is clearly not the most important part of .Net Core) but I would appreciate that they give more precision about what they intent to do on this subject.

+1 for REPL support
When learning nodejs, i used REPL all the time to try out snippits, it sped things up a lot.
I'm learning C# now, and really missing a REPL.

Meanwhile, you might want to try https://try.dot.net/

Thanks a lot. This seems to be meant to provide C#, while no F#?

The Run button on the down gets easily lost here on FF 57, when a massive stream of errors (20 lines) appear since the scroll button does not work anymore then.

And I like the REPL, since I can code and simply run it. Here, I would have to add ;; after nearly each command.

Thanks a lot for your suggestion.

What bothers me most is that the last comment before closing the issue is rather vague: "There is not a timeline for REPL commands at this time."

I am simply wondering, why 600 commits floated into Mono from Core, as the second one got released.
Now, as we see such a wonderful and fundamental feature in a coma, does it seem impossible to do the other way around.

Seems one of such a microsoftish move is happening.

Why get Mono and .Net Core developed next to each other? Both are officially supported by Microsoft.

Such a confusing decision.

@piotrpMSFT @jonsequitur to take a look at the feedback on try.dot.net.

A online REPL is not enough at all, one of the benefits of REPL-driven-development is the fact, that you can interactively interact with your whole codebase; that's just not possible with such simplistic online tool.

This is not a statement of we are not doing REPL because there is this "online" version of it. It is more of a "check that out while we don't have a REPL in the command" statement. Just want to make that clear.

Is this supposed to do work in F-Sharp?

So are you doing a REPL or not? At least for me, when F# programming the use of the fsi is quite important. If you are doing a REPL, then at least link the appropriate issue.

Its in development yeah. A developer confirmed this in another thread.

@ShalokShalom Can you link the comment please?

https://github.com/Microsoft/visualfsharp/issues/1096#issuecomment-336724862

I think there was a more precise one also. You can mention cartermp here, if you like.

For those F#-interested folks following along here, as of .Net Core SDK 3.0.100 it's possible to launch fsi via dotnet fsi from your terminal. Ionide for VS Code supports this when the FSharp.useSdkScripts setting is set to true in your settings.json file.

Was this page helpful?
0 / 5 - 0 ratings