Open srid opened 3 years ago
Repro: https://github.com/srid/Feather/blob/master/example/example.fsx (might have to change -2
to -1
to get a working version; cf. https://github.com/dotnet/fsharp/issues/3178#issuecomment-811361363)
This is because the Package manager is currently dependency injected. And I'm not entirely sure if there will be license issues if I include it.
You can unzip this to the install directory to enable it. FSharp.DependencyManager.zip
I'll try to ship this as part of the nuget package.
You can unzip this to the install directory to enable it.
What's the install directory?
Usually C:\Users\<user>\.dotnet\tools
.
Hold on, I'll just patch this,
Please try it now (uninstall.ps1 followed by install.ps1) - FParsec does work for me with "#r nuget".
This eliminated the first error, but the "Stopped due to error" is still present.
You can reproduce this using cd example; fsw example.fsx
in the repo I linked above after applying this patch,
diff --git a/example/example.fsx b/example/example.fsx
index c274fbe..a216579 100755
--- a/example/example.fsx
+++ b/example/example.fsx
@@ -1,5 +1,5 @@
#!/usr/bin/env -S dotnet fsi
-#r "nuget: Feather.Build, 0.1.0-alpha-2"
+#r "nuget: Feather.Build, 0.1.0-alpha-1"
// Workaround for https://github.com/dotnet/fsharp/issues/3178#issuecomment-811174453
#r "nuget: Microsoft.Extensions.FileProviders.Physical, 6.0.0-preview.2.21154.6"
That's because the package only supports net5.0
and this is built for .net core 3.1
.
You could try changing the target version in global.json
and attempt an install.
I actually originally installed it by using net5.0 in global.json. Can't really get it to work.
Hi @srid, global.json
is just the SDK version - you would also need to change the TFM in FsWorksheet
to net5.0
.
I've updated both and pushed an update.
I've also added support for the fsi
configuration object, but you should ideally use Environment.GetCommandLineArgs()
.
Great, there is some progress. I don't see the aforementioned error anymore, but fsw
(unlike dotnet fsi
which succeeds) fails to resolve some dependencies:
Great, there is some progress. I don't see the aforementioned error anymore, but fsw (unlike dotnet fsi which succeeds) fails to resolve some dependencies:
Could this because this tool not using lest F# compiler services? I see the one used here is 38.0.0 and latest is 39.0.0
It's not FCS. FCS 39 breaks a lot of things, so I've deferred upgrading until FCS 40 is out when the breaks are stabilized.
This is a classic assembly binding error. The build was currently using Control.Reactive 4.x, and your nuget package referred to Rx 5.x. So it couldn't late bind a different version of the assembly.
I've updated the package version, so it should work now.
Ideally we shouldn't be depending on any other library, so fsw
doesn't have any conflicts, but removing the dependency on Control.Reactive will make the code a bit ugly. Most of the usage is in Watch.fs
.
If anyone's interested in redefining a few observable combinators let me know.
fsx scripts allow specifying deps,
But fsw errors out: