From 36c4b25644aee0bf77c6a8046dda307f5aeac1b1 Mon Sep 17 00:00:00 2001 From: Andrew Martin Date: Wed, 8 Sep 2021 12:09:34 +0100 Subject: [PATCH 01/12] Migrate to .net 6 - compiles - New style SDK projects - Change remoting to System.IO.Pipes - Started migration of FAKE to v5 --- .config/dotnet-tools.json | 18 + .idea/.idea.RProvider.Tests/.idea/.gitignore | 13 + .idea/.idea.RProvider.Tests/.idea/.name | 1 + .../.idea.RProvider.Tests/.idea/encodings.xml | 4 + .../.idea/indexLayout.xml | 8 + .idea/.idea.RProvider.Tests/.idea/vcs.xml | 6 + .idea/.idea.RProvider/.idea/.gitignore | 13 + .idea/.idea.RProvider/.idea/encodings.xml | 4 + .idea/.idea.RProvider/.idea/indexLayout.xml | 8 + .idea/.idea.RProvider/.idea/vcs.xml | 6 + .paket/paket.bootstrapper.exe | Bin 64296 -> 0 bytes .paket/paket.targets | 38 -- .vs/ProjectSettings.json | 3 - .vs/VSWorkspaceState.json | 8 - RProvider.sln | 1 - build.cmd | 37 -- build.fsx | 6 +- build.sh | 33 - paket.dependencies | 18 +- paket.lock | 584 +++++++++++++++++- src/RProvider.DesignTime/RData.fs | 31 +- src/RProvider.DesignTime/RInteropClient.fs | 64 +- .../RProvider.DesignTime.fsproj | 146 +---- src/RProvider.DesignTime/RProvider.fs | 15 +- src/RProvider.DesignTime/RTypeBuilder.fs | 22 +- src/RProvider.DesignTime/paket.references | 4 +- src/RProvider/CharacterDeviceInterceptor.fs | 14 +- src/RProvider/Configuration.fs | 16 +- src/RProvider/Converters.fs | 1 - src/RProvider/Example.fsx | 6 +- src/RProvider/Logging.fs | 23 +- src/RProvider/Program.fs | 37 +- src/RProvider/RInit.fs | 12 +- src/RProvider/RInterop.fs | 22 +- src/RProvider/RInteropServer.fs | 2 +- src/RProvider/RProvider.Runtime.fsproj | 136 +--- src/RProvider/RProvider.Server.fsproj | 145 +---- src/RProvider/RProvider.fsproj | 147 +---- src/RProvider/paket.references | 4 +- .../RWrapperGenerator.fsproj | 162 +---- src/RWrapperGenerator/paket.references | 4 +- tests/Test.RProvider/Test.RProvider.fsproj | 201 +----- tests/Test.RProvider/paket.references | 2 +- 43 files changed, 851 insertions(+), 1174 deletions(-) create mode 100644 .config/dotnet-tools.json create mode 100644 .idea/.idea.RProvider.Tests/.idea/.gitignore create mode 100644 .idea/.idea.RProvider.Tests/.idea/.name create mode 100644 .idea/.idea.RProvider.Tests/.idea/encodings.xml create mode 100644 .idea/.idea.RProvider.Tests/.idea/indexLayout.xml create mode 100644 .idea/.idea.RProvider.Tests/.idea/vcs.xml create mode 100644 .idea/.idea.RProvider/.idea/.gitignore create mode 100644 .idea/.idea.RProvider/.idea/encodings.xml create mode 100644 .idea/.idea.RProvider/.idea/indexLayout.xml create mode 100644 .idea/.idea.RProvider/.idea/vcs.xml delete mode 100644 .paket/paket.bootstrapper.exe delete mode 100644 .paket/paket.targets delete mode 100644 .vs/ProjectSettings.json delete mode 100644 .vs/VSWorkspaceState.json delete mode 100644 build.cmd delete mode 100755 build.sh diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json new file mode 100644 index 00000000..c85e267b --- /dev/null +++ b/.config/dotnet-tools.json @@ -0,0 +1,18 @@ +{ + "version": 1, + "isRoot": true, + "tools": { + "fake-cli": { + "version": "5.20.4", + "commands": [ + "fake" + ] + }, + "paket": { + "version": "6.0.7", + "commands": [ + "paket" + ] + } + } +} \ No newline at end of file diff --git a/.idea/.idea.RProvider.Tests/.idea/.gitignore b/.idea/.idea.RProvider.Tests/.idea/.gitignore new file mode 100644 index 00000000..3cb678d4 --- /dev/null +++ b/.idea/.idea.RProvider.Tests/.idea/.gitignore @@ -0,0 +1,13 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Rider ignored files +/projectSettingsUpdater.xml +/contentModel.xml +/.idea.RProvider.Tests.iml +/modules.xml +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/.idea/.idea.RProvider.Tests/.idea/.name b/.idea/.idea.RProvider.Tests/.idea/.name new file mode 100644 index 00000000..234290ab --- /dev/null +++ b/.idea/.idea.RProvider.Tests/.idea/.name @@ -0,0 +1 @@ +RProvider.Tests \ No newline at end of file diff --git a/.idea/.idea.RProvider.Tests/.idea/encodings.xml b/.idea/.idea.RProvider.Tests/.idea/encodings.xml new file mode 100644 index 00000000..df87cf95 --- /dev/null +++ b/.idea/.idea.RProvider.Tests/.idea/encodings.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/.idea/.idea.RProvider.Tests/.idea/indexLayout.xml b/.idea/.idea.RProvider.Tests/.idea/indexLayout.xml new file mode 100644 index 00000000..7b08163c --- /dev/null +++ b/.idea/.idea.RProvider.Tests/.idea/indexLayout.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/.idea.RProvider.Tests/.idea/vcs.xml b/.idea/.idea.RProvider.Tests/.idea/vcs.xml new file mode 100644 index 00000000..94a25f7f --- /dev/null +++ b/.idea/.idea.RProvider.Tests/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/.idea.RProvider/.idea/.gitignore b/.idea/.idea.RProvider/.idea/.gitignore new file mode 100644 index 00000000..94d2b1c4 --- /dev/null +++ b/.idea/.idea.RProvider/.idea/.gitignore @@ -0,0 +1,13 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Rider ignored files +/.idea.RProvider.iml +/modules.xml +/contentModel.xml +/projectSettingsUpdater.xml +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/.idea/.idea.RProvider/.idea/encodings.xml b/.idea/.idea.RProvider/.idea/encodings.xml new file mode 100644 index 00000000..df87cf95 --- /dev/null +++ b/.idea/.idea.RProvider/.idea/encodings.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/.idea/.idea.RProvider/.idea/indexLayout.xml b/.idea/.idea.RProvider/.idea/indexLayout.xml new file mode 100644 index 00000000..7b08163c --- /dev/null +++ b/.idea/.idea.RProvider/.idea/indexLayout.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/.idea.RProvider/.idea/vcs.xml b/.idea/.idea.RProvider/.idea/vcs.xml new file mode 100644 index 00000000..94a25f7f --- /dev/null +++ b/.idea/.idea.RProvider/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.paket/paket.bootstrapper.exe b/.paket/paket.bootstrapper.exe deleted file mode 100644 index 0f7d5a99585ee25a57f153eb77fb8ac574d04e8d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64296 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 SR2;W(y>ju|^Ka&_N%%iXA52OB diff --git a/.paket/paket.targets b/.paket/paket.targets deleted file mode 100644 index 22c9f0a8..00000000 --- a/.paket/paket.targets +++ /dev/null @@ -1,38 +0,0 @@ - - - - - true - - true - $(MSBuildThisFileDirectory) - $(MSBuildThisFileDirectory)..\ - - - - $(PaketToolsPath)paket.exe - $(PaketToolsPath)paket.bootstrapper.exe - "$(PaketExePath)" - mono --runtime=v4.0.30319 $(PaketExePath) - "$(PaketBootStrapperExePath)" - mono --runtime=v4.0.30319 $(PaketBootStrapperExePath) - - $(MSBuildProjectDirectory)\paket.references - $(MSBuildProjectFullPath).paket.references - $(PaketCommand) restore --references-files "$(PaketReferences)" - $(PaketBootStrapperCommand) - - RestorePackages; $(BuildDependsOn); - - - - - - - - - - - - - diff --git a/.vs/ProjectSettings.json b/.vs/ProjectSettings.json deleted file mode 100644 index f8b48885..00000000 --- a/.vs/ProjectSettings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "CurrentProjectSetting": null -} \ No newline at end of file diff --git a/.vs/VSWorkspaceState.json b/.vs/VSWorkspaceState.json deleted file mode 100644 index 567bb9ce..00000000 --- a/.vs/VSWorkspaceState.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "ExpandedNodes": [ - "", - "\\src" - ], - "SelectedNode": "\\src\\RProvider", - "PreviewInSolutionExplorer": false -} \ No newline at end of file diff --git a/RProvider.sln b/RProvider.sln index fe16878a..ea97081a 100644 --- a/RProvider.sln +++ b/RProvider.sln @@ -11,7 +11,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".paket", ".paket", "{4F7B6E EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "project", "project", "{5FA7D1AD-DEDA-4553-81D1-6E4728386A2F}" ProjectSection(SolutionItems) = preProject - build.cmd = build.cmd build.fsx = build.fsx LICENSE.md = LICENSE.md paket.dependencies = paket.dependencies diff --git a/build.cmd b/build.cmd deleted file mode 100644 index 1e3fb505..00000000 --- a/build.cmd +++ /dev/null @@ -1,37 +0,0 @@ -@echo off - -if not exist .paket\paket.bootstrapper.exe goto pktbootnotfound -.paket\paket.bootstrapper.exe -if not errorlevel 0 goto pktbootfailed - -.paket\paket.exe restore -if not errorlevel 0 goto pktrestorefailed - -packages\FAKE\tools\FAKE.exe %* --fsiargs -d:MONO build.fsx -if not errorlevel 0 goto fakefailed - -set exit_code=0 -goto leave - -:pktbootnotfound -echo command not found: .paket\paket.bootstrapper.exe -set exit_code=1 -goto leave - -:pktbootfailed -echo command failed: .paket\paket.bootstrapper.exe -set exit_code=1 -goto leave - -:pktrestorefailed -echo command failed: .paket\paket.exe restore -set exit_code=1 -goto leave - -:fakefailed -echo command failed: packages\FAKE\tools\FAKE.exe %* --fsiargs -d:MONO build.fsx -set exit_code=1 -goto leave - -:leave -exit /b %exit_code% \ No newline at end of file diff --git a/build.fsx b/build.fsx index d5dd0f73..e1dbd79d 100644 --- a/build.fsx +++ b/build.fsx @@ -2,10 +2,10 @@ // FAKE build script // -------------------------------------------------------------------------------------- -#I "packages/FAKE/tools" -#r "packages/FAKE/tools/FakeLib.dll" +#r "paket: nuget Fake.Target //" +#load "./.fake/build.fsx/intellisense.fsx" open System -open Fake +open Fake.Core open Fake.Git open Fake.AssemblyInfoFile open Fake.ReleaseNotesHelper diff --git a/build.sh b/build.sh deleted file mode 100755 index 4570a7eb..00000000 --- a/build.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/bash -if test "$OS" = "Windows_NT" -then - # use .Net - - .paket/paket.bootstrapper.exe - exit_code=$? - if [ $exit_code -ne 0 ]; then - exit $exit_code - fi - - .paket/paket.exe restore - exit_code=$? - if [ $exit_code -ne 0 ]; then - exit $exit_code - fi - - packages/FAKE/tools/FAKE.exe $@ --fsiargs -d:MONO build.fsx -else - # use mono - mono .paket/paket.bootstrapper.exe prerelease - exit_code=$? - if [ $exit_code -ne 0 ]; then - exit $exit_code - fi - - mono .paket/paket.exe restore - exit_code=$? - if [ $exit_code -ne 0 ]; then - exit $exit_code - fi - mono packages/FAKE/tools/FAKE.exe $@ --fsiargs -d:MONO build.fsx -fi diff --git a/paket.dependencies b/paket.dependencies index 02b0a8ba..ae991ff4 100644 --- a/paket.dependencies +++ b/paket.dependencies @@ -1,20 +1,22 @@ +version 5.257.0 source https://www.nuget.org/api/v2 -frameworks: net451, net452 +frameworks: net5.0 +storage: none nuget FsCheck nuget FsCheck.Xunit nuget FSharp.Data nuget FSharp.Formatting -nuget R.NET.Community -nuget R.NET.Community.FSharp +nuget R.NET 1.9.0 +nuget R.NET.FSharp 1.9.0 nuget xunit.runners 1.9.2 nuget xunit 1.9.2 -nuget FAKE 4.64.13 -nuget NuGet.CommandLine -nuget FSharp.Core 4.3.4 +nuget FSharp.Core 5.0.2 -github fsprojects/FSharp.TypeProviders.SDK:ddfb906ecbac78dc9f0f5e172518a72cb5fdf651 src/ProvidedTypes.fsi -github fsprojects/FSharp.TypeProviders.SDK:ddfb906ecbac78dc9f0f5e172518a72cb5fdf651 src/ProvidedTypes.fs +github fsprojects/FSharp.TypeProviders.SDK:f4aca36af04aa84b16ec04df6f6bf55ac2f17a73 src/ProvidedTypes.fsi +github fsprojects/FSharp.TypeProviders.SDK:f4aca36af04aa84b16ec04df6f6bf55ac2f17a73 src/ProvidedTypes.fs + +nuget FAKE.Core group Release source https://www.nuget.org/api/v2 diff --git a/paket.lock b/paket.lock index a7e7fd45..751243cb 100644 --- a/paket.lock +++ b/paket.lock @@ -1,41 +1,561 @@ -RESTRICTION: || (== net451) (== net452) +STORAGE: NONE +RESTRICTION: == net5.0 NUGET remote: https://www.nuget.org/api/v2 - DynamicInterop (0.8.1) - FAKE (4.64.13) - FsCheck (2.11) - FSharp.Core (>= 4.0.0.1) - FsCheck.Xunit (2.11) - FsCheck (2.11) - restriction: || (&& (== net451) (>= net452)) (== net452) - xunit.extensibility.execution (>= 2.2 < 3.0) - restriction: || (&& (== net451) (>= net452)) (== net452) - FSharp.Compiler.Service (2.0.0.6) - FSharp.Core (4.3.4) - FSharp.Data (2.4.6) - FSharp.Formatting (2.14.4) - FSharp.Compiler.Service (2.0.0.6) - FSharpVSPowerTools.Core (>= 2.3 < 2.4) - FSharpVSPowerTools.Core (2.3) - FSharp.Compiler.Service (>= 2.0.0.3) - NuGet.CommandLine (4.7) - R.NET (1.7) - DynamicInterop (0.8.1) - R.NET.Community (1.7) - R.NET (>= 1.7) - R.NET.Community.FSharp (1.7) - R.NET.FSharp (>= 1.7) - R.NET.FSharp (1.7) - R.NET (>= 1.7) + DynamicInterop (0.9.1) + FAKE.Core (5.16) + FsCheck (2.16.1) + FSharp.Core (>= 4.2.3) + FsCheck.Xunit (2.16.1) + FsCheck (2.16.1) + xunit.extensibility.execution (>= 2.2 < 3.0) + FSharp.Compiler.Service (40.0) + FSharp.Core (5.0.2) + Microsoft.Build.Framework (>= 16.9) + Microsoft.Build.Tasks.Core (>= 16.9) + Microsoft.Build.Utilities.Core (>= 16.9) + System.Buffers (>= 4.5.1) + System.Collections.Immutable (>= 5.0) + System.Diagnostics.Process (>= 4.3) + System.Diagnostics.TraceSource (>= 4.3) + System.Linq.Expressions (>= 4.3) + System.Linq.Queryable (>= 4.3) + System.Memory (>= 4.5.4) + System.Net.Requests (>= 4.3) + System.Net.Security (>= 4.3) + System.Reflection.Emit (>= 4.3) + System.Reflection.Metadata (>= 5.0) + System.Reflection.TypeExtensions (>= 4.3) + System.Runtime (>= 4.3) + System.Runtime.InteropServices (>= 4.3) + System.Runtime.Loader (>= 4.3) + System.Security.Claims (>= 4.3) + System.Security.Cryptography.Algorithms (>= 4.3) + System.Security.Principal (>= 4.3) + System.Threading.Tasks.Parallel (>= 4.3) + System.Threading.Thread (>= 4.3) + System.Threading.ThreadPool (>= 4.3) + FSharp.Core (5.0.2) + FSharp.Data (4.2.2) + FSharp.Core (>= 4.7.2) + FSharp.Formatting (11.4.3) + FSharp.Compiler.Service (>= 40.0) + Microsoft.Build.Framework (16.11) + System.Security.Permissions (>= 4.7) + Microsoft.Build.Tasks.Core (16.11) + Microsoft.Build.Framework (>= 16.11) + Microsoft.Build.Utilities.Core (>= 16.11) + Microsoft.NET.StringTools (>= 1.0) + Microsoft.Win32.Registry (>= 4.3) + System.CodeDom (>= 4.4) + System.Collections.Immutable (>= 5.0) + System.Reflection.Metadata (>= 1.6) + System.Resources.Extensions (>= 4.6) + System.Security.Cryptography.Pkcs (>= 4.7) + System.Security.Cryptography.Xml (>= 4.7) + System.Security.Permissions (>= 4.7) + System.Threading.Tasks.Dataflow (>= 4.9) + Microsoft.Build.Utilities.Core (16.11) + Microsoft.Build.Framework (>= 16.11) + Microsoft.NET.StringTools (>= 1.0) + Microsoft.Win32.Registry (>= 4.3) + System.Collections.Immutable (>= 5.0) + System.Configuration.ConfigurationManager (>= 4.7) + System.Security.Permissions (>= 4.7) + System.Text.Encoding.CodePages (>= 4.0.1) + Microsoft.CSharp (4.7) + Microsoft.NET.StringTools (1.0) + System.Memory (>= 4.5.4) + System.Runtime.CompilerServices.Unsafe (>= 5.0) + Microsoft.NETCore.Platforms (5.0.2) + Microsoft.NETCore.Targets (5.0) + Microsoft.Win32.Primitives (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + Microsoft.NETCore.Targets (>= 1.1) + System.Runtime (>= 4.3) + Microsoft.Win32.Registry (5.0) + System.Security.AccessControl (>= 5.0) + System.Security.Principal.Windows (>= 5.0) + Microsoft.Win32.SystemEvents (5.0) + Microsoft.NETCore.Platforms (>= 5.0) + NETStandard.Library (2.0.3) + Microsoft.NETCore.Platforms (>= 1.1) + R.NET (1.9) + DynamicInterop (>= 0.9.1) + Microsoft.CSharp (>= 4.5) + Microsoft.Win32.Registry (>= 4.5) + R.NET.FSharp (1.9) + DynamicInterop (>= 0.9.1) + FSharp.Core (>= 4.6.2) + R.NET (>= 1.9) + runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) + runtime.debian.9-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) + runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) + runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) + runtime.fedora.27-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) + runtime.fedora.28-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) + runtime.native.System (4.3.1) + Microsoft.NETCore.Platforms (>= 1.1.1) + Microsoft.NETCore.Targets (>= 1.1.3) + runtime.native.System.Net.Http (4.3.1) + Microsoft.NETCore.Platforms (>= 1.1.1) + Microsoft.NETCore.Targets (>= 1.1.3) + runtime.native.System.Net.Security (4.3.1) + Microsoft.NETCore.Platforms (>= 1.1.1) + Microsoft.NETCore.Targets (>= 1.1.3) + runtime.native.System.Security.Cryptography.Apple (4.3.1) + runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple (>= 4.3.1) + runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) + runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) + runtime.debian.9-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) + runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) + runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) + runtime.fedora.27-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) + runtime.fedora.28-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) + runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) + runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) + runtime.opensuse.42.3-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) + runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) + runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) + runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) + runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) + runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) + runtime.ubuntu.18.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) + runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) + runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) + runtime.opensuse.42.3-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) + runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple (4.3.1) + runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) + runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) + runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) + runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) + runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) + runtime.ubuntu.18.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) + System.Buffers (4.5.1) + System.CodeDom (5.0) + System.Collections (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + Microsoft.NETCore.Targets (>= 1.1) + System.Runtime (>= 4.3) + System.Collections.Concurrent (4.3) + System.Collections (>= 4.3) + System.Diagnostics.Debug (>= 4.3) + System.Diagnostics.Tracing (>= 4.3) + System.Globalization (>= 4.3) + System.Reflection (>= 4.3) + System.Resources.ResourceManager (>= 4.3) + System.Runtime (>= 4.3) + System.Runtime.Extensions (>= 4.3) + System.Threading (>= 4.3) + System.Threading.Tasks (>= 4.3) + System.Collections.Immutable (5.0) + System.Configuration.ConfigurationManager (5.0) + System.Security.Cryptography.ProtectedData (>= 5.0) + System.Security.Permissions (>= 5.0) + System.Diagnostics.Debug (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + Microsoft.NETCore.Targets (>= 1.1) + System.Runtime (>= 4.3) + System.Diagnostics.DiagnosticSource (5.0.1) + System.Diagnostics.Process (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + Microsoft.Win32.Primitives (>= 4.3) + Microsoft.Win32.Registry (>= 4.3) + runtime.native.System (>= 4.3) + System.Collections (>= 4.3) + System.Diagnostics.Debug (>= 4.3) + System.Globalization (>= 4.3) + System.IO (>= 4.3) + System.IO.FileSystem (>= 4.3) + System.IO.FileSystem.Primitives (>= 4.3) + System.Resources.ResourceManager (>= 4.3) + System.Runtime (>= 4.3) + System.Runtime.Extensions (>= 4.3) + System.Runtime.Handles (>= 4.3) + System.Runtime.InteropServices (>= 4.3) + System.Text.Encoding (>= 4.3) + System.Text.Encoding.Extensions (>= 4.3) + System.Threading (>= 4.3) + System.Threading.Tasks (>= 4.3) + System.Threading.Thread (>= 4.3) + System.Threading.ThreadPool (>= 4.3) + System.Diagnostics.TraceSource (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + runtime.native.System (>= 4.3) + System.Collections (>= 4.3) + System.Diagnostics.Debug (>= 4.3) + System.Globalization (>= 4.3) + System.Resources.ResourceManager (>= 4.3) + System.Runtime (>= 4.3) + System.Runtime.Extensions (>= 4.3) + System.Threading (>= 4.3) + System.Diagnostics.Tracing (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + Microsoft.NETCore.Targets (>= 1.1) + System.Runtime (>= 4.3) + System.Drawing.Common (5.0.2) + Microsoft.Win32.SystemEvents (>= 5.0) + System.Formats.Asn1 (5.0) + System.Globalization (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + Microsoft.NETCore.Targets (>= 1.1) + System.Runtime (>= 4.3) + System.Globalization.Calendars (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + Microsoft.NETCore.Targets (>= 1.1) + System.Globalization (>= 4.3) + System.Runtime (>= 4.3) + System.Globalization.Extensions (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + System.Globalization (>= 4.3) + System.Resources.ResourceManager (>= 4.3) + System.Runtime (>= 4.3) + System.Runtime.Extensions (>= 4.3) + System.Runtime.InteropServices (>= 4.3) + System.IO (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + Microsoft.NETCore.Targets (>= 1.1) + System.Runtime (>= 4.3) + System.Text.Encoding (>= 4.3) + System.Threading.Tasks (>= 4.3) + System.IO.FileSystem (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + Microsoft.NETCore.Targets (>= 1.1) + System.IO (>= 4.3) + System.IO.FileSystem.Primitives (>= 4.3) + System.Runtime (>= 4.3) + System.Runtime.Handles (>= 4.3) + System.Text.Encoding (>= 4.3) + System.Threading.Tasks (>= 4.3) + System.IO.FileSystem.Primitives (4.3) + System.Runtime (>= 4.3) + System.Linq (4.3) + System.Collections (>= 4.3) + System.Diagnostics.Debug (>= 4.3) + System.Resources.ResourceManager (>= 4.3) + System.Runtime (>= 4.3) + System.Runtime.Extensions (>= 4.3) + System.Linq.Expressions (4.3) + System.Collections (>= 4.3) + System.Diagnostics.Debug (>= 4.3) + System.Globalization (>= 4.3) + System.IO (>= 4.3) + System.Linq (>= 4.3) + System.ObjectModel (>= 4.3) + System.Reflection (>= 4.3) + System.Reflection.Emit (>= 4.3) + System.Reflection.Emit.ILGeneration (>= 4.3) + System.Reflection.Emit.Lightweight (>= 4.3) + System.Reflection.Extensions (>= 4.3) + System.Reflection.Primitives (>= 4.3) + System.Reflection.TypeExtensions (>= 4.3) + System.Resources.ResourceManager (>= 4.3) + System.Runtime (>= 4.3) + System.Runtime.Extensions (>= 4.3) + System.Threading (>= 4.3) + System.Linq.Queryable (4.3) + System.Collections (>= 4.3) + System.Diagnostics.Debug (>= 4.3) + System.Linq (>= 4.3) + System.Linq.Expressions (>= 4.3) + System.Reflection (>= 4.3) + System.Reflection.Extensions (>= 4.3) + System.Resources.ResourceManager (>= 4.3) + System.Runtime (>= 4.3) + System.Memory (4.5.4) + System.Net.Http (4.3.4) + Microsoft.NETCore.Platforms (>= 1.1.1) + runtime.native.System (>= 4.3) + runtime.native.System.Net.Http (>= 4.3) + runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.2) + System.Collections (>= 4.3) + System.Diagnostics.Debug (>= 4.3) + System.Diagnostics.DiagnosticSource (>= 4.3) + System.Diagnostics.Tracing (>= 4.3) + System.Globalization (>= 4.3) + System.Globalization.Extensions (>= 4.3) + System.IO (>= 4.3) + System.IO.FileSystem (>= 4.3) + System.Net.Primitives (>= 4.3) + System.Resources.ResourceManager (>= 4.3) + System.Runtime (>= 4.3) + System.Runtime.Extensions (>= 4.3) + System.Runtime.Handles (>= 4.3) + System.Runtime.InteropServices (>= 4.3) + System.Security.Cryptography.Algorithms (>= 4.3) + System.Security.Cryptography.Encoding (>= 4.3) + System.Security.Cryptography.OpenSsl (>= 4.3) + System.Security.Cryptography.Primitives (>= 4.3) + System.Security.Cryptography.X509Certificates (>= 4.3) + System.Text.Encoding (>= 4.3) + System.Threading (>= 4.3) + System.Threading.Tasks (>= 4.3) + System.Net.Primitives (4.3.1) + Microsoft.NETCore.Platforms (>= 1.1.1) + Microsoft.NETCore.Targets (>= 1.1.3) + System.Runtime (>= 4.3.1) + System.Runtime.Handles (>= 4.3) + System.Net.Requests (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + System.Collections (>= 4.3) + System.Diagnostics.Debug (>= 4.3) + System.Diagnostics.Tracing (>= 4.3) + System.Globalization (>= 4.3) + System.IO (>= 4.3) + System.Net.Http (>= 4.3) + System.Net.Primitives (>= 4.3) + System.Net.WebHeaderCollection (>= 4.3) + System.Resources.ResourceManager (>= 4.3) + System.Runtime (>= 4.3) + System.Threading (>= 4.3) + System.Threading.Tasks (>= 4.3) + System.Net.Security (4.3.2) + Microsoft.NETCore.Platforms (>= 1.1) + Microsoft.Win32.Primitives (>= 4.3) + runtime.native.System (>= 4.3) + runtime.native.System.Net.Security (>= 4.3) + runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.2) + System.Collections (>= 4.3) + System.Collections.Concurrent (>= 4.3) + System.Diagnostics.Tracing (>= 4.3) + System.Globalization (>= 4.3) + System.Globalization.Extensions (>= 4.3) + System.IO (>= 4.3) + System.Net.Primitives (>= 4.3) + System.Resources.ResourceManager (>= 4.3) + System.Runtime (>= 4.3) + System.Runtime.Extensions (>= 4.3) + System.Runtime.Handles (>= 4.3) + System.Runtime.InteropServices (>= 4.3) + System.Security.Claims (>= 4.3) + System.Security.Cryptography.Algorithms (>= 4.3) + System.Security.Cryptography.Encoding (>= 4.3) + System.Security.Cryptography.OpenSsl (>= 4.3) + System.Security.Cryptography.Primitives (>= 4.3) + System.Security.Cryptography.X509Certificates (>= 4.3) + System.Security.Principal (>= 4.3) + System.Text.Encoding (>= 4.3) + System.Threading (>= 4.3) + System.Threading.Tasks (>= 4.3) + System.Threading.ThreadPool (>= 4.3) + System.Net.WebHeaderCollection (4.3) + System.Collections (>= 4.3) + System.Resources.ResourceManager (>= 4.3) + System.Runtime (>= 4.3) + System.Runtime.Extensions (>= 4.3) + System.ObjectModel (4.3) + System.Collections (>= 4.3) + System.Diagnostics.Debug (>= 4.3) + System.Resources.ResourceManager (>= 4.3) + System.Runtime (>= 4.3) + System.Threading (>= 4.3) + System.Reflection (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + Microsoft.NETCore.Targets (>= 1.1) + System.IO (>= 4.3) + System.Reflection.Primitives (>= 4.3) + System.Runtime (>= 4.3) + System.Reflection.Emit (4.7) + System.Reflection.Emit.ILGeneration (4.7) + System.Reflection.Emit.Lightweight (4.7) + System.Reflection.Extensions (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + Microsoft.NETCore.Targets (>= 1.1) + System.Reflection (>= 4.3) + System.Runtime (>= 4.3) + System.Reflection.Metadata (5.0) + System.Reflection.Primitives (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + Microsoft.NETCore.Targets (>= 1.1) + System.Runtime (>= 4.3) + System.Reflection.TypeExtensions (4.7) + System.Resources.Extensions (5.0) + System.Resources.ResourceManager (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + Microsoft.NETCore.Targets (>= 1.1) + System.Globalization (>= 4.3) + System.Reflection (>= 4.3) + System.Runtime (>= 4.3) + System.Runtime (4.3.1) + Microsoft.NETCore.Platforms (>= 1.1.1) + Microsoft.NETCore.Targets (>= 1.1.3) + System.Runtime.CompilerServices.Unsafe (5.0) + System.Runtime.Extensions (4.3.1) + Microsoft.NETCore.Platforms (>= 1.1.1) + Microsoft.NETCore.Targets (>= 1.1.3) + System.Runtime (>= 4.3.1) + System.Runtime.Handles (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + Microsoft.NETCore.Targets (>= 1.1) + System.Runtime (>= 4.3) + System.Runtime.InteropServices (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + Microsoft.NETCore.Targets (>= 1.1) + System.Reflection (>= 4.3) + System.Reflection.Primitives (>= 4.3) + System.Runtime (>= 4.3) + System.Runtime.Handles (>= 4.3) + System.Runtime.Loader (4.3) + System.IO (>= 4.3) + System.Reflection (>= 4.3) + System.Runtime (>= 4.3) + System.Runtime.Numerics (4.3) + System.Globalization (>= 4.3) + System.Resources.ResourceManager (>= 4.3) + System.Runtime (>= 4.3) + System.Runtime.Extensions (>= 4.3) + System.Security.AccessControl (5.0) + Microsoft.NETCore.Platforms (>= 5.0) + System.Security.Principal.Windows (>= 5.0) + System.Security.Claims (4.3) + System.Collections (>= 4.3) + System.Globalization (>= 4.3) + System.IO (>= 4.3) + System.Resources.ResourceManager (>= 4.3) + System.Runtime (>= 4.3) + System.Runtime.Extensions (>= 4.3) + System.Security.Principal (>= 4.3) + System.Security.Cryptography.Algorithms (4.3.1) + Microsoft.NETCore.Platforms (>= 1.1) + runtime.native.System.Security.Cryptography.Apple (>= 4.3.1) + runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.2) + System.Collections (>= 4.3) + System.IO (>= 4.3) + System.Resources.ResourceManager (>= 4.3) + System.Runtime (>= 4.3) + System.Runtime.Extensions (>= 4.3) + System.Runtime.Handles (>= 4.3) + System.Runtime.InteropServices (>= 4.3) + System.Runtime.Numerics (>= 4.3) + System.Security.Cryptography.Encoding (>= 4.3) + System.Security.Cryptography.Primitives (>= 4.3) + System.Text.Encoding (>= 4.3) + System.Security.Cryptography.Cng (5.0) + System.Formats.Asn1 (>= 5.0) + System.Security.Cryptography.Csp (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + System.IO (>= 4.3) + System.Reflection (>= 4.3) + System.Resources.ResourceManager (>= 4.3) + System.Runtime (>= 4.3) + System.Runtime.Extensions (>= 4.3) + System.Runtime.Handles (>= 4.3) + System.Runtime.InteropServices (>= 4.3) + System.Security.Cryptography.Algorithms (>= 4.3) + System.Security.Cryptography.Encoding (>= 4.3) + System.Security.Cryptography.Primitives (>= 4.3) + System.Text.Encoding (>= 4.3) + System.Threading (>= 4.3) + System.Security.Cryptography.Encoding (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3) + System.Collections (>= 4.3) + System.Collections.Concurrent (>= 4.3) + System.Linq (>= 4.3) + System.Resources.ResourceManager (>= 4.3) + System.Runtime (>= 4.3) + System.Runtime.Extensions (>= 4.3) + System.Runtime.Handles (>= 4.3) + System.Runtime.InteropServices (>= 4.3) + System.Security.Cryptography.Primitives (>= 4.3) + System.Text.Encoding (>= 4.3) + System.Security.Cryptography.OpenSsl (5.0) + System.Formats.Asn1 (>= 5.0) + System.Security.Cryptography.Pkcs (5.0.1) + System.Formats.Asn1 (>= 5.0) + System.Security.Cryptography.Cng (>= 5.0) + System.Security.Cryptography.Primitives (4.3) + System.Diagnostics.Debug (>= 4.3) + System.Globalization (>= 4.3) + System.IO (>= 4.3) + System.Resources.ResourceManager (>= 4.3) + System.Runtime (>= 4.3) + System.Threading (>= 4.3) + System.Threading.Tasks (>= 4.3) + System.Security.Cryptography.ProtectedData (5.0) + System.Security.Cryptography.X509Certificates (4.3.2) + Microsoft.NETCore.Platforms (>= 1.1) + runtime.native.System (>= 4.3) + runtime.native.System.Net.Http (>= 4.3) + runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.2) + System.Collections (>= 4.3) + System.Diagnostics.Debug (>= 4.3) + System.Globalization (>= 4.3) + System.Globalization.Calendars (>= 4.3) + System.IO (>= 4.3) + System.IO.FileSystem (>= 4.3) + System.IO.FileSystem.Primitives (>= 4.3) + System.Resources.ResourceManager (>= 4.3) + System.Runtime (>= 4.3) + System.Runtime.Extensions (>= 4.3) + System.Runtime.Handles (>= 4.3) + System.Runtime.InteropServices (>= 4.3) + System.Runtime.Numerics (>= 4.3) + System.Security.Cryptography.Algorithms (>= 4.3) + System.Security.Cryptography.Cng (>= 4.3) + System.Security.Cryptography.Csp (>= 4.3) + System.Security.Cryptography.Encoding (>= 4.3) + System.Security.Cryptography.OpenSsl (>= 4.3) + System.Security.Cryptography.Primitives (>= 4.3) + System.Text.Encoding (>= 4.3) + System.Threading (>= 4.3) + System.Security.Cryptography.Xml (5.0) + System.Security.Cryptography.Pkcs (>= 5.0) + System.Security.Permissions (>= 5.0) + System.Security.Permissions (5.0) + System.Security.AccessControl (>= 5.0) + System.Windows.Extensions (>= 5.0) + System.Security.Principal (4.3) + System.Runtime (>= 4.3) + System.Security.Principal.Windows (5.0) + System.Text.Encoding (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + Microsoft.NETCore.Targets (>= 1.1) + System.Runtime (>= 4.3) + System.Text.Encoding.CodePages (5.0) + Microsoft.NETCore.Platforms (>= 5.0) + System.Text.Encoding.Extensions (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + Microsoft.NETCore.Targets (>= 1.1) + System.Runtime (>= 4.3) + System.Text.Encoding (>= 4.3) + System.Threading (4.3) + System.Runtime (>= 4.3) + System.Threading.Tasks (>= 4.3) + System.Threading.Tasks (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + Microsoft.NETCore.Targets (>= 1.1) + System.Runtime (>= 4.3) + System.Threading.Tasks.Dataflow (5.0) + System.Threading.Tasks.Parallel (4.3) + System.Collections.Concurrent (>= 4.3) + System.Diagnostics.Debug (>= 4.3) + System.Diagnostics.Tracing (>= 4.3) + System.Resources.ResourceManager (>= 4.3) + System.Runtime (>= 4.3) + System.Runtime.Extensions (>= 4.3) + System.Threading (>= 4.3) + System.Threading.Tasks (>= 4.3) + System.Threading.Thread (4.3) + System.Runtime (>= 4.3) + System.Threading.ThreadPool (4.3) + System.Runtime (>= 4.3) + System.Runtime.Handles (>= 4.3) + System.Windows.Extensions (5.0) + System.Drawing.Common (>= 5.0) xunit (1.9.2) - xunit.abstractions (2.0.2) - restriction: || (&& (== net451) (>= net452)) (== net452) - xunit.extensibility.core (2.4) - restriction: || (&& (== net451) (>= net452)) (== net452) - xunit.abstractions (>= 2.0.2) - xunit.extensibility.execution (2.4) - restriction: || (&& (== net451) (>= net452)) (== net452) - xunit.extensibility.core (2.4) + xunit.abstractions (2.0.3) + xunit.extensibility.core (2.4.1) + NETStandard.Library (>= 1.6.1) + xunit.abstractions (>= 2.0.3) + xunit.extensibility.execution (2.4.1) + NETStandard.Library (>= 1.6.1) + xunit.extensibility.core (2.4.1) xunit.runners (1.9.2) GITHUB remote: fsprojects/FSharp.TypeProviders.SDK - src/ProvidedTypes.fs (ddfb906ecbac78dc9f0f5e172518a72cb5fdf651) - src/ProvidedTypes.fsi (ddfb906ecbac78dc9f0f5e172518a72cb5fdf651) + src/ProvidedTypes.fs (f4aca36af04aa84b16ec04df6f6bf55ac2f17a73) + src/ProvidedTypes.fsi (f4aca36af04aa84b16ec04df6f6bf55ac2f17a73) GROUP Release RESTRICTION: == net451 NUGET diff --git a/src/RProvider.DesignTime/RData.fs b/src/RProvider.DesignTime/RData.fs index 32f8fb3a..d5001a96 100644 --- a/src/RProvider.DesignTime/RData.fs +++ b/src/RProvider.DesignTime/RData.fs @@ -1,18 +1,15 @@ namespace RProvider -open System open System.IO open System.Reflection open ProviderImplementation.ProvidedTypes open Microsoft.FSharp.Core.CompilerServices open RProvider -open RProvider.Internal.Configuration -open RProvider.Internal open Microsoft.FSharp.Quotations - + [] type public RDataProvider(cfg:TypeProviderConfig) as this = - inherit TypeProviderForNamespaces() + inherit TypeProviderForNamespaces(cfg) // NOTE: No need to register 'AssemblyResolve' event handler // here, because this is already done in static constructor of RProvider. @@ -33,19 +30,21 @@ type public RDataProvider(cfg:TypeProviderConfig) as this = let defaultResolutionFolder = cfg.ResolutionFolder // Provide default ctor and ctor taking another file as an argument - let createREnvExpr fileName = + let createREnvExpr (fileName:Expr) = <@@ let longFileName = if Path.IsPathRooted(%fileName) then %fileName elif isHosted then Path.Combine(defaultResolutionFolder, %fileName) else Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, %fileName) REnv(longFileName) @@> - let ctor = ProvidedConstructor([]) - ctor.InvokeCode <- fun _ -> createREnvExpr <@ fileName @> + let ctor = ProvidedConstructor( + parameters = [], + invokeCode = fun _ -> createREnvExpr <@ fileName @>) resTy.AddMember(ctor) - let ctor = ProvidedConstructor([ProvidedParameter("fileName", typeof)]) - ctor.InvokeCode <- fun (Singleton fn) -> createREnvExpr (Expr.Cast fn) + let ctor = ProvidedConstructor( + parameters = [ProvidedParameter("fileName", typeof)], + invokeCode = fun (Singleton fn) -> createREnvExpr (Expr.Cast fn)) resTy.AddMember(ctor) // For each key in the environment, provide a property.. @@ -53,14 +52,14 @@ type public RDataProvider(cfg:TypeProviderConfig) as this = match typ with | null -> // Generate property of type 'SymbolicExpression' - ProvidedProperty(name, typeof, GetterCode = fun (Singleton self) -> + ProvidedProperty(name, typeof, getterCode = fun (Singleton self) -> <@@ ((%%self):REnv).Get(name) @@>) |> resTy.AddMember | typ -> // If there is a default convertor for the type, then generate // property of the statically known type (e.g. Frame) // (otherwise, `Value` will throw) - ProvidedProperty(name, typ, GetterCode = fun (Singleton self) -> + ProvidedProperty(name, typ, getterCode = fun (Singleton self) -> Expr.Coerce(<@@ ((%%self):REnv).Get(name).Value @@>, typ)) |> resTy.AddMember @@ -68,7 +67,13 @@ type public RDataProvider(cfg:TypeProviderConfig) as this = // Register the main (parameterized) type with F# compiler // Provide tye 'RProvider.RData' type - let asm = Assembly.ReflectionOnlyLoadFrom cfg.RuntimeAssembly + let asm = +// let coreAssembly = typeof.Assembly +// let resolver = PathAssemblyResolver([ cfg.RuntimeAssembly; coreAssembly.Location ]) +// use mlc = new MetadataLoadContext(resolver, coreAssemblyName = coreAssembly.GetName().Name) +// mlc.LoadFromAssemblyPath cfg.RuntimeAssembly + Assembly.LoadFrom cfg.RuntimeAssembly + let rdata = ProvidedTypeDefinition(asm, "RProvider", "RData", Some(typeof)) let parameter = ProvidedStaticParameter("FileName", typeof) do rdata.DefineStaticParameters([parameter], generateTypes asm) diff --git a/src/RProvider.DesignTime/RInteropClient.fs b/src/RProvider.DesignTime/RInteropClient.fs index 802a0468..5c1813c7 100644 --- a/src/RProvider.DesignTime/RInteropClient.fs +++ b/src/RProvider.DesignTime/RInteropClient.fs @@ -1,22 +1,19 @@ module internal RProvider.RInteropClient open System -open System.Collections.Generic open System.Reflection open System.IO open System.Diagnostics open System.Threading -open Microsoft.Win32 -open System.IO open RProvider.Internal -open System.Security.AccessControl -open System.Security.Principal +open PipeMethodCalls +open PipeMethodCalls.NetJson [] -let server = "RProvider.Server.exe" +let Server = "RProvider.Server.exe" /// Thrown when we want to show the specified string as a friendly error message to the user -exception RInitializationError of string +exception RInitializationException of string let waitUntilFileDeleted file timeout = let dt = DateTime.Now @@ -26,40 +23,41 @@ let waitUntilFileDeleted file timeout = /// Creates a new channel name in the format: RInteropServer__