From 2ae73fb5ea289389b3fbd10b9e9cd25e01ef8100 Mon Sep 17 00:00:00 2001 From: Steffen Forkmann Date: Mon, 5 Sep 2016 17:17:44 +0200 Subject: [PATCH] Perf test of https://github.com/Microsoft/visualfsharp/pull/1519 --- build.fsx | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/build.fsx b/build.fsx index ff2577e..3e428a0 100644 --- a/build.fsx +++ b/build.fsx @@ -11,15 +11,15 @@ open System.IO let runs = 10 let compilerForkToTest = @"https://github.com/forki/visualfsharp" -let compilerHashes = ["71c8798e19d6e15d3e6a98c80da658aa5ed2c630"; "1bf329fa06b7e2e4d4ceab545b0e059e72be3e1c"] +let compilerHashes = ["71c8798e19d6e15d3e6a98c80da658aa5ed2c630"; "ee0baed"] -let additionalFlags = "--typecheckonly" +let additionalFlags = "" let projects = - [ "Paket", "https://github.com/fsprojects/Paket.git", "build.cmd", "src/Paket.Core", """-o:obj\Release\Paket.Core.dll -g --debug:pdbonly --noframework --define:TRACE --doc:..\..\bin\Paket.Core.XML --optimize+ -r:..\..\packages\Chessie\lib\net40\Chessie.dll -r:..\..\packages\FSharp.Core\lib\net40\FSharp.Core.dll -r:..\..\packages\Mono.Cecil\lib\net45\Mono.Cecil.dll -r:..\..\packages\Mono.Cecil\lib\net45\Mono.Cecil.Mdb.dll -r:..\..\packages\Mono.Cecil\lib\net45\Mono.Cecil.Pdb.dll -r:..\..\packages\Mono.Cecil\lib\net45\Mono.Cecil.Rocks.dll -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\mscorlib.dll" -r:..\..\packages\Newtonsoft.Json\lib\net45\Newtonsoft.Json.dll -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Configuration.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Core.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Data.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Data.Linq.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.IO.Compression.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.IO.Compression.FileSystem.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Numerics.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Security.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Xml.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Xml.Linq.dll" --target:library --warn:3 --warnaserror:76 --vserrors --validate-type-providers --LCID:1033 --utf8output --fullpaths --flaterrors --subsystemversion:6.00 --highentropyva+ --sqmsessionguid:bcb8c335-41a6-4173-9636-2335b6448248 ..\..\paket-files\fsprojects\FSharp.TypeProviders.StarterPack\src\AssemblyReader.fs ..\..\paket-files\fsharp\FAKE\src\app\FakeLib\Globbing\Globbing.fs Async.fs AssemblyInfo.fs CustomAssemblyInfo.fs Domain.fs Constants.fs Logging.fsi Logging.fs Utils.fs SemVer.fs VersionRange.fs Xml.fs GitCommandHelper.fs GitHandling.fs PlatformDetection.fs ConfigFile.fs Cache.fs Cultures.fs PackageSources.fs FrameworkHandling.fs PlatformMatching.fs Requirements.fs ModuleResolver.fs RemoteDownload.fs RemoteUpload.fs PackageResolver.fs Nuspec.fs InstallModel.fs ReferencesFile.fs SolutionFile.fs Nuget.fs NuGetV3.fs NuGetV2.fs DependenciesTypes.fs DependenciesFileParser.fs LockFile.fs TemplateFile.fs ProjectFile.fs DependenciesFile.fs LocalFile.fs DependencyChangeDetection.fs GarbageCollection.fs RestoreProcess.fs BindingRedirects.fs NupkgWriter.fs ProcessOptions.fs PackagesConfigFile.fs DependencyModel.fs InstallProcess.fs UpdateProcess.fs RemoveProcess.fs AddProcess.fs PackageMetaData.fs PackageProcess.fs Environment.fs Releases.fs Simplifier.fs VSIntegration.fs NugetConvert.fs FindOutdated.fs FindReferences.fs PublicAPI.fs ScriptGeneration.fs""" - "FSharpx.Collections", "https://github.com/fsprojects/FSharpx.Collections.git", "build.cmd", "src/FSharpx.Collections" , """-o:obj\Debug\FSharpx.Collections.dll -g --debug:full --noframework --optimize- --tailcalls- -r:..\..\packages\FSharp.Core\lib\net40\FSharp.Core.dll -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\mscorlib.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Core.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.dll" --target:library --warn:3 --warnaserror:76 --vserrors --validate-type-providers --LCID:1033 --utf8output --fullpaths --flaterrors --highentropyva- --sqmsessionguid:69dfdfc7-1aa9-4121-9408-d55ff440afae AssemblyInfo.fs Exceptions.fs Interfaces.fs Infrastructure.fs LazyList.fsi LazyList.fs ResizeArray.fsi ResizeArray.fs Collections.fs Deque.fsi Deque.fs DList.fsi DList.fs ByteString.fs CircularBuffer.fs PriorityQueue.fs NonEmptyList.fs RandomAccessList.fsi RandomAccessList.fs Queue.fsi Queue.fs Literals.fs PersistentVector.fsi PersistentVector.fs PersistentHashMap.fs""" - "FSharp.Data", "https://github.com/fsharp/FSharp.Data.git", "build.cmd", "src" , """-o:obj\Debug\FSharp.Data.dll -g --debug:full --noframework --define:DEBUG --define:TRACE --optimize- --tailcalls- -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\FSharp\.NETFramework\v4.0\4.3.0.0\FSharp.Core.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\mscorlib.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Core.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Xml.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Xml.Linq.dll" --target:library --warn:3 --warnaserror:76 --vserrors --validate-type-providers --LCID:1033 --utf8output --fullpaths --flaterrors --highentropyva- --sqmsessionguid:60edec96-3e22-4317-b40f-03727d8ed775 --warnon:1182 Net\UriUtils.fs Net\Http.fs CommonRuntime\IO.fs CommonRuntime\Caching.fs CommonRuntime\TextConversions.fs CommonRuntime\TextRuntime.fs CommonRuntime\Pluralizer.fs CommonRuntime\NameUtils.fs CommonRuntime\StructuralTypes.fs CommonRuntime\StructuralInference.fs Json\JsonValue.fs Json\JsonConversions.fs Json\JsonExtensions.fs Json\JsonRuntime.fs Xml\XmlRuntime.fs Csv\CsvRuntime.fs Csv\CsvFile.fs Csv\CsvExtensions.fs Csv\CsvInference.fs WorldBank\WorldBankRuntime.fs Html\HtmlCharRefs.fs Html\HtmlParser.fs Html\HtmlOperations.fs Html\HtmlCssSelectors.fs Html\HtmlInference.fs Html\HtmlRuntime.fs Runtime.fs AssemblyInfo.fs""" - "SQLProvider", "https://github.com/fsprojects/SQLProvider.git", "build.cmd", "src/SQLProvider", """-o:obj\Release\FSharp.Data.SqlProvider.dll --debug:pdbonly --noframework --define:TRACE --doc:..\..\bin\FSharp.Data.SqlProvider.XML --optimize+ -r:..\..\packages\FSharp.Core\lib\net40\FSharp.Core.dll -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\mscorlib.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\System.Configuration.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\System.Core.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\System.Data.DataSetExtensions.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\System.Data.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\System.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\System.IdentityModel.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\System.Runtime.Serialization.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\System.ServiceModel.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\System.Transactions.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\System.Xml.dll" --target:library --warn:3 --warnaserror:76 --fullpaths --flaterrors --subsystemversion:6.00 --highentropyva+ AssemblyInfo.fs ..\..\paket-files\fsprojects\FSharp.TypeProviders.StarterPack\src\ProvidedTypes.fsi ..\..\paket-files\fsprojects\FSharp.TypeProviders.StarterPack\src\ProvidedTypes.fs ..\..\paket-files\Thorium\Linq.Expression.Optimizer\src\Linq.Expression.Optimizer\ExpressionOptimizer.fs Operators.fs Utils.fs SqlSchema.fs DataTable.fs SqlRuntime.Patterns.fs QuotationHelpers.fs SqlRuntime.Common.fs Providers.MsSqlServer.fs Providers.MSAccess.fs Providers.MySql.fs Providers.Odbc.fs Providers.Oracle.fs Providers.Postgresql.fs Providers.SQLite.fs SqlRuntime.QueryExpression.fs SqlRuntime.Linq.fs SqlRuntime.Async.fs SqlRuntime.DataContext.fs SqlDesignTime.fs""" ] + [ "Paket", "https://github.com/fsprojects/Paket.git", "2f498c2e3837c61e06529b43dd43395d9bf4ef76", build.cmd", "src/Paket.Core", """-o:obj\Release\Paket.Core.dll -g --debug:pdbonly --noframework --define:TRACE --doc:..\..\bin\Paket.Core.XML --optimize+ -r:..\..\packages\Chessie\lib\net40\Chessie.dll -r:..\..\packages\FSharp.Core\lib\net40\FSharp.Core.dll -r:..\..\packages\Mono.Cecil\lib\net45\Mono.Cecil.dll -r:..\..\packages\Mono.Cecil\lib\net45\Mono.Cecil.Mdb.dll -r:..\..\packages\Mono.Cecil\lib\net45\Mono.Cecil.Pdb.dll -r:..\..\packages\Mono.Cecil\lib\net45\Mono.Cecil.Rocks.dll -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\mscorlib.dll" -r:..\..\packages\Newtonsoft.Json\lib\net45\Newtonsoft.Json.dll -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Configuration.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Core.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Data.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Data.Linq.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.IO.Compression.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.IO.Compression.FileSystem.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Numerics.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Security.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Xml.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Xml.Linq.dll" --target:library --warn:3 --warnaserror:76 --vserrors --validate-type-providers --LCID:1033 --utf8output --fullpaths --flaterrors --subsystemversion:6.00 --highentropyva+ --sqmsessionguid:bcb8c335-41a6-4173-9636-2335b6448248 ..\..\paket-files\fsprojects\FSharp.TypeProviders.StarterPack\src\AssemblyReader.fs ..\..\paket-files\fsharp\FAKE\src\app\FakeLib\Globbing\Globbing.fs Async.fs AssemblyInfo.fs CustomAssemblyInfo.fs Domain.fs Constants.fs Logging.fsi Logging.fs Utils.fs SemVer.fs VersionRange.fs Xml.fs GitCommandHelper.fs GitHandling.fs PlatformDetection.fs ConfigFile.fs Cache.fs Cultures.fs PackageSources.fs FrameworkHandling.fs PlatformMatching.fs Requirements.fs ModuleResolver.fs RemoteDownload.fs RemoteUpload.fs PackageResolver.fs Nuspec.fs InstallModel.fs ReferencesFile.fs SolutionFile.fs Nuget.fs NuGetV3.fs NuGetV2.fs DependenciesTypes.fs DependenciesFileParser.fs LockFile.fs TemplateFile.fs ProjectFile.fs DependenciesFile.fs LocalFile.fs DependencyChangeDetection.fs GarbageCollection.fs RestoreProcess.fs BindingRedirects.fs NupkgWriter.fs ProcessOptions.fs PackagesConfigFile.fs DependencyModel.fs InstallProcess.fs UpdateProcess.fs RemoveProcess.fs AddProcess.fs PackageMetaData.fs PackageProcess.fs Environment.fs Releases.fs Simplifier.fs VSIntegration.fs NugetConvert.fs FindOutdated.fs FindReferences.fs PublicAPI.fs ScriptGeneration.fs""" + "FSharpx.Collections", "https://github.com/fsprojects/FSharpx.Collections.git", "944b8c8e464cdd10070889f53c78e9fbeb478698", "build.cmd", "src/FSharpx.Collections" , """-o:obj\Debug\FSharpx.Collections.dll -g --debug:full --noframework --optimize- --tailcalls- -r:..\..\packages\FSharp.Core\lib\net40\FSharp.Core.dll -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\mscorlib.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Core.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.dll" --target:library --warn:3 --warnaserror:76 --vserrors --validate-type-providers --LCID:1033 --utf8output --fullpaths --flaterrors --highentropyva- --sqmsessionguid:69dfdfc7-1aa9-4121-9408-d55ff440afae AssemblyInfo.fs Exceptions.fs Interfaces.fs Infrastructure.fs LazyList.fsi LazyList.fs ResizeArray.fsi ResizeArray.fs Collections.fs Deque.fsi Deque.fs DList.fsi DList.fs ByteString.fs CircularBuffer.fs PriorityQueue.fs NonEmptyList.fs RandomAccessList.fsi RandomAccessList.fs Queue.fsi Queue.fs Literals.fs PersistentVector.fsi PersistentVector.fs PersistentHashMap.fs""" + "FSharp.Data", "https://github.com/fsharp/FSharp.Data.git", "538137111c848572c4cc485bd971414718bfd2d3", "build.cmd", "src" , """-o:obj\Debug\FSharp.Data.dll -g --debug:full --noframework --define:DEBUG --define:TRACE --optimize- --tailcalls- -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\FSharp\.NETFramework\v4.0\4.3.0.0\FSharp.Core.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\mscorlib.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Core.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Xml.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Xml.Linq.dll" --target:library --warn:3 --warnaserror:76 --vserrors --validate-type-providers --LCID:1033 --utf8output --fullpaths --flaterrors --highentropyva- --sqmsessionguid:60edec96-3e22-4317-b40f-03727d8ed775 --warnon:1182 Net\UriUtils.fs Net\Http.fs CommonRuntime\IO.fs CommonRuntime\Caching.fs CommonRuntime\TextConversions.fs CommonRuntime\TextRuntime.fs CommonRuntime\Pluralizer.fs CommonRuntime\NameUtils.fs CommonRuntime\StructuralTypes.fs CommonRuntime\StructuralInference.fs Json\JsonValue.fs Json\JsonConversions.fs Json\JsonExtensions.fs Json\JsonRuntime.fs Xml\XmlRuntime.fs Csv\CsvRuntime.fs Csv\CsvFile.fs Csv\CsvExtensions.fs Csv\CsvInference.fs WorldBank\WorldBankRuntime.fs Html\HtmlCharRefs.fs Html\HtmlParser.fs Html\HtmlOperations.fs Html\HtmlCssSelectors.fs Html\HtmlInference.fs Html\HtmlRuntime.fs Runtime.fs AssemblyInfo.fs""" + "SQLProvider", "https://github.com/fsprojects/SQLProvider.git", "124ff176d5f7c35991becb1efd3e01c4faca78a0", "build.cmd", "src/SQLProvider", """-o:obj\Release\FSharp.Data.SqlProvider.dll --debug:pdbonly --noframework --define:TRACE --doc:..\..\bin\FSharp.Data.SqlProvider.XML --optimize+ -r:..\..\packages\FSharp.Core\lib\net40\FSharp.Core.dll -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\mscorlib.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\System.Configuration.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\System.Core.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\System.Data.DataSetExtensions.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\System.Data.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\System.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\System.IdentityModel.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\System.Runtime.Serialization.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\System.ServiceModel.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\System.Transactions.dll" -r:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.1\System.Xml.dll" --target:library --warn:3 --warnaserror:76 --fullpaths --flaterrors --subsystemversion:6.00 --highentropyva+ AssemblyInfo.fs ..\..\paket-files\fsprojects\FSharp.TypeProviders.StarterPack\src\ProvidedTypes.fsi ..\..\paket-files\fsprojects\FSharp.TypeProviders.StarterPack\src\ProvidedTypes.fs ..\..\paket-files\Thorium\Linq.Expression.Optimizer\src\Linq.Expression.Optimizer\ExpressionOptimizer.fs Operators.fs Utils.fs SqlSchema.fs DataTable.fs SqlRuntime.Patterns.fs QuotationHelpers.fs SqlRuntime.Common.fs Providers.MsSqlServer.fs Providers.MSAccess.fs Providers.MySql.fs Providers.Odbc.fs Providers.Oracle.fs Providers.Postgresql.fs Providers.SQLite.fs SqlRuntime.QueryExpression.fs SqlRuntime.Linq.fs SqlRuntime.Async.fs SqlRuntime.DataContext.fs SqlDesignTime.fs""" ] // -------------------------------------------------------------------------------------- // END TODO: The rest of the file includes standard build steps @@ -39,15 +39,18 @@ Target "CleanDocs" (fun _ -> let projectDir name = Path.Combine(rootDir,name) |> FullName -let clone gitUrl name = Repository.clone rootDir gitUrl (projectDir name) +let clone gitUrl commit name = + let target = projectDir name + Repository.clone rootDir gitUrl target + Branches.checkoutNewBranch target commit "temp-test" Target "CloneProjects" (fun _ -> - for name,gitUrl,_,_,_ in projects do - clone gitUrl name + for name,gitUrl,commit,_,_,_ in projects do + clone gitUrl commit name ) Target "BuildProjects" (fun _ -> - for name,_,command,_,_ in projects do + for name,_,_,command,_,_ in projects do let result = ExecProcess (fun info -> info.FileName <- Path.Combine(projectDir name,command) @@ -72,7 +75,7 @@ Target "RunPerfTests" (fun _ -> let times = System.Collections.Generic.Dictionary<_,_>() for run in 1..runs do - for name,_,_,dir,args in projects do + for name,_,_,_,dir,args in projects do let sw = System.Diagnostics.Stopwatch.StartNew() let result = ExecProcess (fun info ->