From a60c0681085c72da7eed219f345b093c50f4c2a5 Mon Sep 17 00:00:00 2001 From: Kevin Ransom Date: Thu, 16 Jan 2020 23:34:38 -0800 Subject: [PATCH 1/6] Fix nuget and ref assemblies --- .../FSharp.DependencyManager.Utilities.fs | 39 ++++++++++++------- .../FSharpScriptTests.fs | 19 +++++++++ 2 files changed, 45 insertions(+), 13 deletions(-) diff --git a/src/fsharp/FSharp.DependencyManager/FSharp.DependencyManager.Utilities.fs b/src/fsharp/FSharp.DependencyManager/FSharp.DependencyManager.Utilities.fs index 493a6ba789..7e3ea22754 100644 --- a/src/fsharp/FSharp.DependencyManager/FSharp.DependencyManager.Utilities.fs +++ b/src/fsharp/FSharp.DependencyManager/FSharp.DependencyManager.Utilities.fs @@ -205,7 +205,7 @@ module Utilities = | None -> "" let arguments prefix = - sprintf "%s -restore %s %c%s%c /t:FSI-PackageManagement" prefix binLoggingArguments '\"' projectPath '\"' + sprintf "%s -restore %s %c%s%c /t:InteractivePackageManagement" prefix binLoggingArguments '\"' projectPath '\"' let workingDir = Path.GetDirectoryName projectPath @@ -273,15 +273,22 @@ $(PACKAGEREFERENCES) - - - Pkg$([System.String]::Copy('%(ResolvedCompileFileDefinitions.NugetPackageId)').Replace('.','_')) - $([MSBuild]::EnsureTrailingSlash('$(%(FsxResolvedFile.PackageRootProperty))')) - $(%(FsxResolvedFile.PackageRootProperty))\content\%(ResolvedCompileFileDefinitions.FileName)%(ResolvedCompileFileDefinitions.Extension).fsx - + + + + + $([System.String]::Copy('%(PathInPackage)').Replace('/', '\')) + $([System.String]::Copy('%(Identity)').Replace('\%(PackageVersion)\%(InteractiveResolvedFile.NormlizedPathInPackage)', '')) + %(InteractiveResolvedFile.PackageRoot)\content%(ResolvedCompileFileDefinitions.FileName)%(ResolvedCompileFileDefinitions.Extension).fsx + $([System.String]::Copy('%(ResolvedCompileFileDefinitions.PathInPackage)').StartsWith('ref/')) + + + + @@ -290,22 +297,28 @@ $(PACKAGEREFERENCES) - + - + - + + + - + + + - + + + diff --git a/tests/FSharp.Compiler.Private.Scripting.UnitTests/FSharpScriptTests.fs b/tests/FSharp.Compiler.Private.Scripting.UnitTests/FSharpScriptTests.fs index 3046c3a76f..9dc326d0ed 100644 --- a/tests/FSharp.Compiler.Private.Scripting.UnitTests/FSharpScriptTests.fs +++ b/tests/FSharp.Compiler.Private.Scripting.UnitTests/FSharpScriptTests.fs @@ -190,6 +190,25 @@ printfn ""%A"" result Assert.AreEqual(123, value.ReflectionValue :?> int32) #endif + [] + member __.``ML - use assembly with ref dependencies``() = + let code = @" +#r ""nuget:Microsoft.ML.OnnxTransformer,1.4.0"" + +open System +open System.Numerics.Tensors +let inputValues = [| 12.0; 10.0; 17.0; 5.0 |] +let tInput = new DenseTensor(inputValues.AsMemory(), new ReadOnlySpan([|4|])) +tInput.Length +" + use script = new FSharpScript(additionalArgs=[|"/langversion:preview"|]) + let mutable assemblyRefCount = 0; + Event.add (fun _ -> assemblyRefCount <- assemblyRefCount + 1) script.AssemblyReferenceAdded + let opt = script.Eval(code) |> getValue + let value = opt.Value + Assert.AreEqual(4L, value.ReflectionValue :?> int64) + + [] member __.``Simple pinvoke should not be impacted by native resolver``() = let code = @" From ab3b4a7b67366f5582f2509f2f737e33c93e56a8 Mon Sep 17 00:00:00 2001 From: Kevin Ransom Date: Fri, 17 Jan 2020 16:34:40 -0800 Subject: [PATCH 2/6] Packaging fixes --- .../FSharp.DependencyManager.Utilities.fs | 25 ++++++++++++++----- 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/src/fsharp/FSharp.DependencyManager/FSharp.DependencyManager.Utilities.fs b/src/fsharp/FSharp.DependencyManager/FSharp.DependencyManager.Utilities.fs index 7e3ea22754..f176ecbdf3 100644 --- a/src/fsharp/FSharp.DependencyManager/FSharp.DependencyManager.Utilities.fs +++ b/src/fsharp/FSharp.DependencyManager/FSharp.DependencyManager.Utilities.fs @@ -230,6 +230,10 @@ namespace lib" $(TARGETFRAMEWORK) false + + + 4.7.0 + 4.7.1-* @@ -280,14 +284,23 @@ $(PACKAGEREFERENCES) - - $([System.String]::Copy('%(PathInPackage)').Replace('/', '\')) - $([System.String]::Copy('%(Identity)').Replace('\%(PackageVersion)\%(InteractiveResolvedFile.NormlizedPathInPackage)', '')) - %(InteractiveResolvedFile.PackageRoot)\content%(ResolvedCompileFileDefinitions.FileName)%(ResolvedCompileFileDefinitions.Extension).fsx + + $([System.String]::Copy('%(ResolvedCompileFileDefinitions.PathInPackage)').Replace('/', '\')) + $([System.String]::Copy('%(Identity)').Replace('%(InteractiveResolvedFile.NormlizedPathInPackage)', '')) + %(InteractiveResolvedFile.PackageRoot)content\%(ResolvedCompileFileDefinitions.FileName)%(ResolvedCompileFileDefinitions.Extension).fsx $([System.String]::Copy('%(ResolvedCompileFileDefinitions.PathInPackage)').StartsWith('ref/')) + %(ResolvedCompileFileDefinitions.NuGetPackageId) + %(ResolvedCompileFileDefinitions.NuGetPackageVersion) - + + $([System.String]::Copy('%(RuntimeCopyLocalItems.PathInPackage)').Replace('/', '\')) + $([System.String]::Copy('%(Identity)').Replace('%(InteractiveResolvedFile.NormlizedPathInPackage)', '')) + %(InteractiveResolvedFile.PackageRoot)content\%(RuntimeCopyLocalItems.FileName)%(RuntimeCopyLocalItems.Extension).fsx + $([System.String]::Copy('%(RuntimeCopyLocalItems.PathInPackage)').StartsWith('ref/')) + %(RuntimeCopyLocalItems.NuGetPackageId) + %(RuntimeCopyLocalItems.NuGetPackageVersion) + - + From 3e590d91568a921982ce95230d475c8c7a9440f2 Mon Sep 17 00:00:00 2001 From: Kevin Ransom Date: Sat, 18 Jan 2020 04:16:17 -0800 Subject: [PATCH 3/6] tweaks --- .../FSharp.DependencyManager.Utilities.fs | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/src/fsharp/FSharp.DependencyManager/FSharp.DependencyManager.Utilities.fs b/src/fsharp/FSharp.DependencyManager/FSharp.DependencyManager.Utilities.fs index f176ecbdf3..81d21bd62d 100644 --- a/src/fsharp/FSharp.DependencyManager/FSharp.DependencyManager.Utilities.fs +++ b/src/fsharp/FSharp.DependencyManager/FSharp.DependencyManager.Utilities.fs @@ -281,21 +281,20 @@ $(PACKAGEREFERENCES) BeforeTargets='CoreCompile' DependsOnTargets='CollectPackageReferences'> - - - $([System.String]::Copy('%(ResolvedCompileFileDefinitions.PathInPackage)').Replace('/', '\')) - $([System.String]::Copy('%(Identity)').Replace('%(InteractiveResolvedFile.NormlizedPathInPackage)', '')) + $([System.String]::Copy('%(Identity)').Replace('\', '/')) + $([System.String]::Copy('%(ResolvedCompileFileDefinitions.PathInPackage)').Replace('\', '/')) + $([System.String]::Copy('%(InteractiveResolvedFile.NormalizedIdentity)').Replace('%(InteractiveResolvedFile.NormalizedPathInPackage)', '')) %(InteractiveResolvedFile.PackageRoot)content\%(ResolvedCompileFileDefinitions.FileName)%(ResolvedCompileFileDefinitions.Extension).fsx $([System.String]::Copy('%(ResolvedCompileFileDefinitions.PathInPackage)').StartsWith('ref/')) %(ResolvedCompileFileDefinitions.NuGetPackageId) %(ResolvedCompileFileDefinitions.NuGetPackageVersion) - - $([System.String]::Copy('%(RuntimeCopyLocalItems.PathInPackage)').Replace('/', '\')) - $([System.String]::Copy('%(Identity)').Replace('%(InteractiveResolvedFile.NormlizedPathInPackage)', '')) + $([System.String]::Copy('%(Identity)').Replace('\', '/')) + $([System.String]::Copy('%(RuntimeCopyLocalItems.PathInPackage)').Replace('\', '/')) + $([System.String]::Copy('%(InteractiveResolvedFile.NormalizedIdentity)').Replace('%(InteractiveResolvedFile.NormalizedPathInPackage)', '')) %(InteractiveResolvedFile.PackageRoot)content\%(RuntimeCopyLocalItems.FileName)%(RuntimeCopyLocalItems.Extension).fsx $([System.String]::Copy('%(RuntimeCopyLocalItems.PathInPackage)').StartsWith('ref/')) %(RuntimeCopyLocalItems.NuGetPackageId) @@ -326,8 +325,8 @@ $(PACKAGEREFERENCES) - - + + From f96f4ca67eb18803a36c15c839ed48c586980846 Mon Sep 17 00:00:00 2001 From: Kevin Ransom Date: Tue, 21 Jan 2020 13:56:52 -0800 Subject: [PATCH 4/6] use substring rather than remove --- .../FSharp.DependencyManager.Utilities.fs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/fsharp/FSharp.DependencyManager/FSharp.DependencyManager.Utilities.fs b/src/fsharp/FSharp.DependencyManager/FSharp.DependencyManager.Utilities.fs index 81d21bd62d..f32d02f2c1 100644 --- a/src/fsharp/FSharp.DependencyManager/FSharp.DependencyManager.Utilities.fs +++ b/src/fsharp/FSharp.DependencyManager/FSharp.DependencyManager.Utilities.fs @@ -285,7 +285,9 @@ $(PACKAGEREFERENCES) $([System.String]::Copy('%(Identity)').Replace('\', '/')) $([System.String]::Copy('%(ResolvedCompileFileDefinitions.PathInPackage)').Replace('\', '/')) - $([System.String]::Copy('%(InteractiveResolvedFile.NormalizedIdentity)').Replace('%(InteractiveResolvedFile.NormalizedPathInPackage)', '')) + $([System.String]::Copy('%(InteractiveResolvedFile.NormalizedIdentity)').IndexOf('%(InteractiveResolvedFile.NormalizedPathInPackage)')) + $([MSBuild]::Add(%(InteractiveResolvedFile.PositionPathInPackage), 1)) + $([System.String]::Copy('%(InteractiveResolvedFile.NormalizedIdentity)').Substring(0, %(InteractiveResolvedFile.PositionPathInPackage))) %(InteractiveResolvedFile.PackageRoot)content\%(ResolvedCompileFileDefinitions.FileName)%(ResolvedCompileFileDefinitions.Extension).fsx $([System.String]::Copy('%(ResolvedCompileFileDefinitions.PathInPackage)').StartsWith('ref/')) %(ResolvedCompileFileDefinitions.NuGetPackageId) @@ -294,13 +296,14 @@ $(PACKAGEREFERENCES) $([System.String]::Copy('%(Identity)').Replace('\', '/')) $([System.String]::Copy('%(RuntimeCopyLocalItems.PathInPackage)').Replace('\', '/')) - $([System.String]::Copy('%(InteractiveResolvedFile.NormalizedIdentity)').Replace('%(InteractiveResolvedFile.NormalizedPathInPackage)', '')) + $([System.String]::Copy('%(InteractiveResolvedFile.NormalizedIdentity)').IndexOf('%(InteractiveResolvedFile.NormalizedPathInPackage)')) + $([MSBuild]::Add(%(InteractiveResolvedFile.PositionPathInPackage), 1)) + $([System.String]::Copy('%(InteractiveResolvedFile.NormalizedIdentity)').Substring(0, %(InteractiveResolvedFile.PositionPathInPackage))) %(InteractiveResolvedFile.PackageRoot)content\%(RuntimeCopyLocalItems.FileName)%(RuntimeCopyLocalItems.Extension).fsx $([System.String]::Copy('%(RuntimeCopyLocalItems.PathInPackage)').StartsWith('ref/')) %(RuntimeCopyLocalItems.NuGetPackageId) %(RuntimeCopyLocalItems.NuGetPackageVersion) - @@ -314,7 +317,7 @@ $(PACKAGEREFERENCES) - + From d7d01ca9ed1bcf5705b7237ff1cafb12e854a6a4 Mon Sep 17 00:00:00 2001 From: Kevin Ransom Date: Tue, 21 Jan 2020 14:59:32 -0800 Subject: [PATCH 5/6] Removed unused md --- .../FSharp.DependencyManager.Utilities.fs | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/fsharp/FSharp.DependencyManager/FSharp.DependencyManager.Utilities.fs b/src/fsharp/FSharp.DependencyManager/FSharp.DependencyManager.Utilities.fs index f32d02f2c1..dc0757cd6b 100644 --- a/src/fsharp/FSharp.DependencyManager/FSharp.DependencyManager.Utilities.fs +++ b/src/fsharp/FSharp.DependencyManager/FSharp.DependencyManager.Utilities.fs @@ -286,7 +286,6 @@ $(PACKAGEREFERENCES) $([System.String]::Copy('%(Identity)').Replace('\', '/')) $([System.String]::Copy('%(ResolvedCompileFileDefinitions.PathInPackage)').Replace('\', '/')) $([System.String]::Copy('%(InteractiveResolvedFile.NormalizedIdentity)').IndexOf('%(InteractiveResolvedFile.NormalizedPathInPackage)')) - $([MSBuild]::Add(%(InteractiveResolvedFile.PositionPathInPackage), 1)) $([System.String]::Copy('%(InteractiveResolvedFile.NormalizedIdentity)').Substring(0, %(InteractiveResolvedFile.PositionPathInPackage))) %(InteractiveResolvedFile.PackageRoot)content\%(ResolvedCompileFileDefinitions.FileName)%(ResolvedCompileFileDefinitions.Extension).fsx $([System.String]::Copy('%(ResolvedCompileFileDefinitions.PathInPackage)').StartsWith('ref/')) @@ -297,7 +296,6 @@ $(PACKAGEREFERENCES) $([System.String]::Copy('%(Identity)').Replace('\', '/')) $([System.String]::Copy('%(RuntimeCopyLocalItems.PathInPackage)').Replace('\', '/')) $([System.String]::Copy('%(InteractiveResolvedFile.NormalizedIdentity)').IndexOf('%(InteractiveResolvedFile.NormalizedPathInPackage)')) - $([MSBuild]::Add(%(InteractiveResolvedFile.PositionPathInPackage), 1)) $([System.String]::Copy('%(InteractiveResolvedFile.NormalizedIdentity)').Substring(0, %(InteractiveResolvedFile.PositionPathInPackage))) %(InteractiveResolvedFile.PackageRoot)content\%(RuntimeCopyLocalItems.FileName)%(RuntimeCopyLocalItems.Extension).fsx $([System.String]::Copy('%(RuntimeCopyLocalItems.PathInPackage)').StartsWith('ref/')) From 5247866a816445bee25b3e4790077ada0d1ba6d7 Mon Sep 17 00:00:00 2001 From: Kevin Ransom Date: Tue, 21 Jan 2020 15:08:00 -0800 Subject: [PATCH 6/6] -1 means not found --- .../FSharp.DependencyManager.Utilities.fs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/fsharp/FSharp.DependencyManager/FSharp.DependencyManager.Utilities.fs b/src/fsharp/FSharp.DependencyManager/FSharp.DependencyManager.Utilities.fs index dc0757cd6b..d86ceb3dbb 100644 --- a/src/fsharp/FSharp.DependencyManager/FSharp.DependencyManager.Utilities.fs +++ b/src/fsharp/FSharp.DependencyManager/FSharp.DependencyManager.Utilities.fs @@ -286,7 +286,7 @@ $(PACKAGEREFERENCES) $([System.String]::Copy('%(Identity)').Replace('\', '/')) $([System.String]::Copy('%(ResolvedCompileFileDefinitions.PathInPackage)').Replace('\', '/')) $([System.String]::Copy('%(InteractiveResolvedFile.NormalizedIdentity)').IndexOf('%(InteractiveResolvedFile.NormalizedPathInPackage)')) - $([System.String]::Copy('%(InteractiveResolvedFile.NormalizedIdentity)').Substring(0, %(InteractiveResolvedFile.PositionPathInPackage))) + $([System.String]::Copy('%(InteractiveResolvedFile.NormalizedIdentity)').Substring(0, %(InteractiveResolvedFile.PositionPathInPackage))) %(InteractiveResolvedFile.PackageRoot)content\%(ResolvedCompileFileDefinitions.FileName)%(ResolvedCompileFileDefinitions.Extension).fsx $([System.String]::Copy('%(ResolvedCompileFileDefinitions.PathInPackage)').StartsWith('ref/')) %(ResolvedCompileFileDefinitions.NuGetPackageId) @@ -296,7 +296,7 @@ $(PACKAGEREFERENCES) $([System.String]::Copy('%(Identity)').Replace('\', '/')) $([System.String]::Copy('%(RuntimeCopyLocalItems.PathInPackage)').Replace('\', '/')) $([System.String]::Copy('%(InteractiveResolvedFile.NormalizedIdentity)').IndexOf('%(InteractiveResolvedFile.NormalizedPathInPackage)')) - $([System.String]::Copy('%(InteractiveResolvedFile.NormalizedIdentity)').Substring(0, %(InteractiveResolvedFile.PositionPathInPackage))) + $([System.String]::Copy('%(InteractiveResolvedFile.NormalizedIdentity)').Substring(0, %(InteractiveResolvedFile.PositionPathInPackage))) %(InteractiveResolvedFile.PackageRoot)content\%(RuntimeCopyLocalItems.FileName)%(RuntimeCopyLocalItems.Extension).fsx $([System.String]::Copy('%(RuntimeCopyLocalItems.PathInPackage)').StartsWith('ref/')) %(RuntimeCopyLocalItems.NuGetPackageId)