Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
c256fa5
disable BwdServer at sln/fsproj level
StachuDotNet Apr 28, 2026
76af707
split LibExecution into Language / Runtime / DarkTypes
StachuDotNet Apr 28, 2026
fd0061d
build-server.log: rotate in place above 5 MB
StachuDotNet Apr 28, 2026
418786d
watcher: only run when VS Code is attached
StachuDotNet Apr 28, 2026
07be619
unified event log: build-server + tests now feed telemetry.jsonl
StachuDotNet Apr 28, 2026
9dee206
docs: update for-ai-internal for the new layout
StachuDotNet Apr 28, 2026
9edede8
gitignore: keep both LibExecution and Language hash paths
StachuDotNet Apr 28, 2026
d74408f
fix package-ref-hashes paths after the LibExecution split
StachuDotNet Apr 28, 2026
5036087
format: collapse multi-line Path.Combine calls
StachuDotNet Apr 28, 2026
4386e69
baseline: record pre-ply-swap measurement rows
StachuDotNet Apr 28, 2026
8e18a62
run-in-docker: skip cat-stdin shim when stdin has no readable bytes
StachuDotNet Apr 28, 2026
520113b
fix internal table-count test after the trace_fn merge
StachuDotNet Apr 28, 2026
71d2f27
ply-to-task: swap Stream.fs pull path to task builder
StachuDotNet Apr 28, 2026
2d57392
ply-to-task: swap BuiltinExecution/Libs/Stream.fs to task builder
StachuDotNet Apr 28, 2026
481496d
ply-to-task: swap BuiltinExecution/Libs/HttpClient.fs to task builder
StachuDotNet Apr 28, 2026
4aa8eda
ply-to-task: hot-path measurement — continue
StachuDotNet Apr 28, 2026
ba5de73
ply-to-task: migrate remaining BuiltinExecution/Libs outer bodies
StachuDotNet Apr 29, 2026
663b6ae
ply-to-task: migrate BuiltinHttpServer/Libs to task builder
StachuDotNet Apr 29, 2026
e748331
ply-to-task: migrate BuiltinCli/Libs/** to task builder
StachuDotNet Apr 29, 2026
2b01acb
ply-to-task: migrate BuiltinCliHost/Libs/** to task builder
StachuDotNet Apr 29, 2026
336dc67
ply-to-task: migrate BuiltinCloudExecution/Libs/DB.fs to task builder
StachuDotNet Apr 29, 2026
94400a4
ply-to-task: migrate BuiltinPM Seed/Merge/Rebase/Scripts to task builder
StachuDotNet Apr 29, 2026
37840b8
ply-to-task: migrate BuiltinPM Dependencies + Branches to task builder
StachuDotNet Apr 29, 2026
442bbd0
ply-to-task: migrate BuiltinPM/Libs/PackageOps.fs to task builder
StachuDotNet Apr 29, 2026
9f76613
ply-to-task: migrate BuiltinPM/Libs/Packages.fs to task builder
StachuDotNet Apr 29, 2026
4ca4b01
ply-to-task: flip DvalTask alias to Task<Dval>
StachuDotNet Apr 29, 2026
97ad777
ply-to-task: flip StreamImpl callback types to Task
StachuDotNet Apr 29, 2026
052dad8
ply-to-task: migrate Runtime/Blob.fs
StachuDotNet Apr 29, 2026
7983f20
ply-to-task: migrate Runtime/RTQueryCompiler.fs
StachuDotNet Apr 29, 2026
33ae3d5
ply-to-task: migrate LibExecution/Execution.fs pretty-printers
StachuDotNet Apr 29, 2026
46fe325
ply-to-task: migrate Runtime/TypeChecker.fs
StachuDotNet Apr 29, 2026
7f7f463
ply-to-task: migrate Runtime/Interpreter.fs
StachuDotNet Apr 29, 2026
593a25b
ply-to-task: flip ExceptionReporter / Notifier aliases to Task
StachuDotNet Apr 29, 2026
317cf33
ply-to-task: flip RT.PackageManager + Types/Values/Fns/Blobs records
StachuDotNet Apr 29, 2026
fe0c8dd
ply-to-task: flip PT.PackageManager record to Task
StachuDotNet Apr 29, 2026
3300664
ply-to-task: flip LibPackageManager core stores to Task
StachuDotNet Apr 29, 2026
9b5577d
ply-to-task: complete LibPackageManager migration
StachuDotNet Apr 29, 2026
930b54b
ply-to-task: bulk T.10-T.12 — sweep LibCloud/LibParser/LibHttpMiddlew…
StachuDotNet Apr 29, 2026
773aea7
ply-to-task: T.14 — retire Ply (delete Ply.fs, drop paket dep)
StachuDotNet Apr 29, 2026
37e659d
ply-to-task: reinstate DStream concurrent-consumer check
StachuDotNet Apr 29, 2026
dd2680f
ply-to-task: --nowarn:3511 for FS3511 in release builds
StachuDotNet Apr 29, 2026
3c8fd67
aot: surface real startup error in cli + db
StachuDotNet Apr 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ config/local
rundir/

# F# / dotnet
backend/src/Language/package-ref-hashes.txt
backend/src/LibExecution/package-ref-hashes.txt
backend/packages/
backend/paket-files/
Expand Down
16 changes: 16 additions & 0 deletions .vscode/tasks.json
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,22 @@
"runOptions": {
"runOn": "folderOpen"
}
},
{
"label": "Watch & rebuild backend",
"type": "shell",
"command": "./scripts/build/_build-server --watch >> rundir/logs/build-server.log 2>&1",
"isBackground": true,
"presentation": {
"echo": true,
"reveal": "never",
"focus": false,
"panel": "dedicated"
},
"runOptions": {
"runOn": "folderOpen"
},
"problemMatcher": []
}
]
}
7 changes: 6 additions & 1 deletion backend/Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,11 @@
<!-- Run some parts of compilation in parallel: https://blog.nojaf.com/2023/08/22/unleashing-parallel-processing-in-your-fsharp-compiler/ -->
<OtherFlags>$(OtherFlags) --test:GraphBasedChecking --test:ParallelOptimization --test:ParallelIlxGen</OtherFlags>
<!-- warnings - https://learn.microsoft.com/en-us/dotnet/fsharp/language-reference/compiler-options#opt-in-warnings -->
<OtherFlags>$(OtherFlags) --warnaserror --warnon:1182,3387,3366</OtherFlags>
<!-- nowarn:3511 — task builder's resumable-code analyzer can't always statically -->
<!-- reduce complex recursive task patterns (esp. ones with `match!` over a -->
<!-- recursive Task helper). Falls back to dynamic dispatch — correct but -->
<!-- slightly slower. Affects Runtime/TypeChecker.fs and a couple of -->
<!-- similarly-shaped recursive-task helpers. -->
<OtherFlags>$(OtherFlags) --warnaserror --warnon:1182,3387,3366 --nowarn:3511</OtherFlags>
</PropertyGroup>
</Project>
38 changes: 31 additions & 7 deletions backend/fsdark.sln
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,12 @@ EndProject
# Core projects
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Prelude", "src\Prelude\Prelude.fsproj", "{5FD0E378-FD88-45E5-9963-BFF2921E6A6A}"
EndProject
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Language", "src\Language\Language.fsproj", "{A1B2C3D4-0001-4001-8001-000000000001}"
EndProject
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Runtime", "src\Runtime\Runtime.fsproj", "{A1B2C3D4-0002-4002-8002-000000000002}"
EndProject
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "DarkTypes", "src\DarkTypes\DarkTypes.fsproj", "{A1B2C3D4-0003-4003-8003-000000000003}"
EndProject
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "LibExecution", "src\LibExecution\LibExecution.fsproj", "{D8ECA989-4383-47D3-B443-4D7BFF1F05E7}"
EndProject
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "LibTreeSitter", "src\LibTreeSitter\LibTreeSitter.fsproj", "{625B113A-D5DC-40A5-B833-4BA342AB4936}"
Expand Down Expand Up @@ -53,8 +59,9 @@ Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "LibCloud", "src\LibCloud\Li
EndProject
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "LibHttpMiddleware", "src\LibHttpMiddleware\LibHttpMiddleware.fsproj", "{DAE2B2E9-40AF-4D99-A5B0-79678F94BFDA}"
EndProject
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "BwdServer", "src\BwdServer\BwdServer.fsproj", "{B56110F0-2D27-4718-8C80-E7FDE3439A63}"
EndProject
# BwdServer disabled — kept on disk; restore when HTTP server functionality returns.
# Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "BwdServer", "src\BwdServer\BwdServer.fsproj", "{B56110F0-2D27-4718-8C80-E7FDE3439A63}"
# EndProject
# CLI stuff
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Cli", "src\Cli\Cli.fsproj", "{DF812CBE-894C-4C90-9EDC-4558983CCDEA}"
EndProject
Expand Down Expand Up @@ -86,14 +93,27 @@ Global
EndGlobalSection

GlobalSection(ProjectConfigurationPlatforms) = postSolution
{B56110F0-2D27-4718-8C80-E7FDE3439A63}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B56110F0-2D27-4718-8C80-E7FDE3439A63}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B56110F0-2D27-4718-8C80-E7FDE3439A63}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B56110F0-2D27-4718-8C80-E7FDE3439A63}.Release|Any CPU.Build.0 = Release|Any CPU
# BwdServer disabled
# {B56110F0-2D27-4718-8C80-E7FDE3439A63}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
# {B56110F0-2D27-4718-8C80-E7FDE3439A63}.Debug|Any CPU.Build.0 = Debug|Any CPU
# {B56110F0-2D27-4718-8C80-E7FDE3439A63}.Release|Any CPU.ActiveCfg = Release|Any CPU
# {B56110F0-2D27-4718-8C80-E7FDE3439A63}.Release|Any CPU.Build.0 = Release|Any CPU
{D8ECA989-4383-47D3-B443-4D7BFF1F05E7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D8ECA989-4383-47D3-B443-4D7BFF1F05E7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D8ECA989-4383-47D3-B443-4D7BFF1F05E7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D8ECA989-4383-47D3-B443-4D7BFF1F05E7}.Release|Any CPU.Build.0 = Release|Any CPU
{A1B2C3D4-0001-4001-8001-000000000001}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A1B2C3D4-0001-4001-8001-000000000001}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A1B2C3D4-0001-4001-8001-000000000001}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A1B2C3D4-0001-4001-8001-000000000001}.Release|Any CPU.Build.0 = Release|Any CPU
{A1B2C3D4-0002-4002-8002-000000000002}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A1B2C3D4-0002-4002-8002-000000000002}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A1B2C3D4-0002-4002-8002-000000000002}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A1B2C3D4-0002-4002-8002-000000000002}.Release|Any CPU.Build.0 = Release|Any CPU
{A1B2C3D4-0003-4003-8003-000000000003}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A1B2C3D4-0003-4003-8003-000000000003}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A1B2C3D4-0003-4003-8003-000000000003}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A1B2C3D4-0003-4003-8003-000000000003}.Release|Any CPU.Build.0 = Release|Any CPU
{DB61305F-4CA9-4D92-82A5-503495F515E8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DB61305F-4CA9-4D92-82A5-503495F515E8}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DB61305F-4CA9-4D92-82A5-503495F515E8}.Release|Any CPU.ActiveCfg = Release|Any CPU
Expand Down Expand Up @@ -187,11 +207,15 @@ Global
# Notes of what projects being in which folders
GlobalSection(NestedProjects) = preSolution
# in /src
{A1B2C3D4-0001-4001-8001-000000000001} = {F84DCF8A-FC1A-4677-AF4D-616AD7DB3470}
{A1B2C3D4-0002-4002-8002-000000000002} = {F84DCF8A-FC1A-4677-AF4D-616AD7DB3470}
{A1B2C3D4-0003-4003-8003-000000000003} = {F84DCF8A-FC1A-4677-AF4D-616AD7DB3470}
{D8ECA989-4383-47D3-B443-4D7BFF1F05E7} = {F84DCF8A-FC1A-4677-AF4D-616AD7DB3470}
{5FD0E378-FD88-45E5-9963-BFF2921E6A6A} = {F84DCF8A-FC1A-4677-AF4D-616AD7DB3470}
{BBFC824F-A0DE-4A28-B82F-49C04EBA7475} = {F84DCF8A-FC1A-4677-AF4D-616AD7DB3470}
{625B113A-D5DC-40A5-B833-4BA342AB4936} = {F84DCF8A-FC1A-4677-AF4D-616AD7DB3470}
{B56110F0-2D27-4718-8C80-E7FDE3439A63} = {F84DCF8A-FC1A-4677-AF4D-616AD7DB3470}
# BwdServer disabled
# {B56110F0-2D27-4718-8C80-E7FDE3439A63} = {F84DCF8A-FC1A-4677-AF4D-616AD7DB3470}
{3FC57943-9D51-49AE-9FBD-4A112B4F68D6} = {F84DCF8A-FC1A-4677-AF4D-616AD7DB3470}
{824DD2A5-7F01-4A8A-9ABD-9F91F52582AD} = {F84DCF8A-FC1A-4677-AF4D-616AD7DB3470}
{524e142b-bfb1-4f4b-8e67-bfe82301f7c6} = {F84DCF8A-FC1A-4677-AF4D-616AD7DB3470}
Expand Down
1 change: 0 additions & 1 deletion backend/paket.dependencies
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ framework: net10.0
storage: none

// Basics
nuget Ply = 0.3.1
nuget FSharpPlus = 1.5.0
nuget FsRegEx = 0.7.2
nuget FSharpx.Extras = 3.1.0
Expand Down
4 changes: 0 additions & 4 deletions backend/paket.lock
Original file line number Diff line number Diff line change
Expand Up @@ -109,9 +109,6 @@ NUGET
Microsoft.Extensions.Logging (>= 2.0)
Microsoft.Extensions.Logging.Configuration (>= 2.0)
Microsoft.Extensions.Options.ConfigurationExtensions (>= 2.0)
Ply (0.3.1)
FSharp.Core (>= 4.6.2)
System.Threading.Tasks.Extensions (>= 4.5.4)
SimpleBase (4.0)
System.Memory (>= 4.5.5)
Sodium.Core (1.3.4)
Expand All @@ -135,4 +132,3 @@ NUGET
System.Runtime.CompilerServices.Unsafe (6.1.2)
System.Text.Json (10.0)
System.Threading.Channels (10.0.5)
System.Threading.Tasks.Extensions (4.6.3)
39 changes: 16 additions & 23 deletions backend/src/BuiltinCli/Libs/Directory.fs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
module BuiltinCli.Libs.Directory

open System.Threading.Tasks
open FSharp.Control.Tasks

open Prelude
open LibExecution.RuntimeTypes
Expand All @@ -21,10 +20,8 @@ let fns () : List<BuiltInFn> =
fn =
(function
| _, _, _, [ DUnit ] ->
uply {
let contents = System.IO.Directory.GetCurrentDirectory()
return DString contents
}
let contents = System.IO.Directory.GetCurrentDirectory()
DString contents |> Task.FromResult
| _ -> incorrectArgs ())
sqlSpec = NotQueryable
previewable = Impure
Expand All @@ -38,8 +35,8 @@ let fns () : List<BuiltInFn> =
description =
"Creates a new directory at the specified <param path>. If the directory already exists, no action is taken. Returns a Result type indicating success or failure."
fn =
let resultOk r = Dval.resultOk KTUnit KTString r |> Ply
let resultError r = Dval.resultError KTUnit KTString r |> Ply
let resultOk r = Dval.resultOk KTUnit KTString r |> Task.FromResult
let resultError r = Dval.resultError KTUnit KTString r |> Task.FromResult
(function
| _, _, _, [ DString path ] ->
try
Expand All @@ -61,8 +58,8 @@ let fns () : List<BuiltInFn> =
description =
"Deletes the directory at the specified <param path>. If <param recursive> is set to true, it will delete the directory and its contents. If set to false (default), it will only delete an empty directory. Returns a Result type indicating success or failure."
fn =
let resultOk r = Dval.resultOk KTUnit KTString r |> Ply
let resultError r = Dval.resultError KTUnit KTString r |> Ply
let resultOk r = Dval.resultOk KTUnit KTString r |> Task.FromResult
let resultError r = Dval.resultError KTUnit KTString r |> Task.FromResult
(function
| _, _, _, [ DString path ] ->
try
Expand All @@ -84,16 +81,14 @@ let fns () : List<BuiltInFn> =
fn =
(function
| _, _, _, [ DString path ] ->
uply {
// TODO make async
let contents =
try
System.IO.Directory.EnumerateFileSystemEntries path |> Seq.toList
with _ ->
[]
// TODO make async
let contents =
try
System.IO.Directory.EnumerateFileSystemEntries path |> Seq.toList
with _ ->
[]

return DList(VT.string, List.map DString contents)
}
DList(VT.string, List.map DString contents) |> Task.FromResult
| _ -> incorrectArgs ())
sqlSpec = NotQueryable
previewable = Impure
Expand All @@ -108,11 +103,9 @@ let fns () : List<BuiltInFn> =
fn =
(function
| _, _, _, [ DUnit ] ->
uply {
let exePath =
System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName
return DString exePath
}
let exePath =
System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName
DString exePath |> Task.FromResult
| _ -> incorrectArgs ())
sqlSpec = NotQueryable
previewable = Impure
Expand Down
9 changes: 4 additions & 5 deletions backend/src/BuiltinCli/Libs/Environment.fs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
module BuiltinCli.Libs.Environment

open System.Threading.Tasks
open FSharp.Control.Tasks

open Prelude
open LibExecution.RuntimeTypes
Expand All @@ -26,9 +25,9 @@ let fns () : List<BuiltInFn> =
let envValue = System.Environment.GetEnvironmentVariable(varName)

if isNull envValue then
Dval.optionNone KTString |> Ply
Dval.optionNone KTString |> Task.FromResult
else
Dval.optionSome KTString (DString envValue) |> Ply
Dval.optionSome KTString (DString envValue) |> Task.FromResult
| _ -> incorrectArgs ())
sqlSpec = NotQueryable
previewable = Impure
Expand All @@ -53,7 +52,7 @@ let fns () : List<BuiltInFn> =
|> Seq.toList
|> Dval.dict KTString

Ply(envMap)
Task.FromResult(envMap)
| _ -> incorrectArgs ())
sqlSpec = NotQueryable
previewable = Impure
Expand All @@ -67,7 +66,7 @@ let fns () : List<BuiltInFn> =
description = "Returns the git hash of the current CLI build"
fn =
function
| _, _, [], [ DUnit ] -> uply { return DString LibConfig.Config.buildHash }
| _, _, [], [ DUnit ] -> Task.FromResult(DString LibConfig.Config.buildHash)
| _ -> incorrectArgs ()
sqlSpec = NotQueryable
previewable = Impure
Expand Down
29 changes: 16 additions & 13 deletions backend/src/BuiltinCli/Libs/Execution.fs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
module BuiltinCli.Libs.Execution

open System.Threading.Tasks
open FSharp.Control.Tasks
open System.Collections.Concurrent
open System.IO
open System.Threading
Expand Down Expand Up @@ -181,7 +180,7 @@ let fns () : List<BuiltInFn> =

p.WaitForExit()

createExecutionOutcome p.ExitCode stdout stderr |> Ply
createExecutionOutcome p.ExitCode stdout stderr |> Task.FromResult
| _ -> incorrectArgs ()
sqlSpec = NotQueryable
previewable = Impure
Expand All @@ -202,13 +201,13 @@ let fns () : List<BuiltInFn> =
let resultError = Dval.resultError osTypeRef KTString

if RuntimeInformation.IsOSPlatform OSPlatform.Windows then
OS.Windows |> OS.toDT |> resultOk |> Ply
OS.Windows |> OS.toDT |> resultOk |> Task.FromResult
else if RuntimeInformation.IsOSPlatform OSPlatform.Linux then
OS.Linux |> OS.toDT |> resultOk |> Ply
OS.Linux |> OS.toDT |> resultOk |> Task.FromResult
else if RuntimeInformation.IsOSPlatform OSPlatform.OSX then
OS.OSX |> OS.toDT |> resultOk |> Ply
OS.OSX |> OS.toDT |> resultOk |> Task.FromResult
else
"Unsupported OS" |> DString |> resultError |> Ply
"Unsupported OS" |> DString |> resultError |> Task.FromResult

| _ -> incorrectArgs ()
sqlSpec = NotQueryable
Expand Down Expand Up @@ -254,7 +253,7 @@ let fns () : List<BuiltInFn> =
ErrorBuffer = "" }

processHandles.TryAdd(processId, processInfo) |> ignore<bool>
DInt64 processId |> Ply
DInt64 processId |> Task.FromResult
| _ -> incorrectArgs ()
sqlSpec = NotQueryable
previewable = Impure
Expand Down Expand Up @@ -356,11 +355,13 @@ let fns () : List<BuiltInFn> =
else
0
createExecutionOutcome exitCode (stdout.ToString()) (stderr.ToString())
|> Ply
|> Task.FromResult
with ex ->
createExecutionOutcome -1L "" $"Process IO error: {ex.Message}" |> Ply
createExecutionOutcome -1L "" $"Process IO error: {ex.Message}"
|> Task.FromResult
| _ ->
createExecutionOutcome -1L "" "Process not found or has exited" |> Ply
createExecutionOutcome -1L "" "Process not found or has exited"
|> Task.FromResult
| _ -> incorrectArgs ()
sqlSpec = NotQueryable
previewable = Impure
Expand Down Expand Up @@ -405,15 +406,17 @@ let fns () : List<BuiltInFn> =

processHandles.TryRemove processId |> ignore<bool * ProcessInfo>

createExecutionOutcome exitCode finalStdout finalStderr |> Ply
createExecutionOutcome exitCode finalStdout finalStderr
|> Task.FromResult
with ex ->
processHandles.TryRemove processId |> ignore<bool * ProcessInfo>
createExecutionOutcome
-1L
""
$"Process termination error: {ex.Message}"
|> Ply
| false, _ -> createExecutionOutcome -1L "" "Process not found" |> Ply
|> Task.FromResult
| false, _ ->
createExecutionOutcome -1L "" "Process not found" |> Task.FromResult
| _ -> incorrectArgs ()
sqlSpec = NotQueryable
previewable = Impure
Expand Down
Loading