diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index e5c452c2..fe2f8f23 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,4 +1,4 @@ -FROM mcr.microsoft.com/vscode/devcontainers/universal +FROM mcr.microsoft.com/vscode/devcontainers/universal:dev USER root diff --git a/lib/fsharp/common.py b/lib/fsharp/common.py index 18c8083a..d4a46241 100644 --- a/lib/fsharp/common.py +++ b/lib/fsharp/common.py @@ -10,7 +10,7 @@ q: str = "\"" -def _expr201() -> TypeInfo: +def _expr254() -> TypeInfo: return union_type("Polyglot.Common.TraceLevel", [], TraceLevel, lambda: [[], [], [], [], []]) @@ -25,7 +25,7 @@ def cases() -> list[str]: return ["Verbose", "Debug", "Info", "Warning", "Critical"] -TraceLevel_reflection = _expr201 +TraceLevel_reflection = _expr254 def to_trace_level(_arg: TraceLevel) -> US0: if _arg.tag == 1: diff --git a/scripts/build.dib b/scripts/build.dib index 7e439ac3..61f3b871 100644 --- a/scripts/build.dib +++ b/scripts/build.dib @@ -13,7 +13,7 @@ #!pwsh -{ pwsh ../deps/spiral/apps/spiral/build.ps1 -SkipFsx 1 } | Invoke-Block +{ pwsh ../deps/spiral/apps/spiral/build.ps1 -fast 1 -SkipFsx 1 } | Invoke-Block #!pwsh @@ -29,7 +29,7 @@ #!pwsh -{ pwsh ../deps/spiral/apps/wasm/build.ps1 -fast 1 } | Invoke-Block +{ pwsh ../deps/spiral/apps/wasm/build.ps1 -SkipFsx 1 } | Invoke-Block #!pwsh diff --git a/scripts/build.dib.html b/scripts/build.dib.html index 538d742b..0359f86c 100644 --- a/scripts/build.dib.html +++ b/scripts/build.dib.html @@ -7586,7 +7586,7 @@ ── pwsh ──────────────────────────────────────────────────────────────────────── ls ~/.nuget/packages/argu -── [ 486.90ms - stdout ] ─────────────────────────────────────────────────────── +── [ 480.02ms - stdout ] ─────────────────────────────────────────────────────── │ │ Directory: C:\Users\i574n\.nuget\packages\argu │ @@ -7651,7 +7651,7 @@ $"a{nl}#!magic{nl}b{nl}" ) -── [ 55.77ms - stdout ] ──────────────────────────────────────────────────────── +── [ 56.59ms - stdout ] ──────────────────────────────────────────────────────── │ "a │ #!magic │ b @@ -7674,7 +7674,7 @@ Success ("#!", (), Position ("", 2, 1, 3)) ) -── [ 34.92ms - stdout ] ──────────────────────────────────────────────────────── +── [ 51.78ms - stdout ] ──────────────────────────────────────────────────────── │ Success: "#!" │ │ @@ -7696,7 +7696,7 @@ ) ) -── [ 48.17ms - stdout ] ──────────────────────────────────────────────────────── +── [ 47.99ms - stdout ] ──────────────────────────────────────────────────────── │ Failure: │ Error in Ln: 1 Col: 1 │ ##!magic @@ -7726,7 +7726,7 @@ Success ("magic", (), Position ("", 8, 2, 1)) ) -── [ 25.07ms - stdout ] ──────────────────────────────────────────────────────── +── [ 25.76ms - stdout ] ──────────────────────────────────────────────────────── │ Success: "magic" │ │ @@ -7750,7 +7750,7 @@ ) ) -── [ 26.66ms - stdout ] ──────────────────────────────────────────────────────── +── [ 23.26ms - stdout ] ──────────────────────────────────────────────────────── │ Failure: │ Error in Ln: 1 Col: 1 │ #!magic @@ -7789,7 +7789,7 @@ a", (), Position ("", 14, 7, 1)) ) -── [ 26.14ms - stdout ] ──────────────────────────────────────────────────────── +── [ 22.85ms - stdout ] ──────────────────────────────────────────────────────── │ Success: "#!magic │ │ @@ -7887,7 +7887,7 @@ ) ) -── [ 38.12ms - stdout ] ──────────────────────────────────────────────────────── +── [ 47.80ms - stdout ] ──────────────────────────────────────────────────────── │ Success: { magic = Magic "magic" │ content = "a" } │ @@ -7927,7 +7927,7 @@ ) ) -── [ 40.18ms - stdout ] ──────────────────────────────────────────────────────── +── [ 45.28ms - stdout ] ──────────────────────────────────────────────────────── │ Success: [{ magic = Magic "magic1" │ content = "a" }; { magic = Magic "magic2" │ content = "b" }] @@ -8010,7 +8010,7 @@ /// /// c" -── [ 52.06ms - stdout ] ──────────────────────────────────────────────────────── +── [ 54.04ms - stdout ] ──────────────────────────────────────────────────────── │ "/// a │ /// │ /// b @@ -8097,7 +8097,7 @@ let a = 3 " -── [ 72.15ms - stdout ] ──────────────────────────────────────────────────────── +── [ 80.77ms - stdout ] ──────────────────────────────────────────────────────── │ "/// a │ /// │ /// b @@ -8390,7 +8390,7 @@ }} """ -── [ 189.65ms - stdout ] ─────────────────────────────────────────────────────── +── [ 186.19ms - stdout ] ─────────────────────────────────────────────────────── │ "#if !INTERACTIVE │ namespace TestNamespace │ #endif @@ -8462,7 +8462,7 @@ ### TextInput " -── [ 168.68ms - stdout ] ─────────────────────────────────────────────────────── +── [ 167.70ms - stdout ] ─────────────────────────────────────────────────────── │ "# TestModule (TestNamespace) │ │ ## ParserLibrary @@ -8488,7 +8488,7 @@ /// ### TextInput " -── [ 171.83ms - stdout ] ─────────────────────────────────────────────────────── +── [ 169.65ms - stdout ] ─────────────────────────────────────────────────────── │ "/// # TestModule (TestNamespace) │ │ /// ## ParserLibrary @@ -8515,7 +8515,7 @@ /// ### TextInput " -── [ 173.42ms - stdout ] ─────────────────────────────────────────────────────── +── [ 159.73ms - stdout ] ─────────────────────────────────────────────────────── │ "/// # TestModule (TestNamespace) │ │ /// ## ParserLibrary @@ -8578,7 +8578,7 @@ Argu.ArgumentParser.Create<Arguments>().PrintUsage () -── [ 95.45ms - return value ] ────────────────────────────────────────────────── +── [ 110.28ms - return value ] ───────────────────────────────────────────────── │ "USAGE: dotnet-repl [--help] <file> <fs|md|spi|spir> │ │ FILE: @@ -8627,7 +8627,7 @@ | [[||]] -> 0 | args -> if main args = 0 then 0 else failwith "main failed" -── [ 150.26ms - return value ] ───────────────────────────────────────────────── +── [ 164.42ms - return value ] ───────────────────────────────────────────────── │ <div class="dni-plaintext"><pre>0 │ </pre></div><style> │ .dni-code-hint { @@ -8662,7 +8662,7 @@ │ } │ </style> -── [ 151.16ms - stdout ] ─────────────────────────────────────────────────────── +── [ 165.19ms - stdout ] ─────────────────────────────────────────────────────── │ 00:00:06 d #1 writeDibCode / output: Fs / path: Builder.dib │ 00:00:06 d #2 parseDibCode / output: Fs / file: @@ -8842,62 +8842,62 @@ > |> Async.runWithTimeout 180000 > |> _assertEqual (Some 0) > -> ── [ 9.50s - stdout ] ────────────────────────────────────────────────────────── +> ── [ 9.15s - stdout ] ────────────────────────────────────────────────────────── > │ 00:00:03 d #1 persistCodeProject / packages: [] / > modules: [] / name: test1 / hash: / code.Length: 15 > │ 00:00:03 d #2 buildProject / fullPath: -> C:\home\git\polyglot\target\Builder\test1\test1.fsproj -> │ 00:00:06 d #1 runtime.execute_with_options_async / { +> c:\home\git\polyglot\target\Builder\test1\test1.fsproj +> │ 00:00:07 d #1 runtime.execute_with_options_async / { > file_name = dotnet; arguments = US5_0 > │ "publish -> "C:\home\git\polyglot\target/Builder\test1\test1.fsproj" --configuration Release +> "c:/home/git\polyglot\target/Builder\test1\test1.fsproj" --configuration Release > --output "dist" --runtime linux-x64"; options = { command = dotnet publish -> "C:\home\git\polyglot\target/Builder\test1\test1.fsproj" --configuration Release +> "c:/home/git\polyglot\target/Builder\test1\test1.fsproj" --configuration Release > --output "dist" --runtime linux-x64; cancellation_token = None; > environment_variables = [||]; on_line = None; stdin = None; trace = true; -> working_directory = Some "C:\home\git\polyglot\target\Builder\test1" } } -> │ 00:00:07 v #2 > Determining projects to restore... -> │ 00:00:07 v #3 > Paket version +> working_directory = Some "c:\home\git\polyglot\target\Builder\test1" } } +> │ 00:00:08 v #2 > Determining projects to restore... +> │ 00:00:08 v #3 > Paket version > 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0 -> │ 00:00:07 v #4 > The last full restore is still up to +> │ 00:00:08 v #4 > The last full restore is still up to > date. Nothing left to do. -> │ 00:00:07 v #5 > Total time taken: 0 milliseconds -> │ 00:00:09 v #6 > Restored -> C:\home\git\polyglot\target\Builder\test1\test1.fsproj (in 1.18 sec). -> │ 00:00:10 v #7 > test1 -> -> C:\home\git\polyglot\target\Builder\test1\bin\Release\net9.0\linux-x64\test1.dll -> │ 00:00:11 v #8 > test1 -> -> C:\home\git\polyglot\target\Builder\test1\dist\ -> │ 00:00:11 v #9 > -> │ 00:00:11 v #10 > Workload updates are available. Run +> │ 00:00:08 v #5 > Total time taken: 0 milliseconds +> │ 00:00:10 v #6 > Restored +> c:\home\git\polyglot\target\Builder\test1\test1.fsproj (in 1.04 sec). +> │ 00:00:11 v #7 > test1 -> +> c:\home\git\polyglot\target\Builder\test1\bin\Release\net9.0\linux-x64\test1.dll +> │ 00:00:12 v #8 > test1 -> +> c:\home\git\polyglot\target\Builder\test1\dist\ +> │ 00:00:12 v #9 > +> │ 00:00:12 v #10 > Workload updates are available. Run > `dotnet workload list` for more information. -> │ 00:00:11 d #11 runtime.execute_with_options_async / { +> │ 00:00:12 d #11 runtime.execute_with_options_async / { > exit_code = 0; output_length = 513 } -> │ 00:00:11 d #12 runtime.execute_with_options_async / { +> │ 00:00:12 d #12 runtime.execute_with_options_async / { > file_name = dotnet; arguments = US5_0 > │ "publish -> "C:\home\git\polyglot\target/Builder\test1\test1.fsproj" --configuration Release +> "c:/home/git\polyglot\target/Builder\test1\test1.fsproj" --configuration Release > --output "dist" --runtime win-x64"; options = { command = dotnet publish -> "C:\home\git\polyglot\target/Builder\test1\test1.fsproj" --configuration Release +> "c:/home/git\polyglot\target/Builder\test1\test1.fsproj" --configuration Release > --output "dist" --runtime win-x64; cancellation_token = None; > environment_variables = [||]; on_line = None; stdin = None; trace = true; -> working_directory = Some "C:\home\git\polyglot\target\Builder\test1" } } -> │ 00:00:12 v #13 > Determining projects to restore... -> │ 00:00:12 v #14 > Paket version +> working_directory = Some "c:\home\git\polyglot\target\Builder\test1" } } +> │ 00:00:13 v #13 > Determining projects to restore... +> │ 00:00:13 v #14 > Paket version > 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0 -> │ 00:00:12 v #15 > The last full restore is still up to +> │ 00:00:13 v #15 > The last full restore is still up to > date. Nothing left to do. -> │ 00:00:12 v #16 > Total time taken: 0 milliseconds -> │ 00:00:13 v #17 > Restored -> C:\home\git\polyglot\target\Builder\test1\test1.fsproj (in 323 ms). -> │ 00:00:14 v #18 > test1 -> -> C:\home\git\polyglot\target\Builder\test1\bin\Release\net9.0\win-x64\test1.dll -> │ 00:00:15 v #19 > test1 -> -> C:\home\git\polyglot\target\Builder\test1\dist\ -> │ 00:00:15 v #20 > -> │ 00:00:15 v #21 > Workload updates are available. Run +> │ 00:00:13 v #16 > Total time taken: 0 milliseconds +> │ 00:00:14 v #17 > Restored +> c:\home\git\polyglot\target\Builder\test1\test1.fsproj (in 344 ms). +> │ 00:00:15 v #18 > test1 -> +> c:\home\git\polyglot\target\Builder\test1\bin\Release\net9.0\win-x64\test1.dll +> │ 00:00:16 v #19 > test1 -> +> c:\home\git\polyglot\target\Builder\test1\dist\ +> │ 00:00:16 v #20 > +> │ 00:00:16 v #21 > Workload updates are available. Run > `dotnet workload list` for more information. -> │ 00:00:15 d #22 runtime.execute_with_options_async / { +> │ 00:00:16 d #22 runtime.execute_with_options_async / { > exit_code = 0; output_length = 509 } > │ Some 0 > │ @@ -8911,32 +8911,32 @@ > |> Async.runWithTimeout 180000 > |> _assertEqual (Some 2) > -> ── [ 10.04s - stdout ] ───────────────────────────────────────────────────────── +> ── [ 8.46s - stdout ] ────────────────────────────────────────────────────────── > │ 00:00:12 d #3 persistCodeProject / packages: [] / > modules: [] / name: test2 / hash: / code.Length: 15 > │ 00:00:12 d #4 buildProject / fullPath: -> C:\home\git\polyglot\target\Builder\test2\test2.fsproj -> │ 00:00:15 d #23 runtime.execute_with_options_async / { +> c:\home\git\polyglot\target\Builder\test2\test2.fsproj +> │ 00:00:16 d #23 runtime.execute_with_options_async / { > file_name = dotnet; arguments = US5_0 > │ "publish -> "C:\home\git\polyglot\target/Builder\test2\test2.fsproj" --configuration Release +> "c:/home/git\polyglot\target/Builder\test2\test2.fsproj" --configuration Release > --output "dist" --runtime linux-x64"; options = { command = dotnet publish -> "C:\home\git\polyglot\target/Builder\test2\test2.fsproj" --configuration Release +> "c:/home/git\polyglot\target/Builder\test2\test2.fsproj" --configuration Release > --output "dist" --runtime linux-x64; cancellation_token = None; > environment_variables = [||]; on_line = None; stdin = None; trace = true; -> working_directory = Some "C:\home\git\polyglot\target\Builder\test2" } } -> │ 00:00:16 v #24 > Determining projects to restore... +> working_directory = Some "c:\home\git\polyglot\target\Builder\test2" } } +> │ 00:00:17 v #24 > Determining projects to restore... > │ 00:00:17 v #25 > Paket version > 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0 > │ 00:00:17 v #26 > The last full restore is still up to > date. Nothing left to do. > │ 00:00:17 v #27 > Total time taken: 0 milliseconds -> │ 00:00:17 v #28 > Restored -> C:\home\git\polyglot\target\Builder\test2\test2.fsproj (in 418 ms). +> │ 00:00:18 v #28 > Restored +> c:\home\git\polyglot\target\Builder\test2\test2.fsproj (in 322 ms). > │ 00:00:20 v #29 > -> C:\home\git\polyglot\target\Builder\test2\test2.fs(1,5): error FS0039: The value +> c:\home\git\polyglot\target\Builder\test2\test2.fs(1,5): error FS0039: The value > or constructor 'a' is not defined. -> [C:\home\git\polyglot\target\Builder\test2\test2.fsproj] +> [c:\home\git\polyglot\target\Builder\test2\test2.fsproj] > │ 00:00:20 v #30 > > │ 00:00:20 v #31 > Workload updates are available. Run > `dotnet workload list` for more information. @@ -8945,12 +8945,12 @@ > │ 00:00:20 d #33 runtime.execute_with_options_async / { > file_name = dotnet; arguments = US5_0 > │ "publish -> "C:\home\git\polyglot\target/Builder\test2\test2.fsproj" --configuration Release +> "c:/home/git\polyglot\target/Builder\test2\test2.fsproj" --configuration Release > --output "dist" --runtime win-x64"; options = { command = dotnet publish -> "C:\home\git\polyglot\target/Builder\test2\test2.fsproj" --configuration Release +> "c:/home/git\polyglot\target/Builder\test2\test2.fsproj" --configuration Release > --output "dist" --runtime win-x64; cancellation_token = None; > environment_variables = [||]; on_line = None; stdin = None; trace = true; -> working_directory = Some "C:\home\git\polyglot\target\Builder\test2" } } +> working_directory = Some "c:\home\git\polyglot\target\Builder\test2" } } > │ 00:00:21 v #34 > Determining projects to restore... > │ 00:00:21 v #35 > Paket version > 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0 @@ -8958,17 +8958,17 @@ > date. Nothing left to do. > │ 00:00:21 v #37 > Total time taken: 0 milliseconds > │ 00:00:22 v #38 > Restored -> C:\home\git\polyglot\target\Builder\test2\test2.fsproj (in 406 ms). -> │ 00:00:25 v #39 > -> C:\home\git\polyglot\target\Builder\test2\test2.fs(1,5): error FS0039: The value +> c:\home\git\polyglot\target\Builder\test2\test2.fsproj (in 345 ms). +> │ 00:00:24 v #39 > +> c:\home\git\polyglot\target\Builder\test2\test2.fs(1,5): error FS0039: The value > or constructor 'a' is not defined. -> [C:\home\git\polyglot\target\Builder\test2\test2.fsproj] -> │ 00:00:25 v #40 > -> │ 00:00:25 v #41 > Workload updates are available. Run +> [c:\home\git\polyglot\target\Builder\test2\test2.fsproj] +> │ 00:00:24 v #40 > +> │ 00:00:24 v #41 > Workload updates are available. Run > `dotnet workload list` for more information. -> │ 00:00:25 d #42 runtime.execute_with_options_async / { +> │ 00:00:24 d #42 runtime.execute_with_options_async / { > exit_code = 1; output_length = 533 } -> │ 00:00:22 c #5 buildCode / code: 1 + a |> ignore / +> │ 00:00:20 c #5 buildCode / code: 1 + a |> ignore / > fsprojText: <Project Sdk="Microsoft.NET.Sdk"> > │ <PropertyGroup> > │ <TargetFramework>net9.0</TargetFramework> @@ -9007,11 +9007,11 @@ > │ <ItemGroup> > │ > │ <Compile -> Include="C:\home\git\polyglot\target\Builder\test2\test2.fs" /> +> Include="c:\home\git\polyglot\target\Builder\test2\test2.fs" /> > │ </ItemGroup> > │ > │ <Import -> Project="C:\home\git\polyglot/.paket/Paket.Restore.targets" /> +> Project="c:/home/git\polyglot/.paket/Paket.Restore.targets" /> > │ </Project> > │ > │ Some 2 @@ -9090,7 +9090,7 @@ > > Argu.ArgumentParser.Create<Arguments>().PrintUsage () > -> ── [ 114.90ms - return value ] ───────────────────────────────────────────────── +> ── [ 111.63ms - return value ] ───────────────────────────────────────────────── > │ "USAGE: dotnet-repl [--help] [--packages [<packages>...]] > │ [--modules [<modules>...]] [--runtime > <runtime>] @@ -9163,7 +9163,7 @@ > | [[||]] -> 0 > | args -> if main args = 0 then 0 else failwith "main failed" > -> ── [ 27.60s - return value ] ─────────────────────────────────────────────────── +> ── [ 30.92s - return value ] ─────────────────────────────────────────────────── > │ <div class="dni-plaintext"><pre>0 > │ </pre></div><style> > │ .dni-code-hint { @@ -9198,86 +9198,87 @@ > │ } > │ </style> > -> ── [ 27.60s - stdout ] ───────────────────────────────────────────────────────── -> │ 00:00:23 d #6 persistCodeProject / packages: [Argu; +> ── [ 30.92s - stdout ] ───────────────────────────────────────────────────────── +> │ 00:00:21 d #6 persistCodeProject / packages: [Argu; > FSharp.Control.AsyncSeq; System.Reactive.Linq] / modules: -> [lib/spiral/common.fsx; lib/spiral/sm.fsx; lib/spiral/crypto.fsx; ... ] / name: -> Builder / hash: / code.Length: 8210 -> │ 00:00:23 d #7 buildProject / fullPath: -> C:\home\git\polyglot\target\Builder\Builder\Builder.fsproj -> │ 00:00:26 d #43 runtime.execute_with_options_async / { +> [deps/spiral/lib/spiral/common.fsx; deps/spiral/lib/spiral/sm.fsx; +> deps/spiral/lib/spiral/crypto.fsx; ... ] / name: Builder / hash: / code.Length: +> 8210 +> │ 00:00:21 d #7 buildProject / fullPath: +> c:\home\git\polyglot\target\Builder\Builder\Builder.fsproj +> │ 00:00:25 d #43 runtime.execute_with_options_async / { > file_name = dotnet; arguments = US5_0 > │ "publish -> "C:\home\git\polyglot\target/Builder\Builder\Builder.fsproj" --configuration +> "c:/home/git\polyglot\target/Builder\Builder\Builder.fsproj" --configuration > Release --output "C:\home\git\polyglot\apps\builder\dist" --runtime linux-x64"; > options = { command = dotnet publish -> "C:\home\git\polyglot\target/Builder\Builder\Builder.fsproj" --configuration +> "c:/home/git\polyglot\target/Builder\Builder\Builder.fsproj" --configuration > Release --output "C:\home\git\polyglot\apps\builder\dist" --runtime linux-x64; > cancellation_token = None; environment_variables = [||]; on_line = None; stdin = > None; trace = true; working_directory = Some -> "C:\home\git\polyglot\target\Builder\Builder" } } -> │ 00:00:27 v #44 > Determining projects to restore... -> │ 00:00:27 v #45 > Paket version +> "c:\home\git\polyglot\target\Builder\Builder" } } +> │ 00:00:26 v #44 > Determining projects to restore... +> │ 00:00:26 v #45 > Paket version > 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0 -> │ 00:00:27 v #46 > The last full restore is still up to +> │ 00:00:26 v #46 > The last full restore is still up to > date. Nothing left to do. > │ 00:00:27 v #47 > Total time taken: 0 milliseconds -> │ 00:00:28 v #48 > Restored -> C:\home\git\polyglot\target\Builder\Builder\Builder.fsproj (in 357 ms). -> │ 00:00:39 v #49 > Builder -> -> C:\home\git\polyglot\target\Builder\Builder\bin\Release\net9.0\linux-x64\Builder +> │ 00:00:27 v #48 > Restored +> c:\home\git\polyglot\target\Builder\Builder\Builder.fsproj (in 380 ms). +> │ 00:00:40 v #49 > Builder -> +> c:\home\git\polyglot\target\Builder\Builder\bin\Release\net9.0\linux-x64\Builder > .dll -> │ 00:00:40 v #50 > Builder -> +> │ 00:00:41 v #50 > Builder -> > C:\home\git\polyglot\apps\builder\dist\ -> │ 00:00:40 v #51 > -> │ 00:00:40 v #52 > Workload updates are available. Run +> │ 00:00:41 v #51 > +> │ 00:00:41 v #52 > Workload updates are available. Run > `dotnet workload list` for more information. -> │ 00:00:40 d #53 runtime.execute_with_options_async / { +> │ 00:00:41 d #53 runtime.execute_with_options_async / { > exit_code = 0; output_length = 515 } -> │ 00:00:40 d #54 runtime.execute_with_options_async / { +> │ 00:00:41 d #54 runtime.execute_with_options_async / { > file_name = dotnet; arguments = US5_0 > │ "publish -> "C:\home\git\polyglot\target/Builder\Builder\Builder.fsproj" --configuration +> "c:/home/git\polyglot\target/Builder\Builder\Builder.fsproj" --configuration > Release --output "C:\home\git\polyglot\apps\builder\dist" --runtime win-x64"; > options = { command = dotnet publish -> "C:\home\git\polyglot\target/Builder\Builder\Builder.fsproj" --configuration +> "c:/home/git\polyglot\target/Builder\Builder\Builder.fsproj" --configuration > Release --output "C:\home\git\polyglot\apps\builder\dist" --runtime win-x64; > cancellation_token = None; environment_variables = [||]; on_line = None; stdin = > None; trace = true; working_directory = Some -> "C:\home\git\polyglot\target\Builder\Builder" } } +> "c:\home\git\polyglot\target\Builder\Builder" } } > │ 00:00:41 v #55 > Determining projects to restore... -> │ 00:00:41 v #56 > Paket version +> │ 00:00:42 v #56 > Paket version > 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0 -> │ 00:00:41 v #57 > The last full restore is still up to +> │ 00:00:42 v #57 > The last full restore is still up to > date. Nothing left to do. -> │ 00:00:41 v #58 > Total time taken: 0 milliseconds +> │ 00:00:42 v #58 > Total time taken: 0 milliseconds > │ 00:00:42 v #59 > Restored -> C:\home\git\polyglot\target\Builder\Builder\Builder.fsproj (in 356 ms). -> │ 00:00:53 v #60 > Builder -> -> C:\home\git\polyglot\target\Builder\Builder\bin\Release\net9.0\win-x64\Builder.d +> c:\home\git\polyglot\target\Builder\Builder\Builder.fsproj (in 358 ms). +> │ 00:00:55 v #60 > Builder -> +> c:\home\git\polyglot\target\Builder\Builder\bin\Release\net9.0\win-x64\Builder.d > ll -> │ 00:00:54 v #61 > Builder -> +> │ 00:00:56 v #61 > Builder -> > C:\home\git\polyglot\apps\builder\dist\ -> │ 00:00:54 v #62 > -> │ 00:00:54 v #63 > Workload updates are available. Run +> │ 00:00:56 v #62 > +> │ 00:00:56 v #63 > Workload updates are available. Run > `dotnet workload list` for more information. -> │ 00:00:54 d #64 runtime.execute_with_options_async / { +> │ 00:00:56 d #64 runtime.execute_with_options_async / { > exit_code = 0; output_length = 513 } > │ -00:01:06 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 27004 } -00:01:06 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/apps/builder/Builder.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/apps/builder/Builder.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:01:07 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/apps/builder/Builder.dib.ipynb to html -00:01:07 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. -00:01:07 v #7 ! validate(nb) -00:01:08 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 -00:01:08 v #9 ! return _pygments_highlight( -00:01:08 v #10 ! [NbConvertApp] Writing 335807 bytes to c:\home\git\polyglot\apps\builder\Builder.dib.html -00:01:09 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 860 } -00:01:09 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 860 } -00:01:09 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/apps/builder/Builder.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/apps/builder/Builder.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:01:09 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } -00:01:09 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } -00:01:09 d #16 spiral.run / dib / { exit_code = 0; result_length = 27923 } +00:01:10 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 27040 } +00:01:10 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/apps/builder/Builder.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/apps/builder/Builder.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } +00:01:11 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/apps/builder/Builder.dib.ipynb to html +00:01:11 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. +00:01:11 v #7 ! validate(nb) +00:01:12 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 +00:01:12 v #9 ! return _pygments_highlight( +00:01:12 v #10 ! [NbConvertApp] Writing 335843 bytes to c:\home\git\polyglot\apps\builder\Builder.dib.html +00:01:13 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 860 } +00:01:13 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 860 } +00:01:13 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/apps/builder/Builder.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/apps/builder/Builder.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } +00:01:13 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } +00:01:13 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } +00:01:13 d #16 spiral.run / dib / { exit_code = 0; result_length = 27959 } @@ -9291,7 +9292,7 @@
{ pwsh ../deps/spiral/apps/spiral/build.ps1 -SkipFsx 1 } | Invoke-Block
+{ pwsh ../deps/spiral/apps/spiral/build.ps1 -fast 1 -SkipFsx 1 } | Invoke-Block
polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/spiral/apps/spiral +@@ -21051,1997 +19030,1983 @@polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/apps/spiral spiral/apps/spiral/build.ps1 / ScriptDir: C:\home\git\polyglot\deps\spiral\apps\spiral / ResolvedScriptDir: C:\home\git\spiral\apps\spiral -00:00:00 d #1 persistCodeProject / packages: [Fable.Core] / modules: [lib/spiral/common.fsx; lib/spiral/sm.fsx; lib/spiral/crypto.fsx; ... ] / name: spiral / hash: / code.Length: 1412988 -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/target/Builder/spiral -polyglot/lib/spiral/lib.ps1/GetTargetDir / targetDir: C:\home\git\polyglot\target\Builder\spiral -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot -polyglot/lib/spiral/lib.ps1/BuildFable / TargetDir: C:\home\git\polyglot\target\Builder\spiral / ProjectName: spiral / Language: rs / Runtime: / root: C:\home\git\polyglot -Fable 5.0.0-alpha.2: F# to Rust compiler (status: alpha) - -Thanks to the contributor! @intrepion +00:00:00 d #1 persistCodeProject / packages: [Fable.Core] / modules: [deps/spiral/lib/spiral/common.fsx; deps/spiral/lib/spiral/sm.fsx; deps/spiral/lib/spiral/crypto.fsx; ... ] / name: spiral / hash: / code.Length: 1446112 +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/polyglot/target/Builder/spiral +spiral/lib/spiral/lib.ps1/GetTargetDir / targetDir: C:\home\git\polyglot\target\Builder\spiral +polyglot/scripts/core.ps1/ResolveLink #4 / Path: C:\home\git\polyglot\deps\spiral\deps\polyglot\deps\spiral\lib\spiral/../../deps/polyglot / parent_target: / path_target: C:\home\git\polyglot / parent: C:\home\git\polyglot\deps\spiral\deps\polyglot\deps\spiral\lib\spiral\..\..\deps / End: polyglot +spiral/lib/spiral/lib.ps1/BuildFable / TargetDir: C:\home\git\polyglot\target\Builder\spiral / ProjectName: spiral / Language: rs / Runtime: / root: C:\home\git\polyglot +Fable 5.0.0-alpha.5: F# to Rust compiler (status: alpha) + +Thanks to the contributor! @jbeeko Stand with Ukraine! https://standwithukraine.com.ua/ Parsing target\Builder\spiral\spiral.fsproj... Retrieving project options from cache, in case of issues run `dotnet fable clean` or try `--noCache` option. -Project and references (14 source files) parsed in 168ms +Project and references (14 source files) parsed in 177ms Started Fable compilation... -Fable compilation finished in 15434ms - -.\lib\spiral\async_.fsx(250,0): (250,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! -.\lib\spiral\common.fsx(2117,0): (2117,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! -.\lib\spiral\sm.fsx(556,0): (556,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! -.\lib\spiral\threading.fsx(139,0): (139,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! -.\lib\spiral\crypto.fsx(2344,0): (2344,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! -.\lib\spiral\date_time.fsx(2527,0): (2527,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! -.\lib\spiral\platform.fsx(120,0): (120,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! -.\lib\spiral\networking.fsx(4935,0): (4935,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! -.\lib\spiral\trace.fsx(2150,0): (2150,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! -.\lib\spiral\runtime.fsx(7101,0): (7101,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! -.\lib\spiral\file_system.fsx(17438,0): (17438,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/fsharp/Common.rs -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\spiral/target/rs/lib/fsharp/Common.rs / to: C:\home\git\polyglot\lib\fsharp\Common.rs -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/common.rs -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\spiral/target/rs/lib/spiral/common.rs / to: C:\home\git\polyglot\lib\spiral\common.rs -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/date_time.rs -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\spiral/target/rs/lib/spiral/date_time.rs / to: C:\home\git\polyglot\lib\spiral\date_time.rs -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/async_.rs -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\spiral/target/rs/lib/spiral/async_.rs / to: C:\home\git\polyglot\lib\spiral\async_.rs -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/platform.rs -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\spiral/target/rs/lib/spiral/platform.rs / to: C:\home\git\polyglot\lib\spiral\platform.rs -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/runtime.rs -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\spiral/target/rs/lib/spiral/runtime.rs / to: C:\home\git\polyglot\lib\spiral\runtime.rs -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/threading.rs -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\spiral/target/rs/lib/spiral/threading.rs / to: C:\home\git\polyglot\lib\spiral\threading.rs -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/networking.rs -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\spiral/target/rs/lib/spiral/networking.rs / to: C:\home\git\polyglot\lib\spiral\networking.rs -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/file_system.rs -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\spiral/target/rs/lib/spiral/file_system.rs / to: C:\home\git\polyglot\lib\spiral\file_system.rs -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/sm.rs -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\spiral/target/rs/lib/spiral/sm.rs / to: C:\home\git\polyglot\lib\spiral\sm.rs -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/crypto.rs -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\spiral/target/rs/lib/spiral/crypto.rs / to: C:\home\git\polyglot\lib\spiral\crypto.rs -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/trace.rs -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\spiral/target/rs/lib/spiral/trace.rs / to: C:\home\git\polyglot\lib\spiral\trace.rs -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/lib.rs -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\spiral/target/rs/lib/spiral/lib.rs / to: C:\home\git\polyglot\lib\spiral\lib.rs +Fable compilation finished in 17319ms + +.\deps\spiral\lib\spiral\sm.fsx(559,0): (559,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! +.\deps\spiral\lib\spiral\common.fsx(2117,0): (2117,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! +.\deps\spiral\lib\spiral\async_.fsx(250,0): (250,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! +.\deps\spiral\lib\spiral\threading.fsx(139,0): (139,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! +.\deps\spiral\lib\spiral\crypto.fsx(2344,0): (2344,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! +.\deps\spiral\lib\spiral\date_time.fsx(2545,0): (2545,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! +.\deps\spiral\lib\spiral\platform.fsx(120,0): (120,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! +.\deps\spiral\lib\spiral\networking.fsx(4935,0): (4935,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! +.\deps\spiral\lib\spiral\trace.fsx(2150,0): (2150,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! +.\deps\spiral\lib\spiral\runtime.fsx(7101,0): (7101,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! +.\deps\spiral\lib\spiral\file_system.fsx(17933,0): (17933,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/polyglot/target/Builder/spiral/target/rs/deps/spiral/lib/fsharp/Common.rs +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/polyglot/lib/fsharp/Common.rs +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\spiral/target/rs/lib/fsharp/Common.rs / to: C:\home\git\polyglot\lib\fsharp\Common.rs +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/common.rs +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\spiral/target/rs/deps/spiral/lib/spiral/common.rs / to: C:\home\git\spiral\lib\spiral\common.rs +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/date_time.rs +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\spiral/target/rs/deps/spiral/lib/spiral/date_time.rs / to: C:\home\git\spiral\lib\spiral\date_time.rs +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/async_.rs +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\spiral/target/rs/deps/spiral/lib/spiral/async_.rs / to: C:\home\git\spiral\lib\spiral\async_.rs +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/platform.rs +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\spiral/target/rs/deps/spiral/lib/spiral/platform.rs / to: C:\home\git\spiral\lib\spiral\platform.rs +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/runtime.rs +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\spiral/target/rs/deps/spiral/lib/spiral/runtime.rs / to: C:\home\git\spiral\lib\spiral\runtime.rs +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/threading.rs +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\spiral/target/rs/deps/spiral/lib/spiral/threading.rs / to: C:\home\git\spiral\lib\spiral\threading.rs +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/networking.rs +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\spiral/target/rs/deps/spiral/lib/spiral/networking.rs / to: C:\home\git\spiral\lib\spiral\networking.rs +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/file_system.rs +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\spiral/target/rs/deps/spiral/lib/spiral/file_system.rs / to: C:\home\git\spiral\lib\spiral\file_system.rs +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/sm.rs +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\spiral/target/rs/deps/spiral/lib/spiral/sm.rs / to: C:\home\git\spiral\lib\spiral\sm.rs +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/crypto.rs +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\spiral/target/rs/deps/spiral/lib/spiral/crypto.rs / to: C:\home\git\spiral\lib\spiral\crypto.rs +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/trace.rs +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\spiral/target/rs/deps/spiral/lib/spiral/trace.rs / to: C:\home\git\spiral\lib\spiral\trace.rs +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/lib.rs +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\spiral/target/rs/deps/spiral/lib/spiral/lib.rs / to: C:\home\git\spiral\lib\spiral\lib.rs spiral/apps/spiral/build.ps1 / path: C:\home\git\polyglot\target\Builder\spiral/target/rs/spiral.rs - Compiling fable_library_rust v0.1.0 (C:\home\git\spiral\deps\polyglot\lib\rust\fable\fable_modules\fable-library-rust) - Compiling spiral v0.0.1 (C:\home\git\spiral\apps\spiral) - Finished `release` profile [optimized] target(s) in 23.27s - Running unittests spiral.rs (C:\home\git\spiral\workspace\target\release\deps\spiral-4d3f6cad8b775da2.exe) - -running 1 test -test module_6ff740fe::Spiral::verify_app ... ok - -successes: - -successes: - module_6ff740fe::Spiral::verify_app - -test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s - Compiling fable_library_rust v0.1.0 (C:\home\git\spiral\deps\polyglot\lib\rust\fable\fable_modules\fable-library-rust) Compiling spiral v0.0.1 (C:\home\git\spiral\apps\spiral) error: failed to remove file `C:\home\git\spiral\workspace\target\release\spiral.exe` @@ -9385,7 +9372,7 @@ Access is denied. (os error 5) # Invoke-Block / $retry: 1/1 / $Location: / Get-Location: C:\home\git\spiral\apps\spiral / $OnError: Continue / $exitcode: 101 / $EnvVars: { - "PATH": "C:\\Users\\i574n\\scoop\\apps\\pwsh\\current;C:\\Program Files\\NVIDIA\\CUDNN\\v9.1\\bin;C:\\ProgramData\\scoop\\shims;C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\;C:\\WINDOWS\\System32\\OpenSSH\\;C:\\ProgramData\\chocolatey\\bin;C:\\Program Files\\dotnet\\;C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\;C:\\WINDOWS\\System32\\OpenSSH\\;C:\\Program Files\\Intel\\WiFi\\bin\\;C:\\Program Files\\Common Files\\Intel\\WirelessCommon\\;C:\\Program Files\\Perforce;C:\\Program Files\\Wasmtime\\bin;C:\\Program Files\\Perforce\\;C:\\Program Files\\Microsoft SQL Server\\150\\Tools\\Binn\\;C:\\Program Files (x86)\\Windows Kits\\10\\Windows Performance Toolkit\\;C:\\Users\\i574n\\scoop\\apps\\vscode-insiders\\current\\bin;C:\\Users\\i574n\\scoop\\apps\\elixir\\current\\bin;C:\\Users\\i574n\\scoop\\apps\\openssl\\current\\bin;C:\\Users\\i574n\\scoop\\apps\\vulkan\\current\\Bin;C:\\Users\\i574n\\scoop\\apps\\vulkan\\current\\Tools;C:\\Users\\i574n\\scoop\\apps\\python312\\current\\Scripts;C:\\Users\\i574n\\scoop\\apps\\python312\\current\\.;C:\\Users\\i574n\\scoop\\apps\\dotnet-sdk\\current\\.;C:\\Users\\i574n\\scoop\\apps\\perl\\current\\perl\\site\\bin;C:\\Users\\i574n\\scoop\\apps\\perl\\current\\perl\\bin;C:\\Users\\i574n\\scoop\\apps\\rustup\\current\\.cargo\\bin;C:\\Users\\i574n\\scoop\\apps\\latex\\current\\texmfs\\install\\miktex\\bin\\x64;C:\\Users\\i574n\\scoop\\apps\\dotnet-sdk-preview\\current;C:\\Users\\i574n\\scoop\\apps\\dotnet-sdk\\current;C:\\Users\\i574n\\scoop\\apps\\gsudo\\current;C:\\Users\\i574n\\scoop\\apps\\python\\current;C:\\Users\\i574n\\scoop\\apps\\nircmd\\current;C:\\Users\\i574n\\AppData\\Local\\Microsoft\\WindowsApps;C:\\Users\\i574n/scoop/buckets/mold/home/windows/path;C:\\Users\\i574n/scoop/persist/rustup/.cargo/bin;C:\\Users\\i574n/scoop/apps/nvm/current/nodejs/nodejs;C:\\Users\\i574n/scoop/apps/cygwin/current/root/bin;C:\\Users\\i574n\\AppData\\Local\\Programs\\Microsoft VS Code\\bin;C:\\Users\\i574n\\AppData\\Local\\Microsoft\\WindowsApps;C:\\Users\\i574n\\.bun\\bin;C:\\Users\\i574n\\.dotnet\\tools;C:\\Users\\i574n\\scoop\\shims;C:\\Users\\i574n\\.fly\\bin;C:\\Program Files\\Wasmtime\\bin;C:\\Users\\i574n\\.dotnet\\tools;C:\\Users\\i574n/.cargo/bin;C:\\Users\\i574n/.bun/bin;C:\\Users\\i574n/.cargo/bin;C:\\Users\\i574n/.bun/bin;C:\\Users\\i574n/.cargo/bin;C:\\Users\\i574n/.bun/bin" + "PATH": "C:\\Users\\i574n\\scoop\\apps\\pwsh\\current;C:\\Program Files\\NVIDIA\\CUDNN\\v9.1\\bin;C:\\ProgramData\\scoop\\shims;C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\;C:\\WINDOWS\\System32\\OpenSSH\\;C:\\ProgramData\\chocolatey\\bin;C:\\Program Files\\dotnet\\;C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\;C:\\WINDOWS\\System32\\OpenSSH\\;C:\\Program Files\\Intel\\WiFi\\bin\\;C:\\Program Files\\Common Files\\Intel\\WirelessCommon\\;C:\\Program Files\\Perforce;C:\\Program Files\\Wasmtime\\bin;C:\\Program Files\\Perforce\\;C:\\Program Files\\Microsoft SQL Server\\150\\Tools\\Binn\\;C:\\Program Files (x86)\\Windows Kits\\10\\Windows Performance Toolkit\\;C:\\Users\\i574n\\scoop\\apps\\vscode-insiders\\current\\bin;C:\\Users\\i574n\\scoop\\apps\\nvm\\current\\.;C:\\Users\\i574n\\scoop\\apps\\nvm\\current\\nodejs\\nodejs;C:\\Users\\i574n\\scoop\\apps\\elixir\\current\\bin;C:\\Users\\i574n\\scoop\\apps\\openssl\\current\\bin;C:\\Users\\i574n\\scoop\\apps\\vulkan\\current\\Bin;C:\\Users\\i574n\\scoop\\apps\\vulkan\\current\\Tools;C:\\Users\\i574n\\scoop\\apps\\python312\\current\\Scripts;C:\\Users\\i574n\\scoop\\apps\\python312\\current\\.;C:\\Users\\i574n\\scoop\\apps\\dotnet-sdk\\current\\.;C:\\Users\\i574n\\scoop\\apps\\perl\\current\\perl\\site\\bin;C:\\Users\\i574n\\scoop\\apps\\perl\\current\\perl\\bin;C:\\Users\\i574n\\scoop\\apps\\rustup\\current\\.cargo\\bin;C:\\Users\\i574n\\scoop\\apps\\latex\\current\\texmfs\\install\\miktex\\bin\\x64;C:\\Users\\i574n\\scoop\\apps\\dotnet-sdk-preview\\current;C:\\Users\\i574n\\scoop\\apps\\dotnet-sdk\\current;C:\\Users\\i574n\\scoop\\apps\\gsudo\\current;C:\\Users\\i574n\\scoop\\apps\\python\\current;C:\\Users\\i574n\\scoop\\apps\\nircmd\\current;C:\\Users\\i574n\\AppData\\Local\\Microsoft\\WindowsApps;C:\\Users\\i574n/scoop/buckets/mold/home/windows/path;C:\\Users\\i574n/scoop/persist/rustup/.cargo/bin;C:\\Users\\i574n/scoop/apps/nvm/current/nodejs/nodejs;C:\\Users\\i574n/scoop/apps/cygwin/current/root/bin;C:\\Users\\i574n\\AppData\\Local\\Programs\\Microsoft VS Code\\bin;C:\\Users\\i574n\\AppData\\Local\\Microsoft\\WindowsApps;C:\\Users\\i574n\\.bun\\bin;C:\\Users\\i574n\\.dotnet\\tools;C:\\Users\\i574n\\scoop\\shims;C:\\Users\\i574n\\.fly\\bin;C:\\Program Files\\Wasmtime\\bin;C:\\Users\\i574n\\.dotnet\\tools;test;C:\\Users\\i574n\\go\\bin;C:\\Users\\i574n/.cargo/bin;C:\\Users\\i574n/.bun/bin;C:\\Users\\i574n/.cargo/bin;C:\\Users\\i574n/.bun/bin;C:\\Users\\i574n/.cargo/bin;C:\\Users\\i574n/.bun/bin" } / $Error: '' / $ScriptBlock: 'cargo build --release' @@ -9443,7 +9430,7 @@ > ── pwsh ──────────────────────────────────────────────────────────────────────── > ls ~/.nuget/packages/argu > -> ── [ 491.03ms - stdout ] ─────────────────────────────────────────────────────── +> ── [ 545.21ms - stdout ] ─────────────────────────────────────────────────────── > │ > │ Directory: C:\Users\i574n\.nuget\packages\argu > │ @@ -9508,7 +9495,7 @@ > $"a{nl}#!magic{nl}b{nl}" > ) > -> ── [ 58.74ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 67.36ms - stdout ] ──────────────────────────────────────────────────────── > │ "a > │ #!magic > │ b @@ -9531,7 +9518,7 @@ > Success ("#!", (), Position ("", 2, 1, 3)) > ) > -> ── [ 55.13ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 39.10ms - stdout ] ──────────────────────────────────────────────────────── > │ Success: "#!" > │ > │ @@ -9553,7 +9540,7 @@ > ) > ) > -> ── [ 37.90ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 46.34ms - stdout ] ──────────────────────────────────────────────────────── > │ Failure: > │ Error in Ln: 1 Col: 1 > │ ##!magic @@ -9583,7 +9570,7 @@ > Success ("magic", (), Position ("", 8, 2, 1)) > ) > -> ── [ 26.42ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 25.38ms - stdout ] ──────────────────────────────────────────────────────── > │ Success: "magic" > │ > │ @@ -9607,7 +9594,7 @@ > ) > ) > -> ── [ 27.47ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 26.50ms - stdout ] ──────────────────────────────────────────────────────── > │ Failure: > │ Error in Ln: 1 Col: 1 > │ #!magic @@ -9646,7 +9633,7 @@ > a", (), Position ("", 14, 7, 1)) > ) > -> ── [ 25.37ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 25.65ms - stdout ] ──────────────────────────────────────────────────────── > │ Success: "#!magic > │ > │ @@ -9744,7 +9731,7 @@ > ) > ) > -> ── [ 46.82ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 47.62ms - stdout ] ──────────────────────────────────────────────────────── > │ Success: { magic = Magic "magic" > │ content = "a" } > │ @@ -9784,7 +9771,7 @@ > ) > ) > -> ── [ 45.14ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 44.77ms - stdout ] ──────────────────────────────────────────────────────── > │ Success: [{ magic = Magic "magic1" > │ content = "a" }; { magic = Magic "magic2" > │ content = "b" }] @@ -9867,7 +9854,7 @@ > /// > /// c" > -> ── [ 63.37ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 54.00ms - stdout ] ──────────────────────────────────────────────────────── > │ "/// a > │ /// > │ /// b @@ -9954,7 +9941,7 @@ > let a = 3 > " > -> ── [ 77.49ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 77.64ms - stdout ] ──────────────────────────────────────────────────────── > │ "/// a > │ /// > │ /// b @@ -10247,7 +10234,7 @@ > }} > """ > -> ── [ 240.08ms - stdout ] ─────────────────────────────────────────────────────── +> ── [ 187.00ms - stdout ] ─────────────────────────────────────────────────────── > │ "#if !INTERACTIVE > │ namespace TestNamespace > │ #endif @@ -10319,7 +10306,7 @@ > ### TextInput > " > -> ── [ 188.85ms - stdout ] ─────────────────────────────────────────────────────── +> ── [ 175.73ms - stdout ] ─────────────────────────────────────────────────────── > │ "# TestModule (TestNamespace) > │ > │ ## ParserLibrary @@ -10345,7 +10332,7 @@ > /// ### TextInput > " > -> ── [ 191.14ms - stdout ] ─────────────────────────────────────────────────────── +> ── [ 165.14ms - stdout ] ─────────────────────────────────────────────────────── > │ "/// # TestModule (TestNamespace) > │ > │ /// ## ParserLibrary @@ -10372,7 +10359,7 @@ > /// ### TextInput > " > -> ── [ 198.65ms - stdout ] ─────────────────────────────────────────────────────── +> ── [ 170.48ms - stdout ] ─────────────────────────────────────────────────────── > │ "/// # TestModule (TestNamespace) > │ > │ /// ## ParserLibrary @@ -10435,7 +10422,7 @@ > > Argu.ArgumentParser.Create<Arguments>().PrintUsage () > -> ── [ 125.60ms - return value ] ───────────────────────────────────────────────── +> ── [ 115.54ms - return value ] ───────────────────────────────────────────────── > │ "USAGE: dotnet-repl [--help] <file> <fs|md|spi|spir> > │ > │ FILE: @@ -10484,7 +10471,7 @@ > | [[||]] -> 0 > | args -> if main args = 0 then 0 else failwith "main failed" > -> ── [ 172.30ms - return value ] ───────────────────────────────────────────────── +> ── [ 156.34ms - return value ] ───────────────────────────────────────────────── > │ <div class="dni-plaintext"><pre>0 > │ </pre></div><style> > │ .dni-code-hint { @@ -10519,52 +10506,52 @@ > │ } > │ </style> > -> ── [ 173.08ms - stdout ] ─────────────────────────────────────────────────────── -> │ 00:00:07 d #1 writeDibCode / output: Fs / path: +> ── [ 157.08ms - stdout ] ─────────────────────────────────────────────────────── +> │ 00:00:06 d #1 writeDibCode / output: Fs / path: > DibParser.dib -> │ 00:00:07 d #2 parseDibCode / output: Fs / file: +> │ 00:00:06 d #2 parseDibCode / output: Fs / file: > DibParser.dib > │ -00:00:23 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 29954 } -00:00:23 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/apps/parser/DibParser.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/apps/parser/DibParser.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:00:24 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/apps/parser/DibParser.dib.ipynb to html -00:00:24 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. -00:00:24 v #7 ! validate(nb) -00:00:25 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 -00:00:25 v #9 ! return _pygments_highlight( -00:00:26 v #10 ! [NbConvertApp] Writing 378895 bytes to c:\home\git\polyglot\apps\parser\DibParser.dib.html -00:00:26 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 862 } -00:00:26 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 862 } -00:00:26 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/apps/parser/DibParser.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/apps/parser/DibParser.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:00:26 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } -00:00:26 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } -00:00:26 d #16 spiral.run / dib / { exit_code = 0; result_length = 30875 } -00:00:00 d #1 persistCodeProject / packages: [Argu; FParsec; FSharp.Control.AsyncSeq; ... ] / modules: [lib/spiral/common.fsx; lib/spiral/sm.fsx; lib/spiral/crypto.fsx; ... ] / name: DibParser / hash: / code.Length: 10861 -00:00:00 d #2 buildProject / fullPath: C:\home\git\polyglot\target\Builder\DibParser\DibParser.fsproj +00:00:24 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 29954 } +00:00:24 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/apps/parser/DibParser.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/apps/parser/DibParser.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } +00:00:26 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/apps/parser/DibParser.dib.ipynb to html +00:00:26 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. +00:00:26 v #7 ! validate(nb) +00:00:26 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 +00:00:26 v #9 ! return _pygments_highlight( +00:00:27 v #10 ! [NbConvertApp] Writing 378895 bytes to c:\home\git\polyglot\apps\parser\DibParser.dib.html +00:00:27 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 862 } +00:00:27 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 862 } +00:00:27 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/apps/parser/DibParser.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/apps/parser/DibParser.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } +00:00:28 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } +00:00:28 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } +00:00:28 d #16 spiral.run / dib / { exit_code = 0; result_length = 30875 } +00:00:00 d #1 persistCodeProject / packages: [Argu; FParsec; FSharp.Control.AsyncSeq; ... ] / modules: [deps/spiral/lib/spiral/common.fsx; deps/spiral/lib/spiral/sm.fsx; deps/spiral/lib/spiral/crypto.fsx; ... ] / name: DibParser / hash: / code.Length: 10861 +00:00:00 d #2 buildProject / fullPath: c:\home\git\polyglot\target\Builder\DibParser\DibParser.fsproj 00:00:00 d #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0 - "publish "C:\home\git\polyglot\target/Builder\DibParser\DibParser.fsproj" --configuration Release --output "C:\home\git\polyglot\apps\parser\dist" --runtime linux-x64"; options = { command = dotnet publish "C:\home\git\polyglot\target/Builder\DibParser\DibParser.fsproj" --configuration Release --output "C:\home\git\polyglot\apps\parser\dist" --runtime linux-x64; cancellation_token = None; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = Some "C:\home\git\polyglot\target\Builder\DibParser" } } + "publish "c:/home/git\polyglot\target/Builder\DibParser\DibParser.fsproj" --configuration Release --output "C:\home\git\polyglot\apps\parser\dist" --runtime linux-x64"; options = { command = dotnet publish "c:/home/git\polyglot\target/Builder\DibParser\DibParser.fsproj" --configuration Release --output "C:\home\git\polyglot\apps\parser\dist" --runtime linux-x64; cancellation_token = None; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = Some "c:\home\git\polyglot\target\Builder\DibParser" } } 00:00:01 v #2 > Determining projects to restore... 00:00:01 v #3 > Paket version 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0 00:00:01 v #4 > The last full restore is still up to date. Nothing left to do. 00:00:01 v #5 > Total time taken: 0 milliseconds -00:00:02 v #6 > Restored C:\home\git\polyglot\target\Builder\DibParser\DibParser.fsproj (in 372 ms). -00:00:14 v #7 > DibParser -> C:\home\git\polyglot\target\Builder\DibParser\bin\Release\net9.0\linux-x64\DibParser.dll -00:00:15 v #8 > DibParser -> C:\home\git\polyglot\apps\parser\dist\ -00:00:15 v #9 > -00:00:15 v #10 > Workload updates are available. Run `dotnet workload list` for more information. -00:00:15 d #11 runtime.execute_with_options_async / { exit_code = 0; output_length = 526 } -00:00:15 d #12 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0 - "publish "C:\home\git\polyglot\target/Builder\DibParser\DibParser.fsproj" --configuration Release --output "C:\home\git\polyglot\apps\parser\dist" --runtime win-x64"; options = { command = dotnet publish "C:\home\git\polyglot\target/Builder\DibParser\DibParser.fsproj" --configuration Release --output "C:\home\git\polyglot\apps\parser\dist" --runtime win-x64; cancellation_token = None; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = Some "C:\home\git\polyglot\target\Builder\DibParser" } } +00:00:02 v #6 > Restored c:\home\git\polyglot\target\Builder\DibParser\DibParser.fsproj (in 447 ms). +00:00:15 v #7 > DibParser -> c:\home\git\polyglot\target\Builder\DibParser\bin\Release\net9.0\linux-x64\DibParser.dll +00:00:16 v #8 > DibParser -> C:\home\git\polyglot\apps\parser\dist\ +00:00:16 v #9 > +00:00:16 v #10 > Workload updates are available. Run `dotnet workload list` for more information. +00:00:16 d #11 runtime.execute_with_options_async / { exit_code = 0; output_length = 526 } +00:00:16 d #12 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0 + "publish "c:/home/git\polyglot\target/Builder\DibParser\DibParser.fsproj" --configuration Release --output "C:\home\git\polyglot\apps\parser\dist" --runtime win-x64"; options = { command = dotnet publish "c:/home/git\polyglot\target/Builder\DibParser\DibParser.fsproj" --configuration Release --output "C:\home\git\polyglot\apps\parser\dist" --runtime win-x64; cancellation_token = None; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = Some "c:\home\git\polyglot\target\Builder\DibParser" } } 00:00:16 v #13 > Determining projects to restore... -00:00:16 v #14 > Paket version 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0 -00:00:16 v #15 > The last full restore is still up to date. Nothing left to do. -00:00:16 v #16 > Total time taken: 0 milliseconds -00:00:17 v #17 > Restored C:\home\git\polyglot\target\Builder\DibParser\DibParser.fsproj (in 358 ms). -00:00:29 v #18 > DibParser -> C:\home\git\polyglot\target\Builder\DibParser\bin\Release\net9.0\win-x64\DibParser.dll -00:00:30 v #19 > DibParser -> C:\home\git\polyglot\apps\parser\dist\ -00:00:30 v #20 > -00:00:30 v #21 > Workload updates are available. Run `dotnet workload list` for more information. -00:00:30 d #22 runtime.execute_with_options_async / { exit_code = 0; output_length = 524 } +00:00:17 v #14 > Paket version 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0 +00:00:17 v #15 > The last full restore is still up to date. Nothing left to do. +00:00:17 v #16 > Total time taken: 0 milliseconds +00:00:17 v #17 > Restored c:\home\git\polyglot\target\Builder\DibParser\DibParser.fsproj (in 382 ms). +00:00:30 v #18 > DibParser -> c:\home\git\polyglot\target\Builder\DibParser\bin\Release\net9.0\win-x64\DibParser.dll +00:00:31 v #19 > DibParser -> C:\home\git\polyglot\apps\parser\dist\ +00:00:31 v #20 > +00:00:31 v #21 > Workload updates are available. Run `dotnet workload list` for more information. +00:00:31 d #22 runtime.execute_with_options_async / { exit_code = 0; output_length = 524 } 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "JsonParser.dib"])) } 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/apps/parser/JsonParser.dib", "--output-path", "c:/home/git/polyglot/apps/parser/JsonParser.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/apps/parser/JsonParser.dib" --output-path "c:/home/git/polyglot/apps/parser/JsonParser.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } > @@ -10663,7 +10650,7 @@ > run jValue "null" > |> parserEqual (Success JNull) > -> ── [ 215.39ms - return value ] ───────────────────────────────────────────────── +> ── [ 224.34ms - return value ] ───────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Success (JNull, { lines = [|"null"|]<br /> > position = { line = 0<br /> column = 4 } @@ -10674,21 +10661,8 @@ > })</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Ite > m1</td><td><details class="dni-treeview"><summary><span > class="dni-code-hint"><code>JNull</code></span></summary><div><table><thead><tr> -> </tr></thead><tbody><tr><td>IsJString</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJNumber</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJBool</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJNull</td><td><div -> class="dni-plaintext"><pre>true -> │ </pre></div></td></tr><tr><td>IsJObject</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJArray</td><td><div -> class="dni-plaintext"><pre>false -> │ -> </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t -> d><td><details class="dni-treeview"><summary><span class="dni-code-hint"><code>{ +> </tr></thead><tbody></tbody></table></div></details></td></tr><tr><td>Item2</td> +> <td><details class="dni-treeview"><summary><span class="dni-code-hint"><code>{ > lines = [|"null"|]<br /> position = { line = 0<br /> > column = 4 } > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line @@ -10702,11 +10676,8 @@ > class="dni-plaintext"><pre>4 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> -> </div></details></td></tr></tbody></table></div></details></td></tr><tr><td>IsSu -> ccess</td><td><div class="dni-plaintext"><pre>true -> │ </pre></div></td></tr><tr><td>IsFailure</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr></tbody></table></div></details><style> +> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta +> ble></div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; @@ -10739,7 +10710,7 @@ > │ } > │ </style> > -> ── [ 228.31ms - stdout ] ─────────────────────────────────────────────────────── +> ── [ 238.11ms - stdout ] ─────────────────────────────────────────────────────── > │ JNull > │ JNull > │ @@ -10757,7 +10728,7 @@ > ) > ) > -> ── [ 62.09ms - return value ] ────────────────────────────────────────────────── +> ── [ 62.41ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Failure ("null", "Unexpected > 'p'", { currentLine = "nulp"<br /> @@ -10776,11 +10747,8 @@ > │ </pre></div></td></tr><tr><td>column</td><td><div > class="dni-plaintext"><pre>3 > │ -> </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>IsSucces -> s</td><td><div class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsFailure</td><td><div -> class="dni-plaintext"><pre>true -> │ </pre></div></td></tr></tbody></table></div></details><style> +> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> +> </div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; @@ -10813,7 +10781,7 @@ > │ } > │ </style> > -> ── [ 63.59ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 64.00ms - stdout ] ──────────────────────────────────────────────────────── > │ Line:0 Col:3 Error parsing null > │ nulp > │ ^Unexpected 'p' @@ -10850,7 +10818,7 @@ > run jBool "true" > |> parserEqual (Success (JBool true)) > -> ── [ 48.47ms - return value ] ────────────────────────────────────────────────── +> ── [ 60.29ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Success (JBool true, { lines = > [|"true"|]<br /> position = { line = 0<br /> @@ -10864,18 +10832,6 @@ > class="dni-code-hint"><code>JBool > true</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>I > tem</td><td><div class="dni-plaintext"><pre>true -> │ </pre></div></td></tr><tr><td>IsJString</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJNumber</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJBool</td><td><div -> class="dni-plaintext"><pre>true -> │ </pre></div></td></tr><tr><td>IsJNull</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJObject</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJArray</td><td><div -> class="dni-plaintext"><pre>false > │ > </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t > d><td><details class="dni-treeview"><summary><span class="dni-code-hint"><code>{ @@ -10892,11 +10848,8 @@ > class="dni-plaintext"><pre>4 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> -> </div></details></td></tr></tbody></table></div></details></td></tr><tr><td>IsSu -> ccess</td><td><div class="dni-plaintext"><pre>true -> │ </pre></div></td></tr><tr><td>IsFailure</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr></tbody></table></div></details><style> +> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta +> ble></div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; @@ -10929,7 +10882,7 @@ > │ } > │ </style> > -> ── [ 50.50ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 62.08ms - stdout ] ──────────────────────────────────────────────────────── > │ JBool true > │ JBool true > │ @@ -10941,7 +10894,7 @@ > run jBool "false" > |> parserEqual (Success (JBool false)) > -> ── [ 40.41ms - return value ] ────────────────────────────────────────────────── +> ── [ 38.20ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Success (JBool false, { lines = > [|"false"|]<br /> position = { line = 0<br /> @@ -10955,18 +10908,6 @@ > class="dni-code-hint"><code>JBool > false</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td> > Item</td><td><div class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJString</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJNumber</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJBool</td><td><div -> class="dni-plaintext"><pre>true -> │ </pre></div></td></tr><tr><td>IsJNull</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJObject</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJArray</td><td><div -> class="dni-plaintext"><pre>false > │ > </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t > d><td><details class="dni-treeview"><summary><span class="dni-code-hint"><code>{ @@ -10983,11 +10924,8 @@ > class="dni-plaintext"><pre>5 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> -> </div></details></td></tr></tbody></table></div></details></td></tr><tr><td>IsSu -> ccess</td><td><div class="dni-plaintext"><pre>true -> │ </pre></div></td></tr><tr><td>IsFailure</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr></tbody></table></div></details><style> +> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta +> ble></div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; @@ -11020,7 +10958,7 @@ > │ } > │ </style> > -> ── [ 42.47ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 40.16ms - stdout ] ──────────────────────────────────────────────────────── > │ JBool false > │ JBool false > │ @@ -11038,7 +10976,7 @@ > ) > ) > -> ── [ 40.81ms - return value ] ────────────────────────────────────────────────── +> ── [ 35.87ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Failure ("bool", "Unexpected > 't'", { currentLine = "truX"<br /> @@ -11057,11 +10995,8 @@ > │ </pre></div></td></tr><tr><td>column</td><td><div > class="dni-plaintext"><pre>0 > │ -> </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>IsSucces -> s</td><td><div class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsFailure</td><td><div -> class="dni-plaintext"><pre>true -> │ </pre></div></td></tr></tbody></table></div></details><style> +> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> +> </div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; @@ -11094,7 +11029,7 @@ > │ } > │ </style> > -> ── [ 42.26ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 37.43ms - stdout ] ──────────────────────────────────────────────────────── > │ Line:0 Col:0 Error parsing bool > │ truX > │ ^Unexpected 't' @@ -11113,7 +11048,7 @@ > run jUnescapedChar "a" > |> parserEqual (Success 'a') > -> ── [ 53.07ms - return value ] ────────────────────────────────────────────────── +> ── [ 60.09ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Success ('a', { lines = [|"a"|]<br > /> position = { line = 0<br /> column @@ -11138,11 +11073,8 @@ > class="dni-plaintext"><pre>1 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> -> </div></details></td></tr></tbody></table></div></details></td></tr><tr><td>IsSu -> ccess</td><td><div class="dni-plaintext"><pre>true -> │ </pre></div></td></tr><tr><td>IsFailure</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr></tbody></table></div></details><style> +> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta +> ble></div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; @@ -11175,7 +11107,7 @@ > │ } > │ </style> > -> ── [ 54.95ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 62.02ms - stdout ] ──────────────────────────────────────────────────────── > │ 'a' > │ 'a' > │ @@ -11193,7 +11125,7 @@ > ) > ) > -> ── [ 55.43ms - return value ] ────────────────────────────────────────────────── +> ── [ 47.08ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Failure ("char", "Unexpected > '\'", { currentLine = "\"<br /> @@ -11212,11 +11144,8 @@ > │ </pre></div></td></tr><tr><td>column</td><td><div > class="dni-plaintext"><pre>0 > │ -> </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>IsSucces -> s</td><td><div class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsFailure</td><td><div -> class="dni-plaintext"><pre>true -> │ </pre></div></td></tr></tbody></table></div></details><style> +> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> +> </div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; @@ -11249,7 +11178,7 @@ > │ } > │ </style> > -> ── [ 56.86ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 48.46ms - stdout ] ──────────────────────────────────────────────────────── > │ Line:0 Col:0 Error parsing char > │ \ > │ ^Unexpected '\' @@ -11282,7 +11211,7 @@ > run jEscapedChar "\\\\" > |> parserEqual (Success '\\') > -> ── [ 36.38ms - return value ] ────────────────────────────────────────────────── +> ── [ 50.04ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Success ('\\', { lines = > [|"\\"|]<br /> position = { line = 0<br /> @@ -11307,11 +11236,8 @@ > class="dni-plaintext"><pre>2 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> -> </div></details></td></tr></tbody></table></div></details></td></tr><tr><td>IsSu -> ccess</td><td><div class="dni-plaintext"><pre>true -> │ </pre></div></td></tr><tr><td>IsFailure</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr></tbody></table></div></details><style> +> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta +> ble></div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; @@ -11344,7 +11270,7 @@ > │ } > │ </style> > -> ── [ 38.69ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 54.29ms - stdout ] ──────────────────────────────────────────────────────── > │ '\\' > │ '\\' > │ @@ -11356,7 +11282,7 @@ > run jEscapedChar "\\t" > |> parserEqual (Success '\t') > -> ── [ 38.83ms - return value ] ────────────────────────────────────────────────── +> ── [ 48.07ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Success ('\009', { lines = > [|"\t"|]<br /> position = { line = 0<br /> @@ -11381,11 +11307,8 @@ > class="dni-plaintext"><pre>2 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> -> </div></details></td></tr></tbody></table></div></details></td></tr><tr><td>IsSu -> ccess</td><td><div class="dni-plaintext"><pre>true -> │ </pre></div></td></tr><tr><td>IsFailure</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr></tbody></table></div></details><style> +> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta +> ble></div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; @@ -11418,7 +11341,7 @@ > │ } > │ </style> > -> ── [ 40.84ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 50.17ms - stdout ] ──────────────────────────────────────────────────────── > │ '\009' > │ '\009' > │ @@ -11430,7 +11353,7 @@ > run jEscapedChar @"\\" > |> parserEqual (Success '\\') > -> ── [ 41.03ms - return value ] ────────────────────────────────────────────────── +> ── [ 59.60ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Success ('\\', { lines = > [|"\\"|]<br /> position = { line = 0<br /> @@ -11455,11 +11378,8 @@ > class="dni-plaintext"><pre>2 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> -> </div></details></td></tr></tbody></table></div></details></td></tr><tr><td>IsSu -> ccess</td><td><div class="dni-plaintext"><pre>true -> │ </pre></div></td></tr><tr><td>IsFailure</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr></tbody></table></div></details><style> +> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta +> ble></div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; @@ -11492,7 +11412,7 @@ > │ } > │ </style> > -> ── [ 42.72ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 61.75ms - stdout ] ──────────────────────────────────────────────────────── > │ '\\' > │ '\\' > │ @@ -11504,7 +11424,7 @@ > run jEscapedChar @"\n" > |> parserEqual (Success '\n') > -> ── [ 36.50ms - return value ] ────────────────────────────────────────────────── +> ── [ 48.30ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Success ('\010', { lines = [|"<br > />"|]<br /> position = { line = 0<br /> @@ -11530,11 +11450,8 @@ > class="dni-plaintext"><pre>2 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> -> </div></details></td></tr></tbody></table></div></details></td></tr><tr><td>IsSu -> ccess</td><td><div class="dni-plaintext"><pre>true -> │ </pre></div></td></tr><tr><td>IsFailure</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr></tbody></table></div></details><style> +> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta +> ble></div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; @@ -11567,7 +11484,7 @@ > │ } > │ </style> > -> ── [ 38.33ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 50.27ms - stdout ] ──────────────────────────────────────────────────────── > │ '\010' > │ '\010' > │ @@ -11585,7 +11502,7 @@ > ) > ) > -> ── [ 34.43ms - return value ] ────────────────────────────────────────────────── +> ── [ 45.31ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Failure ("escaped char", "Unexpected > 'a'", { currentLine = "a"<br /> @@ -11604,11 +11521,8 @@ > │ </pre></div></td></tr><tr><td>column</td><td><div > class="dni-plaintext"><pre>0 > │ -> </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>IsSucces -> s</td><td><div class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsFailure</td><td><div -> class="dni-plaintext"><pre>true -> │ </pre></div></td></tr></tbody></table></div></details><style> +> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> +> </div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; @@ -11641,7 +11555,7 @@ > │ } > │ </style> > -> ── [ 35.85ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 47.12ms - stdout ] ──────────────────────────────────────────────────────── > │ Line:0 Col:0 Error parsing escaped char > │ a > │ ^Unexpected 'a' @@ -11671,7 +11585,7 @@ > run jUnicodeChar "\\u263A" > |> parserEqual (Success '☺') > -> ── [ 52.37ms - return value ] ────────────────────────────────────────────────── +> ── [ 53.69ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Success ('☺', { lines = > [|"\u263A"|]<br /> position = { line = 0<br /> @@ -11697,11 +11611,8 @@ > class="dni-plaintext"><pre>6 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> -> </div></details></td></tr></tbody></table></div></details></td></tr><tr><td>IsSu -> ccess</td><td><div class="dni-plaintext"><pre>true -> │ </pre></div></td></tr><tr><td>IsFailure</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr></tbody></table></div></details><style> +> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta +> ble></div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; @@ -11734,7 +11645,7 @@ > │ } > │ </style> > -> ── [ 54.08ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 57.36ms - stdout ] ──────────────────────────────────────────────────────── > │ '☺' > │ '☺' > │ @@ -11773,7 +11684,7 @@ > run jString "\"\"" > |> parserEqual (Success (JString "")) > -> ── [ 53.91ms - return value ] ────────────────────────────────────────────────── +> ── [ 61.65ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Success (JString "", { lines = > [|""""|]<br /> position = { line = @@ -11788,21 +11699,9 @@ > class="dni-code-hint"><code>JString > ""</code></span></summary><div><table><thead><tr></tr></thead><tbody>< > tr><td>Item</td><td><div class="dni-plaintext"><pre>"" -> │ </pre></div></td></tr><tr><td>IsJString</td><td><div -> class="dni-plaintext"><pre>true -> │ </pre></div></td></tr><tr><td>IsJNumber</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJBool</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJNull</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJObject</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJArray</td><td><div -> class="dni-plaintext"><pre>false > │ > </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t -> d><td><details class="dni-treeview"><su...span class="dni-code-hint"><code>{ +> d><td><details class="dni-treeview"><summary><span class="dni-code-hint"><code>{ > lines = [|""""|]<br /> position = { line = 0<br /> > column = 2 } > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line @@ -11816,11 +11715,8 @@ > class="dni-plaintext"><pre>2 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> -> </div></details></td></tr></tbody></table></div></details></td></tr><tr><td>IsSu -> ccess</td><td><div class="dni-plaintext"><pre>true -> │ </pre></div></td></tr><tr><td>IsFailure</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr></tbody></table></div></details><style> +> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta +> ble></div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; @@ -11853,7 +11749,7 @@ > │ } > │ </style> > -> ── [ 55.85ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 63.75ms - stdout ] ──────────────────────────────────────────────────────── > │ JString "" > │ JString "" > │ @@ -11865,7 +11761,7 @@ > run jString "\"a\"" > |> parserEqual (Success (JString "a")) > -> ── [ 42.65ms - return value ] ────────────────────────────────────────────────── +> ── [ 47.59ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Success (JString "a", { lines = > [|""a""|]<br /> position = { line = @@ -11880,22 +11776,10 @@ > class="dni-code-hint"><code>JString > "a"</code></span></summary><div><table><thead><tr></tr></thead><tbody> > <tr><td>Item</td><td><div class="dni-plaintext"><pre>"a" -> │ </pre></div></td></tr><tr><td>IsJString</td><td><div -> class="dni-plaintext"><pre>true -> │ </pre></div></td></tr><tr><td>IsJNumber</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJBool</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJNull</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJObject</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJArray</td><td><div -> class="dni-plaintext"><pre>false > │ > </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t -> d><td><details class="dni-treev...an class="dni-code-hint"><code>{ lines = -> [|""a""|]<br /> position = { line = 0<br /> +> d><td><details class="dni-treeview"><summary><span class="dni-code-hint"><code>{ +> lines = [|""a""|]<br /> position = { line = 0<br /> > column = 3 } > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line > s</td><td><div class="dni-plaintext"><pre>[ "a" @@ -11908,11 +11792,8 @@ > class="dni-plaintext"><pre>3 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> -> </div></details></td></tr></tbody></table></div></details></td></tr><tr><td>IsSu -> ccess</td><td><div class="dni-plaintext"><pre>true -> │ </pre></div></td></tr><tr><td>IsFailure</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr></tbody></table></div></details><style> +> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta +> ble></div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; @@ -11945,7 +11826,7 @@ > │ } > │ </style> > -> ── [ 44.68ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 49.85ms - stdout ] ──────────────────────────────────────────────────────── > │ JString "a" > │ JString "a" > │ @@ -11957,7 +11838,7 @@ > run jString "\"ab\"" > |> parserEqual (Success (JString "ab")) > -> ── [ 38.09ms - return value ] ────────────────────────────────────────────────── +> ── [ 53.14ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Success (JString "ab", { lines = > [|""ab""|]<br /> position = { line = @@ -11972,22 +11853,10 @@ > class="dni-code-hint"><code>JString > "ab"</code></span></summary><div><table><thead><tr></tr></thead><tbody > ><tr><td>Item</td><td><div class="dni-plaintext"><pre>"ab" -> │ </pre></div></td></tr><tr><td>IsJString</td><td><div -> class="dni-plaintext"><pre>true -> │ </pre></div></td></tr><tr><td>IsJNumber</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJBool</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJNull</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJObject</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJArray</td><td><div -> class="dni-plaintext"><pre>false > │ > </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t -> d><td><details class="d... class="dni-code-hint"><code>{ lines = -> [|""ab""|]<br /> position = { line = 0<br /> +> d><td><details class="dni-treeview"><summary><span class="dni-code-hint"><code>{ +> lines = [|""ab""|]<br /> position = { line = 0<br /> > column = 4 } > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line > s</td><td><div class="dni-plaintext"><pre>[ "ab" @@ -12000,11 +11869,8 @@ > class="dni-plaintext"><pre>4 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> -> </div></details></td></tr></tbody></table></div></details></td></tr><tr><td>IsSu -> ccess</td><td><div class="dni-plaintext"><pre>true -> │ </pre></div></td></tr><tr><td>IsFailure</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr></tbody></table></div></details><style> +> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta +> ble></div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; @@ -12037,7 +11903,7 @@ > │ } > │ </style> > -> ── [ 40.00ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 55.51ms - stdout ] ──────────────────────────────────────────────────────── > │ JString "ab" > │ JString "ab" > │ @@ -12049,7 +11915,7 @@ > run jString "\"ab\\tde\"" > |> parserEqual (Success (JString "ab\tde")) > -> ── [ 43.25ms - return value ] ────────────────────────────────────────────────── +> ── [ 45.77ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Success (JString "ab de", { lines = > [|""ab\tde""|]<br /> position = { @@ -12064,22 +11930,11 @@ > class="dni-code-hint"><code>JString "ab > de"</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr>< > td>Item</td><td><div class="dni-plaintext"><pre>"ab de" -> │ </pre></div></td></tr><tr><td>IsJString</td><td><div -> class="dni-plaintext"><pre>true -> │ </pre></div></td></tr><tr><td>IsJNumber</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJBool</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJNull</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJObject</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJArray</td><td><div -> class="dni-plaintext"><pre>false > │ -> </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2... -> dni-code-hint"><code>{ lines = [|""ab\tde""|]<br /> -> position = { line = 0<br /> column = 8 } +> </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t +> d><td><details class="dni-treeview"><summary><span class="dni-code-hint"><code>{ +> lines = [|""ab\tde""|]<br /> position = { line = 0<br /> +> column = 8 } > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line > s</td><td><div class="dni-plaintext"><pre>[ "ab\tde" > ]</pre></div></td></tr><tr><td>position</td><td><details @@ -12091,11 +11946,8 @@ > class="dni-plaintext"><pre>8 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> -> </div></details></td></tr></tbody></table></div></details></td></tr><tr><td>IsSu -> ccess</td><td><div class="dni-plaintext"><pre>true -> │ </pre></div></td></tr><tr><td>IsFailure</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr></tbody></table></div></details><style> +> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta +> ble></div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; @@ -12128,7 +11980,7 @@ > │ } > │ </style> > -> ── [ 45.36ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 47.60ms - stdout ] ──────────────────────────────────────────────────────── > │ JString "ab de" > │ JString "ab de" > │ @@ -12140,7 +11992,7 @@ > run jString "\"ab\\u263Ade\"" > |> parserEqual (Success (JString "ab☺de")) > -> ── [ 44.75ms - return value ] ────────────────────────────────────────────────── +> ── [ 46.08ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Success (JString "ab☺de", { lines = > [|""ab\u263Ade""|]<br /> position @@ -12155,21 +12007,10 @@ > class="dni-code-hint"><code>JString > "ab☺de"</code></span></summary><div><table><thead><tr></tr></thead><tb > ody><tr><td>Item</td><td><div class="dni-plaintext"><pre>"ab☺de" -> │ </pre></div></td></tr><tr><td>IsJString</td><td><div -> class="dni-plaintext"><pre>true -> │ </pre></div></td></tr><tr><td>IsJNumber</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJBool</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJNull</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJObject</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJArray</td><td><div -> class="dni-plaintext"><pre>false > │ -> </pre></div></td></tr></tbody></table></div></details></td></tr><tr...nt"><code> -> { lines = [|""ab\u263Ade""|]<br /> position = { line = 0<br +> </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t +> d><td><details class="dni-treeview"><summary><span class="dni-code-hint"><code>{ +> lines = [|""ab\u263Ade""|]<br /> position = { line = 0<br > /> column = 12 } > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line > s</td><td><div class="dni-plaintext"><pre>[ "ab\u263Ade" @@ -12182,11 +12023,8 @@ > class="dni-plaintext"><pre>12 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> -> </div></details></td></tr></tbody></table></div></details></td></tr><tr><td>IsSu -> ccess</td><td><div class="dni-plaintext"><pre>true -> │ </pre></div></td></tr><tr><td>IsFailure</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr></tbody></table></div></details><style> +> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta +> ble></div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; @@ -12219,7 +12057,7 @@ > │ } > │ </style> > -> ── [ 46.85ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 48.20ms - stdout ] ──────────────────────────────────────────────────────── > │ JString "ab☺de" > │ JString "ab☺de" > │ @@ -12302,7 +12140,7 @@ > run jNumber "123" > |> parserEqual (Success (JNumber 123.0)) > -> ── [ 77.56ms - return value ] ────────────────────────────────────────────────── +> ── [ 67.01ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Success (JNumber 123.0, { lines = > [|"123"|]<br /> position = { line = 0<br /> @@ -12316,18 +12154,6 @@ > class="dni-code-hint"><code>JNumber > 123.0</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td> > Item</td><td><div class="dni-plaintext"><pre>123.0 -> │ </pre></div></td></tr><tr><td>IsJString</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJNumber</td><td><div -> class="dni-plaintext"><pre>true -> │ </pre></div></td></tr><tr><td>IsJBool</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJNull</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJObject</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJArray</td><td><div -> class="dni-plaintext"><pre>false > │ > </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t > d><td><details class="dni-treeview"><summary><span class="dni-code-hint"><code>{ @@ -12344,11 +12170,8 @@ > class="dni-plaintext"><pre>3 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> -> </div></details></td></tr></tbody></table></div></details></td></tr><tr><td>IsSu -> ccess</td><td><div class="dni-plaintext"><pre>true -> │ </pre></div></td></tr><tr><td>IsFailure</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr></tbody></table></div></details><style> +> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta +> ble></div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; @@ -12381,7 +12204,7 @@ > │ } > │ </style> > -> ── [ 79.38ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 69.01ms - stdout ] ──────────────────────────────────────────────────────── > │ JNumber 123.0 > │ JNumber 123.0 > │ @@ -12393,7 +12216,7 @@ > run jNumber "-123" > |> parserEqual (Success (JNumber -123.0)) > -> ── [ 41.35ms - return value ] ────────────────────────────────────────────────── +> ── [ 63.24ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Success (JNumber -123.0, { lines = > [|"-123"|]<br /> position = { line = 0<br /> @@ -12407,18 +12230,6 @@ > class="dni-code-hint"><code>JNumber > -123.0</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td > >Item</td><td><div class="dni-plaintext"><pre>-123.0 -> │ </pre></div></td></tr><tr><td>IsJString</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJNumber</td><td><div -> class="dni-plaintext"><pre>true -> │ </pre></div></td></tr><tr><td>IsJBool</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJNull</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJObject</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJArray</td><td><div -> class="dni-plaintext"><pre>false > │ > </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t > d><td><details class="dni-treeview"><summary><span class="dni-code-hint"><code>{ @@ -12435,11 +12246,8 @@ > class="dni-plaintext"><pre>4 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> -> </div></details></td></tr></tbody></table></div></details></td></tr><tr><td>IsSu -> ccess</td><td><div class="dni-plaintext"><pre>true -> │ </pre></div></td></tr><tr><td>IsFailure</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr></tbody></table></div></details><style> +> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta +> ble></div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; @@ -12472,7 +12280,7 @@ > │ } > │ </style> > -> ── [ 43.06ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 65.58ms - stdout ] ──────────────────────────────────────────────────────── > │ JNumber -123.0 > │ JNumber -123.0 > │ @@ -12484,7 +12292,7 @@ > run jNumber "123.4" > |> parserEqual (Success (JNumber 123.4)) > -> ── [ 37.45ms - return value ] ────────────────────────────────────────────────── +> ── [ 59.03ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Success (JNumber 123.4, { lines = > [|"123.4"|]<br /> position = { line = 0<br /> @@ -12498,18 +12306,6 @@ > class="dni-code-hint"><code>JNumber > 123.4</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td> > Item</td><td><div class="dni-plaintext"><pre>123.4 -> │ </pre></div></td></tr><tr><td>IsJString</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJNumber</td><td><div -> class="dni-plaintext"><pre>true -> │ </pre></div></td></tr><tr><td>IsJBool</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJNull</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJObject</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJArray</td><td><div -> class="dni-plaintext"><pre>false > │ > </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t > d><td><details class="dni-treeview"><summary><span class="dni-code-hint"><code>{ @@ -12526,11 +12322,8 @@ > class="dni-plaintext"><pre>5 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> -> </div></details></td></tr></tbody></table></div></details></td></tr><tr><td>IsSu -> ccess</td><td><div class="dni-plaintext"><pre>true -> │ </pre></div></td></tr><tr><td>IsFailure</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr></tbody></table></div></details><style> +> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta +> ble></div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; @@ -12563,7 +12356,7 @@ > │ } > │ </style> > -> ── [ 39.16ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 60.83ms - stdout ] ──────────────────────────────────────────────────────── > │ JNumber 123.4 > │ JNumber 123.4 > │ @@ -12575,7 +12368,7 @@ > run jNumber "-123." > |> parserEqual (Success (JNumber -123.0)) > -> ── [ 41.67ms - return value ] ────────────────────────────────────────────────── +> ── [ 51.42ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Success (JNumber -123.0, { lines = > [|"-123."|]<br /> position = { line = 0<br @@ -12589,18 +12382,6 @@ > class="dni-code-hint"><code>JNumber > -123.0</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td > >Item</td><td><div class="dni-plaintext"><pre>-123.0 -> │ </pre></div></td></tr><tr><td>IsJString</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJNumber</td><td><div -> class="dni-plaintext"><pre>true -> │ </pre></div></td></tr><tr><td>IsJBool</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJNull</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJObject</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJArray</td><td><div -> class="dni-plaintext"><pre>false > │ > </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t > d><td><details class="dni-treeview"><summary><span class="dni-code-hint"><code>{ @@ -12617,11 +12398,8 @@ > class="dni-plaintext"><pre>4 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> -> </div></details></td></tr></tbody></table></div></details></td></tr><tr><td>IsSu -> ccess</td><td><div class="dni-plaintext"><pre>true -> │ </pre></div></td></tr><tr><td>IsFailure</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr></tbody></table></div></details><style> +> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta +> ble></div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; @@ -12654,7 +12432,7 @@ > │ } > │ </style> > -> ── [ 43.55ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 53.41ms - stdout ] ──────────────────────────────────────────────────────── > │ JNumber -123.0 > │ JNumber -123.0 > │ @@ -12666,7 +12444,7 @@ > run jNumber "00.1" > |> parserEqual (Success (JNumber 0.0)) > -> ── [ 44.04ms - return value ] ────────────────────────────────────────────────── +> ── [ 49.55ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Success (JNumber 0.0, { lines = > [|"00.1"|]<br /> position = { line = 0<br /> @@ -12680,18 +12458,6 @@ > class="dni-code-hint"><code>JNumber > 0.0</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>It > em</td><td><div class="dni-plaintext"><pre>0.0 -> │ </pre></div></td></tr><tr><td>IsJString</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJNumber</td><td><div -> class="dni-plaintext"><pre>true -> │ </pre></div></td></tr><tr><td>IsJBool</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJNull</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJObject</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJArray</td><td><div -> class="dni-plaintext"><pre>false > │ > </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t > d><td><details class="dni-treeview"><summary><span class="dni-code-hint"><code>{ @@ -12708,11 +12474,8 @@ > class="dni-plaintext"><pre>1 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> -> </div></details></td></tr></tbody></table></div></details></td></tr><tr><td>IsSu -> ccess</td><td><div class="dni-plaintext"><pre>true -> │ </pre></div></td></tr><tr><td>IsFailure</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr></tbody></table></div></details><style> +> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta +> ble></div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; @@ -12745,7 +12508,7 @@ > │ } > │ </style> > -> ── [ 45.98ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 51.53ms - stdout ] ──────────────────────────────────────────────────────── > │ JNumber 0.0 > │ JNumber 0.0 > │ @@ -12762,7 +12525,7 @@ > run jNumber_ "123" > |> parserEqual (Success (JNumber 123.0)) > -> ── [ 41.55ms - return value ] ────────────────────────────────────────────────── +> ── [ 43.48ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Success (JNumber 123.0, { lines = > [|"123"|]<br /> position = { line = 1<br /> @@ -12776,18 +12539,6 @@ > class="dni-code-hint"><code>JNumber > 123.0</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td> > Item</td><td><div class="dni-plaintext"><pre>123.0 -> │ </pre></div></td></tr><tr><td>IsJString</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJNumber</td><td><div -> class="dni-plaintext"><pre>true -> │ </pre></div></td></tr><tr><td>IsJBool</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJNull</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJObject</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJArray</td><td><div -> class="dni-plaintext"><pre>false > │ > </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t > d><td><details class="dni-treeview"><summary><span class="dni-code-hint"><code>{ @@ -12804,11 +12555,8 @@ > class="dni-plaintext"><pre>0 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> -> </div></details></td></tr></tbody></table></div></details></td></tr><tr><td>IsSu -> ccess</td><td><div class="dni-plaintext"><pre>true -> │ </pre></div></td></tr><tr><td>IsFailure</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr></tbody></table></div></details><style> +> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta +> ble></div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; @@ -12841,7 +12589,7 @@ > │ } > │ </style> > -> ── [ 43.25ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 45.28ms - stdout ] ──────────────────────────────────────────────────────── > │ JNumber 123.0 > │ JNumber 123.0 > │ @@ -12853,7 +12601,7 @@ > run jNumber_ "-123" > |> parserEqual (Success (JNumber -123.0)) > -> ── [ 39.55ms - return value ] ────────────────────────────────────────────────── +> ── [ 46.68ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Success (JNumber -123.0, { lines = > [|"-123"|]<br /> position = { line = 1<br /> @@ -12867,18 +12615,6 @@ > class="dni-code-hint"><code>JNumber > -123.0</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td > >Item</td><td><div class="dni-plaintext"><pre>-123.0 -> │ </pre></div></td></tr><tr><td>IsJString</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJNumber</td><td><div -> class="dni-plaintext"><pre>true -> │ </pre></div></td></tr><tr><td>IsJBool</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJNull</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJObject</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJArray</td><td><div -> class="dni-plaintext"><pre>false > │ > </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t > d><td><details class="dni-treeview"><summary><span class="dni-code-hint"><code>{ @@ -12895,11 +12631,8 @@ > class="dni-plaintext"><pre>0 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> -> </div></details></td></tr></tbody></table></div></details></td></tr><tr><td>IsSu -> ccess</td><td><div class="dni-plaintext"><pre>true -> │ </pre></div></td></tr><tr><td>IsFailure</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr></tbody></table></div></details><style> +> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta +> ble></div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; @@ -12932,7 +12665,7 @@ > │ } > │ </style> > -> ── [ 43.66ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 48.53ms - stdout ] ──────────────────────────────────────────────────────── > │ JNumber -123.0 > │ JNumber -123.0 > │ @@ -12950,7 +12683,7 @@ > ) > ) > -> ── [ 34.98ms - return value ] ────────────────────────────────────────────────── +> ── [ 49.01ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Failure<br /> ("number andThen many1 > whitespace", "Unexpected '.'", { currentLine = @@ -12972,11 +12705,8 @@ > │ </pre></div></td></tr><tr><td>column</td><td><div > class="dni-plaintext"><pre>4 > │ -> </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>IsSucces -> s</td><td><div class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsFailure</td><td><div -> class="dni-plaintext"><pre>true -> │ </pre></div></td></tr></tbody></table></div></details><style> +> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> +> </div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; @@ -13009,7 +12739,7 @@ > │ } > │ </style> > -> ── [ 36.30ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 50.72ms - stdout ] ──────────────────────────────────────────────────────── > │ Line:0 Col:4 Error parsing number andThen many1 whitespace > │ -123. > │ ^Unexpected '.' @@ -13021,7 +12751,7 @@ > run jNumber_ "123.4" > |> parserEqual (Success (JNumber 123.4)) > -> ── [ 44.66ms - return value ] ────────────────────────────────────────────────── +> ── [ 50.96ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Success (JNumber 123.4, { lines = > [|"123.4"|]<br /> position = { line = 1<br /> @@ -13035,18 +12765,6 @@ > class="dni-code-hint"><code>JNumber > 123.4</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td> > Item</td><td><div class="dni-plaintext"><pre>123.4 -> │ </pre></div></td></tr><tr><td>IsJString</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJNumber</td><td><div -> class="dni-plaintext"><pre>true -> │ </pre></div></td></tr><tr><td>IsJBool</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJNull</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJObject</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJArray</td><td><div -> class="dni-plaintext"><pre>false > │ > </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t > d><td><details class="dni-treeview"><summary><span class="dni-code-hint"><code>{ @@ -13063,11 +12781,8 @@ > class="dni-plaintext"><pre>0 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> -> </div></details></td></tr></tbody></table></div></details></td></tr><tr><td>IsSu -> ccess</td><td><div class="dni-plaintext"><pre>true -> │ </pre></div></td></tr><tr><td>IsFailure</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr></tbody></table></div></details><style> +> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta +> ble></div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; @@ -13100,7 +12815,7 @@ > │ } > │ </style> > -> ── [ 46.52ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 52.68ms - stdout ] ──────────────────────────────────────────────────────── > │ JNumber 123.4 > │ JNumber 123.4 > │ @@ -13118,7 +12833,7 @@ > ) > ) > -> ── [ 39.85ms - return value ] ────────────────────────────────────────────────── +> ── [ 40.93ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Failure<br /> ("number andThen many1 > whitespace", "Unexpected '0'", { currentLine = @@ -13140,11 +12855,8 @@ > │ </pre></div></td></tr><tr><td>column</td><td><div > class="dni-plaintext"><pre>1 > │ -> </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>IsSucces -> s</td><td><div class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsFailure</td><td><div -> class="dni-plaintext"><pre>true -> │ </pre></div></td></tr></tbody></table></div></details><style> +> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> +> </div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; @@ -13177,7 +12889,7 @@ > │ } > │ </style> > -> ── [ 41.09ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 42.53ms - stdout ] ──────────────────────────────────────────────────────── > │ Line:0 Col:1 Error parsing number andThen many1 whitespace > │ 00.4 > │ ^Unexpected '0' @@ -13189,7 +12901,7 @@ > run jNumber_ "123e4" > |> parserEqual (Success (JNumber 1230000.0)) > -> ── [ 38.51ms - return value ] ────────────────────────────────────────────────── +> ── [ 53.84ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Success (JNumber 1230000.0, { lines = > [|"123e4"|]<br /> position = { line = @@ -13204,18 +12916,6 @@ > class="dni-code-hint"><code>JNumber > 1230000.0</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr> > <td>Item</td><td><div class="dni-plaintext"><pre>1230000.0 -> │ </pre></div></td></tr><tr><td>IsJString</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJNumber</td><td><div -> class="dni-plaintext"><pre>true -> │ </pre></div></td></tr><tr><td>IsJBool</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJNull</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJObject</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJArray</td><td><div -> class="dni-plaintext"><pre>false > │ > </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t > d><td><details class="dni-treeview"><summary><span class="dni-code-hint"><code>{ @@ -13232,11 +12932,8 @@ > class="dni-plaintext"><pre>0 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> -> </div></details></td></tr></tbody></table></div></details></td></tr><tr><td>IsSu -> ccess</td><td><div class="dni-plaintext"><pre>true -> │ </pre></div></td></tr><tr><td>IsFailure</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr></tbody></table></div></details><style> +> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta +> ble></div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; @@ -13269,7 +12966,7 @@ > │ } > │ </style> > -> ── [ 40.22ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 55.52ms - stdout ] ──────────────────────────────────────────────────────── > │ JNumber 1230000.0 > │ JNumber 1230000.0 > │ @@ -13281,7 +12978,7 @@ > run jNumber_ "123.4e5" > |> parserEqual (Success (JNumber 12340000.0)) > -> ── [ 47.59ms - return value ] ────────────────────────────────────────────────── +> ── [ 53.06ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Success (JNumber 12340000.0, { lines = > [|"123.4e5"|]<br /> position = { line = @@ -13296,18 +12993,6 @@ > class="dni-code-hint"><code>JNumber > 12340000.0</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr > ><td>Item</td><td><div class="dni-plaintext"><pre>12340000.0 -> │ </pre></div></td></tr><tr><td>IsJString</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJNumber</td><td><div -> class="dni-plaintext"><pre>true -> │ </pre></div></td></tr><tr><td>IsJBool</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJNull</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJObject</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJArray</td><td><div -> class="dni-plaintext"><pre>false > │ > </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t > d><td><details class="dni-treeview"><summary><span class="dni-code-hint"><code>{ @@ -13324,11 +13009,8 @@ > class="dni-plaintext"><pre>0 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> -> </div></details></td></tr></tbody></table></div></details></td></tr><tr><td>IsSu -> ccess</td><td><div class="dni-plaintext"><pre>true -> │ </pre></div></td></tr><tr><td>IsFailure</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr></tbody></table></div></details><style> +> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta +> ble></div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; @@ -13361,7 +13043,7 @@ > │ } > │ </style> > -> ── [ 49.52ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 55.02ms - stdout ] ──────────────────────────────────────────────────────── > │ JNumber 12340000.0 > │ JNumber 12340000.0 > │ @@ -13373,7 +13055,7 @@ > run jNumber_ "123.4e-5" > |> parserEqual (Success (JNumber 0.001234)) > -> ── [ 45.37ms - return value ] ────────────────────────────────────────────────── +> ── [ 46.77ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Success (JNumber 0.001234, { lines = > [|"123.4e-5"|]<br /> position = { line = @@ -13388,18 +13070,6 @@ > class="dni-code-hint"><code>JNumber > 0.001234</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr>< > td>Item</td><td><div class="dni-plaintext"><pre>0.001234 -> │ </pre></div></td></tr><tr><td>IsJString</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJNumber</td><td><div -> class="dni-plaintext"><pre>true -> │ </pre></div></td></tr><tr><td>IsJBool</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJNull</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJObject</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJArray</td><td><div -> class="dni-plaintext"><pre>false > │ > </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>Item2</t > d><td><details class="dni-treeview"><summary><span class="dni-code-hint"><code>{ @@ -13416,11 +13086,8 @@ > class="dni-plaintext"><pre>0 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> -> </div></details></td></tr></tbody></table></div></details></td></tr><tr><td>IsSu -> ccess</td><td><div class="dni-plaintext"><pre>true -> │ </pre></div></td></tr><tr><td>IsFailure</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr></tbody></table></div></details><style> +> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta +> ble></div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; @@ -13453,7 +13120,7 @@ > │ } > │ </style> > -> ── [ 47.16ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 48.44ms - stdout ] ──────────────────────────────────────────────────────── > │ JNumber 0.001234 > │ JNumber 0.001234 > │ @@ -13494,7 +13161,7 @@ > run jArray "[[ 1, 2 ]]" > |> parserEqual (Success (JArray [[ JNumber 1.0; JNumber 2.0 ]])) > -> ── [ 91.04ms - return value ] ────────────────────────────────────────────────── +> ── [ 88.16ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Success (JArray [JNumber 1.0; JNumber 2.0], { lines > = [|"[ 1, 2 ]"|]<br /> @@ -13514,15 +13181,18 @@ > class="dni-code-hint"><code>JNumber > 1.0</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>It > em</td><td><div class="dni-plaintext"><pre>1.0 -> │ </pre></div></td></tr><tr><td>IsJString</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJNumber</td><td><div -> class="dni-plaintext"><pre>true -> │ </pre></div></td></tr><tr><td>IsJBool</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJNull</td><td>...ummary><span -> class="dni-code-hint"><code>{ lines = [|"[ 1, 2 ]"|]<br /> position = -> { line = 1<br /> column = 0 } +> │ +> </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>1</td><t +> d><details class="dni-treeview"><summary><span +> class="dni-code-hint"><code>JNumber +> 2.0</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>It +> em</td><td><div class="dni-plaintext"><pre>2.0 +> │ +> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> +> </td></tr></tbody></table></div></details></td></tr><tr><td>Item2</td><td><detai +> ls class="dni-treeview"><summary><span class="dni-code-hint"><code>{ lines = +> [|"[ 1, 2 ]"|]<br /> position = { line = 1<br /> column +> = 0 } > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line > s</td><td><div class="dni-plaintext"><pre>[ [ 1, 2 ] > ]</pre></div></td></tr><tr><td>position</td><td><details @@ -13534,11 +13204,8 @@ > class="dni-plaintext"><pre>0 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> -> </div></details></td></tr></tbody></table></div></details></td></tr><tr><td>IsSu -> ccess</td><td><div class="dni-plaintext"><pre>true -> │ </pre></div></td></tr><tr><td>IsFailure</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr></tbody></table></div></details><style> +> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta +> ble></div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; @@ -13571,7 +13238,7 @@ > │ } > │ </style> > -> ── [ 92.98ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 90.08ms - stdout ] ──────────────────────────────────────────────────────── > │ JArray [JNumber 1.0; JNumber 2.0] > │ JArray [JNumber 1.0; JNumber 2.0] > │ @@ -13589,7 +13256,7 @@ > ) > ) > -> ── [ 43.55ms - return value ] ────────────────────────────────────────────────── +> ── [ 49.64ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Failure ("array", "Unexpected > ','", { currentLine = "[ 1, 2, ]"<br /> @@ -13608,11 +13275,8 @@ > │ </pre></div></td></tr><tr><td>column</td><td><div > class="dni-plaintext"><pre>6 > │ -> </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>IsSucces -> s</td><td><div class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsFailure</td><td><div -> class="dni-plaintext"><pre>true -> │ </pre></div></td></tr></tbody></table></div></details><style> +> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> +> </div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; @@ -13645,7 +13309,7 @@ > │ } > │ </style> > -> ── [ 44.84ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 50.85ms - stdout ] ──────────────────────────────────────────────────────── > │ Line:0 Col:6 Error parsing array > │ [ 1, 2, ] > │ ^Unexpected ',' @@ -13698,7 +13362,7 @@ > ) > ) > -> ── [ 95.05ms - return value ] ────────────────────────────────────────────────── +> ── [ 99.96ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Success<br /> (JObject (map [("a", > JNumber 1.0); ("b", JNumber 2.0)]),<br /> { lines = [|"{ @@ -13721,11 +13385,14 @@ > class="dni-treeview"><summary><span class="dni-code-hint"><code>JNumber > 1.0</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>It > em</td><td><div class="dni-plaintext"><pre>1.0 -> │ </pre></div></td></tr><tr><td>IsJString</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsJNumber</...ot;a":1, -> "b" : 2 }"|]<br /> position = { line = 1<br /> -> column = 0 } +> │ +> </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td><div +> class="dni-plaintext"><pre>"b" +> │ +> </pre></d...le></td></tr></tbody></table></div></details></td></tr><tr><td>Item2 +> </td><td><details class="dni-treeview"><summary><span +> class="dni-code-hint"><code>{ lines = [|"{ "a":1, "b" +> : 2 }"|]<br /> position = { line = 1<br /> column = 0 } > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line > s</td><td><div class="dni-plaintext"><pre>[ { "a":1, "b" : > 2 } ]</pre></div></td></tr><tr><td>position</td><td><details @@ -13737,11 +13404,8 @@ > class="dni-plaintext"><pre>0 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> -> </div></details></td></tr></tbody></table></div></details></td></tr><tr><td>IsSu -> ccess</td><td><div class="dni-plaintext"><pre>true -> │ </pre></div></td></tr><tr><td>IsFailure</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr></tbody></table></div></details><style> +> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta +> ble></div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; @@ -13774,7 +13438,7 @@ > │ } > │ </style> > -> ── [ 96.94ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 101.89ms - stdout ] ─────────────────────────────────────────────────────── > │ JObject (map [("a", JNumber 1.0); ("b", JNumber 2.0)]) > │ JObject (map [("a", JNumber 1.0); ("b", JNumber 2.0)]) > │ @@ -13792,7 +13456,7 @@ > ) > ) > -> ── [ 45.68ms - return value ] ────────────────────────────────────────────────── +> ── [ 46.62ms - return value ] ────────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Failure ("object", "Unexpected > ','", { currentLine = "{ "a":1, "b" : 2, @@ -13814,11 +13478,8 @@ > │ </pre></div></td></tr><tr><td>column</td><td><div > class="dni-plaintext"><pre>18 > │ -> </pre></div></td></tr></tbody></table></div></details></td></tr><tr><td>IsSucces -> s</td><td><div class="dni-plaintext"><pre>false -> │ </pre></div></td></tr><tr><td>IsFailure</td><td><div -> class="dni-plaintext"><pre>true -> │ </pre></div></td></tr></tbody></table></div></details><style> +> </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> +> </div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; @@ -13851,7 +13512,7 @@ > │ } > │ </style> > -> ── [ 47.01ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 47.81ms - stdout ] ──────────────────────────────────────────────────────── > │ Line:0 Col:18 Error parsing object > │ { "a":1, "b" : 2, } > │ ^Unexpected ',' @@ -13893,7 +13554,7 @@ > ) > ) > -> ── [ 157.93ms - return value ] ───────────────────────────────────────────────── +> ── [ 193.79ms - return value ] ───────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Success<br /> (JObject<br /> (map<br /> > [("bday",<br /> JObject<br /> (map<br /> @@ -13914,11 +13575,13 @@ > class="dni-code-hint"><code>JObject<br /> (map<br /> [("bday",<br > /> JObject<br /> (map<br /> [("day", JNumber > 25.0); ("month", JNumber 12.0);<br /> ("year", -> JNumber 2001.0)])); ("emptyArray", JArra...,, "isMale" : -> true,, "bday" : {"year":2001, "month":12, -> "day":25 },, "favouriteColors" : ["blue", -> "green"],, "emptyArray" : [],, -> "emptyObject" : {}, } +> JNumber 2001.0)])); ("emptyArray", JArra...0 } +> ...</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>li +> nes</td><td><div class="dni-plaintext"><pre>[ {, "name" : +> "Scott",, "isMale" : true,, "bday" : +> {"year":2001, "month":12, "day":25 },, +> "favouriteColors" : ["blue", "green"],, +> "emptyArray" : [],, "emptyObject" : {}, } > ]</pre></div></td></tr><tr><td>position</td><td><details > class="dni-treeview"><summary><span class="dni-code-hint"><code>{ line = 8<br /> > column = 0 @@ -13928,11 +13591,8 @@ > class="dni-plaintext"><pre>0 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> -> </div></details></td></tr></tbody></table></div></details></td></tr><tr><td>IsSu -> ccess</td><td><div class="dni-plaintext"><pre>true -> │ </pre></div></td></tr><tr><td>IsFailure</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr></tbody></table></div></details><style> +> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta +> ble></div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; @@ -13965,7 +13625,7 @@ > │ } > │ </style> > -> ── [ 159.63ms - stdout ] ─────────────────────────────────────────────────────── +> ── [ 195.80ms - stdout ] ─────────────────────────────────────────────────────── > │ JObject > │ (map > │ [("bday", @@ -14064,7 +13724,7 @@ > ) > ) > -> ── [ 343.79ms - return value ] ───────────────────────────────────────────────── +> ── [ 396.95ms - return value ] ───────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Success<br /> (JObject<br /> (map<br /> > [("widget",<br /> JObject<br /> (map<br /> @@ -14085,8 +13745,11 @@ > class="dni-code-hint"><code>JObject<br /> (map<br /> > [("widget",<br /> JObject<br /> (map<br /> > [("debug", JString "on");<br /> -> ("image",<br /> JObject<br /> (...t;,, -> "name": "text1",, "hOffset": 250,, +> ("image",<br /> JObject<br /> +> (...ot;center", },, "text": {, "data": +> "Click Here",, "size": 36,, +> "style": "bold",, "name": +> "text1",, "hOffset": 250,, > "vOffset": 100,, "alignment": "center",, > "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;", > }, }} ]</pre></div></td></tr><tr><td>position</td><td><details @@ -14098,11 +13761,8 @@ > class="dni-plaintext"><pre>0 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> -> </div></details></td></tr></tbody></table></div></details></td></tr><tr><td>IsSu -> ccess</td><td><div class="dni-plaintext"><pre>true -> │ </pre></div></td></tr><tr><td>IsFailure</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr></tbody></table></div></details><style> +> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta +> ble></div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; @@ -14135,7 +13795,7 @@ > │ } > │ </style> > -> ── [ 345.45ms - stdout ] ─────────────────────────────────────────────────────── +> ── [ 398.76ms - stdout ] ─────────────────────────────────────────────────────── > │ JObject > │ (map > │ [("widget", @@ -14287,7 +13947,7 @@ > ) > ) > -> ── [ 485.70ms - return value ] ───────────────────────────────────────────────── +> ── [ 556.01ms - return value ] ───────────────────────────────────────────────── > │ <details open="open" class="dni-treeview"><summary><span > class="dni-code-hint"><code>Success<br /> (JObject<br /> (map<br /> > [("array",<br /> JArray<br /> [JNumber 1.0; @@ -14309,11 +13969,14 @@ > [("array",<br /> JArray [JNumber 1.0; JNumber 2.0; JNumber 3.0; > JNumber 4.0; JNumber 5.0]);<br /> ("boolean", JBool true); > ("emptyArray", JArray []);<br /> ("emptyObject", -> JObject (map []));<br /> ("es...nestedObject": {, -> "nestedProperty": "Nested Object Value", }, },, -> "nestedObjects": [, {"name": "Alice", -> "age": 25},, {"name": "Bob", "age": -> 30}, ], } ]</pre></div></td></tr><tr><td>position</td><td><details +> JObject (map []));<br /> ("es...ot;: 3.14,, +> "nestedBoolean": false,, "nestedNull": null,, +> "nestedArray": ["a", "b", "c"],, +> "nestedObject": {, "nestedProperty": "Nested +> Object Value", }, },, "nestedObjects": [, +> {"name": "Alice", "age": 25},, +> {"name": "Bob", "age": 30}, ], } +> ]</pre></div></td></tr><tr><td>position</td><td><details > class="dni-treeview"><summary><span class="dni-code-hint"><code>{ line = 29<br > /> column = 0 > }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>line @@ -14322,11 +13985,8 @@ > class="dni-plaintext"><pre>0 > │ > </pre></div></td></tr></tbody></table></div></details></td></tr></tbody></table> -> </div></details></td></tr></tbody></table></div></details></td></tr><tr><td>IsSu -> ccess</td><td><div class="dni-plaintext"><pre>true -> │ </pre></div></td></tr><tr><td>IsFailure</td><td><div -> class="dni-plaintext"><pre>false -> │ </pre></div></td></tr></tbody></table></div></details><style> +> </div></details></td></tr></tbody></table></div></details></td></tr></tbody></ta +> ble></div></details><style> > │ .dni-code-hint { > │ font-style: italic; > │ overflow: hidden; @@ -14359,7 +14019,7 @@ > │ } > │ </style> > -> ── [ 488.40ms - stdout ] ─────────────────────────────────────────────────────── +> ── [ 557.98ms - stdout ] ─────────────────────────────────────────────────────── > │ JObject > │ (map > │ [("array", @@ -14400,20 +14060,20 @@ > │ ("number", JNumber 42.0); ...]) > │ > │ -00:00:22 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 172460 } -00:00:22 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/apps/parser/JsonParser.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/apps/parser/JsonParser.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:00:23 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/apps/parser/JsonParser.dib.ipynb to html -00:00:23 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. -00:00:23 v #7 ! validate(nb) -00:00:24 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 -00:00:24 v #9 ! return _pygments_highlight( -00:00:25 v #10 ! [NbConvertApp] Writing 534279 bytes to c:\home\git\polyglot\apps\parser\JsonParser.dib.html -00:00:25 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 864 } -00:00:25 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 864 } -00:00:25 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/apps/parser/JsonParser.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/apps/parser/JsonParser.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:00:25 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } -00:00:25 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } -00:00:25 d #16 spiral.run / dib / { exit_code = 0; result_length = 173383 } +00:00:26 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 152736 } +00:00:26 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/apps/parser/JsonParser.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/apps/parser/JsonParser.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } +00:00:27 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/apps/parser/JsonParser.dib.ipynb to html +00:00:27 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. +00:00:27 v #7 ! validate(nb) +00:00:28 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 +00:00:28 v #9 ! return _pygments_highlight( +00:00:29 v #10 ! [NbConvertApp] Writing 501905 bytes to c:\home\git\polyglot\apps\parser\JsonParser.dib.html +00:00:29 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 864 } +00:00:29 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 864 } +00:00:29 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/apps/parser/JsonParser.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/apps/parser/JsonParser.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } +00:00:30 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } +00:00:30 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } +00:00:30 d #16 spiral.run / dib / { exit_code = 0; result_length = 153659 } 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "Parser.dib"])) } 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/apps/parser/Parser.dib", "--output-path", "c:/home/git/polyglot/apps/parser/Parser.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/apps/parser/Parser.dib" --output-path "c:/home/git/polyglot/apps/parser/Parser.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } > @@ -14469,7 +14129,7 @@ > position = { line = 0; column = 0 } > } > -> ── [ 57.90ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 60.67ms - stdout ] ──────────────────────────────────────────────────────── > │ { lines = [||] > │ position = { line = 0 > │ column = 0 } } @@ -14484,7 +14144,7 @@ > position = { line = 0; column = 0 } > } > -> ── [ 27.02ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 28.52ms - stdout ] ──────────────────────────────────────────────────────── > │ { lines = [|"Hello "; " World"|] > │ position = { line = 0 > │ column = 0 } } @@ -14529,7 +14189,7 @@ > } > charOpt |> _assertEqual (Some 'H') > -> ── [ 45.32ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 51.97ms - stdout ] ──────────────────────────────────────────────────────── > │ { lines = [|"Hello World"|] > │ position = { line = 0 > │ column = 1 } } @@ -14549,7 +14209,7 @@ > } > charOpt |> _assertEqual (Some 'H') > -> ── [ 44.30ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 36.58ms - stdout ] ──────────────────────────────────────────────────────── > │ { lines = [|"Hello"; ""; "World"|] > │ position = { line = 0 > │ column = 1 } } @@ -14664,7 +14324,7 @@ > ) > ) > -> ── [ 44.74ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 47.08ms - stdout ] ──────────────────────────────────────────────────────── > │ Success ('H', { lines = [|"Hello"|] > │ position = { line = 0 > │ column = 1 } }) @@ -14688,7 +14348,7 @@ > ) > ) > -> ── [ 40.44ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 42.96ms - stdout ] ──────────────────────────────────────────────────────── > │ Failure ("H", "Unexpected 'W'", { currentLine = "World" > │ line = 0 > │ column = 0 }) @@ -14725,7 +14385,7 @@ > ) > ) > -> ── [ 55.58ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 59.20ms - stdout ] ──────────────────────────────────────────────────────── > │ Success ('e', { lines = [|"Hello"|] > │ position = { line = 0 > │ column = 2 } }) @@ -14750,7 +14410,7 @@ > ) > ) > -> ── [ 56.08ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 62.97ms - stdout ] ──────────────────────────────────────────────────────── > │ Failure ("e", "Unexpected 'o'", { currentLine = "World" > │ line = 0 > │ column = 1 }) @@ -14779,7 +14439,7 @@ > ) > ) > -> ── [ 32.17ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 35.70ms - stdout ] ──────────────────────────────────────────────────────── > │ Success ("Hello", { lines = [|"Hello"|] > │ position = { line = 0 > │ column = 0 } }) @@ -14812,7 +14472,7 @@ > ) > ) > -> ── [ 46.63ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 49.52ms - stdout ] ──────────────────────────────────────────────────────── > │ Success ("H", { lines = [|"Hello"|] > │ position = { line = 0 > │ column = 1 } }) @@ -14851,7 +14511,7 @@ > ) > ) > -> ── [ 78.06ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 74.74ms - stdout ] ──────────────────────────────────────────────────────── > │ Success ("He", { lines = [|"Hello"|] > │ position = { line = 0 > │ column = 2 } }) @@ -14887,7 +14547,7 @@ > ) > ) > -> ── [ 53.36ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 60.36ms - stdout ] ──────────────────────────────────────────────────────── > │ Success (('H', 'e'), { lines = [|"Hello"|] > │ position = { line = 0 > │ column = 2 } }) @@ -14924,7 +14584,7 @@ > ) > ) > -> ── [ 51.88ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 54.52ms - stdout ] ──────────────────────────────────────────────────────── > │ Success ('h', { lines = [|"hello"|] > │ position = { line = 0 > │ column = 1 } }) @@ -14952,7 +14612,7 @@ > ) > ) > -> ── [ 49.89ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 56.50ms - stdout ] ──────────────────────────────────────────────────────── > │ Success ('h', { lines = [|"hello"|] > │ position = { line = 0 > │ column = 1 } }) @@ -14982,7 +14642,7 @@ > ) > ) > -> ── [ 60.79ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 64.34ms - stdout ] ──────────────────────────────────────────────────────── > │ Success (['H'; 'e'], { lines = [|"Hello"|] > │ position = { line = 0 > │ column = 2 } }) @@ -15022,7 +14682,7 @@ > ) > ) > -> ── [ 45.79ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 47.82ms - stdout ] ──────────────────────────────────────────────────────── > │ Success ([], { lines = [|"hello"|] > │ position = { line = 0 > │ column = 0 } }) @@ -15056,7 +14716,7 @@ > ) > ) > -> ── [ 63.93ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 69.19ms - stdout ] ──────────────────────────────────────────────────────── > │ Failure ("many1 H", "Unexpected 'h'", { currentLine = "hello" > │ line = 0 > │ column = 0 }) @@ -15086,7 +14746,7 @@ > ) > ) > -> ── [ 63.14ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 61.32ms - stdout ] ──────────────────────────────────────────────────────── > │ Success (None, { lines = [|"hello"|] > │ position = { line = 0 > │ column = 0 } }) @@ -15127,7 +14787,7 @@ > ) > ) > -> ── [ 143.91ms - stdout ] ─────────────────────────────────────────────────────── +> ── [ 158.45ms - stdout ] ─────────────────────────────────────────────────────── > │ Success (['H'; 'e'; 'l'; 'l'; 'o'], { lines = [|"[Hello]"|] > │ position = { line = 0 > │ column = 7 @@ -15162,7 +14822,7 @@ > ) > ) > -> ── [ 104.50ms - stdout ] ─────────────────────────────────────────────────────── +> ── [ 107.64ms - stdout ] ─────────────────────────────────────────────────────── > │ Success ([['H'; 'e'; 'l'; 'l'; 'o']; ['W'; 'o'; 'r'; 'l'; > 'd'; '\010']], { lines = [|"Hello,World"|] > │ @@ -15199,7 +14859,7 @@ > ) > ) > -> ── [ 57.50ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 60.79ms - stdout ] ──────────────────────────────────────────────────────── > │ Success (['H'; 'e'; 'l'; 'l'; 'o'], { lines = [|"Hello"|] > │ position = { line = 0 > │ column = 5 @@ -15236,7 +14896,7 @@ > ) > ) > -> ── [ 82.54ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 85.67ms - stdout ] ──────────────────────────────────────────────────────── > │ Success ("Hello", { lines = [|"Hello"|] > │ position = { line = 0 > │ column = 5 } }) @@ -15267,7 +14927,7 @@ > ) > ) > -> ── [ 65.04ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 83.14ms - stdout ] ──────────────────────────────────────────────────────── > │ Success ("Hello", { lines = [|"Hello"|] > │ position = { line = 0 > │ column = 5 } }) @@ -15299,7 +14959,7 @@ > ) > ) > -> ── [ 67.36ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 84.42ms - stdout ] ──────────────────────────────────────────────────────── > │ Success (([' '; ' '], "Hello"), { lines = [|" Hello"|] > │ position = { line = 0 > │ column = 7 } @@ -15328,7 +14988,7 @@ > ) > ) > -> ── [ 28.34ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 32.43ms - stdout ] ──────────────────────────────────────────────────────── > │ Failure ("digit", "Unexpected 'H'", { currentLine = "Hello" > │ line = 0 > │ column = 0 }) @@ -15363,7 +15023,7 @@ > ) > ) > -> ── [ 33.26ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 32.51ms - stdout ] ──────────────────────────────────────────────────────── > │ Success (-123, { lines = [|"-123"|] > │ position = { line = 0 > │ column = 4 } }) @@ -15398,7 +15058,7 @@ > ) > ) > -> ── [ 39.17ms - stdout ] ──────────────────────────────────────────────────────── +> ── [ 49.21ms - stdout ] ──────────────────────────────────────────────────────── > │ Success (-123.45, { lines = [|"-123.45"|] > │ position = { line = 0 > │ column = 7 } }) @@ -15424,22 +15084,22 @@ > let inline (>>%) p x = > p > |>> fun _ -> x -00:00:20 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 31883 } -00:00:20 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/apps/parser/Parser.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/apps/parser/Parser.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:00:21 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/apps/parser/Parser.dib.ipynb to html -00:00:21 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. -00:00:21 v #7 ! validate(nb) -00:00:22 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 -00:00:22 v #9 ! return _pygments_highlight( -00:00:23 v #10 ! [NbConvertApp] Writing 413747 bytes to c:\home\git\polyglot\apps\parser\Parser.dib.html -00:00:23 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 856 } -00:00:23 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 856 } -00:00:23 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/apps/parser/Parser.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/apps/parser/Parser.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:00:23 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } -00:00:23 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } -00:00:23 d #16 spiral.run / dib / { exit_code = 0; result_length = 32798 } -00:00:00 d #1 writeDibCode / output: Fs / path: Parser.dib +00:00:22 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 31883 } +00:00:22 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/apps/parser/Parser.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/apps/parser/Parser.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } +00:00:24 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/apps/parser/Parser.dib.ipynb to html +00:00:24 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. +00:00:24 v #7 ! validate(nb) +00:00:25 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 +00:00:25 v #9 ! return _pygments_highlight( +00:00:26 v #10 ! [NbConvertApp] Writing 413747 bytes to c:\home\git\polyglot\apps\parser\Parser.dib.html +00:00:26 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 856 } +00:00:26 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 856 } +00:00:26 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/apps/parser/Parser.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/apps/parser/Parser.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } +00:00:26 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } +00:00:26 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } +00:00:26 d #16 spiral.run / dib / { exit_code = 0; result_length = 32798 } 00:00:00 d #1 writeDibCode / output: Fs / path: JsonParser.dib +00:00:00 d #1 writeDibCode / output: Fs / path: Parser.dib 00:00:00 d #2 parseDibCode / output: Fs / file: Parser.dib 00:00:00 d #2 parseDibCode / output: Fs / file: JsonParser.dib@@ -15964,7 +15624,7 @@ > (if spir then $"{moduleName}_real*-" else ""), > if spi then moduleName else "" > -> let libLinkTargetPath = workspaceRoot </> "lib/spiral" +> let libLinkTargetPath = workspaceRoot </> "../spiral/lib/spiral" > let libLinkPath = packageDir </> "spiral" > > let packagesModule = @@ -15980,7 +15640,7 @@ > > let packageDir' = > if input.packages |> Array.isEmpty -> then workspaceRoot </> "lib" +> then workspaceRoot </> "../spiral/lib" > else > libLinkPath |> SpiralFileSystem.link_directory libLinkTargetPath > packageDir @@ -16096,154 +15756,39 @@ > ) > ) > -> ── [ 5.73s - stdout ] ────────────────────────────────────────────────────────── -> │ 00:00:11 v #1 async.run_with_timeout_async / { timeout = +> ── [ 1.05s - stdout ] ────────────────────────────────────────────────────────── +> │ 00:00:13 v #1 async.run_with_timeout_async / { timeout = > 180 } -> │ 00:00:09 d #1 runtime.execute_with_options_async / { -> file_name = dotnet; arguments = US5_0 -> │ ""C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral -> Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 -> --default-int i32 --default-float f64"; options = { command = dotnet -> "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language -> 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 -> --default-int i32 --default-float f64; cancellation_token = Some -> System.Threading.CancellationToken; environment_variables = [||]; on_line = Some -> <fun:compiler@22-4>; stdin = None; trace = true; working_directory = Some -> "C:\home\git\polyglot" } } -> │ 00:00:09 v #2 > 00:00:00 d #1 pwd: -> C:\home\git\polyglot -> │ 00:00:09 v #3 > 00:00:00 d #2 dllPath: -> C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language -> 2\artifacts\bin\The Spiral Language 2\release -> │ 00:00:09 v #4 > 00:00:00 d #3 targetDir: -> C:\home\git\polyglot\target/spiral_Eval -> │ 00:00:12 v #2 async.run_with_timeout_async / { timeout = -> 100 } -> │ 00:00:12 v #3 async.run_with_timeout_async / { timeout = -> 100 } -> │ 00:00:09 v #5 > Starting the Spiral Server. It is bound -> to: http://localhost:13805 -> │ 00:00:12 v #4 async.run_with_timeout_async / { timeout = -> 100 } -> │ 00:00:06 v #1 Supervisor.sendJson / port: 13805 / json: -> {"Ping":true} / result: -> │ 00:00:06 v #2 Supervisor.awaitCompiler / Ping / result: -> 'Some null' / port: 13805 / retry: 1 -> │ 00:00:10 v #6 > Server bound to: http://localhost:13805 -> │ 00:00:06 d #3 Supervisor.buildFile / takeWhileInclusive +> │ 00:00:05 d #1 Supervisor.buildFile / takeWhileInclusive > / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\22ccd04317d5605c65f81c7f777766f +> c:/home/git\polyglot\target/spiral_Eval\packages\22ccd04317d5605c65f81c7f777766f > 357e85dc69f2d6d04b9dc60aebd08a0d6\main.spi / errors: [] / typeErrorCount: 0 / > retry: 0 / outputContent: > │ -> │ 00:00:06 d #4 Supervisor.buildFile / AsyncSeq.scan / +> │ 00:00:05 d #2 Supervisor.buildFile / AsyncSeq.scan / > path: -> C:\home\git\polyglot\target/spiral_Eval\packages\22ccd04317d5605c65f81c7f777766f +> c:/home/git\polyglot\target/spiral_Eval\packages\22ccd04317d5605c65f81c7f777766f > 357e85dc69f2d6d04b9dc60aebd08a0d6\main.spi / errors: [] / outputContentResult: > / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ -> │ 00:00:06 d #5 Supervisor.buildFile / takeWhileInclusive +> │ 00:00:05 d #3 Supervisor.buildFile / takeWhileInclusive > / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\22ccd04317d5605c65f81c7f777766f +> c:/home/git\polyglot\target/spiral_Eval\packages\22ccd04317d5605c65f81c7f777766f > 357e85dc69f2d6d04b9dc60aebd08a0d6\main.spi / errors: [] / typeErrorCount: 0 / > retry: 0 / outputContent: > │ -> │ 00:00:06 v #6 Supervisor.sendJson / port: 13805 / json: +> │ 00:00:05 v #4 Supervisor.sendJson / port: 13805 / json: > {"FileOpen":{"spiText":"inl app () =\n console.write_line \u0022text\u0022\n > 1i32\n\ninl main > ...et/spiral_Eval/packages/22ccd04317d5605c65f81c7f777766f357e85dc69f2d6d04b9dc6 > 0aebd08a0d6/main.spi"}} / result: -> │ 00:00:06 v #7 Supervisor.sendJson / port: 13805 / json: +> │ 00:00:05 v #5 Supervisor.sendJson / port: 13805 / json: > {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/target/spir > al_Eval/packages/22ccd04317d5605c65f81c7f777766f357e85dc69f2d6d04b9dc60aebd08a0d > 6/main.spi"}} / result: -> │ 00:00:07 d #8 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\22ccd04317d5605c65f81c7f777766f -> 357e85dc69f2d6d04b9dc60aebd08a0d6\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: / outputContent: -> │ -> │ 00:00:07 d #9 Supervisor.buildFile / takeWhileInclusive -> / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\22ccd04317d5605c65f81c7f777766f -> 357e85dc69f2d6d04b9dc60aebd08a0d6\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 0 / outputContent: -> │ -> │ 00:00:07 d #10 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\22ccd04317d5605c65f81c7f777766f -> 357e85dc69f2d6d04b9dc60aebd08a0d6\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: / outputContent: -> │ -> │ 00:00:07 d #11 Supervisor.buildFile / takeWhileInclusive -> / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\22ccd04317d5605c65f81c7f777766f -> 357e85dc69f2d6d04b9dc60aebd08a0d6\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 0 / outputContent: -> │ -> │ 00:00:08 d #12 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\22ccd04317d5605c65f81c7f777766f -> 357e85dc69f2d6d04b9dc60aebd08a0d6\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: / outputContent: -> │ -> │ 00:00:08 d #13 Supervisor.buildFile / takeWhileInclusive -> / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\22ccd04317d5605c65f81c7f777766f -> 357e85dc69f2d6d04b9dc60aebd08a0d6\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 0 / outputContent: -> │ -> │ 00:00:08 d #14 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\22ccd04317d5605c65f81c7f777766f -> 357e85dc69f2d6d04b9dc60aebd08a0d6\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: / outputContent: -> │ -> │ 00:00:08 d #15 Supervisor.buildFile / takeWhileInclusive -> / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\22ccd04317d5605c65f81c7f777766f -> 357e85dc69f2d6d04b9dc60aebd08a0d6\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 0 / outputContent: -> │ -> │ 00:00:09 d #16 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\22ccd04317d5605c65f81c7f777766f -> 357e85dc69f2d6d04b9dc60aebd08a0d6\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: / outputContent: -> │ -> │ 00:00:09 d #17 Supervisor.buildFile / takeWhileInclusive -> / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\22ccd04317d5605c65f81c7f777766f -> 357e85dc69f2d6d04b9dc60aebd08a0d6\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 0 / outputContent: -> │ -> │ 00:00:09 d #18 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\22ccd04317d5605c65f81c7f777766f -> 357e85dc69f2d6d04b9dc60aebd08a0d6\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: / outputContent: -> │ -> │ 00:00:09 d #19 Supervisor.buildFile / takeWhileInclusive -> / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\22ccd04317d5605c65f81c7f777766f -> 357e85dc69f2d6d04b9dc60aebd08a0d6\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 0 / outputContent: -> │ -> │ 00:00:10 d #20 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\22ccd04317d5605c65f81c7f777766f -> 357e85dc69f2d6d04b9dc60aebd08a0d6\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: / outputContent: -> │ -> │ 00:00:10 d #21 Supervisor.buildFile / takeWhileInclusive -> / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\22ccd04317d5605c65f81c7f777766f -> 357e85dc69f2d6d04b9dc60aebd08a0d6\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 0 / outputContent: -> │ -> │ 00:00:10 d #22 Supervisor.buildFile / AsyncSeq.scan / +> │ 00:00:05 d #6 Supervisor.buildFile / AsyncSeq.scan / > path: -> C:\home\git\polyglot\target/spiral_Eval\packages\22ccd04317d5605c65f81c7f777766f +> c:/home/git\polyglot\target/spiral_Eval\packages\22ccd04317d5605c65f81c7f777766f > 357e85dc69f2d6d04b9dc60aebd08a0d6\main.spi / errors: [] / outputContentResult: > / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ let rec closure1 () () : unit = @@ -16258,9 +15803,9 @@ > │ let v0 : (unit -> int32) = closure0() > │ () > │ -> │ 00:00:10 d #23 Supervisor.buildFile / takeWhileInclusive +> │ 00:00:05 d #7 Supervisor.buildFile / takeWhileInclusive > / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\22ccd04317d5605c65f81c7f777766f +> c:/home/git\polyglot\target/spiral_Eval\packages\22ccd04317d5605c65f81c7f777766f > 357e85dc69f2d6d04b9dc60aebd08a0d6\main.spi / errors: [] / typeErrorCount: 0 / > retry: 0 / outputContent: > │ let rec closure1 () () : unit = @@ -16275,9 +15820,7 @@ > │ let v0 : (unit -> int32) = closure0() > │ () > │ -> │ 00:00:17 v #5 async.run_with_timeout_async / { timeout = -> 100 } -> │ 00:00:10 d #24 FileSystem.watchWithFilter / Disposing +> │ 00:00:05 d #8 FileSystem.watchWithFilter / Disposing > watch stream / filter: FileName, LastWrite > │ Some > │ (Some @@ -16313,148 +15856,45 @@ > ) > ) > -> ── [ 4.64s - stdout ] ────────────────────────────────────────────────────────── -> │ 00:00:17 v #6 async.run_with_timeout_async / { timeout = +> ── [ 617.94ms - stdout ] ─────────────────────────────────────────────────────── +> │ 00:00:14 v #2 async.run_with_timeout_async / { timeout = > 180 } -> │ 00:00:14 d #7 runtime.execute_with_options_async / { -> file_name = dotnet; arguments = US5_0 -> │ ""C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral -> Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 -> --default-int i32 --default-float f64"; options = { command = dotnet -> "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language -> 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 -> --default-int i32 --default-float f64; cancellation_token = Some -> System.Threading.CancellationToken; environment_variables = [||]; on_line = Some -> <fun:compiler@22-4>; stdin = None; trace = true; working_directory = Some -> "C:\home\git\polyglot" } } -> │ 00:00:15 v #8 > 00:00:00 d #1 pwd: -> C:\home\git\polyglot -> │ 00:00:15 v #9 > 00:00:00 d #2 dllPath: -> C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language -> 2\artifacts\bin\The Spiral Language 2\release -> │ 00:00:15 v #10 > 00:00:00 d #3 targetDir: -> C:\home\git\polyglot\target/spiral_Eval -> │ 00:00:17 v #7 async.run_with_timeout_async / { timeout = -> 100 } -> │ 00:00:18 v #8 async.run_with_timeout_async / { timeout = -> 100 } -> │ 00:00:15 v #11 > Starting the Spiral Server. It is bound -> to: http://localhost:13805 -> │ 00:00:18 v #9 async.run_with_timeout_async / { timeout = -> 100 } -> │ 00:00:12 v #25 Supervisor.sendJson / port: 13805 / json: -> {"Ping":true} / result: -> │ 00:00:12 v #26 Supervisor.awaitCompiler / Ping / result: -> 'Some null' / port: 13805 / retry: 1 -> │ 00:00:15 v #12 > Server bound to: http://localhost:13805 -> │ 00:00:12 d #27 Supervisor.buildFile / takeWhileInclusive +> │ 00:00:06 d #9 Supervisor.buildFile / takeWhileInclusive > / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\a65342ccc7da0da967b18d8e705d026 +> c:/home/git\polyglot\target/spiral_Eval\packages\a65342ccc7da0da967b18d8e705d026 > 0e9a932e5e68c0feb33db55c4d28170aa\main.spi / errors: [] / typeErrorCount: 0 / > retry: 0 / outputContent: > │ -> │ 00:00:12 d #28 Supervisor.buildFile / AsyncSeq.scan / +> │ 00:00:06 d #10 Supervisor.buildFile / AsyncSeq.scan / > path: -> C:\home\git\polyglot\target/spiral_Eval\packages\a65342ccc7da0da967b18d8e705d026 +> c:/home/git\polyglot\target/spiral_Eval\packages\a65342ccc7da0da967b18d8e705d026 > 0e9a932e5e68c0feb33db55c4d28170aa\main.spi / errors: [] / outputContentResult: > / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ -> │ 00:00:12 d #29 Supervisor.buildFile / takeWhileInclusive +> │ 00:00:06 d #11 Supervisor.buildFile / takeWhileInclusive > / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\a65342ccc7da0da967b18d8e705d026 +> c:/home/git\polyglot\target/spiral_Eval\packages\a65342ccc7da0da967b18d8e705d026 > 0e9a932e5e68c0feb33db55c4d28170aa\main.spi / errors: [] / typeErrorCount: 0 / > retry: 0 / outputContent: > │ -> │ 00:00:12 v #30 Supervisor.sendJson / port: 13805 / json: +> │ 00:00:06 v #12 Supervisor.sendJson / port: 13805 / json: > {"FileOpen":{"spiText":"","uri":"file:///c:/home/git/polyglot/target/spiral_Eval > /packages/a65342ccc7da0da967b18d8e705d0260e9a932e5e68c0feb33db55c4d28170aa/main. > spi"}} / result: -> │ 00:00:12 v #31 Supervisor.sendJson / port: 13805 / json: +> │ 00:00:06 v #13 Supervisor.sendJson / port: 13805 / json: > {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/target/spir > al_Eval/packages/a65342ccc7da0da967b18d8e705d0260e9a932e5e68c0feb33db55c4d28170a > a/main.spi"}} / result: -> │ 00:00:12 d #32 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\a65342ccc7da0da967b18d8e705d026 -> 0e9a932e5e68c0feb33db55c4d28170aa\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: / outputContent: -> │ -> │ 00:00:12 d #33 Supervisor.buildFile / takeWhileInclusive -> / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\a65342ccc7da0da967b18d8e705d026 -> 0e9a932e5e68c0feb33db55c4d28170aa\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 0 / outputContent: -> │ -> │ 00:00:13 d #34 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\a65342ccc7da0da967b18d8e705d026 -> 0e9a932e5e68c0feb33db55c4d28170aa\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: / outputContent: -> │ -> │ 00:00:13 d #35 Supervisor.buildFile / takeWhileInclusive -> / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\a65342ccc7da0da967b18d8e705d026 -> 0e9a932e5e68c0feb33db55c4d28170aa\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 0 / outputContent: -> │ -> │ 00:00:13 d #36 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\a65342ccc7da0da967b18d8e705d026 -> 0e9a932e5e68c0feb33db55c4d28170aa\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: / outputContent: -> │ -> │ 00:00:13 d #37 Supervisor.buildFile / takeWhileInclusive -> / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\a65342ccc7da0da967b18d8e705d026 -> 0e9a932e5e68c0feb33db55c4d28170aa\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 0 / outputContent: -> │ -> │ 00:00:14 d #38 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\a65342ccc7da0da967b18d8e705d026 -> 0e9a932e5e68c0feb33db55c4d28170aa\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: / outputContent: -> │ -> │ 00:00:14 d #39 Supervisor.buildFile / takeWhileInclusive -> / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\a65342ccc7da0da967b18d8e705d026 -> 0e9a932e5e68c0feb33db55c4d28170aa\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 0 / outputContent: -> │ -> │ 00:00:14 d #40 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\a65342ccc7da0da967b18d8e705d026 -> 0e9a932e5e68c0feb33db55c4d28170aa\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: / outputContent: -> │ -> │ 00:00:14 d #41 Supervisor.buildFile / takeWhileInclusive -> / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\a65342ccc7da0da967b18d8e705d026 -> 0e9a932e5e68c0feb33db55c4d28170aa\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 0 / outputContent: -> │ -> │ 00:00:15 d #42 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\a65342ccc7da0da967b18d8e705d026 -> 0e9a932e5e68c0feb33db55c4d28170aa\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: / outputContent: -> │ -> │ 00:00:15 d #43 Supervisor.buildFile / takeWhileInclusive -> / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\a65342ccc7da0da967b18d8e705d026 -> 0e9a932e5e68c0feb33db55c4d28170aa\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 0 / outputContent: -> │ -> │ 00:00:15 d #44 Supervisor.buildFile / AsyncSeq.scan / +> │ 00:00:06 d #14 Supervisor.buildFile / AsyncSeq.scan / > path: -> C:\home\git\polyglot\target/spiral_Eval\packages\a65342ccc7da0da967b18d8e705d026 +> c:/home/git\polyglot\target/spiral_Eval\packages\a65342ccc7da0da967b18d8e705d026 > 0e9a932e5e68c0feb33db55c4d28170aa\main.spi / errors: [] / outputContentResult: > / typeErrorCount: 0 / retry: 0 / error: Some((Cannot find `main` in file main., > FatalError "Cannot find `main` in file main.")) / outputContent: > │ -> │ 00:00:15 d #45 Supervisor.buildFile / takeWhileInclusive +> │ 00:00:06 d #15 Supervisor.buildFile / takeWhileInclusive > / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\a65342ccc7da0da967b18d8e705d026 +> c:/home/git\polyglot\target/spiral_Eval\packages\a65342ccc7da0da967b18d8e705d026 > 0e9a932e5e68c0feb33db55c4d28170aa\main.spi / errors: [ > │ [ > │ "Cannot find `main` in file main.", @@ -16464,9 +15904,7 @@ > │ ] > │ ] / typeErrorCount: 0 / retry: 0 / outputContent: > │ -> │ 00:00:21 v #10 async.run_with_timeout_async / { timeout -> = 100 } -> │ 00:00:15 d #46 FileSystem.watchWithFilter / Disposing +> │ 00:00:06 d #16 FileSystem.watchWithFilter / Disposing > watch stream / filter: FileName, LastWrite > │ Some (None, ["Cannot find `main` in file main."]) > │ @@ -16490,141 +15928,38 @@ > ) > ) > -> ── [ 4.39s - stdout ] ────────────────────────────────────────────────────────── -> │ 00:00:22 v #11 async.run_with_timeout_async / { timeout -> = 180 } -> │ 00:00:19 d #13 runtime.execute_with_options_async / { -> file_name = dotnet; arguments = US5_0 -> │ ""C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral -> Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 -> --default-int i32 --default-float f64"; options = { command = dotnet -> "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language -> 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 -> --default-int i32 --default-float f64; cancellation_token = Some -> System.Threading.CancellationToken; environment_variables = [||]; on_line = Some -> <fun:compiler@22-4>; stdin = None; trace = true; working_directory = Some -> "C:\home\git\polyglot" } } -> │ 00:00:19 v #14 > 00:00:00 d #1 pwd: -> C:\home\git\polyglot -> │ 00:00:19 v #15 > 00:00:00 d #2 dllPath: -> C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language -> 2\artifacts\bin\The Spiral Language 2\release -> │ 00:00:19 v #16 > 00:00:00 d #3 targetDir: -> C:\home\git\polyglot\target/spiral_Eval -> │ 00:00:22 v #12 async.run_with_timeout_async / { timeout -> = 100 } -> │ 00:00:22 v #13 async.run_with_timeout_async / { timeout -> = 100 } -> │ 00:00:19 v #17 > Starting the Spiral Server. It is bound -> to: http://localhost:13805 -> │ 00:00:22 v #14 async.run_with_timeout_async / { timeout -> = 100 } -> │ 00:00:16 v #47 Supervisor.sendJson / port: 13805 / json: -> {"Ping":true} / result: -> │ 00:00:16 v #48 Supervisor.awaitCompiler / Ping / result: -> 'Some null' / port: 13805 / retry: 1 -> │ 00:00:20 v #18 > Server bound to: http://localhost:13805 -> │ 00:00:16 d #49 Supervisor.buildFile / takeWhileInclusive +> ── [ 705.26ms - stdout ] ─────────────────────────────────────────────────────── +> │ 00:00:15 v #3 async.run_with_timeout_async / { timeout = +> 180 } +> │ 00:00:06 d #17 Supervisor.buildFile / takeWhileInclusive > / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\fef9812d9b06b75b1ab26589e52c6d6 +> c:/home/git\polyglot\target/spiral_Eval\packages\fef9812d9b06b75b1ab26589e52c6d6 > ff05910b73ead9e8c4f27f88d2a5cdfb2\main.spi / errors: [] / typeErrorCount: 0 / > retry: 0 / outputContent: > │ -> │ 00:00:16 d #50 Supervisor.buildFile / AsyncSeq.scan / +> │ 00:00:06 d #18 Supervisor.buildFile / AsyncSeq.scan / > path: -> C:\home\git\polyglot\target/spiral_Eval\packages\fef9812d9b06b75b1ab26589e52c6d6 +> c:/home/git\polyglot\target/spiral_Eval\packages\fef9812d9b06b75b1ab26589e52c6d6 > ff05910b73ead9e8c4f27f88d2a5cdfb2\main.spi / errors: [] / outputContentResult: > / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ -> │ 00:00:16 d #51 Supervisor.buildFile / takeWhileInclusive +> │ 00:00:06 d #19 Supervisor.buildFile / takeWhileInclusive > / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\fef9812d9b06b75b1ab26589e52c6d6 +> c:/home/git\polyglot\target/spiral_Eval\packages\fef9812d9b06b75b1ab26589e52c6d6 > ff05910b73ead9e8c4f27f88d2a5cdfb2\main.spi / errors: [] / typeErrorCount: 0 / > retry: 0 / outputContent: > │ -> │ 00:00:16 v #52 Supervisor.sendJson / port: 13805 / json: +> │ 00:00:06 v #20 Supervisor.sendJson / port: 13805 / json: > {"FileOpen":{"spiText":"inl main () =\n 1i32 / > 0i32\n","uri":"file:///c:/home/git/polyglot/target/spiral_Eval/packages/fef9812d > 9b06b75b1ab26589e52c6d6ff05910b73ead9e8c4f27f88d2a5cdfb2/main.spi"}} / result: -> │ 00:00:16 v #53 Supervisor.sendJson / port: 13805 / json: +> │ 00:00:06 v #21 Supervisor.sendJson / port: 13805 / json: > {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/target/spir > al_Eval/packages/fef9812d9b06b75b1ab26589e52c6d6ff05910b73ead9e8c4f27f88d2a5cdfb > 2/main.spi"}} / result: -> │ 00:00:17 d #54 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\fef9812d9b06b75b1ab26589e52c6d6 -> ff05910b73ead9e8c4f27f88d2a5cdfb2\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: / outputContent: -> │ -> │ 00:00:17 d #55 Supervisor.buildFile / takeWhileInclusive -> / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\fef9812d9b06b75b1ab26589e52c6d6 -> ff05910b73ead9e8c4f27f88d2a5cdfb2\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 0 / outputContent: -> │ -> │ 00:00:17 d #56 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\fef9812d9b06b75b1ab26589e52c6d6 -> ff05910b73ead9e8c4f27f88d2a5cdfb2\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: / outputContent: -> │ -> │ 00:00:17 d #57 Supervisor.buildFile / takeWhileInclusive -> / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\fef9812d9b06b75b1ab26589e52c6d6 -> ff05910b73ead9e8c4f27f88d2a5cdfb2\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 0 / outputContent: -> │ -> │ 00:00:18 d #58 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\fef9812d9b06b75b1ab26589e52c6d6 -> ff05910b73ead9e8c4f27f88d2a5cdfb2\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: / outputContent: -> │ -> │ 00:00:18 d #59 Supervisor.buildFile / takeWhileInclusive -> / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\fef9812d9b06b75b1ab26589e52c6d6 -> ff05910b73ead9e8c4f27f88d2a5cdfb2\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 0 / outputContent: -> │ -> │ 00:00:18 d #60 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\fef9812d9b06b75b1ab26589e52c6d6 -> ff05910b73ead9e8c4f27f88d2a5cdfb2\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: / outputContent: -> │ -> │ 00:00:18 d #61 Supervisor.buildFile / takeWhileInclusive -> / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\fef9812d9b06b75b1ab26589e52c6d6 -> ff05910b73ead9e8c4f27f88d2a5cdfb2\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 0 / outputContent: -> │ -> │ 00:00:19 d #62 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\fef9812d9b06b75b1ab26589e52c6d6 -> ff05910b73ead9e8c4f27f88d2a5cdfb2\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: / outputContent: -> │ -> │ 00:00:19 d #63 Supervisor.buildFile / takeWhileInclusive -> / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\fef9812d9b06b75b1ab26589e52c6d6 -> ff05910b73ead9e8c4f27f88d2a5cdfb2\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 0 / outputContent: -> │ -> │ 00:00:19 d #64 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\fef9812d9b06b75b1ab26589e52c6d6 -> ff05910b73ead9e8c4f27f88d2a5cdfb2\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: / outputContent: -> │ -> │ 00:00:19 d #65 Supervisor.buildFile / takeWhileInclusive -> / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\fef9812d9b06b75b1ab26589e52c6d6 -> ff05910b73ead9e8c4f27f88d2a5cdfb2\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 0 / outputContent: -> │ -> │ 00:00:19 d #66 Supervisor.buildFile / AsyncSeq.scan / +> │ 00:00:07 d #22 Supervisor.buildFile / AsyncSeq.scan / > path: -> C:\home\git\polyglot\target/spiral_Eval\packages\fef9812d9b06b75b1ab26589e52c6d6 +> c:/home/git\polyglot\target/spiral_Eval\packages\fef9812d9b06b75b1ab26589e52c6d6 > ff05910b73ead9e8c4f27f88d2a5cdfb2\main.spi / errors: [] / outputContentResult: > / typeErrorCount: 0 / retry: 0 / error: Some((An attempt to divide by zero has > been detected at compile time., TracedError @@ -16644,9 +15979,9 @@ > │ ^ > │ "] })) / outputContent: > │ -> │ 00:00:19 d #67 Supervisor.buildFile / takeWhileInclusive +> │ 00:00:07 d #23 Supervisor.buildFile / takeWhileInclusive > / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\fef9812d9b06b75b1ab26589e52c6d6 +> c:/home/git\polyglot\target/spiral_Eval\packages\fef9812d9b06b75b1ab26589e52c6d6 > ff05910b73ead9e8c4f27f88d2a5cdfb2\main.spi / errors: [ > │ [ > │ "An attempt to divide by zero has been detected at @@ -16674,9 +16009,7 @@ > │ ] > │ ] / typeErrorCount: 0 / retry: 0 / outputContent: > │ -> │ 00:00:26 v #15 async.run_with_timeout_async / { timeout -> = 100 } -> │ 00:00:19 d #68 FileSystem.watchWithFilter / Disposing +> │ 00:00:07 d #24 FileSystem.watchWithFilter / Disposing > watch stream / filter: FileName, LastWrite > │ Some (None, ["An attempt to divide by zero has been detected > at compile time."]) @@ -16706,249 +16039,59 @@ > ) > ) > -> ── [ 4.16s - stdout ] ────────────────────────────────────────────────────────── -> │ 00:00:26 v #16 async.run_with_timeout_async / { timeout -> = 180 } -> │ 00:00:23 d #19 runtime.execute_with_options_async / { -> file_name = dotnet; arguments = US5_0 -> │ ""C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral -> Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 -> --default-int i32 --default-float f64"; options = { command = dotnet -> "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language -> 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 -> --default-int i32 --default-float f64; cancellation_token = Some -> System.Threading.CancellationToken; environment_variables = [||]; on_line = Some -> <fun:compiler@22-4>; stdin = None; trace = true; working_directory = Some -> "C:\home\git\polyglot" } } -> │ 00:00:24 v #20 > 00:00:00 d #1 pwd: -> C:\home\git\polyglot -> │ 00:00:24 v #21 > 00:00:00 d #2 dllPath: -> C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language -> 2\artifacts\bin\The Spiral Language 2\release -> │ 00:00:24 v #22 > 00:00:00 d #3 targetDir: -> C:\home\git\polyglot\target/spiral_Eval -> │ 00:00:26 v #17 async.run_with_timeout_async / { timeout -> = 100 } -> │ 00:00:27 v #18 async.run_with_timeout_async / { timeout -> = 100 } -> │ 00:00:24 v #23 > Starting the Spiral Server. It is bound -> to: http://localhost:13805 -> │ 00:00:27 v #19 async.run_with_timeout_async / { timeout -> = 100 } -> │ 00:00:21 v #69 Supervisor.sendJson / port: 13805 / json: -> {"Ping":true} / result: -> │ 00:00:21 v #70 Supervisor.awaitCompiler / Ping / result: -> 'Some null' / port: 13805 / retry: 1 -> │ 00:00:24 v #24 > Server bound to: http://localhost:13805 -> │ 00:00:21 d #71 Supervisor.buildFile / takeWhileInclusive +> ── [ 425.16ms - stdout ] ─────────────────────────────────────────────────────── +> │ 00:00:15 v #4 async.run_with_timeout_async / { timeout = +> 180 } +> │ 00:00:07 d #25 Supervisor.buildFile / takeWhileInclusive > / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\c030f84f8e553befcbdd9aabeace676 +> c:/home/git\polyglot\target/spiral_Eval\packages\c030f84f8e553befcbdd9aabeace676 > 85221d91a46e3655199e42df713504aa0\main.spi / errors: [] / typeErrorCount: 0 / > retry: 0 / outputContent: > │ -> │ 00:00:21 d #72 Supervisor.buildFile / AsyncSeq.scan / +> │ 00:00:07 d #26 Supervisor.buildFile / AsyncSeq.scan / > path: -> C:\home\git\polyglot\target/spiral_Eval\packages\c030f84f8e553befcbdd9aabeace676 +> c:/home/git\polyglot\target/spiral_Eval\packages\c030f84f8e553befcbdd9aabeace676 > 85221d91a46e3655199e42df713504aa0\main.spi / errors: [] / outputContentResult: > / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ -> │ 00:00:21 d #73 Supervisor.buildFile / takeWhileInclusive +> │ 00:00:07 d #27 Supervisor.buildFile / takeWhileInclusive > / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\c030f84f8e553befcbdd9aabeace676 +> c:/home/git\polyglot\target/spiral_Eval\packages\c030f84f8e553befcbdd9aabeace676 > 85221d91a46e3655199e42df713504aa0\main.spi / errors: [] / typeErrorCount: 0 / > retry: 0 / outputContent: > │ -> │ 00:00:21 v #74 Supervisor.sendJson / port: 13805 / json: +> │ 00:00:07 v #28 Supervisor.sendJson / port: 13805 / json: > {"FileOpen":{"spiText":"inl main () =\n 1 \u002B > \u0022\u0022\n","uri":"file:///c:/home/git/polyg...et/spiral_Eval/packages/c030f > 84f8e553befcbdd9aabeace67685221d91a46e3655199e42df713504aa0/main.spi"}} / > result: -> │ 00:00:21 v #75 Supervisor.sendJson / port: 13805 / json: +> │ 00:00:07 v #29 Supervisor.sendJson / port: 13805 / json: > {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/target/spir > al_Eval/packages/c030f84f8e553befcbdd9aabeace67685221d91a46e3655199e42df713504aa > 0/main.spi"}} / result: -> │ 00:00:21 d #76 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\c030f84f8e553befcbdd9aabeace676 -> 85221d91a46e3655199e42df713504aa0\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: / outputContent: -> │ -> │ 00:00:21 d #77 Supervisor.buildFile / takeWhileInclusive -> / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\c030f84f8e553befcbdd9aabeace676 -> 85221d91a46e3655199e42df713504aa0\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 0 / outputContent: -> │ -> │ 00:00:22 d #78 Supervisor.buildFile / AsyncSeq.scan / +> │ 00:00:07 d #30 Supervisor.buildFile / AsyncSeq.scan / > path: -> C:\home\git\polyglot\target/spiral_Eval\packages\c030f84f8e553befcbdd9aabeace676 +> c:/home/git\polyglot\target/spiral_Eval\packages\c030f84f8e553befcbdd9aabeace676 > 85221d91a46e3655199e42df713504aa0\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: / outputContent: +> / typeErrorCount: 0 / retry: 0 / error: Some((main.spi: +> │ Constraint satisfaction error. +> │ Got: string +> │ Fails to satisfy: number, TypeErrors +> │ { errors = +> │ [(({ character = 8 +> │ line = 1 }, { character = 10 +> │ line = 1 }), +> │ "Constraint satisfaction error. +> │ Got: string +> │ Fails to satisfy: number")] +> │ uri = +> │ +> "file:///c:/home/git/polyglot/target/spiral_Eval/packages/c030f84f8e553befcbdd9a +> abeace67685221d91a46e3655199e42df713504aa0/main.spi" })) / outputContent: > │ -> │ 00:00:22 d #79 Supervisor.buildFile / takeWhileInclusive +> │ 00:00:07 d #31 Supervisor.buildFile / takeWhileInclusive > / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\c030f84f8e553befcbdd9aabeace676 -> 85221d91a46e3655199e42df713504aa0\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 0 / outputContent: -> │ -> │ 00:00:22 d #80 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\c030f84f8e553befcbdd9aabeace676 -> 85221d91a46e3655199e42df713504aa0\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: / outputContent: -> │ -> │ 00:00:22 d #81 Supervisor.buildFile / takeWhileInclusive -> / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\c030f84f8e553befcbdd9aabeace676 -> 85221d91a46e3655199e42df713504aa0\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 0 / outputContent: -> │ -> │ 00:00:23 d #82 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\c030f84f8e553befcbdd9aabeace676 -> 85221d91a46e3655199e42df713504aa0\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: / outputContent: -> │ -> │ 00:00:23 d #83 Supervisor.buildFile / takeWhileInclusive -> / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\c030f84f8e553befcbdd9aabeace676 -> 85221d91a46e3655199e42df713504aa0\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 0 / outputContent: -> │ -> │ 00:00:23 d #84 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\c030f84f8e553befcbdd9aabeace676 -> 85221d91a46e3655199e42df713504aa0\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: / outputContent: -> │ -> │ 00:00:23 d #85 Supervisor.buildFile / takeWhileInclusive -> / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\c030f84f8e553befcbdd9aabeace676 -> 85221d91a46e3655199e42df713504aa0\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 0 / outputContent: -> │ -> │ 00:00:23 d #86 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\c030f84f8e553befcbdd9aabeace676 -> 85221d91a46e3655199e42df713504aa0\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: Some((File main has a type error -> somewhere in its path., FatalError "File main has a type error somewhere in its -> path.")) / outputContent: -> │ -> │ 00:00:23 d #87 Supervisor.buildFile / takeWhileInclusive -> / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\c030f84f8e553befcbdd9aabeace676 -> 85221d91a46e3655199e42df713504aa0\main.spi / errors: [] / typeErrorCount: 1 / -> retry: 0 / outputContent: -> │ -> │ 00:00:23 d #88 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\c030f84f8e553befcbdd9aabeace676 -> 85221d91a46e3655199e42df713504aa0\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 1 / retry: 0 / error: Some((main.spi: -> │ Constraint satisfaction error. -> │ Got: string -> │ Fails to satisfy: number, TypeErrors -> │ { errors = -> │ [(({ character = 8 -> │ line = 1 }, { character = 10 -> │ line = 1 }), -> │ "Constraint satisfaction error. -> │ Got: string -> │ Fails to satisfy: number")] -> │ uri = -> │ -> "file:///c:/home/git/polyglot/target/spiral_Eval/packages/c030f84f8e553befcbdd9a -> abeace67685221d91a46e3655199e42df713504aa0/main.spi" })) / outputContent: -> │ -> │ 00:00:23 d #89 Supervisor.buildFile / takeWhileInclusive -> / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\c030f84f8e553befcbdd9aabeace676 -> 85221d91a46e3655199e42df713504aa0\main.spi / errors: [ -> │ [ -> │ "main.spi: -> │ Constraint satisfaction error. -> │ Got: string -> │ Fails to satisfy: number", -> │ { -> │ "TypeErrors": { -> │ "errors": [ -> │ [ -> │ [ -> │ { -> │ "character": 8, -> │ "line": 1 -> │ }, -> │ { -> │ "character": 10, -> │ "line": 1 -> │ } -> │ ], -> │ "Constraint satisfaction error. -> │ Got: string -> │ Fails to satisfy: number" -> │ ] -> │ ], -> │ "uri": -> "file:///c:/home/git/polyglot/target/spiral_Eval/packages/c030f84f8e553befcbdd9a -> abeace67685221d91a46e3655199e42df713504aa0/main.spi" -> │ } -> │ } -> │ ] -> │ ] / typeErrorCount: 1 / retry: 0 / outputContent: -> │ -> │ 00:00:30 v #20 async.run_with_timeout_async / { timeout -> = 180 } -> │ 00:00:23 d #90 Supervisor.buildFile / takeWhileInclusive -> / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\c030f84f8e553befcbdd9aabeace676 -> 85221d91a46e3655199e42df713504aa0\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 1 / outputContent: -> │ -> │ 00:00:23 d #91 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\c030f84f8e553befcbdd9aabeace676 -> 85221d91a46e3655199e42df713504aa0\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 1 / error: / outputContent: -> │ -> │ 00:00:23 d #92 Supervisor.buildFile / takeWhileInclusive -> / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\c030f84f8e553befcbdd9aabeace676 -> 85221d91a46e3655199e42df713504aa0\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 1 / outputContent: -> │ -> │ 00:00:23 v #93 Supervisor.sendJson / port: 13805 / json: -> {"FileOpen":{"spiText":"inl main () =\n 1 \u002B -> \u0022\u0022\n","uri":"file:///c:/home/git/polyg...et/spiral_Eval/packages/c030f -> 84f8e553befcbdd9aabeace67685221d91a46e3655199e42df713504aa0/main.spi"}} / -> result: -> │ 00:00:23 v #94 Supervisor.sendJson / port: 13805 / json: -> {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/target/spir -> al_Eval/packages/c030f84f8e553befcbdd9aabeace67685221d91a46e3655199e42df713504aa -> 0/main.spi"}} / result: -> │ 00:00:23 d #95 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\c030f84f8e553befcbdd9aabeace676 -> 85221d91a46e3655199e42df713504aa0\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 1 / error: Some((main.spi: -> │ Constraint satisfaction error. -> │ Got: string -> │ Fails to satisfy: number, TypeErrors -> │ { errors = -> │ [(({ character = 8 -> │ line = 1 }, { character = 10 -> │ line = 1 }), -> │ "Constraint satisfaction error. -> │ Got: string -> │ Fails to satisfy: number")] -> │ uri = -> │ -> "file:///c:/home/git/polyglot/target/spiral_Eval/packages/c030f84f8e553befcbdd9a -> abeace67685221d91a46e3655199e42df713504aa0/main.spi" })) / outputContent: -> │ -> │ 00:00:24 d #96 Supervisor.buildFile / takeWhileInclusive -> / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\c030f84f8e553befcbdd9aabeace676 +> c:/home/git\polyglot\target/spiral_Eval\packages\c030f84f8e553befcbdd9aabeace676 > 85221d91a46e3655199e42df713504aa0\main.spi / errors: [ > │ [ > │ "main.spi: @@ -16980,13 +16123,9 @@ > │ } > │ } > │ ] -> │ ] / typeErrorCount: 0 / retry: 1 / outputContent: +> │ ] / typeErrorCount: 0 / retry: 0 / outputContent: > │ -> │ 00:00:24 d #97 FileSystem.watchWithFilter / Disposing -> watch stream / filter: FileName, LastWrite -> │ 00:00:30 v #21 async.run_with_timeout_async / { timeout -> = 100 } -> │ 00:00:24 d #98 FileSystem.watchWithFilter / Disposing +> │ 00:00:07 d #32 FileSystem.watchWithFilter / Disposing > watch stream / filter: FileName, LastWrite > │ Some (None, ["main.spi: > │ Constraint satisfaction error. @@ -17017,240 +16156,40 @@ > ) > ) > -> ── [ 4.16s - stdout ] ────────────────────────────────────────────────────────── -> │ 00:00:30 v #22 async.run_with_timeout_async / { timeout -> = 180 } -> │ 00:00:27 d #25 runtime.execute_with_options_async / { -> file_name = dotnet; arguments = US5_0 -> │ ""C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral -> Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 -> --default-int i32 --default-float f64"; options = { command = dotnet -> "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language -> 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 -> --default-int i32 --default-float f64; cancellation_token = Some -> System.Threading.CancellationToken; environment_variables = [||]; on_line = Some -> <fun:compiler@22-4>; stdin = None; trace = true; working_directory = Some -> "C:\home\git\polyglot" } } -> │ 00:00:28 v #26 > 00:00:00 d #1 pwd: -> C:\home\git\polyglot -> │ 00:00:28 v #27 > 00:00:00 d #2 dllPath: -> C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language -> 2\artifacts\bin\The Spiral Language 2\release -> │ 00:00:28 v #28 > 00:00:00 d #3 targetDir: -> C:\home\git\polyglot\target/spiral_Eval -> │ 00:00:31 v #23 async.run_with_timeout_async / { timeout -> = 100 } -> │ 00:00:31 v #24 async.run_with_timeout_async / { timeout -> = 100 } -> │ 00:00:28 v #29 > Starting the Spiral Server. It is bound -> to: http://localhost:13805 -> │ 00:00:31 v #25 async.run_with_timeout_async / { timeout -> = 100 } -> │ 00:00:25 v #99 Supervisor.sendJson / port: 13805 / json: -> {"Ping":true} / result: -> │ 00:00:25 v #100 Supervisor.awaitCompiler / Ping / -> result: 'Some null' / port: 13805 / retry: 1 -> │ 00:00:28 v #30 > Server bound to: http://localhost:13805 -> │ 00:00:25 d #101 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\6cdeec507f9de5ba9c8429cfa7049b7 -> 77a622aa3bf7333b151c767fde35dc5d1\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 0 / outputContent: -> │ -> │ 00:00:25 d #102 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\6cdeec507f9de5ba9c8429cfa7049b7 -> 77a622aa3bf7333b151c767fde35dc5d1\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: / outputContent: -> │ -> │ 00:00:25 d #103 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\6cdeec507f9de5ba9c8429cfa7049b7 -> 77a622aa3bf7333b151c767fde35dc5d1\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 0 / outputContent: -> │ -> │ 00:00:25 v #104 Supervisor.sendJson / port: 13805 / -> json: {"FileOpen":{"spiText":"inl main () =\n x \u002B -> y\n","uri":"file:///c:/home/git/polyglot/target/spiral_Eval/packages/6cdeec507f9 -> de5ba9c8429cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi"}} / result: -> │ 00:00:25 v #105 Supervisor.sendJson / port: 13805 / -> json: -> {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/target/spir -> al_Eval/packages/6cdeec507f9de5ba9c8429cfa7049b777a622aa3bf7333b151c767fde35dc5d -> 1/main.spi"}} / result: -> │ 00:00:25 d #106 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\6cdeec507f9de5ba9c8429cfa7049b7 -> 77a622aa3bf7333b151c767fde35dc5d1\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: / outputContent: -> │ -> │ 00:00:25 d #107 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\6cdeec507f9de5ba9c8429cfa7049b7 -> 77a622aa3bf7333b151c767fde35dc5d1\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 0 / outputContent: -> │ -> │ 00:00:26 d #108 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\6cdeec507f9de5ba9c8429cfa7049b7 -> 77a622aa3bf7333b151c767fde35dc5d1\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: / outputContent: -> │ -> │ 00:00:26 d #109 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\6cdeec507f9de5ba9c8429cfa7049b7 -> 77a622aa3bf7333b151c767fde35dc5d1\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 0 / outputContent: -> │ -> │ 00:00:26 d #110 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\6cdeec507f9de5ba9c8429cfa7049b7 -> 77a622aa3bf7333b151c767fde35dc5d1\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: / outputContent: -> │ -> │ 00:00:26 d #111 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\6cdeec507f9de5ba9c8429cfa7049b7 -> 77a622aa3bf7333b151c767fde35dc5d1\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 0 / outputContent: -> │ -> │ 00:00:27 d #112 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\6cdeec507f9de5ba9c8429cfa7049b7 -> 77a622aa3bf7333b151c767fde35dc5d1\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: / outputContent: -> │ -> │ 00:00:27 d #113 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\6cdeec507f9de5ba9c8429cfa7049b7 +> ── [ 373.06ms - stdout ] ─────────────────────────────────────────────────────── +> │ 00:00:16 v #5 async.run_with_timeout_async / { timeout = +> 180 } +> │ 00:00:08 d #33 Supervisor.buildFile / takeWhileInclusive +> / path: +> c:/home/git\polyglot\target/spiral_Eval\packages\6cdeec507f9de5ba9c8429cfa7049b7 > 77a622aa3bf7333b151c767fde35dc5d1\main.spi / errors: [] / typeErrorCount: 0 / > retry: 0 / outputContent: > │ -> │ 00:00:27 d #114 Supervisor.buildFile / AsyncSeq.scan / +> │ 00:00:08 d #34 Supervisor.buildFile / AsyncSeq.scan / > path: -> C:\home\git\polyglot\target/spiral_Eval\packages\6cdeec507f9de5ba9c8429cfa7049b7 +> c:/home/git\polyglot\target/spiral_Eval\packages\6cdeec507f9de5ba9c8429cfa7049b7 > 77a622aa3bf7333b151c767fde35dc5d1\main.spi / errors: [] / outputContentResult: > / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ -> │ 00:00:27 d #115 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\6cdeec507f9de5ba9c8429cfa7049b7 +> │ 00:00:08 d #35 Supervisor.buildFile / takeWhileInclusive +> / path: +> c:/home/git\polyglot\target/spiral_Eval\packages\6cdeec507f9de5ba9c8429cfa7049b7 > 77a622aa3bf7333b151c767fde35dc5d1\main.spi / errors: [] / typeErrorCount: 0 / > retry: 0 / outputContent: > │ -> │ 00:00:27 d #116 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\6cdeec507f9de5ba9c8429cfa7049b7 -> 77a622aa3bf7333b151c767fde35dc5d1\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: Some((File main has a type error -> somewhere in its path., FatalError "File main has a type error somewhere in its -> path.")) / outputContent: -> │ -> │ 00:00:27 d #117 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\6cdeec507f9de5ba9c8429cfa7049b7 -> 77a622aa3bf7333b151c767fde35dc5d1\main.spi / errors: [] / typeErrorCount: 1 / -> retry: 0 / outputContent: -> │ -> │ 00:00:27 d #118 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\6cdeec507f9de5ba9c8429cfa7049b7 -> 77a622aa3bf7333b151c767fde35dc5d1\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 1 / retry: 0 / error: Some((main.spi: -> │ Unbound variable: x. -> │ Unbound variable: y., TypeErrors -> │ { errors = -> │ [(({ character = 4 -> │ line = 1 }, { character = 5 -> │ line = 1 }), "Unbound variable: x."); -> │ (({ character = 8 -> │ line = 1 }, { character = 9 -> │ line = 1 }), "Unbound variable: y.")] -> │ uri = -> │ -> "file:///c:/home/git/polyglot/target/spiral_Eval/packages/6cdeec507f9de5ba9c8429 -> cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi" })) / outputContent: -> │ -> │ 00:00:27 d #119 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\6cdeec507f9de5ba9c8429cfa7049b7 -> 77a622aa3bf7333b151c767fde35dc5d1\main.spi / errors: [ -> │ [ -> │ "main.spi: -> │ Unbound variable: x. -> │ Unbound variable: y.", -> │ { -> │ "TypeErrors": { -> │ "errors": [ -> │ [ -> │ [ -> │ { -> │ "character": 4, -> │ "line": 1 -> │ }, -> │ { -> │ "character": 5, -> │ "line": 1 -> │ } -> │ ], -> │ "Unbound variable: x." -> │ ], -> │ [ -> │ [ -> │ { -> │ "character": 8, -> │ "line": 1 -> │ }, -> │ { -> │ "character": 9, -> │ "line": 1 -> │ } -> │ ], -> │ "Unbound variable: y." -> │ ] -> │ ], -> │ "uri": -> "file:///c:/home/git/polyglot/target/spiral_Eval/packages/6cdeec507f9de5ba9c8429 -> cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi" -> │ } -> │ } -> │ ] -> │ ] / typeErrorCount: 1 / retry: 0 / outputContent: -> │ -> │ 00:00:34 v #26 async.run_with_timeout_async / { timeout -> = 180 } -> │ 00:00:28 d #120 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\6cdeec507f9de5ba9c8429cfa7049b7 -> 77a622aa3bf7333b151c767fde35dc5d1\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 1 / outputContent: -> │ -> │ 00:00:28 d #121 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\6cdeec507f9de5ba9c8429cfa7049b7 -> 77a622aa3bf7333b151c767fde35dc5d1\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 1 / error: / outputContent: -> │ -> │ 00:00:28 d #122 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\6cdeec507f9de5ba9c8429cfa7049b7 -> 77a622aa3bf7333b151c767fde35dc5d1\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 1 / outputContent: -> │ -> │ 00:00:28 v #123 Supervisor.sendJson / port: 13805 / -> json: {"FileOpen":{"spiText":"inl main () =\n x \u002B +> │ 00:00:08 v #36 Supervisor.sendJson / port: 13805 / json: +> {"FileOpen":{"spiText":"inl main () =\n x \u002B > y\n","uri":"file:///c:/home/git/polyglot/target/spiral_Eval/packages/6cdeec507f9 > de5ba9c8429cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi"}} / result: -> │ 00:00:28 v #124 Supervisor.sendJson / port: 13805 / -> json: +> │ 00:00:08 v #37 Supervisor.sendJson / port: 13805 / json: > {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/target/spir > al_Eval/packages/6cdeec507f9de5ba9c8429cfa7049b777a622aa3bf7333b151c767fde35dc5d > 1/main.spi"}} / result: -> │ 00:00:28 d #125 Supervisor.buildFile / AsyncSeq.scan / +> │ 00:00:08 d #38 Supervisor.buildFile / AsyncSeq.scan / > path: -> C:\home\git\polyglot\target/spiral_Eval\packages\6cdeec507f9de5ba9c8429cfa7049b7 +> c:/home/git\polyglot\target/spiral_Eval\packages\6cdeec507f9de5ba9c8429cfa7049b7 > 77a622aa3bf7333b151c767fde35dc5d1\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 1 / error: Some((main.spi: +> / typeErrorCount: 0 / retry: 0 / error: Some((main.spi: > │ Unbound variable: x. > │ Unbound variable: y., TypeErrors > │ { errors = @@ -17265,9 +16204,9 @@ > "file:///c:/home/git/polyglot/target/spiral_Eval/packages/6cdeec507f9de5ba9c8429 > cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi" })) / outputContent: > │ -> │ 00:00:28 d #126 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\6cdeec507f9de5ba9c8429cfa7049b7 +> │ 00:00:08 d #39 Supervisor.buildFile / takeWhileInclusive +> / path: +> c:/home/git\polyglot\target/spiral_Eval\packages\6cdeec507f9de5ba9c8429cfa7049b7 > 77a622aa3bf7333b151c767fde35dc5d1\main.spi / errors: [ > │ [ > │ "main.spi: @@ -17309,13 +16248,9 @@ > │ } > │ } > │ ] -> │ ] / typeErrorCount: 0 / retry: 1 / outputContent: +> │ ] / typeErrorCount: 0 / retry: 0 / outputContent: > │ -> │ 00:00:28 d #127 FileSystem.watchWithFilter / Disposing -> watch stream / filter: FileName, LastWrite -> │ 00:00:34 v #27 async.run_with_timeout_async / { timeout -> = 100 } -> │ 00:00:28 d #128 FileSystem.watchWithFilter / Disposing +> │ 00:00:08 d #40 FileSystem.watchWithFilter / Disposing > watch stream / filter: FileName, LastWrite > │ Some (None, ["main.spi: > │ Unbound variable: x. @@ -17347,143 +16282,39 @@ > ) > ) > -> ── [ 4.67s - stdout ] ────────────────────────────────────────────────────────── -> │ 00:00:34 v #28 async.run_with_timeout_async / { timeout -> = 180 } -> │ 00:00:32 d #31 runtime.execute_with_options_async / { -> file_name = dotnet; arguments = US5_0 -> │ ""C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral -> Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 -> --default-int i32 --default-float f64"; options = { command = dotnet -> "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language -> 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 -> --default-int i32 --default-float f64; cancellation_token = Some -> System.Threading.CancellationToken; environment_variables = [||]; on_line = Some -> <fun:compiler@22-4>; stdin = None; trace = true; working_directory = Some -> "C:\home\git\polyglot" } } -> │ 00:00:32 v #32 > 00:00:00 d #1 pwd: -> C:\home\git\polyglot -> │ 00:00:32 v #33 > 00:00:00 d #2 dllPath: -> C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language -> 2\artifacts\bin\The Spiral Language 2\release -> │ 00:00:32 v #34 > 00:00:00 d #3 targetDir: -> C:\home\git\polyglot\target/spiral_Eval -> │ 00:00:35 v #29 async.run_with_timeout_async / { timeout -> = 100 } -> │ 00:00:35 v #30 async.run_with_timeout_async / { timeout -> = 100 } -> │ 00:00:32 v #35 > Starting the Spiral Server. It is bound -> to: http://localhost:13805 -> │ 00:00:35 v #31 async.run_with_timeout_async / { timeout -> = 100 } -> │ 00:00:29 v #129 Supervisor.sendJson / port: 13805 / -> json: {"Ping":true} / result: -> │ 00:00:29 v #130 Supervisor.awaitCompiler / Ping / -> result: 'Some null' / port: 13805 / retry: 1 -> │ 00:00:32 v #36 > Server bound to: http://localhost:13805 -> │ 00:00:29 d #131 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\667528659dc2e5af51a6ec17f1774bd +> ── [ 561.19ms - stdout ] ─────────────────────────────────────────────────────── +> │ 00:00:16 v #6 async.run_with_timeout_async / { timeout = +> 180 } +> │ 00:00:08 d #41 Supervisor.buildFile / takeWhileInclusive +> / path: +> c:/home/git\polyglot\target/spiral_Eval\packages\667528659dc2e5af51a6ec17f1774bd > 7ffff5b5a47e4e117eec78e740987f29a\main.spi / errors: [] / typeErrorCount: 0 / > retry: 0 / outputContent: > │ -> │ 00:00:29 d #132 Supervisor.buildFile / AsyncSeq.scan / +> │ 00:00:08 d #42 Supervisor.buildFile / AsyncSeq.scan / > path: -> C:\home\git\polyglot\target/spiral_Eval\packages\667528659dc2e5af51a6ec17f1774bd +> c:/home/git\polyglot\target/spiral_Eval\packages\667528659dc2e5af51a6ec17f1774bd > 7ffff5b5a47e4e117eec78e740987f29a\main.spi / errors: [] / outputContentResult: > / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ -> │ 00:00:29 d #133 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\667528659dc2e5af51a6ec17f1774bd +> │ 00:00:08 d #43 Supervisor.buildFile / takeWhileInclusive +> / path: +> c:/home/git\polyglot\target/spiral_Eval\packages\667528659dc2e5af51a6ec17f1774bd > 7ffff5b5a47e4e117eec78e740987f29a\main.spi / errors: [] / typeErrorCount: 0 / > retry: 0 / outputContent: > │ -> │ 00:00:29 v #134 Supervisor.sendJson / port: 13805 / -> json: {"FileOpen":{"spiText":"\ninl main () =\n real\n inl unbox_real -> forall a. (obj : a) : a +> │ 00:00:08 v #44 Supervisor.sendJson / port: 13805 / json: +> {"FileOpen":{"spiText":"\ninl main () =\n real\n inl unbox_real forall +> a. (obj : a) : a > =\...et/spiral_Eval/packages/667528659dc2e5af51a6ec17f1774bd7ffff5b5a47e4e117eec > 78e740987f29a/main.spi"}} / result: -> │ 00:00:29 v #135 Supervisor.sendJson / port: 13805 / -> json: +> │ 00:00:08 v #45 Supervisor.sendJson / port: 13805 / json: > {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/target/spir > al_Eval/packages/667528659dc2e5af51a6ec17f1774bd7ffff5b5a47e4e117eec78e740987f29 > a/main.spi"}} / result: -> │ 00:00:29 d #136 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\667528659dc2e5af51a6ec17f1774bd -> 7ffff5b5a47e4e117eec78e740987f29a\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: / outputContent: -> │ -> │ 00:00:29 d #137 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\667528659dc2e5af51a6ec17f1774bd -> 7ffff5b5a47e4e117eec78e740987f29a\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 0 / outputContent: -> │ -> │ 00:00:30 d #138 Supervisor.buildFile / AsyncSeq.scan / +> │ 00:00:08 d #46 Supervisor.buildFile / AsyncSeq.scan / > path: -> C:\home\git\polyglot\target/spiral_Eval\packages\667528659dc2e5af51a6ec17f1774bd -> 7ffff5b5a47e4e117eec78e740987f29a\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: / outputContent: -> │ -> │ 00:00:30 d #139 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\667528659dc2e5af51a6ec17f1774bd -> 7ffff5b5a47e4e117eec78e740987f29a\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 0 / outputContent: -> │ -> │ 00:00:30 d #140 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\667528659dc2e5af51a6ec17f1774bd -> 7ffff5b5a47e4e117eec78e740987f29a\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: / outputContent: -> │ -> │ 00:00:30 d #141 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\667528659dc2e5af51a6ec17f1774bd -> 7ffff5b5a47e4e117eec78e740987f29a\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 0 / outputContent: -> │ -> │ 00:00:31 d #142 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\667528659dc2e5af51a6ec17f1774bd -> 7ffff5b5a47e4e117eec78e740987f29a\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: / outputContent: -> │ -> │ 00:00:31 d #143 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\667528659dc2e5af51a6ec17f1774bd -> 7ffff5b5a47e4e117eec78e740987f29a\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 0 / outputContent: -> │ -> │ 00:00:31 d #144 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\667528659dc2e5af51a6ec17f1774bd -> 7ffff5b5a47e4e117eec78e740987f29a\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: / outputContent: -> │ -> │ 00:00:31 d #145 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\667528659dc2e5af51a6ec17f1774bd -> 7ffff5b5a47e4e117eec78e740987f29a\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 0 / outputContent: -> │ -> │ 00:00:32 d #146 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\667528659dc2e5af51a6ec17f1774bd -> 7ffff5b5a47e4e117eec78e740987f29a\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: / outputContent: -> │ -> │ 00:00:32 d #147 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\667528659dc2e5af51a6ec17f1774bd -> 7ffff5b5a47e4e117eec78e740987f29a\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 0 / outputContent: -> │ -> │ 00:00:32 d #148 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\667528659dc2e5af51a6ec17f1774bd +> c:/home/git\polyglot\target/spiral_Eval\packages\667528659dc2e5af51a6ec17f1774bd > 7ffff5b5a47e4e117eec78e740987f29a\main.spi / errors: [] / outputContentResult: > / typeErrorCount: 0 / retry: 0 / error: Some((Cannot apply a forall with a > term., TracedError @@ -17508,9 +16339,9 @@ > │ ^ > │ "] })) / outputContent: > │ -> │ 00:00:32 d #149 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\667528659dc2e5af51a6ec17f1774bd +> │ 00:00:08 d #47 Supervisor.buildFile / takeWhileInclusive +> / path: +> c:/home/git\polyglot\target/spiral_Eval\packages\667528659dc2e5af51a6ec17f1774bd > 7ffff5b5a47e4e117eec78e740987f29a\main.spi / errors: [ > │ [ > │ "Cannot apply a forall with a term.", @@ -17542,9 +16373,7 @@ > │ ] > │ ] / typeErrorCount: 0 / retry: 0 / outputContent: > │ -> │ 00:00:39 v #32 async.run_with_timeout_async / { timeout -> = 100 } -> │ 00:00:32 d #150 FileSystem.watchWithFilter / Disposing +> │ 00:00:08 d #48 FileSystem.watchWithFilter / Disposing > watch stream / filter: FileName, LastWrite > │ Some (None, ["Cannot apply a forall with a term."]) > │ @@ -17573,151 +16402,47 @@ > ) > ) > -> ── [ 4.53s - stdout ] ────────────────────────────────────────────────────────── -> │ 00:00:39 v #33 async.run_with_timeout_async / { timeout -> = 180 } -> │ 00:00:36 d #37 runtime.execute_with_options_async / { -> file_name = dotnet; arguments = US5_0 -> │ ""C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral -> Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 -> --default-int i32 --default-float f64"; options = { command = dotnet -> "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language -> 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 -> --default-int i32 --default-float f64; cancellation_token = Some -> System.Threading.CancellationToken; environment_variables = [||]; on_line = Some -> <fun:compiler@22-4>; stdin = None; trace = true; working_directory = Some -> "C:\home\git\polyglot" } } -> │ 00:00:37 v #38 > 00:00:00 d #1 pwd: -> C:\home\git\polyglot -> │ 00:00:37 v #39 > 00:00:00 d #2 dllPath: -> C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language -> 2\artifacts\bin\The Spiral Language 2\release -> │ 00:00:37 v #40 > 00:00:00 d #3 targetDir: -> C:\home\git\polyglot\target/spiral_Eval -> │ 00:00:39 v #34 async.run_with_timeout_async / { timeout -> = 100 } -> │ 00:00:40 v #35 async.run_with_timeout_async / { timeout -> = 100 } -> │ 00:00:37 v #41 > Starting the Spiral Server. It is bound -> to: http://localhost:13805 -> │ 00:00:40 v #36 async.run_with_timeout_async / { timeout -> = 100 } -> │ 00:00:34 v #151 Supervisor.sendJson / port: 13805 / -> json: {"Ping":true} / result: -> │ 00:00:34 v #152 Supervisor.awaitCompiler / Ping / -> result: 'Some null' / port: 13805 / retry: 1 -> │ 00:00:37 v #42 > Server bound to: http://localhost:13805 -> │ 00:00:34 d #153 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\0ba44c42df309b790acdf4f9fc55fcc +> ── [ 572.83ms - stdout ] ─────────────────────────────────────────────────────── +> │ 00:00:17 v #7 async.run_with_timeout_async / { timeout = +> 180 } +> │ 00:00:08 d #49 Supervisor.buildFile / takeWhileInclusive +> / path: +> c:/home/git\polyglot\target/spiral_Eval\packages\0ba44c42df309b790acdf4f9fc55fcc > 7912380f5dd2d90fad118bad793251c4f\main.spi / errors: [] / typeErrorCount: 0 / > retry: 0 / outputContent: > │ -> │ 00:00:34 d #154 Supervisor.buildFile / AsyncSeq.scan / +> │ 00:00:08 d #50 Supervisor.buildFile / AsyncSeq.scan / > path: -> C:\home\git\polyglot\target/spiral_Eval\packages\0ba44c42df309b790acdf4f9fc55fcc +> c:/home/git\polyglot\target/spiral_Eval\packages\0ba44c42df309b790acdf4f9fc55fcc > 7912380f5dd2d90fad118bad793251c4f\main.spi / errors: [] / outputContentResult: > / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ -> │ 00:00:34 d #155 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\0ba44c42df309b790acdf4f9fc55fcc +> │ 00:00:08 d #51 Supervisor.buildFile / takeWhileInclusive +> / path: +> c:/home/git\polyglot\target/spiral_Eval\packages\0ba44c42df309b790acdf4f9fc55fcc > 7912380f5dd2d90fad118bad793251c4f\main.spi / errors: [] / typeErrorCount: 0 / > retry: 0 / outputContent: > │ -> │ 00:00:34 v #156 Supervisor.sendJson / port: 13805 / -> json: {"FileOpen":{"spiText":"\ninl main () =\n real\n inl unbox_real -> forall a. (obj : a) : a +> │ 00:00:08 v #52 Supervisor.sendJson / port: 13805 / json: +> {"FileOpen":{"spiText":"\ninl main () =\n real\n inl unbox_real forall +> a. (obj : a) : a > =\...et/spiral_Eval/packages/0ba44c42df309b790acdf4f9fc55fcc7912380f5dd2d90fad11 > 8bad793251c4f/main.spi"}} / result: -> │ 00:00:34 v #157 Supervisor.sendJson / port: 13805 / -> json: +> │ 00:00:08 v #53 Supervisor.sendJson / port: 13805 / json: > {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/target/spir > al_Eval/packages/0ba44c42df309b790acdf4f9fc55fcc7912380f5dd2d90fad118bad793251c4 > f/main.spi"}} / result: -> │ 00:00:34 d #158 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\0ba44c42df309b790acdf4f9fc55fcc -> 7912380f5dd2d90fad118bad793251c4f\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: / outputContent: -> │ -> │ 00:00:34 d #159 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\0ba44c42df309b790acdf4f9fc55fcc -> 7912380f5dd2d90fad118bad793251c4f\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 0 / outputContent: -> │ -> │ 00:00:35 d #160 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\0ba44c42df309b790acdf4f9fc55fcc -> 7912380f5dd2d90fad118bad793251c4f\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: / outputContent: -> │ -> │ 00:00:35 d #161 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\0ba44c42df309b790acdf4f9fc55fcc -> 7912380f5dd2d90fad118bad793251c4f\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 0 / outputContent: -> │ -> │ 00:00:35 d #162 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\0ba44c42df309b790acdf4f9fc55fcc -> 7912380f5dd2d90fad118bad793251c4f\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: / outputContent: -> │ -> │ 00:00:35 d #163 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\0ba44c42df309b790acdf4f9fc55fcc -> 7912380f5dd2d90fad118bad793251c4f\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 0 / outputContent: -> │ -> │ 00:00:36 d #164 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\0ba44c42df309b790acdf4f9fc55fcc -> 7912380f5dd2d90fad118bad793251c4f\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: / outputContent: -> │ -> │ 00:00:36 d #165 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\0ba44c42df309b790acdf4f9fc55fcc -> 7912380f5dd2d90fad118bad793251c4f\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 0 / outputContent: -> │ -> │ 00:00:36 d #166 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\0ba44c42df309b790acdf4f9fc55fcc -> 7912380f5dd2d90fad118bad793251c4f\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: / outputContent: -> │ -> │ 00:00:36 d #167 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\0ba44c42df309b790acdf4f9fc55fcc -> 7912380f5dd2d90fad118bad793251c4f\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 0 / outputContent: -> │ -> │ 00:00:37 d #168 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\0ba44c42df309b790acdf4f9fc55fcc -> 7912380f5dd2d90fad118bad793251c4f\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: / outputContent: -> │ -> │ 00:00:37 d #169 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\0ba44c42df309b790acdf4f9fc55fcc -> 7912380f5dd2d90fad118bad793251c4f\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 0 / outputContent: -> │ -> │ 00:00:37 d #170 Supervisor.buildFile / AsyncSeq.scan / +> │ 00:00:09 d #54 Supervisor.buildFile / AsyncSeq.scan / > path: -> C:\home\git\polyglot\target/spiral_Eval\packages\0ba44c42df309b790acdf4f9fc55fcc +> c:/home/git\polyglot\target/spiral_Eval\packages\0ba44c42df309b790acdf4f9fc55fcc > 7912380f5dd2d90fad118bad793251c4f\main.spi / errors: [] / outputContentResult: > / typeErrorCount: 0 / retry: 0 / error: Some((The main function should not have > a forall., TracedError { message = "The main function should not have a forall." > │ trace = [] })) / outputContent: > │ -> │ 00:00:37 d #171 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\0ba44c42df309b790acdf4f9fc55fcc +> │ 00:00:09 d #55 Supervisor.buildFile / takeWhileInclusive +> / path: +> c:/home/git\polyglot\target/spiral_Eval\packages\0ba44c42df309b790acdf4f9fc55fcc > 7912380f5dd2d90fad118bad793251c4f\main.spi / errors: [ > │ [ > │ "The main function should not have a forall.", @@ -17731,9 +16456,7 @@ > │ ] > │ ] / typeErrorCount: 0 / retry: 0 / outputContent: > │ -> │ 00:00:43 v #37 async.run_with_timeout_async / { timeout -> = 100 } -> │ 00:00:37 d #172 FileSystem.watchWithFilter / Disposing +> │ 00:00:09 d #56 FileSystem.watchWithFilter / Disposing > watch stream / filter: FileName, LastWrite > │ Some (None, ["The main function should not have a forall."]) > │ @@ -17770,157 +16493,51 @@ > ) > ) > -> ── [ 4.51s - stdout ] ────────────────────────────────────────────────────────── -> │ 00:00:44 v #38 async.run_with_timeout_async / { timeout -> = 180 } -> │ 00:00:41 d #43 runtime.execute_with_options_async / { -> file_name = dotnet; arguments = US5_0 -> │ ""C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral -> Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 -> --default-int i32 --default-float f64"; options = { command = dotnet -> "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language -> 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 -> --default-int i32 --default-float f64; cancellation_token = Some -> System.Threading.CancellationToken; environment_variables = [||]; on_line = Some -> <fun:compiler@22-4>; stdin = None; trace = true; working_directory = Some -> "C:\home\git\polyglot" } } -> │ 00:00:41 v #44 > 00:00:00 d #1 pwd: -> C:\home\git\polyglot -> │ 00:00:41 v #45 > 00:00:00 d #2 dllPath: -> C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language -> 2\artifacts\bin\The Spiral Language 2\release -> │ 00:00:41 v #46 > 00:00:00 d #3 targetDir: -> C:\home\git\polyglot\target/spiral_Eval -> │ 00:00:44 v #39 async.run_with_timeout_async / { timeout -> = 100 } -> │ 00:00:44 v #40 async.run_with_timeout_async / { timeout -> = 100 } -> │ 00:00:41 v #47 > Starting the Spiral Server. It is bound -> to: http://localhost:13805 -> │ 00:00:44 v #41 async.run_with_timeout_async / { timeout -> = 100 } -> │ 00:00:38 v #173 Supervisor.sendJson / port: 13805 / -> json: {"Ping":true} / result: -> │ 00:00:38 v #174 Supervisor.awaitCompiler / Ping / -> result: 'Some null' / port: 13805 / retry: 1 -> │ 00:00:42 v #48 > Server bound to: http://localhost:13805 -> │ 00:00:38 d #175 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\c127414de2a2a92d9fd93ea5a8e9312 +> ── [ 549.93ms - stdout ] ─────────────────────────────────────────────────────── +> │ 00:00:17 v #8 async.run_with_timeout_async / { timeout = +> 180 } +> │ 00:00:09 d #57 Supervisor.buildFile / takeWhileInclusive +> / path: +> c:/home/git\polyglot\target/spiral_Eval\packages\c127414de2a2a92d9fd93ea5a8e9312 > a6aad9129ffd3cbd56ac7f0327106f1db\main.spi / errors: [] / typeErrorCount: 0 / > retry: 0 / outputContent: > │ -> │ 00:00:38 d #176 Supervisor.buildFile / AsyncSeq.scan / +> │ 00:00:09 d #58 Supervisor.buildFile / AsyncSeq.scan / > path: -> C:\home\git\polyglot\target/spiral_Eval\packages\c127414de2a2a92d9fd93ea5a8e9312 +> c:/home/git\polyglot\target/spiral_Eval\packages\c127414de2a2a92d9fd93ea5a8e9312 > a6aad9129ffd3cbd56ac7f0327106f1db\main.spi / errors: [] / outputContentResult: > / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ -> │ 00:00:38 d #177 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\c127414de2a2a92d9fd93ea5a8e9312 +> │ 00:00:09 d #59 Supervisor.buildFile / takeWhileInclusive +> / path: +> c:/home/git\polyglot\target/spiral_Eval\packages\c127414de2a2a92d9fd93ea5a8e9312 > a6aad9129ffd3cbd56ac7f0327106f1db\main.spi / errors: [] / typeErrorCount: 0 / > retry: 0 / outputContent: > │ -> │ 00:00:38 v #178 Supervisor.sendJson / port: 13805 / -> json: {"FileOpen":{"spiText":"\ninl init_series start end inc =\n inl total : -> f64 = conv ((end - +> │ 00:00:09 v #60 Supervisor.sendJson / port: 13805 / json: +> {"FileOpen":{"spiText":"\ninl init_series start end inc =\n inl total : f64 = +> conv ((end - > start)...et/spiral_Eval/packages/c127414de2a2a92d9fd93ea5a8e9312a6aad9129ffd3cbd > 56ac7f0327106f1db/main.spi"}} / result: -> │ 00:00:38 v #179 Supervisor.sendJson / port: 13805 / -> json: +> │ 00:00:09 v #61 Supervisor.sendJson / port: 13805 / json: > {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/target/spir > al_Eval/packages/c127414de2a2a92d9fd93ea5a8e9312a6aad9129ffd3cbd56ac7f0327106f1d > b/main.spi"}} / result: -> │ 00:00:39 d #180 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\c127414de2a2a92d9fd93ea5a8e9312 -> a6aad9129ffd3cbd56ac7f0327106f1db\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: / outputContent: -> │ -> │ 00:00:39 d #181 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\c127414de2a2a92d9fd93ea5a8e9312 -> a6aad9129ffd3cbd56ac7f0327106f1db\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 0 / outputContent: -> │ -> │ 00:00:39 d #182 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\c127414de2a2a92d9fd93ea5a8e9312 -> a6aad9129ffd3cbd56ac7f0327106f1db\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: / outputContent: -> │ -> │ 00:00:39 d #183 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\c127414de2a2a92d9fd93ea5a8e9312 -> a6aad9129ffd3cbd56ac7f0327106f1db\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 0 / outputContent: -> │ -> │ 00:00:40 d #184 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\c127414de2a2a92d9fd93ea5a8e9312 -> a6aad9129ffd3cbd56ac7f0327106f1db\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: / outputContent: -> │ -> │ 00:00:40 d #185 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\c127414de2a2a92d9fd93ea5a8e9312 -> a6aad9129ffd3cbd56ac7f0327106f1db\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 0 / outputContent: -> │ -> │ 00:00:40 d #186 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\c127414de2a2a92d9fd93ea5a8e9312 -> a6aad9129ffd3cbd56ac7f0327106f1db\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: / outputContent: -> │ -> │ 00:00:40 d #187 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\c127414de2a2a92d9fd93ea5a8e9312 -> a6aad9129ffd3cbd56ac7f0327106f1db\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 0 / outputContent: -> │ -> │ 00:00:41 d #188 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\c127414de2a2a92d9fd93ea5a8e9312 -> a6aad9129ffd3cbd56ac7f0327106f1db\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: / outputContent: -> │ -> │ 00:00:41 d #189 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\c127414de2a2a92d9fd93ea5a8e9312 -> a6aad9129ffd3cbd56ac7f0327106f1db\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 0 / outputContent: -> │ -> │ 00:00:41 d #190 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\c127414de2a2a92d9fd93ea5a8e9312 -> a6aad9129ffd3cbd56ac7f0327106f1db\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: / outputContent: -> │ -> │ 00:00:41 d #191 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\c127414de2a2a92d9fd93ea5a8e9312 -> a6aad9129ffd3cbd56ac7f0327106f1db\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 0 / outputContent: -> │ -> │ 00:00:41 d #192 Supervisor.buildFile / AsyncSeq.scan / +> │ 00:00:09 d #62 Supervisor.buildFile / AsyncSeq.scan / > path: -> C:\home\git\polyglot\target/spiral_Eval\packages\c127414de2a2a92d9fd93ea5a8e9312 +> c:/home/git\polyglot\target/spiral_Eval\packages\c127414de2a2a92d9fd93ea5a8e9312 > a6aad9129ffd3cbd56ac7f0327106f1db\main.spi / errors: [] / outputContentResult: > / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ 0.3325000000000001 > │ -> │ 00:00:41 d #193 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\c127414de2a2a92d9fd93ea5a8e9312 +> │ 00:00:09 d #63 Supervisor.buildFile / takeWhileInclusive +> / path: +> c:/home/git\polyglot\target/spiral_Eval\packages\c127414de2a2a92d9fd93ea5a8e9312 > a6aad9129ffd3cbd56ac7f0327106f1db\main.spi / errors: [] / typeErrorCount: 0 / > retry: 0 / outputContent: > │ 0.3325000000000001 > │ -> │ 00:00:48 v #42 async.run_with_timeout_async / { timeout -> = 100 } -> │ 00:00:42 d #194 FileSystem.watchWithFilter / Disposing +> │ 00:00:09 d #64 FileSystem.watchWithFilter / Disposing > watch stream / filter: FileName, LastWrite > │ Some (Some "0.3325000000000001 > │ ", []) @@ -18030,142 +16647,39 @@ > ) > ) > -> ── [ 4.73s - stdout ] ────────────────────────────────────────────────────────── -> │ 00:00:48 v #43 async.run_with_timeout_async / { timeout -> = 180 } -> │ 00:00:45 d #49 runtime.execute_with_options_async / { -> file_name = dotnet; arguments = US5_0 -> │ ""C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral -> Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 -> --default-int i32 --default-float f64"; options = { command = dotnet -> "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language -> 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 -> --default-int i32 --default-float f64; cancellation_token = Some -> System.Threading.CancellationToken; environment_variables = [||]; on_line = Some -> <fun:compiler@22-4>; stdin = None; trace = true; working_directory = Some -> "C:\home\git\polyglot" } } -> │ 00:00:46 v #50 > 00:00:00 d #1 pwd: -> C:\home\git\polyglot -> │ 00:00:46 v #51 > 00:00:00 d #2 dllPath: -> C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language -> 2\artifacts\bin\The Spiral Language 2\release -> │ 00:00:46 v #52 > 00:00:00 d #3 targetDir: -> C:\home\git\polyglot\target/spiral_Eval -> │ 00:00:49 v #44 async.run_with_timeout_async / { timeout -> = 100 } -> │ 00:00:49 v #45 async.run_with_timeout_async / { timeout -> = 100 } -> │ 00:00:46 v #53 > Starting the Spiral Server. It is bound -> to: http://localhost:13805 -> │ 00:00:49 v #46 async.run_with_timeout_async / { timeout -> = 100 } -> │ 00:00:43 v #195 Supervisor.sendJson / port: 13805 / -> json: {"Ping":true} / result: -> │ 00:00:43 v #196 Supervisor.awaitCompiler / Ping / -> result: 'Some null' / port: 13805 / retry: 1 -> │ 00:00:46 v #54 > Server bound to: http://localhost:13805 -> │ 00:00:43 d #197 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\ca288d6928a8e761855210f25f97fdc +> ── [ 578.85ms - stdout ] ─────────────────────────────────────────────────────── +> │ 00:00:18 v #9 async.run_with_timeout_async / { timeout = +> 180 } +> │ 00:00:10 d #65 Supervisor.buildFile / takeWhileInclusive +> / path: +> c:/home/git\polyglot\target/spiral_Eval\packages\ca288d6928a8e761855210f25f97fdc > 056ee1f21be4a24b26e8533ec368831c8\main.spi / errors: [] / typeErrorCount: 0 / > retry: 0 / outputContent: > │ -> │ 00:00:43 d #198 Supervisor.buildFile / AsyncSeq.scan / +> │ 00:00:10 d #66 Supervisor.buildFile / AsyncSeq.scan / > path: -> C:\home\git\polyglot\target/spiral_Eval\packages\ca288d6928a8e761855210f25f97fdc +> c:/home/git\polyglot\target/spiral_Eval\packages\ca288d6928a8e761855210f25f97fdc > 056ee1f21be4a24b26e8533ec368831c8\main.spi / errors: [] / outputContentResult: > / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ -> │ 00:00:43 d #199 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\ca288d6928a8e761855210f25f97fdc +> │ 00:00:10 d #67 Supervisor.buildFile / takeWhileInclusive +> / path: +> c:/home/git\polyglot\target/spiral_Eval\packages\ca288d6928a8e761855210f25f97fdc > 056ee1f21be4a24b26e8533ec368831c8\main.spi / errors: [] / typeErrorCount: 0 / > retry: 0 / outputContent: > │ -> │ 00:00:43 v #200 Supervisor.sendJson / port: 13805 / -> json: {"FileOpen":{"spiText":"\ninl init_series start end inc =\n inl total : -> f64 = conv ((end - +> │ 00:00:10 v #68 Supervisor.sendJson / port: 13805 / json: +> {"FileOpen":{"spiText":"\ninl init_series start end inc =\n inl total : f64 = +> conv ((end - > start)...et/spiral_Eval/packages/ca288d6928a8e761855210f25f97fdc056ee1f21be4a24b > 26e8533ec368831c8/main.spi"}} / result: -> │ 00:00:43 v #201 Supervisor.sendJson / port: 13805 / -> json: {"BuildFile":{"backend":"Python \u002B +> │ 00:00:10 v #69 Supervisor.sendJson / port: 13805 / json: +> {"BuildFile":{"backend":"Python \u002B > Cuda","uri":"file:///c:/home/git/polyglot/target/spiral_Eval/packages/ca288d6928 > a8e761855210f25f97fdc056ee1f21be4a24b26e8533ec368831c8/main.spi"}} / result: -> │ 00:00:43 d #202 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\ca288d6928a8e761855210f25f97fdc -> 056ee1f21be4a24b26e8533ec368831c8\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: / outputContent: -> │ -> │ 00:00:43 d #203 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\ca288d6928a8e761855210f25f97fdc -> 056ee1f21be4a24b26e8533ec368831c8\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 0 / outputContent: -> │ -> │ 00:00:44 d #204 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\ca288d6928a8e761855210f25f97fdc -> 056ee1f21be4a24b26e8533ec368831c8\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: / outputContent: -> │ -> │ 00:00:44 d #205 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\ca288d6928a8e761855210f25f97fdc -> 056ee1f21be4a24b26e8533ec368831c8\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 0 / outputContent: -> │ -> │ 00:00:44 d #206 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\ca288d6928a8e761855210f25f97fdc -> 056ee1f21be4a24b26e8533ec368831c8\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: / outputContent: -> │ -> │ 00:00:44 d #207 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\ca288d6928a8e761855210f25f97fdc -> 056ee1f21be4a24b26e8533ec368831c8\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 0 / outputContent: -> │ -> │ 00:00:45 d #208 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\ca288d6928a8e761855210f25f97fdc -> 056ee1f21be4a24b26e8533ec368831c8\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: / outputContent: -> │ -> │ 00:00:45 d #209 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\ca288d6928a8e761855210f25f97fdc -> 056ee1f21be4a24b26e8533ec368831c8\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 0 / outputContent: -> │ -> │ 00:00:45 d #210 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\ca288d6928a8e761855210f25f97fdc -> 056ee1f21be4a24b26e8533ec368831c8\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: / outputContent: -> │ -> │ 00:00:45 d #211 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\ca288d6928a8e761855210f25f97fdc -> 056ee1f21be4a24b26e8533ec368831c8\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 0 / outputContent: -> │ -> │ 00:00:46 d #212 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\ca288d6928a8e761855210f25f97fdc -> 056ee1f21be4a24b26e8533ec368831c8\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: / outputContent: -> │ -> │ 00:00:46 d #213 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\ca288d6928a8e761855210f25f97fdc -> 056ee1f21be4a24b26e8533ec368831c8\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 0 / outputContent: -> │ -> │ 00:00:46 d #214 Supervisor.buildFile / AsyncSeq.scan / +> │ 00:00:10 d #70 Supervisor.buildFile / AsyncSeq.scan / > path: -> C:\home\git\polyglot\target/spiral_Eval\packages\ca288d6928a8e761855210f25f97fdc +> c:/home/git\polyglot\target/spiral_Eval\packages\ca288d6928a8e761855210f25f97fdc > 056ee1f21be4a24b26e8533ec368831c8\main.spi / errors: [] / outputContentResult: > / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ kernel = r""" @@ -18225,9 +16739,9 @@ > │ if __name__ == '__main__': result = main(); None if result is > None else print(result) > │ -> │ 00:00:46 d #215 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\ca288d6928a8e761855210f25f97fdc +> │ 00:00:10 d #71 Supervisor.buildFile / takeWhileInclusive +> / path: +> c:/home/git\polyglot\target/spiral_Eval\packages\ca288d6928a8e761855210f25f97fdc > 056ee1f21be4a24b26e8533ec368831c8\main.spi / errors: [] / typeErrorCount: 0 / > retry: 0 / outputContent: > │ kernel = r""" @@ -18287,9 +16801,7 @@ > │ if __name__ == '__main__': result = main(); None if result is > None else print(result) > │ -> │ 00:00:53 v #47 async.run_with_timeout_async / { timeout -> = 100 } -> │ 00:00:46 d #216 FileSystem.watchWithFilter / Disposing +> │ 00:00:10 d #72 FileSystem.watchWithFilter / Disposing > watch stream / filter: FileName, LastWrite > │ Some > │ (Some @@ -18406,157 +16918,51 @@ > // |> _assertEqual None > // |> fun x -> printfn $"{x.ToDisplayString ()}" > -> ── [ 4.78s - stdout ] ────────────────────────────────────────────────────────── -> │ 00:00:53 v #48 async.run_with_timeout_async / { timeout +> ── [ 615.96ms - stdout ] ─────────────────────────────────────────────────────── +> │ 00:00:18 v #10 async.run_with_timeout_async / { timeout > = 180 } -> │ 00:00:50 d #55 runtime.execute_with_options_async / { -> file_name = dotnet; arguments = US5_0 -> │ ""C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral -> Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 -> --default-int i32 --default-float f64"; options = { command = dotnet -> "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language -> 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 -> --default-int i32 --default-float f64; cancellation_token = Some -> System.Threading.CancellationToken; environment_variables = [||]; on_line = Some -> <fun:compiler@22-4>; stdin = None; trace = true; working_directory = Some -> "C:\home\git\polyglot" } } -> │ 00:00:50 v #56 > 00:00:00 d #1 pwd: -> C:\home\git\polyglot -> │ 00:00:50 v #57 > 00:00:00 d #2 dllPath: -> C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language -> 2\artifacts\bin\The Spiral Language 2\release -> │ 00:00:50 v #58 > 00:00:00 d #3 targetDir: -> C:\home\git\polyglot\target/spiral_Eval -> │ 00:00:53 v #49 async.run_with_timeout_async / { timeout -> = 100 } -> │ 00:00:53 v #50 async.run_with_timeout_async / { timeout -> = 100 } -> │ 00:00:51 v #59 > Starting the Spiral Server. It is bound -> to: http://localhost:13805 -> │ 00:00:54 v #51 async.run_with_timeout_async / { timeout -> = 100 } -> │ 00:00:47 v #217 Supervisor.sendJson / port: 13805 / -> json: {"Ping":true} / result: -> │ 00:00:47 v #218 Supervisor.awaitCompiler / Ping / -> result: 'Some null' / port: 13805 / retry: 1 -> │ 00:00:51 v #60 > Server bound to: http://localhost:13805 -> │ 00:00:47 d #219 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\2acc44d97e6b50ce3caf39a0b931356 +> │ 00:00:10 d #73 Supervisor.buildFile / takeWhileInclusive +> / path: +> c:/home/git\polyglot\target/spiral_Eval\packages\2acc44d97e6b50ce3caf39a0b931356 > 33484d22c3ef6e7797ce64875a41451f4\main.spi / errors: [] / typeErrorCount: 0 / > retry: 0 / outputContent: > │ -> │ 00:00:47 d #220 Supervisor.buildFile / AsyncSeq.scan / +> │ 00:00:10 d #74 Supervisor.buildFile / AsyncSeq.scan / > path: -> C:\home\git\polyglot\target/spiral_Eval\packages\2acc44d97e6b50ce3caf39a0b931356 +> c:/home/git\polyglot\target/spiral_Eval\packages\2acc44d97e6b50ce3caf39a0b931356 > 33484d22c3ef6e7797ce64875a41451f4\main.spi / errors: [] / outputContentResult: > / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ -> │ 00:00:47 d #221 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\2acc44d97e6b50ce3caf39a0b931356 +> │ 00:00:10 d #75 Supervisor.buildFile / takeWhileInclusive +> / path: +> c:/home/git\polyglot\target/spiral_Eval\packages\2acc44d97e6b50ce3caf39a0b931356 > 33484d22c3ef6e7797ce64875a41451f4\main.spi / errors: [] / typeErrorCount: 0 / > retry: 0 / outputContent: > │ -> │ 00:00:47 v #222 Supervisor.sendJson / port: 13805 / -> json: {"FileOpen":{"spiText":"\ninl init_series start end inc =\n inl total : -> f64 = conv ((end - +> │ 00:00:10 v #76 Supervisor.sendJson / port: 13805 / json: +> {"FileOpen":{"spiText":"\ninl init_series start end inc =\n inl total : f64 = +> conv ((end - > start)...et/spiral_Eval/packages/2acc44d97e6b50ce3caf39a0b93135633484d22c3ef6e77 > 97ce64875a41451f4/main.spi"}} / result: -> │ 00:00:47 v #223 Supervisor.sendJson / port: 13805 / -> json: +> │ 00:00:10 v #77 Supervisor.sendJson / port: 13805 / json: > {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/target/spir > al_Eval/packages/2acc44d97e6b50ce3caf39a0b93135633484d22c3ef6e7797ce64875a41451f > 4/main.spi"}} / result: -> │ 00:00:48 d #224 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\2acc44d97e6b50ce3caf39a0b931356 -> 33484d22c3ef6e7797ce64875a41451f4\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: / outputContent: -> │ -> │ 00:00:48 d #225 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\2acc44d97e6b50ce3caf39a0b931356 -> 33484d22c3ef6e7797ce64875a41451f4\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 0 / outputContent: -> │ -> │ 00:00:48 d #226 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\2acc44d97e6b50ce3caf39a0b931356 -> 33484d22c3ef6e7797ce64875a41451f4\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: / outputContent: -> │ -> │ 00:00:48 d #227 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\2acc44d97e6b50ce3caf39a0b931356 -> 33484d22c3ef6e7797ce64875a41451f4\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 0 / outputContent: -> │ -> │ 00:00:49 d #228 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\2acc44d97e6b50ce3caf39a0b931356 -> 33484d22c3ef6e7797ce64875a41451f4\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: / outputContent: -> │ -> │ 00:00:49 d #229 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\2acc44d97e6b50ce3caf39a0b931356 -> 33484d22c3ef6e7797ce64875a41451f4\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 0 / outputContent: -> │ -> │ 00:00:49 d #230 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\2acc44d97e6b50ce3caf39a0b931356 -> 33484d22c3ef6e7797ce64875a41451f4\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: / outputContent: -> │ -> │ 00:00:49 d #231 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\2acc44d97e6b50ce3caf39a0b931356 -> 33484d22c3ef6e7797ce64875a41451f4\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 0 / outputContent: -> │ -> │ 00:00:50 d #232 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\2acc44d97e6b50ce3caf39a0b931356 -> 33484d22c3ef6e7797ce64875a41451f4\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: / outputContent: -> │ -> │ 00:00:50 d #233 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\2acc44d97e6b50ce3caf39a0b931356 -> 33484d22c3ef6e7797ce64875a41451f4\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 0 / outputContent: -> │ -> │ 00:00:50 d #234 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\2acc44d97e6b50ce3caf39a0b931356 -> 33484d22c3ef6e7797ce64875a41451f4\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: / outputContent: -> │ -> │ 00:00:50 d #235 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\2acc44d97e6b50ce3caf39a0b931356 -> 33484d22c3ef6e7797ce64875a41451f4\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 0 / outputContent: -> │ -> │ 00:00:51 d #236 Supervisor.buildFile / AsyncSeq.scan / +> │ 00:00:10 d #78 Supervisor.buildFile / AsyncSeq.scan / > path: -> C:\home\git\polyglot\target/spiral_Eval\packages\2acc44d97e6b50ce3caf39a0b931356 +> c:/home/git\polyglot\target/spiral_Eval\packages\2acc44d97e6b50ce3caf39a0b931356 > 33484d22c3ef6e7797ce64875a41451f4\main.spi / errors: [] / outputContentResult: > / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ 0.33332500000000004 > │ -> │ 00:00:51 d #237 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\2acc44d97e6b50ce3caf39a0b931356 +> │ 00:00:10 d #79 Supervisor.buildFile / takeWhileInclusive +> / path: +> c:/home/git\polyglot\target/spiral_Eval\packages\2acc44d97e6b50ce3caf39a0b931356 > 33484d22c3ef6e7797ce64875a41451f4\main.spi / errors: [] / typeErrorCount: 0 / > retry: 0 / outputContent: > │ 0.33332500000000004 > │ -> │ 00:00:57 v #52 async.run_with_timeout_async / { timeout -> = 100 } -> │ 00:00:51 d #238 FileSystem.watchWithFilter / Disposing +> │ 00:00:10 d #80 FileSystem.watchWithFilter / Disposing > watch stream / filter: FileName, LastWrite > │ Some (Some "0.33332500000000004 > │ ", []) @@ -18587,255 +16993,60 @@ > // |> _assertEqual None > // |> fun x -> printfn $"{x.ToDisplayString ()}" > -> ── [ 4.34s - stdout ] ────────────────────────────────────────────────────────── -> │ 00:00:58 v #53 async.run_with_timeout_async / { timeout +> ── [ 386.72ms - stdout ] ─────────────────────────────────────────────────────── +> │ 00:00:19 v #11 async.run_with_timeout_async / { timeout > = 180 } -> │ 00:00:55 d #61 runtime.execute_with_options_async / { -> file_name = dotnet; arguments = US5_0 -> │ ""C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral -> Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 -> --default-int i32 --default-float f64"; options = { command = dotnet -> "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language -> 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 -> --default-int i32 --default-float f64; cancellation_token = Some -> System.Threading.CancellationToken; environment_variables = [||]; on_line = Some -> <fun:compiler@22-4>; stdin = None; trace = true; working_directory = Some -> "C:\home\git\polyglot" } } -> │ 00:00:55 v #62 > 00:00:00 d #1 pwd: -> C:\home\git\polyglot -> │ 00:00:55 v #63 > 00:00:00 d #2 dllPath: -> C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language -> 2\artifacts\bin\The Spiral Language 2\release -> │ 00:00:55 v #64 > 00:00:00 d #3 targetDir: -> C:\home\git\polyglot\target/spiral_Eval -> │ 00:00:58 v #54 async.run_with_timeout_async / { timeout -> = 100 } -> │ 00:00:58 v #55 async.run_with_timeout_async / { timeout -> = 100 } -> │ 00:00:55 v #65 > Starting the Spiral Server. It is bound -> to: http://localhost:13805 -> │ 00:00:58 v #56 async.run_with_timeout_async / { timeout -> = 100 } -> │ 00:00:52 v #239 Supervisor.sendJson / port: 13805 / -> json: {"Ping":true} / result: -> │ 00:00:52 v #240 Supervisor.awaitCompiler / Ping / -> result: 'Some null' / port: 13805 / retry: 1 -> │ 00:00:56 v #66 > Server bound to: http://localhost:13805 -> │ 00:00:52 d #241 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\883e0123fe6304a9501da46e85facc3 +> │ 00:00:11 d #81 Supervisor.buildFile / takeWhileInclusive +> / path: +> c:/home/git\polyglot\target/spiral_Eval\packages\883e0123fe6304a9501da46e85facc3 > 9c4ac4e3dbb77895f8ccd4581901ee2b7\main.spi / errors: [] / typeErrorCount: 0 / > retry: 0 / outputContent: > │ -> │ 00:00:52 d #242 Supervisor.buildFile / AsyncSeq.scan / +> │ 00:00:11 d #82 Supervisor.buildFile / AsyncSeq.scan / > path: -> C:\home\git\polyglot\target/spiral_Eval\packages\883e0123fe6304a9501da46e85facc3 +> c:/home/git\polyglot\target/spiral_Eval\packages\883e0123fe6304a9501da46e85facc3 > 9c4ac4e3dbb77895f8ccd4581901ee2b7\main.spi / errors: [] / outputContentResult: > / typeErrorCount: 0 / retry: 0 / error: / outputContent: > │ -> │ 00:00:52 d #243 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\883e0123fe6304a9501da46e85facc3 +> │ 00:00:11 d #83 Supervisor.buildFile / takeWhileInclusive +> / path: +> c:/home/git\polyglot\target/spiral_Eval\packages\883e0123fe6304a9501da46e85facc3 > 9c4ac4e3dbb77895f8ccd4581901ee2b7\main.spi / errors: [] / typeErrorCount: 0 / > retry: 0 / outputContent: > │ -> │ 00:00:52 v #244 Supervisor.sendJson / port: 13805 / -> json: {"FileOpen":{"spiText":"inl rec main () = +> │ 00:00:11 v #84 Supervisor.sendJson / port: 13805 / json: +> {"FileOpen":{"spiText":"inl rec main () = > main","uri":"file:///c:/home/git/polyglot/target/spiral_Eval/packages/883e0123fe > 6304a9501da46e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi"}} / result: -> │ 00:00:52 v #245 Supervisor.sendJson / port: 13805 / -> json: +> │ 00:00:11 v #85 Supervisor.sendJson / port: 13805 / json: > {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/target/spir > al_Eval/packages/883e0123fe6304a9501da46e85facc39c4ac4e3dbb77895f8ccd4581901ee2b > 7/main.spi"}} / result: -> │ 00:00:53 d #246 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\883e0123fe6304a9501da46e85facc3 -> 9c4ac4e3dbb77895f8ccd4581901ee2b7\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: / outputContent: -> │ -> │ 00:00:53 d #247 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\883e0123fe6304a9501da46e85facc3 -> 9c4ac4e3dbb77895f8ccd4581901ee2b7\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 0 / outputContent: -> │ -> │ 00:00:53 d #248 Supervisor.buildFile / AsyncSeq.scan / +> │ 00:00:11 d #86 Supervisor.buildFile / AsyncSeq.scan / > path: -> C:\home\git\polyglot\target/spiral_Eval\packages\883e0123fe6304a9501da46e85facc3 +> c:/home/git\polyglot\target/spiral_Eval\packages\883e0123fe6304a9501da46e85facc3 > 9c4ac4e3dbb77895f8ccd4581901ee2b7\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: / outputContent: +> / typeErrorCount: 0 / retry: 0 / error: Some((main.spi: +> │ Recursive metavariables are not allowed. A metavar cannot be +> unified with a type that has itself. +> │ Got: 'a +> │ Expected: () -> 'a, TypeErrors +> │ { errors = +> │ [(({ character = 18 +> │ line = 0 }, { character = 22 +> │ line = 0 }), +> │ "Recursive metavariables are not allowed. A metavar +> cannot be unified with a type that has itself. +> │ Got: 'a +> │ Expected: () -> 'a")] +> │ uri = +> │ +> "file:///c:/home/git/polyglot/target/spiral_Eval/packages/883e0123fe6304a9501da4 +> 6e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi" })) / outputContent: > │ -> │ 00:00:53 d #249 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\883e0123fe6304a9501da46e85facc3 -> 9c4ac4e3dbb77895f8ccd4581901ee2b7\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 0 / outputContent: -> │ -> │ 00:00:54 d #250 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\883e0123fe6304a9501da46e85facc3 -> 9c4ac4e3dbb77895f8ccd4581901ee2b7\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: / outputContent: -> │ -> │ 00:00:54 d #251 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\883e0123fe6304a9501da46e85facc3 -> 9c4ac4e3dbb77895f8ccd4581901ee2b7\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 0 / outputContent: -> │ -> │ 00:00:54 d #252 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\883e0123fe6304a9501da46e85facc3 -> 9c4ac4e3dbb77895f8ccd4581901ee2b7\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: / outputContent: -> │ -> │ 00:00:54 d #253 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\883e0123fe6304a9501da46e85facc3 -> 9c4ac4e3dbb77895f8ccd4581901ee2b7\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 0 / outputContent: -> │ -> │ 00:00:55 d #254 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\883e0123fe6304a9501da46e85facc3 -> 9c4ac4e3dbb77895f8ccd4581901ee2b7\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: / outputContent: -> │ -> │ 00:00:55 d #255 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\883e0123fe6304a9501da46e85facc3 -> 9c4ac4e3dbb77895f8ccd4581901ee2b7\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 0 / outputContent: -> │ -> │ 00:00:55 d #256 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\883e0123fe6304a9501da46e85facc3 -> 9c4ac4e3dbb77895f8ccd4581901ee2b7\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 0 / error: Some((File main has a type error -> somewhere in its path., FatalError "File main has a type error somewhere in its -> path.")) / outputContent: -> │ -> │ 00:00:55 d #257 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\883e0123fe6304a9501da46e85facc3 -> 9c4ac4e3dbb77895f8ccd4581901ee2b7\main.spi / errors: [] / typeErrorCount: 1 / -> retry: 0 / outputContent: -> │ -> │ 00:00:55 d #258 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\883e0123fe6304a9501da46e85facc3 -> 9c4ac4e3dbb77895f8ccd4581901ee2b7\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 1 / retry: 0 / error: Some((main.spi: -> │ Recursive metavariables are not allowed. A metavar cannot be -> unified with a type that has itself. -> │ Got: 'a -> │ Expected: () -> 'a, TypeErrors -> │ { errors = -> │ [(({ character = 18 -> │ line = 0 }, { character = 22 -> │ line = 0 }), -> │ "Recursive metavariables are not allowed. A metavar -> cannot be unified with a type that has itself. -> │ Got: 'a -> │ Expected: () -> 'a")] -> │ uri = -> │ -> "file:///c:/home/git/polyglot/target/spiral_Eval/packages/883e0123fe6304a9501da4 -> 6e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi" })) / outputContent: -> │ -> │ 00:00:55 d #259 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\883e0123fe6304a9501da46e85facc3 -> 9c4ac4e3dbb77895f8ccd4581901ee2b7\main.spi / errors: [ -> │ [ -> │ "main.spi: -> │ Recursive metavariables are not allowed. A metavar cannot be -> unified with a type that has itself. -> │ Got: 'a -> │ Expected: () -> 'a", -> │ { -> │ "TypeErrors": { -> │ "errors": [ -> │ [ -> │ [ -> │ { -> │ "character": 18, -> │ "line": 0 -> │ }, -> │ { -> │ "character": 22, -> │ "line": 0 -> │ } -> │ ], -> │ "Recursive metavariables are not allowed. A -> metavar cannot be unified with a type that has itself. -> │ Got: 'a -> │ Expected: () -> 'a" -> │ ] -> │ ], -> │ "uri": -> "file:///c:/home/git/polyglot/target/spiral_Eval/packages/883e0123fe6304a9501da4 -> 6e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi" -> │ } -> │ } -> │ ] -> │ ] / typeErrorCount: 1 / retry: 0 / outputContent: -> │ -> │ 00:01:01 v #57 async.run_with_timeout_async / { timeout -> = 180 } -> │ 00:00:55 d #260 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\883e0123fe6304a9501da46e85facc3 -> 9c4ac4e3dbb77895f8ccd4581901ee2b7\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 1 / outputContent: -> │ -> │ 00:00:55 d #261 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\883e0123fe6304a9501da46e85facc3 -> 9c4ac4e3dbb77895f8ccd4581901ee2b7\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 1 / error: / outputContent: -> │ -> │ 00:00:55 d #262 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\883e0123fe6304a9501da46e85facc3 -> 9c4ac4e3dbb77895f8ccd4581901ee2b7\main.spi / errors: [] / typeErrorCount: 0 / -> retry: 1 / outputContent: -> │ -> │ 00:00:55 v #263 Supervisor.sendJson / port: 13805 / -> json: {"FileOpen":{"spiText":"inl rec main () = -> main","uri":"file:///c:/home/git/polyglot/target/spiral_Eval/packages/883e0123fe -> 6304a9501da46e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi"}} / result: -> │ 00:00:55 v #264 Supervisor.sendJson / port: 13805 / -> json: -> {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/target/spir -> al_Eval/packages/883e0123fe6304a9501da46e85facc39c4ac4e3dbb77895f8ccd4581901ee2b -> 7/main.spi"}} / result: -> │ 00:00:55 d #265 Supervisor.buildFile / AsyncSeq.scan / -> path: -> C:\home\git\polyglot\target/spiral_Eval\packages\883e0123fe6304a9501da46e85facc3 -> 9c4ac4e3dbb77895f8ccd4581901ee2b7\main.spi / errors: [] / outputContentResult: -> / typeErrorCount: 0 / retry: 1 / error: Some((main.spi: -> │ Recursive metavariables are not allowed. A metavar cannot be -> unified with a type that has itself. -> │ Got: 'a -> │ Expected: () -> 'a, TypeErrors -> │ { errors = -> │ [(({ character = 18 -> │ line = 0 }, { character = 22 -> │ line = 0 }), -> │ "Recursive metavariables are not allowed. A metavar -> cannot be unified with a type that has itself. -> │ Got: 'a -> │ Expected: () -> 'a")] -> │ uri = -> │ -> "file:///c:/home/git/polyglot/target/spiral_Eval/packages/883e0123fe6304a9501da4 -> 6e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi" })) / outputContent: -> │ -> │ 00:00:55 d #266 Supervisor.buildFile / -> takeWhileInclusive / path: -> C:\home\git\polyglot\target/spiral_Eval\packages\883e0123fe6304a9501da46e85facc3 +> │ 00:00:11 d #87 Supervisor.buildFile / takeWhileInclusive +> / path: +> c:/home/git\polyglot\target/spiral_Eval\packages\883e0123fe6304a9501da46e85facc3 > 9c4ac4e3dbb77895f8ccd4581901ee2b7\main.spi / errors: [ > │ [ > │ "main.spi: @@ -18869,13 +17080,9 @@ > │ } > │ } > │ ] -> │ ] / typeErrorCount: 0 / retry: 1 / outputContent: +> │ ] / typeErrorCount: 0 / retry: 0 / outputContent: > │ -> │ 00:00:55 d #267 FileSystem.watchWithFilter / Disposing -> watch stream / filter: FileName, LastWrite -> │ 00:01:02 v #58 async.run_with_timeout_async / { timeout -> = 100 } -> │ 00:00:55 d #268 FileSystem.watchWithFilter / Disposing +> │ 00:00:11 d #88 FileSystem.watchWithFilter / Disposing > watch stream / filter: FileName, LastWrite > │ Some > │ (None, @@ -18986,46 +17193,14 @@ > 8; 0; 0; 2; 1; 4; 0; 0; > 2; 1; 8; 0; 0; 1; 1; 8; 0 |]]) > -> ── [ 2.19s - stdout ] ────────────────────────────────────────────────────────── -> │ 00:01:02 v #59 async.run_with_timeout_async / { timeout +> ── [ 388.86ms - stdout ] ─────────────────────────────────────────────────────── +> │ 00:00:20 v #12 async.run_with_timeout_async / { timeout > = 180 } -> │ 00:00:59 d #67 runtime.execute_with_options_async / { -> file_name = dotnet; arguments = US5_0 -> │ ""C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral -> Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 -> --default-int i32 --default-float f64"; options = { command = dotnet -> "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language -> 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 -> --default-int i32 --default-float f64; cancellation_token = Some -> System.Threading.CancellationToken; environment_variables = [||]; on_line = Some -> <fun:compiler@22-4>; stdin = None; trace = true; working_directory = Some -> "C:\home\git\polyglot" } } -> │ 00:01:00 v #68 > 00:00:00 d #1 pwd: -> C:\home\git\polyglot -> │ 00:01:00 v #69 > 00:00:00 d #2 dllPath: -> C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language -> 2\artifacts\bin\The Spiral Language 2\release -> │ 00:01:00 v #70 > 00:00:00 d #3 targetDir: -> C:\home\git\polyglot\target/spiral_Eval -> │ 00:01:03 v #60 async.run_with_timeout_async / { timeout -> = 100 } -> │ 00:01:03 v #61 async.run_with_timeout_async / { timeout -> = 100 } -> │ 00:01:00 v #71 > Starting the Spiral Server. It is bound -> to: http://localhost:13805 -> │ 00:01:03 v #62 async.run_with_timeout_async / { timeout -> = 100 } -> │ 00:00:57 v #269 Supervisor.sendJson / port: 13805 / -> json: {"Ping":true} / result: -> │ 00:00:57 v #270 Supervisor.awaitCompiler / Ping / -> result: 'Some null' / port: 13805 / retry: 1 -> │ 00:01:00 v #72 > Server bound to: http://localhost:13805 -> │ 00:00:57 v #271 Supervisor.sendJson / port: 13805 / -> json: {"FileOpen":{"spiText":"inl main () = +> │ 00:00:11 v #89 Supervisor.sendJson / port: 13805 / json: +> {"FileOpen":{"spiText":"inl main () = > ()","uri":"file:///c:/home/git/polyglot/target/spiral_Eval/packages/20e725d46cfd > c99c0f307f1933a76ec7da4570c1b757721164d86f19feaf821e/main.spi"}} / result: -> │ 00:00:58 v #272 Supervisor.sendJson / port: 13805 / -> json: +> │ 00:00:12 v #90 Supervisor.sendJson / port: 13805 / json: > {"FileTokenRange":{"range":[{"character":0,"line":0},{"character":16,"line":0}], > "uri":"file:///c:/ho...et/spiral_Eval/packages/20e725d46cfdc99c0f307f1933a76ec7d > a4570c1b757721164d86f19feaf821e/main.spi"}} / result: Some([ @@ -19063,12 +17238,6 @@ > │ 8, > │ 0 > │ ]) -> │ 00:00:58 v #273 Supervisor.sendJson / port: 13805 / -> json: -> {"FileDelete":{"uris":["file:///c:/home/git/polyglot/target/spiral_Eval/packages -> /20e725d46cfdc99c0f307f1933a76ec7da4570c1b757721164d86f19feaf821e"]}} / result: -> │ 00:01:04 v #63 async.run_with_timeout_async / { timeout -> = 100 } > │ Some [|0; 0; 3; 7; 0; 0; 4; 4; 0; 0; 0; 5; 1; 8; 0; 0; 1; 1; > 8; 0; 0; 2; 1; 4; 0; 0; 2; 1; 8; 0; 0; 1; 1; 8; 0|] > │ @@ -19085,46 +17254,14 @@ > 8; 0; 0; 2; 1; 4; 0; 0; > 2; 1; 3; 0; 0; 1; 3; 12; 0 |]]) > -> ── [ 2.20s - stdout ] ────────────────────────────────────────────────────────── -> │ 00:01:04 v #64 async.run_with_timeout_async / { timeout +> ── [ 359.95ms - stdout ] ─────────────────────────────────────────────────────── +> │ 00:00:20 v #13 async.run_with_timeout_async / { timeout > = 180 } -> │ 00:01:02 d #73 runtime.execute_with_options_async / { -> file_name = dotnet; arguments = US5_0 -> │ ""C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral -> Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 -> --default-int i32 --default-float f64"; options = { command = dotnet -> "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language -> 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 -> --default-int i32 --default-float f64; cancellation_token = Some -> System.Threading.CancellationToken; environment_variables = [||]; on_line = Some -> <fun:compiler@22-4>; stdin = None; trace = true; working_directory = Some -> "C:\home\git\polyglot" } } -> │ 00:01:02 v #74 > 00:00:00 d #1 pwd: -> C:\home\git\polyglot -> │ 00:01:02 v #75 > 00:00:00 d #2 dllPath: -> C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language -> 2\artifacts\bin\The Spiral Language 2\release -> │ 00:01:02 v #76 > 00:00:00 d #3 targetDir: -> C:\home\git\polyglot\target/spiral_Eval -> │ 00:01:05 v #65 async.run_with_timeout_async / { timeout -> = 100 } -> │ 00:01:05 v #66 async.run_with_timeout_async / { timeout -> = 100 } -> │ 00:01:02 v #77 > Starting the Spiral Server. It is bound -> to: http://localhost:13805 -> │ 00:01:05 v #67 async.run_with_timeout_async / { timeout -> = 100 } -> │ 00:00:59 v #274 Supervisor.sendJson / port: 13805 / -> json: {"Ping":true} / result: -> │ 00:00:59 v #275 Supervisor.awaitCompiler / Ping / -> result: 'Some null' / port: 13805 / retry: 1 -> │ 00:01:02 v #78 > Server bound to: http://localhost:13805 -> │ 00:00:59 v #276 Supervisor.sendJson / port: 13805 / -> json: {"FileOpen":{"spiText":"inl main () = +> │ 00:00:12 v #91 Supervisor.sendJson / port: 13805 / json: +> {"FileOpen":{"spiText":"inl main () = > 1i32","uri":"file:///c:/home/git/polyglot/target/spiral_Eval/packages/5370829508 > ddefc7386d6b4d280722b47d97cb925585525bee733a187ff8f18b/main.spi"}} / result: -> │ 00:01:00 v #277 Supervisor.sendJson / port: 13805 / -> json: +> │ 00:00:12 v #92 Supervisor.sendJson / port: 13805 / json: > {"FileTokenRange":{"range":[{"character":0,"line":0},{"character":18,"line":0}], > "uri":"file:///c:/ho...et/spiral_Eval/packages/5370829508ddefc7386d6b4d280722b47 > d97cb925585525bee733a187ff8f18b/main.spi"}} / result: Some([ @@ -19162,12 +17299,6 @@ > │ 12, > │ 0 > │ ]) -> │ 00:01:00 v #278 Supervisor.sendJson / port: 13805 / -> json: -> {"FileDelete":{"uris":["file:///c:/home/git/polyglot/target/spiral_Eval/packages -> /5370829508ddefc7386d6b4d280722b47d97cb925585525bee733a187ff8f18b"]}} / result: -> │ 00:01:06 v #68 async.run_with_timeout_async / { timeout -> = 100 } > │ Some [|0; 0; 3; 7; 0; 0; 4; 4; 0; 0; 0; 5; 1; 8; 0; 0; 1; 1; > 8; 0; 0; 2; 1; 4; 0; 0; 2; 1; 3; 0; 0; 1; 3; 12; 0|] > │ @@ -19263,55 +17394,17 @@ > |> Option.flatten > |> _assertEqual (Some "() -> ()") > -> ── [ 4.08s - stdout ] ────────────────────────────────────────────────────────── -> │ 00:01:07 v #69 async.run_with_timeout_async / { timeout +> ── [ 350.21ms - stdout ] ─────────────────────────────────────────────────────── +> │ 00:00:21 v #14 async.run_with_timeout_async / { timeout > = 180 } -> │ 00:01:04 d #79 runtime.execute_with_options_async / { -> file_name = dotnet; arguments = US5_0 -> │ ""C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral -> Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 -> --default-int i32 --default-float f64"; options = { command = dotnet -> "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language -> 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 -> --default-int i32 --default-float f64; cancellation_token = Some -> System.Threading.CancellationToken; environment_variables = [||]; on_line = Some -> <fun:compiler@22-4>; stdin = None; trace = true; working_directory = Some -> "C:\home\git\polyglot" } } -> │ 00:01:04 v #80 > 00:00:00 d #1 pwd: -> C:\home\git\polyglot -> │ 00:01:04 v #81 > 00:00:00 d #2 dllPath: -> C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language -> 2\artifacts\bin\The Spiral Language 2\release -> │ 00:01:04 v #82 > 00:00:00 d #3 targetDir: -> C:\home\git\polyglot\target/spiral_Eval -> │ 00:01:07 v #70 async.run_with_timeout_async / { timeout -> = 100 } -> │ 00:01:07 v #71 async.run_with_timeout_async / { timeout -> = 100 } -> │ 00:01:05 v #83 > Starting the Spiral Server. It is bound -> to: http://localhost:13805 -> │ 00:01:08 v #72 async.run_with_timeout_async / { timeout -> = 100 } -> │ 00:01:01 v #279 Supervisor.sendJson / port: 13805 / -> json: {"Ping":true} / result: -> │ 00:01:01 v #280 Supervisor.awaitCompiler / Ping / -> result: 'Some null' / port: 13805 / retry: 1 -> │ 00:01:05 v #84 > Server bound to: http://localhost:13805 -> │ 00:01:01 v #281 Supervisor.sendJson / port: 13805 / -> json: {"FileOpen":{"spiText":"inl main () = +> │ 00:00:12 v #93 Supervisor.sendJson / port: 13805 / json: +> {"FileOpen":{"spiText":"inl main () = > ()","uri":"file:///c:/home/git/polyglot/target/spiral_Eval/packages/20e725d46cfd > c99c0f307f1933a76ec7da4570c1b757721164d86f19feaf821e/main.spi"}} / result: -> │ 00:01:04 v #282 Supervisor.sendJson / port: 13805 / -> json: +> │ 00:00:12 v #94 Supervisor.sendJson / port: 13805 / json: > {"HoverAt":{"pos":{"character":4,"line":0},"uri":"file:///c:/home/git/polyglot/t > arget/spiral_Eval/packages/20e725d46cfdc99c0f307f1933a76ec7da4570c1b757721164d86 > f19feaf821e/main.spi"}} / result: Some(() -> ()) -> │ 00:01:04 v #283 Supervisor.sendJson / port: 13805 / -> json: -> {"FileDelete":{"uris":["file:///c:/home/git/polyglot/target/spiral_Eval/packages -> /20e725d46cfdc99c0f307f1933a76ec7da4570c1b757721164d86f19feaf821e"]}} / result: -> │ 00:01:11 v #73 async.run_with_timeout_async / { timeout -> = 100 } > │ Some "() -> ()" > │ > │ @@ -19324,55 +17417,17 @@ > |> Option.flatten > |> _assertEqual (Some null) > -> ── [ 4.03s - stdout ] ────────────────────────────────────────────────────────── -> │ 00:01:11 v #74 async.run_with_timeout_async / { timeout +> ── [ 341.42ms - stdout ] ─────────────────────────────────────────────────────── +> │ 00:00:21 v #15 async.run_with_timeout_async / { timeout > = 180 } -> │ 00:01:08 d #85 runtime.execute_with_options_async / { -> file_name = dotnet; arguments = US5_0 -> │ ""C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral -> Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 -> --default-int i32 --default-float f64"; options = { command = dotnet -> "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language -> 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 -> --default-int i32 --default-float f64; cancellation_token = Some -> System.Threading.CancellationToken; environment_variables = [||]; on_line = Some -> <fun:compiler@22-4>; stdin = None; trace = true; working_directory = Some -> "C:\home\git\polyglot" } } -> │ 00:01:08 v #86 > 00:00:00 d #1 pwd: -> C:\home\git\polyglot -> │ 00:01:08 v #87 > 00:00:00 d #2 dllPath: -> C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language -> 2\artifacts\bin\The Spiral Language 2\release -> │ 00:01:08 v #88 > 00:00:00 d #3 targetDir: -> C:\home\git\polyglot\target/spiral_Eval -> │ 00:01:11 v #75 async.run_with_timeout_async / { timeout -> = 100 } -> │ 00:01:12 v #76 async.run_with_timeout_async / { timeout -> = 100 } -> │ 00:01:09 v #89 > Starting the Spiral Server. It is bound -> to: http://localhost:13805 -> │ 00:01:12 v #77 async.run_with_timeout_async / { timeout -> = 100 } -> │ 00:01:06 v #284 Supervisor.sendJson / port: 13805 / -> json: {"Ping":true} / result: -> │ 00:01:06 v #285 Supervisor.awaitCompiler / Ping / -> result: 'Some null' / port: 13805 / retry: 1 -> │ 00:01:09 v #90 > Server bound to: http://localhost:13805 -> │ 00:01:06 v #286 Supervisor.sendJson / port: 13805 / -> json: {"FileOpen":{"spiText":"inl main () = +> │ 00:00:13 v #95 Supervisor.sendJson / port: 13805 / json: +> {"FileOpen":{"spiText":"inl main () = > ()","uri":"file:///c:/home/git/polyglot/target/spiral_Eval/packages/20e725d46cfd > c99c0f307f1933a76ec7da4570c1b757721164d86f19feaf821e/main.spi"}} / result: -> │ 00:01:08 v #287 Supervisor.sendJson / port: 13805 / -> json: +> │ 00:00:13 v #96 Supervisor.sendJson / port: 13805 / json: > {"HoverAt":{"pos":{"character":0,"line":0},"uri":"file:///c:/home/git/polyglot/t > arget/spiral_Eval/packages/20e725d46cfdc99c0f307f1933a76ec7da4570c1b757721164d86 > f19feaf821e/main.spi"}} / result: -> │ 00:01:08 v #288 Supervisor.sendJson / port: 13805 / -> json: -> {"FileDelete":{"uris":["file:///c:/home/git/polyglot/target/spiral_Eval/packages -> /20e725d46cfdc99c0f307f1933a76ec7da4570c1b757721164d86f19feaf821e"]}} / result: -> │ 00:01:15 v #78 async.run_with_timeout_async / { timeout -> = 100 } > │ Some null > │ > │ @@ -19385,55 +17440,17 @@ > |> Option.flatten > |> _assertEqual (Some "forall 'a. () -> 'a") > -> ── [ 4.12s - stdout ] ────────────────────────────────────────────────────────── -> │ 00:01:15 v #79 async.run_with_timeout_async / { timeout +> ── [ 374.20ms - stdout ] ─────────────────────────────────────────────────────── +> │ 00:00:21 v #16 async.run_with_timeout_async / { timeout > = 180 } -> │ 00:01:12 d #91 runtime.execute_with_options_async / { -> file_name = dotnet; arguments = US5_0 -> │ ""C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral -> Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 -> --default-int i32 --default-float f64"; options = { command = dotnet -> "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language -> 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 -> --default-int i32 --default-float f64; cancellation_token = Some -> System.Threading.CancellationToken; environment_variables = [||]; on_line = Some -> <fun:compiler@22-4>; stdin = None; trace = true; working_directory = Some -> "C:\home\git\polyglot" } } -> │ 00:01:13 v #92 > 00:00:00 d #1 pwd: -> C:\home\git\polyglot -> │ 00:01:13 v #93 > 00:00:00 d #2 dllPath: -> C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language -> 2\artifacts\bin\The Spiral Language 2\release -> │ 00:01:13 v #94 > 00:00:00 d #3 targetDir: -> C:\home\git\polyglot\target/spiral_Eval -> │ 00:01:15 v #80 async.run_with_timeout_async / { timeout -> = 100 } -> │ 00:01:16 v #81 async.run_with_timeout_async / { timeout -> = 100 } -> │ 00:01:13 v #95 > Starting the Spiral Server. It is bound -> to: http://localhost:13805 -> │ 00:01:16 v #82 async.run_with_timeout_async / { timeout -> = 100 } -> │ 00:01:10 v #289 Supervisor.sendJson / port: 13805 / -> json: {"Ping":true} / result: -> │ 00:01:10 v #290 Supervisor.awaitCompiler / Ping / -> result: 'Some null' / port: 13805 / retry: 1 -> │ 00:01:13 v #96 > Server bound to: http://localhost:13805 -> │ 00:01:10 v #291 Supervisor.sendJson / port: 13805 / -> json: {"FileOpen":{"spiText":"inl rec main () = +> │ 00:00:13 v #97 Supervisor.sendJson / port: 13805 / json: +> {"FileOpen":{"spiText":"inl rec main () = > main","uri":"file:///c:/home/git/polyglot/target/spiral_Eval/packages/7fa7f94d5c > b478aa7827ac687ed3514a89f2a8e22fc895db0f8b03cacf92c7e2/main.spi"}} / result: -> │ 00:01:12 v #292 Supervisor.sendJson / port: 13805 / -> json: +> │ 00:00:13 v #98 Supervisor.sendJson / port: 13805 / json: > {"HoverAt":{"pos":{"character":8,"line":0},"uri":"file:///c:/home/git/polyglot/t > arget/spiral_Eval/packages/7fa7f94d5cb478aa7827ac687ed3514a89f2a8e22fc895db0f8b0 > 3cacf92c7e2/main.spi"}} / result: Some(forall 'a. () -> 'a) -> │ 00:01:12 v #293 Supervisor.sendJson / port: 13805 / -> json: -> {"FileDelete":{"uris":["file:///c:/home/git/polyglot/target/spiral_Eval/packages -> /7fa7f94d5cb478aa7827ac687ed3514a89f2a8e22fc895db0f8b03cacf92c7e2"]}} / result: -> │ 00:01:19 v #83 async.run_with_timeout_async / { timeout -> = 100 } > │ Some "forall 'a. () -> 'a" > │ > │ @@ -19446,56 +17463,18 @@ > |> Option.flatten > |> _assertEqual (Some "forall 'a {number}. () -> 'a") > -> ── [ 4.08s - stdout ] ────────────────────────────────────────────────────────── -> │ 00:01:19 v #84 async.run_with_timeout_async / { timeout +> ── [ 376.53ms - stdout ] ─────────────────────────────────────────────────────── +> │ 00:00:22 v #17 async.run_with_timeout_async / { timeout > = 180 } -> │ 00:01:16 d #97 runtime.execute_with_options_async / { -> file_name = dotnet; arguments = US5_0 -> │ ""C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral -> Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 -> --default-int i32 --default-float f64"; options = { command = dotnet -> "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language -> 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 -> --default-int i32 --default-float f64; cancellation_token = Some -> System.Threading.CancellationToken; environment_variables = [||]; on_line = Some -> <fun:compiler@22-4>; stdin = None; trace = true; working_directory = Some -> "C:\home\git\polyglot" } } -> │ 00:01:17 v #98 > 00:00:00 d #1 pwd: -> C:\home\git\polyglot -> │ 00:01:17 v #99 > 00:00:00 d #2 dllPath: -> C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language -> 2\artifacts\bin\The Spiral Language 2\release -> │ 00:01:17 v #100 > 00:00:00 d #3 targetDir: -> C:\home\git\polyglot\target/spiral_Eval -> │ 00:01:20 v #85 async.run_with_timeout_async / { timeout -> = 100 } -> │ 00:01:20 v #86 async.run_with_timeout_async / { timeout -> = 100 } -> │ 00:01:17 v #101 > Starting the Spiral Server. It is -> bound to: http://localhost:13805 -> │ 00:01:20 v #87 async.run_with_timeout_async / { timeout -> = 100 } -> │ 00:01:14 v #294 Supervisor.sendJson / port: 13805 / -> json: {"Ping":true} / result: -> │ 00:01:14 v #295 Supervisor.awaitCompiler / Ping / -> result: 'Some null' / port: 13805 / retry: 1 -> │ 00:01:17 v #102 > Server bound to: -> http://localhost:13805 -> │ 00:01:14 v #296 Supervisor.sendJson / port: 13805 / -> json: {"FileOpen":{"spiText":"inl main () = +> │ 00:00:14 v #99 Supervisor.sendJson / port: 13805 / json: +> {"FileOpen":{"spiText":"inl main () = > 1","uri":"file:///c:/home/git/polyglot/target/spiral_Eval/packages/2f51fd7aa58d1 > ea373b484460dba65cec845b6dddbc1fc6de2eea30335846eee/main.spi"}} / result: -> │ 00:01:16 v #297 Supervisor.sendJson / port: 13805 / +> │ 00:00:14 v #100 Supervisor.sendJson / port: 13805 / > json: > {"HoverAt":{"pos":{"character":4,"line":0},"uri":"file:///c:/home/git/polyglot/t > arget/spiral_Eval/packages/2f51fd7aa58d1ea373b484460dba65cec845b6dddbc1fc6de2eea > 30335846eee/main.spi"}} / result: Some(forall 'a {number}. () -> 'a) -> │ 00:01:17 v #298 Supervisor.sendJson / port: 13805 / -> json: -> {"FileDelete":{"uris":["file:///c:/home/git/polyglot/target/spiral_Eval/packages -> /2f51fd7aa58d1ea373b484460dba65cec845b6dddbc1fc6de2eea30335846eee"]}} / result: -> │ 00:01:23 v #88 async.run_with_timeout_async / { timeout -> = 100 } > │ Some "forall 'a {number}. () -> 'a" > │ > │ @@ -19532,7 +17511,7 @@ > > Argu.ArgumentParser.Create<Arguments>().PrintUsage () > -> ── [ 112.60ms - return value ] ───────────────────────────────────────────────── +> ── [ 107.98ms - return value ] ───────────────────────────────────────────────── > │ "USAGE: dotnet-repl [--help] [--build-file <string> <string>] > │ [--file-token-range <string> <string>] > │ [--file-hover-at <string> <string> <int> @@ -19751,7 +17730,7 @@ > | [[||]] -> 0 > | args -> if main args = 0 then 0 else failwith "main failed" > -> ── [ 74.92ms - return value ] ────────────────────────────────────────────────── +> ── [ 78.83ms - return value ] ────────────────────────────────────────────────── > │ <div class="dni-plaintext"><pre>0 > │ </pre></div><style> > │ .dni-code-hint { @@ -19785,48 +17764,48 @@ > │ text-align: start; > │ } > │ </style> -00:01:34 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 202911 } -00:01:34 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/apps/spiral/Supervisor.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/apps/spiral/Supervisor.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:01:35 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/apps/spiral/Supervisor.dib.ipynb to html -00:01:35 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. -00:01:35 v #7 ! validate(nb) -00:01:36 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 -00:01:36 v #9 ! return _pygments_highlight( -00:01:38 v #10 ! [NbConvertApp] Writing 623167 bytes to c:\home\git\polyglot\apps\spiral\Supervisor.dib.html -00:01:38 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 864 } -00:01:38 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 864 } -00:01:38 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/apps/spiral/Supervisor.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/apps/spiral/Supervisor.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:01:38 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } -00:01:38 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } -00:01:38 d #16 spiral.run / dib / { exit_code = 0; result_length = 203834 } +00:00:34 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 109482 } +00:00:34 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/apps/spiral/Supervisor.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/apps/spiral/Supervisor.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } +00:00:36 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/apps/spiral/Supervisor.dib.ipynb to html +00:00:36 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. +00:00:36 v #7 ! validate(nb) +00:00:36 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 +00:00:36 v #9 ! return _pygments_highlight( +00:00:38 v #10 ! [NbConvertApp] Writing 531162 bytes to c:\home\git\polyglot\apps\spiral\Supervisor.dib.html +00:00:38 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 864 } +00:00:38 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 864 } +00:00:38 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/apps/spiral/Supervisor.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/apps/spiral/Supervisor.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } +00:00:39 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } +00:00:39 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } +00:00:39 d #16 spiral.run / dib / { exit_code = 0; result_length = 110405 } 00:00:00 d #1 writeDibCode / output: Fs / path: Supervisor.dib 00:00:00 d #2 parseDibCode / output: Fs / file: Supervisor.dib -00:00:00 d #1 persistCodeProject / packages: [Argu; FSharp.Control.AsyncSeq; FSharp.Json; ... ] / modules: [lib/spiral/common.fsx; lib/spiral/sm.fsx; lib/spiral/crypto.fsx; ... ] / name: Supervisor / hash: / code.Length: 32767 -00:00:00 d #2 buildProject / fullPath: C:\home\git\polyglot\target\Builder\Supervisor\Supervisor.fsproj +00:00:00 d #1 persistCodeProject / packages: [Argu; FSharp.Control.AsyncSeq; FSharp.Json; ... ] / modules: [deps/spiral/lib/spiral/common.fsx; deps/spiral/lib/spiral/sm.fsx; deps/spiral/lib/spiral/crypto.fsx; ... ] / name: Supervisor / hash: / code.Length: 32787 +00:00:00 d #2 buildProject / fullPath: c:\home\git\polyglot\target\Builder\Supervisor\Supervisor.fsproj 00:00:00 d #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0 - "publish "C:\home\git\polyglot\target/Builder\Supervisor\Supervisor.fsproj" --configuration Release --output "C:\home\git\polyglot\apps\spiral\dist" --runtime linux-x64"; options = { command = dotnet publish "C:\home\git\polyglot\target/Builder\Supervisor\Supervisor.fsproj" --configuration Release --output "C:\home\git\polyglot\apps\spiral\dist" --runtime linux-x64; cancellation_token = None; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = Some "C:\home\git\polyglot\target\Builder\Supervisor" } } + "publish "c:/home/git\polyglot\target/Builder\Supervisor\Supervisor.fsproj" --configuration Release --output "C:\home\git\polyglot\apps\spiral\dist" --runtime linux-x64"; options = { command = dotnet publish "c:/home/git\polyglot\target/Builder\Supervisor\Supervisor.fsproj" --configuration Release --output "C:\home\git\polyglot\apps\spiral\dist" --runtime linux-x64; cancellation_token = None; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = Some "c:\home\git\polyglot\target\Builder\Supervisor" } } 00:00:01 v #2 > Determining projects to restore... 00:00:01 v #3 > Paket version 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0 00:00:01 v #4 > The last full restore is still up to date. Nothing left to do. 00:00:01 v #5 > Total time taken: 0 milliseconds -00:00:02 v #6 > Restored C:\home\git\polyglot\target\Builder\Supervisor\Supervisor.fsproj (in 398 ms). -00:00:15 v #7 > Supervisor -> C:\home\git\polyglot\target\Builder\Supervisor\bin\Release\net9.0\linux-x64\Supervisor.dll +00:00:02 v #6 > Restored c:\home\git\polyglot\target\Builder\Supervisor\Supervisor.fsproj (in 403 ms). +00:00:16 v #7 > Supervisor -> c:\home\git\polyglot\target\Builder\Supervisor\bin\Release\net9.0\linux-x64\Supervisor.dll 00:00:17 v #8 > Supervisor -> C:\home\git\polyglot\apps\spiral\dist\ 00:00:17 v #9 > 00:00:17 v #10 > Workload updates are available. Run `dotnet workload list` for more information. -00:00:17 d #11 runtime.execute_with_options_async / { exit_code = 0; output_length = 532 } -00:00:17 d #12 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0 - "publish "C:\home\git\polyglot\target/Builder\Supervisor\Supervisor.fsproj" --configuration Release --output "C:\home\git\polyglot\apps\spiral\dist" --runtime win-x64"; options = { command = dotnet publish "C:\home\git\polyglot\target/Builder\Supervisor\Supervisor.fsproj" --configuration Release --output "C:\home\git\polyglot\apps\spiral\dist" --runtime win-x64; cancellation_token = None; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = Some "C:\home\git\polyglot\target\Builder\Supervisor" } } -00:00:17 v #13 > Determining projects to restore... -00:00:18 v #14 > Paket version 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0 -00:00:18 v #15 > The last full restore is still up to date. Nothing left to do. -00:00:18 v #16 > Total time taken: 0 milliseconds -00:00:18 v #17 > Restored C:\home\git\polyglot\target\Builder\Supervisor\Supervisor.fsproj (in 384 ms). -00:00:32 v #18 > Supervisor -> C:\home\git\polyglot\target\Builder\Supervisor\bin\Release\net9.0\win-x64\Supervisor.dll -00:00:33 v #19 > Supervisor -> C:\home\git\polyglot\apps\spiral\dist\ -00:00:33 v #20 > -00:00:33 v #21 > Workload updates are available. Run `dotnet workload list` for more information. -00:00:33 d #22 runtime.execute_with_options_async / { exit_code = 0; output_length = 530 } +00:00:18 d #11 runtime.execute_with_options_async / { exit_code = 0; output_length = 532 } +00:00:18 d #12 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0 + "publish "c:/home/git\polyglot\target/Builder\Supervisor\Supervisor.fsproj" --configuration Release --output "C:\home\git\polyglot\apps\spiral\dist" --runtime win-x64"; options = { command = dotnet publish "c:/home/git\polyglot\target/Builder\Supervisor\Supervisor.fsproj" --configuration Release --output "C:\home\git\polyglot\apps\spiral\dist" --runtime win-x64; cancellation_token = None; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = Some "c:\home\git\polyglot\target\Builder\Supervisor" } } +00:00:18 v #13 > Determining projects to restore... +00:00:19 v #14 > Paket version 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0 +00:00:19 v #15 > The last full restore is still up to date. Nothing left to do. +00:00:19 v #16 > Total time taken: 0 milliseconds +00:00:19 v #17 > Restored c:\home\git\polyglot\target\Builder\Supervisor\Supervisor.fsproj (in 416 ms). +00:00:34 v #18 > Supervisor -> c:\home\git\polyglot\target\Builder\Supervisor\bin\Release\net9.0\win-x64\Supervisor.dll +00:00:35 v #19 > Supervisor -> C:\home\git\polyglot\apps\spiral\dist\ +00:00:35 v #20 > +00:00:35 v #21 > Workload updates are available. Run `dotnet workload list` for more information. +00:00:35 d #22 runtime.execute_with_options_async / { exit_code = 0; output_length = 530 } 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "Eval.dib", "--retries", "3"])) } 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/apps/spiral/Eval.dib", "--output-path", "c:/home/git/polyglot/apps/spiral/Eval.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/apps/spiral/Eval.dib" --output-path "c:/home/git/polyglot/apps/spiral/Eval.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } > @@ -21008,20 +18987,20 @@ > ) > |]] > )) -00:00:28 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 49516 } -00:00:28 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/apps/spiral/Eval.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/apps/spiral/Eval.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:00:30 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/apps/spiral/Eval.dib.ipynb to html -00:00:30 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. -00:00:30 v #7 ! validate(nb) -00:00:30 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 -00:00:30 v #9 ! return _pygments_highlight( -00:00:32 v #10 ! [NbConvertApp] Writing 459172 bytes to c:\home\git\polyglot\apps\spiral\Eval.dib.html -00:00:32 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 852 } -00:00:32 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 852 } -00:00:32 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/apps/spiral/Eval.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/apps/spiral/Eval.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:00:32 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } -00:00:32 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } -00:00:32 d #16 spiral.run / dib / { exit_code = 0; result_length = 50427 } +00:00:30 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 49516 } +00:00:30 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/apps/spiral/Eval.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/apps/spiral/Eval.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } +00:00:31 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/apps/spiral/Eval.dib.ipynb to html +00:00:31 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. +00:00:31 v #7 ! validate(nb) +00:00:32 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 +00:00:32 v #9 ! return _pygments_highlight( +00:00:33 v #10 ! [NbConvertApp] Writing 459172 bytes to c:\home\git\polyglot\apps\spiral\Eval.dib.html +00:00:33 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 852 } +00:00:33 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 852 } +00:00:33 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/apps/spiral/Eval.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/apps/spiral/Eval.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } +00:00:34 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } +00:00:34 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } +00:00:34 d #16 spiral.run / dib / { exit_code = 0; result_length = 50427 } 00:00:00 d #1 writeDibCode / output: Fs / path: Eval.dib 00:00:00 d #2 parseDibCode / output: Fs / file: Eval.dib
00:00:00 v #1 async.run_with_timeout_async / { timeout = 180 } -00:00:00 d #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0 - ""C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 --default-int i32 --default-float f64"; options = { command = dotnet "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 --default-int i32 --default-float f64; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = Some <fun:compiler@87-4>; stdin = None; trace = true; working_directory = Some "C:\home\git\polyglot" } } -00:00:01 v #2 > 00:00:00 d #1 pwd: C:\home\git\polyglot -00:00:01 v #3 > 00:00:00 d #2 dllPath: C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release -00:00:01 v #4 > 00:00:00 d #3 targetDir: C:\home\git\polyglot\target/spiral_Eval -00:00:01 v #2 async.run_with_timeout_async / { timeout = 100 } -00:00:01 v #3 async.run_with_timeout_async / { timeout = 100 } -00:00:01 v #5 > Starting the Spiral Server. It is bound to: http://localhost:13805 -00:00:01 v #4 async.run_with_timeout_async / { timeout = 100 } -00:00:01 v #1 Supervisor.sendJson / port: 13805 / json: {"Ping":true} / result: -00:00:01 v #2 Supervisor.awaitCompiler / Ping / result: 'Some null' / port: 13805 / retry: 1 -00:00:01 v #6 > Server bound to: http://localhost:13805 -00:00:01 d #7 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path Async.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path Async.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } -00:00:01 v #8 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "Async.dib", "--retries", "3"])) } -00:00:01 v #9 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/lib/fsharp/Async.dib", "--output-path", "c:/home/git/polyglot/lib/fsharp/Async.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/lib/fsharp/Async.dib" --output-path "c:/home/git/polyglot/lib/fsharp/Async.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } -00:00:03 v #10 > > -00:00:03 v #11 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:03 v #12 > > │ # Async (Polyglot) -00:00:20 v #13 > > -00:00:20 v #14 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:20 v #15 > > #if !INTERACTIVE -00:00:20 v #16 > > open Lib -00:00:20 v #17 > > #endif -00:00:20 v #18 > > -00:00:20 v #19 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:20 v #20 > > open Common -00:00:20 v #21 > > -00:00:20 v #22 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:20 v #23 > > │ ## choice -00:00:20 v #24 > > -00:00:20 v #25 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:20 v #26 > > let inline choice asyncs = async { -00:00:20 v #27 > > let e = Event<_> () -00:00:20 v #28 > > use cts = new System.Threading.CancellationTokenSource () -00:00:20 v #29 > > let fn = -00:00:20 v #30 > > asyncs -00:00:20 v #31 > > |> Seq.map (fun a -> async { -00:00:20 v #32 > > let! x = a -00:00:20 v #33 > > e.Trigger x -00:00:20 v #34 > > }) -00:00:20 v #35 > > |> Async.Parallel -00:00:20 v #36 > > |> Async.Ignore -00:00:20 v #37 > > Async.Start (fn, cts.Token) -00:00:20 v #38 > > let! result = Async.AwaitEvent e.Publish -00:00:20 v #39 > > cts.Cancel () -00:00:20 v #40 > > return result -00:00:20 v #41 > > } -00:00:20 v #42 > > -00:00:20 v #43 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:20 v #44 > > │ ## map -00:00:20 v #45 > > -00:00:20 v #46 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:20 v #47 > > let inline map fn a = async { -00:00:20 v #48 > > let! x = a -00:00:20 v #49 > > return fn x -00:00:20 v #50 > > } -00:00:20 v #51 > > -00:00:20 v #52 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:20 v #53 > > │ ## runWithTimeoutChoiceAsync -00:00:20 v #54 > > -00:00:20 v #55 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:20 v #56 > > let inline runWithTimeoutChoiceAsync (timeout : int) fn = -00:00:20 v #57 > > let _locals () = $"timeout: {timeout} / {_locals ()}" -00:00:20 v #58 > > -00:00:20 v #59 > > let timeoutTask = async { -00:00:20 v #60 > > do! Async.Sleep timeout -00:00:20 v #61 > > trace Debug (fun () -> "runWithTimeoutChoiceAsync") _locals -00:00:20 v #62 > > return None -00:00:20 v #63 > > } -00:00:20 v #64 > > -00:00:20 v #65 > > let task = async { -00:00:20 v #66 > > try -00:00:20 v #67 > > let! result = fn -00:00:20 v #68 > > return Some result -00:00:20 v #69 > > with -00:00:20 v #70 > > | :? System.AggregateException as ex when -00:00:20 v #71 > > ex.InnerExceptions -00:00:20 v #72 > > |> Seq.exists (function :? -00:00:20 v #73 > > System.Threading.Tasks.TaskCanceledException -> true | _ -> false) -00:00:20 v #74 > > -> -00:00:20 v #75 > > trace Warning -00:00:20 v #76 > > (fun () -> "runWithTimeoutChoiceAsync") -00:00:20 v #77 > > (fun () -> $"ex: {ex |> SpiralSm.format_exception} / {_locals -00:00:20 v #78 > > ()}") -00:00:20 v #79 > > return None -00:00:20 v #80 > > | ex -> -00:00:20 v #81 > > trace Critical -00:00:20 v #82 > > (fun () -> "runWithTimeoutChoiceAsync") -00:00:20 v #83 > > (fun () -> $"ex: {ex |> SpiralSm.format_exception} / {_locals -00:00:20 v #84 > > ()}") -00:00:20 v #85 > > return None -00:00:20 v #86 > > } -00:00:20 v #87 > > -00:00:20 v #88 > > [[ timeoutTask; task ]] -00:00:20 v #89 > > |> choice +00:00:00 d #1 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path Async.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path Async.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } +00:00:00 v #2 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "Async.dib", "--retries", "3"])) } +00:00:00 v #3 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/lib/fsharp/Async.dib", "--output-path", "c:/home/git/polyglot/lib/fsharp/Async.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/lib/fsharp/Async.dib" --output-path "c:/home/git/polyglot/lib/fsharp/Async.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } +00:00:02 v #4 > > +00:00:02 v #5 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:02 v #6 > > │ # Async (Polyglot) +00:00:19 v #7 > > +00:00:19 v #8 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:19 v #9 > > #if !INTERACTIVE +00:00:19 v #10 > > open Lib +00:00:19 v #11 > > #endif +00:00:19 v #12 > > +00:00:19 v #13 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:19 v #14 > > open Common +00:00:19 v #15 > > +00:00:19 v #16 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:19 v #17 > > │ ## choice +00:00:19 v #18 > > +00:00:19 v #19 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:19 v #20 > > let inline choice asyncs = async { +00:00:19 v #21 > > let e = Event<_> () +00:00:19 v #22 > > use cts = new System.Threading.CancellationTokenSource () +00:00:19 v #23 > > let fn = +00:00:19 v #24 > > asyncs +00:00:19 v #25 > > |> Seq.map (fun a -> async { +00:00:19 v #26 > > let! x = a +00:00:19 v #27 > > e.Trigger x +00:00:19 v #28 > > }) +00:00:19 v #29 > > |> Async.Parallel +00:00:19 v #30 > > |> Async.Ignore +00:00:19 v #31 > > Async.Start (fn, cts.Token) +00:00:19 v #32 > > let! result = Async.AwaitEvent e.Publish +00:00:19 v #33 > > cts.Cancel () +00:00:19 v #34 > > return result +00:00:19 v #35 > > } +00:00:19 v #36 > > +00:00:19 v #37 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:19 v #38 > > │ ## map +00:00:19 v #39 > > +00:00:19 v #40 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:19 v #41 > > let inline map fn a = async { +00:00:19 v #42 > > let! x = a +00:00:19 v #43 > > return fn x +00:00:19 v #44 > > } +00:00:19 v #45 > > +00:00:19 v #46 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:19 v #47 > > │ ## runWithTimeoutChoiceAsync +00:00:19 v #48 > > +00:00:19 v #49 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:19 v #50 > > let inline runWithTimeoutChoiceAsync (timeout : int) fn = +00:00:19 v #51 > > let _locals () = $"timeout: {timeout} / {_locals ()}" +00:00:19 v #52 > > +00:00:19 v #53 > > let timeoutTask = async { +00:00:19 v #54 > > do! Async.Sleep timeout +00:00:19 v #55 > > trace Debug (fun () -> "runWithTimeoutChoiceAsync") _locals +00:00:19 v #56 > > return None +00:00:19 v #57 > > } +00:00:19 v #58 > > +00:00:19 v #59 > > let task = async { +00:00:19 v #60 > > try +00:00:19 v #61 > > let! result = fn +00:00:19 v #62 > > return Some result +00:00:19 v #63 > > with +00:00:19 v #64 > > | :? System.AggregateException as ex when +00:00:19 v #65 > > ex.InnerExceptions +00:00:19 v #66 > > |> Seq.exists (function :? +00:00:19 v #67 > > System.Threading.Tasks.TaskCanceledException -> true | _ -> false) +00:00:19 v #68 > > -> +00:00:19 v #69 > > trace Warning +00:00:19 v #70 > > (fun () -> "runWithTimeoutChoiceAsync") +00:00:19 v #71 > > (fun () -> $"ex: {ex |> SpiralSm.format_exception} / {_locals +00:00:19 v #72 > > ()}") +00:00:19 v #73 > > return None +00:00:19 v #74 > > | ex -> +00:00:19 v #75 > > trace Critical +00:00:19 v #76 > > (fun () -> "runWithTimeoutChoiceAsync") +00:00:19 v #77 > > (fun () -> $"ex: {ex |> SpiralSm.format_exception} / {_locals +00:00:19 v #78 > > ()}") +00:00:19 v #79 > > return None +00:00:19 v #80 > > } +00:00:19 v #81 > > +00:00:19 v #82 > > [[ timeoutTask; task ]] +00:00:19 v #83 > > |> choice +00:00:20 v #84 > > +00:00:20 v #85 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:20 v #86 > > let inline runWithTimeoutChoice timeout fn = +00:00:20 v #87 > > fn +00:00:20 v #88 > > |> runWithTimeoutChoiceAsync timeout +00:00:20 v #89 > > |> Async.RunSynchronously 00:00:20 v #90 > > 00:00:20 v #91 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:20 v #92 > > let inline runWithTimeoutChoice timeout fn = -00:00:20 v #93 > > fn -00:00:20 v #94 > > |> runWithTimeoutChoiceAsync timeout -00:00:20 v #95 > > |> Async.RunSynchronously -00:00:20 v #96 > > -00:00:20 v #97 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:20 v #98 > > //// test -00:00:20 v #99 > > -00:00:20 v #100 > > Async.Sleep 120 -00:00:20 v #101 > > |> runWithTimeoutChoice 10 -00:00:20 v #102 > > |> _assertEqual None +00:00:20 v #92 > > //// test +00:00:20 v #93 > > +00:00:20 v #94 > > Async.Sleep 120 +00:00:20 v #95 > > |> runWithTimeoutChoice 10 +00:00:20 v #96 > > |> _assertEqual None +00:00:20 v #97 > > +00:00:20 v #98 > > ── [ 220.65ms - stdout ] ─────────────────────────────────────────────────────── +00:00:20 v #99 > > │ 00:00:01 d #1 runWithTimeoutChoiceAsync / timeout: 10 +00:00:20 v #100 > > │ <null> +00:00:20 v #101 > > │ +00:00:20 v #102 > > │ 00:00:20 v #103 > > -00:00:20 v #104 > > ── [ 208.74ms - stdout ] ─────────────────────────────────────────────────────── -00:00:20 v #105 > > │ 00:00:01 d #1 runWithTimeoutChoiceAsync / timeout: 10 -00:00:20 v #106 > > │ <null> -00:00:20 v #107 > > │ -00:00:20 v #108 > > │ -00:00:20 v #109 > > -00:00:20 v #110 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:20 v #111 > > //// test -00:00:20 v #112 > > -00:00:20 v #113 > > Async.Sleep 10 -00:00:20 v #114 > > |> runWithTimeoutChoice 60 -00:00:20 v #115 > > |> _assertEqual (Some ()) -00:00:20 v #116 > > -00:00:20 v #117 > > ── [ 180.15ms - stdout ] ─────────────────────────────────────────────────────── -00:00:20 v #118 > > │ Some () -00:00:20 v #119 > > │ -00:00:20 v #120 > > │ -00:00:20 v #121 > > -00:00:20 v #122 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:20 v #123 > > //// test +00:00:20 v #104 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:20 v #105 > > //// test +00:00:20 v #106 > > +00:00:20 v #107 > > Async.Sleep 10 +00:00:20 v #108 > > |> runWithTimeoutChoice 60 +00:00:20 v #109 > > |> _assertEqual (Some ()) +00:00:20 v #110 > > +00:00:20 v #111 > > ── [ 178.92ms - stdout ] ─────────────────────────────────────────────────────── +00:00:20 v #112 > > │ Some () +00:00:20 v #113 > > │ +00:00:20 v #114 > > │ +00:00:20 v #115 > > +00:00:20 v #116 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:20 v #117 > > //// test +00:00:20 v #118 > > +00:00:20 v #119 > > async { +00:00:20 v #120 > > raise (exn "error") +00:00:20 v #121 > > } +00:00:20 v #122 > > |> runWithTimeoutChoice 60 +00:00:20 v #123 > > |> _assertEqual None 00:00:20 v #124 > > -00:00:20 v #125 > > async { -00:00:20 v #126 > > raise (exn "error") -00:00:20 v #127 > > } -00:00:20 v #128 > > |> runWithTimeoutChoice 60 -00:00:20 v #129 > > |> _assertEqual None -00:00:21 v #130 > > -00:00:21 v #131 > > ── [ 172.74ms - stdout ] ─────────────────────────────────────────────────────── -00:00:21 v #132 > > │ 00:00:01 c #2 runWithTimeoutChoiceAsync / ex: -00:00:21 v #133 > > System.Exception: error / timeout: 60 -00:00:21 v #134 > > │ <null> -00:00:21 v #135 > > │ -00:00:21 v #136 > > │ -00:00:21 v #137 > > -00:00:21 v #138 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:21 v #139 > > │ ## catch -00:00:21 v #140 > > -00:00:21 v #141 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:21 v #142 > > let inline catch a = -00:00:21 v #143 > > a -00:00:21 v #144 > > |> Async.Catch -00:00:21 v #145 > > |> map (function -00:00:21 v #146 > > | Choice1Of2 result -> Ok result -00:00:21 v #147 > > | Choice2Of2 ex -> Error ex -00:00:21 v #148 > > ) -00:00:21 v #149 > > -00:00:21 v #150 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:21 v #151 > > │ ## runWithTimeoutAsync -00:00:21 v #152 > > -00:00:21 v #153 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:21 v #154 > > let inline runWithTimeoutAsync (timeout : int) fn = async { -00:00:21 v #155 > > let _locals () = $"timeout: {timeout} / {_locals ()}" -00:00:21 v #156 > > let! child = Async.StartChild (fn, timeout) -00:00:21 v #157 > > return! -00:00:21 v #158 > > child -00:00:21 v #159 > > |> catch -00:00:21 v #160 > > |> map (function -00:00:21 v #161 > > | Ok result -> Some result -00:00:21 v #162 > > | Error (:? System.TimeoutException as ex) -> -00:00:21 v #163 > > trace Debug (fun () -> $"Async.runWithTimeoutAsync") _locals -00:00:21 v #164 > > None -00:00:21 v #165 > > | Error ex -> -00:00:21 v #166 > > trace Critical (fun () -> $"Async.runWithTimeoutAsync** / ex: -00:00:21 v #167 > > %A{ex}") _locals -00:00:21 v #168 > > None -00:00:21 v #169 > > ) -00:00:21 v #170 > > } +00:00:20 v #125 > > ── [ 162.70ms - stdout ] ─────────────────────────────────────────────────────── +00:00:20 v #126 > > │ 00:00:01 c #2 runWithTimeoutChoiceAsync / ex: +00:00:20 v #127 > > System.Exception: error / timeout: 60 +00:00:20 v #128 > > │ <null> +00:00:20 v #129 > > │ +00:00:20 v #130 > > │ +00:00:20 v #131 > > +00:00:20 v #132 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:20 v #133 > > │ ## catch +00:00:20 v #134 > > +00:00:20 v #135 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:20 v #136 > > let inline catch a = +00:00:20 v #137 > > a +00:00:20 v #138 > > |> Async.Catch +00:00:20 v #139 > > |> map (function +00:00:20 v #140 > > | Choice1Of2 result -> Ok result +00:00:20 v #141 > > | Choice2Of2 ex -> Error ex +00:00:20 v #142 > > ) +00:00:20 v #143 > > +00:00:20 v #144 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:20 v #145 > > │ ## runWithTimeoutAsync +00:00:20 v #146 > > +00:00:20 v #147 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:20 v #148 > > let inline runWithTimeoutAsync (timeout : int) fn = async { +00:00:20 v #149 > > let _locals () = $"timeout: {timeout} / {_locals ()}" +00:00:20 v #150 > > let! child = Async.StartChild (fn, timeout) +00:00:20 v #151 > > return! +00:00:20 v #152 > > child +00:00:20 v #153 > > |> catch +00:00:20 v #154 > > |> map (function +00:00:20 v #155 > > | Ok result -> Some result +00:00:20 v #156 > > | Error (:? System.TimeoutException as ex) -> +00:00:20 v #157 > > trace Debug (fun () -> $"Async.runWithTimeoutAsync") _locals +00:00:20 v #158 > > None +00:00:20 v #159 > > | Error ex -> +00:00:20 v #160 > > trace Critical (fun () -> $"Async.runWithTimeoutAsync** / ex: +00:00:20 v #161 > > %A{ex}") _locals +00:00:20 v #162 > > None +00:00:20 v #163 > > ) +00:00:20 v #164 > > } +00:00:20 v #165 > > +00:00:20 v #166 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:20 v #167 > > let inline runWithTimeout timeout fn = +00:00:20 v #168 > > fn +00:00:20 v #169 > > |> runWithTimeoutAsync timeout +00:00:20 v #170 > > |> Async.RunSynchronously 00:00:21 v #171 > > 00:00:21 v #172 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:21 v #173 > > let inline runWithTimeout timeout fn = -00:00:21 v #174 > > fn -00:00:21 v #175 > > |> runWithTimeoutAsync timeout -00:00:21 v #176 > > |> Async.RunSynchronously -00:00:21 v #177 > > -00:00:21 v #178 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:21 v #179 > > //// test -00:00:21 v #180 > > -00:00:21 v #181 > > Async.Sleep 60 -00:00:21 v #182 > > |> runWithTimeout 10 -00:00:21 v #183 > > |> _assertEqual None +00:00:21 v #173 > > //// test +00:00:21 v #174 > > +00:00:21 v #175 > > Async.Sleep 60 +00:00:21 v #176 > > |> runWithTimeout 10 +00:00:21 v #177 > > |> _assertEqual None +00:00:21 v #178 > > +00:00:21 v #179 > > ── [ 125.43ms - stdout ] ─────────────────────────────────────────────────────── +00:00:21 v #180 > > │ 00:00:01 d #3 Async.runWithTimeoutAsync / timeout: 10 +00:00:21 v #181 > > │ <null> +00:00:21 v #182 > > │ +00:00:21 v #183 > > │ 00:00:21 v #184 > > -00:00:21 v #185 > > ── [ 115.53ms - stdout ] ─────────────────────────────────────────────────────── -00:00:21 v #186 > > │ 00:00:01 d #3 Async.runWithTimeoutAsync / timeout: 10 -00:00:21 v #187 > > │ <null> -00:00:21 v #188 > > │ -00:00:21 v #189 > > │ -00:00:21 v #190 > > -00:00:21 v #191 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:21 v #192 > > //// test -00:00:21 v #193 > > -00:00:21 v #194 > > Async.Sleep 10 -00:00:21 v #195 > > |> runWithTimeout 60 -00:00:21 v #196 > > |> _assertEqual (Some ()) -00:00:21 v #197 > > -00:00:21 v #198 > > ── [ 89.50ms - stdout ] ──────────────────────────────────────────────────────── -00:00:21 v #199 > > │ Some () -00:00:21 v #200 > > │ -00:00:21 v #201 > > │ -00:00:21 v #202 > > -00:00:21 v #203 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:21 v #204 > > //// test +00:00:21 v #185 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:21 v #186 > > //// test +00:00:21 v #187 > > +00:00:21 v #188 > > Async.Sleep 10 +00:00:21 v #189 > > |> runWithTimeout 60 +00:00:21 v #190 > > |> _assertEqual (Some ()) +00:00:21 v #191 > > +00:00:21 v #192 > > ── [ 105.38ms - stdout ] ─────────────────────────────────────────────────────── +00:00:21 v #193 > > │ Some () +00:00:21 v #194 > > │ +00:00:21 v #195 > > │ +00:00:21 v #196 > > +00:00:21 v #197 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:21 v #198 > > //// test +00:00:21 v #199 > > +00:00:21 v #200 > > async { +00:00:21 v #201 > > raise (exn "error") +00:00:21 v #202 > > } +00:00:21 v #203 > > |> runWithTimeout 60 +00:00:21 v #204 > > |> _assertEqual None 00:00:21 v #205 > > -00:00:21 v #206 > > async { -00:00:21 v #207 > > raise (exn "error") -00:00:21 v #208 > > } -00:00:21 v #209 > > |> runWithTimeout 60 -00:00:21 v #210 > > |> _assertEqual None -00:00:21 v #211 > > -00:00:21 v #212 > > ── [ 119.53ms - stdout ] ─────────────────────────────────────────────────────── -00:00:21 v #213 > > │ 00:00:02 c #4 Async.runWithTimeoutAsync** / ex: -00:00:21 v #214 > > System.Exception: error -00:00:21 v #215 > > │ at FSI_0036.it@4-119.Invoke(Unit unitVar) -00:00:21 v #216 > > │ at -00:00:21 v #217 > > Microsoft.FSharp.Control.AsyncPrimitives.CallThenInvoke[T,TResult](AsyncActivati -00:00:21 v #218 > > on`1 ctxt, TResult result1, FSharpFunc`2 part2) in -00:00:21 v #219 > > D:\a\_work\1\s\src\FSharp.Core\async.fs:line 510 +00:00:21 v #206 > > ── [ 102.18ms - stdout ] ─────────────────────────────────────────────────────── +00:00:21 v #207 > > │ 00:00:01 c #4 Async.runWithTimeoutAsync** / ex: +00:00:21 v #208 > > System.Exception: error +00:00:21 v #209 > > │ at FSI_0036.it@4-119.Invoke(Unit unitVar) +00:00:21 v #210 > > │ at +00:00:21 v #211 > > Microsoft.FSharp.Control.AsyncPrimitives.CallThenInvoke[T,TResult](AsyncActivati +00:00:21 v #212 > > on`1 ctxt, TResult result1, FSharpFunc`2 part2) in +00:00:21 v #213 > > D:\a\_work\1\s\src\FSharp.Core\async.fs:line 510 +00:00:21 v #214 > > │ at +00:00:21 v #215 > > Microsoft.FSharp.Control.Trampoline.Execute(FSharpFunc`2 firstAction) in +00:00:21 v #216 > > D:\a\_work\1\s\src\FSharp.Core\async.fs:line 112 +00:00:21 v #217 > > │ --- End of stack trace from previous location --- +00:00:21 v #218 > > │ at Microsoft.FSharp.Control.AsyncResult`1.Commit() in +00:00:21 v #219 > > D:\a\_work\1\s\src\FSharp.Core\async.fs:line 454 00:00:21 v #220 > > │ at -00:00:21 v #221 > > Microsoft.FSharp.Control.Trampoline.Execute(FSharpFunc`2 firstAction) in -00:00:21 v #222 > > D:\a\_work\1\s\src\FSharp.Core\async.fs:line 112 -00:00:21 v #223 > > │ --- End of stack trace from previous location --- -00:00:21 v #224 > > │ at Microsoft.FSharp.Control.AsyncResult`1.Commit() in -00:00:21 v #225 > > D:\a\_work\1\s\src\FSharp.Core\async.fs:line 454 -00:00:21 v #226 > > │ at -00:00:21 v #227 > > <StartupCode$FSharp-Core>.$Async.AwaitAndBindChildResult@1962-4.Invoke(Unit -00:00:21 v #228 > > unitVar) in D:\a\_work\1\s\src\FSharp.Core\async.fs:line 1964 -00:00:21 v #229 > > │ at -00:00:21 v #230 > > Microsoft.FSharp.Control.AsyncPrimitives.CallThenInvoke[T,TResult](AsyncActivati -00:00:21 v #231 > > on`1 ctxt, TResult result1, FSharpFunc`2 part2) in -00:00:21 v #232 > > D:\a\_work\1\s\src\FSharp.Core\async.fs:line 510 -00:00:21 v #233 > > │ at -00:00:21 v #234 > > Microsoft.FSharp.Control.Trampoline.Execute(FSharpFunc`2 firstAction) in -00:00:21 v #235 > > D:\a\_work\1\s\src\FSharp.Core\async.fs:line 112 / timeout: 60 -00:00:21 v #236 > > │ <null> -00:00:21 v #237 > > │ -00:00:21 v #238 > > │ -00:00:21 v #239 > > -00:00:21 v #240 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:21 v #241 > > │ ## runWithTimeoutStrict -00:00:21 v #242 > > -00:00:21 v #243 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:21 v #244 > > let inline runWithTimeoutStrict (timeout : int) fn = -00:00:21 v #245 > > let _locals () = $"timeout: {timeout} / {_locals ()}" -00:00:21 v #246 > > -00:00:21 v #247 > > let timeoutTask = async { -00:00:21 v #248 > > do! Async.Sleep timeout -00:00:21 v #249 > > return None, _locals -00:00:21 v #250 > > } -00:00:21 v #251 > > -00:00:21 v #252 > > let task = async { -00:00:21 v #253 > > try -00:00:21 v #254 > > return Async.RunSynchronously (fn, timeout) |> Some, _locals -00:00:21 v #255 > > with -00:00:21 v #256 > > | :? System.TimeoutException as ex -> -00:00:21 v #257 > > let _locals () = $"ex: {ex |> SpiralSm.format_exception} / {_locals -00:00:21 v #258 > > ()}" -00:00:21 v #259 > > return None, _locals -00:00:21 v #260 > > | ex -> -00:00:21 v #261 > > trace Critical -00:00:21 v #262 > > (fun () -> "Async.runWithTimeoutStrict / async error") -00:00:21 v #263 > > (fun () -> $"ex: {ex |> SpiralSm.format_exception} / {_locals -00:00:21 v #264 > > ()}") -00:00:21 v #265 > > return raise ex -00:00:21 v #266 > > } -00:00:21 v #267 > > -00:00:21 v #268 > > try -00:00:21 v #269 > > [[| timeoutTask; task |]] -00:00:21 v #270 > > |> Array.map Async.StartAsTask -00:00:21 v #271 > > |> System.Threading.Tasks.Task.WhenAny -00:00:21 v #272 > > |> fun task -> -00:00:21 v #273 > > match task.Result.Result with -00:00:21 v #274 > > | None, _locals -> -00:00:21 v #275 > > trace Debug (fun () -> "runWithTimeoutStrict") _locals -00:00:21 v #276 > > None -00:00:21 v #277 > > | result, _ -> result -00:00:21 v #278 > > with -00:00:21 v #279 > > | :? System.AggregateException as ex when -00:00:21 v #280 > > ex.InnerExceptions -00:00:21 v #281 > > |> Seq.exists (function :? System.Threading.Tasks.TaskCanceledException -00:00:21 v #282 > > -> true | _ -> false) -00:00:21 v #283 > > -> -00:00:21 v #284 > > trace Warning -00:00:21 v #285 > > (fun () -> "Async.runWithTimeoutStrict") -00:00:21 v #286 > > (fun () -> $"ex: {ex |> SpiralSm.format_exception} / {_locals ()}") -00:00:21 v #287 > > None -00:00:21 v #288 > > | ex -> -00:00:21 v #289 > > trace Critical -00:00:21 v #290 > > (fun () -> "Async.runWithTimeoutStrict / task error") -00:00:21 v #291 > > (fun () -> $"ex: {ex |> SpiralSm.format_exception} / {_locals ()}") -00:00:21 v #292 > > None -00:00:21 v #293 > > -00:00:21 v #294 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:21 v #295 > > //// test -00:00:21 v #296 > > -00:00:21 v #297 > > Async.Sleep 60 -00:00:21 v #298 > > |> runWithTimeoutStrict 10 -00:00:21 v #299 > > |> _assertEqual None -00:00:22 v #300 > > -00:00:22 v #301 > > ── [ 140.94ms - stdout ] ─────────────────────────────────────────────────────── -00:00:22 v #302 > > │ 00:00:02 d #5 runWithTimeoutStrict / timeout: 10 -00:00:22 v #303 > > │ <null> -00:00:22 v #304 > > │ -00:00:22 v #305 > > │ -00:00:22 v #306 > > -00:00:22 v #307 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:22 v #308 > > //// test -00:00:22 v #309 > > -00:00:22 v #310 > > Async.Sleep 10 -00:00:22 v #311 > > |> runWithTimeoutStrict 60 -00:00:22 v #312 > > |> _assertEqual (Some ()) -00:00:22 v #313 > > -00:00:22 v #314 > > ── [ 139.15ms - stdout ] ─────────────────────────────────────────────────────── -00:00:22 v #315 > > │ Some () -00:00:22 v #316 > > │ -00:00:22 v #317 > > │ -00:00:22 v #318 > > -00:00:22 v #319 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:22 v #320 > > //// test -00:00:22 v #321 > > -00:00:22 v #322 > > async { -00:00:22 v #323 > > raise (exn "error") -00:00:22 v #324 > > } -00:00:22 v #325 > > |> runWithTimeoutStrict 60 -00:00:22 v #326 > > |> _assertEqual None -00:00:22 v #327 > > -00:00:22 v #328 > > ── [ 161.72ms - stdout ] ─────────────────────────────────────────────────────── -00:00:22 v #329 > > │ 00:00:02 c #6 Async.runWithTimeoutStrict / async error -00:00:22 v #330 > > ex: System.Exception: error / timeout: 60 -00:00:22 v #331 > > │ 00:00:02 c #7 Async.runWithTimeoutStrict / task error -00:00:22 v #332 > > ex: System.AggregateException: One or more errors occurred. (error) / timeout: -00:00:22 v #333 > > 60 -00:00:22 v #334 > > │ <null> -00:00:22 v #335 > > │ -00:00:22 v #336 > > │ -00:00:22 v #337 > > -00:00:22 v #338 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:22 v #339 > > │ ## awaitValueTask -00:00:22 v #340 > > -00:00:22 v #341 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:22 v #342 > > let inline awaitValueTaskUnit (task : System.Threading.Tasks.ValueTask) = -00:00:22 v #343 > > task.AsTask () |> Async.AwaitTask +00:00:21 v #221 > > <StartupCode$FSharp-Core>.$Async.AwaitAndBindChildResult@1966-4.Invoke(Unit +00:00:21 v #222 > > unitVar) in D:\a\_work\1\s\src\FSharp.Core\async.fs:line 1968 +00:00:21 v #223 > > │ at +00:00:21 v #224 > > Microsoft.FSharp.Control.AsyncPrimitives.CallThenInvoke[T,TResult](AsyncActivati +00:00:21 v #225 > > on`1 ctxt, TResult result1, FSharpFunc`2 part2) in +00:00:21 v #226 > > D:\a\_work\1\s\src\FSharp.Core\async.fs:line 510 +00:00:21 v #227 > > │ at +00:00:21 v #228 > > Microsoft.FSharp.Control.Trampoline.Execute(FSharpFunc`2 firstAction) in +00:00:21 v #229 > > D:\a\_work\1\s\src\FSharp.Core\async.fs:line 112 / timeout: 60 +00:00:21 v #230 > > │ <null> +00:00:21 v #231 > > │ +00:00:21 v #232 > > │ +00:00:21 v #233 > > +00:00:21 v #234 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:21 v #235 > > │ ## runWithTimeoutStrict +00:00:21 v #236 > > +00:00:21 v #237 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:21 v #238 > > let inline runWithTimeoutStrict (timeout : int) fn = +00:00:21 v #239 > > let _locals () = $"timeout: {timeout} / {_locals ()}" +00:00:21 v #240 > > +00:00:21 v #241 > > let timeoutTask = async { +00:00:21 v #242 > > do! Async.Sleep timeout +00:00:21 v #243 > > return None, _locals +00:00:21 v #244 > > } +00:00:21 v #245 > > +00:00:21 v #246 > > let task = async { +00:00:21 v #247 > > try +00:00:21 v #248 > > return Async.RunSynchronously (fn, timeout) |> Some, _locals +00:00:21 v #249 > > with +00:00:21 v #250 > > | :? System.TimeoutException as ex -> +00:00:21 v #251 > > let _locals () = $"ex: {ex |> SpiralSm.format_exception} / {_locals +00:00:21 v #252 > > ()}" +00:00:21 v #253 > > return None, _locals +00:00:21 v #254 > > | ex -> +00:00:21 v #255 > > trace Critical +00:00:21 v #256 > > (fun () -> "Async.runWithTimeoutStrict / async error") +00:00:21 v #257 > > (fun () -> $"ex: {ex |> SpiralSm.format_exception} / {_locals +00:00:21 v #258 > > ()}") +00:00:21 v #259 > > return raise ex +00:00:21 v #260 > > } +00:00:21 v #261 > > +00:00:21 v #262 > > try +00:00:21 v #263 > > [[| timeoutTask; task |]] +00:00:21 v #264 > > |> Array.map Async.StartAsTask +00:00:21 v #265 > > |> System.Threading.Tasks.Task.WhenAny +00:00:21 v #266 > > |> fun task -> +00:00:21 v #267 > > match task.Result.Result with +00:00:21 v #268 > > | None, _locals -> +00:00:21 v #269 > > trace Debug (fun () -> "runWithTimeoutStrict") _locals +00:00:21 v #270 > > None +00:00:21 v #271 > > | result, _ -> result +00:00:21 v #272 > > with +00:00:21 v #273 > > | :? System.AggregateException as ex when +00:00:21 v #274 > > ex.InnerExceptions +00:00:21 v #275 > > |> Seq.exists (function :? System.Threading.Tasks.TaskCanceledException +00:00:21 v #276 > > -> true | _ -> false) +00:00:21 v #277 > > -> +00:00:21 v #278 > > trace Warning +00:00:21 v #279 > > (fun () -> "Async.runWithTimeoutStrict") +00:00:21 v #280 > > (fun () -> $"ex: {ex |> SpiralSm.format_exception} / {_locals ()}") +00:00:21 v #281 > > None +00:00:21 v #282 > > | ex -> +00:00:21 v #283 > > trace Critical +00:00:21 v #284 > > (fun () -> "Async.runWithTimeoutStrict / task error") +00:00:21 v #285 > > (fun () -> $"ex: {ex |> SpiralSm.format_exception} / {_locals ()}") +00:00:21 v #286 > > None +00:00:21 v #287 > > +00:00:21 v #288 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:21 v #289 > > //// test +00:00:21 v #290 > > +00:00:21 v #291 > > Async.Sleep 60 +00:00:21 v #292 > > |> runWithTimeoutStrict 10 +00:00:21 v #293 > > |> _assertEqual None +00:00:21 v #294 > > +00:00:21 v #295 > > ── [ 143.83ms - stdout ] ─────────────────────────────────────────────────────── +00:00:21 v #296 > > │ 00:00:02 d #5 runWithTimeoutStrict / timeout: 10 +00:00:21 v #297 > > │ <null> +00:00:21 v #298 > > │ +00:00:21 v #299 > > │ +00:00:21 v #300 > > +00:00:21 v #301 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:21 v #302 > > //// test +00:00:21 v #303 > > +00:00:21 v #304 > > Async.Sleep 10 +00:00:21 v #305 > > |> runWithTimeoutStrict 60 +00:00:21 v #306 > > |> _assertEqual (Some ()) +00:00:21 v #307 > > +00:00:21 v #308 > > ── [ 139.73ms - stdout ] ─────────────────────────────────────────────────────── +00:00:21 v #309 > > │ Some () +00:00:21 v #310 > > │ +00:00:21 v #311 > > │ +00:00:21 v #312 > > +00:00:21 v #313 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:21 v #314 > > //// test +00:00:21 v #315 > > +00:00:21 v #316 > > async { +00:00:21 v #317 > > raise (exn "error") +00:00:21 v #318 > > } +00:00:21 v #319 > > |> runWithTimeoutStrict 60 +00:00:21 v #320 > > |> _assertEqual None +00:00:21 v #321 > > +00:00:21 v #322 > > ── [ 142.41ms - stdout ] ─────────────────────────────────────────────────────── +00:00:21 v #323 > > │ 00:00:02 c #6 Async.runWithTimeoutStrict / async error +00:00:21 v #324 > > ex: System.Exception: error / timeout: 60 +00:00:21 v #325 > > │ 00:00:02 c #7 Async.runWithTimeoutStrict / task error +00:00:21 v #326 > > ex: System.AggregateException: One or more errors occurred. (error) / timeout: +00:00:21 v #327 > > 60 +00:00:21 v #328 > > │ <null> +00:00:21 v #329 > > │ +00:00:21 v #330 > > │ +00:00:21 v #331 > > +00:00:21 v #332 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:21 v #333 > > │ ## awaitValueTask +00:00:21 v #334 > > +00:00:21 v #335 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:21 v #336 > > let inline awaitValueTaskUnit (task : System.Threading.Tasks.ValueTask) = +00:00:21 v #337 > > task.AsTask () |> Async.AwaitTask +00:00:21 v #338 > > +00:00:21 v #339 > > let inline awaitValueTask (task : System.Threading.Tasks.ValueTask<_>) = +00:00:21 v #340 > > task.AsTask () |> Async.AwaitTask +00:00:22 v #341 > > +00:00:22 v #342 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:22 v #343 > > │ ## init 00:00:22 v #344 > > -00:00:22 v #345 > > let inline awaitValueTask (task : System.Threading.Tasks.ValueTask<_>) = -00:00:22 v #346 > > task.AsTask () |> Async.AwaitTask -00:00:22 v #347 > > -00:00:22 v #348 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:22 v #349 > > │ ## init -00:00:22 v #350 > > -00:00:22 v #351 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:22 v #352 > > let inline init x = async { -00:00:22 v #353 > > return x -00:00:22 v #354 > > } -00:00:22 v #355 > > -00:00:22 v #356 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:22 v #357 > > //// test -00:00:22 v #358 > > -00:00:22 v #359 > > init 1 -00:00:22 v #360 > > |> Async.RunSynchronously -00:00:22 v #361 > > |> _assertEqual 1 -00:00:22 v #362 > > -00:00:22 v #363 > > ── [ 37.05ms - stdout ] ──────────────────────────────────────────────────────── -00:00:22 v #364 > > │ 1 -00:00:22 v #365 > > │ -00:00:22 v #366 > > │ -00:00:22 v #367 > > -00:00:22 v #368 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:22 v #369 > > │ ## withCancellationToken -00:00:22 v #370 > > -00:00:22 v #371 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:22 v #372 > > let inline withCancellationToken (ct : System.Threading.CancellationToken) fn = -00:00:22 v #373 > > Async.StartImmediateAsTask (fn, ct) -00:00:22 v #374 > > |> Async.AwaitTask -00:00:22 v #375 > > -00:00:22 v #376 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:22 v #377 > > //// test -00:00:22 v #378 > > -00:00:22 v #379 > > let cts = new System.Threading.CancellationTokenSource () +00:00:22 v #345 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:22 v #346 > > let inline init x = async { +00:00:22 v #347 > > return x +00:00:22 v #348 > > } +00:00:22 v #349 > > +00:00:22 v #350 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:22 v #351 > > //// test +00:00:22 v #352 > > +00:00:22 v #353 > > init 1 +00:00:22 v #354 > > |> Async.RunSynchronously +00:00:22 v #355 > > |> _assertEqual 1 +00:00:22 v #356 > > +00:00:22 v #357 > > ── [ 35.12ms - stdout ] ──────────────────────────────────────────────────────── +00:00:22 v #358 > > │ 1 +00:00:22 v #359 > > │ +00:00:22 v #360 > > │ +00:00:22 v #361 > > +00:00:22 v #362 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:22 v #363 > > │ ## withCancellationToken +00:00:22 v #364 > > +00:00:22 v #365 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:22 v #366 > > let inline withCancellationToken (ct : System.Threading.CancellationToken) fn = +00:00:22 v #367 > > Async.StartImmediateAsTask (fn, ct) +00:00:22 v #368 > > |> Async.AwaitTask +00:00:22 v #369 > > +00:00:22 v #370 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:22 v #371 > > //// test +00:00:22 v #372 > > +00:00:22 v #373 > > let cts = new System.Threading.CancellationTokenSource () +00:00:22 v #374 > > +00:00:22 v #375 > > async { +00:00:22 v #376 > > let run = async { +00:00:22 v #377 > > do! Async.Sleep 100 +00:00:22 v #378 > > return 1 +00:00:22 v #379 > > } 00:00:22 v #380 > > -00:00:22 v #381 > > async { -00:00:22 v #382 > > let run = async { -00:00:22 v #383 > > do! Async.Sleep 100 -00:00:22 v #384 > > return 1 -00:00:22 v #385 > > } +00:00:22 v #381 > > let! child = +00:00:22 v #382 > > run +00:00:22 v #383 > > |> withCancellationToken cts.Token +00:00:22 v #384 > > |> catch +00:00:22 v #385 > > |> Async.StartChild 00:00:22 v #386 > > -00:00:22 v #387 > > let! child = -00:00:22 v #388 > > run -00:00:22 v #389 > > |> withCancellationToken cts.Token -00:00:22 v #390 > > |> catch -00:00:22 v #391 > > |> Async.StartChild -00:00:22 v #392 > > -00:00:22 v #393 > > do! Async.Sleep 50 -00:00:22 v #394 > > cts.Cancel () -00:00:22 v #395 > > return! child -00:00:22 v #396 > > } -00:00:22 v #397 > > |> Async.RunSynchronously -00:00:22 v #398 > > |> Result.mapError _.Message -00:00:22 v #399 > > |> _assertEqual (Error ("A task was canceled.")) -00:00:22 v #400 > > -00:00:22 v #401 > > ── [ 223.84ms - stdout ] ─────────────────────────────────────────────────────── -00:00:22 v #402 > > │ Error "A task was canceled." -00:00:22 v #403 > > │ -00:00:22 v #404 > > │ -00:00:22 v #405 > > -00:00:22 v #406 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:22 v #407 > > │ ## retryAsync -00:00:22 v #408 > > -00:00:22 v #409 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:22 v #410 > > let inline retryAsync retries fn = -00:00:22 v #411 > > let rec loop retry lastError = async { -00:00:22 v #412 > > try -00:00:22 v #413 > > return! -00:00:22 v #414 > > if retry <= retries -00:00:22 v #415 > > then fn |> map Ok -00:00:22 v #416 > > else lastError |> Error |> init -00:00:22 v #417 > > with ex -> -00:00:22 v #418 > > trace Debug (fun () -> $"Async.retryAsync / retry: {retry}/{retries} -00:00:22 v #419 > > / ex: {ex |> SpiralSm.format_exception}") _locals -00:00:22 v #420 > > do! Async.Sleep 30 -00:00:22 v #421 > > return! loop (retry + 1) (ex |> SpiralSm.format_exception) -00:00:22 v #422 > > } -00:00:22 v #423 > > loop 1 "Async.retryAsync / invalid retries / retries: {retries}" -00:00:22 v #424 > > -00:00:22 v #425 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:22 v #426 > > //// test -00:00:22 v #427 > > -00:00:22 v #428 > > let retry_fn_test = ref 0 -00:00:22 v #429 > > async { -00:00:22 v #430 > > retry_fn_test.Value <- retry_fn_test.Value + 1 -00:00:22 v #431 > > return retry_fn_test.Value -00:00:22 v #432 > > } -00:00:22 v #433 > > |> retryAsync 3 -00:00:22 v #434 > > |> Async.RunSynchronously -00:00:22 v #435 > > |> _assertEqual (Ok 1) -00:00:22 v #436 > > -00:00:22 v #437 > > ── [ 124.25ms - stdout ] ─────────────────────────────────────────────────────── -00:00:22 v #438 > > │ Ok 1 -00:00:22 v #439 > > │ -00:00:22 v #440 > > │ -00:00:22 v #441 > > -00:00:22 v #442 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:22 v #443 > > //// test -00:00:22 v #444 > > -00:00:22 v #445 > > let retry_fn_test = ref 0 -00:00:22 v #446 > > async { -00:00:22 v #447 > > return -00:00:22 v #448 > > if retry_fn_test.Value >= 2 -00:00:22 v #449 > > then retry_fn_test.Value -00:00:22 v #450 > > else -00:00:22 v #451 > > retry_fn_test.Value <- retry_fn_test.Value + 1 -00:00:22 v #452 > > failwith "test" -00:00:22 v #453 > > } -00:00:22 v #454 > > |> retryAsync 3 -00:00:22 v #455 > > |> Async.RunSynchronously -00:00:22 v #456 > > |> _assertEqual (Ok 2) -00:00:23 v #457 > > -00:00:23 v #458 > > ── [ 186.97ms - stdout ] ─────────────────────────────────────────────────────── -00:00:23 v #459 > > │ 00:00:03 d #8 Async.retryAsync / retry: 1/3 / ex: -00:00:23 v #460 > > System.Exception: test -00:00:23 v #461 > > │ 00:00:03 d #9 Async.retryAsync / retry: 2/3 / ex: -00:00:23 v #462 > > System.Exception: test -00:00:23 v #463 > > │ Ok 2 -00:00:23 v #464 > > │ -00:00:23 v #465 > > │ -00:00:23 v #466 > > -00:00:23 v #467 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:23 v #468 > > │ ## fold -00:00:23 v #469 > > -00:00:23 v #470 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:23 v #471 > > let fold folder state array = -00:00:23 v #472 > > let rec loop acc i = -00:00:23 v #473 > > async { -00:00:23 v #474 > > if i < Array.length array then -00:00:23 v #475 > > let! newAcc = folder acc array.[[i]] -00:00:23 v #476 > > return! loop newAcc (i + 1) -00:00:23 v #477 > > else -00:00:23 v #478 > > return acc -00:00:23 v #479 > > } -00:00:23 v #480 > > loop state 0 -00:00:23 v #481 > 00:00:21 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 15150 } -00:00:23 v #482 > 00:00:21 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/lib/fsharp/Async.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/lib/fsharp/Async.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:00:24 v #483 > 00:00:22 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/lib/fsharp/Async.dib.ipynb to html -00:00:24 v #484 > 00:00:22 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. -00:00:24 v #485 > 00:00:22 v #7 ! validate(nb) -00:00:25 v #486 > 00:00:23 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 -00:00:25 v #487 > 00:00:23 v #9 ! return _pygments_highlight( -00:00:25 v #488 > 00:00:24 v #10 ! [NbConvertApp] Writing 332808 bytes to c:\home\git\polyglot\lib\fsharp\Async.dib.html -00:00:26 v #489 > 00:00:24 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 852 } -00:00:26 v #490 > 00:00:24 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 852 } -00:00:26 v #491 > 00:00:24 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/lib/fsharp/Async.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/lib/fsharp/Async.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:00:26 v #492 > 00:00:24 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } -00:00:26 v #493 > 00:00:24 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } -00:00:26 v #494 > 00:00:24 d #16 spiral.run / dib / { exit_code = 0; result_length = 16061 } -00:00:26 d #495 runtime.execute_with_options_async / { exit_code = 0; output_length = 19529 } -00:00:26 d #3 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path Async.dib --retries 3 -00:00:26 d #496 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path AsyncSeq.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path AsyncSeq.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } -00:00:26 v #497 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "AsyncSeq.dib", "--retries", "3"])) } -00:00:26 v #498 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/lib/fsharp/AsyncSeq.dib", "--output-path", "c:/home/git/polyglot/lib/fsharp/AsyncSeq.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/lib/fsharp/AsyncSeq.dib" --output-path "c:/home/git/polyglot/lib/fsharp/AsyncSeq.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } -00:00:28 v #499 > > -00:00:28 v #500 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:28 v #501 > > │ # AsyncSeq (Polyglot) -00:00:44 v #502 > > -00:00:44 v #503 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:22 v #387 > > do! Async.Sleep 50 +00:00:22 v #388 > > cts.Cancel () +00:00:22 v #389 > > return! child +00:00:22 v #390 > > } +00:00:22 v #391 > > |> Async.RunSynchronously +00:00:22 v #392 > > |> Result.mapError _.Message +00:00:22 v #393 > > |> _assertEqual (Error ("A task was canceled.")) +00:00:22 v #394 > > +00:00:22 v #395 > > ── [ 210.13ms - stdout ] ─────────────────────────────────────────────────────── +00:00:22 v #396 > > │ Error "A task was canceled." +00:00:22 v #397 > > │ +00:00:22 v #398 > > │ +00:00:22 v #399 > > +00:00:22 v #400 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:22 v #401 > > │ ## retryAsync +00:00:22 v #402 > > +00:00:22 v #403 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:22 v #404 > > let inline retryAsync retries fn = +00:00:22 v #405 > > let rec loop retry lastError = async { +00:00:22 v #406 > > try +00:00:22 v #407 > > return! +00:00:22 v #408 > > if retry <= retries +00:00:22 v #409 > > then fn |> map Ok +00:00:22 v #410 > > else lastError |> Error |> init +00:00:22 v #411 > > with ex -> +00:00:22 v #412 > > trace Debug (fun () -> $"Async.retryAsync / retry: {retry}/{retries} +00:00:22 v #413 > > / ex: {ex |> SpiralSm.format_exception}") _locals +00:00:22 v #414 > > do! Async.Sleep 30 +00:00:22 v #415 > > return! loop (retry + 1) (ex |> SpiralSm.format_exception) +00:00:22 v #416 > > } +00:00:22 v #417 > > loop 1 "Async.retryAsync / invalid retries / retries: {retries}" +00:00:22 v #418 > > +00:00:22 v #419 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:22 v #420 > > //// test +00:00:22 v #421 > > +00:00:22 v #422 > > let retry_fn_test = ref 0 +00:00:22 v #423 > > async { +00:00:22 v #424 > > retry_fn_test.Value <- retry_fn_test.Value + 1 +00:00:22 v #425 > > return retry_fn_test.Value +00:00:22 v #426 > > } +00:00:22 v #427 > > |> retryAsync 3 +00:00:22 v #428 > > |> Async.RunSynchronously +00:00:22 v #429 > > |> _assertEqual (Ok 1) +00:00:22 v #430 > > +00:00:22 v #431 > > ── [ 114.03ms - stdout ] ─────────────────────────────────────────────────────── +00:00:22 v #432 > > │ Ok 1 +00:00:22 v #433 > > │ +00:00:22 v #434 > > │ +00:00:22 v #435 > > +00:00:22 v #436 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:22 v #437 > > //// test +00:00:22 v #438 > > +00:00:22 v #439 > > let retry_fn_test = ref 0 +00:00:22 v #440 > > async { +00:00:22 v #441 > > return +00:00:22 v #442 > > if retry_fn_test.Value >= 2 +00:00:22 v #443 > > then retry_fn_test.Value +00:00:22 v #444 > > else +00:00:22 v #445 > > retry_fn_test.Value <- retry_fn_test.Value + 1 +00:00:22 v #446 > > failwith "test" +00:00:22 v #447 > > } +00:00:22 v #448 > > |> retryAsync 3 +00:00:22 v #449 > > |> Async.RunSynchronously +00:00:22 v #450 > > |> _assertEqual (Ok 2) +00:00:22 v #451 > > +00:00:22 v #452 > > ── [ 162.30ms - stdout ] ─────────────────────────────────────────────────────── +00:00:22 v #453 > > │ 00:00:03 d #8 Async.retryAsync / retry: 1/3 / ex: +00:00:22 v #454 > > System.Exception: test +00:00:22 v #455 > > │ 00:00:03 d #9 Async.retryAsync / retry: 2/3 / ex: +00:00:22 v #456 > > System.Exception: test +00:00:22 v #457 > > │ Ok 2 +00:00:22 v #458 > > │ +00:00:22 v #459 > > │ +00:00:22 v #460 > > +00:00:22 v #461 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:22 v #462 > > │ ## fold +00:00:22 v #463 > > +00:00:22 v #464 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:22 v #465 > > let fold folder state array = +00:00:22 v #466 > > let rec loop acc i = +00:00:22 v #467 > > async { +00:00:22 v #468 > > if i < Array.length array then +00:00:22 v #469 > > let! newAcc = folder acc array.[[i]] +00:00:22 v #470 > > return! loop newAcc (i + 1) +00:00:22 v #471 > > else +00:00:22 v #472 > > return acc +00:00:22 v #473 > > } +00:00:22 v #474 > > loop state 0 +00:00:22 v #475 > 00:00:21 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 15150 } +00:00:22 v #476 > 00:00:21 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/lib/fsharp/Async.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/lib/fsharp/Async.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } +00:00:24 v #477 > 00:00:23 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/lib/fsharp/Async.dib.ipynb to html +00:00:24 v #478 > 00:00:23 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. +00:00:24 v #479 > 00:00:23 v #7 ! validate(nb) +00:00:24 v #480 > 00:00:23 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 +00:00:24 v #481 > 00:00:23 v #9 ! return _pygments_highlight( +00:00:25 v #482 > 00:00:24 v #10 ! [NbConvertApp] Writing 332808 bytes to c:\home\git\polyglot\lib\fsharp\Async.dib.html +00:00:25 v #483 > 00:00:24 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 852 } +00:00:25 v #484 > 00:00:24 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 852 } +00:00:25 v #485 > 00:00:24 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/lib/fsharp/Async.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/lib/fsharp/Async.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } +00:00:25 v #486 > 00:00:24 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } +00:00:25 v #487 > 00:00:24 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } +00:00:25 v #488 > 00:00:24 d #16 spiral.run / dib / { exit_code = 0; result_length = 16061 } +00:00:25 d #489 runtime.execute_with_options_async / { exit_code = 0; output_length = 19529 } +00:00:25 d #1 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path Async.dib --retries 3 +00:00:25 d #490 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path AsyncSeq.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path AsyncSeq.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } +00:00:25 v #491 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "AsyncSeq.dib", "--retries", "3"])) } +00:00:25 v #492 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/lib/fsharp/AsyncSeq.dib", "--output-path", "c:/home/git/polyglot/lib/fsharp/AsyncSeq.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/lib/fsharp/AsyncSeq.dib" --output-path "c:/home/git/polyglot/lib/fsharp/AsyncSeq.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } +00:00:27 v #493 > > +00:00:27 v #494 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:27 v #495 > > │ # AsyncSeq (Polyglot) +00:00:44 v #496 > > +00:00:44 v #497 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:44 v #498 > > #r +00:00:44 v #499 > > @"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan +00:00:44 v #500 > > dard2.1/FSharp.Control.AsyncSeq.dll" +00:00:44 v #501 > > #r +00:00:44 v #502 > > @"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6. +00:00:44 v #503 > > 0/System.Reactive.dll" 00:00:44 v #504 > > #r -00:00:44 v #505 > > @"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan -00:00:44 v #506 > > dard2.1/FSharp.Control.AsyncSeq.dll" -00:00:44 v #507 > > #r -00:00:44 v #508 > > @"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6. -00:00:44 v #509 > > 0/System.Reactive.dll" -00:00:44 v #510 > > #r -00:00:44 v #511 > > @"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib -00:00:44 v #512 > > netstandard2.0/System.Reactive.Linq.dll" -00:00:45 v #513 > > -00:00:45 v #514 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:45 v #515 > > #if !INTERACTIVE -00:00:45 v #516 > > open Lib -00:00:45 v #517 > > #endif +00:00:44 v #505 > > @"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib +00:00:44 v #506 > > netstandard2.0/System.Reactive.Linq.dll" +00:00:45 v #507 > > +00:00:45 v #508 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:45 v #509 > > #if !INTERACTIVE +00:00:45 v #510 > > open Lib +00:00:45 v #511 > > #endif +00:00:45 v #512 > > +00:00:45 v #513 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:45 v #514 > > open Common +00:00:45 v #515 > > +00:00:45 v #516 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:45 v #517 > > │ ## subscribeEvent 00:00:45 v #518 > > 00:00:45 v #519 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:45 v #520 > > open Common -00:00:45 v #521 > > -00:00:45 v #522 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:45 v #523 > > │ ## subscribeEvent -00:00:45 v #524 > > -00:00:45 v #525 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:45 v #526 > > let inline subscribeEvent (event: IEvent<'H, 'A>) map = -00:00:45 v #527 > > let observable = System.Reactive.Linq.Observable.FromEventPattern<'H, -00:00:45 v #528 > > 'A>(event.AddHandler, event.RemoveHandler) -00:00:45 v #529 > > System.Reactive.Linq.Observable.Select (observable, fun event -> map -00:00:45 v #530 > > event.EventArgs) -00:00:45 v #531 > > |> FSharp.Control.AsyncSeq.ofObservableBuffered -00:00:45 v #532 > > -00:00:45 v #533 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:45 v #534 > > //// test -00:00:45 v #535 > > -00:00:45 v #536 > > type TestEvent () as self = -00:00:45 v #537 > > member val Calls = [[]] with get, set -00:00:45 v #538 > > member val Event = Event<ErrorEventHandler, ErrorEventArgs> () with get -00:00:45 v #539 > > -00:00:45 v #540 > > member _.AddCall text = -00:00:45 v #541 > > self.Calls <- self.Calls @ [[ text ]] +00:00:45 v #520 > > let inline subscribeEvent (event: IEvent<'H, 'A>) map = +00:00:45 v #521 > > let observable = System.Reactive.Linq.Observable.FromEventPattern<'H, +00:00:45 v #522 > > 'A>(event.AddHandler, event.RemoveHandler) +00:00:45 v #523 > > System.Reactive.Linq.Observable.Select (observable, fun event -> map +00:00:45 v #524 > > event.EventArgs) +00:00:45 v #525 > > |> FSharp.Control.AsyncSeq.ofObservableBuffered +00:00:45 v #526 > > +00:00:45 v #527 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:45 v #528 > > //// test +00:00:45 v #529 > > +00:00:45 v #530 > > type TestEvent () as self = +00:00:45 v #531 > > member val Calls = [[]] with get, set +00:00:45 v #532 > > member val Event = Event<ErrorEventHandler, ErrorEventArgs> () with get +00:00:45 v #533 > > +00:00:45 v #534 > > member _.AddCall text = +00:00:45 v #535 > > self.Calls <- self.Calls @ [[ text ]] +00:00:45 v #536 > > +00:00:45 v #537 > > member _.EventInterface = +00:00:45 v #538 > > { new IEvent<ErrorEventHandler, ErrorEventArgs> with +00:00:45 v #539 > > member _.AddHandler handler = +00:00:45 v #540 > > self.AddCall "AddHandler" +00:00:45 v #541 > > self.Event.Publish.AddHandler handler 00:00:45 v #542 > > -00:00:45 v #543 > > member _.EventInterface = -00:00:45 v #544 > > { new IEvent<ErrorEventHandler, ErrorEventArgs> with -00:00:45 v #545 > > member _.AddHandler handler = -00:00:45 v #546 > > self.AddCall "AddHandler" -00:00:45 v #547 > > self.Event.Publish.AddHandler handler -00:00:45 v #548 > > -00:00:45 v #549 > > member _.RemoveHandler handler = -00:00:45 v #550 > > self.AddCall "RemoveHandler" -00:00:45 v #551 > > self.Event.Publish.RemoveHandler handler -00:00:45 v #552 > > -00:00:45 v #553 > > member _.Subscribe observer = -00:00:45 v #554 > > self.AddCall "IObservable.Subscribe" -00:00:45 v #555 > > let disposable = self.Event.Publish.Subscribe observer -00:00:45 v #556 > > new_disposable (fun () -> -00:00:45 v #557 > > self.AddCall "IObservable.Dispose" -00:00:45 v #558 > > disposable.Dispose () -00:00:45 v #559 > > ) -00:00:45 v #560 > > } -00:00:45 v #561 > > -00:00:45 v #562 > > member _.Subscribe () = -00:00:45 v #563 > > subscribeEvent -00:00:45 v #564 > > self.EventInterface -00:00:45 v #565 > > (fun args -> -00:00:45 v #566 > > let result = args.GetException () |> SpiralSm.format_exception -00:00:45 v #567 > > self.AddCall $"TestEvent.Subscribe({result})" -00:00:45 v #568 > > result -00:00:45 v #569 > > ) +00:00:45 v #543 > > member _.RemoveHandler handler = +00:00:45 v #544 > > self.AddCall "RemoveHandler" +00:00:45 v #545 > > self.Event.Publish.RemoveHandler handler +00:00:45 v #546 > > +00:00:45 v #547 > > member _.Subscribe observer = +00:00:45 v #548 > > self.AddCall "IObservable.Subscribe" +00:00:45 v #549 > > let disposable = self.Event.Publish.Subscribe observer +00:00:45 v #550 > > new_disposable (fun () -> +00:00:45 v #551 > > self.AddCall "IObservable.Dispose" +00:00:45 v #552 > > disposable.Dispose () +00:00:45 v #553 > > ) +00:00:45 v #554 > > } +00:00:45 v #555 > > +00:00:45 v #556 > > member _.Subscribe () = +00:00:45 v #557 > > subscribeEvent +00:00:45 v #558 > > self.EventInterface +00:00:45 v #559 > > (fun args -> +00:00:45 v #560 > > let result = args.GetException () |> SpiralSm.format_exception +00:00:45 v #561 > > self.AddCall $"TestEvent.Subscribe({result})" +00:00:45 v #562 > > result +00:00:45 v #563 > > ) +00:00:45 v #564 > > +00:00:45 v #565 > > member _.Iter subscription = +00:00:45 v #566 > > subscription +00:00:45 v #567 > > |> FSharp.Control.AsyncSeq.iteriAsync (fun i error -> async { +00:00:45 v #568 > > self.AddCall $"TestEvent.Iter({i}: {error})" +00:00:45 v #569 > > }) 00:00:45 v #570 > > -00:00:45 v #571 > > member _.Iter subscription = -00:00:45 v #572 > > subscription -00:00:45 v #573 > > |> FSharp.Control.AsyncSeq.iteriAsync (fun i error -> async { -00:00:45 v #574 > > self.AddCall $"TestEvent.Iter({i}: {error})" -00:00:45 v #575 > > }) -00:00:45 v #576 > > -00:00:45 v #577 > > member _.WaitCall text = async { -00:00:45 v #578 > > while self.Calls |> List.last <> text do -00:00:45 v #579 > > do! Async.SwitchToThreadPool () -00:00:45 v #580 > > } -00:00:45 v #581 > > -00:00:45 v #582 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:45 v #583 > > //// test -00:00:45 v #584 > > -00:00:45 v #585 > > let testEvent = TestEvent () -00:00:45 v #586 > > -00:00:45 v #587 > > async { -00:00:45 v #588 > > testEvent.AddCall "1" -00:00:45 v #589 > > let! child = testEvent.Subscribe () |> testEvent.Iter |> Async.StartChild -00:00:45 v #590 > > do! testEvent.WaitCall "AddHandler" -00:00:45 v #591 > > testEvent.AddCall "2" -00:00:45 v #592 > > do! child -00:00:45 v #593 > > testEvent.AddCall "3" -00:00:45 v #594 > > } -00:00:45 v #595 > > |> Async.runWithTimeout 300 -00:00:45 v #596 > > |> _assertEqual None -00:00:45 v #597 > > -00:00:45 v #598 > > testEvent.Calls -00:00:45 v #599 > > |> Seq.toList -00:00:45 v #600 > > |> _assertEqual [[ "1"; "AddHandler"; "2"; "RemoveHandler" ]] -00:00:46 v #601 > > -00:00:46 v #602 > > ── [ 533.25ms - stdout ] ─────────────────────────────────────────────────────── -00:00:46 v #603 > > │ 00:00:02 d #1 Async.runWithTimeoutAsync / timeout: 300 -00:00:46 v #604 > > │ <null> -00:00:46 v #605 > > │ -00:00:46 v #606 > > │ ["1"; "AddHandler"; "2"; "RemoveHandler"] -00:00:46 v #607 > > │ -00:00:46 v #608 > > │ -00:00:46 v #609 > > -00:00:46 v #610 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:46 v #611 > > //// test -00:00:46 v #612 > > -00:00:46 v #613 > > let testEvent = TestEvent () -00:00:46 v #614 > > -00:00:46 v #615 > > async { -00:00:46 v #616 > > testEvent.AddCall "1" -00:00:46 v #617 > > let! child = testEvent.Subscribe () |> testEvent.Iter |> Async.StartChild -00:00:46 v #618 > > do! testEvent.WaitCall "AddHandler" -00:00:46 v #619 > > testEvent.AddCall "2" -00:00:46 v #620 > > use _ = testEvent.EventInterface.Subscribe (fun args -> -00:00:46 v #621 > > testEvent.AddCall $"testEvent.EventInterface.Subscribe({args})" -00:00:46 v #622 > > ) -00:00:46 v #623 > > testEvent.AddCall "3" -00:00:46 v #624 > > do! child -00:00:46 v #625 > > testEvent.AddCall "4" -00:00:46 v #626 > > } -00:00:46 v #627 > > |> Async.runWithTimeout 300 -00:00:46 v #628 > > |> _assertEqual None -00:00:46 v #629 > > -00:00:46 v #630 > > testEvent.Calls -00:00:46 v #631 > > |> _assertEqual [[ "1"; "AddHandler"; "2"; "IObservable.Subscribe"; "3"; -00:00:46 v #632 > > "RemoveHandler"; "IObservable.Dispose" ]] -00:00:46 v #633 > > -00:00:46 v #634 > > ── [ 460.96ms - stdout ] ─────────────────────────────────────────────────────── -00:00:46 v #635 > > │ 00:00:02 d #2 Async.runWithTimeoutAsync / timeout: 300 -00:00:46 v #636 > > │ <null> -00:00:46 v #637 > > │ -00:00:46 v #638 > > │ ["1"; "AddHandler"; "2"; "IObservable.Subscribe"; "3"; -00:00:46 v #639 > > "RemoveHandler"; "IObservable.Dispose"] -00:00:46 v #640 > > │ -00:00:46 v #641 > > │ -00:00:46 v #642 > > -00:00:46 v #643 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:46 v #644 > > //// test -00:00:46 v #645 > > -00:00:46 v #646 > > let testEvent = TestEvent () -00:00:46 v #647 > > -00:00:46 v #648 > > async { -00:00:46 v #649 > > testEvent.AddCall "1" -00:00:46 v #650 > > let! child = testEvent.Subscribe () |> testEvent.Iter |> Async.StartChild -00:00:46 v #651 > > do! testEvent.WaitCall "AddHandler" -00:00:46 v #652 > > testEvent.AddCall "2" -00:00:46 v #653 > > use _ = testEvent.EventInterface.Subscribe (fun args -> -00:00:46 v #654 > > async { -00:00:46 v #655 > > do! testEvent.WaitCall "TestEvent.Iter(0: System.Exception: error)" -00:00:46 v #656 > > testEvent.AddCall -00:00:46 v #657 > > $"testEvent.EventInterface.Subscribe({args.GetException () |> -00:00:46 v #658 > > SpiralSm.format_exception})" -00:00:46 v #659 > > } -00:00:46 v #660 > > |> Async.RunSynchronously -00:00:46 v #661 > > ) -00:00:46 v #662 > > testEvent.AddCall "3" -00:00:46 v #663 > > testEvent.Event.Trigger (null, ErrorEventArgs (Exception "error")) -00:00:46 v #664 > > testEvent.AddCall "4" -00:00:46 v #665 > > do! child -00:00:46 v #666 > > testEvent.AddCall "5" -00:00:46 v #667 > > } -00:00:46 v #668 > > |> Async.runWithTimeout 300 -00:00:46 v #669 > > |> _assertEqual None -00:00:46 v #670 > > -00:00:46 v #671 > > testEvent.Calls -00:00:46 v #672 > > |> _assertEqual [[ -00:00:46 v #673 > > "1" -00:00:46 v #674 > > "AddHandler" -00:00:46 v #675 > > "2" -00:00:46 v #676 > > "IObservable.Subscribe" -00:00:46 v #677 > > "3" -00:00:46 v #678 > > "TestEvent.Subscribe(System.Exception: error)" -00:00:46 v #679 > > "TestEvent.Iter(0: System.Exception: error)" -00:00:46 v #680 > > "testEvent.EventInterface.Subscribe(System.Exception: error)" -00:00:46 v #681 > > "4" -00:00:46 v #682 > > "RemoveHandler" -00:00:46 v #683 > > "IObservable.Dispose" -00:00:46 v #684 > > ]] -00:00:47 v #685 > > -00:00:47 v #686 > > ── [ 483.37ms - stdout ] ─────────────────────────────────────────────────────── -00:00:47 v #687 > > │ 00:00:03 d #3 Async.runWithTimeoutAsync / timeout: 300 -00:00:47 v #688 > > │ <null> -00:00:47 v #689 > > │ -00:00:47 v #690 > > │ ["1"; "AddHandler"; "2"; "IObservable.Subscribe"; "3"; -00:00:47 v #691 > > "TestEvent.Subscribe(System.Exception: error)"; -00:00:47 v #692 > > │ "TestEvent.Iter(0: System.Exception: error)"; -00:00:47 v #693 > > "testEvent.EventInterface.Subscribe(System.Exception: error)"; "4"; -00:00:47 v #694 > > │ "RemoveHandler"; "IObservable.Dispose"] -00:00:47 v #695 > > │ -00:00:47 v #696 > > │ -00:00:47 v #697 > > -00:00:47 v #698 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:47 v #699 > > │ ## subscribeToken -00:00:47 v #700 > > -00:00:47 v #701 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:47 v #702 > > let subscribeToken (token : System.Threading.CancellationToken) = -00:00:47 v #703 > > let tcs = new System.Threading.Tasks.TaskCompletionSource () -00:00:47 v #704 > > System.Action tcs.SetResult |> token.Register |> ignore -00:00:47 v #705 > > let start = System.DateTime.Now.Ticks -00:00:47 v #706 > > FSharp.Control.AsyncSeq.unfoldAsync -00:00:47 v #707 > > (fun () -> async { -00:00:47 v #708 > > do! tcs.Task |> Async.AwaitTask -00:00:47 v #709 > > return Some (System.DateTime.Now.Ticks - start, ()) -00:00:47 v #710 > > }) -00:00:47 v #711 > > () -00:00:47 v #712 > > -00:00:47 v #713 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:47 v #714 > > //// test -00:00:47 v #715 > > -00:00:47 v #716 > > let cts = new System.Threading.CancellationTokenSource () -00:00:47 v #717 > > -00:00:47 v #718 > > async { -00:00:47 v #719 > > let! child = -00:00:47 v #720 > > cts.Token -00:00:47 v #721 > > |> subscribeToken -00:00:47 v #722 > > |> FSharp.Control.AsyncSeq.tryFirst -00:00:47 v #723 > > |> Async.StartChild -00:00:47 v #724 > > -00:00:47 v #725 > > do! Async.Sleep 100 -00:00:47 v #726 > > cts.Cancel () -00:00:47 v #727 > > return! child -00:00:47 v #728 > > } -00:00:47 v #729 > > |> Async.RunSynchronously -00:00:47 v #730 > > |> Option.get -00:00:47 v #731 > > |> fun x -> x > 900000 -00:00:47 v #732 > > |> _assertEqual true -00:00:47 v #733 > > -00:00:47 v #734 > > ── [ 185.21ms - stdout ] ─────────────────────────────────────────────────────── -00:00:47 v #735 > > │ true -00:00:47 v #736 > > │ -00:00:47 v #737 > > │ -00:00:47 v #738 > 00:00:21 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 7850 } -00:00:47 v #739 > 00:00:21 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/lib/fsharp/AsyncSeq.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/lib/fsharp/AsyncSeq.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:00:49 v #740 > 00:00:22 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/lib/fsharp/AsyncSeq.dib.ipynb to html -00:00:49 v #741 > 00:00:22 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. -00:00:49 v #742 > 00:00:22 v #7 ! validate(nb) -00:00:49 v #743 > 00:00:23 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 -00:00:49 v #744 > 00:00:23 v #9 ! return _pygments_highlight( -00:00:50 v #745 > 00:00:23 v #10 ! [NbConvertApp] Writing 303129 bytes to c:\home\git\polyglot\lib\fsharp\AsyncSeq.dib.html -00:00:50 v #746 > 00:00:23 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 858 } -00:00:50 v #747 > 00:00:23 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 858 } -00:00:50 v #748 > 00:00:23 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/lib/fsharp/AsyncSeq.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/lib/fsharp/AsyncSeq.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:00:50 v #749 > 00:00:24 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } -00:00:50 v #750 > 00:00:24 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } -00:00:50 v #751 > 00:00:24 d #16 spiral.run / dib / { exit_code = 0; result_length = 8767 } -00:00:50 d #752 runtime.execute_with_options_async / { exit_code = 0; output_length = 11796 } -00:00:50 d #4 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path AsyncSeq.dib --retries 3 -00:00:50 d #753 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path Common.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path Common.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } -00:00:50 v #754 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "Common.dib", "--retries", "3"])) } -00:00:50 v #755 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/lib/fsharp/Common.dib", "--output-path", "c:/home/git/polyglot/lib/fsharp/Common.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/lib/fsharp/Common.dib" --output-path "c:/home/git/polyglot/lib/fsharp/Common.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } -00:00:52 v #756 > > -00:00:52 v #757 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:52 v #758 > > │ # Common (Polyglot) -00:01:08 v #759 > > -00:01:08 v #760 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:01:08 v #761 > > #if !INTERACTIVE -00:01:08 v #762 > > open Lib -00:01:08 v #763 > > #endif -00:01:08 v #764 > > -00:01:08 v #765 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:01:08 v #766 > > let nl = System.Environment.NewLine -00:01:08 v #767 > > let q = @"""" +00:00:45 v #571 > > member _.WaitCall text = async { +00:00:45 v #572 > > while self.Calls |> List.last <> text do +00:00:45 v #573 > > do! Async.SwitchToThreadPool () +00:00:45 v #574 > > } +00:00:45 v #575 > > +00:00:45 v #576 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:45 v #577 > > //// test +00:00:45 v #578 > > +00:00:45 v #579 > > let testEvent = TestEvent () +00:00:45 v #580 > > +00:00:45 v #581 > > async { +00:00:45 v #582 > > testEvent.AddCall "1" +00:00:45 v #583 > > let! child = testEvent.Subscribe () |> testEvent.Iter |> Async.StartChild +00:00:45 v #584 > > do! testEvent.WaitCall "AddHandler" +00:00:45 v #585 > > testEvent.AddCall "2" +00:00:45 v #586 > > do! child +00:00:45 v #587 > > testEvent.AddCall "3" +00:00:45 v #588 > > } +00:00:45 v #589 > > |> Async.runWithTimeout 300 +00:00:45 v #590 > > |> _assertEqual None +00:00:45 v #591 > > +00:00:45 v #592 > > testEvent.Calls +00:00:45 v #593 > > |> Seq.toList +00:00:45 v #594 > > |> _assertEqual [[ "1"; "AddHandler"; "2"; "RemoveHandler" ]] +00:00:45 v #595 > > +00:00:46 v #596 > > ── [ 531.54ms - stdout ] ─────────────────────────────────────────────────────── +00:00:46 v #597 > > │ 00:00:02 d #1 Async.runWithTimeoutAsync / timeout: 300 +00:00:46 v #598 > > │ <null> +00:00:46 v #599 > > │ +00:00:46 v #600 > > │ ["1"; "AddHandler"; "2"; "RemoveHandler"] +00:00:46 v #601 > > │ +00:00:46 v #602 > > │ +00:00:46 v #603 > > +00:00:46 v #604 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:46 v #605 > > //// test +00:00:46 v #606 > > +00:00:46 v #607 > > let testEvent = TestEvent () +00:00:46 v #608 > > +00:00:46 v #609 > > async { +00:00:46 v #610 > > testEvent.AddCall "1" +00:00:46 v #611 > > let! child = testEvent.Subscribe () |> testEvent.Iter |> Async.StartChild +00:00:46 v #612 > > do! testEvent.WaitCall "AddHandler" +00:00:46 v #613 > > testEvent.AddCall "2" +00:00:46 v #614 > > use _ = testEvent.EventInterface.Subscribe (fun args -> +00:00:46 v #615 > > testEvent.AddCall $"testEvent.EventInterface.Subscribe({args})" +00:00:46 v #616 > > ) +00:00:46 v #617 > > testEvent.AddCall "3" +00:00:46 v #618 > > do! child +00:00:46 v #619 > > testEvent.AddCall "4" +00:00:46 v #620 > > } +00:00:46 v #621 > > |> Async.runWithTimeout 300 +00:00:46 v #622 > > |> _assertEqual None +00:00:46 v #623 > > +00:00:46 v #624 > > testEvent.Calls +00:00:46 v #625 > > |> _assertEqual [[ "1"; "AddHandler"; "2"; "IObservable.Subscribe"; "3"; +00:00:46 v #626 > > "RemoveHandler"; "IObservable.Dispose" ]] +00:00:46 v #627 > > +00:00:46 v #628 > > ── [ 449.00ms - stdout ] ─────────────────────────────────────────────────────── +00:00:46 v #629 > > │ 00:00:02 d #2 Async.runWithTimeoutAsync / timeout: 300 +00:00:46 v #630 > > │ <null> +00:00:46 v #631 > > │ +00:00:46 v #632 > > │ ["1"; "AddHandler"; "2"; "IObservable.Subscribe"; "3"; +00:00:46 v #633 > > "RemoveHandler"; "IObservable.Dispose"] +00:00:46 v #634 > > │ +00:00:46 v #635 > > │ +00:00:46 v #636 > > +00:00:46 v #637 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:46 v #638 > > //// test +00:00:46 v #639 > > +00:00:46 v #640 > > let testEvent = TestEvent () +00:00:46 v #641 > > +00:00:46 v #642 > > async { +00:00:46 v #643 > > testEvent.AddCall "1" +00:00:46 v #644 > > let! child = testEvent.Subscribe () |> testEvent.Iter |> Async.StartChild +00:00:46 v #645 > > do! testEvent.WaitCall "AddHandler" +00:00:46 v #646 > > testEvent.AddCall "2" +00:00:46 v #647 > > use _ = testEvent.EventInterface.Subscribe (fun args -> +00:00:46 v #648 > > async { +00:00:46 v #649 > > do! testEvent.WaitCall "TestEvent.Iter(0: System.Exception: error)" +00:00:46 v #650 > > testEvent.AddCall +00:00:46 v #651 > > $"testEvent.EventInterface.Subscribe({args.GetException () |> +00:00:46 v #652 > > SpiralSm.format_exception})" +00:00:46 v #653 > > } +00:00:46 v #654 > > |> Async.RunSynchronously +00:00:46 v #655 > > ) +00:00:46 v #656 > > testEvent.AddCall "3" +00:00:46 v #657 > > testEvent.Event.Trigger (null, ErrorEventArgs (Exception "error")) +00:00:46 v #658 > > testEvent.AddCall "4" +00:00:46 v #659 > > do! child +00:00:46 v #660 > > testEvent.AddCall "5" +00:00:46 v #661 > > } +00:00:46 v #662 > > |> Async.runWithTimeout 300 +00:00:46 v #663 > > |> _assertEqual None +00:00:46 v #664 > > +00:00:46 v #665 > > testEvent.Calls +00:00:46 v #666 > > |> _assertEqual [[ +00:00:46 v #667 > > "1" +00:00:46 v #668 > > "AddHandler" +00:00:46 v #669 > > "2" +00:00:46 v #670 > > "IObservable.Subscribe" +00:00:46 v #671 > > "3" +00:00:46 v #672 > > "TestEvent.Subscribe(System.Exception: error)" +00:00:46 v #673 > > "TestEvent.Iter(0: System.Exception: error)" +00:00:46 v #674 > > "testEvent.EventInterface.Subscribe(System.Exception: error)" +00:00:46 v #675 > > "4" +00:00:46 v #676 > > "RemoveHandler" +00:00:46 v #677 > > "IObservable.Dispose" +00:00:46 v #678 > > ]] +00:00:46 v #679 > > +00:00:46 v #680 > > ── [ 468.00ms - stdout ] ─────────────────────────────────────────────────────── +00:00:46 v #681 > > │ 00:00:03 d #3 Async.runWithTimeoutAsync / timeout: 300 +00:00:46 v #682 > > │ <null> +00:00:46 v #683 > > │ +00:00:46 v #684 > > │ ["1"; "AddHandler"; "2"; "IObservable.Subscribe"; "3"; +00:00:46 v #685 > > "TestEvent.Subscribe(System.Exception: error)"; +00:00:46 v #686 > > │ "TestEvent.Iter(0: System.Exception: error)"; +00:00:46 v #687 > > "testEvent.EventInterface.Subscribe(System.Exception: error)"; "4"; +00:00:46 v #688 > > │ "RemoveHandler"; "IObservable.Dispose"] +00:00:46 v #689 > > │ +00:00:46 v #690 > > │ +00:00:46 v #691 > > +00:00:46 v #692 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:46 v #693 > > │ ## subscribeToken +00:00:46 v #694 > > +00:00:46 v #695 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:46 v #696 > > let subscribeToken (token : System.Threading.CancellationToken) = +00:00:46 v #697 > > let tcs = new System.Threading.Tasks.TaskCompletionSource () +00:00:46 v #698 > > System.Action tcs.SetResult |> token.Register |> ignore +00:00:46 v #699 > > let start = System.DateTime.Now.Ticks +00:00:46 v #700 > > FSharp.Control.AsyncSeq.unfoldAsync +00:00:46 v #701 > > (fun () -> async { +00:00:46 v #702 > > do! tcs.Task |> Async.AwaitTask +00:00:46 v #703 > > return Some (System.DateTime.Now.Ticks - start, ()) +00:00:46 v #704 > > }) +00:00:46 v #705 > > () +00:00:46 v #706 > > +00:00:46 v #707 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:46 v #708 > > //// test +00:00:46 v #709 > > +00:00:46 v #710 > > let cts = new System.Threading.CancellationTokenSource () +00:00:46 v #711 > > +00:00:46 v #712 > > async { +00:00:46 v #713 > > let! child = +00:00:46 v #714 > > cts.Token +00:00:46 v #715 > > |> subscribeToken +00:00:46 v #716 > > |> FSharp.Control.AsyncSeq.tryFirst +00:00:46 v #717 > > |> Async.StartChild +00:00:46 v #718 > > +00:00:46 v #719 > > do! Async.Sleep 100 +00:00:46 v #720 > > cts.Cancel () +00:00:46 v #721 > > return! child +00:00:46 v #722 > > } +00:00:46 v #723 > > |> Async.RunSynchronously +00:00:46 v #724 > > |> Option.get +00:00:46 v #725 > > |> fun x -> x > 900000 +00:00:46 v #726 > > |> _assertEqual true +00:00:47 v #727 > > +00:00:47 v #728 > > ── [ 174.98ms - stdout ] ─────────────────────────────────────────────────────── +00:00:47 v #729 > > │ true +00:00:47 v #730 > > │ +00:00:47 v #731 > > │ +00:00:47 v #732 > 00:00:21 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 7850 } +00:00:47 v #733 > 00:00:21 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/lib/fsharp/AsyncSeq.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/lib/fsharp/AsyncSeq.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } +00:00:48 v #734 > 00:00:22 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/lib/fsharp/AsyncSeq.dib.ipynb to html +00:00:48 v #735 > 00:00:22 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. +00:00:48 v #736 > 00:00:22 v #7 ! validate(nb) +00:00:49 v #737 > 00:00:23 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 +00:00:49 v #738 > 00:00:23 v #9 ! return _pygments_highlight( +00:00:49 v #739 > 00:00:23 v #10 ! [NbConvertApp] Writing 303129 bytes to c:\home\git\polyglot\lib\fsharp\AsyncSeq.dib.html +00:00:49 v #740 > 00:00:23 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 858 } +00:00:49 v #741 > 00:00:23 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 858 } +00:00:49 v #742 > 00:00:23 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/lib/fsharp/AsyncSeq.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/lib/fsharp/AsyncSeq.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } +00:00:49 v #743 > 00:00:24 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } +00:00:49 v #744 > 00:00:24 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } +00:00:49 v #745 > 00:00:24 d #16 spiral.run / dib / { exit_code = 0; result_length = 8767 } +00:00:50 d #746 runtime.execute_with_options_async / { exit_code = 0; output_length = 11796 } +00:00:49 d #2 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path AsyncSeq.dib --retries 3 +00:00:50 d #747 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path Common.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path Common.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } +00:00:50 v #748 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "Common.dib", "--retries", "3"])) } +00:00:50 v #749 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/lib/fsharp/Common.dib", "--output-path", "c:/home/git/polyglot/lib/fsharp/Common.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/lib/fsharp/Common.dib" --output-path "c:/home/git/polyglot/lib/fsharp/Common.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } +00:00:51 v #750 > > +00:00:51 v #751 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:51 v #752 > > │ # Common (Polyglot) +00:01:08 v #753 > > +00:01:08 v #754 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:01:08 v #755 > > #if !INTERACTIVE +00:01:08 v #756 > > open Lib +00:01:08 v #757 > > #endif +00:01:08 v #758 > > +00:01:08 v #759 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:01:08 v #760 > > let nl = System.Environment.NewLine +00:01:08 v #761 > > let q = @"""" +00:01:08 v #762 > > +00:01:08 v #763 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:01:08 v #764 > > let inline cons head tail = head :: tail +00:01:08 v #765 > > +00:01:08 v #766 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:01:08 v #767 > > │ ## memoize 00:01:08 v #768 > > 00:01:08 v #769 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:01:08 v #770 > > let inline cons head tail = head :: tail -00:01:08 v #771 > > -00:01:08 v #772 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:01:08 v #773 > > │ ## memoize -00:01:08 v #774 > > -00:01:08 v #775 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:01:08 v #776 > > let inline memoize fn = -00:01:08 v #777 > > let result = lazy fn () -00:01:08 v #778 > > fun () -> result.Value -00:01:08 v #779 > > -00:01:08 v #780 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:01:08 v #781 > > │ ## TraceLevel -00:01:08 v #782 > > -00:01:08 v #783 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:01:08 v #784 > > type TraceLevel = -00:01:08 v #785 > > | Verbose -00:01:08 v #786 > > | Debug -00:01:08 v #787 > > | Info -00:01:08 v #788 > > | Warning -00:01:08 v #789 > > | Critical -00:01:08 v #790 > > -00:01:08 v #791 > > let inline _locals () = "" -00:01:08 v #792 > > -00:01:08 v #793 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:01:08 v #794 > > │ ## trace -00:01:08 v #795 > > -00:01:08 v #796 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:01:08 v #797 > > let to_trace_level = function -00:01:08 v #798 > > | Verbose -> SpiralTrace.TraceLevel.US0_0 -00:01:08 v #799 > > | Debug -> SpiralTrace.TraceLevel.US0_1 -00:01:08 v #800 > > | Info -> SpiralTrace.TraceLevel.US0_2 -00:01:08 v #801 > > | Warning -> SpiralTrace.TraceLevel.US0_3 -00:01:08 v #802 > > | Critical -> SpiralTrace.TraceLevel.US0_4 -00:01:08 v #803 > > -00:01:08 v #804 > > let trace level fn locals = -00:01:08 v #805 > > let level = level |> to_trace_level -00:01:08 v #806 > > SpiralTrace.trace level fn locals -00:01:08 v #807 > > -00:01:08 v #808 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:01:08 v #809 > > //// test -00:01:08 v #810 > > -00:01:08 v #811 > > trace Debug (fun () -> "test") _locals -00:01:08 v #812 > > -00:01:08 v #813 > > ── [ 24.67ms - stdout ] ──────────────────────────────────────────────────────── -00:01:08 v #814 > > │ 00:00:00 d #1 test -00:01:08 v #815 > > │ -00:01:08 v #816 > 00:00:17 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 1940 } -00:01:08 v #817 > 00:00:17 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/lib/fsharp/Common.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/lib/fsharp/Common.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:01:09 v #818 > 00:00:19 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/lib/fsharp/Common.dib.ipynb to html -00:01:09 v #819 > 00:00:19 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. -00:01:09 v #820 > 00:00:19 v #7 ! validate(nb) -00:01:10 v #821 > 00:00:19 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 -00:01:10 v #822 > 00:00:19 v #9 ! return _pygments_highlight( -00:01:10 v #823 > 00:00:20 v #10 ! [NbConvertApp] Writing 280728 bytes to c:\home\git\polyglot\lib\fsharp\Common.dib.html -00:01:10 v #824 > 00:00:20 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 854 } -00:01:10 v #825 > 00:00:20 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 854 } -00:01:10 v #826 > 00:00:20 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/lib/fsharp/Common.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/lib/fsharp/Common.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:01:11 v #827 > 00:00:20 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } -00:01:11 v #828 > 00:00:20 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } -00:01:11 v #829 > 00:00:20 d #16 spiral.run / dib / { exit_code = 0; result_length = 2853 } -00:01:11 d #830 runtime.execute_with_options_async / { exit_code = 0; output_length = 5506 } -00:01:11 d #5 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path Common.dib --retries 3 -00:01:11 d #831 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path CommonFSharp.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path CommonFSharp.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } -00:01:11 v #832 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "CommonFSharp.dib", "--retries", "3"])) } -00:01:11 v #833 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/lib/fsharp/CommonFSharp.dib", "--output-path", "c:/home/git/polyglot/lib/fsharp/CommonFSharp.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/lib/fsharp/CommonFSharp.dib" --output-path "c:/home/git/polyglot/lib/fsharp/CommonFSharp.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } -00:01:12 v #834 > > -00:01:12 v #835 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:01:12 v #836 > > │ # CommonFSharp (Polyglot) -00:01:27 v #837 > > -00:01:27 v #838 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:01:27 v #839 > > open Common -00:01:27 v #840 > > -00:01:27 v #841 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:01:27 v #842 > > │ ## getUnionCaseName -00:01:27 v #843 > > -00:01:27 v #844 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:01:27 v #845 > > let inline getUnionCaseName<'T> (x: 'T) = -00:01:27 v #846 > > match Reflection.FSharpValue.GetUnionFields(x, typeof<'T>) with -00:01:27 v #847 > > | case, _ -> case.Name -00:01:27 v #848 > > -00:01:27 v #849 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:01:27 v #850 > > //// test -00:01:27 v #851 > > -00:01:27 v #852 > > TraceLevel.Critical -00:01:27 v #853 > > |> getUnionCaseName -00:01:27 v #854 > > |> _assertEqual (nameof TraceLevel.Critical) -00:01:28 v #855 > > -00:01:28 v #856 > > ── [ 67.61ms - stdout ] ──────────────────────────────────────────────────────── -00:01:28 v #857 > > │ "Critical" -00:01:28 v #858 > > │ -00:01:28 v #859 > > │ -00:01:28 v #860 > 00:00:16 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 914 } -00:01:28 v #861 > 00:00:16 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/lib/fsharp/CommonFSharp.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/lib/fsharp/CommonFSharp.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:01:29 v #862 > 00:00:18 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/lib/fsharp/CommonFSharp.dib.ipynb to html -00:01:29 v #863 > 00:00:18 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. -00:01:29 v #864 > 00:00:18 v #7 ! validate(nb) -00:01:30 v #865 > 00:00:18 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 -00:01:30 v #866 > 00:00:18 v #9 ! return _pygments_highlight( -00:01:30 v #867 > 00:00:19 v #10 ! [NbConvertApp] Writing 275592 bytes to c:\home\git\polyglot\lib\fsharp\CommonFSharp.dib.html -00:01:30 v #868 > 00:00:19 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 866 } -00:01:30 v #869 > 00:00:19 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 866 } -00:01:30 v #870 > 00:00:19 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/lib/fsharp/CommonFSharp.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/lib/fsharp/CommonFSharp.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:01:30 v #871 > 00:00:19 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } -00:01:30 v #872 > 00:00:19 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } -00:01:30 v #873 > 00:00:19 d #16 spiral.run / dib / { exit_code = 0; result_length = 1839 } -00:01:30 d #874 runtime.execute_with_options_async / { exit_code = 0; output_length = 4477 } -00:01:30 d #6 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path CommonFSharp.dib --retries 3 -00:01:30 d #875 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path FileSystem.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path FileSystem.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } -00:01:30 v #876 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "FileSystem.dib", "--retries", "3"])) } -00:01:30 v #877 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/lib/fsharp/FileSystem.dib", "--output-path", "c:/home/git/polyglot/lib/fsharp/FileSystem.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/lib/fsharp/FileSystem.dib" --output-path "c:/home/git/polyglot/lib/fsharp/FileSystem.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } -00:01:32 v #878 > > -00:01:32 v #879 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:01:32 v #880 > > │ # FileSystem (Polyglot) -00:01:36 v #881 > > -00:01:36 v #882 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:01:36 v #883 > > #r -00:01:36 v #884 > > @"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan -00:01:36 v #885 > > dard2.1/FSharp.Control.AsyncSeq.dll" -00:01:36 v #886 > > #r -00:01:36 v #887 > > @"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6. -00:01:36 v #888 > > 0/System.Reactive.dll" -00:01:36 v #889 > > #r -00:01:36 v #890 > > @"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib -00:01:36 v #891 > > netstandard2.0/System.Reactive.Linq.dll" -00:01:36 v #892 > > #r -00:01:36 v #893 > > @"../../../../../../../.nuget/packages/argu/6.2.4/lib/netstandard2.0/Argu.dll" -00:01:48 v #894 > > -00:01:48 v #895 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:01:48 v #896 > > #if !INTERACTIVE -00:01:48 v #897 > > open Lib -00:01:48 v #898 > > #endif -00:01:48 v #899 > > -00:01:48 v #900 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:01:48 v #901 > > open Common -00:01:48 v #902 > > open SpiralFileSystem.Operators -00:01:48 v #903 > > -00:01:48 v #904 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:01:48 v #905 > > │ ## watchDirectory -00:01:48 v #906 > > -00:01:48 v #907 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:01:48 v #908 > > [[<RequireQualifiedAccess>]] -00:01:48 v #909 > > type FileSystemChangeType = -00:01:48 v #910 > > | Failure -00:01:48 v #911 > > | Changed -00:01:48 v #912 > > | Created -00:01:48 v #913 > > | Deleted -00:01:48 v #914 > > | Renamed -00:01:48 v #915 > > -00:01:48 v #916 > > [[<RequireQualifiedAccess>]] -00:01:48 v #917 > > type FileSystemChange = -00:01:48 v #918 > > | Failure of exn: exn -00:01:48 v #919 > > | Changed of path: string * content: string option -00:01:48 v #920 > > | Created of path: string * content: string option -00:01:48 v #921 > > | Deleted of path: string -00:01:48 v #922 > > | Renamed of oldPath: string * (string * string option) -00:01:48 v #923 > > -00:01:48 v #924 > > -00:01:48 v #925 > > let inline watchDirectoryWithFilter filter shouldReadContent path = -00:01:48 v #926 > > let fullPath = path |> System.IO.Path.GetFullPath -00:01:48 v #927 > > let _locals () = $"filter: {filter} / {_locals ()}" -00:01:48 v #928 > > -00:01:48 v #929 > > let watcher = -00:01:48 v #930 > > new System.IO.FileSystemWatcher ( -00:01:48 v #931 > > Path = fullPath, -00:01:48 v #932 > > NotifyFilter = filter, -00:01:48 v #933 > > EnableRaisingEvents = true, -00:01:48 v #934 > > IncludeSubdirectories = true -00:01:48 v #935 > > ) -00:01:48 v #936 > > -00:01:48 v #937 > > let inline getEventPath (path : string) = -00:01:48 v #938 > > path |> SpiralSm.trim |> SpiralSm.replace fullPath "" |> -00:01:48 v #939 > > SpiralSm.trim_start [[| '/'; '\\' |]] -00:01:48 v #940 > > -00:01:48 v #941 > > let inline ticks () = -00:01:48 v #942 > > System.DateTime.UtcNow.Ticks -00:01:48 v #943 > > -00:01:48 v #944 > > let changedStream = -00:01:48 v #945 > > AsyncSeq.subscribeEvent -00:01:48 v #946 > > watcher.Changed -00:01:48 v #947 > > (fun event -> -00:01:48 v #948 > > ticks (), -00:01:48 v #949 > > [[ FileSystemChange.Changed (getEventPath event.FullPath, None) -00:01:48 v #950 > > ]] -00:01:48 v #951 > > ) -00:01:48 v #952 > > -00:01:48 v #953 > > let deletedStream = -00:01:48 v #954 > > AsyncSeq.subscribeEvent -00:01:48 v #955 > > watcher.Deleted -00:01:48 v #956 > > (fun event -> -00:01:48 v #957 > > ticks (), -00:01:48 v #958 > > [[ FileSystemChange.Deleted (getEventPath event.FullPath) ]] -00:01:48 v #959 > > ) -00:01:48 v #960 > > -00:01:48 v #961 > > let createdStream = -00:01:48 v #962 > > AsyncSeq.subscribeEvent -00:01:48 v #963 > > watcher.Created -00:01:48 v #964 > > (fun event -> -00:01:48 v #965 > > let path = getEventPath event.FullPath -00:01:48 v #966 > > ticks (), [[ -00:01:48 v #967 > > FileSystemChange.Created (path, None) -00:01:48 v #968 > > if SpiralPlatform.is_windows () then -00:01:48 v #969 > > FileSystemChange.Changed (path, None) -00:01:48 v #970 > > ]]) -00:01:48 v #971 > > -00:01:48 v #972 > > let renamedStream = -00:01:48 v #973 > > AsyncSeq.subscribeEvent -00:01:48 v #974 > > watcher.Renamed -00:01:48 v #975 > > (fun event -> -00:01:48 v #976 > > ticks (), [[ -00:01:48 v #977 > > FileSystemChange.Renamed ( -00:01:48 v #978 > > getEventPath event.OldFullPath, -00:01:48 v #979 > > (getEventPath event.FullPath, None) -00:01:48 v #980 > > ) -00:01:48 v #981 > > ]] -00:01:48 v #982 > > ) -00:01:48 v #983 > > -00:01:48 v #984 > > let failureStream = -00:01:48 v #985 > > AsyncSeq.subscribeEvent -00:01:48 v #986 > > watcher.Error -00:01:48 v #987 > > (fun event -> ticks (), [[ FileSystemChange.Failure -00:01:48 v #988 > > (event.GetException ()) ]]) -00:01:48 v #989 > > -00:01:48 v #990 > > let stream = -00:01:48 v #991 > > [[ -00:01:48 v #992 > > changedStream -00:01:48 v #993 > > deletedStream -00:01:48 v #994 > > createdStream -00:01:48 v #995 > > renamedStream -00:01:48 v #996 > > failureStream -00:01:48 v #997 > > ]] -00:01:48 v #998 > > |> FSharp.Control.AsyncSeq.mergeAll -00:01:48 v #999 > > |> FSharp.Control.AsyncSeq.map (fun (t, events) -> -00:01:48 v #1000 > > events -00:01:48 v #1001 > > |> List.fold -00:01:48 v #1002 > > (fun (i, events) event -> -00:01:48 v #1003 > > i + 1L, -00:01:48 v #1004 > > (t + i, event) :: events) -00:01:48 v #1005 > > (0L, [[]]) -00:01:48 v #1006 > > |> snd -00:01:48 v #1007 > > |> List.rev -00:01:48 v #1008 > > ) -00:01:48 v #1009 > > |> FSharp.Control.AsyncSeq.concatSeq -00:01:48 v #1010 > > |> FSharp.Control.AsyncSeq.mapAsyncParallel (fun (t, event) -> async { -00:01:48 v #1011 > > match shouldReadContent event, event with -00:01:48 v #1012 > > | true, FileSystemChange.Changed (path, _) -> -00:01:48 v #1013 > > do! Async.Sleep 5 -00:01:48 v #1014 > > let! content = fullPath </> path |> -00:01:48 v #1015 > > SpiralFileSystem.read_all_text_retry_async -00:01:48 v #1016 > > return t, FileSystemChange.Changed (path, content) -00:01:48 v #1017 > > | true, FileSystemChange.Created (path, _) -> -00:01:48 v #1018 > > do! Async.Sleep 5 -00:01:48 v #1019 > > let! content = fullPath </> path |> -00:01:48 v #1020 > > SpiralFileSystem.read_all_text_retry_async -00:01:48 v #1021 > > return t, FileSystemChange.Created (path, content) -00:01:48 v #1022 > > | true, FileSystemChange.Renamed (oldPath, (newPath, _)) -> -00:01:48 v #1023 > > let! content = fullPath </> newPath |> -00:01:48 v #1024 > > SpiralFileSystem.read_all_text_retry_async -00:01:48 v #1025 > > return t, FileSystemChange.Renamed (oldPath, (newPath, content)) -00:01:48 v #1026 > > | _ -> return t, event -00:01:48 v #1027 > > }) -00:01:48 v #1028 > > -00:01:48 v #1029 > > let disposable = -00:01:48 v #1030 > > new_disposable (fun () -> -00:01:48 v #1031 > > trace Debug (fun () -> "FileSystem.watchWithFilter / Disposing watch -00:01:48 v #1032 > > stream") _locals -00:01:48 v #1033 > > watcher.EnableRaisingEvents <- false -00:01:48 v #1034 > > watcher.Dispose () -00:01:48 v #1035 > > ) -00:01:48 v #1036 > > -00:01:48 v #1037 > > stream, disposable -00:01:48 v #1038 > > -00:01:48 v #1039 > > let inline watchDirectory path = -00:01:48 v #1040 > > watchDirectoryWithFilter -00:01:48 v #1041 > > (System.IO.NotifyFilters.FileName -00:01:48 v #1042 > > // ||| System.IO.NotifyFilters.DirectoryName -00:01:48 v #1043 > > // ||| System.IO.NotifyFilters.Attributes -00:01:48 v #1044 > > //// ||| System.IO.NotifyFilters.Size -00:01:48 v #1045 > > ||| System.IO.NotifyFilters.LastWrite -00:01:48 v #1046 > > //// ||| System.IO.NotifyFilters.LastAccess -00:01:48 v #1047 > > // ||| System.IO.NotifyFilters.CreationTime -00:01:48 v #1048 > > // ||| System.IO.NotifyFilters.Security -00:01:48 v #1049 > > ) -00:01:48 v #1050 > > path -00:01:49 v #1051 > > -00:01:49 v #1052 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:01:49 v #1053 > > │ ### testEventsRaw (test) -00:01:49 v #1054 > > -00:01:49 v #1055 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:01:49 v #1056 > > //// test -00:01:49 v #1057 > > -00:01:49 v #1058 > > let inline testEventsRaw -00:01:49 v #1059 > > (watchFn : (_ -> bool) -> string -> FSharp.Control.AsyncSeq<int64 * -00:01:49 v #1060 > > FileSystemChange> * IDisposable) -00:01:49 v #1061 > > write -00:01:49 v #1062 > > = -00:01:49 v #1063 > > let struct (tempDir, tempDisposable) = -00:01:49 v #1064 > > "FileSystem.testEventsRaw" -00:01:49 v #1065 > > |> SpiralCrypto.hash_text -00:01:49 v #1066 > > |> SpiralFileSystem.create_temp_dir' -00:01:49 v #1067 > > let stream, disposable = watchFn (fun _ -> true) tempDir -00:01:49 v #1068 > > -00:01:49 v #1069 > > let events = System.Collections.Concurrent.ConcurrentBag () -00:01:49 v #1070 > > -00:01:49 v #1071 > > let inline iter () = -00:01:49 v #1072 > > stream -00:01:49 v #1073 > > |> FSharp.Control.AsyncSeq.iterAsyncParallel (fun event -> async { -00:01:49 v #1074 > > events.Add event }) -00:01:49 v #1075 > > -00:01:49 v #1076 > > let run = async { -00:01:49 v #1077 > > let! _ = iter () |> Async.StartChild -00:01:49 v #1078 > > do! Async.Sleep 250 -00:01:49 v #1079 > > return! write tempDir -00:01:49 v #1080 > > } -00:01:49 v #1081 > > -00:01:49 v #1082 > > try -00:01:49 v #1083 > > run -00:01:49 v #1084 > > |> Async.runWithTimeout 60000 -00:01:49 v #1085 > > |> _assertEqual (Some ()) -00:01:49 v #1086 > > finally -00:01:49 v #1087 > > disposable.Dispose () -00:01:49 v #1088 > > tempDisposable.Dispose () -00:01:49 v #1089 > > -00:01:49 v #1090 > > let eventsLog = -00:01:49 v #1091 > > events -00:01:49 v #1092 > > |> Seq.toList -00:01:49 v #1093 > > |> List.sortBy fst -00:01:49 v #1094 > > |> List.fold -00:01:49 v #1095 > > (fun (prev, acc) (ticks, event) -> -00:01:49 v #1096 > > ticks, (ticks, (if prev = 0L then 0L else ticks - prev), event) -00:01:49 v #1097 > > :: acc -00:01:49 v #1098 > > ) -00:01:49 v #1099 > > (0L, [[]]) -00:01:49 v #1100 > > |> snd -00:01:49 v #1101 > > |> List.rev -00:01:49 v #1102 > > |> List.map (fun (diff, n, event) -> $"{n} / {diff} / {event}" |> -00:01:49 v #1103 > > SpiralSm.ellipsis_end 100L) -00:01:49 v #1104 > > |> SpiralSm.concat "\n" -00:01:49 v #1105 > > let _locals () = $"eventsLog: \n{eventsLog} / {_locals ()}" -00:01:49 v #1106 > > trace Debug (fun () -> "FileSystem.testEventsRaw") _locals -00:01:49 v #1107 > > -00:01:49 v #1108 > > events -00:01:49 v #1109 > > |> Seq.toList -00:01:49 v #1110 > > |> List.sortBy fst -00:01:49 v #1111 > > |> List.map snd -00:01:49 v #1112 > > |> List.fold -00:01:49 v #1113 > > (fun acc event -> -00:01:49 v #1114 > > match acc, event with -00:01:49 v #1115 > > | FileSystemChange.Changed (lastPath, Some lastContent) as lastEvent -00:01:49 v #1116 > > :: acc, -00:01:49 v #1117 > > FileSystemChange.Changed (path, Some content) -00:01:49 v #1118 > > when lastPath = path && content |> SpiralSm.starts_with -00:01:49 v #1119 > > lastContent -00:01:49 v #1120 > > -> -00:01:49 v #1121 > > event :: acc -00:01:49 v #1122 > > | _ -> event :: acc -00:01:49 v #1123 > > ) -00:01:49 v #1124 > > [[]] -00:01:49 v #1125 > > |> List.rev -00:01:49 v #1126 > > -00:01:49 v #1127 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:01:49 v #1128 > > │ #### fast (test) -00:01:49 v #1129 > > -00:01:49 v #1130 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:01:49 v #1131 > > //// test -00:01:49 v #1132 > > -00:01:49 v #1133 > > let inline write path = async { -00:01:49 v #1134 > > let n = 2 -00:01:49 v #1135 > > -00:01:49 v #1136 > > for i = 1 to n do -00:01:49 v #1137 > > do! $"a{i}" |> SpiralFileSystem.write_all_text_async (path </> -00:01:49 v #1138 > > $"file{i}.txt") -00:01:49 v #1139 > > -00:01:49 v #1140 > > do! Async.Sleep 250 -00:01:49 v #1141 > > -00:01:49 v #1142 > > for i = 1 to n do -00:01:49 v #1143 > > do! $"b{i}" |> SpiralFileSystem.write_all_text_async (path </> -00:01:49 v #1144 > > $"file{i}.txt") -00:01:49 v #1145 > > -00:01:49 v #1146 > > do! Async.Sleep 250 -00:01:49 v #1147 > > -00:01:49 v #1148 > > for i = 1 to n do -00:01:49 v #1149 > > do! path </> $"file{i}.txt" |> SpiralFileSystem.move_file_async (path -00:01:49 v #1150 > > </> $"file_{i}.txt") |> Async.Ignore -00:01:49 v #1151 > > -00:01:49 v #1152 > > do! Async.Sleep 250 -00:01:49 v #1153 > > -00:01:49 v #1154 > > for i = 1 to n do -00:01:49 v #1155 > > do! $"c{i}" |> SpiralFileSystem.write_all_text_async (path </> -00:01:49 v #1156 > > $"file_{i}.txt") -00:01:49 v #1157 > > -00:01:49 v #1158 > > do! Async.Sleep 250 -00:01:49 v #1159 > > -00:01:49 v #1160 > > for i = 1 to n do -00:01:49 v #1161 > > do! SpiralFileSystem.delete_file_async (path </> $"file_{i}.txt") |> -00:01:49 v #1162 > > Async.Ignore -00:01:49 v #1163 > > -00:01:49 v #1164 > > do! Async.Sleep 250 -00:01:49 v #1165 > > } -00:01:49 v #1166 > > -00:01:49 v #1167 > > let inline run () = -00:01:49 v #1168 > > let events = testEventsRaw watchDirectory write -00:01:49 v #1169 > > -00:01:49 v #1170 > > events -00:01:49 v #1171 > > |> _sequenceEqual [[ -00:01:49 v #1172 > > FileSystemChange.Created ("file1.txt", Some "a1") -00:01:49 v #1173 > > FileSystemChange.Changed ("file1.txt", Some "a1") -00:01:49 v #1174 > > FileSystemChange.Created ("file2.txt", Some "a2") -00:01:49 v #1175 > > FileSystemChange.Changed ("file2.txt", Some "a2") -00:01:49 v #1176 > > -00:01:49 v #1177 > > FileSystemChange.Changed ("file1.txt", Some "b1") -00:01:49 v #1178 > > FileSystemChange.Changed ("file2.txt", Some "b2") -00:01:49 v #1179 > > -00:01:49 v #1180 > > FileSystemChange.Renamed ("file1.txt", ("file_1.txt", Some "b1")) -00:01:49 v #1181 > > FileSystemChange.Renamed ("file2.txt", ("file_2.txt", Some "b2")) -00:01:49 v #1182 > > -00:01:49 v #1183 > > FileSystemChange.Changed ("file_1.txt", Some "c1") -00:01:49 v #1184 > > FileSystemChange.Changed ("file_2.txt", Some "c2") -00:01:49 v #1185 > > -00:01:49 v #1186 > > FileSystemChange.Deleted "file_1.txt" -00:01:49 v #1187 > > FileSystemChange.Deleted "file_2.txt" -00:01:49 v #1188 > > ]] -00:01:49 v #1189 > > -00:01:49 v #1190 > > run -00:01:49 v #1191 > > |> retry_fn 3 -00:01:49 v #1192 > > |> _assertEqual (Some ()) -00:01:53 v #1193 > > -00:01:53 v #1194 > > ── [ 3.52s - stdout ] ────────────────────────────────────────────────────────── -00:01:53 v #1195 > > │ Some () -00:01:53 v #1196 > > │ -00:01:53 v #1197 > > │ 00:00:06 d #1 FileSystem.watchWithFilter / Disposing -00:01:53 v #1198 > > watch stream / filter: FileName, LastWrite -00:01:53 v #1199 > > │ 00:00:06 d #2 FileSystem.testEventsRaw / eventsLog: -00:01:53 v #1200 > > │ 0 / 638723834507838576 / Created ("file1.txt", Some "a1") -00:01:53 v #1201 > > │ 1 / 638723834507838577 / Changed ("file1.txt", Some "a1") -00:01:53 v #1202 > > │ 22914 / 638723834507861491 / Changed ("file1.txt", Some "a1") -00:01:53 v #1203 > > │ 1570 / 638723834507863061 / Created ("file2.txt", Some "a2") -00:01:53 v #1204 > > │ 1 / 638723834507863062 / Changed ("file2.txt", Some "a2") -00:01:53 v #1205 > > │ 46 / 638723834507863108 / Changed ("file2.txt", Some "a2") -00:01:53 v #1206 > > │ 2406209 / 638723834510269317 / Changed ("file1.txt", Some -00:01:53 v #1207 > > "b1") -00:01:53 v #1208 > > │ 2427 / 638723834510271744 / Changed ("file1.txt", Some "b1") -00:01:53 v #1209 > > │ 10769 / 638723834510282513 / Changed ("file2.txt", Some "b2") -00:01:53 v #1210 > > │ 2485 / 638723834510284998 / Changed ("file2.txt", Some "b2") -00:01:53 v #1211 > > │ 2541693 / 638723834512826691 / Renamed ("file1.txt", -00:01:53 v #1212 > > ("file_1.txt", Some "b1")) -00:01:53 v #1213 > > │ 13970 / 638723834512840661 / Renamed ("file2.txt", -00:01:53 v #1214 > > ("file_2.txt", Some "b2")) -00:01:53 v #1215 > > │ 2455222 / 638723834515295883 / Changed ("file_1.txt", Some -00:01:53 v #1216 > > "c1") -00:01:53 v #1217 > > │ 4553 / 638723834515300436 / Changed ("file_1.txt", Some "c1") -00:01:53 v #1218 > > │ 21099 / 638723834515321535 / Changed ("file_2.txt", Some -00:01:53 v #1219 > > "c2") -00:01:53 v #1220 > > │ 3605 / 638723834515325140 / Changed ("file_2.txt", Some "c2") -00:01:53 v #1221 > > │ 2471305 / 638723834517796445 / Deleted "file_1.txt" -00:01:53 v #1222 > > │ 3668 / 638723834517800113 / Deleted "file_2.txt" -00:01:53 v #1223 > > │ [Created ("file1.txt", Some "a1"); Changed ("file1.txt", Some -00:01:53 v #1224 > > "a1"); Created ("file2.txt", Some "a2"); -00:01:53 v #1225 > > │ Changed ("file2.txt", Some "a2"); Changed ("file1.txt", Some -00:01:53 v #1226 > > "b1"); Changed ("file2.txt", Some "b2"); -00:01:53 v #1227 > > │ Renamed ("file1.txt", ("file_1.txt", Some "b1")); Renamed -00:01:53 v #1228 > > ("file2.txt", ("file_2.txt", Some "b2")); -00:01:53 v #1229 > > │ Changed ("file_1.txt", Some "c1"); Changed ("file_2.txt", -00:01:53 v #1230 > > Some "c2"); Deleted "file_1.txt"; Deleted "file_2.txt"] -00:01:53 v #1231 > > │ -00:01:53 v #1232 > > │ Some () -00:01:53 v #1233 > > │ -00:01:53 v #1234 > > │ -00:01:53 v #1235 > > -00:01:53 v #1236 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:01:53 v #1237 > > │ #### slow (test) -00:01:53 v #1238 > > -00:01:53 v #1239 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:01:53 v #1240 > > //// test -00:01:53 v #1241 > > -00:01:53 v #1242 > > let inline write path = async { -00:01:53 v #1243 > > let n = 2 -00:01:53 v #1244 > > -00:01:53 v #1245 > > let contents = -00:01:53 v #1246 > > [[ 1 .. n ]] -00:01:53 v #1247 > > |> List.map (string >> String.replicate 1_000_000) -00:01:53 v #1248 > > -00:01:53 v #1249 > > for i = 1 to n do -00:01:53 v #1250 > > do! $"{contents.[[i - 1]]}a" |> SpiralFileSystem.write_all_text_async -00:01:53 v #1251 > > (path </> $"file{i}.txt") -00:01:53 v #1252 > > -00:01:53 v #1253 > > do! Async.Sleep 1500 -00:01:53 v #1254 > > -00:01:53 v #1255 > > for i = 1 to n do -00:01:53 v #1256 > > do! $"{contents.[[i - 1]]}b" |> SpiralFileSystem.write_all_text_async -00:01:53 v #1257 > > (path </> $"file{i}.txt") -00:01:53 v #1258 > > -00:01:53 v #1259 > > do! Async.Sleep 1500 -00:01:53 v #1260 > > -00:01:53 v #1261 > > for i = 1 to n do -00:01:53 v #1262 > > do! path </> $"file{i}.txt" |> SpiralFileSystem.move_file_async (path -00:01:53 v #1263 > > </> $"file_{i}.txt") |> Async.Ignore -00:01:53 v #1264 > > -00:01:53 v #1265 > > do! Async.Sleep 1500 -00:01:53 v #1266 > > -00:01:53 v #1267 > > for i = 1 to n do -00:01:53 v #1268 > > do! $"{contents.[[i - 1]]}c" |> SpiralFileSystem.write_all_text_async -00:01:53 v #1269 > > (path </> $"file_{i}.txt") -00:01:53 v #1270 > > -00:01:53 v #1271 > > do! Async.Sleep 1500 -00:01:53 v #1272 > > -00:01:53 v #1273 > > for i = 1 to n do -00:01:53 v #1274 > > do! SpiralFileSystem.delete_file_async (path </> $"file_{i}.txt") |> -00:01:53 v #1275 > > Async.Ignore -00:01:53 v #1276 > > -00:01:53 v #1277 > > do! Async.Sleep 1500 -00:01:53 v #1278 > > } -00:01:53 v #1279 > > -00:01:53 v #1280 > > let inline run () = -00:01:53 v #1281 > > let events = -00:01:53 v #1282 > > testEventsRaw watchDirectory write -00:01:53 v #1283 > > |> List.map (function -00:01:53 v #1284 > > | FileSystemChange.Changed (path, Some content) -> -00:01:53 v #1285 > > FileSystemChange.Changed (path, content |> Seq.distinct |> -00:01:53 v #1286 > > Seq.map string |> SpiralSm.concat "" |> Some) -00:01:53 v #1287 > > | FileSystemChange.Created (path, Some content) -> -00:01:53 v #1288 > > FileSystemChange.Created (path, content |> Seq.distinct |> -00:01:53 v #1289 > > Seq.map string |> SpiralSm.concat "" |> Some) -00:01:53 v #1290 > > | FileSystemChange.Renamed (oldPath, (newPath, Some content)) -> -00:01:53 v #1291 > > FileSystemChange.Renamed ( -00:01:53 v #1292 > > oldPath, -00:01:53 v #1293 > > (newPath, content |> Seq.distinct |> Seq.map string |> -00:01:53 v #1294 > > SpiralSm.concat "" |> Some) -00:01:53 v #1295 > > ) -00:01:53 v #1296 > > | event -> event -00:01:53 v #1297 > > ) -00:01:53 v #1298 > > -00:01:53 v #1299 > > events -00:01:53 v #1300 > > |> _sequenceEqual [[ -00:01:53 v #1301 > > FileSystemChange.Created ("file1.txt", Some "1a") -00:01:53 v #1302 > > FileSystemChange.Changed ("file1.txt", Some "1a") -00:01:53 v #1303 > > FileSystemChange.Created ("file2.txt", Some "2a") -00:01:53 v #1304 > > FileSystemChange.Changed ("file2.txt", Some "2a") -00:01:53 v #1305 > > -00:01:53 v #1306 > > FileSystemChange.Changed ("file1.txt", Some "1b") -00:01:53 v #1307 > > FileSystemChange.Changed ("file2.txt", Some "2b") -00:01:53 v #1308 > > -00:01:53 v #1309 > > FileSystemChange.Renamed ("file1.txt", ("file_1.txt", Some "1b")) -00:01:53 v #1310 > > FileSystemChange.Renamed ("file2.txt", ("file_2.txt", Some "2b")) -00:01:53 v #1311 > > -00:01:53 v #1312 > > FileSystemChange.Changed ("file_1.txt", Some "1c") -00:01:53 v #1313 > > FileSystemChange.Changed ("file_2.txt", Some "2c") -00:01:53 v #1314 > > -00:01:53 v #1315 > > FileSystemChange.Deleted "file_1.txt" -00:01:53 v #1316 > > FileSystemChange.Deleted "file_2.txt" -00:01:53 v #1317 > > ]] -00:01:53 v #1318 > > -00:01:53 v #1319 > > run -00:01:53 v #1320 > > |> retry_fn 5 -00:01:53 v #1321 > > |> _assertEqual (Some ()) -00:02:03 v #1322 > > -00:02:03 v #1323 > > ── [ 10.54s - stdout ] ───────────────────────────────────────────────────────── -00:02:03 v #1324 > > │ Some () -00:02:03 v #1325 > > │ -00:02:03 v #1326 > > │ 00:00:16 d #3 FileSystem.watchWithFilter / Disposing -00:02:03 v #1327 > > watch stream / filter: FileName, LastWrite -00:02:03 v #1328 > > │ 00:00:16 d #4 FileSystem.testEventsRaw / eventsLog: -00:02:03 v #1329 > > │ 0 / 638723834545432786 / Created -00:02:03 v #1330 > > │ ("file1.txt", -00:02:03 v #1331 > > │ ...11111111111111111111111111111111111111111111111a") -00:02:03 v #1332 > > │ 1 / 638723834545432787 / Changed -00:02:03 v #1333 > > │ ("file1.txt", -00:02:03 v #1334 > > │ ...11111111111111111111111111111111111111111111111a") -00:02:03 v #1335 > > │ 67168 / 638723834545499955 / Changed -00:02:03 v #1336 > > │ -00:02:03 v #1337 > > ("file1.txt...11111111111111111111111111111111111111111111111a") -00:02:03 v #1338 > > │ 247993 / 638723834545747948 / Created -00:02:03 v #1339 > > │ -00:02:03 v #1340 > > ("file2.tx...22222222222222222222222222222222222222222222222a") -00:02:03 v #1341 > > │ 1 / 638723834545747949 / Changed -00:02:03 v #1342 > > │ ("file2.txt", -00:02:03 v #1343 > > │ ...22222222222222222222222222222222222222222222222a") -00:02:03 v #1344 > > │ 71702 / 638723834545819651 / Changed -00:02:03 v #1345 > > │ -00:02:03 v #1346 > > ("file2.txt...22222222222222222222222222222222222222222222222a") -00:02:03 v #1347 > > │ 15040640 / 638723834560860291 / Changed -00:02:03 v #1348 > > │ -00:02:03 v #1349 > > ("file1....11111111111111111111111111111111111111111111111b") -00:02:03 v #1350 > > │ 149798 / 638723834561010089 / Changed -00:02:03 v #1351 > > │ -00:02:03 v #1352 > > ("file1.tx...11111111111111111111111111111111111111111111111b") -00:02:03 v #1353 > > │ 43119 / 638723834561053208 / Changed -00:02:03 v #1354 > > │ -00:02:03 v #1355 > > ("file2.txt...22222222222222222222222222222222222222222222222b") -00:02:03 v #1356 > > │ 94456 / 638723834561147664 / Changed -00:02:03 v #1357 > > │ -00:02:03 v #1358 > > ("file2.txt...22222222222222222222222222222222222222222222222b") -00:02:03 v #1359 > > │ 14961274 / 638723834576108938 / Renamed -00:02:03 v #1360 > > │ -00:02:03 v #1361 > > ("file1....1111111111111111111111111111111111111111111111b")) -00:02:03 v #1362 > > │ 3257 / 638723834576112195 / Renamed -00:02:03 v #1363 > > │ -00:02:03 v #1364 > > ("file2.txt"...2222222222222222222222222222222222222222222222b")) -00:02:03 v #1365 > > │ 15006169 / 638723834591118364 / Changed -00:02:03 v #1366 > > │ -00:02:03 v #1367 > > ("file_1...11111111111111111111111111111111111111111111111c") -00:02:03 v #1368 > > │ 163138 / 638723834591281502 / Changed -00:02:03 v #1369 > > │ -00:02:03 v #1370 > > ("file_1.t...11111111111111111111111111111111111111111111111c") -00:02:03 v #1371 > > │ 52575 / 638723834591334077 / Changed -00:02:03 v #1372 > > │ -00:02:03 v #1373 > > ("file_2.tx...22222222222222222222222222222222222222222222222c") -00:02:03 v #1374 > > │ 90837 / 638723834591424914 / Changed -00:02:03 v #1375 > > │ -00:02:03 v #1376 > > ("file_2.tx...22222222222222222222222222222222222222222222222c") -00:02:03 v #1377 > > │ 15146009 / 638723834606570923 / Deleted "file_1.txt" -00:02:03 v #1378 > > │ 6929 / 638723834606577852 / Deleted "file_2.txt" -00:02:03 v #1379 > > │ [Created ("file1.txt", Some "1a"); Changed ("file1.txt", Some -00:02:03 v #1380 > > "1a"); Created ("file2.txt", Some "2a"); -00:02:03 v #1381 > > │ Changed ("file2.txt", Some "2a"); Changed ("file1.txt", Some -00:02:03 v #1382 > > "1b"); Changed ("file2.txt", Some "2b"); -00:02:03 v #1383 > > │ Renamed ("file1.txt", ("file_1.txt", Some "1b")); Renamed -00:02:03 v #1384 > > ("file2.txt", ("file_2.txt", Some "2b")); -00:02:03 v #1385 > > │ Changed ("file_1.txt", Some "1c"); Changed ("file_2.txt", -00:02:03 v #1386 > > Some "2c"); Deleted "file_1.txt"; Deleted "file_2.txt"] -00:02:03 v #1387 > > │ -00:02:03 v #1388 > > │ Some () -00:02:03 v #1389 > > │ -00:02:03 v #1390 > > │ -00:02:03 v #1391 > > -00:02:03 v #1392 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:03 v #1393 > > │ ### testEventsSorted (test) -00:02:03 v #1394 > > -00:02:03 v #1395 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:02:03 v #1396 > > //// test -00:02:03 v #1397 > > -00:02:03 v #1398 > > let inline sortEvent event = -00:02:03 v #1399 > > match event with -00:02:03 v #1400 > > | FileSystemChange.Failure _ -> 0 -00:02:03 v #1401 > > | FileSystemChange.Created _ -> 1 -00:02:03 v #1402 > > | FileSystemChange.Changed _ -> 2 -00:02:03 v #1403 > > | FileSystemChange.Renamed (_oldPath, _) -> 3 -00:02:03 v #1404 > > | FileSystemChange.Deleted _ -> 4 -00:02:03 v #1405 > > -00:02:03 v #1406 > > let inline formatEvents events = -00:02:03 v #1407 > > events -00:02:03 v #1408 > > |> Seq.toList -00:02:03 v #1409 > > |> List.sortBy (snd >> sortEvent) -00:02:03 v #1410 > > |> List.choose (fun (ticks, event) -> -00:02:03 v #1411 > > match event with -00:02:03 v #1412 > > | FileSystemChange.Failure _ -> -00:02:03 v #1413 > > None -00:02:03 v #1414 > > | FileSystemChange.Changed (path, _) -> -00:02:03 v #1415 > > Some (ticks, System.IO.Path.GetFileName path, nameof -00:02:03 v #1416 > > FileSystemChangeType.Changed) -00:02:03 v #1417 > > | FileSystemChange.Created (path, _) -> -00:02:03 v #1418 > > Some (ticks, System.IO.Path.GetFileName path, nameof -00:02:03 v #1419 > > FileSystemChangeType.Created) -00:02:03 v #1420 > > | FileSystemChange.Deleted path -> -00:02:03 v #1421 > > Some (ticks, System.IO.Path.GetFileName path, nameof -00:02:03 v #1422 > > FileSystemChangeType.Deleted) -00:02:03 v #1423 > > | FileSystemChange.Renamed (_oldPath, (path, _)) -> -00:02:03 v #1424 > > Some (ticks, System.IO.Path.GetFileName path, nameof -00:02:03 v #1425 > > FileSystemChangeType.Renamed) -00:02:03 v #1426 > > ) -00:02:03 v #1427 > > |> List.sortBy (fun (_, path, _) -> path) -00:02:03 v #1428 > > |> List.distinctBy (fun (_, path, event) -> path, event) -00:02:03 v #1429 > > -00:02:03 v #1430 > > let inline testEventsSorted -00:02:03 v #1431 > > (watchFn : string -> FSharp.Control.AsyncSeq<int64 * FileSystemChange> * -00:02:03 v #1432 > > IDisposable) -00:02:03 v #1433 > > write -00:02:03 v #1434 > > = -00:02:03 v #1435 > > let struct (tempDir, tempDisposable) = -00:02:03 v #1436 > > "FileSystem.testEventsSorted" -00:02:03 v #1437 > > |> SpiralCrypto.hash_text -00:02:03 v #1438 > > |> SpiralFileSystem.create_temp_dir' -00:02:03 v #1439 > > let stream, disposable = watchFn tempDir -00:02:03 v #1440 > > -00:02:03 v #1441 > > let events = System.Collections.Concurrent.ConcurrentBag () -00:02:03 v #1442 > > -00:02:03 v #1443 > > let inline iter () = -00:02:03 v #1444 > > stream -00:02:03 v #1445 > > |> FSharp.Control.AsyncSeq.iterAsyncParallel (fun event -> async { -00:02:03 v #1446 > > events.Add event }) -00:02:03 v #1447 > > -00:02:03 v #1448 > > let run = async { -00:02:03 v #1449 > > let! _ = iter () |> Async.StartChild -00:02:03 v #1450 > > do! Async.Sleep 250 -00:02:03 v #1451 > > return! write tempDir -00:02:03 v #1452 > > } -00:02:03 v #1453 > > -00:02:03 v #1454 > > try -00:02:03 v #1455 > > run -00:02:03 v #1456 > > |> Async.runWithTimeout 5000 -00:02:03 v #1457 > > |> _assertEqual (Some ()) -00:02:03 v #1458 > > finally -00:02:03 v #1459 > > disposable.Dispose () -00:02:03 v #1460 > > tempDisposable.Dispose () -00:02:03 v #1461 > > -00:02:03 v #1462 > > let events = formatEvents events -00:02:03 v #1463 > > -00:02:03 v #1464 > > let eventMap = -00:02:03 v #1465 > > events -00:02:03 v #1466 > > |> List.map (fun (ticks, path, event) -> path, (event, ticks)) -00:02:03 v #1467 > > |> List.groupBy fst -00:02:03 v #1468 > > |> List.map (fun (path, events) -> -00:02:03 v #1469 > > let event, _ticks = -00:02:03 v #1470 > > events -00:02:03 v #1471 > > |> List.map snd -00:02:03 v #1472 > > |> List.sortByDescending snd -00:02:03 v #1473 > > |> List.head -00:02:03 v #1474 > > -00:02:03 v #1475 > > path, event -00:02:03 v #1476 > > ) -00:02:03 v #1477 > > |> Map.ofList -00:02:03 v #1478 > > -00:02:03 v #1479 > > let eventList = -00:02:03 v #1480 > > events -00:02:03 v #1481 > > |> List.map (fun (_ticks, path, event) -> path, event) -00:02:03 v #1482 > > -00:02:03 v #1483 > > eventMap, eventList -00:02:04 v #1484 > > -00:02:04 v #1485 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:04 v #1486 > > │ #### create and delete (test) -00:02:04 v #1487 > > -00:02:04 v #1488 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:02:04 v #1489 > > //// test -00:02:04 v #1490 > > -00:02:04 v #1491 > > let inline write path = async { -00:02:04 v #1492 > > let n = 3 -00:02:04 v #1493 > > -00:02:04 v #1494 > > for i = 1 to n do -00:02:04 v #1495 > > do! $"{i}" |> SpiralFileSystem.write_all_text_async (path </> -00:02:04 v #1496 > > $"file{i}.txt") -00:02:04 v #1497 > > -00:02:04 v #1498 > > for i = 1 to n do -00:02:04 v #1499 > > do! SpiralFileSystem.delete_file_async (path </> $"file{i}.txt") |> -00:02:04 v #1500 > > Async.Ignore -00:02:04 v #1501 > > -00:02:04 v #1502 > > do! Async.Sleep 150 -00:02:04 v #1503 > > } -00:02:04 v #1504 > > -00:02:04 v #1505 > > let inline run () = -00:02:04 v #1506 > > let eventMap, eventList = testEventsSorted (watchDirectory (fun _ -> false)) -00:02:04 v #1507 > > write -00:02:04 v #1508 > > -00:02:04 v #1509 > > [[ -00:02:04 v #1510 > > "file1.txt", nameof FileSystemChangeType.Created -00:02:04 v #1511 > > "file1.txt", nameof FileSystemChangeType.Changed -00:02:04 v #1512 > > "file1.txt", nameof FileSystemChangeType.Deleted -00:02:04 v #1513 > > -00:02:04 v #1514 > > "file2.txt", nameof FileSystemChangeType.Created -00:02:04 v #1515 > > "file2.txt", nameof FileSystemChangeType.Changed -00:02:04 v #1516 > > "file2.txt", nameof FileSystemChangeType.Deleted -00:02:04 v #1517 > > -00:02:04 v #1518 > > "file3.txt", nameof FileSystemChangeType.Created -00:02:04 v #1519 > > "file3.txt", nameof FileSystemChangeType.Changed -00:02:04 v #1520 > > "file3.txt", nameof FileSystemChangeType.Deleted -00:02:04 v #1521 > > ]] -00:02:04 v #1522 > > |> _sequenceEqual eventList -00:02:04 v #1523 > > -00:02:04 v #1524 > > [[ -00:02:04 v #1525 > > "file1.txt", nameof FileSystemChangeType.Deleted -00:02:04 v #1526 > > "file2.txt", nameof FileSystemChangeType.Deleted -00:02:04 v #1527 > > "file3.txt", nameof FileSystemChangeType.Deleted -00:02:04 v #1528 > > ]] -00:02:04 v #1529 > > |> Map.ofList -00:02:04 v #1530 > > |> _sequenceEqual eventMap -00:02:04 v #1531 > > -00:02:04 v #1532 > > run -00:02:04 v #1533 > > |> retry_fn 3 -00:02:04 v #1534 > > |> _assertEqual (Some ()) -00:02:06 v #1535 > > -00:02:06 v #1536 > > ── [ 1.83s - stdout ] ────────────────────────────────────────────────────────── -00:02:06 v #1537 > > │ Some () -00:02:06 v #1538 > > │ -00:02:06 v #1539 > > │ 00:00:19 d #5 FileSystem.watchWithFilter / Disposing -00:02:06 v #1540 > > watch stream / filter: FileName, LastWrite -00:02:06 v #1541 > > │ [("file1.txt", "Created"); ("file1.txt", "Changed"); -00:02:06 v #1542 > > ("file1.txt", "Deleted"); ("file2.txt", "Created"); -00:02:06 v #1543 > > │ ("file2.txt", "Changed"); ("file2.txt", "Deleted"); -00:02:06 v #1544 > > ("file3.txt", "Created"); ("file3.txt", "Changed"); -00:02:06 v #1545 > > │ ("file3.txt", "Deleted")] -00:02:06 v #1546 > > │ -00:02:06 v #1547 > > │ map [("file1.txt", "Deleted"); ("file2.txt", "Deleted"); -00:02:06 v #1548 > > ("file3.txt", "Deleted")] -00:02:06 v #1549 > > │ -00:02:06 v #1550 > > │ Some () -00:02:06 v #1551 > > │ -00:02:06 v #1552 > > │ -00:02:06 v #1553 > > -00:02:06 v #1554 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:06 v #1555 > > │ #### change (test) -00:02:06 v #1556 > > -00:02:06 v #1557 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:02:06 v #1558 > > //// test -00:02:06 v #1559 > > -00:02:06 v #1560 > > let inline write path = async { -00:02:06 v #1561 > > let n = 2 -00:02:06 v #1562 > > -00:02:06 v #1563 > > for i = 1 to n do -00:02:06 v #1564 > > do! $"{i}" |> SpiralFileSystem.write_all_text_async (path </> -00:02:06 v #1565 > > $"file{i}.txt") -00:02:06 v #1566 > > -00:02:06 v #1567 > > for i = 1 to n do -00:02:06 v #1568 > > do! "" |> SpiralFileSystem.write_all_text_async (path </> -00:02:06 v #1569 > > $"file{i}.txt") -00:02:06 v #1570 > > -00:02:06 v #1571 > > for i = 1 to n do -00:02:06 v #1572 > > do! SpiralFileSystem.delete_file_async (path </> $"file{i}.txt") |> -00:02:06 v #1573 > > Async.Ignore -00:02:06 v #1574 > > -00:02:06 v #1575 > > do! Async.Sleep 150 -00:02:06 v #1576 > > } -00:02:06 v #1577 > > -00:02:06 v #1578 > > let inline run () = -00:02:06 v #1579 > > let eventMap, eventList = testEventsSorted (watchDirectory (fun _ -> false)) -00:02:06 v #1580 > > write -00:02:06 v #1581 > > -00:02:06 v #1582 > > [[ -00:02:06 v #1583 > > "file1.txt", nameof FileSystemChangeType.Created -00:02:06 v #1584 > > "file1.txt", nameof FileSystemChangeType.Changed -00:02:06 v #1585 > > "file1.txt", nameof FileSystemChangeType.Deleted -00:02:06 v #1586 > > -00:02:06 v #1587 > > "file2.txt", nameof FileSystemChangeType.Created -00:02:06 v #1588 > > "file2.txt", nameof FileSystemChangeType.Changed -00:02:06 v #1589 > > "file2.txt", nameof FileSystemChangeType.Deleted -00:02:06 v #1590 > > ]] -00:02:06 v #1591 > > |> _sequenceEqual eventList -00:02:06 v #1592 > > -00:02:06 v #1593 > > [[ -00:02:06 v #1594 > > "file1.txt", nameof FileSystemChangeType.Deleted -00:02:06 v #1595 > > "file2.txt", nameof FileSystemChangeType.Deleted -00:02:06 v #1596 > > ]] -00:02:06 v #1597 > > |> Map.ofList -00:02:06 v #1598 > > |> _sequenceEqual eventMap -00:02:06 v #1599 > > -00:02:06 v #1600 > > run -00:02:06 v #1601 > > |> retry_fn 3 -00:02:06 v #1602 > > |> _assertEqual (Some ()) -00:02:08 v #1603 > > -00:02:08 v #1604 > > ── [ 2.07s - stdout ] ────────────────────────────────────────────────────────── -00:02:08 v #1605 > > │ Some () -00:02:08 v #1606 > > │ -00:02:08 v #1607 > > │ 00:00:21 d #6 FileSystem.watchWithFilter / Disposing -00:02:08 v #1608 > > watch stream / filter: FileName, LastWrite -00:02:08 v #1609 > > │ [("file1.txt", "Created"); ("file1.txt", "Changed"); -00:02:08 v #1610 > > ("file1.txt", "Deleted"); ("file2.txt", "Created"); -00:02:08 v #1611 > > │ ("file2.txt", "Changed"); ("file2.txt", "Deleted")] -00:02:08 v #1612 > > │ -00:02:08 v #1613 > > │ map [("file1.txt", "Deleted"); ("file2.txt", "Deleted")] -00:02:08 v #1614 > > │ -00:02:08 v #1615 > > │ Some () -00:02:08 v #1616 > > │ -00:02:08 v #1617 > > │ -00:02:08 v #1618 > > -00:02:08 v #1619 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:08 v #1620 > > │ #### rename (test) -00:02:08 v #1621 > > -00:02:08 v #1622 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:02:08 v #1623 > > //// test -00:02:08 v #1624 > > -00:02:08 v #1625 > > let inline write path = async { -00:02:08 v #1626 > > let n = 2 -00:02:08 v #1627 > > -00:02:08 v #1628 > > for i = 1 to n do -00:02:08 v #1629 > > do! $"{i}" |> SpiralFileSystem.write_all_text_async (path </> -00:02:08 v #1630 > > $"file{i}.txt") -00:02:08 v #1631 > > -00:02:08 v #1632 > > for i = 1 to n do -00:02:08 v #1633 > > do! path </> $"file{i}.txt" |> SpiralFileSystem.move_file_async (path -00:02:08 v #1634 > > </> $"file_{i}.txt") |> Async.Ignore -00:02:08 v #1635 > > -00:02:08 v #1636 > > for i = 1 to n do -00:02:08 v #1637 > > do! SpiralFileSystem.delete_file_async (path </> $"file_{i}.txt") |> -00:02:08 v #1638 > > Async.Ignore -00:02:08 v #1639 > > -00:02:08 v #1640 > > do! Async.Sleep 150 -00:02:08 v #1641 > > } -00:02:08 v #1642 > > -00:02:08 v #1643 > > let inline run () = -00:02:08 v #1644 > > let eventMap, eventList = testEventsSorted (watchDirectory (fun _ -> false)) -00:02:08 v #1645 > > write -00:02:08 v #1646 > > -00:02:08 v #1647 > > [[ -00:02:08 v #1648 > > "file1.txt", nameof FileSystemChangeType.Created -00:02:08 v #1649 > > "file1.txt", nameof FileSystemChangeType.Changed -00:02:08 v #1650 > > "file2.txt", nameof FileSystemChangeType.Created -00:02:08 v #1651 > > "file2.txt", nameof FileSystemChangeType.Changed -00:02:08 v #1652 > > -00:02:08 v #1653 > > "file_1.txt", nameof FileSystemChangeType.Renamed -00:02:08 v #1654 > > "file_1.txt", nameof FileSystemChangeType.Deleted -00:02:08 v #1655 > > -00:02:08 v #1656 > > "file_2.txt", nameof FileSystemChangeType.Renamed -00:02:08 v #1657 > > "file_2.txt", nameof FileSystemChangeType.Deleted -00:02:08 v #1658 > > ]] -00:02:08 v #1659 > > |> _sequenceEqual eventList -00:02:08 v #1660 > > -00:02:08 v #1661 > > [[ -00:02:08 v #1662 > > "file1.txt", nameof FileSystemChangeType.Changed -00:02:08 v #1663 > > "file2.txt", nameof FileSystemChangeType.Changed -00:02:08 v #1664 > > "file_1.txt", nameof FileSystemChangeType.Deleted -00:02:08 v #1665 > > "file_2.txt", nameof FileSystemChangeType.Deleted -00:02:08 v #1666 > > ]] -00:02:08 v #1667 > > |> Map.ofList -00:02:08 v #1668 > > |> _sequenceEqual eventMap -00:02:08 v #1669 > > -00:02:08 v #1670 > > run -00:02:08 v #1671 > > |> retry_fn 3 -00:02:08 v #1672 > > |> _assertEqual (Some ()) -00:02:10 v #1673 > > -00:02:10 v #1674 > > ── [ 2.20s - stdout ] ────────────────────────────────────────────────────────── -00:02:10 v #1675 > > │ Some () -00:02:10 v #1676 > > │ -00:02:10 v #1677 > > │ 00:00:23 d #7 FileSystem.watchWithFilter / Disposing -00:02:10 v #1678 > > watch stream / filter: FileName, LastWrite -00:02:10 v #1679 > > │ [("file1.txt", "Created"); ("file1.txt", "Changed"); -00:02:10 v #1680 > > ("file2.txt", "Created"); ("file2.txt", "Changed"); -00:02:10 v #1681 > > │ ("file_1.txt", "Renamed"); ("file_1.txt", "Deleted"); -00:02:10 v #1682 > > ("file_2.txt", "Renamed"); ("file_2.txt", "Deleted")] -00:02:10 v #1683 > > │ -00:02:10 v #1684 > > │ map [("file1.txt", "Changed"); ("file2.txt", "Changed"); -00:02:10 v #1685 > > ("file_1.txt", "Deleted"); ("file_2.txt", "Deleted")] -00:02:10 v #1686 > > │ -00:02:10 v #1687 > > │ Some () -00:02:10 v #1688 > > │ -00:02:10 v #1689 > > │ -00:02:10 v #1690 > > -00:02:10 v #1691 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:10 v #1692 > > │ #### full (test) -00:02:10 v #1693 > > -00:02:10 v #1694 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:02:10 v #1695 > > //// test -00:02:10 v #1696 > > -00:02:10 v #1697 > > let inline write path = async { -00:02:10 v #1698 > > let n = 2 -00:02:10 v #1699 > > -00:02:10 v #1700 > > for i = 1 to n do -00:02:10 v #1701 > > do! $"{i}" |> SpiralFileSystem.write_all_text_async (path </> -00:02:10 v #1702 > > $"file{i}.txt") -00:02:10 v #1703 > > -00:02:10 v #1704 > > for i = 1 to n do -00:02:10 v #1705 > > do! "" |> SpiralFileSystem.write_all_text_async (path </> -00:02:10 v #1706 > > $"file{i}.txt") -00:02:10 v #1707 > > -00:02:10 v #1708 > > for i = 1 to n do -00:02:10 v #1709 > > do! path </> $"file{i}.txt" |> SpiralFileSystem.move_file_async (path -00:02:10 v #1710 > > </> $"file_{i}.txt") |> Async.Ignore -00:02:10 v #1711 > > -00:02:10 v #1712 > > for i = 1 to n do -00:02:10 v #1713 > > do! $"{i}" |> SpiralFileSystem.write_all_text_async (path </> -00:02:10 v #1714 > > $"file_{i}.txt") -00:02:10 v #1715 > > -00:02:10 v #1716 > > for i = 1 to n do -00:02:10 v #1717 > > do! SpiralFileSystem.delete_file_async (path </> $"file_{i}.txt") |> -00:02:10 v #1718 > > Async.Ignore -00:02:10 v #1719 > > -00:02:10 v #1720 > > do! Async.Sleep 150 -00:02:10 v #1721 > > } -00:02:10 v #1722 > > -00:02:10 v #1723 > > let inline run () = -00:02:10 v #1724 > > let eventMap, eventList = testEventsSorted (watchDirectory (fun _ -> false)) -00:02:10 v #1725 > > write -00:02:10 v #1726 > > -00:02:10 v #1727 > > [[ -00:02:10 v #1728 > > "file1.txt", nameof FileSystemChangeType.Created -00:02:10 v #1729 > > "file1.txt", nameof FileSystemChangeType.Changed -00:02:10 v #1730 > > "file2.txt", nameof FileSystemChangeType.Created -00:02:10 v #1731 > > "file2.txt", nameof FileSystemChangeType.Changed -00:02:10 v #1732 > > -00:02:10 v #1733 > > "file_1.txt", nameof FileSystemChangeType.Changed -00:02:10 v #1734 > > "file_1.txt", nameof FileSystemChangeType.Renamed -00:02:10 v #1735 > > "file_1.txt", nameof FileSystemChangeType.Deleted -00:02:10 v #1736 > > -00:02:10 v #1737 > > "file_2.txt", nameof FileSystemChangeType.Changed -00:02:10 v #1738 > > "file_2.txt", nameof FileSystemChangeType.Renamed -00:02:10 v #1739 > > "file_2.txt", nameof FileSystemChangeType.Deleted -00:02:10 v #1740 > > ]] -00:02:10 v #1741 > > |> _sequenceEqual eventList -00:02:10 v #1742 > > -00:02:10 v #1743 > > [[ -00:02:10 v #1744 > > "file1.txt", nameof FileSystemChangeType.Changed -00:02:10 v #1745 > > "file2.txt", nameof FileSystemChangeType.Changed -00:02:10 v #1746 > > "file_1.txt", nameof FileSystemChangeType.Deleted -00:02:10 v #1747 > > "file_2.txt", nameof FileSystemChangeType.Deleted -00:02:10 v #1748 > > ]] -00:02:10 v #1749 > > |> Map.ofList -00:02:10 v #1750 > > |> _sequenceEqual eventMap -00:02:10 v #1751 > > -00:02:10 v #1752 > > run -00:02:10 v #1753 > > |> retry_fn 3 -00:02:10 v #1754 > > |> _assertEqual (Some ()) -00:02:13 v #1755 > > -00:02:13 v #1756 > > ── [ 2.70s - stdout ] ────────────────────────────────────────────────────────── -00:02:13 v #1757 > > │ Some () -00:02:13 v #1758 > > │ -00:02:13 v #1759 > > │ 00:00:26 d #8 FileSystem.watchWithFilter / Disposing -00:02:13 v #1760 > > watch stream / filter: FileName, LastWrite -00:02:13 v #1761 > > │ [("file1.txt", "Created"); ("file1.txt", "Changed"); -00:02:13 v #1762 > > ("file2.txt", "Created"); ("file2.txt", "Changed"); -00:02:13 v #1763 > > │ ("file_1.txt", "Changed"); ("file_1.txt", "Renamed"); -00:02:13 v #1764 > > ("file_1.txt", "Deleted"); ("file_2.txt", "Changed"); -00:02:13 v #1765 > > │ ("file_2.txt", "Renamed"); ("file_2.txt", "Deleted")] -00:02:13 v #1766 > > │ -00:02:13 v #1767 > > │ map [("file1.txt", "Changed"); ("file2.txt", "Changed"); -00:02:13 v #1768 > > ("file_1.txt", "Deleted"); ("file_2.txt", "Deleted")] -00:02:13 v #1769 > > │ -00:02:13 v #1770 > > │ Some () -00:02:13 v #1771 > > │ -00:02:13 v #1772 > > │ -00:02:13 v #1773 > 00:00:42 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 30913 } -00:02:13 v #1774 > 00:00:42 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/lib/fsharp/FileSystem.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/lib/fsharp/FileSystem.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:02:14 v #1775 > 00:00:43 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/lib/fsharp/FileSystem.dib.ipynb to html -00:02:14 v #1776 > 00:00:43 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. -00:02:14 v #1777 > 00:00:43 v #7 ! validate(nb) -00:02:15 v #1778 > 00:00:44 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 -00:02:15 v #1779 > 00:00:44 v #9 ! return _pygments_highlight( -00:02:15 v #1780 > 00:00:45 v #10 ! [NbConvertApp] Writing 383449 bytes to c:\home\git\polyglot\lib\fsharp\FileSystem.dib.html -00:02:16 v #1781 > 00:00:45 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 862 } -00:02:16 v #1782 > 00:00:45 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 862 } -00:02:16 v #1783 > 00:00:45 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/lib/fsharp/FileSystem.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/lib/fsharp/FileSystem.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:02:16 v #1784 > 00:00:45 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } -00:02:16 v #1785 > 00:00:45 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } -00:02:16 v #1786 > 00:00:45 d #16 spiral.run / dib / { exit_code = 0; result_length = 31834 } -00:02:16 d #1787 runtime.execute_with_options_async / { exit_code = 0; output_length = 36195 } -00:02:16 d #7 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path FileSystem.dib --retries 3 -00:02:16 d #1788 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path Runtime.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path Runtime.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } -00:02:16 v #1789 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "Runtime.dib", "--retries", "3"])) } -00:02:16 v #1790 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/lib/fsharp/Runtime.dib", "--output-path", "c:/home/git/polyglot/lib/fsharp/Runtime.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/lib/fsharp/Runtime.dib" --output-path "c:/home/git/polyglot/lib/fsharp/Runtime.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } -00:02:18 v #1791 > > -00:02:18 v #1792 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:18 v #1793 > > │ # Runtime (Polyglot) -00:02:21 v #1794 > > -00:02:21 v #1795 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:02:21 v #1796 > > #r -00:02:21 v #1797 > > @"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan -00:02:21 v #1798 > > dard2.1/FSharp.Control.AsyncSeq.dll" -00:02:21 v #1799 > > #r -00:02:21 v #1800 > > @"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6. -00:02:21 v #1801 > > 0/System.Reactive.dll" -00:02:21 v #1802 > > #r -00:02:21 v #1803 > > @"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib -00:02:21 v #1804 > > netstandard2.0/System.Reactive.Linq.dll" -00:02:21 v #1805 > > #r -00:02:21 v #1806 > > @"../../../../../../../.nuget/packages/argu/6.2.4/lib/netstandard2.0/Argu.dll" -00:02:35 v #1807 > > -00:02:35 v #1808 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:02:35 v #1809 > > #if !INTERACTIVE -00:02:35 v #1810 > > open Lib -00:02:35 v #1811 > > #endif -00:02:35 v #1812 > > -00:02:35 v #1813 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:02:35 v #1814 > > open Common -00:02:35 v #1815 > > -00:02:35 v #1816 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:02:35 v #1817 > > //// test -00:02:35 v #1818 > > -00:02:35 v #1819 > > open SpiralFileSystem.Operators -00:02:35 v #1820 > > -00:02:35 v #1821 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:35 v #1822 > > │ ## parseArgs -00:02:35 v #1823 > > -00:02:35 v #1824 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:02:35 v #1825 > > let inline parseArgs<'T when 'T :> Argu.IArgParserTemplate> args = -00:02:35 v #1826 > > let assemblyName = -00:02:35 v #1827 > > System.Reflection.Assembly.GetEntryAssembly().GetName().Name -00:02:35 v #1828 > > let errorHandler : Argu.IExiter = -00:02:35 v #1829 > > if [[ "Microsoft.DotNet.Interactive.App"; "dotnet-repl" ]] |> -00:02:35 v #1830 > > List.contains assemblyName -00:02:35 v #1831 > > then Argu.ExceptionExiter () -00:02:35 v #1832 > > else Argu.ProcessExiter (function Argu.ErrorCode.HelpText -> None | _ -> -00:02:35 v #1833 > > Some System.ConsoleColor.Red) -00:02:35 v #1834 > > -00:02:35 v #1835 > > let parser = -00:02:35 v #1836 > > Argu.ArgumentParser.Create<'T> ( -00:02:35 v #1837 > > programName = $"{assemblyName}{SpiralPlatform.get_executable_suffix -00:02:35 v #1838 > > ()}", -00:02:35 v #1839 > > errorHandler = errorHandler -00:02:35 v #1840 > > ) -00:02:35 v #1841 > > -00:02:35 v #1842 > > parser.ParseCommandLine args -00:02:35 v #1843 > > -00:02:35 v #1844 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:02:35 v #1845 > > //// test -00:02:35 v #1846 > > -00:02:35 v #1847 > > [[<RequireQualifiedAccess>]] -00:02:35 v #1848 > > type Arguments = -00:02:35 v #1849 > > | [[<Argu.ArguAttributes.MainCommand; Argu.ArguAttributes.ExactlyOnce; -00:02:35 v #1850 > > Argu.ArguAttributes.Last>]] -00:02:35 v #1851 > > Paths of paths : string list -00:02:35 v #1852 > > -00:02:35 v #1853 > > interface Argu.IArgParserTemplate with -00:02:35 v #1854 > > member s.Usage = -00:02:35 v #1855 > > match s with -00:02:35 v #1856 > > | Paths _ -> nameof Paths -00:02:35 v #1857 > > -00:02:35 v #1858 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:02:35 v #1859 > > //// test -00:02:35 v #1860 > > -00:02:35 v #1861 > > Argu.ArgumentParser.Create<Arguments>().PrintUsage () -00:02:35 v #1862 > > -00:02:35 v #1863 > > ── [ 109.36ms - return value ] ───────────────────────────────────────────────── -00:02:35 v #1864 > > │ "USAGE: dotnet-repl [--help] <paths>... -00:02:35 v #1865 > > │ -00:02:35 v #1866 > > │ PATHS: -00:02:35 v #1867 > > │ -00:02:35 v #1868 > > │ <paths>... Paths -00:02:35 v #1869 > > │ -00:02:35 v #1870 > > │ OPTIONS: -00:02:35 v #1871 > > │ -00:02:35 v #1872 > > │ --help display this list of options. -00:02:35 v #1873 > > │ " -00:02:35 v #1874 > > │ -00:02:35 v #1875 > > -00:02:35 v #1876 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:02:35 v #1877 > > //// test -00:02:35 v #1878 > > -00:02:35 v #1879 > > fun () -> parseArgs<Arguments> [[||]] |> ignore -00:02:35 v #1880 > > |> _throwsC (fun ex _ -> -00:02:35 v #1881 > > SpiralSm.format_exception ex -00:02:35 v #1882 > > |> _stringContains "Argu.ArguParseException: ERROR: missing parameter -00:02:35 v #1883 > > '<paths>...'." -00:02:35 v #1884 > > ) -00:02:35 v #1885 > > -00:02:35 v #1886 > > ── [ 69.99ms - stdout ] ──────────────────────────────────────────────────────── -00:02:35 v #1887 > > │ <fun:it@3-3> -00:02:35 v #1888 > > │ -00:02:35 v #1889 > > │ "Argu.ArguParseException: ERROR: missing parameter -00:02:35 v #1890 > > '<paths>...'. -00:02:35 v #1891 > > │ USAGE: dotnet-repl.exe [--help] <paths>... -00:02:35 v #1892 > > │ -00:02:35 v #1893 > > │ PATHS: -00:02:35 v #1894 > > │ -00:02:35 v #1895 > > │ <paths>... Paths -00:02:35 v #1896 > > │ -00:02:35 v #1897 > > │ OPTIONS: -00:02:35 v #1898 > > │ -00:02:35 v #1899 > > │ --help display this list of options. -00:02:35 v #1900 > > │ " -00:02:35 v #1901 > > │ -00:02:35 v #1902 > > │ -00:02:35 v #1903 > > -00:02:35 v #1904 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:02:35 v #1905 > > let inline parseAllArgs<'T when 'T :> Argu.IArgParserTemplate> args = -00:02:35 v #1906 > > args -00:02:35 v #1907 > > |> parseArgs<'T> -00:02:35 v #1908 > > |> fun results -> results.GetAllResults () -00:02:35 v #1909 > > -00:02:35 v #1910 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:02:35 v #1911 > > //// test -00:02:35 v #1912 > > -00:02:35 v #1913 > > [[<RequireQualifiedAccess>]] -00:02:35 v #1914 > > type Arguments = -00:02:35 v #1915 > > | [[<Argu.ArguAttributes.MainCommand; Argu.ArguAttributes.ExactlyOnce; -00:02:35 v #1916 > > Argu.ArguAttributes.Last>]] -00:02:35 v #1917 > > Paths of paths : string list -00:02:35 v #1918 > > -00:02:35 v #1919 > > interface Argu.IArgParserTemplate with -00:02:35 v #1920 > > member s.Usage = -00:02:35 v #1921 > > match s with -00:02:35 v #1922 > > | Paths _ -> nameof Paths -00:02:35 v #1923 > > -00:02:35 v #1924 > > parseAllArgs<Arguments> [[| "a b"; "c" |]] -00:02:35 v #1925 > > |> _assertEqual [[ Arguments.Paths [[ "a b"; "c" ]] ]] -00:02:35 v #1926 > > -00:02:35 v #1927 > > ── [ 100.69ms - stdout ] ─────────────────────────────────────────────────────── -00:02:35 v #1928 > > │ [Paths ["a b"; "c"]] -00:02:35 v #1929 > > │ -00:02:35 v #1930 > > │ -00:02:35 v #1931 > > -00:02:35 v #1932 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:02:35 v #1933 > > let inline parseArgsMap<'T when 'T :> Argu.IArgParserTemplate> args = -00:02:35 v #1934 > > args -00:02:35 v #1935 > > |> parseAllArgs<'T> -00:02:35 v #1936 > > |> List.groupBy CommonFSharp.getUnionCaseName<'T> -00:02:35 v #1937 > > |> Map.ofList -00:02:35 v #1938 > > -00:02:35 v #1939 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:02:35 v #1940 > > //// test -00:02:35 v #1941 > > -00:02:35 v #1942 > > parseArgsMap<Arguments> [[| "a b"; "c" |]] -00:02:35 v #1943 > > |> _assertEqual ( -00:02:35 v #1944 > > [[ nameof Arguments.Paths, [[ Arguments.Paths [[ "a b"; "c" ]] ]] ]] -00:02:35 v #1945 > > |> Map.ofList -00:02:35 v #1946 > > ) -00:02:35 v #1947 > > -00:02:35 v #1948 > > ── [ 57.56ms - stdout ] ──────────────────────────────────────────────────────── -00:02:35 v #1949 > > │ map [("Paths", [Paths ["a b"; "c"]])] -00:02:35 v #1950 > > │ -00:02:35 v #1951 > > │ -00:02:35 v #1952 > 00:00:19 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 5457 } -00:02:35 v #1953 > 00:00:19 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/lib/fsharp/Runtime.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/lib/fsharp/Runtime.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:02:37 v #1954 > 00:00:20 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/lib/fsharp/Runtime.dib.ipynb to html -00:02:37 v #1955 > 00:00:20 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. -00:02:37 v #1956 > 00:00:20 v #7 ! validate(nb) -00:02:37 v #1957 > 00:00:21 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 -00:02:37 v #1958 > 00:00:21 v #9 ! return _pygments_highlight( -00:02:37 v #1959 > 00:00:21 v #10 ! [NbConvertApp] Writing 292946 bytes to c:\home\git\polyglot\lib\fsharp\Runtime.dib.html -00:02:38 v #1960 > 00:00:21 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 856 } -00:02:38 v #1961 > 00:00:21 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 856 } -00:02:38 v #1962 > 00:00:21 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/lib/fsharp/Runtime.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/lib/fsharp/Runtime.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:02:38 v #1963 > 00:00:22 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } -00:02:38 v #1964 > 00:00:22 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } -00:02:38 v #1965 > 00:00:22 d #16 spiral.run / dib / { exit_code = 0; result_length = 6372 } -00:02:38 d #1966 runtime.execute_with_options_async / { exit_code = 0; output_length = 9236 } -00:02:38 d #8 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path Runtime.dib --retries 3 -00:02:38 v #5 async.run_with_timeout_async / { timeout = 100 } +00:01:08 v #770 > > let inline memoize fn = +00:01:08 v #771 > > let result = lazy fn () +00:01:08 v #772 > > fun () -> result.Value +00:01:08 v #773 > > +00:01:08 v #774 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:01:08 v #775 > > │ ## TraceLevel +00:01:08 v #776 > > +00:01:08 v #777 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:01:08 v #778 > > type TraceLevel = +00:01:08 v #779 > > | Verbose +00:01:08 v #780 > > | Debug +00:01:08 v #781 > > | Info +00:01:08 v #782 > > | Warning +00:01:08 v #783 > > | Critical +00:01:08 v #784 > > +00:01:08 v #785 > > let inline _locals () = "" +00:01:08 v #786 > > +00:01:08 v #787 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:01:08 v #788 > > │ ## trace +00:01:08 v #789 > > +00:01:08 v #790 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:01:08 v #791 > > let to_trace_level = function +00:01:08 v #792 > > | Verbose -> SpiralTrace.TraceLevel.US0_0 +00:01:08 v #793 > > | Debug -> SpiralTrace.TraceLevel.US0_1 +00:01:08 v #794 > > | Info -> SpiralTrace.TraceLevel.US0_2 +00:01:08 v #795 > > | Warning -> SpiralTrace.TraceLevel.US0_3 +00:01:08 v #796 > > | Critical -> SpiralTrace.TraceLevel.US0_4 +00:01:08 v #797 > > +00:01:08 v #798 > > let trace level fn locals = +00:01:08 v #799 > > let level = level |> to_trace_level +00:01:08 v #800 > > SpiralTrace.trace level fn locals +00:01:08 v #801 > > +00:01:08 v #802 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:01:08 v #803 > > //// test +00:01:08 v #804 > > +00:01:08 v #805 > > trace Debug (fun () -> "test") _locals +00:01:08 v #806 > > +00:01:08 v #807 > > ── [ 23.99ms - stdout ] ──────────────────────────────────────────────────────── +00:01:08 v #808 > > │ 00:00:00 d #1 test +00:01:08 v #809 > > │ +00:01:08 v #810 > 00:00:18 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 1940 } +00:01:08 v #811 > 00:00:18 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/lib/fsharp/Common.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/lib/fsharp/Common.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } +00:01:10 v #812 > 00:00:20 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/lib/fsharp/Common.dib.ipynb to html +00:01:10 v #813 > 00:00:20 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. +00:01:10 v #814 > 00:00:20 v #7 ! validate(nb) +00:01:10 v #815 > 00:00:20 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 +00:01:10 v #816 > 00:00:20 v #9 ! return _pygments_highlight( +00:01:11 v #817 > 00:00:21 v #10 ! [NbConvertApp] Writing 280728 bytes to c:\home\git\polyglot\lib\fsharp\Common.dib.html +00:01:11 v #818 > 00:00:21 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 854 } +00:01:11 v #819 > 00:00:21 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 854 } +00:01:11 v #820 > 00:00:21 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/lib/fsharp/Common.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/lib/fsharp/Common.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } +00:01:11 v #821 > 00:00:21 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } +00:01:11 v #822 > 00:00:21 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } +00:01:11 v #823 > 00:00:21 d #16 spiral.run / dib / { exit_code = 0; result_length = 2853 } +00:01:11 d #824 runtime.execute_with_options_async / { exit_code = 0; output_length = 5506 } +00:01:11 d #3 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path Common.dib --retries 3 +00:01:11 d #825 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path CommonFSharp.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path CommonFSharp.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } +00:01:11 v #826 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "CommonFSharp.dib", "--retries", "3"])) } +00:01:11 v #827 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/lib/fsharp/CommonFSharp.dib", "--output-path", "c:/home/git/polyglot/lib/fsharp/CommonFSharp.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/lib/fsharp/CommonFSharp.dib" --output-path "c:/home/git/polyglot/lib/fsharp/CommonFSharp.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } +00:01:13 v #828 > > +00:01:13 v #829 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:01:13 v #830 > > │ # CommonFSharp (Polyglot) +00:01:30 v #831 > > +00:01:30 v #832 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:01:30 v #833 > > open Common +00:01:30 v #834 > > +00:01:30 v #835 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:01:30 v #836 > > │ ## getUnionCaseName +00:01:30 v #837 > > +00:01:30 v #838 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:01:30 v #839 > > let inline getUnionCaseName<'T> (x: 'T) = +00:01:30 v #840 > > match Reflection.FSharpValue.GetUnionFields(x, typeof<'T>) with +00:01:30 v #841 > > | case, _ -> case.Name +00:01:30 v #842 > > +00:01:30 v #843 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:01:30 v #844 > > //// test +00:01:30 v #845 > > +00:01:30 v #846 > > TraceLevel.Critical +00:01:30 v #847 > > |> getUnionCaseName +00:01:30 v #848 > > |> _assertEqual (nameof TraceLevel.Critical) +00:01:30 v #849 > > +00:01:30 v #850 > > ── [ 71.42ms - stdout ] ──────────────────────────────────────────────────────── +00:01:30 v #851 > > │ "Critical" +00:01:30 v #852 > > │ +00:01:30 v #853 > > │ +00:01:30 v #854 > 00:00:19 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 914 } +00:01:30 v #855 > 00:00:19 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/lib/fsharp/CommonFSharp.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/lib/fsharp/CommonFSharp.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } +00:01:32 v #856 > 00:00:20 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/lib/fsharp/CommonFSharp.dib.ipynb to html +00:01:32 v #857 > 00:00:20 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. +00:01:32 v #858 > 00:00:20 v #7 ! validate(nb) +00:01:32 v #859 > 00:00:21 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 +00:01:32 v #860 > 00:00:21 v #9 ! return _pygments_highlight( +00:01:32 v #861 > 00:00:21 v #10 ! [NbConvertApp] Writing 275592 bytes to c:\home\git\polyglot\lib\fsharp\CommonFSharp.dib.html +00:01:32 v #862 > 00:00:21 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 866 } +00:01:32 v #863 > 00:00:21 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 866 } +00:01:32 v #864 > 00:00:21 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/lib/fsharp/CommonFSharp.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/lib/fsharp/CommonFSharp.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } +00:01:33 v #865 > 00:00:21 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } +00:01:33 v #866 > 00:00:21 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } +00:01:33 v #867 > 00:00:21 d #16 spiral.run / dib / { exit_code = 0; result_length = 1839 } +00:01:33 d #868 runtime.execute_with_options_async / { exit_code = 0; output_length = 4477 } +00:01:33 d #4 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path CommonFSharp.dib --retries 3 +00:01:33 d #869 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path FileSystem.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path FileSystem.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } +00:01:33 v #870 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "FileSystem.dib", "--retries", "3"])) } +00:01:33 v #871 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/lib/fsharp/FileSystem.dib", "--output-path", "c:/home/git/polyglot/lib/fsharp/FileSystem.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/lib/fsharp/FileSystem.dib" --output-path "c:/home/git/polyglot/lib/fsharp/FileSystem.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } +00:01:35 v #872 > > +00:01:35 v #873 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:01:35 v #874 > > │ # FileSystem (Polyglot) +00:01:39 v #875 > > +00:01:39 v #876 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:01:39 v #877 > > #r +00:01:39 v #878 > > @"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan +00:01:39 v #879 > > dard2.1/FSharp.Control.AsyncSeq.dll" +00:01:39 v #880 > > #r +00:01:39 v #881 > > @"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6. +00:01:39 v #882 > > 0/System.Reactive.dll" +00:01:39 v #883 > > #r +00:01:39 v #884 > > @"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib +00:01:39 v #885 > > netstandard2.0/System.Reactive.Linq.dll" +00:01:39 v #886 > > #r +00:01:39 v #887 > > @"../../../../../../../.nuget/packages/argu/6.2.4/lib/netstandard2.0/Argu.dll" +00:01:53 v #888 > > +00:01:53 v #889 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:01:53 v #890 > > #if !INTERACTIVE +00:01:53 v #891 > > open Lib +00:01:53 v #892 > > #endif +00:01:53 v #893 > > +00:01:53 v #894 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:01:53 v #895 > > open Common +00:01:53 v #896 > > open SpiralFileSystem.Operators +00:01:53 v #897 > > +00:01:53 v #898 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:01:53 v #899 > > │ ## watchDirectory +00:01:53 v #900 > > +00:01:53 v #901 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:01:53 v #902 > > [[<RequireQualifiedAccess>]] +00:01:53 v #903 > > type FileSystemChangeType = +00:01:53 v #904 > > | Failure +00:01:53 v #905 > > | Changed +00:01:53 v #906 > > | Created +00:01:53 v #907 > > | Deleted +00:01:53 v #908 > > | Renamed +00:01:53 v #909 > > +00:01:53 v #910 > > [[<RequireQualifiedAccess>]] +00:01:53 v #911 > > type FileSystemChange = +00:01:53 v #912 > > | Failure of exn: exn +00:01:53 v #913 > > | Changed of path: string * content: string option +00:01:53 v #914 > > | Created of path: string * content: string option +00:01:53 v #915 > > | Deleted of path: string +00:01:53 v #916 > > | Renamed of oldPath: string * (string * string option) +00:01:53 v #917 > > +00:01:53 v #918 > > +00:01:53 v #919 > > let inline watchDirectoryWithFilter filter shouldReadContent path = +00:01:53 v #920 > > let fullPath = path |> System.IO.Path.GetFullPath +00:01:53 v #921 > > let _locals () = $"filter: {filter} / {_locals ()}" +00:01:53 v #922 > > +00:01:53 v #923 > > let watcher = +00:01:53 v #924 > > new System.IO.FileSystemWatcher ( +00:01:53 v #925 > > Path = fullPath, +00:01:53 v #926 > > NotifyFilter = filter, +00:01:53 v #927 > > EnableRaisingEvents = true, +00:01:53 v #928 > > IncludeSubdirectories = true +00:01:53 v #929 > > ) +00:01:53 v #930 > > +00:01:53 v #931 > > let inline getEventPath (path : string) = +00:01:53 v #932 > > path |> SpiralSm.trim |> SpiralSm.replace fullPath "" |> +00:01:53 v #933 > > SpiralSm.trim_start [[| '/'; '\\' |]] +00:01:53 v #934 > > +00:01:53 v #935 > > let inline ticks () = +00:01:53 v #936 > > System.DateTime.UtcNow.Ticks +00:01:53 v #937 > > +00:01:53 v #938 > > let changedStream = +00:01:53 v #939 > > AsyncSeq.subscribeEvent +00:01:53 v #940 > > watcher.Changed +00:01:53 v #941 > > (fun event -> +00:01:53 v #942 > > ticks (), +00:01:53 v #943 > > [[ FileSystemChange.Changed (getEventPath event.FullPath, None) +00:01:53 v #944 > > ]] +00:01:53 v #945 > > ) +00:01:53 v #946 > > +00:01:53 v #947 > > let deletedStream = +00:01:53 v #948 > > AsyncSeq.subscribeEvent +00:01:53 v #949 > > watcher.Deleted +00:01:53 v #950 > > (fun event -> +00:01:53 v #951 > > ticks (), +00:01:53 v #952 > > [[ FileSystemChange.Deleted (getEventPath event.FullPath) ]] +00:01:53 v #953 > > ) +00:01:53 v #954 > > +00:01:53 v #955 > > let createdStream = +00:01:53 v #956 > > AsyncSeq.subscribeEvent +00:01:53 v #957 > > watcher.Created +00:01:53 v #958 > > (fun event -> +00:01:53 v #959 > > let path = getEventPath event.FullPath +00:01:53 v #960 > > ticks (), [[ +00:01:53 v #961 > > FileSystemChange.Created (path, None) +00:01:53 v #962 > > if SpiralPlatform.is_windows () then +00:01:53 v #963 > > FileSystemChange.Changed (path, None) +00:01:53 v #964 > > ]]) +00:01:53 v #965 > > +00:01:53 v #966 > > let renamedStream = +00:01:53 v #967 > > AsyncSeq.subscribeEvent +00:01:53 v #968 > > watcher.Renamed +00:01:53 v #969 > > (fun event -> +00:01:53 v #970 > > ticks (), [[ +00:01:53 v #971 > > FileSystemChange.Renamed ( +00:01:53 v #972 > > getEventPath event.OldFullPath, +00:01:53 v #973 > > (getEventPath event.FullPath, None) +00:01:53 v #974 > > ) +00:01:53 v #975 > > ]] +00:01:53 v #976 > > ) +00:01:53 v #977 > > +00:01:53 v #978 > > let failureStream = +00:01:53 v #979 > > AsyncSeq.subscribeEvent +00:01:53 v #980 > > watcher.Error +00:01:53 v #981 > > (fun event -> ticks (), [[ FileSystemChange.Failure +00:01:53 v #982 > > (event.GetException ()) ]]) +00:01:53 v #983 > > +00:01:53 v #984 > > let stream = +00:01:53 v #985 > > [[ +00:01:53 v #986 > > changedStream +00:01:53 v #987 > > deletedStream +00:01:53 v #988 > > createdStream +00:01:53 v #989 > > renamedStream +00:01:53 v #990 > > failureStream +00:01:53 v #991 > > ]] +00:01:53 v #992 > > |> FSharp.Control.AsyncSeq.mergeAll +00:01:53 v #993 > > |> FSharp.Control.AsyncSeq.map (fun (t, events) -> +00:01:53 v #994 > > events +00:01:53 v #995 > > |> List.fold +00:01:53 v #996 > > (fun (i, events) event -> +00:01:53 v #997 > > i + 1L, +00:01:53 v #998 > > (t + i, event) :: events) +00:01:53 v #999 > > (0L, [[]]) +00:01:53 v #1000 > > |> snd +00:01:53 v #1001 > > |> List.rev +00:01:53 v #1002 > > ) +00:01:53 v #1003 > > |> FSharp.Control.AsyncSeq.concatSeq +00:01:53 v #1004 > > |> FSharp.Control.AsyncSeq.mapAsyncParallel (fun (t, event) -> async { +00:01:53 v #1005 > > match shouldReadContent event, event with +00:01:53 v #1006 > > | true, FileSystemChange.Changed (path, _) -> +00:01:53 v #1007 > > do! Async.Sleep 5 +00:01:53 v #1008 > > let! content = fullPath </> path |> +00:01:53 v #1009 > > SpiralFileSystem.read_all_text_retry_async +00:01:53 v #1010 > > return t, FileSystemChange.Changed (path, content) +00:01:53 v #1011 > > | true, FileSystemChange.Created (path, _) -> +00:01:53 v #1012 > > do! Async.Sleep 5 +00:01:53 v #1013 > > let! content = fullPath </> path |> +00:01:53 v #1014 > > SpiralFileSystem.read_all_text_retry_async +00:01:53 v #1015 > > return t, FileSystemChange.Created (path, content) +00:01:53 v #1016 > > | true, FileSystemChange.Renamed (oldPath, (newPath, _)) -> +00:01:53 v #1017 > > let! content = fullPath </> newPath |> +00:01:53 v #1018 > > SpiralFileSystem.read_all_text_retry_async +00:01:53 v #1019 > > return t, FileSystemChange.Renamed (oldPath, (newPath, content)) +00:01:53 v #1020 > > | _ -> return t, event +00:01:53 v #1021 > > }) +00:01:53 v #1022 > > +00:01:53 v #1023 > > let disposable = +00:01:53 v #1024 > > new_disposable (fun () -> +00:01:53 v #1025 > > trace Debug (fun () -> "FileSystem.watchWithFilter / Disposing watch +00:01:53 v #1026 > > stream") _locals +00:01:53 v #1027 > > watcher.EnableRaisingEvents <- false +00:01:53 v #1028 > > watcher.Dispose () +00:01:53 v #1029 > > ) +00:01:53 v #1030 > > +00:01:53 v #1031 > > stream, disposable +00:01:53 v #1032 > > +00:01:53 v #1033 > > let inline watchDirectory path = +00:01:53 v #1034 > > watchDirectoryWithFilter +00:01:53 v #1035 > > (System.IO.NotifyFilters.FileName +00:01:53 v #1036 > > // ||| System.IO.NotifyFilters.DirectoryName +00:01:53 v #1037 > > // ||| System.IO.NotifyFilters.Attributes +00:01:53 v #1038 > > //// ||| System.IO.NotifyFilters.Size +00:01:53 v #1039 > > ||| System.IO.NotifyFilters.LastWrite +00:01:53 v #1040 > > //// ||| System.IO.NotifyFilters.LastAccess +00:01:53 v #1041 > > // ||| System.IO.NotifyFilters.CreationTime +00:01:53 v #1042 > > // ||| System.IO.NotifyFilters.Security +00:01:53 v #1043 > > ) +00:01:53 v #1044 > > path +00:01:54 v #1045 > > +00:01:54 v #1046 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:01:54 v #1047 > > │ ### testEventsRaw (test) +00:01:54 v #1048 > > +00:01:54 v #1049 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:01:54 v #1050 > > //// test +00:01:54 v #1051 > > +00:01:54 v #1052 > > let inline testEventsRaw +00:01:54 v #1053 > > (watchFn : (_ -> bool) -> string -> FSharp.Control.AsyncSeq<int64 * +00:01:54 v #1054 > > FileSystemChange> * IDisposable) +00:01:54 v #1055 > > write +00:01:54 v #1056 > > = +00:01:54 v #1057 > > let struct (tempDir, tempDisposable) = +00:01:54 v #1058 > > "FileSystem.testEventsRaw" +00:01:54 v #1059 > > |> SpiralCrypto.hash_text +00:01:54 v #1060 > > |> SpiralFileSystem.create_temp_dir' +00:01:54 v #1061 > > let stream, disposable = watchFn (fun _ -> true) tempDir +00:01:54 v #1062 > > +00:01:54 v #1063 > > let events = System.Collections.Concurrent.ConcurrentBag () +00:01:54 v #1064 > > +00:01:54 v #1065 > > let inline iter () = +00:01:54 v #1066 > > stream +00:01:54 v #1067 > > |> FSharp.Control.AsyncSeq.iterAsyncParallel (fun event -> async { +00:01:54 v #1068 > > events.Add event }) +00:01:54 v #1069 > > +00:01:54 v #1070 > > let run = async { +00:01:54 v #1071 > > let! _ = iter () |> Async.StartChild +00:01:54 v #1072 > > do! Async.Sleep 250 +00:01:54 v #1073 > > return! write tempDir +00:01:54 v #1074 > > } +00:01:54 v #1075 > > +00:01:54 v #1076 > > try +00:01:54 v #1077 > > run +00:01:54 v #1078 > > |> Async.runWithTimeout 60000 +00:01:54 v #1079 > > |> _assertEqual (Some ()) +00:01:54 v #1080 > > finally +00:01:54 v #1081 > > disposable.Dispose () +00:01:54 v #1082 > > tempDisposable.Dispose () +00:01:54 v #1083 > > +00:01:54 v #1084 > > let eventsLog = +00:01:54 v #1085 > > events +00:01:54 v #1086 > > |> Seq.toList +00:01:54 v #1087 > > |> List.sortBy fst +00:01:54 v #1088 > > |> List.fold +00:01:54 v #1089 > > (fun (prev, acc) (ticks, event) -> +00:01:54 v #1090 > > ticks, (ticks, (if prev = 0L then 0L else ticks - prev), event) +00:01:54 v #1091 > > :: acc +00:01:54 v #1092 > > ) +00:01:54 v #1093 > > (0L, [[]]) +00:01:54 v #1094 > > |> snd +00:01:54 v #1095 > > |> List.rev +00:01:54 v #1096 > > |> List.map (fun (diff, n, event) -> $"{n} / {diff} / {event}" |> +00:01:54 v #1097 > > SpiralSm.ellipsis_end 100L) +00:01:54 v #1098 > > |> SpiralSm.concat "\n" +00:01:54 v #1099 > > let _locals () = $"eventsLog: \n{eventsLog} / {_locals ()}" +00:01:54 v #1100 > > trace Debug (fun () -> "FileSystem.testEventsRaw") _locals +00:01:54 v #1101 > > +00:01:54 v #1102 > > events +00:01:54 v #1103 > > |> Seq.toList +00:01:54 v #1104 > > |> List.sortBy fst +00:01:54 v #1105 > > |> List.map snd +00:01:54 v #1106 > > |> List.fold +00:01:54 v #1107 > > (fun acc event -> +00:01:54 v #1108 > > match acc, event with +00:01:54 v #1109 > > | FileSystemChange.Changed (lastPath, Some lastContent) as lastEvent +00:01:54 v #1110 > > :: acc, +00:01:54 v #1111 > > FileSystemChange.Changed (path, Some content) +00:01:54 v #1112 > > when lastPath = path && content |> SpiralSm.starts_with +00:01:54 v #1113 > > lastContent +00:01:54 v #1114 > > -> +00:01:54 v #1115 > > event :: acc +00:01:54 v #1116 > > | _ -> event :: acc +00:01:54 v #1117 > > ) +00:01:54 v #1118 > > [[]] +00:01:54 v #1119 > > |> List.rev +00:01:54 v #1120 > > +00:01:54 v #1121 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:01:54 v #1122 > > │ #### fast (test) +00:01:54 v #1123 > > +00:01:54 v #1124 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:01:54 v #1125 > > //// test +00:01:54 v #1126 > > +00:01:54 v #1127 > > let inline write path = async { +00:01:54 v #1128 > > let n = 2 +00:01:54 v #1129 > > +00:01:54 v #1130 > > for i = 1 to n do +00:01:54 v #1131 > > do! $"a{i}" |> SpiralFileSystem.write_all_text_async (path </> +00:01:54 v #1132 > > $"file{i}.txt") +00:01:54 v #1133 > > +00:01:54 v #1134 > > do! Async.Sleep 250 +00:01:54 v #1135 > > +00:01:54 v #1136 > > for i = 1 to n do +00:01:54 v #1137 > > do! $"b{i}" |> SpiralFileSystem.write_all_text_async (path </> +00:01:54 v #1138 > > $"file{i}.txt") +00:01:54 v #1139 > > +00:01:54 v #1140 > > do! Async.Sleep 250 +00:01:54 v #1141 > > +00:01:54 v #1142 > > for i = 1 to n do +00:01:54 v #1143 > > do! path </> $"file{i}.txt" |> SpiralFileSystem.move_file_async (path +00:01:54 v #1144 > > </> $"file_{i}.txt") |> Async.Ignore +00:01:54 v #1145 > > +00:01:54 v #1146 > > do! Async.Sleep 250 +00:01:54 v #1147 > > +00:01:54 v #1148 > > for i = 1 to n do +00:01:54 v #1149 > > do! $"c{i}" |> SpiralFileSystem.write_all_text_async (path </> +00:01:54 v #1150 > > $"file_{i}.txt") +00:01:54 v #1151 > > +00:01:54 v #1152 > > do! Async.Sleep 250 +00:01:54 v #1153 > > +00:01:54 v #1154 > > for i = 1 to n do +00:01:54 v #1155 > > do! SpiralFileSystem.delete_file_async (path </> $"file_{i}.txt") |> +00:01:54 v #1156 > > Async.Ignore +00:01:54 v #1157 > > +00:01:54 v #1158 > > do! Async.Sleep 250 +00:01:54 v #1159 > > } +00:01:54 v #1160 > > +00:01:54 v #1161 > > let inline run () = +00:01:54 v #1162 > > let events = testEventsRaw watchDirectory write +00:01:54 v #1163 > > +00:01:54 v #1164 > > events +00:01:54 v #1165 > > |> _sequenceEqual [[ +00:01:54 v #1166 > > FileSystemChange.Created ("file1.txt", Some "a1") +00:01:54 v #1167 > > FileSystemChange.Changed ("file1.txt", Some "a1") +00:01:54 v #1168 > > FileSystemChange.Created ("file2.txt", Some "a2") +00:01:54 v #1169 > > FileSystemChange.Changed ("file2.txt", Some "a2") +00:01:54 v #1170 > > +00:01:54 v #1171 > > FileSystemChange.Changed ("file1.txt", Some "b1") +00:01:54 v #1172 > > FileSystemChange.Changed ("file2.txt", Some "b2") +00:01:54 v #1173 > > +00:01:54 v #1174 > > FileSystemChange.Renamed ("file1.txt", ("file_1.txt", Some "b1")) +00:01:54 v #1175 > > FileSystemChange.Renamed ("file2.txt", ("file_2.txt", Some "b2")) +00:01:54 v #1176 > > +00:01:54 v #1177 > > FileSystemChange.Changed ("file_1.txt", Some "c1") +00:01:54 v #1178 > > FileSystemChange.Changed ("file_2.txt", Some "c2") +00:01:54 v #1179 > > +00:01:54 v #1180 > > FileSystemChange.Deleted "file_1.txt" +00:01:54 v #1181 > > FileSystemChange.Deleted "file_2.txt" +00:01:54 v #1182 > > ]] +00:01:54 v #1183 > > +00:01:54 v #1184 > > run +00:01:54 v #1185 > > |> retry_fn 3 +00:01:54 v #1186 > > |> _assertEqual (Some ()) +00:01:58 v #1187 > > +00:01:58 v #1188 > > ── [ 3.57s - stdout ] ────────────────────────────────────────────────────────── +00:01:58 v #1189 > > │ Some () +00:01:58 v #1190 > > │ +00:01:58 v #1191 > > │ 00:00:06 d #1 FileSystem.watchWithFilter / Disposing +00:01:58 v #1192 > > watch stream / filter: FileName, LastWrite +00:01:58 v #1193 > > │ 00:00:06 d #2 FileSystem.testEventsRaw / eventsLog: +00:01:58 v #1194 > > │ 0 / 638732381950194874 / Created ("file1.txt", Some "a1") +00:01:58 v #1195 > > │ 1 / 638732381950194875 / Changed ("file1.txt", Some "a1") +00:01:58 v #1196 > > │ 24609 / 638732381950219484 / Changed ("file1.txt", Some "a1") +00:01:58 v #1197 > > │ 1399 / 638732381950220883 / Created ("file2.txt", Some "a2") +00:01:58 v #1198 > > │ 1 / 638732381950220884 / Changed ("file2.txt", Some "a2") +00:01:58 v #1199 > > │ 42 / 638732381950220926 / Changed ("file2.txt", Some "a2") +00:01:58 v #1200 > > │ 2455120 / 638732381952676046 / Changed ("file1.txt", Some +00:01:58 v #1201 > > "b1") +00:01:58 v #1202 > > │ 4608 / 638732381952680654 / Changed ("file1.txt", Some "b1") +00:01:58 v #1203 > > │ 18870 / 638732381952699524 / Changed ("file2.txt", Some "b2") +00:01:58 v #1204 > > │ 4441 / 638732381952703965 / Changed ("file2.txt", Some "b2") +00:01:58 v #1205 > > │ 2509411 / 638732381955213376 / Renamed ("file1.txt", +00:01:58 v #1206 > > ("file_1.txt", Some "b1")) +00:01:58 v #1207 > > │ 15004 / 638732381955228380 / Renamed ("file2.txt", +00:01:58 v #1208 > > ("file_2.txt", Some "b2")) +00:01:58 v #1209 > > │ 2531890 / 638732381957760270 / Changed ("file_1.txt", Some +00:01:58 v #1210 > > "c1") +00:01:58 v #1211 > > │ 1355 / 638732381957761625 / Changed ("file_1.txt", Some "c1") +00:01:58 v #1212 > > │ 8176 / 638732381957769801 / Changed ("file_2.txt", Some "c2") +00:01:58 v #1213 > > │ 1006 / 638732381957770807 / Changed ("file_2.txt", Some "c2") +00:01:58 v #1214 > > │ 2531083 / 638732381960301890 / Deleted "file_1.txt" +00:01:58 v #1215 > > │ 2375 / 638732381960304265 / Deleted "file_2.txt" +00:01:58 v #1216 > > │ [Created ("file1.txt", Some "a1"); Changed ("file1.txt", Some +00:01:58 v #1217 > > "a1"); Created ("file2.txt", Some "a2"); +00:01:58 v #1218 > > │ Changed ("file2.txt", Some "a2"); Changed ("file1.txt", Some +00:01:58 v #1219 > > "b1"); Changed ("file2.txt", Some "b2"); +00:01:58 v #1220 > > │ Renamed ("file1.txt", ("file_1.txt", Some "b1")); Renamed +00:01:58 v #1221 > > ("file2.txt", ("file_2.txt", Some "b2")); +00:01:58 v #1222 > > │ Changed ("file_1.txt", Some "c1"); Changed ("file_2.txt", +00:01:58 v #1223 > > Some "c2"); Deleted "file_1.txt"; Deleted "file_2.txt"] +00:01:58 v #1224 > > │ +00:01:58 v #1225 > > │ Some () +00:01:58 v #1226 > > │ +00:01:58 v #1227 > > │ +00:01:58 v #1228 > > +00:01:58 v #1229 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:01:58 v #1230 > > │ #### slow (test) +00:01:58 v #1231 > > +00:01:58 v #1232 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:01:58 v #1233 > > //// test +00:01:58 v #1234 > > +00:01:58 v #1235 > > let inline write path = async { +00:01:58 v #1236 > > let n = 2 +00:01:58 v #1237 > > +00:01:58 v #1238 > > let contents = +00:01:58 v #1239 > > [[ 1 .. n ]] +00:01:58 v #1240 > > |> List.map (string >> String.replicate 1_000_000) +00:01:58 v #1241 > > +00:01:58 v #1242 > > for i = 1 to n do +00:01:58 v #1243 > > do! $"{contents.[[i - 1]]}a" |> SpiralFileSystem.write_all_text_async +00:01:58 v #1244 > > (path </> $"file{i}.txt") +00:01:58 v #1245 > > +00:01:58 v #1246 > > do! Async.Sleep 1500 +00:01:58 v #1247 > > +00:01:58 v #1248 > > for i = 1 to n do +00:01:58 v #1249 > > do! $"{contents.[[i - 1]]}b" |> SpiralFileSystem.write_all_text_async +00:01:58 v #1250 > > (path </> $"file{i}.txt") +00:01:58 v #1251 > > +00:01:58 v #1252 > > do! Async.Sleep 1500 +00:01:58 v #1253 > > +00:01:58 v #1254 > > for i = 1 to n do +00:01:58 v #1255 > > do! path </> $"file{i}.txt" |> SpiralFileSystem.move_file_async (path +00:01:58 v #1256 > > </> $"file_{i}.txt") |> Async.Ignore +00:01:58 v #1257 > > +00:01:58 v #1258 > > do! Async.Sleep 1500 +00:01:58 v #1259 > > +00:01:58 v #1260 > > for i = 1 to n do +00:01:58 v #1261 > > do! $"{contents.[[i - 1]]}c" |> SpiralFileSystem.write_all_text_async +00:01:58 v #1262 > > (path </> $"file_{i}.txt") +00:01:58 v #1263 > > +00:01:58 v #1264 > > do! Async.Sleep 1500 +00:01:58 v #1265 > > +00:01:58 v #1266 > > for i = 1 to n do +00:01:58 v #1267 > > do! SpiralFileSystem.delete_file_async (path </> $"file_{i}.txt") |> +00:01:58 v #1268 > > Async.Ignore +00:01:58 v #1269 > > +00:01:58 v #1270 > > do! Async.Sleep 1500 +00:01:58 v #1271 > > } +00:01:58 v #1272 > > +00:01:58 v #1273 > > let inline run () = +00:01:58 v #1274 > > let events = +00:01:58 v #1275 > > testEventsRaw watchDirectory write +00:01:58 v #1276 > > |> List.map (function +00:01:58 v #1277 > > | FileSystemChange.Changed (path, Some content) -> +00:01:58 v #1278 > > FileSystemChange.Changed (path, content |> Seq.distinct |> +00:01:58 v #1279 > > Seq.map string |> SpiralSm.concat "" |> Some) +00:01:58 v #1280 > > | FileSystemChange.Created (path, Some content) -> +00:01:58 v #1281 > > FileSystemChange.Created (path, content |> Seq.distinct |> +00:01:58 v #1282 > > Seq.map string |> SpiralSm.concat "" |> Some) +00:01:58 v #1283 > > | FileSystemChange.Renamed (oldPath, (newPath, Some content)) -> +00:01:58 v #1284 > > FileSystemChange.Renamed ( +00:01:58 v #1285 > > oldPath, +00:01:58 v #1286 > > (newPath, content |> Seq.distinct |> Seq.map string |> +00:01:58 v #1287 > > SpiralSm.concat "" |> Some) +00:01:58 v #1288 > > ) +00:01:58 v #1289 > > | event -> event +00:01:58 v #1290 > > ) +00:01:58 v #1291 > > +00:01:58 v #1292 > > events +00:01:58 v #1293 > > |> _sequenceEqual [[ +00:01:58 v #1294 > > FileSystemChange.Created ("file1.txt", Some "1a") +00:01:58 v #1295 > > FileSystemChange.Changed ("file1.txt", Some "1a") +00:01:58 v #1296 > > FileSystemChange.Created ("file2.txt", Some "2a") +00:01:58 v #1297 > > FileSystemChange.Changed ("file2.txt", Some "2a") +00:01:58 v #1298 > > +00:01:58 v #1299 > > FileSystemChange.Changed ("file1.txt", Some "1b") +00:01:58 v #1300 > > FileSystemChange.Changed ("file2.txt", Some "2b") +00:01:58 v #1301 > > +00:01:58 v #1302 > > FileSystemChange.Renamed ("file1.txt", ("file_1.txt", Some "1b")) +00:01:58 v #1303 > > FileSystemChange.Renamed ("file2.txt", ("file_2.txt", Some "2b")) +00:01:58 v #1304 > > +00:01:58 v #1305 > > FileSystemChange.Changed ("file_1.txt", Some "1c") +00:01:58 v #1306 > > FileSystemChange.Changed ("file_2.txt", Some "2c") +00:01:58 v #1307 > > +00:01:58 v #1308 > > FileSystemChange.Deleted "file_1.txt" +00:01:58 v #1309 > > FileSystemChange.Deleted "file_2.txt" +00:01:58 v #1310 > > ]] +00:01:58 v #1311 > > +00:01:58 v #1312 > > run +00:01:58 v #1313 > > |> retry_fn 5 +00:01:58 v #1314 > > |> _assertEqual (Some ()) +00:02:08 v #1315 > > +00:02:08 v #1316 > > ── [ 10.55s - stdout ] ───────────────────────────────────────────────────────── +00:02:08 v #1317 > > │ Some () +00:02:08 v #1318 > > │ +00:02:08 v #1319 > > │ 00:00:16 d #3 FileSystem.watchWithFilter / Disposing +00:02:08 v #1320 > > watch stream / filter: FileName, LastWrite +00:02:08 v #1321 > > │ 00:00:16 d #4 FileSystem.testEventsRaw / eventsLog: +00:02:08 v #1322 > > │ 0 / 638732381988701302 / Created +00:02:08 v #1323 > > │ ("file1.txt", +00:02:08 v #1324 > > │ ...11111111111111111111111111111111111111111111111a") +00:02:08 v #1325 > > │ 1 / 638732381988701303 / Changed +00:02:08 v #1326 > > │ ("file1.txt", +00:02:08 v #1327 > > │ ...11111111111111111111111111111111111111111111111a") +00:02:08 v #1328 > > │ 69249 / 638732381988770552 / Changed +00:02:08 v #1329 > > │ +00:02:08 v #1330 > > ("file1.txt...11111111111111111111111111111111111111111111111a") +00:02:08 v #1331 > > │ 9668 / 638732381988780220 / Created +00:02:08 v #1332 > > │ +00:02:08 v #1333 > > ("file2.txt"...22222222222222222222222222222222222222222222222a") +00:02:08 v #1334 > > │ 1 / 638732381988780221 / Changed +00:02:08 v #1335 > > │ ("file2.txt", +00:02:08 v #1336 > > │ ...22222222222222222222222222222222222222222222222a") +00:02:08 v #1337 > > │ 85334 / 638732381988865555 / Changed +00:02:08 v #1338 > > │ +00:02:08 v #1339 > > ("file2.txt...22222222222222222222222222222222222222222222222a") +00:02:08 v #1340 > > │ 14955620 / 638732382003821175 / Changed +00:02:08 v #1341 > > │ +00:02:08 v #1342 > > ("file1....11111111111111111111111111111111111111111111111b") +00:02:08 v #1343 > > │ 47302 / 638732382003868477 / Changed +00:02:08 v #1344 > > │ +00:02:08 v #1345 > > ("file1.txt...11111111111111111111111111111111111111111111111b") +00:02:08 v #1346 > > │ 11204 / 638732382003879681 / Changed +00:02:08 v #1347 > > │ +00:02:08 v #1348 > > ("file2.txt...22222222222222222222222222222222222222222222222b") +00:02:08 v #1349 > > │ 37166 / 638732382003916847 / Changed +00:02:08 v #1350 > > │ +00:02:08 v #1351 > > ("file2.txt...22222222222222222222222222222222222222222222222b") +00:02:08 v #1352 > > │ 14974036 / 638732382018890883 / Renamed +00:02:08 v #1353 > > │ +00:02:08 v #1354 > > ("file1....1111111111111111111111111111111111111111111111b")) +00:02:08 v #1355 > > │ 3754 / 638732382018894637 / Renamed +00:02:08 v #1356 > > │ +00:02:08 v #1357 > > ("file2.txt"...2222222222222222222222222222222222222222222222b")) +00:02:08 v #1358 > > │ 15043295 / 638732382033937932 / Changed +00:02:08 v #1359 > > │ +00:02:08 v #1360 > > ("file_1...11111111111111111111111111111111111111111111111c") +00:02:08 v #1361 > > │ 58380 / 638732382033996312 / Changed +00:02:08 v #1362 > > │ +00:02:08 v #1363 > > ("file_1.tx...11111111111111111111111111111111111111111111111c") +00:02:08 v #1364 > > │ 25047 / 638732382034021359 / Changed +00:02:08 v #1365 > > │ +00:02:08 v #1366 > > ("file_2.tx...22222222222222222222222222222222222222222222222c") +00:02:08 v #1367 > > │ 67638 / 638732382034088997 / Changed +00:02:08 v #1368 > > │ +00:02:08 v #1369 > > ("file_2.tx...22222222222222222222222222222222222222222222222c") +00:02:08 v #1370 > > │ 15204020 / 638732382049293017 / Deleted "file_1.txt" +00:02:08 v #1371 > > │ 6504 / 638732382049299521 / Deleted "file_2.txt" +00:02:08 v #1372 > > │ [Created ("file1.txt", Some "1a"); Changed ("file1.txt", Some +00:02:08 v #1373 > > "1a"); Created ("file2.txt", Some "2a"); +00:02:08 v #1374 > > │ Changed ("file2.txt", Some "2a"); Changed ("file1.txt", Some +00:02:08 v #1375 > > "1b"); Changed ("file2.txt", Some "2b"); +00:02:08 v #1376 > > │ Renamed ("file1.txt", ("file_1.txt", Some "1b")); Renamed +00:02:08 v #1377 > > ("file2.txt", ("file_2.txt", Some "2b")); +00:02:08 v #1378 > > │ Changed ("file_1.txt", Some "1c"); Changed ("file_2.txt", +00:02:08 v #1379 > > Some "2c"); Deleted "file_1.txt"; Deleted "file_2.txt"] +00:02:08 v #1380 > > │ +00:02:08 v #1381 > > │ Some () +00:02:08 v #1382 > > │ +00:02:08 v #1383 > > │ +00:02:08 v #1384 > > +00:02:08 v #1385 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:02:08 v #1386 > > │ ### testEventsSorted (test) +00:02:08 v #1387 > > +00:02:08 v #1388 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:02:08 v #1389 > > //// test +00:02:08 v #1390 > > +00:02:08 v #1391 > > let inline sortEvent event = +00:02:08 v #1392 > > match event with +00:02:08 v #1393 > > | FileSystemChange.Failure _ -> 0 +00:02:08 v #1394 > > | FileSystemChange.Created _ -> 1 +00:02:08 v #1395 > > | FileSystemChange.Changed _ -> 2 +00:02:08 v #1396 > > | FileSystemChange.Renamed (_oldPath, _) -> 3 +00:02:08 v #1397 > > | FileSystemChange.Deleted _ -> 4 +00:02:08 v #1398 > > +00:02:08 v #1399 > > let inline formatEvents events = +00:02:08 v #1400 > > events +00:02:08 v #1401 > > |> Seq.toList +00:02:08 v #1402 > > |> List.sortBy (snd >> sortEvent) +00:02:08 v #1403 > > |> List.choose (fun (ticks, event) -> +00:02:08 v #1404 > > match event with +00:02:08 v #1405 > > | FileSystemChange.Failure _ -> +00:02:08 v #1406 > > None +00:02:08 v #1407 > > | FileSystemChange.Changed (path, _) -> +00:02:08 v #1408 > > Some (ticks, System.IO.Path.GetFileName path, nameof +00:02:08 v #1409 > > FileSystemChangeType.Changed) +00:02:08 v #1410 > > | FileSystemChange.Created (path, _) -> +00:02:08 v #1411 > > Some (ticks, System.IO.Path.GetFileName path, nameof +00:02:08 v #1412 > > FileSystemChangeType.Created) +00:02:08 v #1413 > > | FileSystemChange.Deleted path -> +00:02:08 v #1414 > > Some (ticks, System.IO.Path.GetFileName path, nameof +00:02:08 v #1415 > > FileSystemChangeType.Deleted) +00:02:08 v #1416 > > | FileSystemChange.Renamed (_oldPath, (path, _)) -> +00:02:08 v #1417 > > Some (ticks, System.IO.Path.GetFileName path, nameof +00:02:08 v #1418 > > FileSystemChangeType.Renamed) +00:02:08 v #1419 > > ) +00:02:08 v #1420 > > |> List.sortBy (fun (_, path, _) -> path) +00:02:08 v #1421 > > |> List.distinctBy (fun (_, path, event) -> path, event) +00:02:08 v #1422 > > +00:02:08 v #1423 > > let inline testEventsSorted +00:02:08 v #1424 > > (watchFn : string -> FSharp.Control.AsyncSeq<int64 * FileSystemChange> * +00:02:08 v #1425 > > IDisposable) +00:02:08 v #1426 > > write +00:02:08 v #1427 > > = +00:02:08 v #1428 > > let struct (tempDir, tempDisposable) = +00:02:08 v #1429 > > "FileSystem.testEventsSorted" +00:02:08 v #1430 > > |> SpiralCrypto.hash_text +00:02:08 v #1431 > > |> SpiralFileSystem.create_temp_dir' +00:02:08 v #1432 > > let stream, disposable = watchFn tempDir +00:02:08 v #1433 > > +00:02:08 v #1434 > > let events = System.Collections.Concurrent.ConcurrentBag () +00:02:08 v #1435 > > +00:02:08 v #1436 > > let inline iter () = +00:02:08 v #1437 > > stream +00:02:08 v #1438 > > |> FSharp.Control.AsyncSeq.iterAsyncParallel (fun event -> async { +00:02:08 v #1439 > > events.Add event }) +00:02:08 v #1440 > > +00:02:08 v #1441 > > let run = async { +00:02:08 v #1442 > > let! _ = iter () |> Async.StartChild +00:02:08 v #1443 > > do! Async.Sleep 250 +00:02:08 v #1444 > > return! write tempDir +00:02:08 v #1445 > > } +00:02:08 v #1446 > > +00:02:08 v #1447 > > try +00:02:08 v #1448 > > run +00:02:08 v #1449 > > |> Async.runWithTimeout 5000 +00:02:08 v #1450 > > |> _assertEqual (Some ()) +00:02:08 v #1451 > > finally +00:02:08 v #1452 > > disposable.Dispose () +00:02:08 v #1453 > > tempDisposable.Dispose () +00:02:08 v #1454 > > +00:02:08 v #1455 > > let events = formatEvents events +00:02:08 v #1456 > > +00:02:08 v #1457 > > let eventMap = +00:02:08 v #1458 > > events +00:02:08 v #1459 > > |> List.map (fun (ticks, path, event) -> path, (event, ticks)) +00:02:08 v #1460 > > |> List.groupBy fst +00:02:08 v #1461 > > |> List.map (fun (path, events) -> +00:02:08 v #1462 > > let event, _ticks = +00:02:08 v #1463 > > events +00:02:08 v #1464 > > |> List.map snd +00:02:08 v #1465 > > |> List.sortByDescending snd +00:02:08 v #1466 > > |> List.head +00:02:08 v #1467 > > +00:02:08 v #1468 > > path, event +00:02:08 v #1469 > > ) +00:02:08 v #1470 > > |> Map.ofList +00:02:08 v #1471 > > +00:02:08 v #1472 > > let eventList = +00:02:08 v #1473 > > events +00:02:08 v #1474 > > |> List.map (fun (_ticks, path, event) -> path, event) +00:02:08 v #1475 > > +00:02:08 v #1476 > > eventMap, eventList +00:02:09 v #1477 > > +00:02:09 v #1478 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:02:09 v #1479 > > │ #### create and delete (test) +00:02:09 v #1480 > > +00:02:09 v #1481 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:02:09 v #1482 > > //// test +00:02:09 v #1483 > > +00:02:09 v #1484 > > let inline write path = async { +00:02:09 v #1485 > > let n = 3 +00:02:09 v #1486 > > +00:02:09 v #1487 > > for i = 1 to n do +00:02:09 v #1488 > > do! $"{i}" |> SpiralFileSystem.write_all_text_async (path </> +00:02:09 v #1489 > > $"file{i}.txt") +00:02:09 v #1490 > > +00:02:09 v #1491 > > for i = 1 to n do +00:02:09 v #1492 > > do! SpiralFileSystem.delete_file_async (path </> $"file{i}.txt") |> +00:02:09 v #1493 > > Async.Ignore +00:02:09 v #1494 > > +00:02:09 v #1495 > > do! Async.Sleep 150 +00:02:09 v #1496 > > } +00:02:09 v #1497 > > +00:02:09 v #1498 > > let inline run () = +00:02:09 v #1499 > > let eventMap, eventList = testEventsSorted (watchDirectory (fun _ -> false)) +00:02:09 v #1500 > > write +00:02:09 v #1501 > > +00:02:09 v #1502 > > [[ +00:02:09 v #1503 > > "file1.txt", nameof FileSystemChangeType.Created +00:02:09 v #1504 > > "file1.txt", nameof FileSystemChangeType.Changed +00:02:09 v #1505 > > "file1.txt", nameof FileSystemChangeType.Deleted +00:02:09 v #1506 > > +00:02:09 v #1507 > > "file2.txt", nameof FileSystemChangeType.Created +00:02:09 v #1508 > > "file2.txt", nameof FileSystemChangeType.Changed +00:02:09 v #1509 > > "file2.txt", nameof FileSystemChangeType.Deleted +00:02:09 v #1510 > > +00:02:09 v #1511 > > "file3.txt", nameof FileSystemChangeType.Created +00:02:09 v #1512 > > "file3.txt", nameof FileSystemChangeType.Changed +00:02:09 v #1513 > > "file3.txt", nameof FileSystemChangeType.Deleted +00:02:09 v #1514 > > ]] +00:02:09 v #1515 > > |> _sequenceEqual eventList +00:02:09 v #1516 > > +00:02:09 v #1517 > > [[ +00:02:09 v #1518 > > "file1.txt", nameof FileSystemChangeType.Deleted +00:02:09 v #1519 > > "file2.txt", nameof FileSystemChangeType.Deleted +00:02:09 v #1520 > > "file3.txt", nameof FileSystemChangeType.Deleted +00:02:09 v #1521 > > ]] +00:02:09 v #1522 > > |> Map.ofList +00:02:09 v #1523 > > |> _sequenceEqual eventMap +00:02:09 v #1524 > > +00:02:09 v #1525 > > run +00:02:09 v #1526 > > |> retry_fn 3 +00:02:09 v #1527 > > |> _assertEqual (Some ()) +00:02:11 v #1528 > > +00:02:11 v #1529 > > ── [ 1.98s - stdout ] ────────────────────────────────────────────────────────── +00:02:11 v #1530 > > │ Some () +00:02:11 v #1531 > > │ +00:02:11 v #1532 > > │ 00:00:18 d #5 FileSystem.watchWithFilter / Disposing +00:02:11 v #1533 > > watch stream / filter: FileName, LastWrite +00:02:11 v #1534 > > │ [("file1.txt", "Created"); ("file1.txt", "Changed"); +00:02:11 v #1535 > > ("file1.txt", "Deleted"); ("file2.txt", "Created"); +00:02:11 v #1536 > > │ ("file2.txt", "Changed"); ("file2.txt", "Deleted"); +00:02:11 v #1537 > > ("file3.txt", "Created"); ("file3.txt", "Changed"); +00:02:11 v #1538 > > │ ("file3.txt", "Deleted")] +00:02:11 v #1539 > > │ +00:02:11 v #1540 > > │ map [("file1.txt", "Deleted"); ("file2.txt", "Deleted"); +00:02:11 v #1541 > > ("file3.txt", "Deleted")] +00:02:11 v #1542 > > │ +00:02:11 v #1543 > > │ Some () +00:02:11 v #1544 > > │ +00:02:11 v #1545 > > │ +00:02:11 v #1546 > > +00:02:11 v #1547 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:02:11 v #1548 > > │ #### change (test) +00:02:11 v #1549 > > +00:02:11 v #1550 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:02:11 v #1551 > > //// test +00:02:11 v #1552 > > +00:02:11 v #1553 > > let inline write path = async { +00:02:11 v #1554 > > let n = 2 +00:02:11 v #1555 > > +00:02:11 v #1556 > > for i = 1 to n do +00:02:11 v #1557 > > do! $"{i}" |> SpiralFileSystem.write_all_text_async (path </> +00:02:11 v #1558 > > $"file{i}.txt") +00:02:11 v #1559 > > +00:02:11 v #1560 > > for i = 1 to n do +00:02:11 v #1561 > > do! "" |> SpiralFileSystem.write_all_text_async (path </> +00:02:11 v #1562 > > $"file{i}.txt") +00:02:11 v #1563 > > +00:02:11 v #1564 > > for i = 1 to n do +00:02:11 v #1565 > > do! SpiralFileSystem.delete_file_async (path </> $"file{i}.txt") |> +00:02:11 v #1566 > > Async.Ignore +00:02:11 v #1567 > > +00:02:11 v #1568 > > do! Async.Sleep 150 +00:02:11 v #1569 > > } +00:02:11 v #1570 > > +00:02:11 v #1571 > > let inline run () = +00:02:11 v #1572 > > let eventMap, eventList = testEventsSorted (watchDirectory (fun _ -> false)) +00:02:11 v #1573 > > write +00:02:11 v #1574 > > +00:02:11 v #1575 > > [[ +00:02:11 v #1576 > > "file1.txt", nameof FileSystemChangeType.Created +00:02:11 v #1577 > > "file1.txt", nameof FileSystemChangeType.Changed +00:02:11 v #1578 > > "file1.txt", nameof FileSystemChangeType.Deleted +00:02:11 v #1579 > > +00:02:11 v #1580 > > "file2.txt", nameof FileSystemChangeType.Created +00:02:11 v #1581 > > "file2.txt", nameof FileSystemChangeType.Changed +00:02:11 v #1582 > > "file2.txt", nameof FileSystemChangeType.Deleted +00:02:11 v #1583 > > ]] +00:02:11 v #1584 > > |> _sequenceEqual eventList +00:02:11 v #1585 > > +00:02:11 v #1586 > > [[ +00:02:11 v #1587 > > "file1.txt", nameof FileSystemChangeType.Deleted +00:02:11 v #1588 > > "file2.txt", nameof FileSystemChangeType.Deleted +00:02:11 v #1589 > > ]] +00:02:11 v #1590 > > |> Map.ofList +00:02:11 v #1591 > > |> _sequenceEqual eventMap +00:02:11 v #1592 > > +00:02:11 v #1593 > > run +00:02:11 v #1594 > > |> retry_fn 3 +00:02:11 v #1595 > > |> _assertEqual (Some ()) +00:02:13 v #1596 > > +00:02:13 v #1597 > > ── [ 2.25s - stdout ] ────────────────────────────────────────────────────────── +00:02:13 v #1598 > > │ Some () +00:02:13 v #1599 > > │ +00:02:13 v #1600 > > │ 00:00:21 d #6 FileSystem.watchWithFilter / Disposing +00:02:13 v #1601 > > watch stream / filter: FileName, LastWrite +00:02:13 v #1602 > > │ [("file1.txt", "Created"); ("file1.txt", "Changed"); +00:02:13 v #1603 > > ("file1.txt", "Deleted"); ("file2.txt", "Created"); +00:02:13 v #1604 > > │ ("file2.txt", "Changed"); ("file2.txt", "Deleted")] +00:02:13 v #1605 > > │ +00:02:13 v #1606 > > │ map [("file1.txt", "Deleted"); ("file2.txt", "Deleted")] +00:02:13 v #1607 > > │ +00:02:13 v #1608 > > │ Some () +00:02:13 v #1609 > > │ +00:02:13 v #1610 > > │ +00:02:13 v #1611 > > +00:02:13 v #1612 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:02:13 v #1613 > > │ #### rename (test) +00:02:13 v #1614 > > +00:02:13 v #1615 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:02:13 v #1616 > > //// test +00:02:13 v #1617 > > +00:02:13 v #1618 > > let inline write path = async { +00:02:13 v #1619 > > let n = 2 +00:02:13 v #1620 > > +00:02:13 v #1621 > > for i = 1 to n do +00:02:13 v #1622 > > do! $"{i}" |> SpiralFileSystem.write_all_text_async (path </> +00:02:13 v #1623 > > $"file{i}.txt") +00:02:13 v #1624 > > +00:02:13 v #1625 > > for i = 1 to n do +00:02:13 v #1626 > > do! path </> $"file{i}.txt" |> SpiralFileSystem.move_file_async (path +00:02:13 v #1627 > > </> $"file_{i}.txt") |> Async.Ignore +00:02:13 v #1628 > > +00:02:13 v #1629 > > for i = 1 to n do +00:02:13 v #1630 > > do! SpiralFileSystem.delete_file_async (path </> $"file_{i}.txt") |> +00:02:13 v #1631 > > Async.Ignore +00:02:13 v #1632 > > +00:02:13 v #1633 > > do! Async.Sleep 150 +00:02:13 v #1634 > > } +00:02:13 v #1635 > > +00:02:13 v #1636 > > let inline run () = +00:02:13 v #1637 > > let eventMap, eventList = testEventsSorted (watchDirectory (fun _ -> false)) +00:02:13 v #1638 > > write +00:02:13 v #1639 > > +00:02:13 v #1640 > > [[ +00:02:13 v #1641 > > "file1.txt", nameof FileSystemChangeType.Created +00:02:13 v #1642 > > "file1.txt", nameof FileSystemChangeType.Changed +00:02:13 v #1643 > > "file2.txt", nameof FileSystemChangeType.Created +00:02:13 v #1644 > > "file2.txt", nameof FileSystemChangeType.Changed +00:02:13 v #1645 > > +00:02:13 v #1646 > > "file_1.txt", nameof FileSystemChangeType.Renamed +00:02:13 v #1647 > > "file_1.txt", nameof FileSystemChangeType.Deleted +00:02:13 v #1648 > > +00:02:13 v #1649 > > "file_2.txt", nameof FileSystemChangeType.Renamed +00:02:13 v #1650 > > "file_2.txt", nameof FileSystemChangeType.Deleted +00:02:13 v #1651 > > ]] +00:02:13 v #1652 > > |> _sequenceEqual eventList +00:02:13 v #1653 > > +00:02:13 v #1654 > > [[ +00:02:13 v #1655 > > "file1.txt", nameof FileSystemChangeType.Changed +00:02:13 v #1656 > > "file2.txt", nameof FileSystemChangeType.Changed +00:02:13 v #1657 > > "file_1.txt", nameof FileSystemChangeType.Deleted +00:02:13 v #1658 > > "file_2.txt", nameof FileSystemChangeType.Deleted +00:02:13 v #1659 > > ]] +00:02:13 v #1660 > > |> Map.ofList +00:02:13 v #1661 > > |> _sequenceEqual eventMap +00:02:13 v #1662 > > +00:02:13 v #1663 > > run +00:02:13 v #1664 > > |> retry_fn 3 +00:02:13 v #1665 > > |> _assertEqual (Some ()) +00:02:15 v #1666 > > +00:02:15 v #1667 > > ── [ 2.34s - stdout ] ────────────────────────────────────────────────────────── +00:02:15 v #1668 > > │ Some () +00:02:15 v #1669 > > │ +00:02:15 v #1670 > > │ 00:00:23 d #7 FileSystem.watchWithFilter / Disposing +00:02:15 v #1671 > > watch stream / filter: FileName, LastWrite +00:02:15 v #1672 > > │ [("file1.txt", "Created"); ("file1.txt", "Changed"); +00:02:15 v #1673 > > ("file2.txt", "Created"); ("file2.txt", "Changed"); +00:02:15 v #1674 > > │ ("file_1.txt", "Renamed"); ("file_1.txt", "Deleted"); +00:02:15 v #1675 > > ("file_2.txt", "Renamed"); ("file_2.txt", "Deleted")] +00:02:15 v #1676 > > │ +00:02:15 v #1677 > > │ map [("file1.txt", "Changed"); ("file2.txt", "Changed"); +00:02:15 v #1678 > > ("file_1.txt", "Deleted"); ("file_2.txt", "Deleted")] +00:02:15 v #1679 > > │ +00:02:15 v #1680 > > │ Some () +00:02:15 v #1681 > > │ +00:02:15 v #1682 > > │ +00:02:15 v #1683 > > +00:02:15 v #1684 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:02:15 v #1685 > > │ #### full (test) +00:02:15 v #1686 > > +00:02:15 v #1687 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:02:15 v #1688 > > //// test +00:02:15 v #1689 > > +00:02:15 v #1690 > > let inline write path = async { +00:02:15 v #1691 > > let n = 2 +00:02:15 v #1692 > > +00:02:15 v #1693 > > for i = 1 to n do +00:02:15 v #1694 > > do! $"{i}" |> SpiralFileSystem.write_all_text_async (path </> +00:02:15 v #1695 > > $"file{i}.txt") +00:02:15 v #1696 > > +00:02:15 v #1697 > > for i = 1 to n do +00:02:15 v #1698 > > do! "" |> SpiralFileSystem.write_all_text_async (path </> +00:02:15 v #1699 > > $"file{i}.txt") +00:02:15 v #1700 > > +00:02:15 v #1701 > > for i = 1 to n do +00:02:15 v #1702 > > do! path </> $"file{i}.txt" |> SpiralFileSystem.move_file_async (path +00:02:15 v #1703 > > </> $"file_{i}.txt") |> Async.Ignore +00:02:15 v #1704 > > +00:02:15 v #1705 > > for i = 1 to n do +00:02:15 v #1706 > > do! $"{i}" |> SpiralFileSystem.write_all_text_async (path </> +00:02:15 v #1707 > > $"file_{i}.txt") +00:02:15 v #1708 > > +00:02:15 v #1709 > > for i = 1 to n do +00:02:15 v #1710 > > do! SpiralFileSystem.delete_file_async (path </> $"file_{i}.txt") |> +00:02:15 v #1711 > > Async.Ignore +00:02:15 v #1712 > > +00:02:15 v #1713 > > do! Async.Sleep 150 +00:02:15 v #1714 > > } +00:02:15 v #1715 > > +00:02:15 v #1716 > > let inline run () = +00:02:15 v #1717 > > let eventMap, eventList = testEventsSorted (watchDirectory (fun _ -> false)) +00:02:15 v #1718 > > write +00:02:15 v #1719 > > +00:02:15 v #1720 > > [[ +00:02:15 v #1721 > > "file1.txt", nameof FileSystemChangeType.Created +00:02:15 v #1722 > > "file1.txt", nameof FileSystemChangeType.Changed +00:02:15 v #1723 > > "file2.txt", nameof FileSystemChangeType.Created +00:02:15 v #1724 > > "file2.txt", nameof FileSystemChangeType.Changed +00:02:15 v #1725 > > +00:02:15 v #1726 > > "file_1.txt", nameof FileSystemChangeType.Changed +00:02:15 v #1727 > > "file_1.txt", nameof FileSystemChangeType.Renamed +00:02:15 v #1728 > > "file_1.txt", nameof FileSystemChangeType.Deleted +00:02:15 v #1729 > > +00:02:15 v #1730 > > "file_2.txt", nameof FileSystemChangeType.Changed +00:02:15 v #1731 > > "file_2.txt", nameof FileSystemChangeType.Renamed +00:02:15 v #1732 > > "file_2.txt", nameof FileSystemChangeType.Deleted +00:02:15 v #1733 > > ]] +00:02:15 v #1734 > > |> _sequenceEqual eventList +00:02:15 v #1735 > > +00:02:15 v #1736 > > [[ +00:02:15 v #1737 > > "file1.txt", nameof FileSystemChangeType.Changed +00:02:15 v #1738 > > "file2.txt", nameof FileSystemChangeType.Changed +00:02:15 v #1739 > > "file_1.txt", nameof FileSystemChangeType.Deleted +00:02:15 v #1740 > > "file_2.txt", nameof FileSystemChangeType.Deleted +00:02:15 v #1741 > > ]] +00:02:15 v #1742 > > |> Map.ofList +00:02:15 v #1743 > > |> _sequenceEqual eventMap +00:02:15 v #1744 > > +00:02:15 v #1745 > > run +00:02:15 v #1746 > > |> retry_fn 3 +00:02:15 v #1747 > > |> _assertEqual (Some ()) +00:02:18 v #1748 > > +00:02:18 v #1749 > > ── [ 2.83s - stdout ] ────────────────────────────────────────────────────────── +00:02:18 v #1750 > > │ Some () +00:02:18 v #1751 > > │ +00:02:18 v #1752 > > │ 00:00:26 d #8 FileSystem.watchWithFilter / Disposing +00:02:18 v #1753 > > watch stream / filter: FileName, LastWrite +00:02:18 v #1754 > > │ [("file1.txt", "Created"); ("file1.txt", "Changed"); +00:02:18 v #1755 > > ("file2.txt", "Created"); ("file2.txt", "Changed"); +00:02:18 v #1756 > > │ ("file_1.txt", "Changed"); ("file_1.txt", "Renamed"); +00:02:18 v #1757 > > ("file_1.txt", "Deleted"); ("file_2.txt", "Changed"); +00:02:18 v #1758 > > │ ("file_2.txt", "Renamed"); ("file_2.txt", "Deleted")] +00:02:18 v #1759 > > │ +00:02:18 v #1760 > > │ map [("file1.txt", "Changed"); ("file2.txt", "Changed"); +00:02:18 v #1761 > > ("file_1.txt", "Deleted"); ("file_2.txt", "Deleted")] +00:02:18 v #1762 > > │ +00:02:18 v #1763 > > │ Some () +00:02:18 v #1764 > > │ +00:02:18 v #1765 > > │ +00:02:18 v #1766 > 00:00:45 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 30911 } +00:02:18 v #1767 > 00:00:45 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/lib/fsharp/FileSystem.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/lib/fsharp/FileSystem.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } +00:02:19 v #1768 > 00:00:46 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/lib/fsharp/FileSystem.dib.ipynb to html +00:02:19 v #1769 > 00:00:46 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. +00:02:19 v #1770 > 00:00:46 v #7 ! validate(nb) +00:02:20 v #1771 > 00:00:47 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 +00:02:20 v #1772 > 00:00:47 v #9 ! return _pygments_highlight( +00:02:21 v #1773 > 00:00:48 v #10 ! [NbConvertApp] Writing 383448 bytes to c:\home\git\polyglot\lib\fsharp\FileSystem.dib.html +00:02:21 v #1774 > 00:00:48 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 862 } +00:02:21 v #1775 > 00:00:48 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 862 } +00:02:21 v #1776 > 00:00:48 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/lib/fsharp/FileSystem.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/lib/fsharp/FileSystem.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } +00:02:21 v #1777 > 00:00:48 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } +00:02:21 v #1778 > 00:00:48 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } +00:02:21 v #1779 > 00:00:48 d #16 spiral.run / dib / { exit_code = 0; result_length = 31832 } +00:02:21 d #1780 runtime.execute_with_options_async / { exit_code = 0; output_length = 36191 } +00:02:21 d #5 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path FileSystem.dib --retries 3 +00:02:21 d #1781 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path Runtime.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path Runtime.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } +00:02:21 v #1782 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "Runtime.dib", "--retries", "3"])) } +00:02:21 v #1783 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/lib/fsharp/Runtime.dib", "--output-path", "c:/home/git/polyglot/lib/fsharp/Runtime.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/lib/fsharp/Runtime.dib" --output-path "c:/home/git/polyglot/lib/fsharp/Runtime.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } +00:02:23 v #1784 > > +00:02:23 v #1785 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:02:23 v #1786 > > │ # Runtime (Polyglot) +00:02:27 v #1787 > > +00:02:27 v #1788 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:02:27 v #1789 > > #r +00:02:27 v #1790 > > @"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan +00:02:27 v #1791 > > dard2.1/FSharp.Control.AsyncSeq.dll" +00:02:27 v #1792 > > #r +00:02:27 v #1793 > > @"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6. +00:02:27 v #1794 > > 0/System.Reactive.dll" +00:02:27 v #1795 > > #r +00:02:27 v #1796 > > @"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib +00:02:27 v #1797 > > netstandard2.0/System.Reactive.Linq.dll" +00:02:27 v #1798 > > #r +00:02:27 v #1799 > > @"../../../../../../../.nuget/packages/argu/6.2.4/lib/netstandard2.0/Argu.dll" +00:02:42 v #1800 > > +00:02:42 v #1801 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:02:42 v #1802 > > #if !INTERACTIVE +00:02:42 v #1803 > > open Lib +00:02:42 v #1804 > > #endif +00:02:42 v #1805 > > +00:02:42 v #1806 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:02:42 v #1807 > > open Common +00:02:42 v #1808 > > +00:02:42 v #1809 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:02:42 v #1810 > > //// test +00:02:42 v #1811 > > +00:02:42 v #1812 > > open SpiralFileSystem.Operators +00:02:42 v #1813 > > +00:02:42 v #1814 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:02:42 v #1815 > > │ ## parseArgs +00:02:42 v #1816 > > +00:02:42 v #1817 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:02:42 v #1818 > > let inline parseArgs<'T when 'T :> Argu.IArgParserTemplate> args = +00:02:42 v #1819 > > let assemblyName = +00:02:42 v #1820 > > System.Reflection.Assembly.GetEntryAssembly().GetName().Name +00:02:42 v #1821 > > let errorHandler : Argu.IExiter = +00:02:42 v #1822 > > if [[ "Microsoft.DotNet.Interactive.App"; "dotnet-repl" ]] |> +00:02:42 v #1823 > > List.contains assemblyName +00:02:42 v #1824 > > then Argu.ExceptionExiter () +00:02:42 v #1825 > > else Argu.ProcessExiter (function Argu.ErrorCode.HelpText -> None | _ -> +00:02:42 v #1826 > > Some System.ConsoleColor.Red) +00:02:42 v #1827 > > +00:02:42 v #1828 > > let parser = +00:02:42 v #1829 > > Argu.ArgumentParser.Create<'T> ( +00:02:42 v #1830 > > programName = $"{assemblyName}{SpiralPlatform.get_executable_suffix +00:02:42 v #1831 > > ()}", +00:02:42 v #1832 > > errorHandler = errorHandler +00:02:42 v #1833 > > ) +00:02:42 v #1834 > > +00:02:42 v #1835 > > parser.ParseCommandLine args +00:02:42 v #1836 > > +00:02:42 v #1837 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:02:42 v #1838 > > //// test +00:02:42 v #1839 > > +00:02:42 v #1840 > > [[<RequireQualifiedAccess>]] +00:02:42 v #1841 > > type Arguments = +00:02:42 v #1842 > > | [[<Argu.ArguAttributes.MainCommand; Argu.ArguAttributes.ExactlyOnce; +00:02:42 v #1843 > > Argu.ArguAttributes.Last>]] +00:02:42 v #1844 > > Paths of paths : string list +00:02:42 v #1845 > > +00:02:42 v #1846 > > interface Argu.IArgParserTemplate with +00:02:42 v #1847 > > member s.Usage = +00:02:42 v #1848 > > match s with +00:02:42 v #1849 > > | Paths _ -> nameof Paths +00:02:42 v #1850 > > +00:02:42 v #1851 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:02:42 v #1852 > > //// test +00:02:42 v #1853 > > +00:02:42 v #1854 > > Argu.ArgumentParser.Create<Arguments>().PrintUsage () +00:02:42 v #1855 > > +00:02:42 v #1856 > > ── [ 114.25ms - return value ] ───────────────────────────────────────────────── +00:02:42 v #1857 > > │ "USAGE: dotnet-repl [--help] <paths>... +00:02:42 v #1858 > > │ +00:02:42 v #1859 > > │ PATHS: +00:02:42 v #1860 > > │ +00:02:42 v #1861 > > │ <paths>... Paths +00:02:42 v #1862 > > │ +00:02:42 v #1863 > > │ OPTIONS: +00:02:42 v #1864 > > │ +00:02:42 v #1865 > > │ --help display this list of options. +00:02:42 v #1866 > > │ " +00:02:42 v #1867 > > │ +00:02:42 v #1868 > > +00:02:42 v #1869 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:02:42 v #1870 > > //// test +00:02:42 v #1871 > > +00:02:42 v #1872 > > fun () -> parseArgs<Arguments> [[||]] |> ignore +00:02:42 v #1873 > > |> _throwsC (fun ex _ -> +00:02:42 v #1874 > > SpiralSm.format_exception ex +00:02:42 v #1875 > > |> _stringContains "Argu.ArguParseException: ERROR: missing parameter +00:02:42 v #1876 > > '<paths>...'." +00:02:42 v #1877 > > ) +00:02:42 v #1878 > > +00:02:42 v #1879 > > ── [ 67.85ms - stdout ] ──────────────────────────────────────────────────────── +00:02:42 v #1880 > > │ <fun:it@3-3> +00:02:42 v #1881 > > │ +00:02:42 v #1882 > > │ "Argu.ArguParseException: ERROR: missing parameter +00:02:42 v #1883 > > '<paths>...'. +00:02:42 v #1884 > > │ USAGE: dotnet-repl.exe [--help] <paths>... +00:02:42 v #1885 > > │ +00:02:42 v #1886 > > │ PATHS: +00:02:42 v #1887 > > │ +00:02:42 v #1888 > > │ <paths>... Paths +00:02:42 v #1889 > > │ +00:02:42 v #1890 > > │ OPTIONS: +00:02:42 v #1891 > > │ +00:02:42 v #1892 > > │ --help display this list of options. +00:02:42 v #1893 > > │ " +00:02:42 v #1894 > > │ +00:02:42 v #1895 > > │ +00:02:42 v #1896 > > +00:02:42 v #1897 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:02:42 v #1898 > > let inline parseAllArgs<'T when 'T :> Argu.IArgParserTemplate> args = +00:02:42 v #1899 > > args +00:02:42 v #1900 > > |> parseArgs<'T> +00:02:42 v #1901 > > |> fun results -> results.GetAllResults () +00:02:42 v #1902 > > +00:02:42 v #1903 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:02:42 v #1904 > > //// test +00:02:42 v #1905 > > +00:02:42 v #1906 > > [[<RequireQualifiedAccess>]] +00:02:42 v #1907 > > type Arguments = +00:02:42 v #1908 > > | [[<Argu.ArguAttributes.MainCommand; Argu.ArguAttributes.ExactlyOnce; +00:02:42 v #1909 > > Argu.ArguAttributes.Last>]] +00:02:42 v #1910 > > Paths of paths : string list +00:02:42 v #1911 > > +00:02:42 v #1912 > > interface Argu.IArgParserTemplate with +00:02:42 v #1913 > > member s.Usage = +00:02:42 v #1914 > > match s with +00:02:42 v #1915 > > | Paths _ -> nameof Paths +00:02:42 v #1916 > > +00:02:42 v #1917 > > parseAllArgs<Arguments> [[| "a b"; "c" |]] +00:02:42 v #1918 > > |> _assertEqual [[ Arguments.Paths [[ "a b"; "c" ]] ]] +00:02:42 v #1919 > > +00:02:42 v #1920 > > ── [ 92.17ms - stdout ] ──────────────────────────────────────────────────────── +00:02:42 v #1921 > > │ [Paths ["a b"; "c"]] +00:02:42 v #1922 > > │ +00:02:42 v #1923 > > │ +00:02:42 v #1924 > > +00:02:42 v #1925 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:02:42 v #1926 > > let inline parseArgsMap<'T when 'T :> Argu.IArgParserTemplate> args = +00:02:42 v #1927 > > args +00:02:42 v #1928 > > |> parseAllArgs<'T> +00:02:42 v #1929 > > |> List.groupBy CommonFSharp.getUnionCaseName<'T> +00:02:42 v #1930 > > |> Map.ofList +00:02:42 v #1931 > > +00:02:42 v #1932 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:02:42 v #1933 > > //// test +00:02:42 v #1934 > > +00:02:42 v #1935 > > parseArgsMap<Arguments> [[| "a b"; "c" |]] +00:02:42 v #1936 > > |> _assertEqual ( +00:02:42 v #1937 > > [[ nameof Arguments.Paths, [[ Arguments.Paths [[ "a b"; "c" ]] ]] ]] +00:02:42 v #1938 > > |> Map.ofList +00:02:42 v #1939 > > ) +00:02:42 v #1940 > > +00:02:42 v #1941 > > ── [ 57.84ms - stdout ] ──────────────────────────────────────────────────────── +00:02:42 v #1942 > > │ map [("Paths", [Paths ["a b"; "c"]])] +00:02:42 v #1943 > > │ +00:02:42 v #1944 > > │ +00:02:42 v #1945 > 00:00:20 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 5457 } +00:02:42 v #1946 > 00:00:20 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/lib/fsharp/Runtime.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/lib/fsharp/Runtime.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } +00:02:44 v #1947 > 00:00:22 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/lib/fsharp/Runtime.dib.ipynb to html +00:02:44 v #1948 > 00:00:22 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. +00:02:44 v #1949 > 00:00:22 v #7 ! validate(nb) +00:02:44 v #1950 > 00:00:22 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 +00:02:44 v #1951 > 00:00:22 v #9 ! return _pygments_highlight( +00:02:44 v #1952 > 00:00:23 v #10 ! [NbConvertApp] Writing 292946 bytes to c:\home\git\polyglot\lib\fsharp\Runtime.dib.html +00:02:45 v #1953 > 00:00:23 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 856 } +00:02:45 v #1954 > 00:00:23 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 856 } +00:02:45 v #1955 > 00:00:23 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/lib/fsharp/Runtime.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/lib/fsharp/Runtime.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } +00:02:45 v #1956 > 00:00:23 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } +00:02:45 v #1957 > 00:00:23 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } +00:02:45 v #1958 > 00:00:23 d #16 spiral.run / dib / { exit_code = 0; result_length = 6372 } +00:02:45 d #1959 runtime.execute_with_options_async / { exit_code = 0; output_length = 9236 } +00:02:45 d #6 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path Runtime.dib --retries 3 00:00:00 d #1 writeDibCode / output: Fs / path: Async.dib -00:00:00 d #1 writeDibCode / output: Fs / path: CommonFSharp.dib -00:00:00 d #1 writeDibCode / output: Fs / path: Runtime.dib -00:00:00 d #1 writeDibCode / output: Fs / path: AsyncSeq.dib 00:00:00 d #1 writeDibCode / output: Fs / path: FileSystem.dib +00:00:00 d #1 writeDibCode / output: Fs / path: Runtime.dib 00:00:00 d #1 writeDibCode / output: Fs / path: Common.dib -00:00:00 d #2 parseDibCode / output: Fs / file: Runtime.dib +00:00:00 d #1 writeDibCode / output: Fs / path: AsyncSeq.dib +00:00:00 d #1 writeDibCode / output: Fs / path: CommonFSharp.dib +00:00:00 d #2 parseDibCode / output: Fs / file: CommonFSharp.dib +00:00:00 d #3 parseDibCode / output: Fs / file: Common.dib 00:00:00 d #3 parseDibCode / output: Fs / file: Async.dib -00:00:00 d #3 parseDibCode / output: Fs / file: CommonFSharp.dib -00:00:00 d #4 parseDibCode / output: Fs / file: FileSystem.dib -00:00:00 d #7 parseDibCode / output: Fs / file: Common.dib +00:00:00 d #5 parseDibCode / output: Fs / file: FileSystem.dib 00:00:00 d #5 parseDibCode / output: Fs / file: AsyncSeq.dib +00:00:00 d #5 parseDibCode / output: Fs / file: Runtime.dib
{ pwsh ../deps/spiral/apps/wasm/build.ps1 -fast 1 } | Invoke-Block
+{ pwsh ../deps/spiral/apps/wasm/build.ps1 -SkipFsx 1 } | Invoke-Block
00:00:00 d #1 writeDibCode / output: Spi / path: spiral_wasm.dib -00:00:00 d #2 parseDibCode / output: Spi / file: spiral_wasm.dib -00:00:00 v #1 async.run_with_timeout_async / { timeout = 180 } -00:00:00 d #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0 - ""C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 --default-int i32 --default-float f64"; options = { command = dotnet "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 --default-int i32 --default-float f64; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = Some <fun:compiler@87-4>; stdin = None; trace = true; working_directory = Some "C:\home\git\polyglot" } } -00:00:00 v #2 > 00:00:00 d #1 pwd: C:\home\git\polyglot -00:00:00 v #3 > 00:00:00 d #2 dllPath: C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release -00:00:00 v #4 > 00:00:00 d #3 targetDir: C:\home\git\polyglot\target/spiral_Eval -00:00:01 v #2 async.run_with_timeout_async / { timeout = 100 } -00:00:01 v #3 async.run_with_timeout_async / { timeout = 100 } -00:00:01 v #5 > Starting the Spiral Server. It is bound to: http://localhost:13805 -00:00:01 v #4 async.run_with_timeout_async / { timeout = 100 } -00:00:01 v #1 Supervisor.sendJson / port: 13805 / json: {"Ping":true} / result: -00:00:01 v #2 Supervisor.awaitCompiler / Ping / result: 'Some null' / port: 13805 / retry: 1 -00:00:01 v #6 > Server bound to: http://localhost:13805 -00:00:01 v #5 async.run_with_timeout_async / { timeout = 180 } -00:00:01 d #3 Supervisor.buildFile / takeWhileInclusive / path: spiral_wasm.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:02 d #4 Supervisor.buildFile / AsyncSeq.scan / path: spiral_wasm.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:02 d #5 Supervisor.buildFile / takeWhileInclusive / path: spiral_wasm.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:02 v #6 Supervisor.sendJson / port: 13805 / json: {"FileOpen":{"spiText":"/// # spiral_wasm\nopen rust.rust_operators\nopen rust\nopen sm\u0027_operat... main args = !main args\u0027 : ()\n","uri":"file:///c:/home/git/spiral/apps/wasm/spiral_wasm.spi"}} / result: -00:00:02 v #7 Supervisor.sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/spiral/apps/wasm/spiral_wasm.spi"}} / result: -00:00:02 d #8 Supervisor.buildFile / AsyncSeq.scan / path: spiral_wasm.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:02 d #9 Supervisor.buildFile / takeWhileInclusive / path: spiral_wasm.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:03 d #10 Supervisor.buildFile / AsyncSeq.scan / path: spiral_wasm.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:03 d #11 Supervisor.buildFile / takeWhileInclusive / path: spiral_wasm.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:03 d #12 Supervisor.buildFile / AsyncSeq.scan / path: spiral_wasm.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:03 d #13 Supervisor.buildFile / takeWhileInclusive / path: spiral_wasm.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:04 d #14 Supervisor.buildFile / AsyncSeq.scan / path: spiral_wasm.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:04 d #15 Supervisor.buildFile / takeWhileInclusive / path: spiral_wasm.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:04 d #16 Supervisor.buildFile / AsyncSeq.scan / path: spiral_wasm.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:04 d #17 Supervisor.buildFile / takeWhileInclusive / path: spiral_wasm.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:05 d #18 Supervisor.buildFile / AsyncSeq.scan / path: spiral_wasm.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:05 d #19 Supervisor.buildFile / takeWhileInclusive / path: spiral_wasm.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:05 d #20 Supervisor.buildFile / AsyncSeq.scan / path: spiral_wasm.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:05 d #21 Supervisor.buildFile / takeWhileInclusive / path: spiral_wasm.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:06 d #22 Supervisor.buildFile / AsyncSeq.scan / path: spiral_wasm.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:06 d #23 Supervisor.buildFile / takeWhileInclusive / path: spiral_wasm.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:06 d #24 Supervisor.buildFile / AsyncSeq.scan / path: spiral_wasm.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("&$0")>] -type Ref<'T> = class end -#else -type Ref<'T> = 'T -#endif - -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("clap::Command")>] -#endif -type clap_Command = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("clap::builder::ValueRange")>] -#endif -type clap_builder_ValueRange = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("clap::Arg")>] -#endif -type clap_Arg = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("Vec<$0>")>] -#endif -type Vec<'T> = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::string::String")>] -type std_string_String = class end -#else -type std_string_String = string -#endif - -#if FABLE_COMPILER -[... #endif -#if FABLE_COMPILER_TYPESCRIPT - match v344 with Ok x -> x | Error e -> failwith $"resultm.unwrap' / e: {e}" - #endif -#if FABLE_COMPILER_PYTHON - match v344 with Ok x -> x | Error e -> failwith $"resultm.unwrap' / e: {e}" - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - match v344 with Ok x -> x | Error e -> failwith $"resultm.unwrap' / e: {e}" - #endif -#else - match v344 with Ok x -> x | Error e -> failwith $"resultm.unwrap' / e: {e}" - #endif - // run_target_args' is_unit - () - | _ -> - () - 0 -let v0 : ((string []) -> int32) = closure0() -let main args = v0 args -() - -00:00:06 d #25 Supervisor.buildFile / takeWhileInclusive / path: spiral_wasm.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("&$0")>] -type Ref<'T> = class end -#else -type Ref<'T> = 'T -#endif - -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("clap::Command")>] -#endif -type clap_Command = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("clap::builder::ValueRange")>] -#endif -type clap_builder_ValueRange = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("clap::Arg")>] -#endif -type clap_Arg = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("Vec<$0>")>] -#endif -type Vec<'T> = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::string::String")>] -type std_string_String = class end -#else -type std_string_String = string -#endif - -#if FABLE_COMPILER -[... #endif -#if FABLE_COMPILER_TYPESCRIPT - match v344 with Ok x -> x | Error e -> failwith $"resultm.unwrap' / e: {e}" - #endif -#if FABLE_COMPILER_PYTHON - match v344 with Ok x -> x | Error e -> failwith $"resultm.unwrap' / e: {e}" - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - match v344 with Ok x -> x | Error e -> failwith $"resultm.unwrap' / e: {e}" - #endif -#else - match v344 with Ok x -> x | Error e -> failwith $"resultm.unwrap' / e: {e}" - #endif - // run_target_args' is_unit - () - | _ -> - () - 0 -let v0 : ((string []) -> int32) = closure0() -let main args = v0 args -() - -00:00:06 d #26 FileSystem.watchWithFilter / Disposing watch stream / filter: FileName, LastWrite -00:00:06 v #6 async.run_with_timeout_async / { timeout = 100 } -00:00:00 d #1 persistCodeProject / packages: [Fable.Core] / modules: [lib/spiral/common.fsx; lib/spiral/sm.fsx; lib/spiral/crypto.fsx; ... ] / name: spiral_wasm / hash: / code.Length: 232460 -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/target/Builder/spiral_wasm -polyglot/lib/spiral/lib.ps1/GetTargetDir / targetDir: C:\home\git\polyglot\target\Builder\spiral_wasm -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot -polyglot/lib/spiral/lib.ps1/BuildFable / TargetDir: C:\home\git\polyglot\target\Builder\spiral_wasm / ProjectName: spiral_wasm / Language: rs / Runtime: / root: C:\home\git\polyglot -Fable 5.0.0-alpha.2: F# to Rust compiler (status: alpha) - -Thanks to the contributor! @chadunit +00:00:00 d #1 persistCodeProject / packages: [Fable.Core] / modules: [deps/spiral/lib/spiral/common.fsx; deps/spiral/lib/spiral/sm.fsx; deps/spiral/lib/spiral/crypto.fsx; ... ] / name: spiral_wasm / hash: / code.Length: 232460 +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/polyglot/target/Builder/spiral_wasm +spiral/lib/spiral/lib.ps1/GetTargetDir / targetDir: C:\home\git\polyglot\target\Builder\spiral_wasm +polyglot/scripts/core.ps1/ResolveLink #4 / Path: C:\home\git\polyglot\deps\spiral\deps\polyglot\deps\spiral\lib\spiral/../../deps/polyglot / parent_target: / path_target: C:\home\git\polyglot / parent: C:\home\git\polyglot\deps\spiral\deps\polyglot\deps\spiral\lib\spiral\..\..\deps / End: polyglot +spiral/lib/spiral/lib.ps1/BuildFable / TargetDir: C:\home\git\polyglot\target\Builder\spiral_wasm / ProjectName: spiral_wasm / Language: rs / Runtime: / root: C:\home\git\polyglot +Fable 5.0.0-alpha.5: F# to Rust compiler (status: alpha) + +Thanks to the contributor! @kerams Stand with Ukraine! https://standwithukraine.com.ua/ Parsing target\Builder\spiral_wasm\spiral_wasm.fsproj... Retrieving project options from cache, in case of issues run `dotnet fable clean` or try `--noCache` option. -Project and references (14 source files) parsed in 165ms +Project and references (14 source files) parsed in 156ms Started Fable compilation... -Fable compilation finished in 9139ms - -.\lib\spiral\async_.fsx(250,0): (250,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! -.\lib\spiral\threading.fsx(139,0): (139,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! -.\lib\spiral\common.fsx(2117,0): (2117,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! -.\lib\spiral\sm.fsx(556,0): (556,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! -.\lib\spiral\crypto.fsx(2344,0): (2344,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! -.\lib\spiral\date_time.fsx(2527,0): (2527,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! -.\lib\spiral\platform.fsx(120,0): (120,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! -.\lib\spiral\networking.fsx(4935,0): (4935,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! -.\lib\spiral\trace.fsx(2150,0): (2150,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! -.\lib\spiral\runtime.fsx(7101,0): (7101,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! -.\lib\spiral\file_system.fsx(17438,0): (17438,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/fsharp/Common.rs -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\spiral_wasm/target/rs/lib/fsharp/Common.rs / to: C:\home\git\polyglot\lib\fsharp\Common.rs -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/common.rs -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\spiral_wasm/target/rs/lib/spiral/common.rs / to: C:\home\git\polyglot\lib\spiral\common.rs -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/date_time.rs -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\spiral_wasm/target/rs/lib/spiral/date_time.rs / to: C:\home\git\polyglot\lib\spiral\date_time.rs -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/async_.rs -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\spiral_wasm/target/rs/lib/spiral/async_.rs / to: C:\home\git\polyglot\lib\spiral\async_.rs -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/platform.rs -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\spiral_wasm/target/rs/lib/spiral/platform.rs / to: C:\home\git\polyglot\lib\spiral\platform.rs -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/runtime.rs -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\spiral_wasm/target/rs/lib/spiral/runtime.rs / to: C:\home\git\polyglot\lib\spiral\runtime.rs -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/threading.rs -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\spiral_wasm/target/rs/lib/spiral/threading.rs / to: C:\home\git\polyglot\lib\spiral\threading.rs -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/networking.rs -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\spiral_wasm/target/rs/lib/spiral/networking.rs / to: C:\home\git\polyglot\lib\spiral\networking.rs -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/file_system.rs -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\spiral_wasm/target/rs/lib/spiral/file_system.rs / to: C:\home\git\polyglot\lib\spiral\file_system.rs -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/sm.rs -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\spiral_wasm/target/rs/lib/spiral/sm.rs / to: C:\home\git\polyglot\lib\spiral\sm.rs -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/crypto.rs -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\spiral_wasm/target/rs/lib/spiral/crypto.rs / to: C:\home\git\polyglot\lib\spiral\crypto.rs -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/trace.rs -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\spiral_wasm/target/rs/lib/spiral/trace.rs / to: C:\home\git\polyglot\lib\spiral\trace.rs -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/lib.rs -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\spiral_wasm/target/rs/lib/spiral/lib.rs / to: C:\home\git\polyglot\lib\spiral\lib.rs +Fable compilation finished in 10002ms + +.\deps\spiral\lib\spiral\async_.fsx(250,0): (250,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! +.\deps\spiral\lib\spiral\threading.fsx(139,0): (139,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! +.\deps\spiral\lib\spiral\common.fsx(2117,0): (2117,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! +.\deps\spiral\lib\spiral\sm.fsx(559,0): (559,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! +.\deps\spiral\lib\spiral\crypto.fsx(2344,0): (2344,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! +.\deps\spiral\lib\spiral\date_time.fsx(2545,0): (2545,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! +.\deps\spiral\lib\spiral\platform.fsx(120,0): (120,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! +.\deps\spiral\lib\spiral\networking.fsx(4935,0): (4935,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! +.\deps\spiral\lib\spiral\trace.fsx(2150,0): (2150,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! +.\deps\spiral\lib\spiral\runtime.fsx(7101,0): (7101,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! +.\deps\spiral\lib\spiral\file_system.fsx(17933,0): (17933,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/polyglot/target/Builder/spiral_wasm/target/rs/deps/spiral/lib/fsharp/Common.rs +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/polyglot/lib/fsharp/Common.rs +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\spiral_wasm/target/rs/lib/fsharp/Common.rs / to: C:\home\git\polyglot\lib\fsharp\Common.rs +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/common.rs +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\spiral_wasm/target/rs/deps/spiral/lib/spiral/common.rs / to: C:\home\git\spiral\lib\spiral\common.rs +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/date_time.rs +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\spiral_wasm/target/rs/deps/spiral/lib/spiral/date_time.rs / to: C:\home\git\spiral\lib\spiral\date_time.rs +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/async_.rs +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\spiral_wasm/target/rs/deps/spiral/lib/spiral/async_.rs / to: C:\home\git\spiral\lib\spiral\async_.rs +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/platform.rs +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\spiral_wasm/target/rs/deps/spiral/lib/spiral/platform.rs / to: C:\home\git\spiral\lib\spiral\platform.rs +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/runtime.rs +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\spiral_wasm/target/rs/deps/spiral/lib/spiral/runtime.rs / to: C:\home\git\spiral\lib\spiral\runtime.rs +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/threading.rs +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\spiral_wasm/target/rs/deps/spiral/lib/spiral/threading.rs / to: C:\home\git\spiral\lib\spiral\threading.rs +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/networking.rs +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\spiral_wasm/target/rs/deps/spiral/lib/spiral/networking.rs / to: C:\home\git\spiral\lib\spiral\networking.rs +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/file_system.rs +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\spiral_wasm/target/rs/deps/spiral/lib/spiral/file_system.rs / to: C:\home\git\spiral\lib\spiral\file_system.rs +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/sm.rs +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\spiral_wasm/target/rs/deps/spiral/lib/spiral/sm.rs / to: C:\home\git\spiral\lib\spiral\sm.rs +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/crypto.rs +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\spiral_wasm/target/rs/deps/spiral/lib/spiral/crypto.rs / to: C:\home\git\spiral\lib\spiral\crypto.rs +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/trace.rs +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\spiral_wasm/target/rs/deps/spiral/lib/spiral/trace.rs / to: C:\home\git\spiral\lib\spiral\trace.rs +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/lib.rs +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\spiral_wasm/target/rs/deps/spiral/lib/spiral/lib.rs / to: C:\home\git\spiral\lib\spiral\lib.rs spiral/apps/wasm/build.ps1 / path: C:\home\git\polyglot\target\Builder\spiral_wasm/target/rs/spiral_wasm.rs Compiling fable_library_rust v0.1.0 (/mnt/c/home/git/spiral/deps/polyglot/lib/rust/fable/fable_modules/fable-library-rust) Compiling spiral_wasm v0.0.1 (/mnt/c/home/git/spiral/apps/wasm) @@ -23320,1644 +21120,1591 @@@@ -25198,10 +22970,16 @@00:00:00 v #1 async.run_with_timeout_async / { timeout = 180 } -00:00:00 d #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0 - ""C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 --default-int i32 --default-float f64"; options = { command = dotnet "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 --default-int i32 --default-float f64; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = Some <fun:compiler@87-4>; stdin = None; trace = true; working_directory = Some "C:\home\git\polyglot" } } -00:00:01 v #2 > 00:00:00 d #1 pwd: C:\home\git\polyglot -00:00:01 v #3 > 00:00:00 d #2 dllPath: C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release -00:00:01 v #4 > 00:00:00 d #3 targetDir: C:\home\git\polyglot\target/spiral_Eval -00:00:01 v #2 async.run_with_timeout_async / { timeout = 100 } -00:00:01 v #3 async.run_with_timeout_async / { timeout = 100 } -00:00:01 v #5 > Starting the Spiral Server. It is bound to: http://localhost:13805 -00:00:01 v #4 async.run_with_timeout_async / { timeout = 100 } -00:00:01 v #1 Supervisor.sendJson / port: 13805 / json: {"Ping":true} / result: -00:00:01 v #2 Supervisor.awaitCompiler / Ping / result: 'Some null' / port: 13805 / retry: 1 -00:00:01 v #6 > Server bound to: http://localhost:13805 -00:00:01 d #7 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path math.dib --retries 1"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path math.dib --retries 1; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } -00:00:01 v #8 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "math.dib", "--retries", "1"])) } -00:00:01 v #9 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/lib/math/math.dib", "--output-path", "c:/home/git/polyglot/lib/math/math.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/lib/math/math.dib" --output-path "c:/home/git/polyglot/lib/math/math.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } -00:00:03 v #10 > > -00:00:03 v #11 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:03 v #12 > > │ # math -00:00:07 v #13 > > -00:00:07 v #14 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:07 v #15 > > open testing -00:00:07 v #16 > > open rust.rust_operators -00:00:07 v #17 > > open rust -00:00:11 v #18 > > -00:00:11 v #19 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:11 v #20 > > │ ## complex -00:00:11 v #21 > > -00:00:11 v #22 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:11 v #23 > > nominal complex t = -00:00:11 v #24 > > `( -00:00:11 v #25 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:00:11 v #26 > > Fable.Core.Emit(\"num_complex::Complex<$0>\")>]]\n#endif\ntype -00:00:11 v #27 > > num_complex_Complex<'T> = class end" -00:00:11 v #28 > > $'' : $'num_complex_Complex<`t>' -00:00:11 v #29 > > ) -00:00:11 v #30 > > -00:00:11 v #31 > > inl complex forall t. ((re : t), (im : t)) : complex t = -00:00:11 v #32 > > !\\((re, im), $'"num_complex::Complex::new($0, $1)"') -00:00:12 v #33 > > -00:00:12 v #34 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:12 v #35 > > //// test -00:00:12 v #36 > > ///! rust -d num-complex -00:00:12 v #37 > > -00:00:12 v #38 > > complex (0f64, 0f64) -00:00:12 v #39 > > |> sm'.format' -00:00:12 v #40 > > |> sm'.from_std_string -00:00:12 v #41 > > |> _assert_eq "0+0i" -00:00:20 v #42 > > -00:00:20 v #43 > > ── [ 8.26s - return value ] ──────────────────────────────────────────────────── -00:00:20 v #44 > > │ __assert_eq / actual: "0+0i" / expected: "0+0i" -00:00:20 v #45 > > │ -00:00:20 v #46 > > -00:00:20 v #47 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:20 v #48 > > │ ## re -00:00:20 v #49 > > -00:00:20 v #50 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:20 v #51 > > inl re forall t. (c : complex t) : t = -00:00:20 v #52 > > !\\(c, $'"$0.re"') -00:00:20 v #53 > > -00:00:20 v #54 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:20 v #55 > > │ ## im -00:00:20 v #56 > > -00:00:20 v #57 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:20 v #58 > > inl im forall t. (c : complex t) : t = -00:00:20 v #59 > > !\\(c, $'"$0.im"') -00:00:21 v #60 > > -00:00:21 v #61 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:21 v #62 > > │ ## complex_unbox -00:00:21 v #63 > > -00:00:21 v #64 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:21 v #65 > > inl complex_unbox forall t. (c : complex t) = -00:00:21 v #66 > > re c, im c -00:00:22 v #67 > > -00:00:22 v #68 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:22 v #69 > > │ ## (~.^) -00:00:22 v #70 > > -00:00:22 v #71 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:22 v #72 > > inl (~.^) c = complex c -00:00:22 v #73 > > -00:00:22 v #74 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:22 v #75 > > │ ## complex_eq -00:00:22 v #76 > > -00:00:22 v #77 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:22 v #78 > > inl complex_eq forall t. (a : complex t) (b : complex t) : bool = -00:00:22 v #79 > > !\\((a, b), $'"$0 == $1"') -00:00:22 v #80 > > -00:00:22 v #81 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:22 v #82 > > │ ## (.=) -00:00:22 v #83 > > -00:00:22 v #84 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:22 v #85 > > inl (.=) a b = complex_eq a b -00:00:23 v #86 > > -00:00:23 v #87 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:23 v #88 > > │ ## equable complex -00:00:23 v #89 > > -00:00:23 v #90 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:23 v #91 > > instance equable complex t = complex_eq -00:00:23 v #92 > > -00:00:23 v #93 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:23 v #94 > > │ ## complex_add -00:00:23 v #95 > > -00:00:23 v #96 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:23 v #97 > > inl complex_add forall t. (a : complex t) (b : complex t) : complex t = -00:00:23 v #98 > > !\\((a, b), $'"$0 + $1"') -00:00:24 v #99 > > -00:00:24 v #100 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:24 v #101 > > │ ## (.+) -00:00:24 v #102 > > -00:00:24 v #103 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:24 v #104 > > inl (.+) a b = complex_add a b -00:00:24 v #105 > > -00:00:24 v #106 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:24 v #107 > > │ ## complex_sub -00:00:24 v #108 > > -00:00:24 v #109 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:24 v #110 > > inl complex_sub forall t. (a : complex t) (b : complex t) : complex t = -00:00:24 v #111 > > !\\((a, b), $'"$0 - $1"') -00:00:24 v #112 > > -00:00:24 v #113 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:24 v #114 > > │ ## (.-) -00:00:24 v #115 > > -00:00:24 v #116 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:24 v #117 > > inl (.-) a b = complex_sub a b -00:00:25 v #118 > > -00:00:25 v #119 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:25 v #120 > > │ ## complex_mult -00:00:25 v #121 > > -00:00:25 v #122 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:25 v #123 > > inl complex_mult forall t. (a : complex t) (b : complex t) : complex t = -00:00:25 v #124 > > !\\((a, b), $'"$0 * $1"') -00:00:25 v #125 > > -00:00:25 v #126 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:25 v #127 > > │ ## (.*) -00:00:25 v #128 > > -00:00:25 v #129 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:25 v #130 > > inl (.*) a b = complex_mult a b -00:00:26 v #131 > > -00:00:26 v #132 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:26 v #133 > > │ ## complex_div -00:00:26 v #134 > > -00:00:26 v #135 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:26 v #136 > > inl complex_div forall t. (a : complex t) (b : complex t) : complex t = -00:00:26 v #137 > > !\\((a, b), $'"$0 / $1"') -00:00:26 v #138 > > -00:00:26 v #139 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:26 v #140 > > │ ## (./) -00:00:26 v #141 > > -00:00:26 v #142 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:26 v #143 > > inl (./) a b = complex_div a b -00:00:27 v #144 > > -00:00:27 v #145 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:27 v #146 > > │ ## powc -00:00:27 v #147 > > -00:00:27 v #148 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:27 v #149 > > inl powc forall t. (s : complex t) (c : complex t) : complex t = -00:00:27 v #150 > > !\\((c, s), $'"num_complex::Complex::powc($0, $1)"') -00:00:27 v #151 > > -00:00:27 v #152 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:27 v #153 > > │ ## (.**) -00:00:27 v #154 > > -00:00:27 v #155 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:27 v #156 > > inl (.**) a b = powc b a -00:00:27 v #157 > > -00:00:27 v #158 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:27 v #159 > > │ ## complex_sin -00:00:27 v #160 > > -00:00:27 v #161 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:27 v #162 > > inl complex_sin forall t. (c : complex t) : complex t = -00:00:27 v #163 > > !\\(c, $'"$0.sin()"') -00:00:28 v #164 > > -00:00:28 v #165 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:28 v #166 > > │ ## conj -00:00:28 v #167 > > -00:00:28 v #168 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:28 v #169 > > inl conj forall t. (c : complex t) : complex t = -00:00:28 v #170 > > !\\(c, $'"$0.conj()"') -00:00:28 v #171 > > -00:00:28 v #172 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:28 v #173 > > │ ## zeta -00:00:28 v #174 > > -00:00:28 v #175 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:28 v #176 > > inl zeta log (gamma : complex f64 -> complex f64) (s : complex f64) : complex -00:00:28 v #177 > > f64 = -00:00:28 v #178 > > inl rec zeta count gamma s = -00:00:28 v #179 > > if log then -00:00:28 v #180 > > !\\((count, s), $'"println\!(\\\"zeta / count: {:?} / s: {:?}\\\", -00:00:28 v #181 > > $0, $1)"') -00:00:28 v #182 > > if re s > 1 then -00:00:28 v #183 > > (.^(0, 0), (am.init 10000i32 id : a i32 _)) -00:00:28 v #184 > > ||> am.fold fun acc n => -00:00:28 v #185 > > acc .+ (.^(1, 0) ./ (.^(f64 n, 0) .** s)) -00:00:28 v #186 > > else -00:00:28 v #187 > > inl gamma_term = gamma (.^(1, 0) .- s) -00:00:28 v #188 > > inl sin_term = .^(pi, 0) .* s ./ .^(2, 0) |> complex_sin -00:00:28 v #189 > > inl one_minus_s = .^(1 - re s, -(im s)) -00:00:28 v #190 > > inl mirror_term = -00:00:28 v #191 > > if re one_minus_s <= 1 -00:00:28 v #192 > > then .^(0, 0) -00:00:28 v #193 > > else -00:00:28 v #194 > > if count <= 3 -00:00:28 v #195 > > then zeta (count + 1) gamma one_minus_s -00:00:28 v #196 > > else one_minus_s -00:00:28 v #197 > > inl reflection_formula = -00:00:28 v #198 > > .^(2, 0) .* (.^(pi, 0) .** s) .* sin_term .* gamma_term .* -00:00:28 v #199 > > mirror_term -00:00:28 v #200 > > reflection_formula -00:00:28 v #201 > > join zeta 0i32 gamma s -00:00:29 v #202 > > -00:00:29 v #203 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:29 v #204 > > │ ## bound -00:00:29 v #205 > > -00:00:29 v #206 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:29 v #207 > > nominal bound t = -00:00:29 v #208 > > `( -00:00:29 v #209 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:00:29 v #210 > > Fable.Core.Emit(\"pyo3::Bound<$0>\")>]]\n#endif\ntype pyo3_Bound<'T> = class -00:00:29 v #211 > > end" -00:00:29 v #212 > > $'' : $'pyo3_Bound<`t>' -00:00:29 v #213 > > ) -00:00:29 v #214 > > -00:00:29 v #215 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:29 v #216 > > │ ## python -00:00:29 v #217 > > -00:00:29 v #218 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:29 v #219 > > nominal python = -00:00:29 v #220 > > `( -00:00:29 v #221 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:00:29 v #222 > > Fable.Core.Emit(\"pyo3::Python\")>]]\n#endif\ntype pyo3_Python = class end" -00:00:29 v #223 > > $'' : $'pyo3_Python' -00:00:29 v #224 > > ) -00:00:30 v #225 > > -00:00:30 v #226 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:30 v #227 > > │ ## pymodule -00:00:30 v #228 > > -00:00:30 v #229 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:30 v #230 > > nominal pymodule = -00:00:30 v #231 > > `( -00:00:30 v #232 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:00:30 v #233 > > Fable.Core.Emit(\"pyo3::types::PyModule\")>]]\n#endif\ntype pyo3_types_PyModule -00:00:30 v #234 > > = class end" -00:00:30 v #235 > > $'' : $'pyo3_types_PyModule' -00:00:30 v #236 > > ) -00:00:30 v #237 > > -00:00:30 v #238 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:30 v #239 > > │ ## pyany -00:00:30 v #240 > > -00:00:30 v #241 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:30 v #242 > > nominal pyany = -00:00:30 v #243 > > `( -00:00:30 v #244 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:00:30 v #245 > > Fable.Core.Emit(\"pyo3::PyAny\")>]]\n#endif\ntype pyo3_PyAny = class end" -00:00:30 v #246 > > $'' : $'pyo3_PyAny' -00:00:30 v #247 > > ) -00:00:31 v #248 > > -00:00:31 v #249 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:31 v #250 > > │ ## pyerr -00:00:31 v #251 > > -00:00:31 v #252 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:31 v #253 > > nominal pyerr = -00:00:31 v #254 > > `( -00:00:31 v #255 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:00:31 v #256 > > Fable.Core.Emit(\"pyo3::PyErr\")>]]\n#endif\ntype pyo3_PyErr = class end" -00:00:31 v #257 > > $'' : $'pyo3_PyErr' -00:00:31 v #258 > > ) -00:00:31 v #259 > > -00:00:31 v #260 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:31 v #261 > > │ ## eval -00:00:31 v #262 > > -00:00:31 v #263 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:31 v #264 > > inl module_from_code (py : python) (code : string) : _ (bound pymodule) _ = -00:00:31 v #265 > > inl py = join py -00:00:31 v #266 > > inl code = code |> sm'.to_std_string |> sm'.new_c_string -00:00:31 v #267 > > inl empty = "" |> sm'.to_std_string |> sm'.new_c_string -00:00:31 v #268 > > !\\(code, $'"pyo3::types::PyModule::from_code(!py, &$0, &!empty, &!empty)"') -00:00:31 v #269 > > |> resultm.map_error'' fun (x : pyerr) => x |> sm'.format' -00:00:31 v #270 > > -00:00:31 v #271 > > inl use_pyanymethods () = -00:00:31 v #272 > > global "Fable.Core.RustInterop.emitRustExpr () \");\nuse -00:00:31 v #273 > > pyo3::prelude::PyAnyMethods;\n//\"" -00:00:31 v #274 > > -00:00:31 v #275 > > inl getattr (attr : string) (module : bound pymodule) : _ (bound pyany) _ = -00:00:31 v #276 > > inl attr = join attr -00:00:31 v #277 > > inl attr = attr |> sm'.as_str -00:00:31 v #278 > > inl module = join module -00:00:31 v #279 > > use_pyanymethods () -00:00:31 v #280 > > !\\(attr, $'"!module.getattr($0)"') -00:00:31 v #281 > > |> resultm.map_error'' fun (x : pyerr) => x |> sm'.format' -00:00:31 v #282 > > -00:00:31 v #283 > > inl call forall t. (args : t) (module : bound pyany) : _ (bound pyany) _ = -00:00:31 v #284 > > inl args = join args -00:00:31 v #285 > > inl module = join module -00:00:31 v #286 > > !\($'"pyo3::prelude::PyAnyMethods::call(&!module, ((*!args).0, *(*!args).1), -00:00:31 v #287 > > None)"') -00:00:31 v #288 > > |> resultm.map_error'' fun (x : pyerr) => x |> sm'.format' -00:00:31 v #289 > > -00:00:31 v #290 > > inl extract forall t. (result : bound pyany) : _ t _ = -00:00:31 v #291 > > inl result = join result -00:00:31 v #292 > > use_pyanymethods () -00:00:31 v #293 > > !\($'"!result.extract()"') -00:00:31 v #294 > > |> resultm.map_error'' fun (x : pyerr) => x |> sm'.format' -00:00:31 v #295 > > -00:00:31 v #296 > > inl eval py code (args : pair bool (pair f64 f64)) : _ (_ f64) sm'.std_string = -00:00:31 v #297 > > inl code = -00:00:31 v #298 > > code -00:00:31 v #299 > > |> module_from_code py -00:00:31 v #300 > > |> resultm.unwrap' -00:00:31 v #301 > > inl fn = -00:00:31 v #302 > > code -00:00:31 v #303 > > |> getattr "fn" -00:00:31 v #304 > > |> resultm.unwrap' -00:00:31 v #305 > > -00:00:31 v #306 > > fn -00:00:31 v #307 > > |> call args -00:00:31 v #308 > > |> resultm.try' -00:00:31 v #309 > > |> extract -00:00:31 v #310 > > |> resultm.try' -00:00:31 v #311 > > |> complex -00:00:31 v #312 > > |> Ok -00:00:31 v #313 > > |> resultm.box -00:00:31 v #314 > > -00:00:31 v #315 > > inl call1_ log py s code = -00:00:31 v #316 > > inl code = join (a code : _ i32 _) |> sm'.concat_array "\n" -00:00:31 v #317 > > -00:00:31 v #318 > > inl s = new_pair (re s) (im s) -00:00:31 v #319 > > inl args = new_pair log s -00:00:31 v #320 > > -00:00:31 v #321 > > eval py code args -00:00:31 v #322 > > -00:00:31 v #323 > > inl call1_ log name py s line = -00:00:31 v #324 > > inl s = join s -00:00:31 v #325 > > join -00:00:31 v #326 > > ;[[ -00:00:31 v #327 > > $'$"import sys"' -00:00:31 v #328 > > $'$"import traceback"' -00:00:31 v #329 > > $'$"import re"' -00:00:31 v #330 > > $'$"count = 0"' -00:00:31 v #331 > > $'$"memory_address_pattern = re.compile(r\' at 0x[[0-9a-fA-F]]+\')"' -00:00:31 v #332 > > $'$"def trace_calls(frame, event, arg):"' -00:00:31 v #333 > > $'$" global count"' -00:00:31 v #334 > > $'$" count += 1"' -00:00:31 v #335 > > $'$" if count < 200:"' -00:00:31 v #336 > > $'$" try:"' -00:00:31 v #337 > > $'$" args = {{ k: v for k, v in frame.f_locals.items() if -00:00:31 v #338 > > frame.f_code.co_name \!= \'make_mpc\' and k not in [[\'ctx\']] and not -00:00:31 v #339 > > callable(v) }}"' -00:00:31 v #340 > > $'$" args_str = \', \'.join([[ -00:00:31 v #341 > > f\\\"{{k}}={{re.sub(memory_address_pattern, \' at 0x<?>\', repr(v))}}\\\" for k, -00:00:31 v #342 > > v in args.items() ]])"' -00:00:31 v #343 > > $'$" print(f\\\"{{event}}({!name}) / f_code.co_name: -00:00:31 v #344 > > {{frame.f_code.co_name}} / f_locals: {{args_str}} / f_lineno: {{frame.f_lineno}} -00:00:31 v #345 > > / f_code.co_filename: -00:00:31 v #346 > > {{frame.f_code.co_filename.split(\'site-packages\')[[-1]]}} / f_back.f_lineno: -00:00:31 v #347 > > {{ \'\' if frame.f_back is None else frame.f_back.f_lineno }} -00:00:31 v #348 > > f_back.f_code.co_filename: {{ \'\' if frame.f_back is None else -00:00:31 v #349 > > frame.f_back.f_code.co_filename.split(\'site-packages\')[[-1]] }} / arg: -00:00:31 v #350 > > {{re.sub(memory_address_pattern, \' at 0x<?>\', repr(arg))}}\\\", flush=True)"' -00:00:31 v #351 > > $'$" except ValueError as e:"' -00:00:31 v #352 > > $'$" print(f\'{!name} / e: {{e}}\', flush=True)"' -00:00:31 v #353 > > $'$" return trace_calls"' -00:00:31 v #354 > > $'$"import mpmath"' -00:00:31 v #355 > > $'$"def fn(log, s):"' -00:00:31 v #356 > > $'$" global count"' -00:00:31 v #357 > > $'$" if log:"' -00:00:31 v #358 > > $'$" print(f\'{!name} / s: {{s}} / count: {{count}}\', -00:00:31 v #359 > > flush=True)"' -00:00:31 v #360 > > $'$" s = complex(*s)"' -00:00:31 v #361 > > $'$" try:"' -00:00:31 v #362 > > $'$" if log: sys.settrace(trace_calls)"' -00:00:31 v #363 > > line -00:00:31 v #364 > > $'$" if log:"' -00:00:31 v #365 > > $'$" sys.settrace(None)"' -00:00:31 v #366 > > $'$" print(f\'{!name} / result: {{s}} / count: -00:00:31 v #367 > > {{count}}\', flush=True)"' -00:00:31 v #368 > > $'$" except ValueError as e:"' -00:00:31 v #369 > > $'$" if s.real == 1:"' -00:00:31 v #370 > > $'$" s = complex(float(\'inf\'), 0)"' -00:00:31 v #371 > > $'$" return (s.real, s.imag)"' -00:00:31 v #372 > > ]] -00:00:31 v #373 > > |> call1_ log py s -00:00:31 v #374 > > -00:00:31 v #375 > > inl gamma_ log py s = -00:00:31 v #376 > > call1_ log "gamma_" py s $'$" s = mpmath.gamma(s)"' -00:00:31 v #377 > > -00:00:31 v #378 > > inl zeta_ log py s = -00:00:31 v #379 > > call1_ log "zeta_" py s $'$" s = mpmath.zeta(s)"' -00:00:32 v #380 > > -00:00:32 v #381 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:32 v #382 > > │ ## run_test -00:00:32 v #383 > > -00:00:32 v #384 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:32 v #385 > > inl run_test log (fn : (complex f64 -> complex f64) * (complex f64 -> complex -00:00:32 v #386 > > f64) -> ()) = -00:00:32 v #387 > > inl fn_ (py : python) : resultm.result' () pyerr = -00:00:32 v #388 > > inl nan () = -00:00:32 v #389 > > !\($'"f64::NAN"') -00:00:32 v #390 > > inl gamma__ = fun (s : complex f64) => -00:00:32 v #391 > > inl result = gamma_ log py s -00:00:32 v #392 > > if log then -00:00:32 v #393 > > inl s = join s -00:00:32 v #394 > > !\($'"println\!(\\\"gamma__ / s: {:?} / result: {:?}\\\", !s, -00:00:32 v #395 > > !result)"') -00:00:32 v #396 > > result |> resultm.ok' |> optionm'.unbox |> optionm'.default_value -00:00:32 v #397 > > .^(nan (), nan ()) -00:00:32 v #398 > > inl zeta__ = fun (s : complex f64) => -00:00:32 v #399 > > inl result = zeta_ log py s -00:00:32 v #400 > > -00:00:32 v #401 > > inl z = zeta true gamma__ s -00:00:32 v #402 > > -00:00:32 v #403 > > if log then -00:00:32 v #404 > > inl s = join s -00:00:32 v #405 > > !\($'"println\!(\\\"zeta__ / s: {:?} / result: {:?} / z: -00:00:32 v #406 > > {:?}\\\", !s, !result, !z)"') -00:00:32 v #407 > > -00:00:32 v #408 > > // re result - re x |> abs -00:00:32 v #409 > > // |> _assert_lt 0.001 -00:00:32 v #410 > > -00:00:32 v #411 > > // im result - im x |> abs -00:00:32 v #412 > > // |> _assert_lt 0.001 -00:00:32 v #413 > > -00:00:32 v #414 > > result |> resultm.ok' |> optionm'.unbox |> optionm'.default_value -00:00:32 v #415 > > .^(nan (), nan ()) -00:00:32 v #416 > > join fn (zeta__, gamma__) -00:00:32 v #417 > > -00:00:32 v #418 > > Ok () -00:00:32 v #419 > > |> resultm.box -00:00:32 v #420 > > -00:00:32 v #421 > > join -00:00:32 v #422 > > !\($'"pyo3::prepare_freethreaded_python()"') : () -00:00:32 v #423 > > -00:00:32 v #424 > > !\($'"let __run_test = pyo3::Python::with_gil(|py| -> pyo3::PyResult<()> -00:00:32 v #425 > > { //"') -00:00:32 v #426 > > -00:00:32 v #427 > > let x' = fn_ (!\($'"py"') : python) -00:00:32 v #428 > > inl x' = join x' -00:00:32 v #429 > > -00:00:32 v #430 > > inl closure_fix = 2u8, 1u8 -00:00:32 v #431 > > x' |> rust.fix_closure closure_fix -00:00:32 v #432 > > -00:00:32 v #433 > > (!\($'"__run_test"') : _ () pyerr) -00:00:32 v #434 > > |> resultm.unwrap' -00:00:32 v #435 > > -00:00:32 v #436 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:32 v #437 > > │ ## test_zeta_at_known_values_ -00:00:32 v #438 > > -00:00:32 v #439 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:32 v #440 > > inl test_zeta_at_known_values_ log = run_test log fun zeta, gamma => -00:00:32 v #441 > > ;[[ -00:00:32 v #442 > > .^(2, 0), pi ** 2 / 6 -00:00:32 v #443 > > .^(-1, 0), -1 / 12 -00:00:32 v #444 > > ]] -00:00:32 v #445 > > |> fun x => a x : _ i32 _ -00:00:32 v #446 > > |> am.iter fun s, e => -00:00:32 v #447 > > inl result = zeta s -00:00:32 v #448 > > -00:00:32 v #449 > > result |> im |> _assert_eq 0 -00:00:32 v #450 > > re result - e |> abs |> _assert_lt 0.0001 -00:00:32 v #451 > > -00:00:32 v #452 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:32 v #453 > > //// test -00:00:32 v #454 > > ///! rust -d num-complex pyo3 -00:00:32 v #455 > > -00:00:32 v #456 > > test_zeta_at_known_values_ true -00:00:36 v #457 > > -00:00:36 v #458 > > ── [ 3.50s - return value ] ──────────────────────────────────────────────────── -00:00:36 v #459 > > │ zeta_ / s: (2.0, 0.0) / count: 0 -00:00:36 v #460 > > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, -00:00:36 v #461 > > derivative=0, method=None, kwargs={} / f_lineno: 528 / f_code.co_filename: -00:00:36 v #462 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: -00:00:36 v #463 > > arg: None -00:00:36 v #464 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, -00:00:36 v #465 > > derivative=0, method=None, kwargs={} / f_lineno: 530 / f_code.co_filename: -00:00:36 v #466 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: -00:00:36 v #467 > > arg: None -00:00:36 v #468 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, -00:00:36 v #469 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 531 / f_code.co_filename: -00:00:36 v #470 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: -00:00:36 v #471 > > arg: None -00:00:36 v #472 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, -00:00:36 v #473 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 532 / f_code.co_filename: -00:00:36 v #474 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: -00:00:36 v #475 > > arg: None -00:00:36 v #476 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, -00:00:36 v #477 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533 / f_code.co_filename: -00:00:36 v #478 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: -00:00:36 v #479 > > arg: None -00:00:36 v #480 > > │ call(zeta_) / f_code.co_name: f / f_locals: x=(2+0j), -00:00:36 v #481 > > kwargs={}, name='zeta' / f_lineno: 989 / f_code.co_filename: -00:00:36 v #482 > > \mpmath\ctx_mp_python.py / f_back.f_lineno: 533 / f_back.f_code.co_filename: -00:00:36 v #483 > > \mpmath\functions\zeta.py / arg: None -00:00:36 v #484 > > │ line(zeta_) / f_code.co_name: f / f_locals: x=(2+0j), -00:00:36 v #485 > > kwargs={}, name='zeta' / f_linen...me: make_mpc / f_locals: / f_lineno: 603 -00:00:36 v #486 > > f_code.co_filename: \mpmath\ctx_mp_python.py / f_back.f_lineno: 1007 -00:00:36 v #487 > > f_back.f_code.co_filename: \mpmath\ctx_mp_python.py / arg: None -00:00:36 v #488 > > │ line(gamma_) / f_code.co_name: make_mpc / f_locals: -00:00:36 v #489 > > f_lineno: 604 / f_code.co_filename: \mpmath\ctx_mp_python.py / f_back.f_lineno: -00:00:36 v #490 > > 1007 / f_back.f_code.co_filename: \mpmath\ctx_mp_python.py / arg: None -00:00:36 v #491 > > │ line(gamma_) / f_code.co_name: make_mpc / f_locals: -00:00:36 v #492 > > f_lineno: 605 / f_code.co_filename: \mpmath\ctx_mp_python.py / f_back.f_lineno: -00:00:36 v #493 > > 1007 / f_back.f_code.co_filename: \mpmath\ctx_mp_python.py / arg: None -00:00:36 v #494 > > │ return(gamma_) / f_code.co_name: make_mpc / f_locals: -00:00:36 v #495 > > f_lineno: 605 / f_code.co_filename: \mpmath\ctx_mp_python.py / f_back.f_lineno: -00:00:36 v #496 > > 1007 / f_back.f_code.co_filename: \mpmath\ctx_mp_python.py / arg: -00:00:36 v #497 > > mpc(real='1.0', imag='0.0') -00:00:36 v #498 > > │ return(gamma_) / f_code.co_name: f / f_locals: -00:00:36 v #499 > > x=mpc(real='2.0', imag='0.0'), kwargs={}, name='gamma', prec=53, rounding='n' -00:00:36 v #500 > > f_lineno: 1007 / f_code.co_filename: \mpmath\ctx_mp_python.py / f_back.f_lineno: -00:00:36 v #501 > > 25 / f_back.f_code.co_filename: / arg: mpc(real='1.0', imag='0.0') -00:00:36 v #502 > > │ gamma_ / result: (1.0 + 0.0j) / count: 140 -00:00:36 v #503 > > │ gamma__ / s: Complex { re: 2.0, im: 0.0 } / result: -00:00:36 v #504 > > Ok(Complex { re: 1.0, im: 0.0 }) -00:00:36 v #505 > > │ zeta / count: 1 / s: Complex { re: 2.0, im: -0.0 } -00:00:36 v #506 > > │ zeta__ / s: Complex { re: -1.0, im: 0.0 } / result: -00:00:36 v #507 > > Ok(Complex { re: -0.08333333333333333, im: 0.0 }) / z: Complex { re: NaN, im: -00:00:36 v #508 > > NaN } -00:00:36 v #509 > > │ __assert_eq / actual: 0.0 / expected: 0.0 -00:00:36 v #510 > > │ __assert_lt / actual: 0.0 / expected: 0.0001 -00:00:36 v #511 > > │ -00:00:36 v #512 > > -00:00:36 v #513 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:36 v #514 > > │ ## test_zeta_at_2_minus2 -00:00:36 v #515 > > -00:00:36 v #516 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:36 v #517 > > inl test_zeta_at_2_minus2 log = run_test log fun zeta, gamma => -00:00:36 v #518 > > inl s = .^(2, -2) -00:00:36 v #519 > > inl result = zeta s -00:00:36 v #520 > > -00:00:36 v #521 > > (re result - 0.8673) |> abs |> _assert_lt 0.001 -00:00:36 v #522 > > (im result - 0.2750) |> abs |> _assert_lt 0.001 -00:00:36 v #523 > > -00:00:36 v #524 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:36 v #525 > > //// test -00:00:36 v #526 > > ///! rust -d num-complex pyo3 -00:00:36 v #527 > > -00:00:36 v #528 > > test_zeta_at_2_minus2 true -00:00:40 v #529 > > -00:00:40 v #530 > > ── [ 3.25s - return value ] ──────────────────────────────────────────────────── -00:00:40 v #531 > > │ zeta_ / s: (2.0, -2.0) / count: 0 -00:00:40 v #532 > > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(2-2j), a=1, -00:00:40 v #533 > > derivative=0, method=None, kwargs={} / f_lineno: 528 / f_code.co_filename: -00:00:40 v #534 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: -00:00:40 v #535 > > arg: None -00:00:40 v #536 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2-2j), a=1, -00:00:40 v #537 > > derivative=0, method=None, kwargs={} / f_lineno: 530 / f_code.co_filename: -00:00:40 v #538 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: -00:00:40 v #539 > > arg: None -00:00:40 v #540 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2-2j), a=1, -00:00:40 v #541 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 531 / f_code.co_filename: -00:00:40 v #542 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: -00:00:40 v #543 > > arg: None -00:00:40 v #544 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2-2j), a=1, -00:00:40 v #545 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 532 / f_code.co_filename: -00:00:40 v #546 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: -00:00:40 v #547 > > arg: None -00:00:40 v #548 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2-2j), a=1, -00:00:40 v #549 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533 / f_code.co_filename: -00:00:40 v #550 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: -00:00:40 v #551 > > arg: None -00:00:40 v #552 > > │ call(zeta_) / f_code.co_name: f / f_locals: x=(2-2j), -00:00:40 v #553 > > kwargs={}, name='zeta' / f_lineno: 989 / f_code.co_filename: -00:00:40 v #554 > > \mpmath\ctx_mp_python.py / f_back.f_lineno: 533 / f_back.f_code.co_filename: -00:00:40 v #555 > > \mpmath\functions\zeta.py / arg: None -00:00:40 v #556 > > │ line(zeta_) / f_code.co_name: f / f_locals: x=(2-2j), -00:00:40 v #557 > > kwargs={}, name='zeta' / f_line.../ arg: None -00:00:40 v #558 > > │ call(zeta_) / f_code.co_name: python_bitcount / f_locals: n=2 -00:00:40 v #559 > > / f_lineno: 91 / f_code.co_filename: \mpmath\libmp\libintmath.py -00:00:40 v #560 > > f_back.f_lineno: 778 / f_back.f_code.co_filename: \mpmath\libmp\libmpf.py / arg: -00:00:40 v #561 > > None -00:00:40 v #562 > > │ line(zeta_) / f_code.co_name: python_bitcount / f_locals: n=2 -00:00:40 v #563 > > / f_lineno: 93 / f_code.co_filename: \mpmath\libmp\libintmath.py -00:00:40 v #564 > > f_back.f_lineno: 778 / f_back.f_code.co_filename: \mpmath\libmp\libmpf.py / arg: -00:00:40 v #565 > > None -00:00:40 v #566 > > │ line(zeta_) / f_code.co_name: python_bitcount / f_locals: -00:00:40 v #567 > > n=2, bc=2 / f_lineno: 94 / f_code.co_filename: \mpmath\libmp\libintmath.py -00:00:40 v #568 > > f_back.f_lineno: 778 / f_back.f_code.co_filename: \mpmath\libmp\libmpf.py / arg: -00:00:40 v #569 > > None -00:00:40 v #570 > > │ line(zeta_) / f_code.co_name: python_bitcount / f_locals: -00:00:40 v #571 > > n=2, bc=2 / f_lineno: 95 / f_code.co_filename: \mpmath\libmp\libintmath.py -00:00:40 v #572 > > f_back.f_lineno: 778 / f_back.f_code.co_filename: \mpmath\libmp\libmpf.py / arg: -00:00:40 v #573 > > None -00:00:40 v #574 > > │ return(zeta_) / f_code.co_name: python_bitcount / f_locals: -00:00:40 v #575 > > n=2, bc=2 / f_lineno: 95 / f_code.co_filename: \mpmath\libmp\libintmath.py -00:00:40 v #576 > > f_back.f_lineno: 778 / f_back.f_code.co_filename: \mpmath\libmp\libmpf.py / arg: -00:00:40 v #577 > > 2 -00:00:40 v #578 > > │ zeta_ / result: (0.867351829635993 + 0.275127238807858j) -00:00:40 v #579 > > count: 1812 -00:00:40 v #580 > > │ zeta / count: 0 / s: Complex { re: 2.0, im: -2.0 } -00:00:40 v #581 > > │ zeta__ / s: Complex { re: 2.0, im: -2.0 } / result: -00:00:40 v #582 > > Ok(Complex { re: 0.8673518296359931, im: 0.27512723880785767 }) / z: Complex { -00:00:40 v #583 > > re: NaN, im: NaN } -00:00:40 v #584 > > │ __assert_lt / actual: 5.182963599315027e-5 / expected: 0.001 -00:00:40 v #585 > > │ __assert_lt / actual: 0.00012723880785764363 / expected: -00:00:40 v #586 > > 0.001 -00:00:40 v #587 > > │ -00:00:40 v #588 > > -00:00:40 v #589 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:40 v #590 > > │ ## test_trivial_zero_at_negative_even___ -00:00:40 v #591 > > -00:00:40 v #592 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:40 v #593 > > inl test_trivial_zero_at_negative_even___ log = run_test log fun zeta, gamma => -00:00:40 v #594 > > (join listm'.init_series -2f64 -40 -2) -00:00:40 v #595 > > |> listm.iter fun n => -00:00:40 v #596 > > inl s = .^(n, 0) -00:00:40 v #597 > > inl result = zeta s -00:00:40 v #598 > > -00:00:40 v #599 > > result |> re |> _assert_eq 0 -00:00:40 v #600 > > result |> im |> _assert_eq 0 -00:00:40 v #601 > > -00:00:40 v #602 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:40 v #603 > > //// test -00:00:40 v #604 > > ///! rust -d num-complex pyo3 -00:00:40 v #605 > > -00:00:40 v #606 > > test_trivial_zero_at_negative_even___ true -00:00:44 v #607 > > -00:00:44 v #608 > > ── [ 3.82s - return value ] ──────────────────────────────────────────────────── -00:00:44 v #609 > > │ zeta_ / s: (-2.0, 0.0) / count: 0 -00:00:44 v #610 > > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(-2+0j), -00:00:44 v #611 > > a=1, derivative=0, method=None, kwargs={} / f_lineno: 528 / f_code.co_filename: -00:00:44 v #612 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: -00:00:44 v #613 > > arg: None -00:00:44 v #614 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(-2+0j), -00:00:44 v #615 > > a=1, derivative=0, method=None, kwargs={} / f_lineno: 530 / f_code.co_filename: -00:00:44 v #616 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: -00:00:44 v #617 > > arg: None -00:00:44 v #618 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(-2+0j), -00:00:44 v #619 > > a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: 531 -00:00:44 v #620 > > f_code.co_filename: \mpmath\functions\zeta.py / f_back.f_lineno: 25 -00:00:44 v #621 > > f_back.f_code.co_filename: / arg: None -00:00:44 v #622 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(-2+0j), -00:00:44 v #623 > > a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: 532 -00:00:44 v #624 > > f_code.co_filename: \mpmath\functions\zeta.py / f_back.f_lineno: 25 -00:00:44 v #625 > > f_back.f_code.co_filename: / arg: None -00:00:44 v #626 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(-2+0j), -00:00:44 v #627 > > a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533 -00:00:44 v #628 > > f_code.co_filename: \mpmath\functions\zeta.py / f_back.f_lineno: 25 -00:00:44 v #629 > > f_back.f_code.co_filename: / arg: None -00:00:44 v #630 > > │ call(zeta_) / f_code.co_name: f / f_locals: x=(-2+0j), -00:00:44 v #631 > > kwargs={}, name='zeta' / f_lineno: 989 / f_code.co_filename: -00:00:44 v #632 > > \mpmath\ctx_mp_python.py / f_back.f_lineno: 533 / f_back.f_code.co_filename: -00:00:44 v #633 > > \mpmath\functions\zeta.py / arg: None -00:00:44 v #634 > > │ line(zeta_) / f_code.co_name: f / f_locals: x=(-2+0j), -00:00:44 v #635 > > kwargs={}, name='zeta' /...lename: \mpmath\ctx_mp_python.py / f_back.f_lineno: -00:00:44 v #636 > > 1007 / f_back.f_code.co_filename: \mpmath\ctx_mp_python.py / arg: None -00:00:44 v #637 > > │ line(gamma_) / f_code.co_name: make_mpc / f_locals: -00:00:44 v #638 > > f_lineno: 604 / f_code.co_filename: \mpmath\ctx_mp_python.py / f_back.f_lineno: -00:00:44 v #639 > > 1007 / f_back.f_code.co_filename: \mpmath\ctx_mp_python.py / arg: None -00:00:44 v #640 > > │ line(gamma_) / f_code.co_name: make_mpc / f_locals: -00:00:44 v #641 > > f_lineno: 605 / f_code.co_filename: \mpmath\ctx_mp_python.py / f_back.f_lineno: -00:00:44 v #642 > > 1007 / f_back.f_code.co_filename: \mpmath\ctx_mp_python.py / arg: None -00:00:44 v #643 > > │ return(gamma_) / f_code.co_name: make_mpc / f_locals: -00:00:44 v #644 > > f_lineno: 605 / f_code.co_filename: \mpmath\ctx_mp_python.py / f_back.f_lineno: -00:00:44 v #645 > > 1007 / f_back.f_code.co_filename: \mpmath\ctx_mp_python.py / arg: -00:00:44 v #646 > > mpc(real='8.1591528324789768e+47', imag='0.0') -00:00:44 v #647 > > │ return(gamma_) / f_code.co_name: f / f_locals: -00:00:44 v #648 > > x=mpc(real='41.0', imag='0.0'), kwargs={}, name='gamma', prec=53, rounding='n' -00:00:44 v #649 > > f_lineno: 1007 / f_code.co_filename: \mpmath\ctx_mp_python.py / f_back.f_lineno: -00:00:44 v #650 > > 25 / f_back.f_code.co_filename: / arg: mpc(real='8.1591528324789768e+47', -00:00:44 v #651 > > imag='0.0') -00:00:44 v #652 > > │ gamma_ / result: (8.15915283247898e+47 + 0.0j) / count: 149 -00:00:44 v #653 > > │ gamma__ / s: Complex { re: 41.0, im: 0.0 } / result: -00:00:44 v #654 > > Ok(Complex { re: 8.159152832478977e47, im: 0.0 }) -00:00:44 v #655 > > │ zeta / count: 1 / s: Complex { re: 41.0, im: -0.0 } -00:00:44 v #656 > > │ zeta__ / s: Complex { re: -40.0, im: 0.0 } / result: -00:00:44 v #657 > > Ok(Complex { re: 0.0, im: 0.0 }) / z: Complex { re: NaN, im: NaN } -00:00:44 v #658 > > │ __assert_eq / actual: 0.0 / expected: 0.0 -00:00:44 v #659 > > │ __assert_eq / actual: 0.0 / expected: 0.0 -00:00:44 v #660 > > │ -00:00:44 v #661 > > -00:00:44 v #662 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:44 v #663 > > │ ## test_non_trivial_zero___ -00:00:44 v #664 > > -00:00:44 v #665 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:44 v #666 > > inl test_non_trivial_zero___ log = run_test log fun zeta, gamma => -00:00:44 v #667 > > ;[[ -00:00:44 v #668 > > .^(0.5, 14.134725) -00:00:44 v #669 > > .^(0.5, 21.022040) -00:00:44 v #670 > > .^(0.5, 25.010857) -00:00:44 v #671 > > .^(0.5, 30.424876) -00:00:44 v #672 > > .^(0.5, 32.935062) -00:00:44 v #673 > > .^(0.5, 37.586178) -00:00:44 v #674 > > ]] -00:00:44 v #675 > > |> fun x => a x : _ i32 _ -00:00:44 v #676 > > |> am.iter fun x => -00:00:44 v #677 > > inl result = zeta x -00:00:44 v #678 > > result |> re |> abs |> _assert_lt 0.0001 -00:00:44 v #679 > > result |> im |> abs |> _assert_lt 0.0001 -00:00:44 v #680 > > -00:00:44 v #681 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:44 v #682 > > //// test -00:00:44 v #683 > > ///! rust -d num-complex pyo3 -00:00:44 v #684 > > -00:00:44 v #685 > > test_non_trivial_zero___ true -00:00:48 v #686 > > -00:00:48 v #687 > > ── [ 3.49s - return value ] ──────────────────────────────────────────────────── -00:00:48 v #688 > > │ zeta_ / s: (0.5, 14.134725) / count: 0 -00:00:48 v #689 > > │ call(zeta_) / f_code.co_name: zeta / f_locals: -00:00:48 v #690 > > s=(0.5+14.134725j), a=1, derivative=0, method=None, kwargs={} / f_lineno: 528 -00:00:48 v #691 > > f_code.co_filename: \mpmath\functions\zeta.py / f_back.f_lineno: 25 -00:00:48 v #692 > > f_back.f_code.co_filename: / arg: None -00:00:48 v #693 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: -00:00:48 v #694 > > s=(0.5+14.134725j), a=1, derivative=0, method=None, kwargs={} / f_lineno: 530 -00:00:48 v #695 > > f_code.co_filename: \mpmath\functions\zeta.py / f_back.f_lineno: 25 -00:00:48 v #696 > > f_back.f_code.co_filename: / arg: None -00:00:48 v #697 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: -00:00:48 v #698 > > s=(0.5+14.134725j), a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: -00:00:48 v #699 > > 531 / f_code.co_filename: \mpmath\functions\zeta.py / f_back.f_lineno: 25 -00:00:48 v #700 > > f_back.f_code.co_filename: / arg: None -00:00:48 v #701 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: -00:00:48 v #702 > > s=(0.5+14.134725j), a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: -00:00:48 v #703 > > 532 / f_code.co_filename: \mpmath\functions\zeta.py / f_back.f_lineno: 25 -00:00:48 v #704 > > f_back.f_code.co_filename: / arg: None -00:00:48 v #705 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: -00:00:48 v #706 > > s=(0.5+14.134725j), a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: -00:00:48 v #707 > > 533 / f_code.co_filename: \mpmath\functions\zeta.py / f_back.f_lineno: 25 -00:00:48 v #708 > > f_back.f_code.co_filename: / arg: None -00:00:48 v #709 > > │ call(zeta_) / f_code.co_name: f / f_locals: -00:00:48 v #710 > > x=(0.5+14.134725j), kwargs={}, name='zeta' / f_lineno: 989 / f_code.co_filename: -00:00:48 v #711 > > \mpmath\ctx_mp_python.py / f_back.f_lineno: 533 / f_back.f_code.co_filename: -00:00:48 v #712 > > \mpmath\functions\zeta.py / arg: None -00:00:48 v #713 > > │ line(zeta_) / f_code... arg: None -00:00:48 v #714 > > │ line(gamma_) / f_code.co_name: complex_stirling_series -00:00:48 v #715 > > f_locals: x=1208925819614629174706176, y=-90877802089662679288381440, prec=81, -00:00:48 v #716 > > _m=3416353708500640443578529333, tre=855591523614410863719, -00:00:48 v #717 > > tim=64316830603724894628746, ure=-1710577520534459139249, -00:00:48 v #718 > > uim=45518868236127668552, sre=1013002518538853602038572, -00:00:48 v #719 > > sim=90883161825546323029600502 / f_lineno: 1637 / f_code.co_filename: -00:00:48 v #720 > > \mpmath\libmp\gammazeta.py / f_back.f_lineno: 2050 / f_back.f_code.co_filename: -00:00:48 v #721 > > \mpmath\libmp\gammazeta.py / arg: None -00:00:48 v #722 > > │ line(gamma_) / f_code.co_name: complex_stirling_series -00:00:48 v #723 > > f_locals: x=1208925819614629174706176, y=-90877802089662679288381440, prec=81, -00:00:48 v #724 > > _m=3416353708500640443578529333, tre=-1816151534455075068, -00:00:48 v #725 > > tim=-45486653225747820096, ure=-1710577520534459139249, -00:00:48 v #726 > > uim=45518868236127668552, sre=1013002518538853602038572, -00:00:48 v #727 > > sim=90883161825546323029600502 / f_lineno: 1638 / f_code.co_filename: -00:00:48 v #728 > > \mpmath\libmp\gammazeta.py / f_back.f_lineno: 2050 / f_back.f_code.co_filename: -00:00:48 v #729 > > \mpmath\libmp\gammazeta.py / arg: None -00:00:48 v #730 > > │ gamma_ / result: (-1.32798420042152e-26 + -00:00:48 v #731 > > 5.5751975252688e-26j) / count: 309 -00:00:48 v #732 > > │ gamma__ / s: Complex { re: 0.5, im: -37.586178 } / result: -00:00:48 v #733 > > Ok(Complex { re: -1.3279842004215153e-26, im: 5.575197525268802e-26 }) -00:00:48 v #734 > > │ zeta__ / s: Complex { re: 0.5, im: 37.586178 } / result: -00:00:48 v #735 > > Ok(Complex { re: -8.910186507947958e-8, im: -2.943780446402868e-7 }) / z: -00:00:48 v #736 > > Complex { re: -0.0, im: 0.0 } -00:00:48 v #737 > > │ __assert_lt / actual: 8.910186507947958e-8 / expected: 0.0001 -00:00:48 v #738 > > │ __assert_lt / actual: 2.943780446402868e-7 / expected: 0.0001 -00:00:48 v #739 > > │ -00:00:48 v #740 > > -00:00:48 v #741 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:48 v #742 > > │ ## test_real_part_greater_than_one___ -00:00:48 v #743 > > -00:00:48 v #744 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:48 v #745 > > inl test_real_part_greater_than_one___ log = run_test log fun zeta, gamma => -00:00:48 v #746 > > inl points = ;[[ 2; 3; 4; 5; 10; 20; 50 ]] -00:00:48 v #747 > > (a points : _ i32 _) -00:00:48 v #748 > > |> am.iter fun point => -00:00:48 v #749 > > inl s = .^(point, 0) -00:00:48 v #750 > > inl result = zeta s -00:00:48 v #751 > > result |> re |> _assert_gt 0 -00:00:48 v #752 > > result |> im |> _assert_eq 0 -00:00:48 v #753 > > -00:00:48 v #754 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:48 v #755 > > //// test -00:00:48 v #756 > > ///! rust -d num-complex pyo3 -00:00:48 v #757 > > -00:00:48 v #758 > > test_real_part_greater_than_one___ true -00:00:52 v #759 > > -00:00:52 v #760 > > ── [ 3.52s - return value ] ──────────────────────────────────────────────────── -00:00:52 v #761 > > │ zeta_ / s: (2.0, 0.0) / count: 0 -00:00:52 v #762 > > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, -00:00:52 v #763 > > derivative=0, method=None, kwargs={} / f_lineno: 528 / f_code.co_filename: -00:00:52 v #764 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: -00:00:52 v #765 > > arg: None -00:00:52 v #766 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, -00:00:52 v #767 > > derivative=0, method=None, kwargs={} / f_lineno: 530 / f_code.co_filename: -00:00:52 v #768 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: -00:00:52 v #769 > > arg: None -00:00:52 v #770 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, -00:00:52 v #771 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 531 / f_code.co_filename: -00:00:52 v #772 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: -00:00:52 v #773 > > arg: None -00:00:52 v #774 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, -00:00:52 v #775 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 532 / f_code.co_filename: -00:00:52 v #776 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: -00:00:52 v #777 > > arg: None -00:00:52 v #778 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, -00:00:52 v #779 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533 / f_code.co_filename: -00:00:52 v #780 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: -00:00:52 v #781 > > arg: None -00:00:52 v #782 > > │ call(zeta_) / f_code.co_name: f / f_locals: x=(2+0j), -00:00:52 v #783 > > kwargs={}, name='zeta' / f_lineno: 989 / f_code.co_filename: -00:00:52 v #784 > > \mpmath\ctx_mp_python.py / f_back.f_lineno: 533 / f_back.f_code.co_filename: -00:00:52 v #785 > > \mpmath\functions\zeta.py / arg: None -00:00:52 v #786 > > │ line(zeta_) / f_code.co_name: f / f_locals: x=(2+0j), -00:00:52 v #787 > > kwargs={}, name='zeta' / f_linen...f_code.co_filename: \mpmath\ctx_mp_python.py -00:00:52 v #788 > > / f_back.f_lineno: 1007 / f_back.f_code.co_filename: \mpmath\ctx_mp_python.py -00:00:52 v #789 > > arg: None -00:00:52 v #790 > > │ line(zeta_) / f_code.co_name: make_mpc / f_locals: -00:00:52 v #791 > > f_lineno: 605 / f_code.co_filename: \mpmath\ctx_mp_python.py / f_back.f_lineno: -00:00:52 v #792 > > 1007 / f_back.f_code.co_filename: \mpmath\ctx_mp_python.py / arg: None -00:00:52 v #793 > > │ return(zeta_) / f_code.co_name: make_mpc / f_locals: -00:00:52 v #794 > > f_lineno: 605 / f_code.co_filename: \mpmath\ctx_mp_python.py / f_back.f_lineno: -00:00:52 v #795 > > 1007 / f_back.f_code.co_filename: \mpmath\ctx_mp_python.py / arg: -00:00:52 v #796 > > mpc(real='1.0000000000000009', imag='0.0') -00:00:52 v #797 > > │ return(zeta_) / f_code.co_name: f / f_locals: -00:00:52 v #798 > > x=mpc(real='50.0', imag='0.0'), kwargs={}, name='zeta', prec=53, rounding='n' -00:00:52 v #799 > > f_lineno: 1007 / f_code.co_filename: \mpmath\ctx_mp_python.py / f_back.f_lineno: -00:00:52 v #800 > > 533 / f_back.f_code.co_filename: \mpmath\functions\zeta.py / arg: -00:00:52 v #801 > > mpc(real='1.0000000000000009', imag='0.0') -00:00:52 v #802 > > │ return(zeta_) / f_code.co_name: zeta / f_locals: s=(50+0j), -00:00:52 v #803 > > a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533 -00:00:52 v #804 > > f_code.co_filename: \mpmath\functions\zeta.py / f_back.f_lineno: 25 -00:00:52 v #805 > > f_back.f_code.co_filename: / arg: mpc(real='1.0000000000000009', imag='0.0') -00:00:52 v #806 > > │ zeta_ / result: (1.0 + 0.0j) / count: 181 -00:00:52 v #807 > > │ zeta / count: 0 / s: Complex { re: 50.0, im: 0.0 } -00:00:52 v #808 > > │ zeta__ / s: Complex { re: 50.0, im: 0.0 } / result: -00:00:52 v #809 > > Ok(Complex { re: 1.0000000000000009, im: 0.0 }) / z: Complex { re: NaN, im: NaN -00:00:52 v #810 > > } -00:00:52 v #811 > > │ __assert_gt / actual: 1.0000000000000009 / expected: 0.0 -00:00:52 v #812 > > │ __assert_eq / actual: 0.0 / expected: 0.0 -00:00:52 v #813 > > │ -00:00:52 v #814 > > -00:00:52 v #815 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:52 v #816 > > │ ## test_zeta_at_1___ -00:00:52 v #817 > > -00:00:52 v #818 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:52 v #819 > > inl test_zeta_at_1___ log = run_test log fun zeta, gamma => -00:00:52 v #820 > > inl s = .^(1, 0) -00:00:52 v #821 > > inl result = zeta s -00:00:52 v #822 > > result |> re |> _assert_eq limit.max -00:00:52 v #823 > > result |> im |> _assert_eq 0 -00:00:52 v #824 > > -00:00:52 v #825 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:52 v #826 > > //// test -00:00:52 v #827 > > ///! rust -d num-complex pyo3 -00:00:52 v #828 > > -00:00:52 v #829 > > test_zeta_at_1___ true -00:00:55 v #830 > > -00:00:55 v #831 > > ── [ 3.02s - return value ] ──────────────────────────────────────────────────── -00:00:55 v #832 > > │ zeta_ / s: (1.0, 0.0) / count: 0 -00:00:55 v #833 > > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(1+0j), a=1, -00:00:55 v #834 > > derivative=0, method=None, kwargs={} / f_lineno: 528 / f_code.co_filename: -00:00:55 v #835 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: -00:00:55 v #836 > > arg: None -00:00:55 v #837 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(1+0j), a=1, -00:00:55 v #838 > > derivative=0, method=None, kwargs={} / f_lineno: 530 / f_code.co_filename: -00:00:55 v #839 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: -00:00:55 v #840 > > arg: None -00:00:55 v #841 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(1+0j), a=1, -00:00:55 v #842 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 531 / f_code.co_filename: -00:00:55 v #843 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: -00:00:55 v #844 > > arg: None -00:00:55 v #845 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(1+0j), a=1, -00:00:55 v #846 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 532 / f_code.co_filename: -00:00:55 v #847 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: -00:00:55 v #848 > > arg: None -00:00:55 v #849 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(1+0j), a=1, -00:00:55 v #850 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533 / f_code.co_filename: -00:00:55 v #851 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: -00:00:55 v #852 > > arg: None -00:00:55 v #853 > > │ call(zeta_) / f_code.co_name: f / f_locals: x=(1+0j), -00:00:55 v #854 > > kwargs={}, name='zeta' / f_lineno: 989 / f_code.co_filename: -00:00:55 v #855 > > \mpmath\ctx_mp_python.py / f_back.f_lineno: 533 / f_back.f_code.co_filename: -00:00:55 v #856 > > \mpmath\functions\zeta.py / arg: None -00:00:55 v #857 > > │ line(zeta_) / f_code.co_name: f / f_locals: x=(1+0j), -00:00:55 v #858 > > kwargs={}, name='zeta' / f_linen...back object at 0x<?>>) -00:00:55 v #859 > > │ return(gamma_) / f_code.co_name: f / f_locals: -00:00:55 v #860 > > x=mpc(real='0.0', imag='0.0'), kwargs={}, name='gamma', prec=53, rounding='n' -00:00:55 v #861 > > f_lineno: 1007 / f_code.co_filename: \mpmath\ctx_mp_python.py / f_back.f_lineno: -00:00:55 v #862 > > 25 / f_back.f_code.co_filename: / arg: None -00:00:55 v #863 > > │ exception(gamma_) / f_code.co_name: fn / f_locals: log=True, -00:00:55 v #864 > > s=0j / f_lineno: 25 / f_code.co_filename: / f_back.f_lineno: -00:00:55 v #865 > > f_back.f_code.co_filename: / arg: (<class 'ValueError'>, ValueError('gamma -00:00:55 v #866 > > function pole'), <traceback object at 0x<?>>) -00:00:55 v #867 > > │ line(gamma_) / f_code.co_name: fn / f_locals: log=True, s=0j -00:00:55 v #868 > > / f_lineno: 29 / f_code.co_filename: / f_back.f_lineno: -00:00:55 v #869 > > f_back.f_code.co_filename: / arg: None -00:00:55 v #870 > > │ line(gamma_) / f_code.co_name: fn / f_locals: log=True, s=0j, -00:00:55 v #871 > > e=ValueError('gamma function pole') / f_lineno: 30 / f_code.co_filename: -00:00:55 v #872 > > f_back.f_lineno: / f_back.f_code.co_filename: / arg: None -00:00:55 v #873 > > │ line(gamma_) / f_code.co_name: fn / f_locals: log=True, s=0j -00:00:55 v #874 > > / f_lineno: 32 / f_code.co_filename: / f_back.f_lineno: -00:00:55 v #875 > > f_back.f_code.co_filename: / arg: None -00:00:55 v #876 > > │ return(gamma_) / f_code.co_name: fn / f_locals: log=True, -00:00:55 v #877 > > s=0j / f_lineno: 32 / f_code.co_filename: / f_back.f_lineno: -00:00:55 v #878 > > f_back.f_code.co_filename: / arg: (0.0, 0.0) -00:00:55 v #879 > > │ gamma__ / s: Complex { re: 0.0, im: 0.0 } / result: -00:00:55 v #880 > > Ok(Complex { re: 0.0, im: 0.0 }) -00:00:55 v #881 > > │ zeta__ / s: Complex { re: 1.0, im: 0.0 } / result: Ok(Complex -00:00:55 v #882 > > { re: inf, im: 0.0 }) / z: Complex { re: 0.0, im: 0.0 } -00:00:55 v #883 > > │ __assert_eq / actual: inf / expected: inf -00:00:55 v #884 > > │ __assert_eq / actual: 0.0 / expected: 0.0 -00:00:55 v #885 > > │ -00:00:55 v #886 > > -00:00:55 v #887 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:55 v #888 > > │ ## test_symmetry_across_real_axis___ -00:00:55 v #889 > > -00:00:55 v #890 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:55 v #891 > > inl test_symmetry_across_real_axis___ log = run_test log fun zeta, gamma => -00:00:55 v #892 > > inl s = .^(2, 10) -00:00:55 v #893 > > inl result_positive_im = zeta s -00:00:55 v #894 > > inl result_negative_im = zeta .^(re s, -(im s)) -00:00:55 v #895 > > inl conj = result_negative_im |> conj -00:00:55 v #896 > > result_positive_im |> re |> _assert_eq (conj |> re) -00:00:55 v #897 > > result_positive_im |> im |> _assert_eq (conj |> im) -00:00:56 v #898 > > -00:00:56 v #899 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:56 v #900 > > //// test -00:00:56 v #901 > > ///! rust -d num-complex pyo3 -00:00:56 v #902 > > -00:00:56 v #903 > > test_symmetry_across_real_axis___ true -00:00:59 v #904 > > -00:00:59 v #905 > > ── [ 2.97s - return value ] ──────────────────────────────────────────────────── -00:00:59 v #906 > > │ zeta_ / s: (2.0, 10.0) / count: 0 -00:00:59 v #907 > > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(2+10j), -00:00:59 v #908 > > a=1, derivative=0, method=None, kwargs={} / f_lineno: 528 / f_code.co_filename: -00:00:59 v #909 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: -00:00:59 v #910 > > arg: None -00:00:59 v #911 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+10j), -00:00:59 v #912 > > a=1, derivative=0, method=None, kwargs={} / f_lineno: 530 / f_code.co_filename: -00:00:59 v #913 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: -00:00:59 v #914 > > arg: None -00:00:59 v #915 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+10j), -00:00:59 v #916 > > a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: 531 -00:00:59 v #917 > > f_code.co_filename: \mpmath\functions\zeta.py / f_back.f_lineno: 25 -00:00:59 v #918 > > f_back.f_code.co_filename: / arg: None -00:00:59 v #919 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+10j), -00:00:59 v #920 > > a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: 532 -00:00:59 v #921 > > f_code.co_filename: \mpmath\functions\zeta.py / f_back.f_lineno: 25 -00:00:59 v #922 > > f_back.f_code.co_filename: / arg: None -00:00:59 v #923 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+10j), -00:00:59 v #924 > > a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533 -00:00:59 v #925 > > f_code.co_filename: \mpmath\functions\zeta.py / f_back.f_lineno: 25 -00:00:59 v #926 > > f_back.f_code.co_filename: / arg: None -00:00:59 v #927 > > │ call(zeta_) / f_code.co_name: f / f_locals: x=(2+10j), -00:00:59 v #928 > > kwargs={}, name='zeta' / f_lineno: 989 / f_code.co_filename: -00:00:59 v #929 > > \mpmath\ctx_mp_python.py / f_back.f_lineno: 533 / f_back.f_code.co_filename: -00:00:59 v #930 > > \mpmath\functions\zeta.py / arg: None -00:00:59 v #931 > > │ line(zeta_) / f_code.co_name: f / f_locals: x=(2+10j), -00:00:59 v #932 > > kwargs={}, name='zeta' /.../ f_back.f_code.co_filename: \mpmath\libmp\libmpf.py -00:00:59 v #933 > > / arg: None -00:00:59 v #934 > > │ line(zeta_) / f_code.co_name: python_bitcount / f_locals: -00:00:59 v #935 > > n=26, bc=5 / f_lineno: 94 / f_code.co_filename: \mpmath\libmp\libintmath.py -00:00:59 v #936 > > f_back.f_lineno: 778 / f_back.f_code.co_filename: \mpmath\libmp\libmpf.py / arg: -00:00:59 v #937 > > None -00:00:59 v #938 > > │ line(zeta_) / f_code.co_name: python_bitcount / f_locals: -00:00:59 v #939 > > n=26, bc=5 / f_lineno: 95 / f_code.co_filename: \mpmath\libmp\libintmath.py -00:00:59 v #940 > > f_back.f_lineno: 778 / f_back.f_code.co_filename: \mpmath\libmp\libmpf.py / arg: -00:00:59 v #941 > > None -00:00:59 v #942 > > │ return(zeta_) / f_code.co_name: python_bitcount / f_locals: -00:00:59 v #943 > > n=26, bc=5 / f_lineno: 95 / f_code.co_filename: \mpmath\libmp\libintmath.py -00:00:59 v #944 > > f_back.f_lineno: 778 / f_back.f_code.co_filename: \mpmath\libmp\libmpf.py / arg: -00:00:59 v #945 > > 5 -00:00:59 v #946 > > │ line(zeta_) / f_code.co_name: mpf_add / f_locals: s=(0, 1, 2, -00:00:59 v #947 > > 1), t=(0, 25, 2, 5), prec=14, rnd='d', _sub=0, ssign=0, sman=1, sexp=2, sbc=1, -00:00:59 v #948 > > tsign=0, tman=25, texp=2, tbc=5, offset=0, man=26, bc=5 / f_lineno: 779 -00:00:59 v #949 > > f_code.co_filename: \mpmath\libmp\libmpf.py / f_back.f_lineno: 1401 -00:00:59 v #950 > > f_back.f_code.co_filename: \mpmath\libmp\libmpf.py / arg: None -00:00:59 v #951 > > │ zeta_ / result: (1.19798250067418 + 0.0791704917205257j) -00:00:59 v #952 > > count: 1174 -00:00:59 v #953 > > │ zeta / count: 0 / s: Complex { re: 2.0, im: -10.0 } -00:00:59 v #954 > > │ zeta__ / s: Complex { re: 2.0, im: -10.0 } / result: -00:00:59 v #955 > > Ok(Complex { re: 1.1979825006741847, im: 0.07917049172052575 }) / z: Complex { -00:00:59 v #956 > > re: NaN, im: NaN } -00:00:59 v #957 > > │ __assert_eq / actual: 1.1979825006741847 / expected: -00:00:59 v #958 > > 1.1979825006741847 -00:00:59 v #959 > > │ __assert_eq / actual: -0.07917049172052575 / expected: -00:00:59 v #960 > > -0.07917049172052575 -00:00:59 v #961 > > │ -00:00:59 v #962 > > -00:00:59 v #963 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:59 v #964 > > │ ## test_behavior_near_origin___ -00:00:59 v #965 > > -00:00:59 v #966 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:59 v #967 > > inl test_behavior_near_origin___ log = run_test log fun zeta, gamma => -00:00:59 v #968 > > inl s = .^(0.01, 0.01) -00:00:59 v #969 > > inl result = zeta s -00:00:59 v #970 > > result |> re |> _assert_lt limit.max -00:00:59 v #971 > > result |> im |> _assert_lt limit.max -00:00:59 v #972 > > -00:00:59 v #973 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:59 v #974 > > //// test -00:00:59 v #975 > > ///! rust -d num-complex pyo3 -00:00:59 v #976 > > -00:00:59 v #977 > > test_behavior_near_origin___ true -00:01:02 v #978 > > -00:01:02 v #979 > > ── [ 3.01s - return value ] ──────────────────────────────────────────────────── -00:01:02 v #980 > > │ zeta_ / s: (0.01, 0.01) / count: 0 -00:01:02 v #981 > > │ call(zeta_) / f_code.co_name: zeta / f_locals: -00:01:02 v #982 > > s=(0.01+0.01j), a=1, derivative=0, method=None, kwargs={} / f_lineno: 528 -00:01:02 v #983 > > f_code.co_filename: \mpmath\functions\zeta.py / f_back.f_lineno: 25 -00:01:02 v #984 > > f_back.f_code.co_filename: / arg: None -00:01:02 v #985 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: -00:01:02 v #986 > > s=(0.01+0.01j), a=1, derivative=0, method=None, kwargs={} / f_lineno: 530 -00:01:02 v #987 > > f_code.co_filename: \mpmath\functions\zeta.py / f_back.f_lineno: 25 -00:01:02 v #988 > > f_back.f_code.co_filename: / arg: None -00:01:02 v #989 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: -00:01:02 v #990 > > s=(0.01+0.01j), a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: 531 -00:01:02 v #991 > > f_code.co_filename: \mpmath\functions\zeta.py / f_back.f_lineno: 25 -00:01:02 v #992 > > f_back.f_code.co_filename: / arg: None -00:01:02 v #993 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: -00:01:02 v #994 > > s=(0.01+0.01j), a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: 532 -00:01:02 v #995 > > f_code.co_filename: \mpmath\functions\zeta.py / f_back.f_lineno: 25 -00:01:02 v #996 > > f_back.f_code.co_filename: / arg: None -00:01:02 v #997 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: -00:01:02 v #998 > > s=(0.01+0.01j), a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533 -00:01:02 v #999 > > f_code.co_filename: \mpmath\functions\zeta.py / f_back.f_lineno: 25 -00:01:02 v #1000 > > f_back.f_code.co_filename: / arg: None -00:01:02 v #1001 > > │ call(zeta_) / f_code.co_name: f / f_locals: x=(0.01+0.01j), -00:01:02 v #1002 > > kwargs={}, name='zeta' / f_lineno: 989 / f_code.co_filename: -00:01:02 v #1003 > > \mpmath\ctx_mp_python.py / f_back.f_lineno: 533 / f_back.f_code.co_filename: -00:01:02 v #1004 > > \mpmath\functions\zeta.py / arg: None -00:01:02 v #1005 > > │ line(zeta_) / f_code.co_name: f / f_locals: x=(0...py -00:01:02 v #1006 > > f_back.f_lineno: 1007 / f_back.f_code.co_filename: \mpmath\ctx_mp_python.py -00:01:02 v #1007 > > arg: None -00:01:02 v #1008 > > │ line(gamma_) / f_code.co_name: mpc_gamma / f_locals: z=((0, -00:01:02 v #1009 > > 4458563631096791, -52, 52), (1, 5764607523034235, -59, 53)), prec=53, rnd='n', -00:01:02 v #1010 > > type=0, a=(0, 4458563631096791, -52, 52), b=(1, 5764607523034235, -59, 53), -00:01:02 v #1011 > > asign=0, aman=4458563631096791, aexp=-52, abc=52, bsign=1, -00:01:02 v #1012 > > bman=5764607523034235, bexp=-59, bbc=53, wp=73, amag=0, bmag=-6, mag=0, an=0, -00:01:02 v #1013 > > bn=0, absn=0j, gamma_size=0, need_reflection=0, zorig=((0, 4458563631096791, -00:01:02 v #1014 > > -52, 52), (1, 5764607523034235, -59, 53)), yfinal=0, balance_prec=0, -00:01:02 v #1015 > > n_for_stirling=14, need_reduction=True, afix=132131814190692672995328, -00:01:02 v #1016 > > bfix=-94447329657392906240, r=0, zprered=((0, 4458563631096791, -52, 52), (1, -00:01:02 v #1017 > > 5764607523034235, -59, 53)), d=14, rre=56942610883563778729574216337150, -00:01:02 v #1018 > > one=9444732965739290427392, rim=-1820461636508155576115177658065, k=12 -00:01:02 v #1019 > > f_lineno: 2043 / f_code.co_filename: \mpmath\libmp\gammazeta.py -00:01:02 v #1020 > > f_back.f_lineno: 1007 / f_back.f_code.co_filename: \mpmath\ctx_mp_python.py -00:01:02 v #1021 > > arg: None -00:01:02 v #1022 > > │ gamma_ / result: (1.00577030202902 + 0.0059717824054102j) -00:01:02 v #1023 > > count: 383 -00:01:02 v #1024 > > │ gamma__ / s: Complex { re: 0.99, im: -0.01 } / result: -00:01:02 v #1025 > > Ok(Complex { re: 1.005770302029023, im: 0.005971782405410201 }) -00:01:02 v #1026 > > │ zeta__ / s: Complex { re: 0.01, im: 0.01 } / result: -00:01:02 v #1027 > > Ok(Complex { re: -0.5091873433665667, im: -0.00939202213994577 }) / z: Complex { -00:01:02 v #1028 > > re: 0.0, im: 0.0 } -00:01:02 v #1029 > > │ __assert_lt / actual: -0.5091873433665667 / expected: inf -00:01:02 v #1030 > > │ __assert_lt / actual: -0.00939202213994577 / expected: inf -00:01:02 v #1031 > > │ -00:01:02 v #1032 > > -00:01:02 v #1033 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:01:02 v #1034 > > │ ## test_imaginary_axis -00:01:02 v #1035 > > -00:01:02 v #1036 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:02 v #1037 > > inl test_imaginary_axis log = run_test log fun zeta, gamma => -00:01:02 v #1038 > > (join [[ 10; 20; 30; 40; 50; 60; 70; 80; 90; 100 ]]) -00:01:02 v #1039 > > |> listm.iter fun s => -00:01:02 v #1040 > > inl s = .^(0, s) -00:01:02 v #1041 > > inl result = zeta s -00:01:02 v #1042 > > result |> re |> _assert_ne 0 -00:01:02 v #1043 > > result |> im |> _assert_ne 0 -00:01:03 v #1044 > > -00:01:03 v #1045 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:03 v #1046 > > //// test -00:01:03 v #1047 > > ///! rust -d num-complex pyo3 -00:01:03 v #1048 > > -00:01:03 v #1049 > > test_imaginary_axis true -00:01:06 v #1050 > > -00:01:06 v #1051 > > ── [ 3.45s - return value ] ──────────────────────────────────────────────────── -00:01:06 v #1052 > > │ zeta_ / s: (0.0, 10.0) / count: 0 -00:01:06 v #1053 > > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=10j, a=1, -00:01:06 v #1054 > > derivative=0, method=None, kwargs={} / f_lineno: 528 / f_code.co_filename: -00:01:06 v #1055 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: -00:01:06 v #1056 > > arg: None -00:01:06 v #1057 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=10j, a=1, -00:01:06 v #1058 > > derivative=0, method=None, kwargs={} / f_lineno: 530 / f_code.co_filename: -00:01:06 v #1059 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: -00:01:06 v #1060 > > arg: None -00:01:06 v #1061 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=10j, a=1, -00:01:06 v #1062 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 531 / f_code.co_filename: -00:01:06 v #1063 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: -00:01:06 v #1064 > > arg: None -00:01:06 v #1065 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=10j, a=1, -00:01:06 v #1066 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 532 / f_code.co_filename: -00:01:06 v #1067 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: -00:01:06 v #1068 > > arg: None -00:01:06 v #1069 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=10j, a=1, -00:01:06 v #1070 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533 / f_code.co_filename: -00:01:06 v #1071 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: -00:01:06 v #1072 > > arg: None -00:01:06 v #1073 > > │ call(zeta_) / f_code.co_name: f / f_locals: x=10j, kwargs={}, -00:01:06 v #1074 > > name='zeta' / f_lineno: 989 / f_code.co_filename: \mpmath\ctx_mp_python.py -00:01:06 v #1075 > > f_back.f_lineno: 533 / f_back.f_code.co_filename: \mpmath\functions\zeta.py -00:01:06 v #1076 > > arg: None -00:01:06 v #1077 > > │ line(zeta_) / f_code.co_name: f / f_locals: x=10j, kwargs={}, -00:01:06 v #1078 > > name='zeta' / f_lineno: 990 / f_code.co_f...g: None -00:01:06 v #1079 > > │ line(gamma_) / f_code.co_name: to_fixed / f_locals: s=(0, 1, -00:01:06 v #1080 > > 0, 1), prec=83 / f_lineno: 511 / f_code.co_filename: \mpmath\libmp\libmpf.py -00:01:06 v #1081 > > f_back.f_lineno: 2031 / f_back.f_code.co_filename: \mpmath\libmp\gammazeta.py -00:01:06 v #1082 > > arg: None -00:01:06 v #1083 > > │ line(gamma_) / f_code.co_name: to_fixed / f_locals: s=(0, 1, -00:01:06 v #1084 > > 0, 1), prec=83, sign=0, man=1, exp=0, bc=1 / f_lineno: 512 / f_code.co_filename: -00:01:06 v #1085 > > \mpmath\libmp\libmpf.py / f_back.f_lineno: 2031 / f_back.f_code.co_filename: -00:01:06 v #1086 > > \mpmath\libmp\gammazeta.py / arg: None -00:01:06 v #1087 > > │ line(gamma_) / f_code.co_name: to_fixed / f_locals: s=(0, 1, -00:01:06 v #1088 > > 0, 1), prec=83, sign=0, man=1, exp=0, bc=1, offset=83 / f_lineno: 513 -00:01:06 v #1089 > > f_code.co_filename: \mpmath\libmp\libmpf.py / f_back.f_lineno: 2031 -00:01:06 v #1090 > > f_back.f_code.co_filename: \mpmath\libmp\gammazeta.py / arg: None -00:01:06 v #1091 > > │ line(gamma_) / f_code.co_name: to_fixed / f_locals: s=(0, 1, -00:01:06 v #1092 > > 0, 1), prec=83, sign=0, man=1, exp=0, bc=1, offset=83 / f_lineno: 517 -00:01:06 v #1093 > > f_code.co_filename: \mpmath\libmp\libmpf.py / f_back.f_lineno: 2031 -00:01:06 v #1094 > > f_back.f_code.co_filename: \mpmath\libmp\gammazeta.py / arg: None -00:01:06 v #1095 > > │ gamma_ / result: (-1.51425318049776e-67 + -00:01:06 v #1096 > > 2.79082155561748e-69j) / count: 289 -00:01:06 v #1097 > > │ gamma__ / s: Complex { re: 1.0, im: -100.0 } / result: -00:01:06 v #1098 > > Ok(Complex { re: -1.514253180497756e-67, im: 2.7908215556174775e-69 }) -00:01:06 v #1099 > > │ zeta__ / s: Complex { re: 0.0, im: 100.0 } / result: -00:01:06 v #1100 > > Ok(Complex { re: 6.51721042625301, im: 0.18128842533791736 }) / z: Complex { re: -00:01:06 v #1101 > > 0.0, im: 0.0 } -00:01:06 v #1102 > > │ __assert_ne / actual: 6.51721042625301 / expected: 0.0 -00:01:06 v #1103 > > │ __assert_ne / actual: 0.18128842533791736 / expected: 0.0 -00:01:06 v #1104 > > │ -00:01:06 v #1105 > > -00:01:06 v #1106 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:01:06 v #1107 > > │ ## test_critical_strip -00:01:06 v #1108 > > -00:01:06 v #1109 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:06 v #1110 > > inl test_critical_strip log = run_test log fun zeta, gamma => -00:01:06 v #1111 > > (join [[ -00:01:06 v #1112 > > .^(0.5, 14.134725) -00:01:06 v #1113 > > .^(0.75, 20.5) -00:01:06 v #1114 > > .^(1.25, 30.1) -00:01:06 v #1115 > > .^(0.25, 40.0) -00:01:06 v #1116 > > .^(1.0, 50.0) -00:01:06 v #1117 > > ]]) -00:01:06 v #1118 > > |> listm.iter fun s => -00:01:06 v #1119 > > inl result = zeta s -00:01:06 v #1120 > > result |> re |> _assert_ne 0 -00:01:06 v #1121 > > result |> im |> _assert_ne 0 -00:01:07 v #1122 > > -00:01:07 v #1123 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:07 v #1124 > > //// test -00:01:07 v #1125 > > ///! rust -d num-complex pyo3 -00:01:07 v #1126 > > -00:01:07 v #1127 > > test_critical_strip true -00:01:10 v #1128 > > -00:01:10 v #1129 > > ── [ 3.78s - return value ] ──────────────────────────────────────────────────── -00:01:10 v #1130 > > │ zeta_ / s: (0.5, 14.134725) / count: 0 -00:01:10 v #1131 > > │ call(zeta_) / f_code.co_name: zeta / f_locals: -00:01:10 v #1132 > > s=(0.5+14.134725j), a=1, derivative=0, method=None, kwargs={} / f_lineno: 528 -00:01:10 v #1133 > > f_code.co_filename: \mpmath\functions\zeta.py / f_back.f_lineno: 25 -00:01:10 v #1134 > > f_back.f_code.co_filename: / arg: None -00:01:10 v #1135 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: -00:01:10 v #1136 > > s=(0.5+14.134725j), a=1, derivative=0, method=None, kwargs={} / f_lineno: 530 -00:01:10 v #1137 > > f_code.co_filename: \mpmath\functions\zeta.py / f_back.f_lineno: 25 -00:01:10 v #1138 > > f_back.f_code.co_filename: / arg: None -00:01:10 v #1139 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: -00:01:10 v #1140 > > s=(0.5+14.134725j), a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: -00:01:10 v #1141 > > 531 / f_code.co_filename: \mpmath\functions\zeta.py / f_back.f_lineno: 25 -00:01:10 v #1142 > > f_back.f_code.co_filename: / arg: None -00:01:10 v #1143 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: -00:01:10 v #1144 > > s=(0.5+14.134725j), a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: -00:01:10 v #1145 > > 532 / f_code.co_filename: \mpmath\functions\zeta.py / f_back.f_lineno: 25 -00:01:10 v #1146 > > f_back.f_code.co_filename: / arg: None -00:01:10 v #1147 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: -00:01:10 v #1148 > > s=(0.5+14.134725j), a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: -00:01:10 v #1149 > > 533 / f_code.co_filename: \mpmath\functions\zeta.py / f_back.f_lineno: 25 -00:01:10 v #1150 > > f_back.f_code.co_filename: / arg: None -00:01:10 v #1151 > > │ call(zeta_) / f_code.co_name: f / f_locals: -00:01:10 v #1152 > > x=(0.5+14.134725j), kwargs={}, name='zeta' / f_lineno: 989 / f_code.co_filename: -00:01:10 v #1153 > > \mpmath\ctx_mp_python.py / f_back.f_lineno: 533 / f_back.f_code.co_filename: -00:01:10 v #1154 > > \mpmath\functions\zeta.py / arg: None -00:01:10 v #1155 > > │ line(zeta_) / f_code...210, sim=241793223535862290161314995 -00:01:10 v #1156 > > f_lineno: 1648 / f_code.co_filename: \mpmath\libmp\gammazeta.py -00:01:10 v #1157 > > f_back.f_lineno: 2050 / f_back.f_code.co_filename: \mpmath\libmp\gammazeta.py -00:01:10 v #1158 > > arg: None -00:01:10 v #1159 > > │ line(gamma_) / f_code.co_name: complex_stirling_series -00:01:10 v #1160 > > f_locals: x=0, y=-241785163922925834941235200, prec=82, -00:01:10 v #1161 > > _m=12089258196146291747061760000, tre=0, tim=396, ure=-1934281311383406679530, -00:01:10 v #1162 > > uim=0, sre=4443714077719696485012210, sim=241793223535862290161314995 -00:01:10 v #1163 > > f_lineno: 1649 / f_code.co_filename: \mpmath\libmp\gammazeta.py -00:01:10 v #1164 > > f_back.f_lineno: 2050 / f_back.f_code.co_filename: \mpmath\libmp\gammazeta.py -00:01:10 v #1165 > > arg: None -00:01:10 v #1166 > > │ line(gamma_) / f_code.co_name: complex_stirling_series -00:01:10 v #1167 > > f_locals: x=0, y=-241785163922925834941235200, prec=82, -00:01:10 v #1168 > > _m=12089258196146291747061760000, tre=0, tim=396, ure=-1934281311383406679530, -00:01:10 v #1169 > > uim=0, sre=4443714077719696485012210, sim=241793223535862290161314997 -00:01:10 v #1170 > > f_lineno: 1650 / f_code.co_filename: \mpmath\libmp\gammazeta.py -00:01:10 v #1171 > > f_back.f_lineno: 2050 / f_back.f_code.co_filename: \mpmath\libmp\gammazeta.py -00:01:10 v #1172 > > arg: None -00:01:10 v #1173 > > │ gamma_ / result: (2.63173210619768e-35 - -00:01:10 v #1174 > > 8.16464935465334e-36j) / count: 262 -00:01:10 v #1175 > > │ gamma__ / s: Complex { re: 0.0, im: -50.0 } / result: -00:01:10 v #1176 > > Ok(Complex { re: 2.6317321061976804e-35, im: -8.164649354653339e-36 }) -00:01:10 v #1177 > > │ zeta__ / s: Complex { re: 1.0, im: 50.0 } / result: -00:01:10 v #1178 > > Ok(Complex { re: 0.44103873082309397, im: 0.281582455029683 }) / z: Complex { -00:01:10 v #1179 > > re: 0.0, im: 0.0 } -00:01:10 v #1180 > > │ __assert_ne / actual: 0.44103873082309397 / expected: 0.0 -00:01:10 v #1181 > > │ __assert_ne / actual: 0.281582455029683 / expected: 0.0 -00:01:10 v #1182 > > │ -00:01:10 v #1183 > > -00:01:10 v #1184 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:01:10 v #1185 > > │ ## test_reflection_formula_for_specific_value -00:01:10 v #1186 > > -00:01:10 v #1187 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:10 v #1188 > > inl test_reflection_formula_for_specific_value log = run_test log fun zeta, -00:01:10 v #1189 > > gamma => -00:01:10 v #1190 > > (join [[ -00:01:10 v #1191 > > .^(3, 4) -00:01:10 v #1192 > > .^(2.5, -3.5) -00:01:10 v #1193 > > .^(1.5, 2.5) -00:01:10 v #1194 > > .^(0.5, 14.134725) -00:01:10 v #1195 > > ]]) -00:01:10 v #1196 > > |> listm.iter fun s => -00:01:10 v #1197 > > inl lhs = zeta s -00:01:10 v #1198 > > inl reflection_coefficient = -00:01:10 v #1199 > > (.^(2, 0) .** s) -00:01:10 v #1200 > > .* (.^(pi, 0) .** (s .- .^(1, 0))) -00:01:10 v #1201 > > .* (.^(pi, 0) .* s ./ .^(2, 0) |> complex_sin) -00:01:10 v #1202 > > .* gamma (.^(1, 0) .- s) -00:01:10 v #1203 > > -00:01:10 v #1204 > > inl one_minus_s = .^(1 - re s, -(im s)) -00:01:10 v #1205 > > inl rhs = reflection_coefficient .* zeta one_minus_s -00:01:10 v #1206 > > -00:01:10 v #1207 > > re lhs - re rhs |> abs |> _assert_lt 0.0001 -00:01:10 v #1208 > > im lhs - im rhs |> abs |> _assert_lt 0.0001 -00:01:11 v #1209 > > -00:01:11 v #1210 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:11 v #1211 > > //// test -00:01:11 v #1212 > > ///! rust -d num-complex pyo3 -00:01:11 v #1213 > > -00:01:11 v #1214 > > test_reflection_formula_for_specific_value true -00:01:14 v #1215 > > -00:01:14 v #1216 > > ── [ 3.29s - return value ] ──────────────────────────────────────────────────── -00:01:14 v #1217 > > │ zeta_ / s: (3.0, 4.0) / count: 0 -00:01:14 v #1218 > > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(3+4j), a=1, -00:01:14 v #1219 > > derivative=0, method=None, kwargs={} / f_lineno: 528 / f_code.co_filename: -00:01:14 v #1220 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: -00:01:14 v #1221 > > arg: None -00:01:14 v #1222 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(3+4j), a=1, -00:01:14 v #1223 > > derivative=0, method=None, kwargs={} / f_lineno: 530 / f_code.co_filename: -00:01:14 v #1224 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: -00:01:14 v #1225 > > arg: None -00:01:14 v #1226 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(3+4j), a=1, -00:01:14 v #1227 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 531 / f_code.co_filename: -00:01:14 v #1228 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: -00:01:14 v #1229 > > arg: None -00:01:14 v #1230 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(3+4j), a=1, -00:01:14 v #1231 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 532 / f_code.co_filename: -00:01:14 v #1232 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: -00:01:14 v #1233 > > arg: None -00:01:14 v #1234 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(3+4j), a=1, -00:01:14 v #1235 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533 / f_code.co_filename: -00:01:14 v #1236 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: -00:01:14 v #1237 > > arg: None -00:01:14 v #1238 > > │ call(zeta_) / f_code.co_name: f / f_locals: x=(3+4j), -00:01:14 v #1239 > > kwargs={}, name='zeta' / f_lineno: 989 / f_code.co_filename: -00:01:14 v #1240 > > \mpmath\ctx_mp_python.py / f_back.f_lineno: 533 / f_back.f_code.co_filename: -00:01:14 v #1241 > > \mpmath\functions\zeta.py / arg: None -00:01:14 v #1242 > > │ line(zeta_) / f_code.co_name: f / f_locals: x=(3+4j), -00:01:14 v #1243 > > kwargs={}, name='zeta' / f_linen...045 / f_code.co_filename: -00:01:14 v #1244 > > \mpmath\libmp\gammazeta.py / f_back.f_lineno: 1007 / f_back.f_code.co_filename: -00:01:14 v #1245 > > \mpmath\ctx_mp_python.py / arg: None -00:01:14 v #1246 > > │ line(gamma_) / f_code.co_name: mpc_gamma / f_locals: z=((0, -00:01:14 v #1247 > > 1, -1, 1), (0, 3978571390186527, -48, 52)), prec=53, rnd='n', type=0, a=(0, 1, -00:01:14 v #1248 > > -1, 1), b=(0, 3978571390186527, -48, 52), asign=0, aman=1, aexp=-1, abc=1, -00:01:14 v #1249 > > bsign=0, bman=3978571390186527, bexp=-48, bbc=52, wp=79, amag=0, bmag=4, mag=4, -00:01:14 v #1250 > > an=0, bn=14, absn=14j, gamma_size=56, need_reflection=0, zorig=((0, 1, -1, 1), -00:01:14 v #1251 > > (0, 3978571390186527, -48, 52)), yfinal=0, balance_prec=0, n_for_stirling=15, -00:01:14 v #1252 > > need_reduction=True, afix=2115620184325601055735808, -00:01:14 v #1253 > > bfix=8543917002826194402410496, r=0, zprered=((0, 1, -1, 1), (0, -00:01:14 v #1254 > > 3978571390186527, -48, 52)), d=5, rre=-542313259704087430481959845, -00:01:14 v #1255 > > one=604462909807314587353088, rim=-1657865507045117397880679064, k=2 / f_lineno: -00:01:14 v #1256 > > 2043 / f_code.co_filename: \mpmath\libmp\gammazeta.py / f_back.f_lineno: 1007 -00:01:14 v #1257 > > f_back.f_code.co_filename: \mpmath\ctx_mp_python.py / arg: None -00:01:14 v #1258 > > │ gamma_ / result: (-1.4455538437607e-10 - -00:01:14 v #1259 > > 5.52278876877407e-10j) / count: 318 -00:01:14 v #1260 > > │ gamma__ / s: Complex { re: 0.5, im: 14.134725 } / result: -00:01:14 v #1261 > > Ok(Complex { re: -1.4455538437606964e-10, im: -5.522788768774066e-10 }) -00:01:14 v #1262 > > │ zeta__ / s: Complex { re: 0.5, im: -14.134725 } / result: -00:01:14 v #1263 > > Ok(Complex { re: 1.7674298413849186e-8, im: 1.1102028930923156e-7 }) / z: -00:01:14 v #1264 > > Complex { re: 0.0, im: 0.0 } -00:01:14 v #1265 > > │ __assert_lt / actual: 4.499862532288471e-22 / expected: -00:01:14 v #1266 > > 0.0001 -00:01:14 v #1267 > > │ __assert_lt / actual: 1.4558378780933287e-22 / expected: -00:01:14 v #1268 > > 0.0001 -00:01:14 v #1269 > > │ -00:01:14 v #1270 > > -00:01:14 v #1271 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:01:14 v #1272 > > │ ## test_euler_product_formula -00:01:14 v #1273 > > -00:01:14 v #1274 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:14 v #1275 > > inl test_euler_product_formula log = run_test log fun zeta, gamma => -00:01:14 v #1276 > > inl s_values = join [[ 2; 2.5; 3; 3.5; 4; 4.5; 5 ]] -00:01:14 v #1277 > > inl primes = join [[ 2; 3; 5; 7; 11; 13; 17; 19; 23; 29; 31; 37; 41; 43; 47; -00:01:14 v #1278 > > 53; 59; 61; 67; 71 ]] -00:01:14 v #1279 > > s_values -00:01:14 v #1280 > > |> listm.iter fun s_re => -00:01:14 v #1281 > > inl s = .^(s_re, 0) -00:01:14 v #1282 > > inl product = -00:01:14 v #1283 > > (1, primes) -00:01:14 v #1284 > > ||> listm.fold fun acc x => -00:01:14 v #1285 > > acc * 1 / (1 - x ** -s_re) -00:01:14 v #1286 > > -00:01:14 v #1287 > > inl result = zeta s -00:01:14 v #1288 > > re result - product |> abs |> _assert_lt 0.01 -00:01:14 v #1289 > > result |> im |> _assert_lt 0.01 -00:01:15 v #1290 > > -00:01:15 v #1291 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:15 v #1292 > > //// test -00:01:15 v #1293 > > ///! rust -d num-complex pyo3 -00:01:15 v #1294 > > -00:01:15 v #1295 > > test_euler_product_formula true -00:01:18 v #1296 > > -00:01:18 v #1297 > > ── [ 3.32s - return value ] ──────────────────────────────────────────────────── -00:01:18 v #1298 > > │ zeta_ / s: (2.0, 0.0) / count: 0 -00:01:18 v #1299 > > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, -00:01:18 v #1300 > > derivative=0, method=None, kwargs={} / f_lineno: 528 / f_code.co_filename: -00:01:18 v #1301 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: -00:01:18 v #1302 > > arg: None -00:01:18 v #1303 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, -00:01:18 v #1304 > > derivative=0, method=None, kwargs={} / f_lineno: 530 / f_code.co_filename: -00:01:18 v #1305 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: -00:01:18 v #1306 > > arg: None -00:01:18 v #1307 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, -00:01:18 v #1308 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 531 / f_code.co_filename: -00:01:18 v #1309 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: -00:01:18 v #1310 > > arg: None -00:01:18 v #1311 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, -00:01:18 v #1312 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 532 / f_code.co_filename: -00:01:18 v #1313 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: -00:01:18 v #1314 > > arg: None -00:01:18 v #1315 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, -00:01:18 v #1316 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533 / f_code.co_filename: -00:01:18 v #1317 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: -00:01:18 v #1318 > > arg: None -00:01:18 v #1319 > > │ call(zeta_) / f_code.co_name: f / f_locals: x=(2+0j), -00:01:18 v #1320 > > kwargs={}, name='zeta' / f_lineno: 989 / f_code.co_filename: -00:01:18 v #1321 > > \mpmath\ctx_mp_python.py / f_back.f_lineno: 533 / f_back.f_code.co_filename: -00:01:18 v #1322 > > \mpmath\functions\zeta.py / arg: None -00:01:18 v #1323 > > │ line(zeta_) / f_code.co_name: f / f_locals: x=(2+0j), -00:01:18 v #1324 > > kwargs={}, name='zeta' / f_linen...k.f_lineno: 985 / f_back.f_code.co_filename: -00:01:18 v #1325 > > \mpmath\libmp\gammazeta.py / arg: None -00:01:18 v #1326 > > │ line(zeta_) / f_code.co_name: mpf_zeta_int / f_locals: s=5, -00:01:18 v #1327 > > prec=53, rnd='n', wp=73, m=19.25, needed_terms=623488, n=33, d=[1, 2179, 792067, -00:01:18 v #1328 > > 115062531, 8930212611, 429314925315, 13983537177347, 327666966438659, -00:01:18 v #1329 > > 5764846406968067, 78615943485956867, 851604426176701187, 7470527451121689347, -00:01:18 v #1330 > > 53898915046387983107, 323897845985013506819, 1638178356374090130179, -00:01:18 v #1331 > > 7034281785235908174595, 25833609859980306522883, 81661917475887913739011, -00:01:18 v #1332 > > 223448095548034217779971, 532029677981012660429571, 1108048631855905753375491, -00:01:18 v #1333 > > 2029946562680066824315651, 3292927237466655352791811, 4769455369342763680768771, -00:01:18 v #1334 > > 6235511670496346417767171, 7463408621503347142796035, 8322751284048216428487427, -00:01:18 v #1335 > > 8818779962777819524211459, 9050689474911140452082435, 9136270117622166323831555, -00:01:18 v #1336 > > 9160252037839493347779331, 9165045885455648617505539, 9165654628010081032708867, -00:01:18 v #1337 > > 9165691521498228451812099], t=-84153986440240940095109733900764881301998910956, -00:01:18 v #1338 > > k=26 / f_lineno: 954 / f_code.co_filename: \mpmath\libmp\gammazeta.py -00:01:18 v #1339 > > f_back.f_lineno: 985 / f_back.f_code.co_filename: \mpmath\libmp\gammazeta.py -00:01:18 v #1340 > > arg: None -00:01:18 v #1341 > > │ zeta_ / result: (1.03692775514337 + 0.0j) / count: 228 -00:01:18 v #1342 > > │ zeta / count: 0 / s: Complex { re: 5.0, im: 0.0 } -00:01:18 v #1343 > > │ zeta__ / s: Complex { re: 5.0, im: 0.0 } / result: Ok(Complex -00:01:18 v #1344 > > { re: 1.03692775514337, im: 0.0 }) / z: Complex { re: NaN, im: NaN } -00:01:18 v #1345 > > │ __assert_lt / actual: 2.0033654735129858e-9 / expected: 0.01 -00:01:18 v #1346 > > │ __assert_lt / actual: 0.0 / expected: 0.01 -00:01:18 v #1347 > > │ -00:01:18 v #1348 > > -00:01:18 v #1349 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:01:18 v #1350 > > │ ## graph -00:01:18 v #1351 > > -00:01:18 v #1352 > > ── mermaid ───────────────────────────────────────────────────────────────────── -00:01:18 v #1353 > > │ <div class="mermaidMarkdownContainer" -00:01:18 v #1354 > > style="background-color:white"> -00:01:18 v #1355 > > │ <link rel="stylesheet" -00:01:18 v #1356 > > href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.2.0/css/all.min.css" -00:01:18 v #1357 > > > -00:01:18 v #1358 > > │ <div id="44ec0c7d9a1e4cd0b977ba465a25c46e"></div> -00:01:18 v #1359 > > │ <script type="module"> -00:01:18 v #1360 > > │ -00:01:18 v #1361 > > │ import mermaid from -00:01:18 v #1362 > > 'https://cdn.jsdelivr.net/npm/mermaid@10.6.1/dist/mermaid.esm.min.mjs'; -00:01:18 v #1363 > > │ let renderTarget = -00:01:18 v #1364 > > document.getElementById('44ec0c7d9a1e4cd0b977ba465a25c46e'); -00:01:18 v #1365 > > │ try { -00:01:18 v #1366 > > │ const {svg, bindFunctions} = await -00:01:18 v #1367 > > mermaid.mermaidAPI.render( -00:01:18 v #1368 > > │ -00:01:18 v #1369 > > 'mermaid_44ec0c7d9a1e4cd0b977ba465a25c46e', -00:01:18 v #1370 > > │ `graph TD -00:01:18 v #1371 > > │ zeta("zeta()") --> convert -00:01:18 v #1372 > > │ zeta --> f["f()"] -00:01:18 v #1373 > > │ f --> mpc_f["mpc_zeta()"] -00:01:18 v #1374 > > │ f --> mpf_f["mpf_zeta()"] -00:01:18 v #1375 > > │ convert --> from_float -00:01:18 v #1376 > > │ from_float --> from_man_exp -00:01:18 v #1377 > > │ from_man_exp --> python_bitcount -00:01:18 v #1378 > > │ python_bitcount --> _normalize -00:01:18 v #1379 > > │ _normalize --> make_mpc -00:01:18 v #1380 > > │ make_mpc --> mpc_zeta["mpc_zeta()"] -00:01:18 v #1381 > > │ mpc_zeta --> mpf_zeta["mpf_zeta()"] -00:01:18 v #1382 > > │ mpf_zeta --> to_int -00:01:18 v #1383 > > │ to_int --> mpf_zeta_int["mpf_zeta_int()"] -00:01:18 v #1384 > > │ mpf_zeta_int --> borwein_coefficients -00:01:18 v #1385 > > │ borwein_coefficients --> -00:01:18 v #1386 > > from_man_exp_2("from_man_exp()") -00:01:18 v #1387 > > │ from_man_exp_2 --> -00:01:18 v #1388 > > python_bitcount_2("python_bitcount()") -00:01:18 v #1389 > > │ python_bitcount_2 --> _normalize_2("_normalize()") -00:01:18 v #1390 > > │ _normalize_2 --> make_mpc_2("make_mpc()") -00:01:18 v #1391 > > │ make_mpc_2 --> stop_trace -00:01:18 v #1392 > > │ mpf_zeta_int --> mpf_bernoulli -00:01:18 v #1393 > > │ mpf_bernoulli --> bernoulli_size -00:01:18 v #1394 > > │ bernoulli_size --> mpf_rdiv_int -00:01:18 v #1395 > > │ mpf_rdiv_int --> python_bitcount_3("python_bitcount()") -00:01:18 v #1396 > > │ python_bitcount_3 --> _normalize1 -00:01:18 v #1397 > > │ _normalize1 --> from_man_exp_3("from_man_exp()") -00:01:18 v #1398 > > │ from_man_exp_3 --> _normalize_3("_normalize()") -00:01:18 v #1399 > > │ _normalize_3 --> mpf_sub -00:01:18 v #1400 > > │ mpf_sub --> mpf_add -00:01:18 v #1401 > > │ mpf_add --> mpf_neg -00:01:18 v #1402 > > │ mpf_neg --> _normalize1_2("_normalize1()") -00:01:18 v #1403 > > │ _normalize1_2 --> from_int -00:01:18 v #1404 > > │ from_int --> mpf_div -00:01:18 v #1405 > > │ mpf_div --> python_bitcount_4("python_bitcount()") -00:01:18 v #1406 > > │ python_bitcount_4 --> _normalize1_3("_normalize1()") -00:01:18 v #1407 > > │ _normalize1_3 --> make_mpc_3("make_mpc()") -00:01:18 v #1408 > > │ make_mpc_3 --> final_stop["stop_trace()"]`); -00:01:18 v #1409 > > │ renderTarget.innerHTML = svg; -00:01:18 v #1410 > > │ bindFunctions?.(renderTarget); -00:01:18 v #1411 > > │ } -00:01:18 v #1412 > > │ catch (error) { -00:01:18 v #1413 > > │ console.log(error); -00:01:18 v #1414 > > │ } -00:01:18 v #1415 > > │ </script> -00:01:18 v #1416 > > │ </div> -00:01:18 v #1417 > > │ -00:01:18 v #1418 > > -00:01:18 v #1419 > > ── mermaid ───────────────────────────────────────────────────────────────────── -00:01:18 v #1420 > > │ <div class="mermaidMarkdownContainer" -00:01:18 v #1421 > > style="background-color:white"> -00:01:18 v #1422 > > │ <link rel="stylesheet" -00:01:18 v #1423 > > href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.2.0/css/all.min.css" -00:01:18 v #1424 > > > -00:01:18 v #1425 > > │ <div id="5d0372edf1014d298b245ff08a0a5bb8"></div> -00:01:18 v #1426 > > │ <script type="module"> -00:01:18 v #1427 > > │ -00:01:18 v #1428 > > │ import mermaid from -00:01:18 v #1429 > > 'https://cdn.jsdelivr.net/npm/mermaid@10.6.1/dist/mermaid.esm.min.mjs'; -00:01:18 v #1430 > > │ let renderTarget = -00:01:18 v #1431 > > document.getElementById('5d0372edf1014d298b245ff08a0a5bb8'); -00:01:18 v #1432 > > │ try { -00:01:18 v #1433 > > │ const {svg, bindFunctions} = await -00:01:18 v #1434 > > mermaid.mermaidAPI.render( -00:01:18 v #1435 > > │ -00:01:18 v #1436 > > 'mermaid_5d0372edf1014d298b245ff08a0a5bb8', -00:01:18 v #1437 > > │ `graph TD -00:01:18 v #1438 > > │ zeta_rust("zeta() - Rust") --> num_traits("num-traits") -00:01:18 v #1439 > > │ zeta_rust --> num_bigint("num-bigint") -00:01:18 v #1440 > > │ zeta_rust --> rust_decimal("rust_decimal for -00:01:18 v #1441 > > precision") -00:01:18 v #1442 > > │ zeta_rust --> error_handling("Rust Error Handling") -00:01:18 v #1443 > > │ -00:01:18 v #1444 > > │ num_traits --> num_traits_usage("Use for common -00:01:18 v #1445 > > traits") -00:01:18 v #1446 > > │ num_bigint --> bigint_operations("Arbitrary-precision -00:01:18 v #1447 > > arithmetic operations") -00:01:18 v #1448 > > │ rust_decimal --> decimal_operations("High-precision -00:01:18 v #1449 > > decimal operations") -00:01:18 v #1450 > > │ error_handling --> result_type("Use Result<T, E> for -00:01:18 v #1451 > > error handling") -00:01:18 v #1452 > > │ -00:01:18 v #1453 > > │ bigint_operations --> convert_rust("convert() - Rust") -00:01:18 v #1454 > > │ bigint_operations --> normalize_rust("_normalize() - +00:00:01 d #1 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path math.dib --retries 1"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path math.dib --retries 1; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } +00:00:01 v #2 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "math.dib", "--retries", "1"])) } +00:00:01 v #3 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/lib/math/math.dib", "--output-path", "c:/home/git/polyglot/lib/math/math.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/lib/math/math.dib" --output-path "c:/home/git/polyglot/lib/math/math.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } +00:00:03 v #4 > > +00:00:03 v #5 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:03 v #6 > > │ # math +00:00:06 v #7 > > +00:00:06 v #8 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:06 v #9 > > open testing +00:00:06 v #10 > > open rust.rust_operators +00:00:06 v #11 > > open rust +00:00:08 v #12 > > +00:00:08 v #13 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:08 v #14 > > │ ## complex +00:00:08 v #15 > > +00:00:08 v #16 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:08 v #17 > > nominal complex t = +00:00:08 v #18 > > `( +00:00:08 v #19 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; +00:00:08 v #20 > > Fable.Core.Emit(\"num_complex::Complex<$0>\")>]]\n#endif\ntype +00:00:08 v #21 > > num_complex_Complex<'T> = class end" +00:00:08 v #22 > > $'' : $'num_complex_Complex<`t>' +00:00:08 v #23 > > ) +00:00:08 v #24 > > +00:00:08 v #25 > > inl complex forall t. ((re : t), (im : t)) : complex t = +00:00:08 v #26 > > !\\((re, im), $'"num_complex::Complex::new($0, $1)"') +00:00:08 v #27 > > +00:00:08 v #28 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:08 v #29 > > //// test +00:00:08 v #30 > > ///! rust -d num-complex +00:00:08 v #31 > > +00:00:08 v #32 > > complex (0f64, 0f64) +00:00:08 v #33 > > |> sm'.format' +00:00:08 v #34 > > |> sm'.from_std_string +00:00:08 v #35 > > |> _assert_eq "0+0i" +00:00:17 v #36 > > +00:00:17 v #37 > > ── [ 8.47s - return value ] ──────────────────────────────────────────────────── +00:00:17 v #38 > > │ __assert_eq / actual: "0+0i" / expected: "0+0i" +00:00:17 v #39 > > │ +00:00:17 v #40 > > +00:00:17 v #41 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:17 v #42 > > │ ## re +00:00:17 v #43 > > +00:00:17 v #44 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:17 v #45 > > inl re forall t. (c : complex t) : t = +00:00:17 v #46 > > !\\(c, $'"$0.re"') +00:00:17 v #47 > > +00:00:17 v #48 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:17 v #49 > > │ ## im +00:00:17 v #50 > > +00:00:17 v #51 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:17 v #52 > > inl im forall t. (c : complex t) : t = +00:00:17 v #53 > > !\\(c, $'"$0.im"') +00:00:18 v #54 > > +00:00:18 v #55 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:18 v #56 > > │ ## complex_unbox +00:00:18 v #57 > > +00:00:18 v #58 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:18 v #59 > > inl complex_unbox forall t. (c : complex t) = +00:00:18 v #60 > > re c, im c +00:00:18 v #61 > > +00:00:18 v #62 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:18 v #63 > > │ ## (~.^) +00:00:18 v #64 > > +00:00:18 v #65 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:18 v #66 > > inl (~.^) c = complex c +00:00:18 v #67 > > +00:00:18 v #68 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:18 v #69 > > │ ## complex_eq +00:00:18 v #70 > > +00:00:18 v #71 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:18 v #72 > > inl complex_eq forall t. (a : complex t) (b : complex t) : bool = +00:00:18 v #73 > > !\\((a, b), $'"$0 == $1"') +00:00:19 v #74 > > +00:00:19 v #75 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:19 v #76 > > │ ## (.=) +00:00:19 v #77 > > +00:00:19 v #78 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:19 v #79 > > inl (.=) a b = complex_eq a b +00:00:19 v #80 > > +00:00:19 v #81 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:19 v #82 > > │ ## equable complex +00:00:19 v #83 > > +00:00:19 v #84 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:19 v #85 > > instance equable complex t = complex_eq +00:00:20 v #86 > > +00:00:20 v #87 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:20 v #88 > > │ ## complex_add +00:00:20 v #89 > > +00:00:20 v #90 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:20 v #91 > > inl complex_add forall t. (a : complex t) (b : complex t) : complex t = +00:00:20 v #92 > > !\\((a, b), $'"$0 + $1"') +00:00:20 v #93 > > +00:00:20 v #94 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:20 v #95 > > │ ## (.+) +00:00:20 v #96 > > +00:00:20 v #97 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:20 v #98 > > inl (.+) a b = complex_add a b +00:00:21 v #99 > > +00:00:21 v #100 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:21 v #101 > > │ ## complex_sub +00:00:21 v #102 > > +00:00:21 v #103 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:21 v #104 > > inl complex_sub forall t. (a : complex t) (b : complex t) : complex t = +00:00:21 v #105 > > !\\((a, b), $'"$0 - $1"') +00:00:21 v #106 > > +00:00:21 v #107 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:21 v #108 > > │ ## (.-) +00:00:21 v #109 > > +00:00:21 v #110 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:21 v #111 > > inl (.-) a b = complex_sub a b +00:00:22 v #112 > > +00:00:22 v #113 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:22 v #114 > > │ ## complex_mult +00:00:22 v #115 > > +00:00:22 v #116 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:22 v #117 > > inl complex_mult forall t. (a : complex t) (b : complex t) : complex t = +00:00:22 v #118 > > !\\((a, b), $'"$0 * $1"') +00:00:22 v #119 > > +00:00:22 v #120 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:22 v #121 > > │ ## (.*) +00:00:22 v #122 > > +00:00:22 v #123 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:22 v #124 > > inl (.*) a b = complex_mult a b +00:00:23 v #125 > > +00:00:23 v #126 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:23 v #127 > > │ ## complex_div +00:00:23 v #128 > > +00:00:23 v #129 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:23 v #130 > > inl complex_div forall t. (a : complex t) (b : complex t) : complex t = +00:00:23 v #131 > > !\\((a, b), $'"$0 / $1"') +00:00:23 v #132 > > +00:00:23 v #133 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:23 v #134 > > │ ## (./) +00:00:23 v #135 > > +00:00:23 v #136 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:23 v #137 > > inl (./) a b = complex_div a b +00:00:23 v #138 > > +00:00:23 v #139 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:23 v #140 > > │ ## powc +00:00:23 v #141 > > +00:00:23 v #142 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:23 v #143 > > inl powc forall t. (s : complex t) (c : complex t) : complex t = +00:00:23 v #144 > > !\\((c, s), $'"num_complex::Complex::powc($0, $1)"') +00:00:24 v #145 > > +00:00:24 v #146 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:24 v #147 > > │ ## (.**) +00:00:24 v #148 > > +00:00:24 v #149 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:24 v #150 > > inl (.**) a b = powc b a +00:00:24 v #151 > > +00:00:24 v #152 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:24 v #153 > > │ ## complex_sin +00:00:24 v #154 > > +00:00:24 v #155 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:24 v #156 > > inl complex_sin forall t. (c : complex t) : complex t = +00:00:24 v #157 > > !\\(c, $'"$0.sin()"') +00:00:25 v #158 > > +00:00:25 v #159 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:25 v #160 > > │ ## conj +00:00:25 v #161 > > +00:00:25 v #162 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:25 v #163 > > inl conj forall t. (c : complex t) : complex t = +00:00:25 v #164 > > !\\(c, $'"$0.conj()"') +00:00:25 v #165 > > +00:00:25 v #166 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:25 v #167 > > │ ## zeta +00:00:25 v #168 > > +00:00:25 v #169 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:25 v #170 > > inl zeta log (gamma : complex f64 -> complex f64) (s : complex f64) : complex +00:00:25 v #171 > > f64 = +00:00:25 v #172 > > inl rec zeta count gamma s = +00:00:25 v #173 > > if log then +00:00:25 v #174 > > !\\((count, s), $'"println\!(\\\"zeta / count: {:?} / s: {:?}\\\", +00:00:25 v #175 > > $0, $1)"') +00:00:25 v #176 > > if re s > 1 then +00:00:25 v #177 > > (.^(0, 0), (am.init 10000i32 id : a i32 _)) +00:00:25 v #178 > > ||> am.fold fun acc n => +00:00:25 v #179 > > acc .+ (.^(1, 0) ./ (.^(f64 n, 0) .** s)) +00:00:25 v #180 > > else +00:00:25 v #181 > > inl gamma_term = gamma (.^(1, 0) .- s) +00:00:25 v #182 > > inl sin_term = .^(pi, 0) .* s ./ .^(2, 0) |> complex_sin +00:00:25 v #183 > > inl one_minus_s = .^(1 - re s, -(im s)) +00:00:25 v #184 > > inl mirror_term = +00:00:25 v #185 > > if re one_minus_s <= 1 +00:00:25 v #186 > > then .^(0, 0) +00:00:25 v #187 > > else +00:00:25 v #188 > > if count <= 3 +00:00:25 v #189 > > then zeta (count + 1) gamma one_minus_s +00:00:25 v #190 > > else one_minus_s +00:00:25 v #191 > > inl reflection_formula = +00:00:25 v #192 > > .^(2, 0) .* (.^(pi, 0) .** s) .* sin_term .* gamma_term .* +00:00:25 v #193 > > mirror_term +00:00:25 v #194 > > reflection_formula +00:00:25 v #195 > > join zeta 0i32 gamma s +00:00:26 v #196 > > +00:00:26 v #197 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:26 v #198 > > │ ## bound +00:00:26 v #199 > > +00:00:26 v #200 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:26 v #201 > > nominal bound t = +00:00:26 v #202 > > `( +00:00:26 v #203 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; +00:00:26 v #204 > > Fable.Core.Emit(\"pyo3::Bound<$0>\")>]]\n#endif\ntype pyo3_Bound<'T> = class +00:00:26 v #205 > > end" +00:00:26 v #206 > > $'' : $'pyo3_Bound<`t>' +00:00:26 v #207 > > ) +00:00:26 v #208 > > +00:00:26 v #209 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:26 v #210 > > │ ## python +00:00:26 v #211 > > +00:00:26 v #212 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:26 v #213 > > nominal python = +00:00:26 v #214 > > `( +00:00:26 v #215 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; +00:00:26 v #216 > > Fable.Core.Emit(\"pyo3::Python\")>]]\n#endif\ntype pyo3_Python = class end" +00:00:26 v #217 > > $'' : $'pyo3_Python' +00:00:26 v #218 > > ) +00:00:27 v #219 > > +00:00:27 v #220 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:27 v #221 > > │ ## pymodule +00:00:27 v #222 > > +00:00:27 v #223 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:27 v #224 > > nominal pymodule = +00:00:27 v #225 > > `( +00:00:27 v #226 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; +00:00:27 v #227 > > Fable.Core.Emit(\"pyo3::types::PyModule\")>]]\n#endif\ntype pyo3_types_PyModule +00:00:27 v #228 > > = class end" +00:00:27 v #229 > > $'' : $'pyo3_types_PyModule' +00:00:27 v #230 > > ) +00:00:27 v #231 > > +00:00:27 v #232 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:27 v #233 > > │ ## pyany +00:00:27 v #234 > > +00:00:27 v #235 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:27 v #236 > > nominal pyany = +00:00:27 v #237 > > `( +00:00:27 v #238 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; +00:00:27 v #239 > > Fable.Core.Emit(\"pyo3::PyAny\")>]]\n#endif\ntype pyo3_PyAny = class end" +00:00:27 v #240 > > $'' : $'pyo3_PyAny' +00:00:27 v #241 > > ) +00:00:27 v #242 > > +00:00:27 v #243 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:27 v #244 > > │ ## pyerr +00:00:27 v #245 > > +00:00:27 v #246 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:27 v #247 > > nominal pyerr = +00:00:27 v #248 > > `( +00:00:27 v #249 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; +00:00:27 v #250 > > Fable.Core.Emit(\"pyo3::PyErr\")>]]\n#endif\ntype pyo3_PyErr = class end" +00:00:27 v #251 > > $'' : $'pyo3_PyErr' +00:00:27 v #252 > > ) +00:00:28 v #253 > > +00:00:28 v #254 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:28 v #255 > > │ ## eval +00:00:28 v #256 > > +00:00:28 v #257 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:28 v #258 > > inl module_from_code (py : python) (code : string) : _ (bound pymodule) _ = +00:00:28 v #259 > > inl py = join py +00:00:28 v #260 > > inl code = code |> sm'.to_std_string |> sm'.new_c_string +00:00:28 v #261 > > inl empty = "" |> sm'.to_std_string |> sm'.new_c_string +00:00:28 v #262 > > !\\(code, $'"pyo3::types::PyModule::from_code(!py, &$0, &!empty, &!empty)"') +00:00:28 v #263 > > |> resultm.map_error'' fun (x : pyerr) => x |> sm'.format' +00:00:28 v #264 > > +00:00:28 v #265 > > inl use_pyanymethods () = +00:00:28 v #266 > > global "Fable.Core.RustInterop.emitRustExpr () \");\nuse +00:00:28 v #267 > > pyo3::prelude::PyAnyMethods;\n//\"" +00:00:28 v #268 > > +00:00:28 v #269 > > inl getattr (attr : string) (module : bound pymodule) : _ (bound pyany) _ = +00:00:28 v #270 > > inl attr = join attr +00:00:28 v #271 > > inl attr = attr |> sm'.as_str +00:00:28 v #272 > > inl module = join module +00:00:28 v #273 > > use_pyanymethods () +00:00:28 v #274 > > !\\(attr, $'"!module.getattr($0)"') +00:00:28 v #275 > > |> resultm.map_error'' fun (x : pyerr) => x |> sm'.format' +00:00:28 v #276 > > +00:00:28 v #277 > > inl call forall t. (args : t) (module : bound pyany) : _ (bound pyany) _ = +00:00:28 v #278 > > inl args = join args +00:00:28 v #279 > > inl module = join module +00:00:28 v #280 > > !\($'"pyo3::prelude::PyAnyMethods::call(&!module, ((*!args).0, *(*!args).1), +00:00:28 v #281 > > None)"') +00:00:28 v #282 > > |> resultm.map_error'' fun (x : pyerr) => x |> sm'.format' +00:00:28 v #283 > > +00:00:28 v #284 > > inl extract forall t. (result : bound pyany) : _ t _ = +00:00:28 v #285 > > inl result = join result +00:00:28 v #286 > > use_pyanymethods () +00:00:28 v #287 > > !\($'"!result.extract()"') +00:00:28 v #288 > > |> resultm.map_error'' fun (x : pyerr) => x |> sm'.format' +00:00:28 v #289 > > +00:00:28 v #290 > > inl eval py code (args : pair bool (pair f64 f64)) : _ (_ f64) sm'.std_string = +00:00:28 v #291 > > inl code = +00:00:28 v #292 > > code +00:00:28 v #293 > > |> module_from_code py +00:00:28 v #294 > > |> resultm.unwrap' +00:00:28 v #295 > > inl fn = +00:00:28 v #296 > > code +00:00:28 v #297 > > |> getattr "fn" +00:00:28 v #298 > > |> resultm.unwrap' +00:00:28 v #299 > > +00:00:28 v #300 > > fn +00:00:28 v #301 > > |> call args +00:00:28 v #302 > > |> resultm.try' +00:00:28 v #303 > > |> extract +00:00:28 v #304 > > |> resultm.try' +00:00:28 v #305 > > |> complex +00:00:28 v #306 > > |> Ok +00:00:28 v #307 > > |> resultm.box +00:00:28 v #308 > > +00:00:28 v #309 > > inl call1_ log py s code = +00:00:28 v #310 > > inl code = join (a code : _ i32 _) |> sm'.concat_array "\n" +00:00:28 v #311 > > +00:00:28 v #312 > > inl s = new_pair (re s) (im s) +00:00:28 v #313 > > inl args = new_pair log s +00:00:28 v #314 > > +00:00:28 v #315 > > eval py code args +00:00:28 v #316 > > +00:00:28 v #317 > > inl call1_ log name py s line = +00:00:28 v #318 > > inl s = join s +00:00:28 v #319 > > join +00:00:28 v #320 > > ;[[ +00:00:28 v #321 > > $'$"import sys"' +00:00:28 v #322 > > $'$"import traceback"' +00:00:28 v #323 > > $'$"import re"' +00:00:28 v #324 > > $'$"count = 0"' +00:00:28 v #325 > > $'$"memory_address_pattern = re.compile(r\' at 0x[[0-9a-fA-F]]+\')"' +00:00:28 v #326 > > $'$"def trace_calls(frame, event, arg):"' +00:00:28 v #327 > > $'$" global count"' +00:00:28 v #328 > > $'$" count += 1"' +00:00:28 v #329 > > $'$" if count < 200:"' +00:00:28 v #330 > > $'$" try:"' +00:00:28 v #331 > > $'$" args = {{ k: v for k, v in frame.f_locals.items() if +00:00:28 v #332 > > frame.f_code.co_name \!= \'make_mpc\' and k not in [[\'ctx\']] and not +00:00:28 v #333 > > callable(v) }}"' +00:00:28 v #334 > > $'$" args_str = \', \'.join([[ +00:00:28 v #335 > > f\\\"{{k}}={{re.sub(memory_address_pattern, \' at 0x<?>\', repr(v))}}\\\" for k, +00:00:28 v #336 > > v in args.items() ]])"' +00:00:28 v #337 > > $'$" print(f\\\"{{event}}({!name}) / f_code.co_name: +00:00:28 v #338 > > {{frame.f_code.co_name}} / f_locals: {{args_str}} / f_lineno: {{frame.f_lineno}} +00:00:28 v #339 > > / f_code.co_filename: +00:00:28 v #340 > > {{frame.f_code.co_filename.split(\'site-packages\')[[-1]]}} / f_back.f_lineno: +00:00:28 v #341 > > {{ \'\' if frame.f_back is None else frame.f_back.f_lineno }} +00:00:28 v #342 > > f_back.f_code.co_filename: {{ \'\' if frame.f_back is None else +00:00:28 v #343 > > frame.f_back.f_code.co_filename.split(\'site-packages\')[[-1]] }} / arg: +00:00:28 v #344 > > {{re.sub(memory_address_pattern, \' at 0x<?>\', repr(arg))}}\\\", flush=True)"' +00:00:28 v #345 > > $'$" except ValueError as e:"' +00:00:28 v #346 > > $'$" print(f\'{!name} / e: {{e}}\', flush=True)"' +00:00:28 v #347 > > $'$" return trace_calls"' +00:00:28 v #348 > > $'$"import mpmath"' +00:00:28 v #349 > > $'$"def fn(log, s):"' +00:00:28 v #350 > > $'$" global count"' +00:00:28 v #351 > > $'$" if log:"' +00:00:28 v #352 > > $'$" print(f\'{!name} / s: {{s}} / count: {{count}}\', +00:00:28 v #353 > > flush=True)"' +00:00:28 v #354 > > $'$" s = complex(*s)"' +00:00:28 v #355 > > $'$" try:"' +00:00:28 v #356 > > $'$" if log: sys.settrace(trace_calls)"' +00:00:28 v #357 > > line +00:00:28 v #358 > > $'$" if log:"' +00:00:28 v #359 > > $'$" sys.settrace(None)"' +00:00:28 v #360 > > $'$" print(f\'{!name} / result: {{s}} / count: +00:00:28 v #361 > > {{count}}\', flush=True)"' +00:00:28 v #362 > > $'$" except ValueError as e:"' +00:00:28 v #363 > > $'$" if s.real == 1:"' +00:00:28 v #364 > > $'$" s = complex(float(\'inf\'), 0)"' +00:00:28 v #365 > > $'$" return (s.real, s.imag)"' +00:00:28 v #366 > > ]] +00:00:28 v #367 > > |> call1_ log py s +00:00:28 v #368 > > +00:00:28 v #369 > > inl gamma_ log py s = +00:00:28 v #370 > > call1_ log "gamma_" py s $'$" s = mpmath.gamma(s)"' +00:00:28 v #371 > > +00:00:28 v #372 > > inl zeta_ log py s = +00:00:28 v #373 > > call1_ log "zeta_" py s $'$" s = mpmath.zeta(s)"' +00:00:28 v #374 > > +00:00:28 v #375 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:28 v #376 > > │ ## run_test +00:00:28 v #377 > > +00:00:28 v #378 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:28 v #379 > > inl run_test log (fn : (complex f64 -> complex f64) * (complex f64 -> complex +00:00:28 v #380 > > f64) -> ()) = +00:00:28 v #381 > > inl fn_ (py : python) : resultm.result' () pyerr = +00:00:28 v #382 > > inl nan () = +00:00:28 v #383 > > !\($'"f64::NAN"') +00:00:28 v #384 > > inl gamma__ = fun (s : complex f64) => +00:00:28 v #385 > > inl result = gamma_ log py s +00:00:28 v #386 > > if log then +00:00:28 v #387 > > inl s = join s +00:00:28 v #388 > > !\($'"println\!(\\\"gamma__ / s: {:?} / result: {:?}\\\", !s, +00:00:28 v #389 > > !result)"') +00:00:28 v #390 > > result |> resultm.ok' |> optionm'.unbox |> optionm'.default_value +00:00:28 v #391 > > .^(nan (), nan ()) +00:00:28 v #392 > > inl zeta__ = fun (s : complex f64) => +00:00:28 v #393 > > inl result = zeta_ log py s +00:00:28 v #394 > > +00:00:28 v #395 > > inl z = zeta true gamma__ s +00:00:28 v #396 > > +00:00:28 v #397 > > if log then +00:00:28 v #398 > > inl s = join s +00:00:28 v #399 > > !\($'"println\!(\\\"zeta__ / s: {:?} / result: {:?} / z: +00:00:28 v #400 > > {:?}\\\", !s, !result, !z)"') +00:00:28 v #401 > > +00:00:28 v #402 > > // re result - re x |> abs +00:00:28 v #403 > > // |> _assert_lt 0.001 +00:00:28 v #404 > > +00:00:28 v #405 > > // im result - im x |> abs +00:00:28 v #406 > > // |> _assert_lt 0.001 +00:00:28 v #407 > > +00:00:28 v #408 > > result |> resultm.ok' |> optionm'.unbox |> optionm'.default_value +00:00:28 v #409 > > .^(nan (), nan ()) +00:00:28 v #410 > > join fn (zeta__, gamma__) +00:00:28 v #411 > > +00:00:28 v #412 > > Ok () +00:00:28 v #413 > > |> resultm.box +00:00:28 v #414 > > +00:00:28 v #415 > > join +00:00:28 v #416 > > !\($'"pyo3::prepare_freethreaded_python()"') : () +00:00:28 v #417 > > +00:00:28 v #418 > > !\($'"let __run_test = pyo3::Python::with_gil(|py| -> pyo3::PyResult<()> +00:00:28 v #419 > > { //"') +00:00:28 v #420 > > +00:00:28 v #421 > > let x' = fn_ (!\($'"py"') : python) +00:00:28 v #422 > > inl x' = join x' +00:00:28 v #423 > > +00:00:28 v #424 > > inl closure_fix = 2u8, 1u8 +00:00:28 v #425 > > x' |> rust.fix_closure closure_fix +00:00:28 v #426 > > +00:00:28 v #427 > > (!\($'"__run_test"') : _ () pyerr) +00:00:28 v #428 > > |> resultm.unwrap' +00:00:29 v #429 > > +00:00:29 v #430 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:29 v #431 > > │ ## test_zeta_at_known_values_ +00:00:29 v #432 > > +00:00:29 v #433 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:29 v #434 > > inl test_zeta_at_known_values_ log = run_test log fun zeta, gamma => +00:00:29 v #435 > > ;[[ +00:00:29 v #436 > > .^(2, 0), pi ** 2 / 6 +00:00:29 v #437 > > .^(-1, 0), -1 / 12 +00:00:29 v #438 > > ]] +00:00:29 v #439 > > |> fun x => a x : _ i32 _ +00:00:29 v #440 > > |> am.iter fun s, e => +00:00:29 v #441 > > inl result = zeta s +00:00:29 v #442 > > +00:00:29 v #443 > > result |> im |> _assert_eq 0 +00:00:29 v #444 > > re result - e |> abs |> _assert_lt 0.0001 +00:00:29 v #445 > > +00:00:29 v #446 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:29 v #447 > > //// test +00:00:29 v #448 > > ///! rust -d num-complex pyo3 +00:00:29 v #449 > > +00:00:29 v #450 > > test_zeta_at_known_values_ true +00:00:33 v #451 > > +00:00:33 v #452 > > ── [ 3.57s - return value ] ──────────────────────────────────────────────────── +00:00:33 v #453 > > │ zeta_ / s: (2.0, 0.0) / count: 0 +00:00:33 v #454 > > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, +00:00:33 v #455 > > derivative=0, method=None, kwargs={} / f_lineno: 528 / f_code.co_filename: +00:00:33 v #456 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: +00:00:33 v #457 > > arg: None +00:00:33 v #458 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, +00:00:33 v #459 > > derivative=0, method=None, kwargs={} / f_lineno: 530 / f_code.co_filename: +00:00:33 v #460 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: +00:00:33 v #461 > > arg: None +00:00:33 v #462 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, +00:00:33 v #463 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 531 / f_code.co_filename: +00:00:33 v #464 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: +00:00:33 v #465 > > arg: None +00:00:33 v #466 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, +00:00:33 v #467 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 532 / f_code.co_filename: +00:00:33 v #468 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: +00:00:33 v #469 > > arg: None +00:00:33 v #470 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, +00:00:33 v #471 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533 / f_code.co_filename: +00:00:33 v #472 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: +00:00:33 v #473 > > arg: None +00:00:33 v #474 > > │ call(zeta_) / f_code.co_name: f / f_locals: x=(2+0j), +00:00:33 v #475 > > kwargs={}, name='zeta' / f_lineno: 989 / f_code.co_filename: +00:00:33 v #476 > > \mpmath\ctx_mp_python.py / f_back.f_lineno: 533 / f_back.f_code.co_filename: +00:00:33 v #477 > > \mpmath\functions\zeta.py / arg: None +00:00:33 v #478 > > │ line(zeta_) / f_code.co_name: f / f_locals: x=(2+0j), +00:00:33 v #479 > > kwargs={}, name='zeta' / f_linen...me: make_mpc / f_locals: / f_lineno: 603 +00:00:33 v #480 > > f_code.co_filename: \mpmath\ctx_mp_python.py / f_back.f_lineno: 1007 +00:00:33 v #481 > > f_back.f_code.co_filename: \mpmath\ctx_mp_python.py / arg: None +00:00:33 v #482 > > │ line(gamma_) / f_code.co_name: make_mpc / f_locals: +00:00:33 v #483 > > f_lineno: 604 / f_code.co_filename: \mpmath\ctx_mp_python.py / f_back.f_lineno: +00:00:33 v #484 > > 1007 / f_back.f_code.co_filename: \mpmath\ctx_mp_python.py / arg: None +00:00:33 v #485 > > │ line(gamma_) / f_code.co_name: make_mpc / f_locals: +00:00:33 v #486 > > f_lineno: 605 / f_code.co_filename: \mpmath\ctx_mp_python.py / f_back.f_lineno: +00:00:33 v #487 > > 1007 / f_back.f_code.co_filename: \mpmath\ctx_mp_python.py / arg: None +00:00:33 v #488 > > │ return(gamma_) / f_code.co_name: make_mpc / f_locals: +00:00:33 v #489 > > f_lineno: 605 / f_code.co_filename: \mpmath\ctx_mp_python.py / f_back.f_lineno: +00:00:33 v #490 > > 1007 / f_back.f_code.co_filename: \mpmath\ctx_mp_python.py / arg: +00:00:33 v #491 > > mpc(real='1.0', imag='0.0') +00:00:33 v #492 > > │ return(gamma_) / f_code.co_name: f / f_locals: +00:00:33 v #493 > > x=mpc(real='2.0', imag='0.0'), kwargs={}, name='gamma', prec=53, rounding='n' +00:00:33 v #494 > > f_lineno: 1007 / f_code.co_filename: \mpmath\ctx_mp_python.py / f_back.f_lineno: +00:00:33 v #495 > > 25 / f_back.f_code.co_filename: / arg: mpc(real='1.0', imag='0.0') +00:00:33 v #496 > > │ gamma_ / result: (1.0 + 0.0j) / count: 140 +00:00:33 v #497 > > │ gamma__ / s: Complex { re: 2.0, im: 0.0 } / result: +00:00:33 v #498 > > Ok(Complex { re: 1.0, im: 0.0 }) +00:00:33 v #499 > > │ zeta / count: 1 / s: Complex { re: 2.0, im: -0.0 } +00:00:33 v #500 > > │ zeta__ / s: Complex { re: -1.0, im: 0.0 } / result: +00:00:33 v #501 > > Ok(Complex { re: -0.08333333333333333, im: 0.0 }) / z: Complex { re: NaN, im: +00:00:33 v #502 > > NaN } +00:00:33 v #503 > > │ __assert_eq / actual: 0.0 / expected: 0.0 +00:00:33 v #504 > > │ __assert_lt / actual: 0.0 / expected: 0.0001 +00:00:33 v #505 > > │ +00:00:33 v #506 > > +00:00:33 v #507 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:33 v #508 > > │ ## test_zeta_at_2_minus2 +00:00:33 v #509 > > +00:00:33 v #510 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:33 v #511 > > inl test_zeta_at_2_minus2 log = run_test log fun zeta, gamma => +00:00:33 v #512 > > inl s = .^(2, -2) +00:00:33 v #513 > > inl result = zeta s +00:00:33 v #514 > > +00:00:33 v #515 > > (re result - 0.8673) |> abs |> _assert_lt 0.001 +00:00:33 v #516 > > (im result - 0.2750) |> abs |> _assert_lt 0.001 +00:00:33 v #517 > > +00:00:33 v #518 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:33 v #519 > > //// test +00:00:33 v #520 > > ///! rust -d num-complex pyo3 +00:00:33 v #521 > > +00:00:33 v #522 > > test_zeta_at_2_minus2 true +00:00:37 v #523 > > +00:00:37 v #524 > > ── [ 3.27s - return value ] ──────────────────────────────────────────────────── +00:00:37 v #525 > > │ zeta_ / s: (2.0, -2.0) / count: 0 +00:00:37 v #526 > > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(2-2j), a=1, +00:00:37 v #527 > > derivative=0, method=None, kwargs={} / f_lineno: 528 / f_code.co_filename: +00:00:37 v #528 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: +00:00:37 v #529 > > arg: None +00:00:37 v #530 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2-2j), a=1, +00:00:37 v #531 > > derivative=0, method=None, kwargs={} / f_lineno: 530 / f_code.co_filename: +00:00:37 v #532 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: +00:00:37 v #533 > > arg: None +00:00:37 v #534 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2-2j), a=1, +00:00:37 v #535 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 531 / f_code.co_filename: +00:00:37 v #536 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: +00:00:37 v #537 > > arg: None +00:00:37 v #538 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2-2j), a=1, +00:00:37 v #539 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 532 / f_code.co_filename: +00:00:37 v #540 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: +00:00:37 v #541 > > arg: None +00:00:37 v #542 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2-2j), a=1, +00:00:37 v #543 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533 / f_code.co_filename: +00:00:37 v #544 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: +00:00:37 v #545 > > arg: None +00:00:37 v #546 > > │ call(zeta_) / f_code.co_name: f / f_locals: x=(2-2j), +00:00:37 v #547 > > kwargs={}, name='zeta' / f_lineno: 989 / f_code.co_filename: +00:00:37 v #548 > > \mpmath\ctx_mp_python.py / f_back.f_lineno: 533 / f_back.f_code.co_filename: +00:00:37 v #549 > > \mpmath\functions\zeta.py / arg: None +00:00:37 v #550 > > │ line(zeta_) / f_code.co_name: f / f_locals: x=(2-2j), +00:00:37 v #551 > > kwargs={}, name='zeta' / f_line.../ arg: None +00:00:37 v #552 > > │ call(zeta_) / f_code.co_name: python_bitcount / f_locals: n=2 +00:00:37 v #553 > > / f_lineno: 91 / f_code.co_filename: \mpmath\libmp\libintmath.py +00:00:37 v #554 > > f_back.f_lineno: 778 / f_back.f_code.co_filename: \mpmath\libmp\libmpf.py / arg: +00:00:37 v #555 > > None +00:00:37 v #556 > > │ line(zeta_) / f_code.co_name: python_bitcount / f_locals: n=2 +00:00:37 v #557 > > / f_lineno: 93 / f_code.co_filename: \mpmath\libmp\libintmath.py +00:00:37 v #558 > > f_back.f_lineno: 778 / f_back.f_code.co_filename: \mpmath\libmp\libmpf.py / arg: +00:00:37 v #559 > > None +00:00:37 v #560 > > │ line(zeta_) / f_code.co_name: python_bitcount / f_locals: +00:00:37 v #561 > > n=2, bc=2 / f_lineno: 94 / f_code.co_filename: \mpmath\libmp\libintmath.py +00:00:37 v #562 > > f_back.f_lineno: 778 / f_back.f_code.co_filename: \mpmath\libmp\libmpf.py / arg: +00:00:37 v #563 > > None +00:00:37 v #564 > > │ line(zeta_) / f_code.co_name: python_bitcount / f_locals: +00:00:37 v #565 > > n=2, bc=2 / f_lineno: 95 / f_code.co_filename: \mpmath\libmp\libintmath.py +00:00:37 v #566 > > f_back.f_lineno: 778 / f_back.f_code.co_filename: \mpmath\libmp\libmpf.py / arg: +00:00:37 v #567 > > None +00:00:37 v #568 > > │ return(zeta_) / f_code.co_name: python_bitcount / f_locals: +00:00:37 v #569 > > n=2, bc=2 / f_lineno: 95 / f_code.co_filename: \mpmath\libmp\libintmath.py +00:00:37 v #570 > > f_back.f_lineno: 778 / f_back.f_code.co_filename: \mpmath\libmp\libmpf.py / arg: +00:00:37 v #571 > > 2 +00:00:37 v #572 > > │ zeta_ / result: (0.867351829635993 + 0.275127238807858j) +00:00:37 v #573 > > count: 1812 +00:00:37 v #574 > > │ zeta / count: 0 / s: Complex { re: 2.0, im: -2.0 } +00:00:37 v #575 > > │ zeta__ / s: Complex { re: 2.0, im: -2.0 } / result: +00:00:37 v #576 > > Ok(Complex { re: 0.8673518296359931, im: 0.27512723880785767 }) / z: Complex { +00:00:37 v #577 > > re: NaN, im: NaN } +00:00:37 v #578 > > │ __assert_lt / actual: 5.182963599315027e-5 / expected: 0.001 +00:00:37 v #579 > > │ __assert_lt / actual: 0.00012723880785764363 / expected: +00:00:37 v #580 > > 0.001 +00:00:37 v #581 > > │ +00:00:37 v #582 > > +00:00:37 v #583 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:37 v #584 > > │ ## test_trivial_zero_at_negative_even___ +00:00:37 v #585 > > +00:00:37 v #586 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:37 v #587 > > inl test_trivial_zero_at_negative_even___ log = run_test log fun zeta, gamma => +00:00:37 v #588 > > (join listm'.init_series -2f64 -40 -2) +00:00:37 v #589 > > |> listm.iter fun n => +00:00:37 v #590 > > inl s = .^(n, 0) +00:00:37 v #591 > > inl result = zeta s +00:00:37 v #592 > > +00:00:37 v #593 > > result |> re |> _assert_eq 0 +00:00:37 v #594 > > result |> im |> _assert_eq 0 +00:00:37 v #595 > > +00:00:37 v #596 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:37 v #597 > > //// test +00:00:37 v #598 > > ///! rust -d num-complex pyo3 +00:00:37 v #599 > > +00:00:37 v #600 > > test_trivial_zero_at_negative_even___ true +00:00:41 v #601 > > +00:00:41 v #602 > > ── [ 4.01s - return value ] ──────────────────────────────────────────────────── +00:00:41 v #603 > > │ zeta_ / s: (-2.0, 0.0) / count: 0 +00:00:41 v #604 > > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(-2+0j), +00:00:41 v #605 > > a=1, derivative=0, method=None, kwargs={} / f_lineno: 528 / f_code.co_filename: +00:00:41 v #606 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: +00:00:41 v #607 > > arg: None +00:00:41 v #608 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(-2+0j), +00:00:41 v #609 > > a=1, derivative=0, method=None, kwargs={} / f_lineno: 530 / f_code.co_filename: +00:00:41 v #610 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: +00:00:41 v #611 > > arg: None +00:00:41 v #612 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(-2+0j), +00:00:41 v #613 > > a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: 531 +00:00:41 v #614 > > f_code.co_filename: \mpmath\functions\zeta.py / f_back.f_lineno: 25 +00:00:41 v #615 > > f_back.f_code.co_filename: / arg: None +00:00:41 v #616 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(-2+0j), +00:00:41 v #617 > > a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: 532 +00:00:41 v #618 > > f_code.co_filename: \mpmath\functions\zeta.py / f_back.f_lineno: 25 +00:00:41 v #619 > > f_back.f_code.co_filename: / arg: None +00:00:41 v #620 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(-2+0j), +00:00:41 v #621 > > a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533 +00:00:41 v #622 > > f_code.co_filename: \mpmath\functions\zeta.py / f_back.f_lineno: 25 +00:00:41 v #623 > > f_back.f_code.co_filename: / arg: None +00:00:41 v #624 > > │ call(zeta_) / f_code.co_name: f / f_locals: x=(-2+0j), +00:00:41 v #625 > > kwargs={}, name='zeta' / f_lineno: 989 / f_code.co_filename: +00:00:41 v #626 > > \mpmath\ctx_mp_python.py / f_back.f_lineno: 533 / f_back.f_code.co_filename: +00:00:41 v #627 > > \mpmath\functions\zeta.py / arg: None +00:00:41 v #628 > > │ line(zeta_) / f_code.co_name: f / f_locals: x=(-2+0j), +00:00:41 v #629 > > kwargs={}, name='zeta' /...lename: \mpmath\ctx_mp_python.py / f_back.f_lineno: +00:00:41 v #630 > > 1007 / f_back.f_code.co_filename: \mpmath\ctx_mp_python.py / arg: None +00:00:41 v #631 > > │ line(gamma_) / f_code.co_name: make_mpc / f_locals: +00:00:41 v #632 > > f_lineno: 604 / f_code.co_filename: \mpmath\ctx_mp_python.py / f_back.f_lineno: +00:00:41 v #633 > > 1007 / f_back.f_code.co_filename: \mpmath\ctx_mp_python.py / arg: None +00:00:41 v #634 > > │ line(gamma_) / f_code.co_name: make_mpc / f_locals: +00:00:41 v #635 > > f_lineno: 605 / f_code.co_filename: \mpmath\ctx_mp_python.py / f_back.f_lineno: +00:00:41 v #636 > > 1007 / f_back.f_code.co_filename: \mpmath\ctx_mp_python.py / arg: None +00:00:41 v #637 > > │ return(gamma_) / f_code.co_name: make_mpc / f_locals: +00:00:41 v #638 > > f_lineno: 605 / f_code.co_filename: \mpmath\ctx_mp_python.py / f_back.f_lineno: +00:00:41 v #639 > > 1007 / f_back.f_code.co_filename: \mpmath\ctx_mp_python.py / arg: +00:00:41 v #640 > > mpc(real='8.1591528324789768e+47', imag='0.0') +00:00:41 v #641 > > │ return(gamma_) / f_code.co_name: f / f_locals: +00:00:41 v #642 > > x=mpc(real='41.0', imag='0.0'), kwargs={}, name='gamma', prec=53, rounding='n' +00:00:41 v #643 > > f_lineno: 1007 / f_code.co_filename: \mpmath\ctx_mp_python.py / f_back.f_lineno: +00:00:41 v #644 > > 25 / f_back.f_code.co_filename: / arg: mpc(real='8.1591528324789768e+47', +00:00:41 v #645 > > imag='0.0') +00:00:41 v #646 > > │ gamma_ / result: (8.15915283247898e+47 + 0.0j) / count: 149 +00:00:41 v #647 > > │ gamma__ / s: Complex { re: 41.0, im: 0.0 } / result: +00:00:41 v #648 > > Ok(Complex { re: 8.159152832478977e47, im: 0.0 }) +00:00:41 v #649 > > │ zeta / count: 1 / s: Complex { re: 41.0, im: -0.0 } +00:00:41 v #650 > > │ zeta__ / s: Complex { re: -40.0, im: 0.0 } / result: +00:00:41 v #651 > > Ok(Complex { re: 0.0, im: 0.0 }) / z: Complex { re: NaN, im: NaN } +00:00:41 v #652 > > │ __assert_eq / actual: 0.0 / expected: 0.0 +00:00:41 v #653 > > │ __assert_eq / actual: 0.0 / expected: 0.0 +00:00:41 v #654 > > │ +00:00:41 v #655 > > +00:00:41 v #656 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:41 v #657 > > │ ## test_non_trivial_zero___ +00:00:41 v #658 > > +00:00:41 v #659 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:41 v #660 > > inl test_non_trivial_zero___ log = run_test log fun zeta, gamma => +00:00:41 v #661 > > ;[[ +00:00:41 v #662 > > .^(0.5, 14.134725) +00:00:41 v #663 > > .^(0.5, 21.022040) +00:00:41 v #664 > > .^(0.5, 25.010857) +00:00:41 v #665 > > .^(0.5, 30.424876) +00:00:41 v #666 > > .^(0.5, 32.935062) +00:00:41 v #667 > > .^(0.5, 37.586178) +00:00:41 v #668 > > ]] +00:00:41 v #669 > > |> fun x => a x : _ i32 _ +00:00:41 v #670 > > |> am.iter fun x => +00:00:41 v #671 > > inl result = zeta x +00:00:41 v #672 > > result |> re |> abs |> _assert_lt 0.0001 +00:00:41 v #673 > > result |> im |> abs |> _assert_lt 0.0001 +00:00:41 v #674 > > +00:00:41 v #675 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:41 v #676 > > //// test +00:00:41 v #677 > > ///! rust -d num-complex pyo3 +00:00:41 v #678 > > +00:00:41 v #679 > > test_non_trivial_zero___ true +00:00:45 v #680 > > +00:00:45 v #681 > > ── [ 3.61s - return value ] ──────────────────────────────────────────────────── +00:00:45 v #682 > > │ zeta_ / s: (0.5, 14.134725) / count: 0 +00:00:45 v #683 > > │ call(zeta_) / f_code.co_name: zeta / f_locals: +00:00:45 v #684 > > s=(0.5+14.134725j), a=1, derivative=0, method=None, kwargs={} / f_lineno: 528 +00:00:45 v #685 > > f_code.co_filename: \mpmath\functions\zeta.py / f_back.f_lineno: 25 +00:00:45 v #686 > > f_back.f_code.co_filename: / arg: None +00:00:45 v #687 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: +00:00:45 v #688 > > s=(0.5+14.134725j), a=1, derivative=0, method=None, kwargs={} / f_lineno: 530 +00:00:45 v #689 > > f_code.co_filename: \mpmath\functions\zeta.py / f_back.f_lineno: 25 +00:00:45 v #690 > > f_back.f_code.co_filename: / arg: None +00:00:45 v #691 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: +00:00:45 v #692 > > s=(0.5+14.134725j), a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: +00:00:45 v #693 > > 531 / f_code.co_filename: \mpmath\functions\zeta.py / f_back.f_lineno: 25 +00:00:45 v #694 > > f_back.f_code.co_filename: / arg: None +00:00:45 v #695 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: +00:00:45 v #696 > > s=(0.5+14.134725j), a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: +00:00:45 v #697 > > 532 / f_code.co_filename: \mpmath\functions\zeta.py / f_back.f_lineno: 25 +00:00:45 v #698 > > f_back.f_code.co_filename: / arg: None +00:00:45 v #699 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: +00:00:45 v #700 > > s=(0.5+14.134725j), a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: +00:00:45 v #701 > > 533 / f_code.co_filename: \mpmath\functions\zeta.py / f_back.f_lineno: 25 +00:00:45 v #702 > > f_back.f_code.co_filename: / arg: None +00:00:45 v #703 > > │ call(zeta_) / f_code.co_name: f / f_locals: +00:00:45 v #704 > > x=(0.5+14.134725j), kwargs={}, name='zeta' / f_lineno: 989 / f_code.co_filename: +00:00:45 v #705 > > \mpmath\ctx_mp_python.py / f_back.f_lineno: 533 / f_back.f_code.co_filename: +00:00:45 v #706 > > \mpmath\functions\zeta.py / arg: None +00:00:45 v #707 > > │ line(zeta_) / f_code... arg: None +00:00:45 v #708 > > │ line(gamma_) / f_code.co_name: complex_stirling_series +00:00:45 v #709 > > f_locals: x=1208925819614629174706176, y=-90877802089662679288381440, prec=81, +00:00:45 v #710 > > _m=3416353708500640443578529333, tre=855591523614410863719, +00:00:45 v #711 > > tim=64316830603724894628746, ure=-1710577520534459139249, +00:00:45 v #712 > > uim=45518868236127668552, sre=1013002518538853602038572, +00:00:45 v #713 > > sim=90883161825546323029600502 / f_lineno: 1637 / f_code.co_filename: +00:00:45 v #714 > > \mpmath\libmp\gammazeta.py / f_back.f_lineno: 2050 / f_back.f_code.co_filename: +00:00:45 v #715 > > \mpmath\libmp\gammazeta.py / arg: None +00:00:45 v #716 > > │ line(gamma_) / f_code.co_name: complex_stirling_series +00:00:45 v #717 > > f_locals: x=1208925819614629174706176, y=-90877802089662679288381440, prec=81, +00:00:45 v #718 > > _m=3416353708500640443578529333, tre=-1816151534455075068, +00:00:45 v #719 > > tim=-45486653225747820096, ure=-1710577520534459139249, +00:00:45 v #720 > > uim=45518868236127668552, sre=1013002518538853602038572, +00:00:45 v #721 > > sim=90883161825546323029600502 / f_lineno: 1638 / f_code.co_filename: +00:00:45 v #722 > > \mpmath\libmp\gammazeta.py / f_back.f_lineno: 2050 / f_back.f_code.co_filename: +00:00:45 v #723 > > \mpmath\libmp\gammazeta.py / arg: None +00:00:45 v #724 > > │ gamma_ / result: (-1.32798420042152e-26 + +00:00:45 v #725 > > 5.5751975252688e-26j) / count: 309 +00:00:45 v #726 > > │ gamma__ / s: Complex { re: 0.5, im: -37.586178 } / result: +00:00:45 v #727 > > Ok(Complex { re: -1.3279842004215153e-26, im: 5.575197525268802e-26 }) +00:00:45 v #728 > > │ zeta__ / s: Complex { re: 0.5, im: 37.586178 } / result: +00:00:45 v #729 > > Ok(Complex { re: -8.910186507947958e-8, im: -2.943780446402868e-7 }) / z: +00:00:45 v #730 > > Complex { re: -0.0, im: 0.0 } +00:00:45 v #731 > > │ __assert_lt / actual: 8.910186507947958e-8 / expected: 0.0001 +00:00:45 v #732 > > │ __assert_lt / actual: 2.943780446402868e-7 / expected: 0.0001 +00:00:45 v #733 > > │ +00:00:45 v #734 > > +00:00:45 v #735 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:45 v #736 > > │ ## test_real_part_greater_than_one___ +00:00:45 v #737 > > +00:00:45 v #738 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:45 v #739 > > inl test_real_part_greater_than_one___ log = run_test log fun zeta, gamma => +00:00:45 v #740 > > inl points = ;[[ 2; 3; 4; 5; 10; 20; 50 ]] +00:00:45 v #741 > > (a points : _ i32 _) +00:00:45 v #742 > > |> am.iter fun point => +00:00:45 v #743 > > inl s = .^(point, 0) +00:00:45 v #744 > > inl result = zeta s +00:00:45 v #745 > > result |> re |> _assert_gt 0 +00:00:45 v #746 > > result |> im |> _assert_eq 0 +00:00:46 v #747 > > +00:00:46 v #748 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:46 v #749 > > //// test +00:00:46 v #750 > > ///! rust -d num-complex pyo3 +00:00:46 v #751 > > +00:00:46 v #752 > > test_real_part_greater_than_one___ true +00:00:49 v #753 > > +00:00:49 v #754 > > ── [ 3.63s - return value ] ──────────────────────────────────────────────────── +00:00:49 v #755 > > │ zeta_ / s: (2.0, 0.0) / count: 0 +00:00:49 v #756 > > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, +00:00:49 v #757 > > derivative=0, method=None, kwargs={} / f_lineno: 528 / f_code.co_filename: +00:00:49 v #758 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: +00:00:49 v #759 > > arg: None +00:00:49 v #760 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, +00:00:49 v #761 > > derivative=0, method=None, kwargs={} / f_lineno: 530 / f_code.co_filename: +00:00:49 v #762 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: +00:00:49 v #763 > > arg: None +00:00:49 v #764 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, +00:00:49 v #765 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 531 / f_code.co_filename: +00:00:49 v #766 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: +00:00:49 v #767 > > arg: None +00:00:49 v #768 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, +00:00:49 v #769 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 532 / f_code.co_filename: +00:00:49 v #770 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: +00:00:49 v #771 > > arg: None +00:00:49 v #772 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, +00:00:49 v #773 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533 / f_code.co_filename: +00:00:49 v #774 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: +00:00:49 v #775 > > arg: None +00:00:49 v #776 > > │ call(zeta_) / f_code.co_name: f / f_locals: x=(2+0j), +00:00:49 v #777 > > kwargs={}, name='zeta' / f_lineno: 989 / f_code.co_filename: +00:00:49 v #778 > > \mpmath\ctx_mp_python.py / f_back.f_lineno: 533 / f_back.f_code.co_filename: +00:00:49 v #779 > > \mpmath\functions\zeta.py / arg: None +00:00:49 v #780 > > │ line(zeta_) / f_code.co_name: f / f_locals: x=(2+0j), +00:00:49 v #781 > > kwargs={}, name='zeta' / f_linen...f_code.co_filename: \mpmath\ctx_mp_python.py +00:00:49 v #782 > > / f_back.f_lineno: 1007 / f_back.f_code.co_filename: \mpmath\ctx_mp_python.py +00:00:49 v #783 > > arg: None +00:00:49 v #784 > > │ line(zeta_) / f_code.co_name: make_mpc / f_locals: +00:00:49 v #785 > > f_lineno: 605 / f_code.co_filename: \mpmath\ctx_mp_python.py / f_back.f_lineno: +00:00:49 v #786 > > 1007 / f_back.f_code.co_filename: \mpmath\ctx_mp_python.py / arg: None +00:00:49 v #787 > > │ return(zeta_) / f_code.co_name: make_mpc / f_locals: +00:00:49 v #788 > > f_lineno: 605 / f_code.co_filename: \mpmath\ctx_mp_python.py / f_back.f_lineno: +00:00:49 v #789 > > 1007 / f_back.f_code.co_filename: \mpmath\ctx_mp_python.py / arg: +00:00:49 v #790 > > mpc(real='1.0000000000000009', imag='0.0') +00:00:49 v #791 > > │ return(zeta_) / f_code.co_name: f / f_locals: +00:00:49 v #792 > > x=mpc(real='50.0', imag='0.0'), kwargs={}, name='zeta', prec=53, rounding='n' +00:00:49 v #793 > > f_lineno: 1007 / f_code.co_filename: \mpmath\ctx_mp_python.py / f_back.f_lineno: +00:00:49 v #794 > > 533 / f_back.f_code.co_filename: \mpmath\functions\zeta.py / arg: +00:00:49 v #795 > > mpc(real='1.0000000000000009', imag='0.0') +00:00:49 v #796 > > │ return(zeta_) / f_code.co_name: zeta / f_locals: s=(50+0j), +00:00:49 v #797 > > a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533 +00:00:49 v #798 > > f_code.co_filename: \mpmath\functions\zeta.py / f_back.f_lineno: 25 +00:00:49 v #799 > > f_back.f_code.co_filename: / arg: mpc(real='1.0000000000000009', imag='0.0') +00:00:49 v #800 > > │ zeta_ / result: (1.0 + 0.0j) / count: 181 +00:00:49 v #801 > > │ zeta / count: 0 / s: Complex { re: 50.0, im: 0.0 } +00:00:49 v #802 > > │ zeta__ / s: Complex { re: 50.0, im: 0.0 } / result: +00:00:49 v #803 > > Ok(Complex { re: 1.0000000000000009, im: 0.0 }) / z: Complex { re: NaN, im: NaN +00:00:49 v #804 > > } +00:00:49 v #805 > > │ __assert_gt / actual: 1.0000000000000009 / expected: 0.0 +00:00:49 v #806 > > │ __assert_eq / actual: 0.0 / expected: 0.0 +00:00:49 v #807 > > │ +00:00:49 v #808 > > +00:00:49 v #809 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:49 v #810 > > │ ## test_zeta_at_1___ +00:00:49 v #811 > > +00:00:49 v #812 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:49 v #813 > > inl test_zeta_at_1___ log = run_test log fun zeta, gamma => +00:00:49 v #814 > > inl s = .^(1, 0) +00:00:49 v #815 > > inl result = zeta s +00:00:49 v #816 > > result |> re |> _assert_eq limit.max +00:00:49 v #817 > > result |> im |> _assert_eq 0 +00:00:50 v #818 > > +00:00:50 v #819 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:50 v #820 > > //// test +00:00:50 v #821 > > ///! rust -d num-complex pyo3 +00:00:50 v #822 > > +00:00:50 v #823 > > test_zeta_at_1___ true +00:00:53 v #824 > > +00:00:53 v #825 > > ── [ 3.34s - return value ] ──────────────────────────────────────────────────── +00:00:53 v #826 > > │ zeta_ / s: (1.0, 0.0) / count: 0 +00:00:53 v #827 > > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(1+0j), a=1, +00:00:53 v #828 > > derivative=0, method=None, kwargs={} / f_lineno: 528 / f_code.co_filename: +00:00:53 v #829 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: +00:00:53 v #830 > > arg: None +00:00:53 v #831 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(1+0j), a=1, +00:00:53 v #832 > > derivative=0, method=None, kwargs={} / f_lineno: 530 / f_code.co_filename: +00:00:53 v #833 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: +00:00:53 v #834 > > arg: None +00:00:53 v #835 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(1+0j), a=1, +00:00:53 v #836 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 531 / f_code.co_filename: +00:00:53 v #837 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: +00:00:53 v #838 > > arg: None +00:00:53 v #839 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(1+0j), a=1, +00:00:53 v #840 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 532 / f_code.co_filename: +00:00:53 v #841 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: +00:00:53 v #842 > > arg: None +00:00:53 v #843 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(1+0j), a=1, +00:00:53 v #844 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533 / f_code.co_filename: +00:00:53 v #845 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: +00:00:53 v #846 > > arg: None +00:00:53 v #847 > > │ call(zeta_) / f_code.co_name: f / f_locals: x=(1+0j), +00:00:53 v #848 > > kwargs={}, name='zeta' / f_lineno: 989 / f_code.co_filename: +00:00:53 v #849 > > \mpmath\ctx_mp_python.py / f_back.f_lineno: 533 / f_back.f_code.co_filename: +00:00:53 v #850 > > \mpmath\functions\zeta.py / arg: None +00:00:53 v #851 > > │ line(zeta_) / f_code.co_name: f / f_locals: x=(1+0j), +00:00:53 v #852 > > kwargs={}, name='zeta' / f_linen...back object at 0x<?>>) +00:00:53 v #853 > > │ return(gamma_) / f_code.co_name: f / f_locals: +00:00:53 v #854 > > x=mpc(real='0.0', imag='0.0'), kwargs={}, name='gamma', prec=53, rounding='n' +00:00:53 v #855 > > f_lineno: 1007 / f_code.co_filename: \mpmath\ctx_mp_python.py / f_back.f_lineno: +00:00:53 v #856 > > 25 / f_back.f_code.co_filename: / arg: None +00:00:53 v #857 > > │ exception(gamma_) / f_code.co_name: fn / f_locals: log=True, +00:00:53 v #858 > > s=0j / f_lineno: 25 / f_code.co_filename: / f_back.f_lineno: +00:00:53 v #859 > > f_back.f_code.co_filename: / arg: (<class 'ValueError'>, ValueError('gamma +00:00:53 v #860 > > function pole'), <traceback object at 0x<?>>) +00:00:53 v #861 > > │ line(gamma_) / f_code.co_name: fn / f_locals: log=True, s=0j +00:00:53 v #862 > > / f_lineno: 29 / f_code.co_filename: / f_back.f_lineno: +00:00:53 v #863 > > f_back.f_code.co_filename: / arg: None +00:00:53 v #864 > > │ line(gamma_) / f_code.co_name: fn / f_locals: log=True, s=0j, +00:00:53 v #865 > > e=ValueError('gamma function pole') / f_lineno: 30 / f_code.co_filename: +00:00:53 v #866 > > f_back.f_lineno: / f_back.f_code.co_filename: / arg: None +00:00:53 v #867 > > │ line(gamma_) / f_code.co_name: fn / f_locals: log=True, s=0j +00:00:53 v #868 > > / f_lineno: 32 / f_code.co_filename: / f_back.f_lineno: +00:00:53 v #869 > > f_back.f_code.co_filename: / arg: None +00:00:53 v #870 > > │ return(gamma_) / f_code.co_name: fn / f_locals: log=True, +00:00:53 v #871 > > s=0j / f_lineno: 32 / f_code.co_filename: / f_back.f_lineno: +00:00:53 v #872 > > f_back.f_code.co_filename: / arg: (0.0, 0.0) +00:00:53 v #873 > > │ gamma__ / s: Complex { re: 0.0, im: 0.0 } / result: +00:00:53 v #874 > > Ok(Complex { re: 0.0, im: 0.0 }) +00:00:53 v #875 > > │ zeta__ / s: Complex { re: 1.0, im: 0.0 } / result: Ok(Complex +00:00:53 v #876 > > { re: inf, im: 0.0 }) / z: Complex { re: 0.0, im: 0.0 } +00:00:53 v #877 > > │ __assert_eq / actual: inf / expected: inf +00:00:53 v #878 > > │ __assert_eq / actual: 0.0 / expected: 0.0 +00:00:53 v #879 > > │ +00:00:53 v #880 > > +00:00:53 v #881 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:53 v #882 > > │ ## test_symmetry_across_real_axis___ +00:00:53 v #883 > > +00:00:53 v #884 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:53 v #885 > > inl test_symmetry_across_real_axis___ log = run_test log fun zeta, gamma => +00:00:53 v #886 > > inl s = .^(2, 10) +00:00:53 v #887 > > inl result_positive_im = zeta s +00:00:53 v #888 > > inl result_negative_im = zeta .^(re s, -(im s)) +00:00:53 v #889 > > inl conj = result_negative_im |> conj +00:00:53 v #890 > > result_positive_im |> re |> _assert_eq (conj |> re) +00:00:53 v #891 > > result_positive_im |> im |> _assert_eq (conj |> im) +00:00:54 v #892 > > +00:00:54 v #893 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:54 v #894 > > //// test +00:00:54 v #895 > > ///! rust -d num-complex pyo3 +00:00:54 v #896 > > +00:00:54 v #897 > > test_symmetry_across_real_axis___ true +00:00:57 v #898 > > +00:00:57 v #899 > > ── [ 3.24s - return value ] ──────────────────────────────────────────────────── +00:00:57 v #900 > > │ zeta_ / s: (2.0, 10.0) / count: 0 +00:00:57 v #901 > > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(2+10j), +00:00:57 v #902 > > a=1, derivative=0, method=None, kwargs={} / f_lineno: 528 / f_code.co_filename: +00:00:57 v #903 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: +00:00:57 v #904 > > arg: None +00:00:57 v #905 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+10j), +00:00:57 v #906 > > a=1, derivative=0, method=None, kwargs={} / f_lineno: 530 / f_code.co_filename: +00:00:57 v #907 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: +00:00:57 v #908 > > arg: None +00:00:57 v #909 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+10j), +00:00:57 v #910 > > a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: 531 +00:00:57 v #911 > > f_code.co_filename: \mpmath\functions\zeta.py / f_back.f_lineno: 25 +00:00:57 v #912 > > f_back.f_code.co_filename: / arg: None +00:00:57 v #913 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+10j), +00:00:57 v #914 > > a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: 532 +00:00:57 v #915 > > f_code.co_filename: \mpmath\functions\zeta.py / f_back.f_lineno: 25 +00:00:57 v #916 > > f_back.f_code.co_filename: / arg: None +00:00:57 v #917 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+10j), +00:00:57 v #918 > > a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533 +00:00:57 v #919 > > f_code.co_filename: \mpmath\functions\zeta.py / f_back.f_lineno: 25 +00:00:57 v #920 > > f_back.f_code.co_filename: / arg: None +00:00:57 v #921 > > │ call(zeta_) / f_code.co_name: f / f_locals: x=(2+10j), +00:00:57 v #922 > > kwargs={}, name='zeta' / f_lineno: 989 / f_code.co_filename: +00:00:57 v #923 > > \mpmath\ctx_mp_python.py / f_back.f_lineno: 533 / f_back.f_code.co_filename: +00:00:57 v #924 > > \mpmath\functions\zeta.py / arg: None +00:00:57 v #925 > > │ line(zeta_) / f_code.co_name: f / f_locals: x=(2+10j), +00:00:57 v #926 > > kwargs={}, name='zeta' /.../ f_back.f_code.co_filename: \mpmath\libmp\libmpf.py +00:00:57 v #927 > > / arg: None +00:00:57 v #928 > > │ line(zeta_) / f_code.co_name: python_bitcount / f_locals: +00:00:57 v #929 > > n=26, bc=5 / f_lineno: 94 / f_code.co_filename: \mpmath\libmp\libintmath.py +00:00:57 v #930 > > f_back.f_lineno: 778 / f_back.f_code.co_filename: \mpmath\libmp\libmpf.py / arg: +00:00:57 v #931 > > None +00:00:57 v #932 > > │ line(zeta_) / f_code.co_name: python_bitcount / f_locals: +00:00:57 v #933 > > n=26, bc=5 / f_lineno: 95 / f_code.co_filename: \mpmath\libmp\libintmath.py +00:00:57 v #934 > > f_back.f_lineno: 778 / f_back.f_code.co_filename: \mpmath\libmp\libmpf.py / arg: +00:00:57 v #935 > > None +00:00:57 v #936 > > │ return(zeta_) / f_code.co_name: python_bitcount / f_locals: +00:00:57 v #937 > > n=26, bc=5 / f_lineno: 95 / f_code.co_filename: \mpmath\libmp\libintmath.py +00:00:57 v #938 > > f_back.f_lineno: 778 / f_back.f_code.co_filename: \mpmath\libmp\libmpf.py / arg: +00:00:57 v #939 > > 5 +00:00:57 v #940 > > │ line(zeta_) / f_code.co_name: mpf_add / f_locals: s=(0, 1, 2, +00:00:57 v #941 > > 1), t=(0, 25, 2, 5), prec=14, rnd='d', _sub=0, ssign=0, sman=1, sexp=2, sbc=1, +00:00:57 v #942 > > tsign=0, tman=25, texp=2, tbc=5, offset=0, man=26, bc=5 / f_lineno: 779 +00:00:57 v #943 > > f_code.co_filename: \mpmath\libmp\libmpf.py / f_back.f_lineno: 1401 +00:00:57 v #944 > > f_back.f_code.co_filename: \mpmath\libmp\libmpf.py / arg: None +00:00:57 v #945 > > │ zeta_ / result: (1.19798250067418 + 0.0791704917205257j) +00:00:57 v #946 > > count: 1174 +00:00:57 v #947 > > │ zeta / count: 0 / s: Complex { re: 2.0, im: -10.0 } +00:00:57 v #948 > > │ zeta__ / s: Complex { re: 2.0, im: -10.0 } / result: +00:00:57 v #949 > > Ok(Complex { re: 1.1979825006741847, im: 0.07917049172052575 }) / z: Complex { +00:00:57 v #950 > > re: NaN, im: NaN } +00:00:57 v #951 > > │ __assert_eq / actual: 1.1979825006741847 / expected: +00:00:57 v #952 > > 1.1979825006741847 +00:00:57 v #953 > > │ __assert_eq / actual: -0.07917049172052575 / expected: +00:00:57 v #954 > > -0.07917049172052575 +00:00:57 v #955 > > │ +00:00:57 v #956 > > +00:00:57 v #957 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:57 v #958 > > │ ## test_behavior_near_origin___ +00:00:57 v #959 > > +00:00:57 v #960 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:57 v #961 > > inl test_behavior_near_origin___ log = run_test log fun zeta, gamma => +00:00:57 v #962 > > inl s = .^(0.01, 0.01) +00:00:57 v #963 > > inl result = zeta s +00:00:57 v #964 > > result |> re |> _assert_lt limit.max +00:00:57 v #965 > > result |> im |> _assert_lt limit.max +00:00:57 v #966 > > +00:00:57 v #967 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:57 v #968 > > //// test +00:00:57 v #969 > > ///! rust -d num-complex pyo3 +00:00:57 v #970 > > +00:00:57 v #971 > > test_behavior_near_origin___ true +00:01:01 v #972 > > +00:01:01 v #973 > > ── [ 3.29s - return value ] ──────────────────────────────────────────────────── +00:01:01 v #974 > > │ zeta_ / s: (0.01, 0.01) / count: 0 +00:01:01 v #975 > > │ call(zeta_) / f_code.co_name: zeta / f_locals: +00:01:01 v #976 > > s=(0.01+0.01j), a=1, derivative=0, method=None, kwargs={} / f_lineno: 528 +00:01:01 v #977 > > f_code.co_filename: \mpmath\functions\zeta.py / f_back.f_lineno: 25 +00:01:01 v #978 > > f_back.f_code.co_filename: / arg: None +00:01:01 v #979 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: +00:01:01 v #980 > > s=(0.01+0.01j), a=1, derivative=0, method=None, kwargs={} / f_lineno: 530 +00:01:01 v #981 > > f_code.co_filename: \mpmath\functions\zeta.py / f_back.f_lineno: 25 +00:01:01 v #982 > > f_back.f_code.co_filename: / arg: None +00:01:01 v #983 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: +00:01:01 v #984 > > s=(0.01+0.01j), a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: 531 +00:01:01 v #985 > > f_code.co_filename: \mpmath\functions\zeta.py / f_back.f_lineno: 25 +00:01:01 v #986 > > f_back.f_code.co_filename: / arg: None +00:01:01 v #987 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: +00:01:01 v #988 > > s=(0.01+0.01j), a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: 532 +00:01:01 v #989 > > f_code.co_filename: \mpmath\functions\zeta.py / f_back.f_lineno: 25 +00:01:01 v #990 > > f_back.f_code.co_filename: / arg: None +00:01:01 v #991 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: +00:01:01 v #992 > > s=(0.01+0.01j), a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533 +00:01:01 v #993 > > f_code.co_filename: \mpmath\functions\zeta.py / f_back.f_lineno: 25 +00:01:01 v #994 > > f_back.f_code.co_filename: / arg: None +00:01:01 v #995 > > │ call(zeta_) / f_code.co_name: f / f_locals: x=(0.01+0.01j), +00:01:01 v #996 > > kwargs={}, name='zeta' / f_lineno: 989 / f_code.co_filename: +00:01:01 v #997 > > \mpmath\ctx_mp_python.py / f_back.f_lineno: 533 / f_back.f_code.co_filename: +00:01:01 v #998 > > \mpmath\functions\zeta.py / arg: None +00:01:01 v #999 > > │ line(zeta_) / f_code.co_name: f / f_locals: x=(0...py +00:01:01 v #1000 > > f_back.f_lineno: 1007 / f_back.f_code.co_filename: \mpmath\ctx_mp_python.py +00:01:01 v #1001 > > arg: None +00:01:01 v #1002 > > │ line(gamma_) / f_code.co_name: mpc_gamma / f_locals: z=((0, +00:01:01 v #1003 > > 4458563631096791, -52, 52), (1, 5764607523034235, -59, 53)), prec=53, rnd='n', +00:01:01 v #1004 > > type=0, a=(0, 4458563631096791, -52, 52), b=(1, 5764607523034235, -59, 53), +00:01:01 v #1005 > > asign=0, aman=4458563631096791, aexp=-52, abc=52, bsign=1, +00:01:01 v #1006 > > bman=5764607523034235, bexp=-59, bbc=53, wp=73, amag=0, bmag=-6, mag=0, an=0, +00:01:01 v #1007 > > bn=0, absn=0j, gamma_size=0, need_reflection=0, zorig=((0, 4458563631096791, +00:01:01 v #1008 > > -52, 52), (1, 5764607523034235, -59, 53)), yfinal=0, balance_prec=0, +00:01:01 v #1009 > > n_for_stirling=14, need_reduction=True, afix=132131814190692672995328, +00:01:01 v #1010 > > bfix=-94447329657392906240, r=0, zprered=((0, 4458563631096791, -52, 52), (1, +00:01:01 v #1011 > > 5764607523034235, -59, 53)), d=14, rre=56942610883563778729574216337150, +00:01:01 v #1012 > > one=9444732965739290427392, rim=-1820461636508155576115177658065, k=12 +00:01:01 v #1013 > > f_lineno: 2043 / f_code.co_filename: \mpmath\libmp\gammazeta.py +00:01:01 v #1014 > > f_back.f_lineno: 1007 / f_back.f_code.co_filename: \mpmath\ctx_mp_python.py +00:01:01 v #1015 > > arg: None +00:01:01 v #1016 > > │ gamma_ / result: (1.00577030202902 + 0.0059717824054102j) +00:01:01 v #1017 > > count: 383 +00:01:01 v #1018 > > │ gamma__ / s: Complex { re: 0.99, im: -0.01 } / result: +00:01:01 v #1019 > > Ok(Complex { re: 1.005770302029023, im: 0.005971782405410201 }) +00:01:01 v #1020 > > │ zeta__ / s: Complex { re: 0.01, im: 0.01 } / result: +00:01:01 v #1021 > > Ok(Complex { re: -0.5091873433665667, im: -0.00939202213994577 }) / z: Complex { +00:01:01 v #1022 > > re: 0.0, im: 0.0 } +00:01:01 v #1023 > > │ __assert_lt / actual: -0.5091873433665667 / expected: inf +00:01:01 v #1024 > > │ __assert_lt / actual: -0.00939202213994577 / expected: inf +00:01:01 v #1025 > > │ +00:01:01 v #1026 > > +00:01:01 v #1027 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:01:01 v #1028 > > │ ## test_imaginary_axis +00:01:01 v #1029 > > +00:01:01 v #1030 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:01:01 v #1031 > > inl test_imaginary_axis log = run_test log fun zeta, gamma => +00:01:01 v #1032 > > (join [[ 10; 20; 30; 40; 50; 60; 70; 80; 90; 100 ]]) +00:01:01 v #1033 > > |> listm.iter fun s => +00:01:01 v #1034 > > inl s = .^(0, s) +00:01:01 v #1035 > > inl result = zeta s +00:01:01 v #1036 > > result |> re |> _assert_ne 0 +00:01:01 v #1037 > > result |> im |> _assert_ne 0 +00:01:01 v #1038 > > +00:01:01 v #1039 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:01:01 v #1040 > > //// test +00:01:01 v #1041 > > ///! rust -d num-complex pyo3 +00:01:01 v #1042 > > +00:01:01 v #1043 > > test_imaginary_axis true +00:01:05 v #1044 > > +00:01:05 v #1045 > > ── [ 3.89s - return value ] ──────────────────────────────────────────────────── +00:01:05 v #1046 > > │ zeta_ / s: (0.0, 10.0) / count: 0 +00:01:05 v #1047 > > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=10j, a=1, +00:01:05 v #1048 > > derivative=0, method=None, kwargs={} / f_lineno: 528 / f_code.co_filename: +00:01:05 v #1049 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: +00:01:05 v #1050 > > arg: None +00:01:05 v #1051 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=10j, a=1, +00:01:05 v #1052 > > derivative=0, method=None, kwargs={} / f_lineno: 530 / f_code.co_filename: +00:01:05 v #1053 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: +00:01:05 v #1054 > > arg: None +00:01:05 v #1055 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=10j, a=1, +00:01:05 v #1056 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 531 / f_code.co_filename: +00:01:05 v #1057 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: +00:01:05 v #1058 > > arg: None +00:01:05 v #1059 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=10j, a=1, +00:01:05 v #1060 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 532 / f_code.co_filename: +00:01:05 v #1061 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: +00:01:05 v #1062 > > arg: None +00:01:05 v #1063 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=10j, a=1, +00:01:05 v #1064 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533 / f_code.co_filename: +00:01:05 v #1065 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: +00:01:05 v #1066 > > arg: None +00:01:05 v #1067 > > │ call(zeta_) / f_code.co_name: f / f_locals: x=10j, kwargs={}, +00:01:05 v #1068 > > name='zeta' / f_lineno: 989 / f_code.co_filename: \mpmath\ctx_mp_python.py +00:01:05 v #1069 > > f_back.f_lineno: 533 / f_back.f_code.co_filename: \mpmath\functions\zeta.py +00:01:05 v #1070 > > arg: None +00:01:05 v #1071 > > │ line(zeta_) / f_code.co_name: f / f_locals: x=10j, kwargs={}, +00:01:05 v #1072 > > name='zeta' / f_lineno: 990 / f_code.co_f...g: None +00:01:05 v #1073 > > │ line(gamma_) / f_code.co_name: to_fixed / f_locals: s=(0, 1, +00:01:05 v #1074 > > 0, 1), prec=83 / f_lineno: 511 / f_code.co_filename: \mpmath\libmp\libmpf.py +00:01:05 v #1075 > > f_back.f_lineno: 2031 / f_back.f_code.co_filename: \mpmath\libmp\gammazeta.py +00:01:05 v #1076 > > arg: None +00:01:05 v #1077 > > │ line(gamma_) / f_code.co_name: to_fixed / f_locals: s=(0, 1, +00:01:05 v #1078 > > 0, 1), prec=83, sign=0, man=1, exp=0, bc=1 / f_lineno: 512 / f_code.co_filename: +00:01:05 v #1079 > > \mpmath\libmp\libmpf.py / f_back.f_lineno: 2031 / f_back.f_code.co_filename: +00:01:05 v #1080 > > \mpmath\libmp\gammazeta.py / arg: None +00:01:05 v #1081 > > │ line(gamma_) / f_code.co_name: to_fixed / f_locals: s=(0, 1, +00:01:05 v #1082 > > 0, 1), prec=83, sign=0, man=1, exp=0, bc=1, offset=83 / f_lineno: 513 +00:01:05 v #1083 > > f_code.co_filename: \mpmath\libmp\libmpf.py / f_back.f_lineno: 2031 +00:01:05 v #1084 > > f_back.f_code.co_filename: \mpmath\libmp\gammazeta.py / arg: None +00:01:05 v #1085 > > │ line(gamma_) / f_code.co_name: to_fixed / f_locals: s=(0, 1, +00:01:05 v #1086 > > 0, 1), prec=83, sign=0, man=1, exp=0, bc=1, offset=83 / f_lineno: 517 +00:01:05 v #1087 > > f_code.co_filename: \mpmath\libmp\libmpf.py / f_back.f_lineno: 2031 +00:01:05 v #1088 > > f_back.f_code.co_filename: \mpmath\libmp\gammazeta.py / arg: None +00:01:05 v #1089 > > │ gamma_ / result: (-1.51425318049776e-67 + +00:01:05 v #1090 > > 2.79082155561748e-69j) / count: 289 +00:01:05 v #1091 > > │ gamma__ / s: Complex { re: 1.0, im: -100.0 } / result: +00:01:05 v #1092 > > Ok(Complex { re: -1.514253180497756e-67, im: 2.7908215556174775e-69 }) +00:01:05 v #1093 > > │ zeta__ / s: Complex { re: 0.0, im: 100.0 } / result: +00:01:05 v #1094 > > Ok(Complex { re: 6.51721042625301, im: 0.18128842533791736 }) / z: Complex { re: +00:01:05 v #1095 > > 0.0, im: 0.0 } +00:01:05 v #1096 > > │ __assert_ne / actual: 6.51721042625301 / expected: 0.0 +00:01:05 v #1097 > > │ __assert_ne / actual: 0.18128842533791736 / expected: 0.0 +00:01:05 v #1098 > > │ +00:01:05 v #1099 > > +00:01:05 v #1100 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:01:05 v #1101 > > │ ## test_critical_strip +00:01:05 v #1102 > > +00:01:05 v #1103 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:01:05 v #1104 > > inl test_critical_strip log = run_test log fun zeta, gamma => +00:01:05 v #1105 > > (join [[ +00:01:05 v #1106 > > .^(0.5, 14.134725) +00:01:05 v #1107 > > .^(0.75, 20.5) +00:01:05 v #1108 > > .^(1.25, 30.1) +00:01:05 v #1109 > > .^(0.25, 40.0) +00:01:05 v #1110 > > .^(1.0, 50.0) +00:01:05 v #1111 > > ]]) +00:01:05 v #1112 > > |> listm.iter fun s => +00:01:05 v #1113 > > inl result = zeta s +00:01:05 v #1114 > > result |> re |> _assert_ne 0 +00:01:05 v #1115 > > result |> im |> _assert_ne 0 +00:01:05 v #1116 > > +00:01:05 v #1117 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:01:05 v #1118 > > //// test +00:01:05 v #1119 > > ///! rust -d num-complex pyo3 +00:01:05 v #1120 > > +00:01:05 v #1121 > > test_critical_strip true +00:01:09 v #1122 > > +00:01:09 v #1123 > > ── [ 3.46s - return value ] ──────────────────────────────────────────────────── +00:01:09 v #1124 > > │ zeta_ / s: (0.5, 14.134725) / count: 0 +00:01:09 v #1125 > > │ call(zeta_) / f_code.co_name: zeta / f_locals: +00:01:09 v #1126 > > s=(0.5+14.134725j), a=1, derivative=0, method=None, kwargs={} / f_lineno: 528 +00:01:09 v #1127 > > f_code.co_filename: \mpmath\functions\zeta.py / f_back.f_lineno: 25 +00:01:09 v #1128 > > f_back.f_code.co_filename: / arg: None +00:01:09 v #1129 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: +00:01:09 v #1130 > > s=(0.5+14.134725j), a=1, derivative=0, method=None, kwargs={} / f_lineno: 530 +00:01:09 v #1131 > > f_code.co_filename: \mpmath\functions\zeta.py / f_back.f_lineno: 25 +00:01:09 v #1132 > > f_back.f_code.co_filename: / arg: None +00:01:09 v #1133 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: +00:01:09 v #1134 > > s=(0.5+14.134725j), a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: +00:01:09 v #1135 > > 531 / f_code.co_filename: \mpmath\functions\zeta.py / f_back.f_lineno: 25 +00:01:09 v #1136 > > f_back.f_code.co_filename: / arg: None +00:01:09 v #1137 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: +00:01:09 v #1138 > > s=(0.5+14.134725j), a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: +00:01:09 v #1139 > > 532 / f_code.co_filename: \mpmath\functions\zeta.py / f_back.f_lineno: 25 +00:01:09 v #1140 > > f_back.f_code.co_filename: / arg: None +00:01:09 v #1141 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: +00:01:09 v #1142 > > s=(0.5+14.134725j), a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: +00:01:09 v #1143 > > 533 / f_code.co_filename: \mpmath\functions\zeta.py / f_back.f_lineno: 25 +00:01:09 v #1144 > > f_back.f_code.co_filename: / arg: None +00:01:09 v #1145 > > │ call(zeta_) / f_code.co_name: f / f_locals: +00:01:09 v #1146 > > x=(0.5+14.134725j), kwargs={}, name='zeta' / f_lineno: 989 / f_code.co_filename: +00:01:09 v #1147 > > \mpmath\ctx_mp_python.py / f_back.f_lineno: 533 / f_back.f_code.co_filename: +00:01:09 v #1148 > > \mpmath\functions\zeta.py / arg: None +00:01:09 v #1149 > > │ line(zeta_) / f_code...210, sim=241793223535862290161314995 +00:01:09 v #1150 > > f_lineno: 1648 / f_code.co_filename: \mpmath\libmp\gammazeta.py +00:01:09 v #1151 > > f_back.f_lineno: 2050 / f_back.f_code.co_filename: \mpmath\libmp\gammazeta.py +00:01:09 v #1152 > > arg: None +00:01:09 v #1153 > > │ line(gamma_) / f_code.co_name: complex_stirling_series +00:01:09 v #1154 > > f_locals: x=0, y=-241785163922925834941235200, prec=82, +00:01:09 v #1155 > > _m=12089258196146291747061760000, tre=0, tim=396, ure=-1934281311383406679530, +00:01:09 v #1156 > > uim=0, sre=4443714077719696485012210, sim=241793223535862290161314995 +00:01:09 v #1157 > > f_lineno: 1649 / f_code.co_filename: \mpmath\libmp\gammazeta.py +00:01:09 v #1158 > > f_back.f_lineno: 2050 / f_back.f_code.co_filename: \mpmath\libmp\gammazeta.py +00:01:09 v #1159 > > arg: None +00:01:09 v #1160 > > │ line(gamma_) / f_code.co_name: complex_stirling_series +00:01:09 v #1161 > > f_locals: x=0, y=-241785163922925834941235200, prec=82, +00:01:09 v #1162 > > _m=12089258196146291747061760000, tre=0, tim=396, ure=-1934281311383406679530, +00:01:09 v #1163 > > uim=0, sre=4443714077719696485012210, sim=241793223535862290161314997 +00:01:09 v #1164 > > f_lineno: 1650 / f_code.co_filename: \mpmath\libmp\gammazeta.py +00:01:09 v #1165 > > f_back.f_lineno: 2050 / f_back.f_code.co_filename: \mpmath\libmp\gammazeta.py +00:01:09 v #1166 > > arg: None +00:01:09 v #1167 > > │ gamma_ / result: (2.63173210619768e-35 - +00:01:09 v #1168 > > 8.16464935465334e-36j) / count: 262 +00:01:09 v #1169 > > │ gamma__ / s: Complex { re: 0.0, im: -50.0 } / result: +00:01:09 v #1170 > > Ok(Complex { re: 2.6317321061976804e-35, im: -8.164649354653339e-36 }) +00:01:09 v #1171 > > │ zeta__ / s: Complex { re: 1.0, im: 50.0 } / result: +00:01:09 v #1172 > > Ok(Complex { re: 0.44103873082309397, im: 0.281582455029683 }) / z: Complex { +00:01:09 v #1173 > > re: 0.0, im: 0.0 } +00:01:09 v #1174 > > │ __assert_ne / actual: 0.44103873082309397 / expected: 0.0 +00:01:09 v #1175 > > │ __assert_ne / actual: 0.281582455029683 / expected: 0.0 +00:01:09 v #1176 > > │ +00:01:09 v #1177 > > +00:01:09 v #1178 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:01:09 v #1179 > > │ ## test_reflection_formula_for_specific_value +00:01:09 v #1180 > > +00:01:09 v #1181 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:01:09 v #1182 > > inl test_reflection_formula_for_specific_value log = run_test log fun zeta, +00:01:09 v #1183 > > gamma => +00:01:09 v #1184 > > (join [[ +00:01:09 v #1185 > > .^(3, 4) +00:01:09 v #1186 > > .^(2.5, -3.5) +00:01:09 v #1187 > > .^(1.5, 2.5) +00:01:09 v #1188 > > .^(0.5, 14.134725) +00:01:09 v #1189 > > ]]) +00:01:09 v #1190 > > |> listm.iter fun s => +00:01:09 v #1191 > > inl lhs = zeta s +00:01:09 v #1192 > > inl reflection_coefficient = +00:01:09 v #1193 > > (.^(2, 0) .** s) +00:01:09 v #1194 > > .* (.^(pi, 0) .** (s .- .^(1, 0))) +00:01:09 v #1195 > > .* (.^(pi, 0) .* s ./ .^(2, 0) |> complex_sin) +00:01:09 v #1196 > > .* gamma (.^(1, 0) .- s) +00:01:09 v #1197 > > +00:01:09 v #1198 > > inl one_minus_s = .^(1 - re s, -(im s)) +00:01:09 v #1199 > > inl rhs = reflection_coefficient .* zeta one_minus_s +00:01:09 v #1200 > > +00:01:09 v #1201 > > re lhs - re rhs |> abs |> _assert_lt 0.0001 +00:01:09 v #1202 > > im lhs - im rhs |> abs |> _assert_lt 0.0001 +00:01:09 v #1203 > > +00:01:09 v #1204 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:01:09 v #1205 > > //// test +00:01:09 v #1206 > > ///! rust -d num-complex pyo3 +00:01:09 v #1207 > > +00:01:09 v #1208 > > test_reflection_formula_for_specific_value true +00:01:13 v #1209 > > +00:01:13 v #1210 > > ── [ 3.86s - return value ] ──────────────────────────────────────────────────── +00:01:13 v #1211 > > │ zeta_ / s: (3.0, 4.0) / count: 0 +00:01:13 v #1212 > > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(3+4j), a=1, +00:01:13 v #1213 > > derivative=0, method=None, kwargs={} / f_lineno: 528 / f_code.co_filename: +00:01:13 v #1214 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: +00:01:13 v #1215 > > arg: None +00:01:13 v #1216 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(3+4j), a=1, +00:01:13 v #1217 > > derivative=0, method=None, kwargs={} / f_lineno: 530 / f_code.co_filename: +00:01:13 v #1218 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: +00:01:13 v #1219 > > arg: None +00:01:13 v #1220 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(3+4j), a=1, +00:01:13 v #1221 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 531 / f_code.co_filename: +00:01:13 v #1222 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: +00:01:13 v #1223 > > arg: None +00:01:13 v #1224 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(3+4j), a=1, +00:01:13 v #1225 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 532 / f_code.co_filename: +00:01:13 v #1226 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: +00:01:13 v #1227 > > arg: None +00:01:13 v #1228 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(3+4j), a=1, +00:01:13 v #1229 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533 / f_code.co_filename: +00:01:13 v #1230 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: +00:01:13 v #1231 > > arg: None +00:01:13 v #1232 > > │ call(zeta_) / f_code.co_name: f / f_locals: x=(3+4j), +00:01:13 v #1233 > > kwargs={}, name='zeta' / f_lineno: 989 / f_code.co_filename: +00:01:13 v #1234 > > \mpmath\ctx_mp_python.py / f_back.f_lineno: 533 / f_back.f_code.co_filename: +00:01:13 v #1235 > > \mpmath\functions\zeta.py / arg: None +00:01:13 v #1236 > > │ line(zeta_) / f_code.co_name: f / f_locals: x=(3+4j), +00:01:13 v #1237 > > kwargs={}, name='zeta' / f_linen...045 / f_code.co_filename: +00:01:13 v #1238 > > \mpmath\libmp\gammazeta.py / f_back.f_lineno: 1007 / f_back.f_code.co_filename: +00:01:13 v #1239 > > \mpmath\ctx_mp_python.py / arg: None +00:01:13 v #1240 > > │ line(gamma_) / f_code.co_name: mpc_gamma / f_locals: z=((0, +00:01:13 v #1241 > > 1, -1, 1), (0, 3978571390186527, -48, 52)), prec=53, rnd='n', type=0, a=(0, 1, +00:01:13 v #1242 > > -1, 1), b=(0, 3978571390186527, -48, 52), asign=0, aman=1, aexp=-1, abc=1, +00:01:13 v #1243 > > bsign=0, bman=3978571390186527, bexp=-48, bbc=52, wp=79, amag=0, bmag=4, mag=4, +00:01:13 v #1244 > > an=0, bn=14, absn=14j, gamma_size=56, need_reflection=0, zorig=((0, 1, -1, 1), +00:01:13 v #1245 > > (0, 3978571390186527, -48, 52)), yfinal=0, balance_prec=0, n_for_stirling=15, +00:01:13 v #1246 > > need_reduction=True, afix=2115620184325601055735808, +00:01:13 v #1247 > > bfix=8543917002826194402410496, r=0, zprered=((0, 1, -1, 1), (0, +00:01:13 v #1248 > > 3978571390186527, -48, 52)), d=5, rre=-542313259704087430481959845, +00:01:13 v #1249 > > one=604462909807314587353088, rim=-1657865507045117397880679064, k=2 / f_lineno: +00:01:13 v #1250 > > 2043 / f_code.co_filename: \mpmath\libmp\gammazeta.py / f_back.f_lineno: 1007 +00:01:13 v #1251 > > f_back.f_code.co_filename: \mpmath\ctx_mp_python.py / arg: None +00:01:13 v #1252 > > │ gamma_ / result: (-1.4455538437607e-10 - +00:01:13 v #1253 > > 5.52278876877407e-10j) / count: 318 +00:01:13 v #1254 > > │ gamma__ / s: Complex { re: 0.5, im: 14.134725 } / result: +00:01:13 v #1255 > > Ok(Complex { re: -1.4455538437606964e-10, im: -5.522788768774066e-10 }) +00:01:13 v #1256 > > │ zeta__ / s: Complex { re: 0.5, im: -14.134725 } / result: +00:01:13 v #1257 > > Ok(Complex { re: 1.7674298413849186e-8, im: 1.1102028930923156e-7 }) / z: +00:01:13 v #1258 > > Complex { re: 0.0, im: 0.0 } +00:01:13 v #1259 > > │ __assert_lt / actual: 4.499862532288471e-22 / expected: +00:01:13 v #1260 > > 0.0001 +00:01:13 v #1261 > > │ __assert_lt / actual: 1.4558378780933287e-22 / expected: +00:01:13 v #1262 > > 0.0001 +00:01:13 v #1263 > > │ +00:01:13 v #1264 > > +00:01:13 v #1265 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:01:13 v #1266 > > │ ## test_euler_product_formula +00:01:13 v #1267 > > +00:01:13 v #1268 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:01:13 v #1269 > > inl test_euler_product_formula log = run_test log fun zeta, gamma => +00:01:13 v #1270 > > inl s_values = join [[ 2; 2.5; 3; 3.5; 4; 4.5; 5 ]] +00:01:13 v #1271 > > inl primes = join [[ 2; 3; 5; 7; 11; 13; 17; 19; 23; 29; 31; 37; 41; 43; 47; +00:01:13 v #1272 > > 53; 59; 61; 67; 71 ]] +00:01:13 v #1273 > > s_values +00:01:13 v #1274 > > |> listm.iter fun s_re => +00:01:13 v #1275 > > inl s = .^(s_re, 0) +00:01:13 v #1276 > > inl product = +00:01:13 v #1277 > > (1, primes) +00:01:13 v #1278 > > ||> listm.fold fun acc x => +00:01:13 v #1279 > > acc * 1 / (1 - x ** -s_re) +00:01:13 v #1280 > > +00:01:13 v #1281 > > inl result = zeta s +00:01:13 v #1282 > > re result - product |> abs |> _assert_lt 0.01 +00:01:13 v #1283 > > result |> im |> _assert_lt 0.01 +00:01:14 v #1284 > > +00:01:14 v #1285 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:01:14 v #1286 > > //// test +00:01:14 v #1287 > > ///! rust -d num-complex pyo3 +00:01:14 v #1288 > > +00:01:14 v #1289 > > test_euler_product_formula true +00:01:18 v #1290 > > +00:01:18 v #1291 > > ── [ 3.96s - return value ] ──────────────────────────────────────────────────── +00:01:18 v #1292 > > │ zeta_ / s: (2.0, 0.0) / count: 0 +00:01:18 v #1293 > > │ call(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, +00:01:18 v #1294 > > derivative=0, method=None, kwargs={} / f_lineno: 528 / f_code.co_filename: +00:01:18 v #1295 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: +00:01:18 v #1296 > > arg: None +00:01:18 v #1297 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, +00:01:18 v #1298 > > derivative=0, method=None, kwargs={} / f_lineno: 530 / f_code.co_filename: +00:01:18 v #1299 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: +00:01:18 v #1300 > > arg: None +00:01:18 v #1301 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, +00:01:18 v #1302 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 531 / f_code.co_filename: +00:01:18 v #1303 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: +00:01:18 v #1304 > > arg: None +00:01:18 v #1305 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, +00:01:18 v #1306 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 532 / f_code.co_filename: +00:01:18 v #1307 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: +00:01:18 v #1308 > > arg: None +00:01:18 v #1309 > > │ line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1, +00:01:18 v #1310 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533 / f_code.co_filename: +00:01:18 v #1311 > > \mpmath\functions\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename: +00:01:18 v #1312 > > arg: None +00:01:18 v #1313 > > │ call(zeta_) / f_code.co_name: f / f_locals: x=(2+0j), +00:01:18 v #1314 > > kwargs={}, name='zeta' / f_lineno: 989 / f_code.co_filename: +00:01:18 v #1315 > > \mpmath\ctx_mp_python.py / f_back.f_lineno: 533 / f_back.f_code.co_filename: +00:01:18 v #1316 > > \mpmath\functions\zeta.py / arg: None +00:01:18 v #1317 > > │ line(zeta_) / f_code.co_name: f / f_locals: x=(2+0j), +00:01:18 v #1318 > > kwargs={}, name='zeta' / f_linen...k.f_lineno: 985 / f_back.f_code.co_filename: +00:01:18 v #1319 > > \mpmath\libmp\gammazeta.py / arg: None +00:01:18 v #1320 > > │ line(zeta_) / f_code.co_name: mpf_zeta_int / f_locals: s=5, +00:01:18 v #1321 > > prec=53, rnd='n', wp=73, m=19.25, needed_terms=623488, n=33, d=[1, 2179, 792067, +00:01:18 v #1322 > > 115062531, 8930212611, 429314925315, 13983537177347, 327666966438659, +00:01:18 v #1323 > > 5764846406968067, 78615943485956867, 851604426176701187, 7470527451121689347, +00:01:18 v #1324 > > 53898915046387983107, 323897845985013506819, 1638178356374090130179, +00:01:18 v #1325 > > 7034281785235908174595, 25833609859980306522883, 81661917475887913739011, +00:01:18 v #1326 > > 223448095548034217779971, 532029677981012660429571, 1108048631855905753375491, +00:01:18 v #1327 > > 2029946562680066824315651, 3292927237466655352791811, 4769455369342763680768771, +00:01:18 v #1328 > > 6235511670496346417767171, 7463408621503347142796035, 8322751284048216428487427, +00:01:18 v #1329 > > 8818779962777819524211459, 9050689474911140452082435, 9136270117622166323831555, +00:01:18 v #1330 > > 9160252037839493347779331, 9165045885455648617505539, 9165654628010081032708867, +00:01:18 v #1331 > > 9165691521498228451812099], t=-84153986440240940095109733900764881301998910956, +00:01:18 v #1332 > > k=26 / f_lineno: 954 / f_code.co_filename: \mpmath\libmp\gammazeta.py +00:01:18 v #1333 > > f_back.f_lineno: 985 / f_back.f_code.co_filename: \mpmath\libmp\gammazeta.py +00:01:18 v #1334 > > arg: None +00:01:18 v #1335 > > │ zeta_ / result: (1.03692775514337 + 0.0j) / count: 228 +00:01:18 v #1336 > > │ zeta / count: 0 / s: Complex { re: 5.0, im: 0.0 } +00:01:18 v #1337 > > │ zeta__ / s: Complex { re: 5.0, im: 0.0 } / result: Ok(Complex +00:01:18 v #1338 > > { re: 1.03692775514337, im: 0.0 }) / z: Complex { re: NaN, im: NaN } +00:01:18 v #1339 > > │ __assert_lt / actual: 2.0033654735129858e-9 / expected: 0.01 +00:01:18 v #1340 > > │ __assert_lt / actual: 0.0 / expected: 0.01 +00:01:18 v #1341 > > │ +00:01:18 v #1342 > > +00:01:18 v #1343 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:01:18 v #1344 > > │ ## graph +00:01:18 v #1345 > > +00:01:18 v #1346 > > ── mermaid ───────────────────────────────────────────────────────────────────── +00:01:18 v #1347 > > │ <div class="mermaidMarkdownContainer" +00:01:18 v #1348 > > style="background-color:white"> +00:01:18 v #1349 > > │ <link rel="stylesheet" +00:01:18 v #1350 > > href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.2.0/css/all.min.css" +00:01:18 v #1351 > > > +00:01:18 v #1352 > > │ <div id="fbbd8828ecb14e00ae05abd16915b1ec"></div> +00:01:18 v #1353 > > │ <script type="module"> +00:01:18 v #1354 > > │ +00:01:18 v #1355 > > │ import mermaid from +00:01:18 v #1356 > > 'https://cdn.jsdelivr.net/npm/mermaid@10.6.1/dist/mermaid.esm.min.mjs'; +00:01:18 v #1357 > > │ let renderTarget = +00:01:18 v #1358 > > document.getElementById('fbbd8828ecb14e00ae05abd16915b1ec'); +00:01:18 v #1359 > > │ try { +00:01:18 v #1360 > > │ const {svg, bindFunctions} = await +00:01:18 v #1361 > > mermaid.mermaidAPI.render( +00:01:18 v #1362 > > │ +00:01:18 v #1363 > > 'mermaid_fbbd8828ecb14e00ae05abd16915b1ec', +00:01:18 v #1364 > > │ `graph TD +00:01:18 v #1365 > > │ zeta("zeta()") --> convert +00:01:18 v #1366 > > │ zeta --> f["f()"] +00:01:18 v #1367 > > │ f --> mpc_f["mpc_zeta()"] +00:01:18 v #1368 > > │ f --> mpf_f["mpf_zeta()"] +00:01:18 v #1369 > > │ convert --> from_float +00:01:18 v #1370 > > │ from_float --> from_man_exp +00:01:18 v #1371 > > │ from_man_exp --> python_bitcount +00:01:18 v #1372 > > │ python_bitcount --> _normalize +00:01:18 v #1373 > > │ _normalize --> make_mpc +00:01:18 v #1374 > > │ make_mpc --> mpc_zeta["mpc_zeta()"] +00:01:18 v #1375 > > │ mpc_zeta --> mpf_zeta["mpf_zeta()"] +00:01:18 v #1376 > > │ mpf_zeta --> to_int +00:01:18 v #1377 > > │ to_int --> mpf_zeta_int["mpf_zeta_int()"] +00:01:18 v #1378 > > │ mpf_zeta_int --> borwein_coefficients +00:01:18 v #1379 > > │ borwein_coefficients --> +00:01:18 v #1380 > > from_man_exp_2("from_man_exp()") +00:01:18 v #1381 > > │ from_man_exp_2 --> +00:01:18 v #1382 > > python_bitcount_2("python_bitcount()") +00:01:18 v #1383 > > │ python_bitcount_2 --> _normalize_2("_normalize()") +00:01:18 v #1384 > > │ _normalize_2 --> make_mpc_2("make_mpc()") +00:01:18 v #1385 > > │ make_mpc_2 --> stop_trace +00:01:18 v #1386 > > │ mpf_zeta_int --> mpf_bernoulli +00:01:18 v #1387 > > │ mpf_bernoulli --> bernoulli_size +00:01:18 v #1388 > > │ bernoulli_size --> mpf_rdiv_int +00:01:18 v #1389 > > │ mpf_rdiv_int --> python_bitcount_3("python_bitcount()") +00:01:18 v #1390 > > │ python_bitcount_3 --> _normalize1 +00:01:18 v #1391 > > │ _normalize1 --> from_man_exp_3("from_man_exp()") +00:01:18 v #1392 > > │ from_man_exp_3 --> _normalize_3("_normalize()") +00:01:18 v #1393 > > │ _normalize_3 --> mpf_sub +00:01:18 v #1394 > > │ mpf_sub --> mpf_add +00:01:18 v #1395 > > │ mpf_add --> mpf_neg +00:01:18 v #1396 > > │ mpf_neg --> _normalize1_2("_normalize1()") +00:01:18 v #1397 > > │ _normalize1_2 --> from_int +00:01:18 v #1398 > > │ from_int --> mpf_div +00:01:18 v #1399 > > │ mpf_div --> python_bitcount_4("python_bitcount()") +00:01:18 v #1400 > > │ python_bitcount_4 --> _normalize1_3("_normalize1()") +00:01:18 v #1401 > > │ _normalize1_3 --> make_mpc_3("make_mpc()") +00:01:18 v #1402 > > │ make_mpc_3 --> final_stop["stop_trace()"]`); +00:01:18 v #1403 > > │ renderTarget.innerHTML = svg; +00:01:18 v #1404 > > │ bindFunctions?.(renderTarget); +00:01:18 v #1405 > > │ } +00:01:18 v #1406 > > │ catch (error) { +00:01:18 v #1407 > > │ console.log(error); +00:01:18 v #1408 > > │ } +00:01:18 v #1409 > > │ </script> +00:01:18 v #1410 > > │ </div> +00:01:18 v #1411 > > │ +00:01:18 v #1412 > > +00:01:18 v #1413 > > ── mermaid ───────────────────────────────────────────────────────────────────── +00:01:18 v #1414 > > │ <div class="mermaidMarkdownContainer" +00:01:18 v #1415 > > style="background-color:white"> +00:01:18 v #1416 > > │ <link rel="stylesheet" +00:01:18 v #1417 > > href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.2.0/css/all.min.css" +00:01:18 v #1418 > > > +00:01:18 v #1419 > > │ <div id="4d97849b45364eeabff2722298e60895"></div> +00:01:18 v #1420 > > │ <script type="module"> +00:01:18 v #1421 > > │ +00:01:18 v #1422 > > │ import mermaid from +00:01:18 v #1423 > > 'https://cdn.jsdelivr.net/npm/mermaid@10.6.1/dist/mermaid.esm.min.mjs'; +00:01:18 v #1424 > > │ let renderTarget = +00:01:18 v #1425 > > document.getElementById('4d97849b45364eeabff2722298e60895'); +00:01:18 v #1426 > > │ try { +00:01:18 v #1427 > > │ const {svg, bindFunctions} = await +00:01:18 v #1428 > > mermaid.mermaidAPI.render( +00:01:18 v #1429 > > │ +00:01:18 v #1430 > > 'mermaid_4d97849b45364eeabff2722298e60895', +00:01:18 v #1431 > > │ `graph TD +00:01:18 v #1432 > > │ zeta_rust("zeta() - Rust") --> num_traits("num-traits") +00:01:18 v #1433 > > │ zeta_rust --> num_bigint("num-bigint") +00:01:18 v #1434 > > │ zeta_rust --> rust_decimal("rust_decimal for +00:01:18 v #1435 > > precision") +00:01:18 v #1436 > > │ zeta_rust --> error_handling("Rust Error Handling") +00:01:18 v #1437 > > │ +00:01:18 v #1438 > > │ num_traits --> num_traits_usage("Use for common +00:01:18 v #1439 > > traits") +00:01:18 v #1440 > > │ num_bigint --> bigint_operations("Arbitrary-precision +00:01:18 v #1441 > > arithmetic operations") +00:01:18 v #1442 > > │ rust_decimal --> decimal_operations("High-precision +00:01:18 v #1443 > > decimal operations") +00:01:18 v #1444 > > │ error_handling --> result_type("Use Result<T, E> for +00:01:18 v #1445 > > error handling") +00:01:18 v #1446 > > │ +00:01:18 v #1447 > > │ bigint_operations --> convert_rust("convert() - Rust") +00:01:18 v #1448 > > │ bigint_operations --> normalize_rust("_normalize() - +00:01:18 v #1449 > > Rust") +00:01:18 v #1450 > > │ +00:01:18 v #1451 > > │ convert_rust --> from_float_rust("from_float() - Rust") +00:01:18 v #1452 > > │ from_float_rust --> from_man_exp_rust("from_man_exp() - +00:01:18 v #1453 > > Rust") +00:01:18 v #1454 > > │ from_man_exp_rust --> bitcount_rust("bitcount() - 00:01:18 v #1455 > > Rust") -00:01:18 v #1456 > > │ -00:01:18 v #1457 > > │ convert_rust --> from_float_rust("from_float() - Rust") -00:01:18 v #1458 > > │ from_float_rust --> from_man_exp_rust("from_man_exp() - -00:01:18 v #1459 > > Rust") -00:01:18 v #1460 > > │ from_man_exp_rust --> bitcount_rust("bitcount() - +00:01:18 v #1456 > > │ bitcount_rust --> normalize_rust +00:01:18 v #1457 > > │ normalize_rust --> mpc_zeta_rust("mpc_zeta() - Rust") +00:01:18 v #1458 > > │ mpc_zeta_rust --> mpf_zeta_rust("mpf_zeta() - Rust") +00:01:18 v #1459 > > │ mpf_zeta_rust --> to_int_rust("to_int() - Rust") +00:01:18 v #1460 > > │ to_int_rust --> mpf_zeta_int_rust("mpf_zeta_int() - 00:01:18 v #1461 > > Rust") -00:01:18 v #1462 > > │ bitcount_rust --> normalize_rust -00:01:18 v #1463 > > │ normalize_rust --> mpc_zeta_rust("mpc_zeta() - Rust") -00:01:18 v #1464 > > │ mpc_zeta_rust --> mpf_zeta_rust("mpf_zeta() - Rust") -00:01:18 v #1465 > > │ mpf_zeta_rust --> to_int_rust("to_int() - Rust") -00:01:18 v #1466 > > │ to_int_rust --> mpf_zeta_int_rust("mpf_zeta_int() - -00:01:18 v #1467 > > Rust") -00:01:18 v #1468 > > │ -00:01:18 v #1469 > > │ mpf_zeta_int_rust --> -00:01:18 v #1470 > > borwein_coefficients_rust("borwein_coefficients() - Rust") -00:01:18 v #1471 > > │ borwein_coefficients_rust --> -00:01:18 v #1472 > > from_man_exp_rust_2("from_man_exp() - Rust") -00:01:18 v #1473 > > │ from_man_exp_rust_2 --> bitcount_rust_2("bitcount() - -00:01:18 v #1474 > > Rust") -00:01:18 v #1475 > > │ bitcount_rust_2 --> normalize_rust_2("_normalize() - -00:01:18 v #1476 > > Rust") -00:01:18 v #1477 > > │ normalize_rust_2 --> make_mpc_rust("make_mpc() - Rust") -00:01:18 v #1478 > > │ -00:01:18 v #1479 > > │ mpf_zeta_int_rust --> -00:01:18 v #1480 > > mpf_bernoulli_rust("mpf_bernoulli() - Rust") -00:01:18 v #1481 > > │ mpf_bernoulli_rust --> -00:01:18 v #1482 > > bernoulli_size_rust("bernoulli_size() - Rust") -00:01:18 v #1483 > > │ bernoulli_size_rust --> -00:01:18 v #1484 > > mpf_rdiv_int_rust("mpf_rdiv_int() - Rust") -00:01:18 v #1485 > > │ mpf_rdiv_int_rust --> bitcount_rust_3("bitcount() - -00:01:18 v #1486 > > Rust") -00:01:18 v #1487 > > │ bitcount_rust_3 --> normalize1_rust("_normalize1() - -00:01:18 v #1488 > > Rust") -00:01:18 v #1489 > > │ normalize1_rust --> from_man_exp_rust_3("from_man_exp() -00:01:18 v #1490 > > - Rust") -00:01:18 v #1491 > > │ from_man_exp_rust_3 --> normalize_rust_3("_normalize() -00:01:18 v #1492 > > - Rust") -00:01:18 v #1493 > > │ normalize_rust_3 --> mpf_sub_rust("mpf_sub() - Rust") -00:01:18 v #1494 > > │ mpf_sub_rust --> mpf_add_rust("mpf_add() - Rust") -00:01:18 v #1495 > > │ mpf_add_rust --> mpf_neg_rust("mpf_neg() - Rust") -00:01:18 v #1496 > > │ mpf_neg_rust --> normalize1_rust_2("_normalize1() - +00:01:18 v #1462 > > │ +00:01:18 v #1463 > > │ mpf_zeta_int_rust --> +00:01:18 v #1464 > > borwein_coefficients_rust("borwein_coefficients() - Rust") +00:01:18 v #1465 > > │ borwein_coefficients_rust --> +00:01:18 v #1466 > > from_man_exp_rust_2("from_man_exp() - Rust") +00:01:18 v #1467 > > │ from_man_exp_rust_2 --> bitcount_rust_2("bitcount() - +00:01:18 v #1468 > > Rust") +00:01:18 v #1469 > > │ bitcount_rust_2 --> normalize_rust_2("_normalize() - +00:01:18 v #1470 > > Rust") +00:01:18 v #1471 > > │ normalize_rust_2 --> make_mpc_rust("make_mpc() - Rust") +00:01:18 v #1472 > > │ +00:01:18 v #1473 > > │ mpf_zeta_int_rust --> +00:01:18 v #1474 > > mpf_bernoulli_rust("mpf_bernoulli() - Rust") +00:01:18 v #1475 > > │ mpf_bernoulli_rust --> +00:01:18 v #1476 > > bernoulli_size_rust("bernoulli_size() - Rust") +00:01:18 v #1477 > > │ bernoulli_size_rust --> +00:01:18 v #1478 > > mpf_rdiv_int_rust("mpf_rdiv_int() - Rust") +00:01:18 v #1479 > > │ mpf_rdiv_int_rust --> bitcount_rust_3("bitcount() - +00:01:18 v #1480 > > Rust") +00:01:18 v #1481 > > │ bitcount_rust_3 --> normalize1_rust("_normalize1() - +00:01:18 v #1482 > > Rust") +00:01:18 v #1483 > > │ normalize1_rust --> from_man_exp_rust_3("from_man_exp() +00:01:18 v #1484 > > - Rust") +00:01:18 v #1485 > > │ from_man_exp_rust_3 --> normalize_rust_3("_normalize() +00:01:18 v #1486 > > - Rust") +00:01:18 v #1487 > > │ normalize_rust_3 --> mpf_sub_rust("mpf_sub() - Rust") +00:01:18 v #1488 > > │ mpf_sub_rust --> mpf_add_rust("mpf_add() - Rust") +00:01:18 v #1489 > > │ mpf_add_rust --> mpf_neg_rust("mpf_neg() - Rust") +00:01:18 v #1490 > > │ mpf_neg_rust --> normalize1_rust_2("_normalize1() - +00:01:18 v #1491 > > Rust") +00:01:18 v #1492 > > │ normalize1_rust_2 --> from_int_rust("from_int() - +00:01:18 v #1493 > > Rust") +00:01:18 v #1494 > > │ from_int_rust --> mpf_div_rust("mpf_div() - Rust") +00:01:18 v #1495 > > │ mpf_div_rust --> bitcount_rust_4("bitcount() - Rust") +00:01:18 v #1496 > > │ bitcount_rust_4 --> normalize1_rust_3("_normalize1() - 00:01:18 v #1497 > > Rust") -00:01:18 v #1498 > > │ normalize1_rust_2 --> from_int_rust("from_int() - -00:01:18 v #1499 > > Rust") -00:01:18 v #1500 > > │ from_int_rust --> mpf_div_rust("mpf_div() - Rust") -00:01:18 v #1501 > > │ mpf_div_rust --> bitcount_rust_4("bitcount() - Rust") -00:01:18 v #1502 > > │ bitcount_rust_4 --> normalize1_rust_3("_normalize1() - -00:01:18 v #1503 > > Rust") -00:01:18 v #1504 > > │ -00:01:18 v #1505 > > │ style zeta_rust fill:#f9f,stroke:#333,stroke-width:4px -00:01:18 v #1506 > > │ style num_traits fill:#bbf,stroke:#333,stroke-width:2px -00:01:18 v #1507 > > │ style num_bigint fill:#bbf,stroke:#333,stroke-width:2px -00:01:18 v #1508 > > │ style rust_decimal -00:01:18 v #1509 > > fill:#bbf,stroke:#333,stroke-width:2px -00:01:18 v #1510 > > │ style error_handling -00:01:18 v #1511 > > fill:#bbf,stroke:#333,stroke-width:2px -00:01:18 v #1512 > > │ style bigint_operations -00:01:18 v #1513 > > fill:#bfb,stroke:#333,stroke-width:2px -00:01:18 v #1514 > > │ style decimal_operations -00:01:18 v #1515 > > fill:#bfb,stroke:#333,stroke-width:2px -00:01:18 v #1516 > > │ style result_type -00:01:18 v #1517 > > fill:#bfb,stroke:#333,stroke-width:2px`); -00:01:18 v #1518 > > │ renderTarget.innerHTML = svg; -00:01:18 v #1519 > > │ bindFunctions?.(renderTarget); -00:01:18 v #1520 > > │ } -00:01:18 v #1521 > > │ catch (error) { -00:01:18 v #1522 > > │ console.log(error); -00:01:18 v #1523 > > │ } -00:01:18 v #1524 > > │ </script> -00:01:18 v #1525 > > │ </div> -00:01:18 v #1526 > > │ -00:01:18 v #1527 > > -00:01:18 v #1528 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:01:18 v #1529 > > │ ## tests -00:01:18 v #1530 > > -00:01:18 v #1531 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:18 v #1532 > > inl tests () = -00:01:18 v #1533 > > testing.run_tests_log { -00:01:18 v #1534 > > test_zeta_at_known_values_ -00:01:18 v #1535 > > test_zeta_at_2_minus2 -00:01:18 v #1536 > > test_trivial_zero_at_negative_even___ -00:01:18 v #1537 > > test_non_trivial_zero___ -00:01:18 v #1538 > > test_real_part_greater_than_one___ -00:01:18 v #1539 > > test_zeta_at_1___ -00:01:18 v #1540 > > test_symmetry_across_real_axis___ -00:01:18 v #1541 > > test_behavior_near_origin___ -00:01:18 v #1542 > > test_imaginary_axis -00:01:18 v #1543 > > test_critical_strip -00:01:18 v #1544 > > test_reflection_formula_for_specific_value -00:01:18 v #1545 > > test_euler_product_formula -00:01:18 v #1546 > > } -00:01:18 v #1547 > > -00:01:18 v #1548 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:18 v #1549 > > ///! _ -00:01:18 v #1550 > > -00:01:18 v #1551 > > inl main (_args : array_base string) = -00:01:18 v #1552 > > inl value = 1i32 -00:01:18 v #1553 > > console.write_line ($'$"value: {!value}"' : string) -00:01:18 v #1554 > > 0i32 -00:01:18 v #1555 > > -00:01:18 v #1556 > > inl main () = -00:01:18 v #1557 > > $'let tests () = !tests ()' : () -00:01:18 v #1558 > > $'let main args = !main args' : () -00:01:19 v #1559 > 00:01:17 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 76866 } -00:01:19 v #1560 > 00:01:17 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/lib/math/math.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/lib/math/math.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:01:21 v #1561 > 00:01:19 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/lib/math/math.dib.ipynb to html -00:01:21 v #1562 > 00:01:19 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. -00:01:21 v #1563 > 00:01:19 v #7 ! validate(nb) -00:01:21 v #1564 > 00:01:19 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 -00:01:21 v #1565 > 00:01:19 v #9 ! return _pygments_highlight( -00:01:23 v #1566 > 00:01:21 v #10 ! [NbConvertApp] Writing 7171637 bytes to c:\home\git\polyglot\lib\math\math.dib.html -00:01:23 v #1567 > 00:01:21 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 847 } -00:01:23 v #1568 > 00:01:21 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 847 } -00:01:23 v #1569 > 00:01:21 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/lib/math/math.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/lib/math/math.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:01:23 v #1570 > 00:01:21 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } -00:01:23 v #1571 > 00:01:21 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } -00:01:23 v #1572 > 00:01:21 d #16 spiral.run / dib / { exit_code = 0; result_length = 77772 } -00:01:23 d #1573 runtime.execute_with_options_async / { exit_code = 0; output_length = 83371 } -00:01:23 d #3 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path math.dib --retries 1 -00:01:24 v #5 async.run_with_timeout_async / { timeout = 100 } +00:01:18 v #1498 > > │ +00:01:18 v #1499 > > │ style zeta_rust fill:#f9f,stroke:#333,stroke-width:4px +00:01:18 v #1500 > > │ style num_traits fill:#bbf,stroke:#333,stroke-width:2px +00:01:18 v #1501 > > │ style num_bigint fill:#bbf,stroke:#333,stroke-width:2px +00:01:18 v #1502 > > │ style rust_decimal +00:01:18 v #1503 > > fill:#bbf,stroke:#333,stroke-width:2px +00:01:18 v #1504 > > │ style error_handling +00:01:18 v #1505 > > fill:#bbf,stroke:#333,stroke-width:2px +00:01:18 v #1506 > > │ style bigint_operations +00:01:18 v #1507 > > fill:#bfb,stroke:#333,stroke-width:2px +00:01:18 v #1508 > > │ style decimal_operations +00:01:18 v #1509 > > fill:#bfb,stroke:#333,stroke-width:2px +00:01:18 v #1510 > > │ style result_type +00:01:18 v #1511 > > fill:#bfb,stroke:#333,stroke-width:2px`); +00:01:18 v #1512 > > │ renderTarget.innerHTML = svg; +00:01:18 v #1513 > > │ bindFunctions?.(renderTarget); +00:01:18 v #1514 > > │ } +00:01:18 v #1515 > > │ catch (error) { +00:01:18 v #1516 > > │ console.log(error); +00:01:18 v #1517 > > │ } +00:01:18 v #1518 > > │ </script> +00:01:18 v #1519 > > │ </div> +00:01:18 v #1520 > > │ +00:01:18 v #1521 > > +00:01:18 v #1522 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:01:18 v #1523 > > │ ## tests +00:01:18 v #1524 > > +00:01:18 v #1525 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:01:18 v #1526 > > inl tests () = +00:01:18 v #1527 > > testing.run_tests_log { +00:01:18 v #1528 > > test_zeta_at_known_values_ +00:01:18 v #1529 > > test_zeta_at_2_minus2 +00:01:18 v #1530 > > test_trivial_zero_at_negative_even___ +00:01:18 v #1531 > > test_non_trivial_zero___ +00:01:18 v #1532 > > test_real_part_greater_than_one___ +00:01:18 v #1533 > > test_zeta_at_1___ +00:01:18 v #1534 > > test_symmetry_across_real_axis___ +00:01:18 v #1535 > > test_behavior_near_origin___ +00:01:18 v #1536 > > test_imaginary_axis +00:01:18 v #1537 > > test_critical_strip +00:01:18 v #1538 > > test_reflection_formula_for_specific_value +00:01:18 v #1539 > > test_euler_product_formula +00:01:18 v #1540 > > } +00:01:18 v #1541 > > +00:01:18 v #1542 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:01:18 v #1543 > > ///! _ +00:01:18 v #1544 > > +00:01:18 v #1545 > > inl main (_args : array_base string) = +00:01:18 v #1546 > > inl value = 1i32 +00:01:18 v #1547 > > console.write_line ($'$"value: {!value}"' : string) +00:01:18 v #1548 > > 0i32 +00:01:18 v #1549 > > +00:01:18 v #1550 > > inl main () = +00:01:18 v #1551 > > $'let tests () = !tests ()' : () +00:01:18 v #1552 > > $'let main args = !main args' : () +00:01:19 v #1553 > 00:01:18 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 76866 } +00:01:19 v #1554 > 00:01:18 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/lib/math/math.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/lib/math/math.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } +00:01:21 v #1555 > 00:01:19 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/lib/math/math.dib.ipynb to html +00:01:21 v #1556 > 00:01:19 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. +00:01:21 v #1557 > 00:01:19 v #7 ! validate(nb) +00:01:21 v #1558 > 00:01:20 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 +00:01:21 v #1559 > 00:01:20 v #9 ! return _pygments_highlight( +00:01:23 v #1560 > 00:01:22 v #10 ! [NbConvertApp] Writing 7171318 bytes to c:\home\git\polyglot\lib\math\math.dib.html +00:01:23 v #1561 > 00:01:22 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 847 } +00:01:23 v #1562 > 00:01:22 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 847 } +00:01:23 v #1563 > 00:01:22 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/lib/math/math.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/lib/math/math.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } +00:01:24 v #1564 > 00:01:22 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } +00:01:24 v #1565 > 00:01:22 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } +00:01:24 v #1566 > 00:01:22 d #16 spiral.run / dib / { exit_code = 0; result_length = 77772 } +00:01:24 d #1567 runtime.execute_with_options_async / { exit_code = 0; output_length = 83371 } +00:01:24 d #1 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path math.dib --retries 1 00:00:00 d #1 writeDibCode / output: Spi / path: math.dib 00:00:00 d #2 parseDibCode / output: Spi / file: math.dib 00:00:00 v #1 async.run_with_timeout_async / { timeout = 180 } -00:00:00 d #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0 - ""C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 --default-int i32 --default-float f64"; options = { command = dotnet "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 --default-int i32 --default-float f64; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = Some <fun:compiler@87-4>; stdin = None; trace = true; working_directory = Some "C:\home\git\polyglot" } } -00:00:00 v #2 > 00:00:00 d #1 pwd: C:\home\git\polyglot -00:00:00 v #3 > 00:00:00 d #2 dllPath: C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release -00:00:00 v #4 > 00:00:00 d #3 targetDir: C:\home\git\polyglot\target/spiral_Eval -00:00:01 v #2 async.run_with_timeout_async / { timeout = 100 } -00:00:01 v #3 async.run_with_timeout_async / { timeout = 100 } -00:00:01 v #5 > Starting the Spiral Server. It is bound to: http://localhost:13805 -00:00:01 v #4 async.run_with_timeout_async / { timeout = 100 } -00:00:01 v #1 Supervisor.sendJson / port: 13805 / json: {"Ping":true} / result: -00:00:01 v #2 Supervisor.awaitCompiler / Ping / result: 'Some null' / port: 13805 / retry: 1 -00:00:01 v #6 > Server bound to: http://localhost:13805 -00:00:01 v #5 async.run_with_timeout_async / { timeout = 180 } -00:00:02 d #3 Supervisor.buildFile / takeWhileInclusive / path: math.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:02 d #4 Supervisor.buildFile / AsyncSeq.scan / path: math.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:02 d #5 Supervisor.buildFile / takeWhileInclusive / path: math.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:02 v #6 Supervisor.sendJson / port: 13805 / json: {"FileOpen":{"spiText":"/// # math\nopen testing\nopen rust.rust_operators\nopen rust\n\n/// ## comp...027let main args = !main args\u0027 : ()\n","uri":"file:///c:/home/git/polyglot/lib/math/math.spi"}} / result: -00:00:02 v #7 Supervisor.sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/lib/math/math.spi"}} / result: -00:00:02 d #8 Supervisor.buildFile / AsyncSeq.scan / path: math.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:02 d #9 Supervisor.buildFile / takeWhileInclusive / path: math.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:03 d #10 Supervisor.buildFile / AsyncSeq.scan / path: math.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:03 d #11 Supervisor.buildFile / takeWhileInclusive / path: math.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:03 d #12 Supervisor.buildFile / AsyncSeq.scan / path: math.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:03 d #13 Supervisor.buildFile / takeWhileInclusive / path: math.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: +00:00:01 v #2 async.run_with_timeout_async / { timeout = 180 } +00:00:01 d #1 Supervisor.buildFile / takeWhileInclusive / path: math.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: -00:00:04 d #14 Supervisor.buildFile / AsyncSeq.scan / path: math.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: +00:00:01 d #2 Supervisor.buildFile / AsyncSeq.scan / path: math.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: -00:00:04 d #15 Supervisor.buildFile / takeWhileInclusive / path: math.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: +00:00:01 d #3 Supervisor.buildFile / takeWhileInclusive / path: math.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: -00:00:04 d #16 Supervisor.buildFile / AsyncSeq.scan / path: math.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: +00:00:01 v #4 Supervisor.sendJson / port: 13805 / json: {"FileOpen":{"spiText":"/// # math\nopen testing\nopen rust.rust_operators\nopen rust\n\n/// ## comp...027let main args = !main args\u0027 : ()\n","uri":"file:///c:/home/git/polyglot/lib/math/math.spi"}} / result: +00:00:01 v #5 Supervisor.sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/lib/math/math.spi"}} / result: +00:00:01 d #6 Supervisor.buildFile / AsyncSeq.scan / path: math.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: -00:00:04 d #17 Supervisor.buildFile / takeWhileInclusive / path: math.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: +00:00:01 d #7 Supervisor.buildFile / takeWhileInclusive / path: math.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: -00:00:05 d #18 Supervisor.buildFile / AsyncSeq.scan / path: math.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:05 d #19 Supervisor.buildFile / takeWhileInclusive / path: math.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:05 d #20 Supervisor.buildFile / AsyncSeq.scan / path: math.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:05 d #21 Supervisor.buildFile / takeWhileInclusive / path: math.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:06 d #22 Supervisor.buildFile / AsyncSeq.scan / path: math.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:06 d #23 Supervisor.buildFile / takeWhileInclusive / path: math.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:06 d #24 Supervisor.buildFile / AsyncSeq.scan / path: math.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: +00:00:01 d #8 Supervisor.buildFile / AsyncSeq.scan / path: math.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: #if FABLE_COMPILER [<Fable.Core.Erase; Fable.Core.Emit("pyo3::Python")>] #endif @@ -25012,7 +22759,7 @@ let main args = v1 args () -00:00:06 d #25 Supervisor.buildFile / takeWhileInclusive / path: math.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: +00:00:01 d #9 Supervisor.buildFile / takeWhileInclusive / path: math.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: #if FABLE_COMPILER [<Fable.Core.Erase; Fable.Core.Emit("pyo3::Python")>] #endif @@ -25067,110 +22814,135 @@ let main args = v1 args () -00:00:06 d #26 FileSystem.watchWithFilter / Disposing watch stream / filter: FileName, LastWrite -00:00:06 v #6 async.run_with_timeout_async / { timeout = 100 } -00:00:00 d #1 persistCodeProject / packages: [Fable.Core] / modules: [lib/spiral/common.fsx; lib/spiral/sm.fsx; lib/spiral/crypto.fsx; ... ] / name: math / hash: / code.Length: 217410 -00:00:00 d #2 buildProject / fullPath: C:\home\git\polyglot\target\Builder\math\math.fsproj +00:00:01 d #10 FileSystem.watchWithFilter / Disposing watch stream / filter: FileName, LastWrite +00:00:00 d #1 persistCodeProject / packages: [Fable.Core] / modules: [deps/spiral/lib/spiral/common.fsx; deps/spiral/lib/spiral/sm.fsx; deps/spiral/lib/spiral/crypto.fsx; ... ] / name: math / hash: / code.Length: 217410 +00:00:00 d #2 buildProject / fullPath: c:\home\git\polyglot\target\Builder\math\math.fsproj 00:00:00 d #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0 - "publish "C:\home\git\polyglot\target/Builder\math\math.fsproj" --configuration Release --output "C:\home\git\polyglot\lib\math\dist" --runtime linux-x64"; options = { command = dotnet publish "C:\home\git\polyglot\target/Builder\math\math.fsproj" --configuration Release --output "C:\home\git\polyglot\lib\math\dist" --runtime linux-x64; cancellation_token = None; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = Some "C:\home\git\polyglot\target\Builder\math" } } + "publish "c:/home/git\polyglot\target/Builder\math\math.fsproj" --configuration Release --output "C:\home\git\polyglot\lib\math\dist" --runtime linux-x64"; options = { command = dotnet publish "c:/home/git\polyglot\target/Builder\math\math.fsproj" --configuration Release --output "C:\home\git\polyglot\lib\math\dist" --runtime linux-x64; cancellation_token = None; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = Some "c:\home\git\polyglot\target\Builder\math" } } 00:00:01 v #2 > Determining projects to restore... 00:00:01 v #3 > Paket version 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0 00:00:01 v #4 > The last full restore is still up to date. Nothing left to do. 00:00:01 v #5 > Total time taken: 0 milliseconds -00:00:02 v #6 > Restored C:\home\git\polyglot\target\Builder\math\math.fsproj (in 351 ms). -00:00:14 v #7 > math -> C:\home\git\polyglot\target\Builder\math\bin\Release\net9.0\linux-x64\math.dll +00:00:02 v #6 > Restored c:\home\git\polyglot\target\Builder\math\math.fsproj (in 922 ms). +00:00:14 v #7 > math -> c:\home\git\polyglot\target\Builder\math\bin\Release\net9.0\linux-x64\math.dll 00:00:15 v #8 > math -> C:\home\git\polyglot\lib\math\dist\ 00:00:15 v #9 > 00:00:15 v #10 > Workload updates are available. Run `dotnet workload list` for more information. -00:00:15 d #11 runtime.execute_with_options_async / { exit_code = 0; output_length = 493 } -00:00:15 d #12 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0 - "publish "C:\home\git\polyglot\target/Builder\math\math.fsproj" --configuration Release --output "C:\home\git\polyglot\lib\math\dist" --runtime win-x64"; options = { command = dotnet publish "C:\home\git\polyglot\target/Builder\math\math.fsproj" --configuration Release --output "C:\home\git\polyglot\lib\math\dist" --runtime win-x64; cancellation_token = None; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = Some "C:\home\git\polyglot\target\Builder\math" } } -00:00:15 v #13 > Determining projects to restore... -00:00:16 v #14 > Paket version 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0 -00:00:16 v #15 > The last full restore is still up to date. Nothing left to do. -00:00:16 v #16 > Total time taken: 0 milliseconds -00:00:17 v #17 > Restored C:\home\git\polyglot\target\Builder\math\math.fsproj (in 340 ms). -00:00:28 v #18 > math -> C:\home\git\polyglot\target\Builder\math\bin\Release\net9.0\win-x64\math.dll -00:00:29 v #19 > math -> C:\home\git\polyglot\lib\math\dist\ -00:00:29 v #20 > -00:00:29 v #21 > Workload updates are available. Run `dotnet workload list` for more information. -00:00:29 d #22 runtime.execute_with_options_async / { exit_code = 0; output_length = 491 } -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../target/Builder/math -polyglot/lib/spiral/lib.ps1/GetTargetDir / targetDir: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\math -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../.. -polyglot/lib/spiral/lib.ps1/BuildFable / TargetDir: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\math / ProjectName: math / Language: rs / Runtime: / root: C:\home\git\polyglot\lib\spiral\..\.. -Fable 5.0.0-alpha.2: F# to Rust compiler (status: alpha) - -Thanks to the contributor! @davedawkins +00:00:16 d #11 runtime.execute_with_options_async / { exit_code = 0; output_length = 493 } +00:00:16 d #12 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0 + "publish "c:/home/git\polyglot\target/Builder\math\math.fsproj" --configuration Release --output "C:\home\git\polyglot\lib\math\dist" --runtime win-x64"; options = { command = dotnet publish "c:/home/git\polyglot\target/Builder\math\math.fsproj" --configuration Release --output "C:\home\git\polyglot\lib\math\dist" --runtime win-x64; cancellation_token = None; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = Some "c:\home\git\polyglot\target\Builder\math" } } +00:00:17 v #13 > Determining projects to restore... +00:00:17 v #14 > Paket version 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0 +00:00:17 v #15 > The last full restore is still up to date. Nothing left to do. +00:00:17 v #16 > Total time taken: 0 milliseconds +00:00:18 v #17 > Restored c:\home\git\polyglot\target\Builder\math\math.fsproj (in 348 ms). +00:00:31 v #18 > math -> c:\home\git\polyglot\target\Builder\math\bin\Release\net9.0\win-x64\math.dll +00:00:32 v #19 > math -> C:\home\git\polyglot\lib\math\dist\ +00:00:32 v #20 > +00:00:32 v #21 > Workload updates are available. Run `dotnet workload list` for more information. +00:00:32 d #22 runtime.execute_with_options_async / { exit_code = 0; output_length = 491 } +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/polyglot/target/Builder/math +spiral/lib/spiral/lib.ps1/GetTargetDir / targetDir: C:\home\git\polyglot\target\Builder\math +polyglot/scripts/core.ps1/ResolveLink #4 / Path: C:\home\git\polyglot\deps\spiral\lib\spiral/../../deps/polyglot / parent_target: / path_target: C:\home\git\polyglot / parent: C:\home\git\polyglot\deps\spiral\lib\spiral\..\..\deps / End: polyglot +spiral/lib/spiral/lib.ps1/BuildFable / TargetDir: C:\home\git\polyglot\target\Builder\math / ProjectName: math / Language: rs / Runtime: / root: C:\home\git\polyglot +Fable 5.0.0-alpha.5: F# to Rust compiler (status: alpha) + +Thanks to the contributor! @SCullman Stand with Ukraine! https://standwithukraine.com.ua/ Parsing target\Builder\math\math.fsproj... Retrieving project options from cache, in case of issues run `dotnet fable clean` or try `--noCache` option. -Project and references (14 source files) parsed in 172ms +Project and references (14 source files) parsed in 190ms Started Fable compilation... -Fable compilation finished in 9268ms - -.\lib\spiral\async_.fsx(250,0): (250,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! -.\lib\spiral\threading.fsx(139,0): (139,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! -.\lib\spiral\common.fsx(2117,0): (2117,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! -.\lib\spiral\sm.fsx(556,0): (556,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! -.\lib\spiral\crypto.fsx(2344,0): (2344,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! -.\lib\spiral\date_time.fsx(2527,0): (2527,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! -.\lib\spiral\platform.fsx(120,0): (120,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! -.\lib\spiral\networking.fsx(4935,0): (4935,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! -.\lib\spiral\trace.fsx(2150,0): (2150,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! -.\lib\spiral\runtime.fsx(7101,0): (7101,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! -.\lib\spiral\file_system.fsx(17438,0): (17438,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! +Fable compilation finished in 9989ms + +.\deps\spiral\lib\spiral\async_.fsx(250,0): (250,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! +.\deps\spiral\lib\spiral\sm.fsx(559,0): (559,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! +.\deps\spiral\lib\spiral\common.fsx(2117,0): (2117,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! +.\deps\spiral\lib\spiral\threading.fsx(139,0): (139,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! +.\deps\spiral\lib\spiral\crypto.fsx(2344,0): (2344,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! +.\deps\spiral\lib\spiral\date_time.fsx(2545,0): (2545,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! +.\deps\spiral\lib\spiral\platform.fsx(120,0): (120,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! +.\deps\spiral\lib\spiral\networking.fsx(4935,0): (4935,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! +.\deps\spiral\lib\spiral\trace.fsx(2150,0): (2150,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! +.\deps\spiral\lib\spiral\runtime.fsx(7101,0): (7101,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! +.\deps\spiral\lib\spiral\file_system.fsx(17933,0): (17933,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! .\target\Builder\math\math.fs(46,0): (48,3) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../lib/fsharp/Common.rs -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\math/target/rs/lib/fsharp/Common.rs / to: C:\home\git\polyglot\lib\spiral\..\..\lib\fsharp\Common.rs -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/common.rs -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\math/target/rs/lib/spiral/common.rs / to: C:\home\git\polyglot\lib\spiral\..\..\lib\spiral\common.rs -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/date_time.rs -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\math/target/rs/lib/spiral/date_time.rs / to: C:\home\git\polyglot\lib\spiral\..\..\lib\spiral\date_time.rs -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/async_.rs -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\math/target/rs/lib/spiral/async_.rs / to: C:\home\git\polyglot\lib\spiral\..\..\lib\spiral\async_.rs -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/platform.rs -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\math/target/rs/lib/spiral/platform.rs / to: C:\home\git\polyglot\lib\spiral\..\..\lib\spiral\platform.rs -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/runtime.rs -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\math/target/rs/lib/spiral/runtime.rs / to: C:\home\git\polyglot\lib\spiral\..\..\lib\spiral\runtime.rs -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/threading.rs -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\math/target/rs/lib/spiral/threading.rs / to: C:\home\git\polyglot\lib\spiral\..\..\lib\spiral\threading.rs -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/networking.rs -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\math/target/rs/lib/spiral/networking.rs / to: C:\home\git\polyglot\lib\spiral\..\..\lib\spiral\networking.rs -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/file_system.rs -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\math/target/rs/lib/spiral/file_system.rs / to: C:\home\git\polyglot\lib\spiral\..\..\lib\spiral\file_system.rs -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/sm.rs -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\math/target/rs/lib/spiral/sm.rs / to: C:\home\git\polyglot\lib\spiral\..\..\lib\spiral\sm.rs -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/crypto.rs -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\math/target/rs/lib/spiral/crypto.rs / to: C:\home\git\polyglot\lib\spiral\..\..\lib\spiral\crypto.rs -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/trace.rs -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\math/target/rs/lib/spiral/trace.rs / to: C:\home\git\polyglot\lib\spiral\..\..\lib\spiral\trace.rs -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/lib.rs -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\math/target/rs/lib/spiral/lib.rs / to: C:\home\git\polyglot\lib\spiral\..\..\lib\spiral\lib.rs -polyglot/lib/math/build.ps1 / path: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\math/target/rs/math.rs - Compiling fable_library_rust v0.1.0 (C:\home\git\polyglot\lib\rust\fable\fable_modules\fable-library-rust) - Compiling math v0.0.1 (C:\home\git\polyglot\lib\math) - Finished `release` profile [optimized] target(s) in 20.19s - Running unittests math.rs (C:\home\git\polyglot\workspace\target\release\deps\math-23d745d94029d129.exe) - +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/polyglot/target/Builder/math/target/rs/deps/spiral/lib/fsharp/Common.rs +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/polyglot/lib/fsharp/Common.rs +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\math/target/rs/lib/fsharp/Common.rs / to: C:\home\git\polyglot\lib\fsharp\Common.rs +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/common.rs +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\math/target/rs/deps/spiral/lib/spiral/common.rs / to: C:\home\git\spiral\lib\spiral\common.rs +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/date_time.rs +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\math/target/rs/deps/spiral/lib/spiral/date_time.rs / to: C:\home\git\spiral\lib\spiral\date_time.rs +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/async_.rs +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\math/target/rs/deps/spiral/lib/spiral/async_.rs / to: C:\home\git\spiral\lib\spiral\async_.rs +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/platform.rs +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\math/target/rs/deps/spiral/lib/spiral/platform.rs / to: C:\home\git\spiral\lib\spiral\platform.rs +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/runtime.rs +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\math/target/rs/deps/spiral/lib/spiral/runtime.rs / to: C:\home\git\spiral\lib\spiral\runtime.rs +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/threading.rs +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\math/target/rs/deps/spiral/lib/spiral/threading.rs / to: C:\home\git\spiral\lib\spiral\threading.rs +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/networking.rs +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\math/target/rs/deps/spiral/lib/spiral/networking.rs / to: C:\home\git\spiral\lib\spiral\networking.rs +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/file_system.rs +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\math/target/rs/deps/spiral/lib/spiral/file_system.rs / to: C:\home\git\spiral\lib\spiral\file_system.rs +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/sm.rs +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\math/target/rs/deps/spiral/lib/spiral/sm.rs / to: C:\home\git\spiral\lib\spiral\sm.rs +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/crypto.rs +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\math/target/rs/deps/spiral/lib/spiral/crypto.rs / to: C:\home\git\spiral\lib\spiral\crypto.rs +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/trace.rs +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\math/target/rs/deps/spiral/lib/spiral/trace.rs / to: C:\home\git\spiral\lib\spiral\trace.rs +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/lib.rs +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\math/target/rs/deps/spiral/lib/spiral/lib.rs / to: C:\home\git\spiral\lib\spiral\lib.rs +polyglot/lib/math/build.ps1 / path: C:\home\git\polyglot\target\Builder\math/target/rs/math.rs + Compiling proc-macro2 v1.0.92 + Compiling unicode-ident v1.0.14 + Compiling once_cell v1.20.2 + Compiling typenum v1.17.0 + Compiling heck v0.5.0 + Compiling fable_library_rust v0.1.0 (C:\home\git\polyglot\lib\rust\fable\fable_modules\fable-library-rust) + Compiling pyo3-build-config v0.23.3 + Compiling quote v1.0.37 + Compiling pyo3-macros-backend v0.23.3 + Compiling pyo3-ffi v0.23.3 + Compiling pyo3 v0.23.3 + Compiling syn v2.0.90 + Compiling hybrid-array v0.2.3 + Compiling crypto-common v0.2.0-rc.1 + Compiling block-buffer v0.11.0-rc.3 + Compiling digest v0.11.0-pre.9 + Compiling sha2 v0.11.0-pre.4 + Compiling zerocopy-derive v0.7.35 + Compiling zerocopy v0.7.35 + Compiling ppv-lite86 v0.2.20 + Compiling rand_chacha v0.3.1 + Compiling rand v0.8.5 + Compiling pyo3-macros v0.23.3 + Compiling rand_distr v0.4.3 + Compiling nalgebra v0.33.2 + Compiling statrs v0.18.0 + Compiling math v0.0.1 (C:\home\git\polyglot\lib\math) + Finished `release` profile [optimized] target(s) in 41.93s + Running unittests math.rs (C:\home\git\polyglot\workspace\target\release\deps\math-23d745d94029d129.exe) + running 12 tests -test module_b7a9935b::Math::test_behavior_near_origin___ ... ok -test module_b7a9935b::Math::test_real_part_greater_than_one___ ... ok -test module_b7a9935b::Math::test_zeta_at_1___ ... ok -test module_b7a9935b::Math::test_trivial_zero_at_negative_even___ ... ok -test module_b7a9935b::Math::test_zeta_at_2_minus2 ... ok -test module_b7a9935b::Math::test_zeta_at_known_values_ ... ok -test module_b7a9935b::Math::test_imaginary_axis ... ok -test module_b7a9935b::Math::test_non_trivial_zero___ ... ok -test module_b7a9935b::Math::test_euler_product_formula ... ok -test module_b7a9935b::Math::test_critical_strip ... ok -test module_b7a9935b::Math::test_symmetry_across_real_axis___ ... ok -test module_b7a9935b::Math::test_reflection_formula_for_specific_value ... ok - -test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.31s +test module_728458a3::Math::test_behavior_near_origin___ ... ok +test module_728458a3::Math::test_reflection_formula_for_specific_value ... ok +test module_728458a3::Math::test_symmetry_across_real_axis___ ... ok +test module_728458a3::Math::test_trivial_zero_at_negative_even___ ... ok +test module_728458a3::Math::test_zeta_at_1___ ... ok +test module_728458a3::Math::test_zeta_at_2_minus2 ... ok +test module_728458a3::Math::test_imaginary_axis ... ok +test module_728458a3::Math::test_critical_strip ... ok +test module_728458a3::Math::test_zeta_at_known_values_ ... ok +test module_728458a3::Math::test_non_trivial_zero___ ... ok +test module_728458a3::Math::test_real_part_greater_than_one___ ... ok +test module_728458a3::Math::test_euler_product_formula ... ok + +test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.33s@@ -25816,2132 +23594,2119 @@-Compiling fable_library_rust v0.1.0 (C:\home\git\polyglot\lib\rust\fable\fable_modules\fable-library-rust) +Compiling typenum v1.17.0 + Compiling fable_library_rust v0.1.0 (C:\home\git\polyglot\lib\rust\fable\fable_modules\fable-library-rust) + Compiling hybrid-array v0.2.3 + Compiling crypto-common v0.2.0-rc.1 + Compiling block-buffer v0.11.0-rc.3 + Compiling digest v0.11.0-pre.9 + Compiling sha2 v0.11.0-pre.4 Compiling plot v0.0.1 (C:\home\git\polyglot\apps\plot) warning: unnecessary parentheses around function argument - --> C:\home\git\polyglot\apps\plot\..\..\lib\spiral\.\networking.rs:533:33 + --> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:533:33 | 533 | let v3: string = append((v0_1.l0.get().clone()), (v1_1)); | ^ ^ @@ -25214,7 +22992,7 @@ | warning: unnecessary parentheses around function argument - --> C:\home\git\polyglot\apps\plot\..\..\lib\spiral\.\networking.rs:533:58 + --> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\networking.rs:533:58 | 533 | let v3: string = append((v0_1.l0.get().clone()), (v1_1)); | ^ ^ @@ -25226,7 +23004,7 @@ | warning: unnecessary parentheses around function argument - --> C:\home\git\polyglot\apps\plot\..\..\lib\spiral\.\runtime.rs:708:33 + --> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:708:33 | 708 | let v3: string = append((v0_1.l0.get().clone()), (v1_1)); | ^ ^ @@ -25238,7 +23016,7 @@ | warning: unnecessary parentheses around function argument - --> C:\home\git\polyglot\apps\plot\..\..\lib\spiral\.\runtime.rs:708:58 + --> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:708:58 | 708 | let v3: string = append((v0_1.l0.get().clone()), (v1_1)); | ^ ^ @@ -25250,7 +23028,7 @@ | warning: unnecessary parentheses around function argument - --> C:\home\git\polyglot\apps\plot\..\..\lib\spiral\.\runtime.rs:1019:62 + --> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1019:62 | 1019 | (Runtime::method30(v0_1, (v1_1) + 1_i32))(append((v2_1), string(" "))) | ^ ^ @@ -25262,7 +23040,7 @@ | warning: unnecessary parentheses around function argument - --> C:\home\git\polyglot\apps\plot\..\..\lib\spiral\.\runtime.rs:1109:25 + --> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1109:25 | 1109 | ((Runtime::method30((v3) - 1_i32, 0_i32))(string(""))), | ^ ^ @@ -25274,7 +23052,7 @@ | warning: unnecessary parentheses around function argument - --> C:\home\git\polyglot\apps\plot\..\..\lib\spiral\.\runtime.rs:1197:25 + --> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1197:25 | 1197 | ((Runtime::method30((v3) - 1_i32, 0_i32))(string(""))), | ^ ^ @@ -25286,7 +23064,7 @@ | warning: unnecessary parentheses around function argument - --> C:\home\git\polyglot\apps\plot\..\..\lib\spiral\.\runtime.rs:1378:36 + --> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1378:36 | 1378 | ... append((v0_1.get().clone()), (ofChar(v121_0_0.clone()))); | ^ ^ @@ -25298,7 +23076,7 @@ | warning: unnecessary parentheses around function argument - --> C:\home\git\polyglot\apps\plot\..\..\lib\spiral\.\runtime.rs:1378:58 + --> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1378:58 | 1378 | ... append((v0_1.get().clone()), (ofChar(v121_0_0.clone()))); | ^ ^ @@ -25310,7 +23088,7 @@ | warning: unnecessary parentheses around function argument - --> C:\home\git\polyglot\apps\plot\..\..\lib\spiral\.\runtime.rs:1586:36 + --> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1586:36 | 1586 | ... append((v0_1.get().clone()), (ofChar(v127_0_0.clone()))); | ^ ^ @@ -25322,7 +23100,7 @@ | warning: unnecessary parentheses around function argument - --> C:\home\git\polyglot\apps\plot\..\..\lib\spiral\.\runtime.rs:1586:58 + --> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1586:58 | 1586 | ... append((v0_1.get().clone()), (ofChar(v127_0_0.clone()))); | ^ ^ @@ -25334,7 +23112,7 @@ | warning: unnecessary parentheses around function argument - --> C:\home\git\polyglot\apps\plot\..\..\lib\spiral\.\runtime.rs:1696:36 + --> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1696:36 | 1696 | ... append((v0_1.get().clone()), (ofChar(v79_0_0.clone()))); | ^ ^ @@ -25346,7 +23124,7 @@ | warning: unnecessary parentheses around function argument - --> C:\home\git\polyglot\apps\plot\..\..\lib\spiral\.\runtime.rs:1696:58 + --> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:1696:58 | 1696 | ... append((v0_1.get().clone()), (ofChar(v79_0_0.clone()))); | ^ ^ @@ -25358,7 +23136,7 @@ | warning: unnecessary parentheses around function argument - --> C:\home\git\polyglot\apps\plot\..\..\lib\spiral\.\runtime.rs:2154:37 + --> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:2154:37 | 2154 | ... ((Runtime::method30((v419) - 1_i32, 0_i32))(string(""))), | ^ ^ @@ -25370,7 +23148,7 @@ | warning: unnecessary parentheses around function argument - --> C:\home\git\polyglot\apps\plot\..\..\lib\spiral\.\runtime.rs:3183:36 + --> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:3183:36 | 3183 | ... append((v0_1.get().clone()), (ofChar(v121_0_0.clone()))); | ^ ^ @@ -25382,7 +23160,7 @@ | warning: unnecessary parentheses around function argument - --> C:\home\git\polyglot\apps\plot\..\..\lib\spiral\.\runtime.rs:3183:58 + --> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:3183:58 | 3183 | ... append((v0_1.get().clone()), (ofChar(v121_0_0.clone()))); | ^ ^ @@ -25394,7 +23172,7 @@ | warning: unnecessary parentheses around function argument - --> C:\home\git\polyglot\apps\plot\..\..\lib\spiral\.\runtime.rs:3329:25 + --> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:3329:25 | 3329 | ((Runtime::method30((v3) - 1_i32, 0_i32))(string(""))), | ^ ^ @@ -25406,7 +23184,7 @@ | warning: unnecessary parentheses around function argument - --> C:\home\git\polyglot\apps\plot\..\..\lib\spiral\.\runtime.rs:3396:28 + --> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:3396:28 | 3396 | append((ofChar('\\')), (ofChar(v210_0_0.clone()))), | ^ ^ @@ -25418,7 +23196,7 @@ | warning: unnecessary parentheses around function argument - --> C:\home\git\polyglot\apps\plot\..\..\lib\spiral\.\runtime.rs:3396:44 + --> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:3396:44 | 3396 | append((ofChar('\\')), (ofChar(v210_0_0.clone()))), | ^ ^ @@ -25430,7 +23208,7 @@ | warning: unnecessary parentheses around function argument - --> C:\home\git\polyglot\apps\plot\..\..\lib\spiral\.\runtime.rs:3486:25 + --> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:3486:25 | 3486 | ((Runtime::method30((v3) - 1_i32, 0_i32))(string(""))), | ^ ^ @@ -25442,7 +23220,7 @@ | warning: unnecessary parentheses around function argument - --> C:\home\git\polyglot\apps\plot\..\..\lib\spiral\.\runtime.rs:3553:28 + --> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:3553:28 | 3553 | append((ofChar('`')), (ofChar(v210_0_0.clone()))), | ^ ^ @@ -25454,7 +23232,7 @@ | warning: unnecessary parentheses around function argument - --> C:\home\git\polyglot\apps\plot\..\..\lib\spiral\.\runtime.rs:3553:43 + --> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:3553:43 | 3553 | append((ofChar('`')), (ofChar(v210_0_0.clone()))), | ^ ^ @@ -25466,7 +23244,7 @@ | warning: unnecessary parentheses around function argument - --> C:\home\git\polyglot\apps\plot\..\..\lib\spiral\.\runtime.rs:4101:96 + --> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:4101:96 | 4101 | ... append(((Runtime::method30((v4.get().clone()) | ^ @@ -25483,7 +23261,7 @@ | warning: unnecessary parentheses around function argument - --> C:\home\git\polyglot\apps\plot\..\..\lib\spiral\.\runtime.rs:4249:116 + --> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\runtime.rs:4249:116 | 4249 | ... append(((Runtime::method30((v307) | ^ @@ -25500,7 +23278,7 @@ | warning: unnecessary parentheses around function argument - --> C:\home\git\polyglot\apps\plot\..\..\lib\spiral\.\trace.rs:480:33 + --> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\trace.rs:480:33 | 480 | let v3: string = append((v0_1.l0.get().clone()), (v1_1)); | ^ ^ @@ -25512,7 +23290,7 @@ | warning: unnecessary parentheses around function argument - --> C:\home\git\polyglot\apps\plot\..\..\lib\spiral\.\trace.rs:480:58 + --> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\trace.rs:480:58 | 480 | let v3: string = append((v0_1.l0.get().clone()), (v1_1)); | ^ ^ @@ -25524,79 +23302,79 @@ | warning: unnecessary parentheses around function argument - --> C:\home\git\polyglot\apps\plot\..\..\lib\spiral\.\file_system.rs:701:33 + --> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:740:33 | -701 | let v3: string = append((v0_1.l0.get().clone()), (v1_1)); +740 | let v3: string = append((v0_1.l0.get().clone()), (v1_1)); | ^ ^ | help: remove these parentheses | -701 - let v3: string = append((v0_1.l0.get().clone()), (v1_1)); -701 + let v3: string = append(v0_1.l0.get().clone(), (v1_1)); +740 - let v3: string = append((v0_1.l0.get().clone()), (v1_1)); +740 + let v3: string = append(v0_1.l0.get().clone(), (v1_1)); | warning: unnecessary parentheses around function argument - --> C:\home\git\polyglot\apps\plot\..\..\lib\spiral\.\file_system.rs:701:58 + --> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:740:58 | -701 | let v3: string = append((v0_1.l0.get().clone()), (v1_1)); +740 | let v3: string = append((v0_1.l0.get().clone()), (v1_1)); | ^ ^ | help: remove these parentheses | -701 - let v3: string = append((v0_1.l0.get().clone()), (v1_1)); -701 + let v3: string = append((v0_1.l0.get().clone()), v1_1); +740 - let v3: string = append((v0_1.l0.get().clone()), (v1_1)); +740 + let v3: string = append((v0_1.l0.get().clone()), v1_1); | warning: unnecessary parentheses around function argument - --> C:\home\git\polyglot\apps\plot\..\..\lib\spiral\.\file_system.rs:2388:81 + --> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2427:81 | -2388 | (File_system::method105(v0_1, v1_1.clone(), (v2_1) + 1_i32))(append((v3), (v1_1))) +2427 | (File_system::method105(v0_1, v1_1.clone(), (v2_1) + 1_i32))(append((v3), (v1_1))) | ^ ^ | help: remove these parentheses | -2388 - (File_system::method105(v0_1, v1_1.clone(), (v2_1) + 1_i32))(append((v3), (v1_1))) -2388 + (File_system::method105(v0_1, v1_1.clone(), (v2_1) + 1_i32))(append(v3, (v1_1))) +2427 - (File_system::method105(v0_1, v1_1.clone(), (v2_1) + 1_i32))(append((v3), (v1_1))) +2427 + (File_system::method105(v0_1, v1_1.clone(), (v2_1) + 1_i32))(append(v3, (v1_1))) | warning: unnecessary parentheses around function argument - --> C:\home\git\polyglot\apps\plot\..\..\lib\spiral\.\file_system.rs:2388:87 + --> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2427:87 | -2388 | (File_system::method105(v0_1, v1_1.clone(), (v2_1) + 1_i32))(append((v3), (v1_1))) +2427 | (File_system::method105(v0_1, v1_1.clone(), (v2_1) + 1_i32))(append((v3), (v1_1))) | ^ ^ | help: remove these parentheses | -2388 - (File_system::method105(v0_1, v1_1.clone(), (v2_1) + 1_i32))(append((v3), (v1_1))) -2388 + (File_system::method105(v0_1, v1_1.clone(), (v2_1) + 1_i32))(append((v3), v1_1)) +2427 - (File_system::method105(v0_1, v1_1.clone(), (v2_1) + 1_i32))(append((v3), (v1_1))) +2427 + (File_system::method105(v0_1, v1_1.clone(), (v2_1) + 1_i32))(append((v3), v1_1)) | warning: unnecessary parentheses around function argument - --> C:\home\git\polyglot\apps\plot\..\..\lib\spiral\.\file_system.rs:2402:13 + --> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2441:13 | -2402 | ((File_system::method105(32_i32 - (length(v0_1.clone())), v2_1, 0_i32))(string(""))), +2441 | ((File_system::method105(32_i32 - (length(v0_1.clone())), v2_1, 0_i32))(string(""))), | ^ ^ | help: remove these parentheses | -2402 - ((File_system::method105(32_i32 - (length(v0_1.clone())), v2_1, 0_i32))(string(""))), -2402 + (File_system::method105(32_i32 - (length(v0_1.clone())), v2_1, 0_i32))(string("")), +2441 - ((File_system::method105(32_i32 - (length(v0_1.clone())), v2_1, 0_i32))(string(""))), +2441 + (File_system::method105(32_i32 - (length(v0_1.clone())), v2_1, 0_i32))(string("")), | warning: unnecessary parentheses around function argument - --> C:\home\git\polyglot\apps\plot\..\..\lib\spiral\.\file_system.rs:2403:13 + --> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\file_system.rs:2442:13 | -2403 | (v0_1), +2442 | (v0_1), | ^ ^ | help: remove these parentheses | -2403 - (v0_1), -2403 + v0_1, +2442 - (v0_1), +2442 + v0_1, | warning: unnecessary parentheses around function argument - --> C:\home\git\polyglot\apps\plot\..\..\lib\spiral\.\sm.rs:94:70 + --> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\sm.rs:94:70 | 94 | (Sm::method0(v0_1, v1_1.clone(), (v2_1) + 1_i32))(append((v3_1), (v1_1))) | ^ ^ @@ -25608,7 +23386,7 @@ | warning: unnecessary parentheses around function argument - --> C:\home\git\polyglot\apps\plot\..\..\lib\spiral\.\sm.rs:94:78 + --> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\sm.rs:94:78 | 94 | (Sm::method0(v0_1, v1_1.clone(), (v2_1) + 1_i32))(append((v3_1), (v1_1))) | ^ ^ @@ -25620,7 +23398,7 @@ | warning: unnecessary parentheses around function argument - --> C:\home\git\polyglot\apps\plot\..\..\lib\spiral\.\sm.rs:108:13 + --> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\sm.rs:108:13 | 108 | ((Sm::method0((v0_1) - (length(v2_1.clone())), v4_1, 0_i32))(string(""))), | ^ ^ @@ -25632,7 +23410,7 @@ | warning: unnecessary parentheses around function argument - --> C:\home\git\polyglot\apps\plot\..\..\lib\spiral\.\sm.rs:109:13 + --> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\sm.rs:109:13 | 109 | (v2_1), | ^ ^ @@ -25644,7 +23422,7 @@ | warning: unnecessary parentheses around function argument - --> C:\home\git\polyglot\apps\plot\..\..\lib\spiral\.\sm.rs:128:13 + --> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\sm.rs:128:13 | 128 | (v2_1.clone()), | ^ ^ @@ -25656,7 +23434,7 @@ | warning: unnecessary parentheses around function argument - --> C:\home\git\polyglot\apps\plot\..\..\lib\spiral\.\sm.rs:129:13 + --> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\sm.rs:129:13 | 129 | ((Sm::method0((v0_1) - (length(v2_1)), v4_1, 0_i32))(string(""))), | ^ ^ @@ -25668,79 +23446,79 @@ | warning: unnecessary parentheses around function argument - --> C:\home\git\polyglot\apps\plot\..\..\lib\spiral\.\sm.rs:342:17 + --> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\sm.rs:345:17 | -342 | (getSlice(v1_1, Some(0_i32), Some((v0_1) - 1_i32))), +345 | (getSlice(v1_1, Some(0_i32), Some((v0_1) - 1_i32))), | ^ ^ | help: remove these parentheses | -342 - (getSlice(v1_1, Some(0_i32), Some((v0_1) - 1_i32))), -342 + getSlice(v1_1, Some(0_i32), Some((v0_1) - 1_i32)), +345 - (getSlice(v1_1, Some(0_i32), Some((v0_1) - 1_i32))), +345 + getSlice(v1_1, Some(0_i32), Some((v0_1) - 1_i32)), | warning: unnecessary parentheses around function argument - --> C:\home\git\polyglot\apps\plot\..\..\lib\spiral\.\sm.rs:407:17 + --> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\sm.rs:410:17 | -407 | (append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue))), +410 | (append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue))), | ^ ^ | help: remove these parentheses | -407 - (append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue))), -407 + append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue)), +410 - (append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue))), +410 + append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue)), | warning: unnecessary parentheses around function argument - --> C:\home\git\polyglot\apps\plot\..\..\lib\spiral\.\sm.rs:407:25 + --> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\sm.rs:410:25 | -407 | (append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue))), +410 | (append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue))), | ^ ^ | help: remove these parentheses | -407 - (append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue))), -407 + (append(append((v1_1[v9_1].clone()), (matchValue_1)), (matchValue))), +410 - (append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue))), +410 + (append(append((v1_1[v9_1].clone()), (matchValue_1)), (matchValue))), | warning: unnecessary parentheses around function argument - --> C:\home\git\polyglot\apps\plot\..\..\lib\spiral\.\sm.rs:407:73 + --> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\sm.rs:410:73 | -407 | (append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue))), +410 | (append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue))), | ^ ^ | help: remove these parentheses | -407 - (append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue))), -407 + (append((append((v1_1[v9_1].clone()), (matchValue_1))), matchValue)), +410 - (append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue))), +410 + (append((append((v1_1[v9_1].clone()), (matchValue_1))), matchValue)), | warning: unnecessary parentheses around function argument - --> C:\home\git\polyglot\apps\plot\..\..\lib\spiral\.\sm.rs:407:33 + --> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\sm.rs:410:33 | -407 | (append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue))), +410 | (append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue))), | ^ ^ | help: remove these parentheses | -407 - (append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue))), -407 + (append((append(v1_1[v9_1].clone(), (matchValue_1))), (matchValue))), +410 - (append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue))), +410 + (append((append(v1_1[v9_1].clone(), (matchValue_1))), (matchValue))), | warning: unnecessary parentheses around function argument - --> C:\home\git\polyglot\apps\plot\..\..\lib\spiral\.\sm.rs:407:55 + --> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\sm.rs:410:55 | -407 | (append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue))), +410 | (append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue))), | ^ ^ | help: remove these parentheses | -407 - (append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue))), -407 + (append((append((v1_1[v9_1].clone()), matchValue_1)), (matchValue))), +410 - (append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue))), +410 + (append((append((v1_1[v9_1].clone()), matchValue_1)), (matchValue))), | warning: unnecessary parentheses around function argument - --> C:\home\git\polyglot\apps\plot\..\..\lib\spiral\.\crypto.rs:626:33 + --> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\crypto.rs:626:33 | 626 | let v3: string = append((v0_1.l0.get().clone()), (v1_1)); | ^ ^ @@ -25752,7 +23530,7 @@ | warning: unnecessary parentheses around function argument - --> C:\home\git\polyglot\apps\plot\..\..\lib\spiral\.\crypto.rs:626:58 + --> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\crypto.rs:626:58 | 626 | let v3: string = append((v0_1.l0.get().clone()), (v1_1)); | ^ ^ @@ -25764,7 +23542,7 @@ | warning: unnecessary parentheses around function argument - --> C:\home\git\polyglot\apps\plot\..\..\lib\spiral\.\common.rs:558:33 + --> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\common.rs:558:33 | 558 | let v3: string = append((v0_1.l0.get().clone()), (v1_1)); | ^ ^ @@ -25776,7 +23554,7 @@ | warning: unnecessary parentheses around function argument - --> C:\home\git\polyglot\apps\plot\..\..\lib\spiral\.\common.rs:558:58 + --> C:\home\git\polyglot\apps\plot\..\..\deps\spiral\lib\spiral\.\common.rs:558:58 | 558 | let v3: string = append((v0_1.l0.get().clone()), (v1_1)); | ^ ^ @@ -25788,7 +23566,7 @@ | warning: `plot` (lib) generated 48 warnings (run `cargo fix --lib -p plot` to apply 48 suggestions) - Finished `release` profile [optimized] target(s) in 18.29s + Finished `release` profile [optimized] target(s) in 34.37s-00:00:00 v #1 async.run_with_timeout_async / { timeout = 180 } -00:00:00 d #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0 - ""C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 --default-int i32 --default-float f64"; options = { command = dotnet "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 --default-int i32 --default-float f64; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = Some <fun:compiler@87-4>; stdin = None; trace = true; working_directory = Some "C:\home\git\polyglot" } } -00:00:00 v #2 > 00:00:00 d #1 pwd: C:\home\git\polyglot -00:00:00 v #3 > 00:00:00 d #2 dllPath: C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release -00:00:00 v #4 > 00:00:00 d #3 targetDir: C:\home\git\polyglot\target/spiral_Eval -00:00:01 v #2 async.run_with_timeout_async / { timeout = 100 } -00:00:01 v #5 > Starting the Spiral Server. It is bound to: http://localhost:13805 -00:00:01 v #3 async.run_with_timeout_async / { timeout = 100 } -00:00:01 v #4 async.run_with_timeout_async / { timeout = 100 } -00:00:01 v #1 Supervisor.sendJson / port: 13805 / json: {"Ping":true} / result: -00:00:01 v #2 Supervisor.awaitCompiler / Ping / result: 'Some null' / port: 13805 / retry: 1 -00:00:01 v #6 > Server bound to: http://localhost:13805 -00:00:01 d #7 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path Perf.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path Perf.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } -00:00:01 v #8 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "Perf.dib", "--retries", "3"])) } -00:00:01 v #9 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/apps/perf/Perf.dib", "--output-path", "c:/home/git/polyglot/apps/perf/Perf.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/apps/perf/Perf.dib" --output-path "c:/home/git/polyglot/apps/perf/Perf.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } -00:00:03 v #10 > > -00:00:03 v #11 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:03 v #12 > > │ # Perf (Polyglot) -00:00:19 v #13 > > -00:00:19 v #14 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:19 v #15 > > //// test -00:00:19 v #16 > > -00:00:19 v #17 > > open testing -00:00:19 v #18 > > open benchmark -00:00:23 v #19 > > -00:00:23 v #20 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:23 v #21 > > #if !INTERACTIVE -00:00:23 v #22 > > open Lib -00:00:23 v #23 > > #endif -00:00:23 v #24 > > -00:00:23 v #25 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:23 v #26 > > │ ## TestCaseResult -00:00:23 v #27 > > -00:00:23 v #28 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:23 v #29 > > type TestCaseResult = -00:00:23 v #30 > > { -00:00:23 v #31 > > Input: string -00:00:23 v #32 > > Expected: string -00:00:23 v #33 > > Result: string -00:00:23 v #34 > > TimeList: int64 list -00:00:23 v #35 > > } -00:00:23 v #36 > > -00:00:23 v #37 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:23 v #38 > > │ ## run -00:00:23 v #39 > > -00:00:23 v #40 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:23 v #41 > > let run count (solutions: (string * ('TInput -> 'TExpected)) list) (input, -00:00:23 v #42 > > expected) = -00:00:23 v #43 > > let inputStr = -00:00:23 v #44 > > match box input with -00:00:23 v #45 > > | :? System.Collections.ICollection as input -> -00:00:23 v #46 > > System.Linq.Enumerable.Cast<obj> input -00:00:23 v #47 > > |> Seq.map string -00:00:23 v #48 > > |> SpiralSm.concat "," -00:00:23 v #49 > > | _ -> input.ToString () -00:00:23 v #50 > > -00:00:23 v #51 > > printfn "" -00:00:23 v #52 > > printfn $"Solution: {inputStr} " -00:00:23 v #53 > > -00:00:23 v #54 > > let performanceInvoke (fn: unit -> 'T) = -00:00:23 v #55 > > GC.Collect () -00:00:23 v #56 > > let stopwatch = System.Diagnostics.Stopwatch () -00:00:23 v #57 > > stopwatch.Start () -00:00:23 v #58 > > let time1 = stopwatch.ElapsedMilliseconds -00:00:23 v #59 > > -00:00:23 v #60 > > let result = -00:00:23 v #61 > > [[| 0 .. count |]] -00:00:23 v #62 > > |> Array.Parallel.map (fun _ -> -00:00:23 v #63 > > fn () -00:00:23 v #64 > > ) -00:00:23 v #65 > > |> Array.last -00:00:23 v #66 > > -00:00:23 v #67 > > let time2 = stopwatch.ElapsedMilliseconds - time1 -00:00:23 v #68 > > -00:00:23 v #69 > > result, time2 -00:00:23 v #70 > > -00:00:23 v #71 > > let resultsWithTime = -00:00:23 v #72 > > solutions -00:00:23 v #73 > > |> List.mapi (fun i (testName, solution) -> -00:00:23 v #74 > > let result, time = performanceInvoke (fun () -> solution input) -00:00:23 v #75 > > printfn $"Test case %d{i + 1}. %s{testName}. Time: %A{time} " -00:00:23 v #76 > > result, time -00:00:23 v #77 > > ) -00:00:23 v #78 > > -00:00:23 v #79 > > -00:00:23 v #80 > > match resultsWithTime |> List.map fst with -00:00:23 v #81 > > | ([[]] | [[ _ ]]) -> () -00:00:23 v #82 > > | (head :: tail) when tail |> List.forall ((=) head) -> () -00:00:23 v #83 > > | results -> failwithf $"Challenge error: %A{results}" -00:00:23 v #84 > > -00:00:23 v #85 > > { -00:00:23 v #86 > > Input = inputStr -00:00:23 v #87 > > Expected = expected.ToString () -00:00:23 v #88 > > Result = resultsWithTime |> Seq.map fst |> Seq.head |> _.ToString() -00:00:23 v #89 > > TimeList = resultsWithTime |> List.map snd -00:00:23 v #90 > > } -00:00:23 v #91 > > -00:00:23 v #92 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:23 v #93 > > │ ## runAll -00:00:23 v #94 > > -00:00:23 v #95 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:23 v #96 > > let runAll testName count (solutions: (string * ('TInput -> 'TExpected)) list) -00:00:23 v #97 > > testCases = -00:00:23 v #98 > > printfn "" -00:00:23 v #99 > > printfn "" -00:00:23 v #100 > > printfn $"Test: {testName}" -00:00:23 v #101 > > testCases -00:00:23 v #102 > > |> Seq.map (run count solutions) -00:00:23 v #103 > > |> Seq.toList -00:00:23 v #104 > > -00:00:23 v #105 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:23 v #106 > > │ ## sortResultList -00:00:23 v #107 > > -00:00:23 v #108 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:23 v #109 > > let sortResultList resultList = -00:00:23 v #110 > > let table = -00:00:23 v #111 > > let rows = -00:00:23 v #112 > > resultList -00:00:23 v #113 > > |> List.map (fun result -> -00:00:23 v #114 > > let best = -00:00:23 v #115 > > result.TimeList -00:00:23 v #116 > > |> List.mapi (fun i time -> -00:00:23 v #117 > > i + 1, time -00:00:23 v #118 > > ) -00:00:23 v #119 > > |> List.sortBy snd -00:00:23 v #120 > > |> List.head -00:00:23 v #121 > > |> _.ToString() -00:00:23 v #122 > > let row = -00:00:23 v #123 > > [[ -00:00:23 v #124 > > result.Input -00:00:23 v #125 > > result.Expected -00:00:23 v #126 > > result.Result -00:00:23 v #127 > > best -00:00:23 v #128 > > ]] -00:00:23 v #129 > > let color = -00:00:23 v #130 > > match result.Expected = result.Result with -00:00:23 v #131 > > | true -> Some ConsoleColor.DarkGreen -00:00:23 v #132 > > | false -> Some ConsoleColor.DarkRed -00:00:23 v #133 > > row, color -00:00:23 v #134 > > ) -00:00:23 v #135 > > let header = -00:00:23 v #136 > > [[ -00:00:23 v #137 > > [[ -00:00:23 v #138 > > "Input" -00:00:23 v #139 > > "Expected" -00:00:23 v #140 > > "Result" -00:00:23 v #141 > > "Best" -00:00:23 v #142 > > ]] -00:00:23 v #143 > > [[ -00:00:23 v #144 > > "---" -00:00:23 v #145 > > "---" -00:00:23 v #146 > > "---" -00:00:23 v #147 > > "---" -00:00:23 v #148 > > ]] -00:00:23 v #149 > > ]] -00:00:23 v #150 > > |> List.map (fun row -> row, None) -00:00:23 v #151 > > header @ rows -00:00:23 v #152 > > -00:00:23 v #153 > > let formattedTable = -00:00:23 v #154 > > let lengthMap = -00:00:23 v #155 > > table -00:00:23 v #156 > > |> List.map fst -00:00:23 v #157 > > |> List.transpose -00:00:23 v #158 > > |> List.map (fun column -> -00:00:23 v #159 > > column -00:00:23 v #160 > > |> List.map String.length -00:00:23 v #161 > > |> List.sortDescending -00:00:23 v #162 > > |> List.tryHead -00:00:23 v #163 > > |> Option.defaultValue 0 -00:00:23 v #164 > > ) -00:00:23 v #165 > > |> List.indexed -00:00:23 v #166 > > |> Map.ofList -00:00:23 v #167 > > table -00:00:23 v #168 > > |> List.map (fun (row, color) -> -00:00:23 v #169 > > let newRow = -00:00:23 v #170 > > row -00:00:23 v #171 > > |> List.mapi (fun i cell -> -00:00:23 v #172 > > cell.PadRight lengthMap.[[i]] -00:00:23 v #173 > > ) -00:00:23 v #174 > > newRow, color -00:00:23 v #175 > > ) -00:00:23 v #176 > > -00:00:23 v #177 > > printfn "" -00:00:23 v #178 > > formattedTable -00:00:23 v #179 > > |> List.iter (fun (row, color) -> -00:00:23 v #180 > > match color with -00:00:23 v #181 > > | Some color -> Console.ForegroundColor <- color -00:00:23 v #182 > > | None -> Console.ResetColor () -00:00:23 v #183 > > -00:00:23 v #184 > > printfn "%s" (String.Join ("\t| ", row)) -00:00:23 v #185 > > -00:00:23 v #186 > > Console.ResetColor () -00:00:23 v #187 > > ) -00:00:23 v #188 > > -00:00:23 v #189 > > let averages = -00:00:23 v #190 > > resultList -00:00:23 v #191 > > |> List.map (fun result -> result.TimeList |> List.map float) -00:00:23 v #192 > > |> List.transpose -00:00:23 v #193 > > |> List.map List.average -00:00:23 v #194 > > |> List.map int64 -00:00:23 v #195 > > |> List.indexed -00:00:23 v #196 > > -00:00:23 v #197 > > printfn "" -00:00:23 v #198 > > printfn "Average Ranking " -00:00:23 v #199 > > averages -00:00:23 v #200 > > |> List.sortBy snd -00:00:23 v #201 > > |> List.iter (fun (i, avg) -> -00:00:23 v #202 > > printfn $"Test case %d{i + 1}. Average Time: %A{avg} " -00:00:23 v #203 > > ) -00:00:23 v #204 > > -00:00:23 v #205 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:23 v #206 > > let mutable _count = -00:00:23 v #207 > > if ("CI" |> System.Environment.GetEnvironmentVariable |> fun x -> $"%A{x}") -00:00:23 v #208 > > <> "<null>" -00:00:23 v #209 > > then 2000000 -00:00:23 v #210 > > else 2000 -00:00:23 v #211 > > -00:00:23 v #212 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:23 v #213 > > inl is_fast () = -00:00:23 v #214 > > false -00:00:24 v #215 > > -00:00:24 v #216 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:24 v #217 > > │ ## empty3Tests -00:00:24 v #218 > > -00:00:24 v #219 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:24 v #220 > > │ Test: Empty3 -00:00:24 v #221 > > │ -00:00:24 v #222 > > │ Solution: (a, a) -00:00:24 v #223 > > │ Test case 1. A. Time: 91L -00:00:24 v #224 > > │ -00:00:24 v #225 > > │ Solution: (a, a) -00:00:24 v #226 > > │ Test case 1. A. Time: 56L -00:00:24 v #227 > > │ -00:00:24 v #228 > > │ Input | Expected | Result | Best -00:00:24 v #229 > > │ --- | --- | --- | --- -00:00:24 v #230 > > │ (a, a) | a | a | (1, 91) -00:00:24 v #231 > > │ (a, a) | a | a | (1, 56) -00:00:24 v #232 > > │ -00:00:24 v #233 > > │ Averages -00:00:24 v #234 > > │ Test case 1. Average Time: 73L -00:00:24 v #235 > > │ -00:00:24 v #236 > > │ Ranking -00:00:24 v #237 > > │ Test case 1. Average Time: 73L -00:00:24 v #238 > > -00:00:24 v #239 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:24 v #240 > > //// test -00:00:24 v #241 > > -00:00:24 v #242 > > let solutions = [[ -00:00:24 v #243 > > "A", -00:00:24 v #244 > > fun (a, _b) -> -00:00:24 v #245 > > a -00:00:24 v #246 > > ]] -00:00:24 v #247 > > let testCases = seq { -00:00:24 v #248 > > ("a", "a"), "a" -00:00:24 v #249 > > ("a", "a"), "a" -00:00:24 v #250 > > } -00:00:24 v #251 > > let rec empty3Tests = runAll (nameof empty3Tests) _count solutions testCases -00:00:24 v #252 > > empty3Tests -00:00:24 v #253 > > |> sortResultList -00:00:24 v #254 > > -00:00:24 v #255 > > ── [ 468.56ms - stdout ] ─────────────────────────────────────────────────────── -00:00:24 v #256 > > │ -00:00:24 v #257 > > │ -00:00:24 v #258 > > │ Test: empty3Tests -00:00:24 v #259 > > │ -00:00:24 v #260 > > │ Solution: (a, a) -00:00:24 v #261 > > │ Test case 1. A. Time: 1L -00:00:24 v #262 > > │ -00:00:24 v #263 > > │ Solution: (a, a) -00:00:24 v #264 > > │ Test case 1. A. Time: 0L -00:00:24 v #265 > > │ -00:00:24 v #266 > > │ Input | Expected | Result | Best -00:00:24 v #267 > > │ --- | --- | --- | --- -00:00:24 v #268 > > │ (a, a) | a | a | (1, 1) -00:00:24 v #269 > > │ (a, a) | a | a | (1, 0) -00:00:24 v #270 > > │ -00:00:24 v #271 > > │ Average Ranking -00:00:24 v #272 > > │ Test case 1. Average Time: 0L -00:00:24 v #273 > > │ -00:00:24 v #274 > > -00:00:24 v #275 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:24 v #276 > > │ ## empty2Tests -00:00:24 v #277 > > -00:00:24 v #278 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:24 v #279 > > │ Test: Empty2 -00:00:24 v #280 > > │ -00:00:24 v #281 > > │ Solution: (a, a) -00:00:24 v #282 > > │ Test case 1. A. Time: 59L -00:00:24 v #283 > > │ -00:00:24 v #284 > > │ Solution: (a, a) -00:00:24 v #285 > > │ Test case 1. A. Time: 53L -00:00:24 v #286 > > │ -00:00:24 v #287 > > │ Input | Expected | Result | Best -00:00:24 v #288 > > │ --- | --- | --- | --- -00:00:24 v #289 > > │ (a, a) | a | a | (1, 59) -00:00:24 v #290 > > │ (a, a) | a | a | (1, 53) -00:00:24 v #291 > > │ -00:00:24 v #292 > > │ Averages -00:00:24 v #293 > > │ Test case 1. Average Time: 56L -00:00:24 v #294 > > │ -00:00:24 v #295 > > │ Ranking -00:00:24 v #296 > > │ Test case 1. Average Time: 56L -00:00:24 v #297 > > -00:00:24 v #298 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:24 v #299 > > //// test -00:00:24 v #300 > > -00:00:24 v #301 > > let solutions = [[ -00:00:24 v #302 > > "A", -00:00:24 v #303 > > fun (a, _b) -> -00:00:24 v #304 > > a -00:00:24 v #305 > > ]] -00:00:24 v #306 > > let testCases = seq { -00:00:24 v #307 > > ("a", "a"), "a" -00:00:24 v #308 > > ("a", "a"), "a" -00:00:24 v #309 > > } -00:00:24 v #310 > > let rec empty2Tests = runAll (nameof empty2Tests) _count solutions testCases -00:00:24 v #311 > > empty2Tests -00:00:24 v #312 > > |> sortResultList -00:00:24 v #313 > > -00:00:24 v #314 > > ── [ 429.45ms - stdout ] ─────────────────────────────────────────────────────── -00:00:24 v #315 > > │ -00:00:24 v #316 > > │ -00:00:24 v #317 > > │ Test: empty2Tests -00:00:24 v #318 > > │ -00:00:24 v #319 > > │ Solution: (a, a) -00:00:24 v #320 > > │ Test case 1. A. Time: 0L -00:00:24 v #321 > > │ -00:00:24 v #322 > > │ Solution: (a, a) -00:00:24 v #323 > > │ Test case 1. A. Time: 0L -00:00:24 v #324 > > │ -00:00:24 v #325 > > │ Input | Expected | Result | Best -00:00:24 v #326 > > │ --- | --- | --- | --- -00:00:24 v #327 > > │ (a, a) | a | a | (1, 0) -00:00:24 v #328 > > │ (a, a) | a | a | (1, 0) -00:00:24 v #329 > > │ -00:00:24 v #330 > > │ Average Ranking -00:00:24 v #331 > > │ Test case 1. Average Time: 0L -00:00:24 v #332 > > │ -00:00:24 v #333 > > -00:00:24 v #334 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:24 v #335 > > │ ## emptyTests -00:00:24 v #336 > > -00:00:24 v #337 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:24 v #338 > > │ Test: Empty -00:00:24 v #339 > > │ -00:00:24 v #340 > > │ Solution: 0 -00:00:24 v #341 > > │ Test case 1. A. Time: 61L -00:00:24 v #342 > > │ -00:00:24 v #343 > > │ Solution: 2 -00:00:24 v #344 > > │ Test case 1. A. Time: 62L -00:00:24 v #345 > > │ -00:00:24 v #346 > > │ Solution: 5 -00:00:24 v #347 > > │ Test case 1. A. Time: 70L -00:00:24 v #348 > > │ -00:00:24 v #349 > > │ Input | Expected | Result | Best -00:00:24 v #350 > > │ --- | --- | --- | --- -00:00:24 v #351 > > │ 0 | 0 | 0 | (1, 61) -00:00:24 v #352 > > │ 2 | 2 | 2 | (1, 62) -00:00:24 v #353 > > │ 5 | 5 | 5 | (1, 70) -00:00:24 v #354 > > │ -00:00:24 v #355 > > │ Averages -00:00:24 v #356 > > │ Test case 1. Average Time: 64L -00:00:24 v #357 > > │ -00:00:24 v #358 > > │ Ranking -00:00:24 v #359 > > │ Test case 1. Average Time: 64L -00:00:24 v #360 > > -00:00:24 v #361 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:24 v #362 > > //// test -00:00:24 v #363 > > -00:00:24 v #364 > > let solutions = [[ -00:00:24 v #365 > > "A", -00:00:24 v #366 > > fun n -> -00:00:24 v #367 > > n + 0 -00:00:24 v #368 > > ]] -00:00:24 v #369 > > let testCases = seq { -00:00:24 v #370 > > 0, 0 -00:00:24 v #371 > > 2, 2 -00:00:24 v #372 > > 5, 5 -00:00:24 v #373 > > } -00:00:24 v #374 > > let rec emptyTests = runAll (nameof emptyTests) _count solutions testCases -00:00:24 v #375 > > emptyTests -00:00:24 v #376 > > |> sortResultList -00:00:25 v #377 > > -00:00:25 v #378 > > ── [ 654.17ms - stdout ] ─────────────────────────────────────────────────────── -00:00:25 v #379 > > │ -00:00:25 v #380 > > │ -00:00:25 v #381 > > │ Test: emptyTests -00:00:25 v #382 > > │ -00:00:25 v #383 > > │ Solution: 0 -00:00:25 v #384 > > │ Test case 1. A. Time: 2L -00:00:25 v #385 > > │ -00:00:25 v #386 > > │ Solution: 2 -00:00:25 v #387 > > │ Test case 1. A. Time: 0L -00:00:25 v #388 > > │ -00:00:25 v #389 > > │ Solution: 5 -00:00:25 v #390 > > │ Test case 1. A. Time: 0L -00:00:25 v #391 > > │ -00:00:25 v #392 > > │ Input | Expected | Result | Best -00:00:25 v #393 > > │ --- | --- | --- | --- -00:00:25 v #394 > > │ 0 | 0 | 0 | (1, 2) -00:00:25 v #395 > > │ 2 | 2 | 2 | (1, 0) -00:00:25 v #396 > > │ 5 | 5 | 5 | (1, 0) -00:00:25 v #397 > > │ -00:00:25 v #398 > > │ Average Ranking -00:00:25 v #399 > > │ Test case 1. Average Time: 0L -00:00:25 v #400 > > │ -00:00:25 v #401 > > -00:00:25 v #402 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:25 v #403 > > │ ## uniqueLettersTests -00:00:25 v #404 > > -00:00:25 v #405 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:25 v #406 > > │ Test: UniqueLetters -00:00:25 v #407 > > │ -00:00:25 v #408 > > │ Solution: abc -00:00:25 v #409 > > │ Test case 1. A. Time: 1512L -00:00:25 v #410 > > │ Test case 2. B. Time: 1947L -00:00:25 v #411 > > │ Test case 3. C. Time: 2023L -00:00:25 v #412 > > │ Test case 4. D. Time: 1358L -00:00:25 v #413 > > │ Test case 5. E. Time: 1321L -00:00:25 v #414 > > │ Test case 6. F. Time: 1346L -00:00:25 v #415 > > │ Test case 7. G. Time: 1304L -00:00:25 v #416 > > │ Test case 8. H. Time: 1383L -00:00:25 v #417 > > │ Test case 9. I. Time: 1495L -00:00:25 v #418 > > │ Test case 10. J. Time: 1245L -00:00:25 v #419 > > │ Test case 11. K. Time: 1219L -00:00:25 v #420 > > │ -00:00:25 v #421 > > │ Solution: accabb -00:00:25 v #422 > > │ Test case 1. A. Time: 1648L -00:00:25 v #423 > > │ Test case 2. B. Time: 2061L -00:00:25 v #424 > > │ Test case 3. C. Time: 2413L -00:00:25 v #425 > > │ Test case 4. D. Time: 1561L -00:00:25 v #426 > > │ Test case 5. E. Time: 1593L -00:00:25 v #427 > > │ Test case 6. F. Time: 1518L -00:00:25 v #428 > > │ Test case 7. G. Time: 1415L -00:00:25 v #429 > > │ Test case 8. H. Time: 1510L -00:00:25 v #430 > > │ Test case 9. I. Time: 1445L -00:00:25 v #431 > > │ Test case 10. J. Time: 1636L -00:00:25 v #432 > > │ Test case 11. K. Time: 1317L -00:00:25 v #433 > > │ -00:00:25 v #434 > > │ Solution: pprrqqpp -00:00:25 v #435 > > │ Test case 1. A. Time: 2255L -00:00:25 v #436 > > │ Test case 2. B. Time: 2408L -00:00:25 v #437 > > │ Test case 3. C. Time: 2393L -00:00:25 v #438 > > │ Test case 4. D. Time: 1675L -00:00:25 v #439 > > │ Test case 5. E. Time: 1911L -00:00:25 v #440 > > │ Test case 6. F. Time: 2126L -00:00:25 v #441 > > │ Test case 7. G. Time: 1504L -00:00:25 v #442 > > │ Test case 8. H. Time: 1715L -00:00:25 v #443 > > │ Test case 9. I. Time: 1537L -00:00:25 v #444 > > │ Test case 10. J. Time: 1522L -00:00:25 v #445 > > │ Test case 11. K. Time: 1322L -00:00:25 v #446 > > │ -00:00:25 v #447 > > │ Solution: -00:00:25 v #448 > > aaaaaaaaaaaaaaccccccabbbbbbbaaacccbbbaaccccccccccacbbbbbbbbbbbbbcccccccbbbbbbbb -00:00:25 v #449 > > │ Test case 1. A. Time: 13073L -00:00:25 v #450 > > │ Test case 2. B. Time: 11519L -00:00:25 v #451 > > │ Test case 3. C. Time: 8373L -00:00:25 v #452 > > │ Test case 4. D. Time: 5860L -00:00:25 v #453 > > │ Test case 5. E. Time: 6490L -00:00:25 v #454 > > │ Test case 6. F. Time: 6325L -00:00:25 v #455 > > │ Test case 7. G. Time: 5799L -00:00:25 v #456 > > │ Test case 8. H. Time: 7099L -00:00:25 v #457 > > │ Test case 9. I. Time: 6133L -00:00:25 v #458 > > │ Test case 10. J. Time: 5993L -00:00:25 v #459 > > │ Test case 11. K. Time: 2040L -00:00:25 v #460 > > │ -00:00:25 v #461 > > │ Input -00:00:25 v #462 > > | Expected | Result | Best -00:00:25 v #463 > > │ --- -00:00:25 v #464 > > | --- | --- | --- -00:00:25 v #465 > > │ abc -00:00:25 v #466 > > | abc | abc | (11, 1219) -00:00:25 v #467 > > │ accabb -00:00:25 v #468 > > | acb | acb | (11, 1317) -00:00:25 v #469 > > │ pprrqqpp -00:00:25 v #470 > > | prq | prq | (11, 1322) -00:00:25 v #471 > > │ -00:00:25 v #472 > > aaaaaaaaaaaaaaccccccabbbbbbbaaacccbbbaaccccccccccacbbbbbbbbbbbbbcccccccbbbbbbbb -00:00:25 v #473 > > | acb | acb | (11, 2040) -00:00:25 v #474 > > │ -00:00:25 v #475 > > │ Averages -00:00:25 v #476 > > │ Test case 1. Average Time: 4622L -00:00:25 v #477 > > │ Test case 2. Average Time: 4483L -00:00:25 v #478 > > │ Test case 3. Average Time: 3800L -00:00:25 v #479 > > │ Test case 4. Average Time: 2613L -00:00:25 v #480 > > │ Test case 5. Average Time: 2828L -00:00:25 v #481 > > │ Test case 6. Average Time: 2828L -00:00:25 v #482 > > │ Test case 7. Average Time: 2505L -00:00:25 v #483 > > │ Test case 8. Average Time: 2926L -00:00:25 v #484 > > │ Test case 9. Average Time: 2652L -00:00:25 v #485 > > │ Test case 10. Average Time: 2599L -00:00:25 v #486 > > │ Test case 11. Average Time: 1474L -00:00:25 v #487 > > │ -00:00:25 v #488 > > │ Ranking -00:00:25 v #489 > > │ Test case 1. Average Time: 4622L -00:00:25 v #490 > > │ Test case 2. Average Time: 4483L -00:00:25 v #491 > > │ Test case 3. Average Time: 3800L -00:00:25 v #492 > > │ Test case 8. Average Time: 2926L -00:00:25 v #493 > > │ Test case 5. Average Time: 2828L -00:00:25 v #494 > > │ Test case 6. Average Time: 2828L -00:00:25 v #495 > > │ Test case 9. Average Time: 2652L -00:00:25 v #496 > > │ Test case 4. Average Time: 2613L -00:00:25 v #497 > > │ Test case 10. Average Time: 2599L -00:00:25 v #498 > > │ Test case 7. Average Time: 2505L -00:00:25 v #499 > > │ Test case 11. Average Time: 1474L -00:00:25 v #500 > > -00:00:25 v #501 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:25 v #502 > > //// test -00:00:25 v #503 > > -00:00:25 v #504 > > let solutions = [[ -00:00:25 v #505 > > "A", -00:00:25 v #506 > > fun input -> -00:00:25 v #507 > > input -00:00:25 v #508 > > |> Seq.toList -00:00:25 v #509 > > |> List.fold (fun acc x -> if List.contains x acc then acc else acc @ [[ -00:00:25 v #510 > > x ]]) [[]] -00:00:25 v #511 > > |> Seq.toArray -00:00:25 v #512 > > |> String -00:00:25 v #513 > > -00:00:25 v #514 > > "B", -00:00:25 v #515 > > fun input -> -00:00:25 v #516 > > input -00:00:25 v #517 > > |> Seq.rev -00:00:25 v #518 > > |> fun list -> Seq.foldBack (fun x acc -> if List.contains x acc then -00:00:25 v #519 > > acc else x :: acc) list [[]] -00:00:25 v #520 > > |> Seq.rev -00:00:25 v #521 > > |> Seq.toArray -00:00:25 v #522 > > |> String -00:00:25 v #523 > > -00:00:25 v #524 > > "C", -00:00:25 v #525 > > fun input -> -00:00:25 v #526 > > input -00:00:25 v #527 > > |> Seq.rev -00:00:25 v #528 > > |> fun list -> Seq.foldBack (fun x (set, acc) -> if Set.contains x set -00:00:25 v #529 > > then set, acc else set.Add x, x :: acc) list (Set.empty, [[]]) -00:00:25 v #530 > > |> snd -00:00:25 v #531 > > |> Seq.rev -00:00:25 v #532 > > |> Seq.toArray -00:00:25 v #533 > > |> String -00:00:25 v #534 > > -00:00:25 v #535 > > "D", -00:00:25 v #536 > > fun input -> -00:00:25 v #537 > > input -00:00:25 v #538 > > |> Seq.fold (fun (set, acc) x -> if Set.contains x set then set, acc -00:00:25 v #539 > > else set.Add x, Array.append acc [[| x |]]) (Set.empty, [[||]]) -00:00:25 v #540 > > |> snd -00:00:25 v #541 > > |> String -00:00:25 v #542 > > -00:00:25 v #543 > > "E", -00:00:25 v #544 > > fun input -> -00:00:25 v #545 > > input -00:00:25 v #546 > > |> Seq.fold (fun (set, acc) x -> if Set.contains x set then set, acc -00:00:25 v #547 > > else set.Add x, x :: acc) (Set.empty, [[]]) -00:00:25 v #548 > > |> snd -00:00:25 v #549 > > |> List.rev -00:00:25 v #550 > > |> List.toArray -00:00:25 v #551 > > |> String -00:00:25 v #552 > > -00:00:25 v #553 > > "F", -00:00:25 v #554 > > fun input -> -00:00:25 v #555 > > input -00:00:25 v #556 > > |> Seq.fold (fun (set, acc) x -> if Set.contains x set then set, acc -00:00:25 v #557 > > else set.Add x, acc @ [[ x ]]) (Set.empty, [[]]) -00:00:25 v #558 > > |> snd -00:00:25 v #559 > > |> List.toArray -00:00:25 v #560 > > |> String -00:00:25 v #561 > > -00:00:25 v #562 > > "G", -00:00:25 v #563 > > fun input -> -00:00:25 v #564 > > input -00:00:25 v #565 > > |> Seq.fold (fun (set, acc) x -> if Set.contains x set then set, acc -00:00:25 v #566 > > else set.Add x, x :: acc) (Set.empty, [[]]) -00:00:25 v #567 > > |> snd -00:00:25 v #568 > > |> List.toArray -00:00:25 v #569 > > |> Array.rev -00:00:25 v #570 > > |> String -00:00:25 v #571 > > -00:00:25 v #572 > > "H", -00:00:25 v #573 > > fun input -> -00:00:25 v #574 > > input -00:00:25 v #575 > > |> Seq.toList -00:00:25 v #576 > > |> fun list -> -00:00:25 v #577 > > let rec loop set = function -00:00:25 v #578 > > | head :: tail when Set.contains head set -> loop set tail -00:00:25 v #579 > > | head :: tail -> (loop (set.Add head) tail) @ [[ head ]] -00:00:25 v #580 > > | [[]] -> [[]] -00:00:25 v #581 > > loop Set.empty list -00:00:25 v #582 > > |> List.rev -00:00:25 v #583 > > |> List.toArray -00:00:25 v #584 > > |> String -00:00:25 v #585 > > -00:00:25 v #586 > > "I", -00:00:25 v #587 > > fun input -> -00:00:25 v #588 > > input -00:00:25 v #589 > > |> Seq.toList -00:00:25 v #590 > > |> fun list -> -00:00:25 v #591 > > let rec loop set = function -00:00:25 v #592 > > | head :: tail when Set.contains head set -> loop set tail -00:00:25 v #593 > > | head :: tail -> loop (set.Add head) tail |> Array.append [[| -00:00:25 v #594 > > head |]] -00:00:25 v #595 > > | [[]] -> [[||]] -00:00:25 v #596 > > loop Set.empty list -00:00:25 v #597 > > |> String -00:00:25 v #598 > > -00:00:25 v #599 > > "J", -00:00:25 v #600 > > fun input -> -00:00:25 v #601 > > input -00:00:25 v #602 > > |> Seq.toList -00:00:25 v #603 > > |> fun list -> -00:00:25 v #604 > > let rec loop set = function -00:00:25 v #605 > > | head :: tail when Set.contains head set -> loop set tail -00:00:25 v #606 > > | head :: tail -> head :: loop (set.Add head) tail -00:00:25 v #607 > > | [[]] -> [[]] -00:00:25 v #608 > > loop Set.empty list -00:00:25 v #609 > > |> List.toArray -00:00:25 v #610 > > |> String -00:00:25 v #611 > > -00:00:25 v #612 > > "K", -00:00:25 v #613 > > fun input -> -00:00:25 v #614 > > input -00:00:25 v #615 > > |> Seq.distinct -00:00:25 v #616 > > |> Seq.toArray -00:00:25 v #617 > > |> String -00:00:25 v #618 > > ]] -00:00:25 v #619 > > let testCases = seq { -00:00:25 v #620 > > "abc", "abc" -00:00:25 v #621 > > "accabb", "acb" -00:00:25 v #622 > > "pprrqqpp", "prq" -00:00:25 v #623 > > -00:00:25 v #624 > > "aaaaaaaaaaaaaaccccccabbbbbbbaaacccbbbaaccccccccccacbbbbbbbbbbbbbcccccccbbbbbbbb -00:00:25 v #625 > > ", "acb" -00:00:25 v #626 > > } -00:00:25 v #627 > > let rec uniqueLettersTests = runAll (nameof uniqueLettersTests) _count solutions -00:00:25 v #628 > > testCases -00:00:25 v #629 > > uniqueLettersTests -00:00:25 v #630 > > |> sortResultList -00:00:34 v #631 > > -00:00:34 v #632 > > ── [ 8.71s - stdout ] ────────────────────────────────────────────────────────── -00:00:34 v #633 > > │ -00:00:34 v #634 > > │ -00:00:34 v #635 > > │ Test: uniqueLettersTests -00:00:34 v #636 > > │ -00:00:34 v #637 > > │ Solution: abc -00:00:34 v #638 > > │ Test case 1. A. Time: 2L -00:00:34 v #639 > > │ Test case 2. B. Time: 3L -00:00:34 v #640 > > │ Test case 3. C. Time: 4L -00:00:34 v #641 > > │ Test case 4. D. Time: 2L -00:00:34 v #642 > > │ Test case 5. E. Time: 2L -00:00:34 v #643 > > │ Test case 6. F. Time: 1L -00:00:34 v #644 > > │ Test case 7. G. Time: 1L -00:00:34 v #645 > > │ Test case 8. H. Time: 2L -00:00:34 v #646 > > │ Test case 9. I. Time: 3L -00:00:34 v #647 > > │ Test case 10. J. Time: 1L -00:00:34 v #648 > > │ Test case 11. K. Time: 3L -00:00:34 v #649 > > │ -00:00:34 v #650 > > │ Solution: accabb -00:00:34 v #651 > > │ Test case 1. A. Time: 1L -00:00:34 v #652 > > │ Test case 2. B. Time: 1L -00:00:34 v #653 > > │ Test case 3. C. Time: 1L -00:00:34 v #654 > > │ Test case 4. D. Time: 0L -00:00:34 v #655 > > │ Test case 5. E. Time: 0L -00:00:34 v #656 > > │ Test case 6. F. Time: 0L -00:00:34 v #657 > > │ Test case 7. G. Time: 0L -00:00:34 v #658 > > │ Test case 8. H. Time: 0L -00:00:34 v #659 > > │ Test case 9. I. Time: 0L -00:00:34 v #660 > > │ Test case 10. J. Time: 0L -00:00:34 v #661 > > │ Test case 11. K. Time: 1L -00:00:34 v #662 > > │ -00:00:34 v #663 > > │ Solution: pprrqqpp -00:00:34 v #664 > > │ Test case 1. A. Time: 1L -00:00:34 v #665 > > │ Test case 2. B. Time: 1L -00:00:34 v #666 > > │ Test case 3. C. Time: 1L -00:00:34 v #667 > > │ Test case 4. D. Time: 0L -00:00:34 v #668 > > │ Test case 5. E. Time: 1L -00:00:34 v #669 > > │ Test case 6. F. Time: 1L -00:00:34 v #670 > > │ Test case 7. G. Time: 1L -00:00:34 v #671 > > │ Test case 8. H. Time: 0L -00:00:34 v #672 > > │ Test case 9. I. Time: 1L -00:00:34 v #673 > > │ Test case 10. J. Time: 1L -00:00:34 v #674 > > │ Test case 11. K. Time: 1L -00:00:34 v #675 > > │ -00:00:34 v #676 > > │ Solution: -00:00:34 v #677 > > aaaaaaaaaaaaaaccccccabbbbbbbaaacccbbbaaccccccccccacbbbbbbbbbbbbbcccccccbbbbbbbb│ Test case 1. A. Time: 11L -00:00:34 v #678 > > │ Test case 2. B. Time: 9L -00:00:34 v #679 > > │ Test case 3. C. Time: 12L -00:00:34 v #680 > > │ Test case 4. D. Time: 8L -00:00:34 v #681 > > │ Test case 5. E. Time: 8L -00:00:34 v #682 > > │ Test case 6. F. Time: 9L -00:00:34 v #683 > > │ Test case 7. G. Time: 9L -00:00:34 v #684 > > │ Test case 8. H. Time: 7L -00:00:34 v #685 > > │ Test case 9. I. Time: 6L -00:00:34 v #686 > > │ Test case 10. J. Time: 6L -00:00:34 v #687 > > │ Test case 11. K. Time: 4L -00:00:34 v #688 > > │ -00:00:34 v #689 > > │ Input -00:00:34 v #690 > > | Expected | Result | Best -00:00:34 v #691 > > │ --- -00:00:34 v #692 > > | --- | --- | --- -00:00:34 v #693 > > │ abc -00:00:34 v #694 > > | abc | abc | (6, 1) -00:00:34 v #695 > > │ accabb -00:00:34 v #696 > > | acb | acb | (4, 0) -00:00:34 v #697 > > │ pprrqqpp -00:00:34 v #698 > > | prq | prq | (4, 0) -00:00:34 v #699 > > │ -00:00:34 v #700 > > aaaaaaaaaaaaaaccccccabbbbbbbaaacccbbbaaccccccccccacbbbbbbbbbbbbbcccccccbbbbbbbb | -00:00:34 v #701 > > acb | acb | (11, 4) -00:00:34 v #702 > > │ -00:00:34 v #703 > > │ Average Ranking -00:00:34 v #704 > > │ Test case 4. Average Time: 2L -00:00:34 v #705 > > │ Test case 5. Average Time: 2L -00:00:34 v #706 > > │ Test case 6. Average Time: 2L -00:00:34 v #707 > > │ Test case 7. Average Time: 2L -00:00:34 v #708 > > │ Test case 8. Average Time: 2L -00:00:34 v #709 > > │ Test case 9. Average Time: 2L -00:00:34 v #710 > > │ Test case 10. Average Time: 2L -00:00:34 v #711 > > │ Test case 11. Average Time: 2L -00:00:34 v #712 > > │ Test case 1. Average Time: 3L -00:00:34 v #713 > > │ Test case 2. Average Time: 3L -00:00:34 v #714 > > │ Test case 3. Average Time: 4L -00:00:34 v #715 > > │ -00:00:34 v #716 > > -00:00:34 v #717 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:34 v #718 > > │ ## rotateStringsTests -00:00:34 v #719 > > -00:00:34 v #720 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:34 v #721 > > │ https://www.hackerrank.com/challenges/rotate-string/forum -00:00:34 v #722 > > │ -00:00:34 v #723 > > │ Test: RotateStrings -00:00:34 v #724 > > │ -00:00:34 v #725 > > │ Solution: abc -00:00:34 v #726 > > │ Test case 1. A. Time: 1842L -00:00:34 v #727 > > │ Test case 2. B. Time: 1846L -00:00:34 v #728 > > │ Test case 3. C. Time: 1936L -00:00:34 v #729 > > │ Test case 4. CA. Time: 2224L -00:00:34 v #730 > > │ Test case 5. CB. Time: 2329L -00:00:34 v #731 > > │ Test case 6. D. Time: 2474L -00:00:34 v #732 > > │ Test case 7. E. Time: 1664L -00:00:34 v #733 > > │ Test case 8. F. Time: 1517L -00:00:34 v #734 > > │ Test case 9. FA. Time: 1651L -00:00:34 v #735 > > │ Test case 10. FB. Time: 3764L -00:00:34 v #736 > > │ Test case 11. FC. Time: 5415L -00:00:34 v #737 > > │ -00:00:34 v #738 > > │ Solution: abcde -00:00:34 v #739 > > │ Test case 1. A. Time: 3356L -00:00:34 v #740 > > │ Test case 2. B. Time: 2592L -00:00:34 v #741 > > │ Test case 3. C. Time: 2346L -00:00:34 v #742 > > │ Test case 4. CA. Time: 2997L -00:00:34 v #743 > > │ Test case 5. CB. Time: 3061L -00:00:34 v #744 > > │ Test case 6. D. Time: 4051L -00:00:34 v #745 > > │ Test case 7. E. Time: 1905L -00:00:34 v #746 > > │ Test case 8. F. Time: 1771L -00:00:34 v #747 > > │ Test case 9. FA. Time: 2175L -00:00:34 v #748 > > │ Test case 10. FB. Time: 3275L -00:00:34 v #749 > > │ Test case 11. FC. Time: 5266L -00:00:34 v #750 > > │ -00:00:34 v #751 > > │ Solution: abcdefghi -00:00:34 v #752 > > │ Test case 1. A. Time: 4492L -00:00:34 v #753 > > │ Test case 2. B. Time: 3526L -00:00:34 v #754 > > │ Test case 3. C. Time: 3583L -00:00:34 v #755 > > │ Test case 4. CA. Time: 3711L -00:00:34 v #756 > > │ Test case 5. CB. Time: 4783L -00:00:34 v #757 > > │ Test case 6. D. Time: 7557L -00:00:34 v #758 > > │ Test case 7. E. Time: 3452L -00:00:34 v #759 > > │ Test case 8. F. Time: 3050L -00:00:34 v #760 > > │ Test case 9. FA. Time: 3275L -00:00:34 v #761 > > │ Test case 10. FB. Time: 4635L -00:00:34 v #762 > > │ Test case 11. FC. Time: 5616L -00:00:34 v #763 > > │ -00:00:34 v #764 > > │ Solution: abab -00:00:34 v #765 > > │ Test case 1. A. Time: 2093L -00:00:34 v #766 > > │ Test case 2. B. Time: 1843L -00:00:34 v #767 > > │ Test case 3. C. Time: 1746L -00:00:34 v #768 > > │ Test case 4. CA. Time: 2085L -00:00:34 v #769 > > │ Test case 5. CB. Time: 2139L -00:00:34 v #770 > > │ Test case 6. D. Time: 2095L -00:00:34 v #771 > > │ Test case 7. E. Time: 1723L -00:00:34 v #772 > > │ Test case 8. F. Time: 1558L -00:00:34 v #773 > > │ Test case 9. FA. Time: 1620L -00:00:34 v #774 > > │ Test case 10. FB. Time: 2319L -00:00:34 v #775 > > │ Test case 11. FC. Time: 3918L -00:00:34 v #776 > > │ -00:00:34 v #777 > > │ Solution: aa -00:00:34 v #778 > > │ Test case 1. A. Time: 1107L -00:00:34 v #779 > > │ Test case 2. B. Time: 1241L -00:00:34 v #780 > > │ Test case 3. C. Time: 1183L -00:00:34 v #781 > > │ Test case 4. CA. Time: 1563L -00:00:34 v #782 > > │ Test case 5. CB. Time: 1525L -00:00:34 v #783 > > │ Test case 6. D. Time: 1591L -00:00:34 v #784 > > │ Test case 7. E. Time: 1327L -00:00:34 v #785 > > │ Test case 8. F. Time: 1151L -00:00:34 v #786 > > │ Test case 9. FA. Time: 1180L -00:00:34 v #787 > > │ Test case 10. FB. Time: 1733L -00:00:34 v #788 > > │ Test case 11. FC. Time: 2817L -00:00:34 v #789 > > │ -00:00:34 v #790 > > │ Solution: z -00:00:34 v #791 > > │ Test case 1. A. Time: 816L -00:00:34 v #792 > > │ Test case 2. B. Time: 745L -00:00:34 v #793 > > │ Test case 3. C. Time: 928L -00:00:34 v #794 > > │ Test case 4. CA. Time: 1375L -00:00:34 v #795 > > │ Test case 5. CB. Time: 1029L -00:00:34 v #796 > > │ Test case 6. D. Time: 852L -00:00:34 v #797 > > │ Test case 7. E. Time: 712L -00:00:34 v #798 > > │ Test case 8. F. Time: 263L -00:00:34 v #799 > > │ Test case 9. FA. Time: 232L -00:00:34 v #800 > > │ Test case 10. FB. Time: 773L -00:00:34 v #801 > > │ Test case 11. FC. Time: 1789L -00:00:34 v #802 > > │ -00:00:34 v #803 > > │ Input | Expected -00:00:34 v #804 > > -00:00:34 v #805 > > | Result -00:00:34 v #806 > > -00:00:34 v #807 > > | Best -00:00:34 v #808 > > │ --- | --- -00:00:34 v #809 > > -00:00:34 v #810 > > | --- -00:00:34 v #811 > > -00:00:34 v #812 > > | --- -00:00:34 v #813 > > │ abc | bca cab abc -00:00:34 v #814 > > -00:00:34 v #815 > > | bca cab abc -00:00:34 v #816 > > -00:00:34 v #817 > > | (8, 1517) -00:00:34 v #818 > > │ abcde | bcdea cdeab deabc eabcd abcde -00:00:34 v #819 > > | bcdea cdeab deabc eabcd abcde -00:00:34 v #820 > > | (8, 1771) -00:00:34 v #821 > > │ abcdefghi | bcdefghia cdefghiab defghiabc efghiabcd -00:00:34 v #822 > > fghiabcde ghiabcdef hiabcdefg iabcdefgh abcdefghi | bcdefghia cdefghiab -00:00:34 v #823 > > defghiabc efghiabcd fghiabcde ghiabcdef hiabcdefg iabcdefgh abcdefghi | -00:00:34 v #824 > > (8, 3050) -00:00:34 v #825 > > │ abab | baba abab baba abab -00:00:34 v #826 > > | baba abab baba abab -00:00:34 v #827 > > | (8, 1558) -00:00:34 v #828 > > │ aa | aa aa -00:00:34 v #829 > > -00:00:34 v #830 > > | aa aa -00:00:34 v #831 > > -00:00:34 v #832 > > | (1, 1107) -00:00:34 v #833 > > │ z | z -00:00:34 v #834 > > -00:00:34 v #835 > > | z -00:00:34 v #836 > > -00:00:34 v #837 > > | (9, 232) -00:00:34 v #838 > > │ -00:00:34 v #839 > > │ Averages -00:00:34 v #840 > > │ Test case 1. Average Time: 2284L -00:00:34 v #841 > > │ Test case 2. Average Time: 1965L -00:00:34 v #842 > > │ Test case 3. Average Time: 1953L -00:00:34 v #843 > > │ Test case 4. Average Time: 2325L -00:00:34 v #844 > > │ Test case 5. Average Time: 2477L -00:00:34 v #845 > > │ Test case 6. Average Time: 3103L -00:00:34 v #846 > > │ Test case 7. Average Time: 1797L -00:00:34 v #847 > > │ Test case 8. Average Time: 1551L -00:00:34 v #848 > > │ Test case 9. Average Time: 1688L -00:00:34 v #849 > > │ Test case 10. Average Time: 2749L -00:00:34 v #850 > > │ Test case 11. Average Time: 4136L -00:00:34 v #851 > > │ -00:00:34 v #852 > > │ Ranking -00:00:34 v #853 > > │ Test case 11. Average Time: 4136L -00:00:34 v #854 > > │ Test case 6. Average Time: 3103L -00:00:34 v #855 > > │ Test case 10. Average Time: 2749L -00:00:34 v #856 > > │ Test case 5. Average Time: 2477L -00:00:34 v #857 > > │ Test case 4. Average Time: 2325L -00:00:34 v #858 > > │ Test case 1. Average Time: 2284L -00:00:34 v #859 > > │ Test case 2. Average Time: 1965L -00:00:34 v #860 > > │ Test case 3. Average Time: 1953L -00:00:34 v #861 > > │ Test case 7. Average Time: 1797L -00:00:34 v #862 > > │ Test case 9. Average Time: 1688L -00:00:34 v #863 > > │ Test case 8. Average Time: 1551L -00:00:34 v #864 > > -00:00:34 v #865 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:34 v #866 > > //// test -00:00:34 v #867 > > -00:00:34 v #868 > > let solutions = [[ -00:00:34 v #869 > > "A", -00:00:34 v #870 > > fun (input: string) -> -00:00:34 v #871 > > let resultList = -00:00:34 v #872 > > List.fold (fun acc x -> -00:00:34 v #873 > > let rotate (text: string) (letter: string) = (text |> -00:00:34 v #874 > > SpiralSm.slice 1 (input.Length - 1)) + letter -00:00:34 v #875 > > [[ rotate (if acc.IsEmpty then input else acc.Head) (string x) -00:00:34 v #876 > > ]] @ acc -00:00:34 v #877 > > ) [[]] (Seq.toList input) -00:00:34 v #878 > > -00:00:34 v #879 > > (resultList, "") -00:00:34 v #880 > > ||> List.foldBack (fun acc x -> x + acc + " ") -00:00:34 v #881 > > |> _.TrimEnd() -00:00:34 v #882 > > -00:00:34 v #883 > > "B", -00:00:34 v #884 > > fun input -> -00:00:34 v #885 > > input -00:00:34 v #886 > > |> Seq.toList -00:00:34 v #887 > > |> List.fold (fun (acc: string list) letter -> -00:00:34 v #888 > > let last = -00:00:34 v #889 > > if acc.IsEmpty -00:00:34 v #890 > > then input -00:00:34 v #891 > > else acc.Head -00:00:34 v #892 > > -00:00:34 v #893 > > let item = last.[[1 .. input.Length - 1]] + string letter -00:00:34 v #894 > > -00:00:34 v #895 > > item :: acc -00:00:34 v #896 > > ) [[]] -00:00:34 v #897 > > |> List.rev -00:00:34 v #898 > > |> SpiralSm.concat " " -00:00:34 v #899 > > -00:00:34 v #900 > > "C", -00:00:34 v #901 > > fun input -> -00:00:34 v #902 > > input -00:00:34 v #903 > > |> Seq.toList -00:00:34 v #904 > > |> List.fold (fun (acc: string list) letter -> acc.Head.[[ 1 .. -00:00:34 v #905 > > input.Length - 1 ]] + string letter :: acc) [[ input ]] -00:00:34 v #906 > > |> List.rev -00:00:34 v #907 > > |> List.skip 1 -00:00:34 v #908 > > |> SpiralSm.concat " " -00:00:34 v #909 > > -00:00:34 v #910 > > "CA", -00:00:34 v #911 > > fun input -> -00:00:34 v #912 > > input -00:00:34 v #913 > > |> Seq.fold (fun (acc: string list) letter -> acc.Head.[[ 1 .. -00:00:34 v #914 > > input.Length - 1 ]] + string letter :: acc) [[ input ]] -00:00:34 v #915 > > |> Seq.rev -00:00:34 v #916 > > |> Seq.skip 1 -00:00:34 v #917 > > |> SpiralSm.concat " " -00:00:34 v #918 > > -00:00:34 v #919 > > "CB", -00:00:34 v #920 > > fun input -> -00:00:34 v #921 > > input -00:00:34 v #922 > > |> Seq.toArray -00:00:34 v #923 > > |> Array.fold (fun (acc: string[[]]) letter -> acc |> Array.append [[| -00:00:34 v #924 > > acc.[[0]].[[ 1 .. input.Length - 1 ]] + string letter |]]) [[| input |]] -00:00:34 v #925 > > |> Array.rev -00:00:34 v #926 > > |> Array.skip 1 -00:00:34 v #927 > > |> SpiralSm.concat " " -00:00:34 v #928 > > -00:00:34 v #929 > > "D", -00:00:34 v #930 > > fun input -> -00:00:34 v #931 > > input -00:00:34 v #932 > > |> Seq.toList -00:00:34 v #933 > > |> fun list -> -00:00:34 v #934 > > let rec loop (acc: char list list) = function -00:00:34 v #935 > > | _ when acc.Length = list.Length -> acc -00:00:34 v #936 > > | head :: tail -> -00:00:34 v #937 > > let item = tail @ [[ head ]] -00:00:34 v #938 > > loop (item :: acc) item -00:00:34 v #939 > > | [[]] -> [[]] -00:00:34 v #940 > > loop [[]] list -00:00:34 v #941 > > |> List.rev -00:00:34 v #942 > > |> List.map (List.toArray >> String) -00:00:34 v #943 > > |> SpiralSm.concat " " -00:00:34 v #944 > > -00:00:34 v #945 > > "E", -00:00:34 v #946 > > fun input -> -00:00:34 v #947 > > input -00:00:34 v #948 > > |> Seq.toList -00:00:34 v #949 > > |> fun list -> -00:00:34 v #950 > > let rec loop (last: string) = function -00:00:34 v #951 > > | head :: tail -> -00:00:34 v #952 > > let item = last.[[1 .. input.Length - 1]] + string head -00:00:34 v #953 > > item :: loop item tail -00:00:34 v #954 > > | [[]] -> [[]] -00:00:34 v #955 > > loop input list -00:00:34 v #956 > > |> SpiralSm.concat " " -00:00:34 v #957 > > -00:00:34 v #958 > > "F", -00:00:34 v #959 > > fun input -> -00:00:34 v #960 > > Array.singleton 0 -00:00:34 v #961 > > |> Array.append [[| 1 .. input.Length - 1 |]] -00:00:34 v #962 > > |> Array.map (fun i -> input.[[ i .. ]] + input.[[ .. i - 1 ]]) -00:00:34 v #963 > > |> SpiralSm.concat " " -00:00:34 v #964 > > -00:00:34 v #965 > > "FA", -00:00:34 v #966 > > fun input -> -00:00:34 v #967 > > List.singleton 0 -00:00:34 v #968 > > |> List.append [[ 1 .. input.Length - 1 ]] -00:00:34 v #969 > > |> List.map (fun i -> input.[[ i .. ]] + input.[[ .. i - 1 ]]) -00:00:34 v #970 > > |> SpiralSm.concat " " -00:00:34 v #971 > > -00:00:34 v #972 > > "FB", -00:00:34 v #973 > > fun input -> -00:00:34 v #974 > > Seq.singleton 0 -00:00:34 v #975 > > |> Seq.append (seq { 1 .. input.Length - 1 }) -00:00:34 v #976 > > |> Seq.map (fun i -> input.[[ i .. ]] + input.[[ .. i - 1 ]]) -00:00:34 v #977 > > |> SpiralSm.concat " " -00:00:34 v #978 > > -00:00:34 v #979 > > "FC", -00:00:34 v #980 > > fun input -> -00:00:34 v #981 > > Array.singleton 0 -00:00:34 v #982 > > |> Array.append [[| 1 .. input.Length - 1 |]] -00:00:34 v #983 > > |> Array.Parallel.map (fun i -> input.[[ i .. ]] + input.[[ .. i - 1 ]]) -00:00:34 v #984 > > |> SpiralSm.concat " " -00:00:34 v #985 > > ]] -00:00:34 v #986 > > let testCases = seq { -00:00:34 v #987 > > "abc", "bca cab abc" -00:00:34 v #988 > > "abcde", "bcdea cdeab deabc eabcd abcde" -00:00:34 v #989 > > "abcdefghi", "bcdefghia cdefghiab defghiabc efghiabcd fghiabcde ghiabcdef -00:00:34 v #990 > > hiabcdefg iabcdefgh abcdefghi" -00:00:34 v #991 > > "abab", "baba abab baba abab" -00:00:34 v #992 > > "aa", "aa aa" -00:00:34 v #993 > > "z", "z" -00:00:34 v #994 > > } -00:00:34 v #995 > > let rec rotateStringsTests = runAll (nameof rotateStringsTests) _count solutions -00:00:34 v #996 > > testCases -00:00:34 v #997 > > rotateStringsTests -00:00:34 v #998 > > |> sortResultList -00:00:46 v #999 > > -00:00:46 v #1000 > > ── [ 12.59s - stdout ] ───────────────────────────────────────────────────────── -00:00:46 v #1001 > > │ -00:00:46 v #1002 > > │ -00:00:46 v #1003 > > │ Test: rotateStringsTests -00:00:46 v #1004 > > │ -00:00:46 v #1005 > > │ Solution: abc -00:00:46 v #1006 > > │ Test case 1. A. Time: 3L -00:00:46 v #1007 > > │ Test case 2. B. Time: 2L -00:00:46 v #1008 > > │ Test case 3. C. Time: 1L -00:00:46 v #1009 > > │ Test case 4. CA. Time: 3L -00:00:46 v #1010 > > │ Test case 5. CB. Time: 2L -00:00:46 v #1011 > > │ Test case 6. D. Time: 2L -00:00:46 v #1012 > > │ Test case 7. E. Time: 2L -00:00:46 v #1013 > > │ Test case 8. F. Time: 1L -00:00:46 v #1014 > > │ Test case 9. FA. Time: 2L -00:00:46 v #1015 > > │ Test case 10. FB. Time: 8L -00:00:46 v #1016 > > │ Test case 11. FC. Time: 9L -00:00:46 v #1017 > > │ -00:00:46 v #1018 > > │ Solution: abcde -00:00:46 v #1019 > > │ Test case 1. A. Time: 3L -00:00:46 v #1020 > > │ Test case 2. B. Time: 0L -00:00:46 v #1021 > > │ Test case 3. C. Time: 1L -00:00:46 v #1022 > > │ Test case 4. CA. Time: 1L -00:00:46 v #1023 > > │ Test case 5. CB. Time: 1L -00:00:46 v #1024 > > │ Test case 6. D. Time: 3L -00:00:46 v #1025 > > │ Test case 7. E. Time: 1L -00:00:46 v #1026 > > │ Test case 8. F. Time: 0L -00:00:46 v #1027 > > │ Test case 9. FA. Time: 0L -00:00:46 v #1028 > > │ Test case 10. FB. Time: 4L -00:00:46 v #1029 > > │ Test case 11. FC. Time: 4L -00:00:46 v #1030 > > │ -00:00:46 v #1031 > > │ Solution: abcdefghi -00:00:46 v #1032 > > │ Test case 1. A. Time: 5L -00:00:46 v #1033 > > │ Test case 2. B. Time: 1L -00:00:46 v #1034 > > │ Test case 3. C. Time: 4L -00:00:46 v #1035 > > │ Test case 4. CA. Time: 2L -00:00:46 v #1036 > > │ Test case 5. CB. Time: 4L -00:00:46 v #1037 > > │ Test case 6. D. Time: 7L -00:00:46 v #1038 > > │ Test case 7. E. Time: 3L -00:00:46 v #1039 > > │ Test case 8. F. Time: 0L -00:00:46 v #1040 > > │ Test case 9. FA. Time: 4L -00:00:46 v #1041 > > │ Test case 10. FB. Time: 2L -00:00:46 v #1042 > > │ Test case 11. FC. Time: 5L -00:00:46 v #1043 > > │ -00:00:46 v #1044 > > │ Solution: abab -00:00:46 v #1045 > > │ Test case 1. A. Time: 0L -00:00:46 v #1046 > > │ Test case 2. B. Time: 0L -00:00:46 v #1047 > > │ Test case 3. C. Time: 0L -00:00:46 v #1048 > > │ Test case 4. CA. Time: 1L -00:00:46 v #1049 > > │ Test case 5. CB. Time: 1L -00:00:46 v #1050 > > │ Test case 6. D. Time: 1L -00:00:46 v #1051 > > │ Test case 7. E. Time: 0L -00:00:46 v #1052 > > │ Test case 8. F. Time: 0L -00:00:46 v #1053 > > │ Test case 9. FA. Time: 0L -00:00:46 v #1054 > > │ Test case 10. FB. Time: 2L -00:00:46 v #1055 > > │ Test case 11. FC. Time: 5L -00:00:46 v #1056 > > │ -00:00:46 v #1057 > > │ Solution: aa -00:00:46 v #1058 > > │ Test case 1. A. Time: 0L -00:00:46 v #1059 > > │ Test case 2. B. Time: 0L -00:00:46 v #1060 > > │ Test case 3. C. Time: 0L -00:00:46 v #1061 > > │ Test case 4. CA. Time: 0L -00:00:46 v #1062 > > │ Test case 5. CB. Time: 0L -00:00:46 v #1063 > > │ Test case 6. D. Time: 0L -00:00:46 v #1064 > > │ Test case 7. E. Time: 0L -00:00:46 v #1065 > > │ Test case 8. F. Time: 0L -00:00:46 v #1066 > > │ Test case 9. FA. Time: 0L -00:00:46 v #1067 > > │ Test case 10. FB. Time: 1L -00:00:46 v #1068 > > │ Test case 11. FC. Time: 5L -00:00:46 v #1069 > > │ -00:00:46 v #1070 > > │ Solution: z -00:00:46 v #1071 > > │ Test case 1. A. Time: 0L -00:00:46 v #1072 > > │ Test case 2. B. Time: 0L -00:00:46 v #1073 > > │ Test case 3. C. Time: 0L -00:00:46 v #1074 > > │ Test case 4. CA. Time: 0L -00:00:46 v #1075 > > │ Test case 5. CB. Time: 0L -00:00:46 v #1076 > > │ Test case 6. D. Time: 0L -00:00:46 v #1077 > > │ Test case 7. E. Time: 0L -00:00:46 v #1078 > > │ Test case 8. F. Time: 0L -00:00:46 v #1079 > > │ Test case 9. FA. Time: 0L -00:00:46 v #1080 > > │ Test case 10. FB. Time: 0L -00:00:46 v #1081 > > │ Test case 11. FC. Time: 4L -00:00:46 v #1082 > > │ -00:00:46 v #1083 > > │ Input | Expected -00:00:46 v #1084 > > | Result -00:00:46 v #1085 > > -00:00:46 v #1086 > > | Best -00:00:46 v #1087 > > │ --- | --- -00:00:46 v #1088 > > -00:00:46 v #1089 > > | --- -00:00:46 v #1090 > > -00:00:46 v #1091 > > | --- -00:00:46 v #1092 > > │ abc | bca cab abc -00:00:46 v #1093 > > | bca cab abc -00:00:46 v #1094 > > | (3, 1) -00:00:46 v #1095 > > │ abcde | bcdea cdeab deabc eabcd abcde -00:00:46 v #1096 > > | bcdea cdeab deabc eabcd abcde -00:00:46 v #1097 > > | (2, 0) -00:00:46 v #1098 > > │ abcdefghi | bcdefghia cdefghiab defghiabc efghiabcd fghiabcde -00:00:46 v #1099 > > ghiabcdef hiabcdefg iabcdefgh abcdefghi | bcdefghia cdefghiab defghiabc efghiabcd -00:00:46 v #1100 > > fghiabcde ghiabcdef hiabcdefg iabcdefgh abcdefghi | (8, 0) -00:00:46 v #1101 > > │ abab | baba abab baba abab -00:00:46 v #1102 > > | baba abab baba abab -00:00:46 v #1103 > > | (1, 0) -00:00:46 v #1104 > > │ aa | aa aa -00:00:46 v #1105 > > -00:00:46 v #1106 > > | aa aa -00:00:46 v #1107 > > -00:00:46 v #1108 > > | (1, 0) -00:00:46 v #1109 > > │ z | z -00:00:46 v #1110 > > -00:00:46 v #1111 > > | z -00:00:46 v #1112 > > -00:00:46 v #1113 > > | (1, 0) -00:00:46 v #1114 > > │ -00:00:46 v #1115 > > │ Average Ranking -00:00:46 v #1116 > > │ Test case 2. Average Time: 0L -00:00:46 v #1117 > > │ Test case 8. Average Time: 0L -00:00:46 v #1118 > > │ Test case 1. Average Time: 1L -00:00:46 v #1119 > > │ Test case 3. Average Time: 1L -00:00:46 v #1120 > > │ Test case 4. Average Time: 1L -00:00:46 v #1121 > > │ Test case 5. Average Time: 1L -00:00:46 v #1122 > > │ Test case 7. Average Time: 1L -00:00:46 v #1123 > > │ Test case 9. Average Time: 1L -00:00:46 v #1124 > > │ Test case 6. Average Time: 2L -00:00:46 v #1125 > > │ Test case 10. Average Time: 2L -00:00:46 v #1126 > > │ Test case 11. Average Time: 5L -00:00:46 v #1127 > > │ -00:00:46 v #1128 > > -00:00:46 v #1129 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:46 v #1130 > > │ ## rotate_strings_tests -00:00:46 v #1131 > > -00:00:46 v #1132 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:46 v #1133 > > │ ``` -00:00:46 v #1134 > > │ 02:21:12 verbose #1 benchmark.run_all / {count = -00:00:46 v #1135 > > 2000000; test_name = rotate_strings_tests} -00:00:46 v #1136 > > │ -00:00:46 v #1137 > > │ 02:21:12 verbose #2 benchmark.run / {input_str = -00:00:46 v #1138 > > "abc"} -00:00:46 v #1139 > > │ 02:21:13 verbose #3 benchmark.run / solutions.map / {i -00:00:46 v #1140 > > = 1; test_name = F; time = 638} -00:00:46 v #1141 > > │ 02:21:14 verbose #4 benchmark.run / solutions.map / {i -00:00:46 v #1142 > > = 2; test_name = FA; time = 779} -00:00:46 v #1143 > > │ -00:00:46 v #1144 > > │ 02:21:14 verbose #5 benchmark.run / {input_str = -00:00:46 v #1145 > > "abcde"} -00:00:46 v #1146 > > │ 02:21:15 verbose #6 benchmark.run / solutions.map / {i -00:00:46 v #1147 > > = 1; test_name = F; time = 745} -00:00:46 v #1148 > > │ 02:21:16 verbose #7 benchmark.run / solutions.map / {i -00:00:46 v #1149 > > = 2; test_name = FA; time = 809} -00:00:46 v #1150 > > │ -00:00:46 v #1151 > > │ 02:21:16 verbose #8 benchmark.run / {input_str = -00:00:46 v #1152 > > "abcdefghi"} -00:00:46 v #1153 > > │ 02:21:17 verbose #9 benchmark.run / solutions.map / {i -00:00:46 v #1154 > > = 1; test_name = F; time = 1092} -00:00:46 v #1155 > > │ 02:21:18 verbose #10 benchmark.run / solutions.map -00:00:46 v #1156 > > {i = 2; test_name = FA; time = 1304} -00:00:46 v #1157 > > │ -00:00:46 v #1158 > > │ 02:21:18 verbose #11 benchmark.run / {input_str = -00:00:46 v #1159 > > "abab"} -00:00:46 v #1160 > > │ 02:21:19 verbose #12 benchmark.run / solutions.map -00:00:46 v #1161 > > {i = 1; test_name = F; time = 536} -00:00:46 v #1162 > > │ 02:21:20 verbose #13 benchmark.run / solutions.map -00:00:46 v #1163 > > {i = 2; test_name = FA; time = 620} -00:00:46 v #1164 > > │ -00:00:46 v #1165 > > │ 02:21:20 verbose #14 benchmark.run / {input_str = -00:00:46 v #1166 > > "aa"} -00:00:46 v #1167 > > │ 02:21:21 verbose #15 benchmark.run / solutions.map -00:00:46 v #1168 > > {i = 1; test_name = F; time = 365} -00:00:46 v #1169 > > │ 02:21:21 verbose #16 benchmark.run / solutions.map -00:00:46 v #1170 > > {i = 2; test_name = FA; time = 396} -00:00:46 v #1171 > > │ -00:00:46 v #1172 > > │ 02:21:21 verbose #17 benchmark.run / {input_str = "z"} -00:00:46 v #1173 > > │ 02:21:22 verbose #18 benchmark.run / solutions.map -00:00:46 v #1174 > > {i = 1; test_name = F; time = 158} -00:00:46 v #1175 > > │ 02:21:22 verbose #19 benchmark.run / solutions.map -00:00:46 v #1176 > > {i = 2; test_name = FA; time = 143} -00:00:46 v #1177 > > │ ``` -00:00:46 v #1178 > > │ input | expected -00:00:46 v #1179 > > -00:00:46 v #1180 > > | result -00:00:46 v #1181 > > -00:00:46 v #1182 > > | best -00:00:46 v #1183 > > │ --- | --- -00:00:46 v #1184 > > -00:00:46 v #1185 > > | --- -00:00:46 v #1186 > > -00:00:46 v #1187 > > | --- -00:00:46 v #1188 > > │ "abc" | "bca cab abc" -00:00:46 v #1189 > > | "bca cab abc" -00:00:46 v #1190 > > | 1, 638 -00:00:46 v #1191 > > │ "abcde" | "bcdea cdeab deabc eabcd abcde" -00:00:46 v #1192 > > | "bcdea cdeab deabc eabcd abcde" -00:00:46 v #1193 > > | 1, 745 -00:00:46 v #1194 > > │ "abcdefghi" | "bcdefghia cdefghiab defghiabc efghiabcd -00:00:46 v #1195 > > fghiabcde ghiabcdef hiabcdefg iabcdefgh abcdefghi" | "bcdefghia cdefghiab -00:00:46 v #1196 > > defghiabc efghiabcd fghiabcde ghiabcdef hiabcdefg iabcdefgh abcdefghi" | 1, 1092 -00:00:46 v #1197 > > │ "abab" | "baba abab baba abab" -00:00:46 v #1198 > > | "baba abab baba abab" -00:00:46 v #1199 > > | 1, 536 -00:00:46 v #1200 > > │ "aa" | "aa aa" -00:00:46 v #1201 > > -00:00:46 v #1202 > > | "aa aa" -00:00:46 v #1203 > > -00:00:46 v #1204 > > | 1, 365 -00:00:46 v #1205 > > │ "z" | "z" -00:00:46 v #1206 > > -00:00:46 v #1207 > > | "z" -00:00:46 v #1208 > > -00:00:46 v #1209 > > | 2, 143 -00:00:46 v #1210 > > │ ``` -00:00:46 v #1211 > > │ 02:21:22 verbose #20 benchmark.sort_result_list -00:00:46 v #1212 > > averages.iter / {avg = 589; i = 1} -00:00:46 v #1213 > > │ 02:21:22 verbose #21 benchmark.sort_result_list -00:00:46 v #1214 > > averages.iter / {avg = 675; i = 2} -00:00:46 v #1215 > > │ ``` -00:00:46 v #1216 > > -00:00:46 v #1217 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:46 v #1218 > > //// test -00:00:46 v #1219 > > //// timeout=60000 -00:00:46 v #1220 > > -00:00:46 v #1221 > > inl get_solutions () = -00:00:46 v #1222 > > [[ -00:00:46 v #1223 > > // "A", -00:00:46 v #1224 > > // fun (input : string) => -00:00:46 v #1225 > > // let resultList = -00:00:46 v #1226 > > // List.fold (fun acc x => -00:00:46 v #1227 > > // let rotate (text : string) (letter : string) = -00:00:46 v #1228 > > text.Substring (1, input.Length - 1) + letter -00:00:46 v #1229 > > // [[ rotate (if acc.IsEmpty then input else acc.Head) -00:00:46 v #1230 > > (string x) ]] ++ acc -00:00:46 v #1231 > > // ) [[]] (Seq.toList input) -00:00:46 v #1232 > > -00:00:46 v #1233 > > // List.foldBack (fun acc x => x + acc + " ") resultList "" -00:00:46 v #1234 > > // |> fun x => x.TrimEnd () -00:00:46 v #1235 > > -00:00:46 v #1236 > > // "B", -00:00:46 v #1237 > > // fun input => -00:00:46 v #1238 > > // input -00:00:46 v #1239 > > // |> Seq.toList -00:00:46 v #1240 > > // |> List.fold (fun (acc : string list) letter => -00:00:46 v #1241 > > // let last = -00:00:46 v #1242 > > // if acc.IsEmpty -00:00:46 v #1243 > > // then input -00:00:46 v #1244 > > // else acc.Head -00:00:46 v #1245 > > -00:00:46 v #1246 > > // let item = last.[[1 .. input.Length - 1]] + string letter -00:00:46 v #1247 > > -00:00:46 v #1248 > > // item :: acc -00:00:46 v #1249 > > // ) [[]] -00:00:46 v #1250 > > // |> List.rev -00:00:46 v #1251 > > // |> SpiralSm.concat " " -00:00:46 v #1252 > > -00:00:46 v #1253 > > // "C", -00:00:46 v #1254 > > // fun input => -00:00:46 v #1255 > > // input -00:00:46 v #1256 > > // |> Seq.toList -00:00:46 v #1257 > > // |> List.fold (fun (acc : list string) letter => acc.Head.[[ 1 .. -00:00:46 v #1258 > > input.Length - 1 ]] + string letter :: acc) [[ input ]] -00:00:46 v #1259 > > // |> List.rev -00:00:46 v #1260 > > // |> List.skip 1 -00:00:46 v #1261 > > // |> SpiralSm.concat " " -00:00:46 v #1262 > > -00:00:46 v #1263 > > // "CA", -00:00:46 v #1264 > > // fun input => -00:00:46 v #1265 > > // input -00:00:46 v #1266 > > // |> Seq.fold (fun (acc : list string) letter => acc.Head.[[ 1 .. -00:00:46 v #1267 > > input.Length - 1 ]] + string letter :: acc) [[ input ]] -00:00:46 v #1268 > > // |> Seq.rev -00:00:46 v #1269 > > // |> Seq.skip 1 -00:00:46 v #1270 > > // |> SpiralSm.concat " " -00:00:46 v #1271 > > -00:00:46 v #1272 > > // "CB", -00:00:46 v #1273 > > // fun input => -00:00:46 v #1274 > > // input -00:00:46 v #1275 > > // |> Seq.toArray -00:00:46 v #1276 > > // |> Array.fold (fun (acc : a _ string) letter => acc |> -00:00:46 v #1277 > > Array.append (a ;[[ acc.[[0]].[[ 1 .. input.Length - 1 ]] + string letter ]])) -00:00:46 v #1278 > > (a ;[[ input ]]) -00:00:46 v #1279 > > // |> Array.rev -00:00:46 v #1280 > > // |> Array.skip 1 -00:00:46 v #1281 > > // |> SpiralSm.concat " " -00:00:46 v #1282 > > -00:00:46 v #1283 > > // "D", -00:00:46 v #1284 > > // fun input => -00:00:46 v #1285 > > // input -00:00:46 v #1286 > > // |> Seq.toList -00:00:46 v #1287 > > // |> fun list => -00:00:46 v #1288 > > // let rec loop (acc : list (list char)) = function -00:00:46 v #1289 > > // | _ when acc.Length = list.Length => acc -00:00:46 v #1290 > > // | head :: tail => -00:00:46 v #1291 > > // let item = tail ++ [[ head ]] -00:00:46 v #1292 > > // loop (item :: acc) item -00:00:46 v #1293 > > // | [[]] => [[]] -00:00:46 v #1294 > > // loop [[]] list -00:00:46 v #1295 > > // |> List.rev -00:00:46 v #1296 > > // |> List.map (List.toArray >> String) -00:00:46 v #1297 > > // |> SpiralSm.concat " " -00:00:46 v #1298 > > -00:00:46 v #1299 > > // "E", -00:00:46 v #1300 > > // fun input => -00:00:46 v #1301 > > // input -00:00:46 v #1302 > > // |> Seq.toList -00:00:46 v #1303 > > // |> fun list => -00:00:46 v #1304 > > // let rec loop (last : string) = function -00:00:46 v #1305 > > // | head :: tail => -00:00:46 v #1306 > > // let item = last.[[1 .. input.Length - 1]] + string -00:00:46 v #1307 > > head -00:00:46 v #1308 > > // item :: loop item tail -00:00:46 v #1309 > > // | [[]] => [[]] -00:00:46 v #1310 > > // loop input list -00:00:46 v #1311 > > // |> SpiralSm.concat " " -00:00:46 v #1312 > > -00:00:46 v #1313 > > "F", -00:00:46 v #1314 > > fun input => -00:00:46 v #1315 > > // Array.singleton 0 -00:00:46 v #1316 > > // |> Array.append [[| 1 .. input.Length - 1 |]] -00:00:46 v #1317 > > // |> Array.map (fun i -> input.[[ i .. ]] + input.[[ .. i - 1 ]]) -00:00:46 v #1318 > > // |> SpiralSm.concat " " -00:00:46 v #1319 > > inl input_length = input |> sm.length -00:00:46 v #1320 > > am.singleton 0i32 -00:00:46 v #1321 > > |> am.append (am'.init_series 1 (input_length - 1) 1 |> fun x => a x -00:00:46 v #1322 > > : _ int _) -00:00:46 v #1323 > > |> fun (a x) => x -00:00:46 v #1324 > > |> am'.map_base fun i => -00:00:46 v #1325 > > inl a = input |> sm'.slice i (input_length - 1) -00:00:46 v #1326 > > inl b = input |> sm'.slice 0 (i - 1) -00:00:46 v #1327 > > a +. b -00:00:46 v #1328 > > |> fun x => a x : _ int _ -00:00:46 v #1329 > > |> seq.of_array -00:00:46 v #1330 > > |> sm'.concat " " -00:00:46 v #1331 > > -00:00:46 v #1332 > > "FA", -00:00:46 v #1333 > > fun input => -00:00:46 v #1334 > > // List.singleton 0 -00:00:46 v #1335 > > // |> List.append [[ 1 .. input.Length - 1 ]] -00:00:46 v #1336 > > // // |> List.map (fun i => input.[[ i .. ]] + input.[[ .. i - 1 ]]) -00:00:46 v #1337 > > // |> SpiralSm.concat " " -00:00:46 v #1338 > > inl input_length = input |> sm.length -00:00:46 v #1339 > > listm.singleton 0i32 -00:00:46 v #1340 > > |> listm.append (listm'.init_series 1 (input_length - 1) 1) -00:00:46 v #1341 > > |> listm.map (fun i => -00:00:46 v #1342 > > inl a = input |> sm'.slice i (input_length - 1) -00:00:46 v #1343 > > inl b = if i = 0 then "" else input |> sm'.slice 0 (i - 1) -00:00:46 v #1344 > > a +. b -00:00:46 v #1345 > > ) -00:00:46 v #1346 > > |> listm'.box -00:00:46 v #1347 > > |> listm'.to_array' -00:00:46 v #1348 > > |> fun x => a x : _ int _ -00:00:46 v #1349 > > |> seq.of_array -00:00:46 v #1350 > > |> sm'.concat " " -00:00:46 v #1351 > > -00:00:46 v #1352 > > // "FB", -00:00:46 v #1353 > > // fun input => -00:00:46 v #1354 > > // Seq.singleton 0 -00:00:46 v #1355 > > // // |> Seq.append (seq { 1 .. input.Length - 1 }) -00:00:46 v #1356 > > // // |> Seq.map (fun i => input.[[ i .. ]] + input.[[ .. i - 1 ]]) -00:00:46 v #1357 > > // |> SpiralSm.concat " " -00:00:46 v #1358 > > -00:00:46 v #1359 > > // "FC", -00:00:46 v #1360 > > // fun input => -00:00:46 v #1361 > > // Array.singleton 0 -00:00:46 v #1362 > > // |> Array.append (a ;[[ 1 .. input.Length - 1 ]]) -00:00:46 v #1363 > > //// |> Array.Parallel.map (fun i => input.[[ i .. ]] + input.[[ .. i -00:00:46 v #1364 > > - 1 ]]) -00:00:46 v #1365 > > // |> SpiralSm.concat " " -00:00:46 v #1366 > > ]] -00:00:46 v #1367 > > -00:00:46 v #1368 > > inl rec rotate_strings_tests () = -00:00:46 v #1369 > > inl test_cases = [[ -00:00:46 v #1370 > > "abc", "bca cab abc" -00:00:46 v #1371 > > "abcde", "bcdea cdeab deabc eabcd abcde" -00:00:46 v #1372 > > "abcdefghi", "bcdefghia cdefghiab defghiabc efghiabcd fghiabcde -00:00:46 v #1373 > > ghiabcdef hiabcdefg iabcdefgh abcdefghi" -00:00:46 v #1374 > > "abab", "baba abab baba abab" -00:00:46 v #1375 > > "aa", "aa aa" -00:00:46 v #1376 > > "z", "z" -00:00:46 v #1377 > > ]] -00:00:46 v #1378 > > -00:00:46 v #1379 > > inl solutions = get_solutions () -00:00:46 v #1380 > > -00:00:46 v #1381 > > // inl is_fast () = true -00:00:46 v #1382 > > -00:00:46 v #1383 > > inl count = -00:00:46 v #1384 > > if is_fast () -00:00:46 v #1385 > > then 1000i32 -00:00:46 v #1386 > > else 2000000i32 -00:00:46 v #1387 > > -00:00:46 v #1388 > > run_all (reflection.nameof { rotate_strings_tests }) count solutions -00:00:46 v #1389 > > test_cases -00:00:46 v #1390 > > |> sort_result_list -00:00:46 v #1391 > > -00:00:46 v #1392 > > rotate_strings_tests () -00:01:06 v #1393 > > -00:01:06 v #1394 > > ── [ 19.16s - stdout ] ───────────────────────────────────────────────────────── -00:01:06 v #1395 > > │ -00:01:06 v #1396 > > │ ``` -00:01:06 v #1397 > > │ 00:00:00 v #1 benchmark.run_all / { test_name = -00:01:06 v #1398 > > rotate_strings_tests; count = 2000000 } -00:01:06 v #1399 > > │ -00:01:06 v #1400 > > │ 00:00:00 v #2 benchmark.run / { input_str = "abc" } -00:01:06 v #1401 > > │ 00:00:01 v #3 benchmark.run / solutions.map / { i = 1; -00:01:06 v #1402 > > test_name = F; time = 871 } -00:01:06 v #1403 > > │ 00:00:02 v #4 benchmark.run / solutions.map / { i = 2; -00:01:06 v #1404 > > test_name = FA; time = 1086 } -00:01:06 v #1405 > > │ -00:01:06 v #1406 > > │ 00:00:02 v #5 benchmark.run / { input_str = "abcde" } -00:01:06 v #1407 > > │ 00:00:03 v #6 benchmark.run / solutions.map / { i = 1; -00:01:06 v #1408 > > test_name = F; time = 1118 } -00:01:06 v #1409 > > │ 00:00:05 v #7 benchmark.run / solutions.map / { i = 2; -00:01:06 v #1410 > > test_name = FA; time = 1688 } -00:01:06 v #1411 > > │ -00:01:06 v #1412 > > │ 00:00:05 v #8 benchmark.run / { input_str = "abcdefghi" -00:01:06 v #1413 > > } -00:01:06 v #1414 > > │ 00:00:08 v #9 benchmark.run / solutions.map / { i = 1; -00:01:06 v #1415 > > test_name = F; time = 1950 } -00:01:06 v #1416 > > │ 00:00:11 v #10 benchmark.run / solutions.map / { i = 2; -00:01:06 v #1417 > > test_name = FA; time = 2928 } -00:01:06 v #1418 > > │ -00:01:06 v #1419 > > │ 00:00:11 v #11 benchmark.run / { input_str = "abab" } -00:01:06 v #1420 > > │ 00:00:13 v #12 benchmark.run / solutions.map / { i = 1; -00:01:06 v #1421 > > test_name = F; time = 1101 } -00:01:06 v #1422 > > │ 00:00:14 v #13 benchmark.run / solutions.map / { i = 2; -00:01:06 v #1423 > > test_name = FA; time = 1053 } -00:01:06 v #1424 > > │ -00:01:06 v #1425 > > │ 00:00:14 v #14 benchmark.run / { input_str = "aa" } -00:01:06 v #1426 > > │ 00:00:15 v #15 benchmark.run / solutions.map / { i = 1; -00:01:06 v #1427 > > test_name = F; time = 661 } -00:01:06 v #1428 > > │ 00:00:16 v #16 benchmark.run / solutions.map / { i = 2; -00:01:06 v #1429 > > test_name = FA; time = 748 } -00:01:06 v #1430 > > │ -00:01:06 v #1431 > > │ 00:00:16 v #17 benchmark.run / { input_str = "z" } -00:01:06 v #1432 > > │ 00:00:17 v #18 benchmark.run / solutions.map / { i = 1; -00:01:06 v #1433 > > test_name = F; time = 172 } -00:01:06 v #1434 > > │ 00:00:17 v #19 benchmark.run / solutions.map / { i = 2; -00:01:06 v #1435 > > test_name = FA; time = 190 } -00:01:06 v #1436 > > │ ``` -00:01:06 v #1437 > > │ input | expected -00:01:06 v #1438 > > -00:01:06 v #1439 > > | result -00:01:06 v #1440 > > -00:01:06 v #1441 > > | best -00:01:06 v #1442 > > │ --- | --- -00:01:06 v #1443 > > -00:01:06 v #1444 > > | --- -00:01:06 v #1445 > > -00:01:06 v #1446 > > | --- -00:01:06 v #1447 > > │ "abc" | "bca cab abc" -00:01:06 v #1448 > > | "bca cab abc" -00:01:06 v #1449 > > | 1, 871 -00:01:06 v #1450 > > │ "abcde" | "bcdea cdeab deabc eabcd abcde" -00:01:06 v #1451 > > | "bcdea cdeab deabc eabcd abcde" -00:01:06 v #1452 > > | 1, 1118 -00:01:06 v #1453 > > │ "abcdefghi" | "bcdefghia cdefghiab defghiabc efghiabcd -00:01:06 v #1454 > > fghiabcde ghiabcdef hiabcdefg iabcdefgh abcdefghi" | "bcdefghia cdefghiab -00:01:06 v #1455 > > defghiabc efghiabcd fghiabcde ghiabcdef hiabcdefg iabcdefgh abcdefghi" | 1, 1950 -00:01:06 v #1456 > > │ "abab" | "baba abab baba abab" -00:01:06 v #1457 > > | "baba abab baba abab" -00:01:06 v #1458 > > | 2, 1053 -00:01:06 v #1459 > > │ "aa" | "aa aa" -00:01:06 v #1460 > > -00:01:06 v #1461 > > | "aa aa" -00:01:06 v #1462 > > -00:01:06 v #1463 > > | 1, 661 -00:01:06 v #1464 > > │ "z" | "z" -00:01:06 v #1465 > > -00:01:06 v #1466 > > | "z" -00:01:06 v #1467 > > -00:01:06 v #1468 > > | 1, 172 -00:01:06 v #1469 > > │ ``` -00:01:06 v #1470 > > │ 00:00:17 v #20 benchmark.sort_result_list -00:01:06 v #1471 > > averages.iter / { i = 1; avg = 978 } -00:01:06 v #1472 > > │ 00:00:17 v #21 benchmark.sort_result_list -00:01:06 v #1473 > > averages.iter / { i = 2; avg = 1282 } -00:01:06 v #1474 > > │ ``` -00:01:06 v #1475 > > │ -00:01:06 v #1476 > > -00:01:06 v #1477 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:06 v #1478 > > //// test -00:01:06 v #1479 > > -00:01:06 v #1480 > > // rotate_strings_tests () -00:01:06 v #1481 > > () -00:01:06 v #1482 > > -00:01:06 v #1483 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:01:06 v #1484 > > │ ## binary_search_tests -00:01:06 v #1485 > > -00:01:06 v #1486 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:01:06 v #1487 > > │ ``` -00:01:06 v #1488 > > │ 02:19:29 verbose #1 benchmark.run_all / {count = -00:01:06 v #1489 > > 10000000; test_name = binary_search_tests} -00:01:06 v #1490 > > │ -00:01:06 v #1491 > > │ 02:19:29 verbose #2 benchmark.run / {input_str = -00:01:06 v #1492 > > struct ([|1; 3; 4; 6; 8; 9; 11|], 6, 7)} -00:01:06 v #1493 > > │ 02:19:30 verbose #3 benchmark.run / solutions.map / {i -00:01:06 v #1494 > > = 1; test_name = semi_open_1; time = 662} -00:01:06 v #1495 > > │ 02:19:30 verbose #4 benchmark.run / solutions.map / {i -00:01:06 v #1496 > > = 2; test_name = closed_1; time = 619} -00:01:06 v #1497 > > │ 02:19:31 verbose #5 benchmark.run / solutions.map / {i -00:01:06 v #1498 > > = 3; test_name = semi_open_2; time = 644} -00:01:06 v #1499 > > │ 02:19:32 verbose #6 benchmark.run / solutions.map / {i -00:01:06 v #1500 > > = 4; test_name = closed_2; time = 610} -00:01:06 v #1501 > > │ -00:01:06 v #1502 > > │ 02:19:32 verbose #7 benchmark.run / {input_str = -00:01:06 v #1503 > > struct ([|1; 3; 4; 6; 8; 9; 11|], 1, 7)} -00:01:06 v #1504 > > │ 02:19:33 verbose #8 benchmark.run / solutions.map / {i -00:01:06 v #1505 > > = 1; test_name = semi_open_1; time = 607} -00:01:06 v #1506 > > │ 02:19:33 verbose #9 benchmark.run / solutions.map / {i -00:01:06 v #1507 > > = 2; test_name = closed_1; time = 559} -00:01:06 v #1508 > > │ 02:19:34 verbose #10 benchmark.run / solutions.map -00:01:06 v #1509 > > {i = 3; test_name = semi_open_2; time = 612} -00:01:06 v #1510 > > │ 02:19:35 verbose #11 benchmark.run / solutions.map -00:01:06 v #1511 > > {i = 4; test_name = closed_2; time = 577} -00:01:06 v #1512 > > │ -00:01:06 v #1513 > > │ 02:19:35 verbose #12 benchmark.run / {input_str = -00:01:06 v #1514 > > struct ([|1; 3; 4; 6; 8; 9; 11|], 11, 7)} -00:01:06 v #1515 > > │ 02:19:35 verbose #13 benchmark.run / solutions.map -00:01:06 v #1516 > > {i = 1; test_name = semi_open_1; time = 550} -00:01:06 v #1517 > > │ 02:19:36 verbose #14 benchmark.run / solutions.map -00:01:06 v #1518 > > {i = 2; test_name = closed_1; time = 580} -00:01:06 v #1519 > > │ 02:19:37 verbose #15 benchmark.run / solutions.map -00:01:06 v #1520 > > {i = 3; test_name = semi_open_2; time = 624} -00:01:06 v #1521 > > │ 02:19:37 verbose #16 benchmark.run / solutions.map -00:01:06 v #1522 > > {i = 4; test_name = closed_2; time = 590} -00:01:06 v #1523 > > │ -00:01:06 v #1524 > > │ 02:19:37 verbose #17 benchmark.run / {input_str = -00:01:06 v #1525 > > struct ([|1; 3; 4; 6; 8; 9; 11|], 12, 7)} -00:01:06 v #1526 > > │ 02:19:38 verbose #18 benchmark.run / solutions.map -00:01:06 v #1527 > > {i = 1; test_name = semi_open_1; time = 574} -00:01:06 v #1528 > > │ 02:19:39 verbose #19 benchmark.run / solutions.map -00:01:06 v #1529 > > {i = 2; test_name = closed_1; time = 577} -00:01:06 v #1530 > > │ 02:19:39 verbose #20 benchmark.run / solutions.map -00:01:06 v #1531 > > {i = 3; test_name = semi_open_2; time = 582} -00:01:06 v #1532 > > │ 02:19:40 verbose #21 benchmark.run / solutions.map -00:01:06 v #1533 > > {i = 4; test_name = closed_2; time = 585} -00:01:06 v #1534 > > │ -00:01:06 v #1535 > > │ 02:19:40 verbose #22 benchmark.run / {input_str = -00:01:06 v #1536 > > struct ([|1; 2; 3; 4...00; ...|], 60, 1000)} -00:01:06 v #1537 > > │ 02:19:41 verbose #23 benchmark.run / solutions.map -00:01:06 v #1538 > > {i = 1; test_name = semi_open_1; time = 610} -00:01:06 v #1539 > > │ 02:19:42 verbose #24 benchmark.run / solutions.map -00:01:06 v #1540 > > {i = 2; test_name = closed_1; time = 672} -00:01:06 v #1541 > > │ 02:19:42 verbose #25 benchmark.run / solutions.map -00:01:06 v #1542 > > {i = 3; test_name = semi_open_2; time = 636} -00:01:06 v #1543 > > │ 02:19:43 verbose #26 benchmark.run / solutions.map -00:01:06 v #1544 > > {i = 4; test_name = closed_2; time = 629} -00:01:06 v #1545 > > │ -00:01:06 v #1546 > > │ 02:19:43 verbose #27 benchmark.run / {input_str = -00:01:06 v #1547 > > struct ([|1; 3; 4; 6; 8; 9; 11|], 6, 7)} -00:01:06 v #1548 > > │ 02:19:44 verbose #28 benchmark.run / solutions.map -00:01:06 v #1549 > > {i = 1; test_name = semi_open_1; time = 599} -00:01:06 v #1550 > > │ 02:19:44 verbose #29 benchmark.run / solutions.map -00:01:06 v #1551 > > {i = 2; test_name = closed_1; time = 561} -00:01:06 v #1552 > > │ 02:19:45 verbose #30 benchmark.run / solutions.map -00:01:06 v #1553 > > {i = 3; test_name = semi_open_2; time = 604} -00:01:06 v #1554 > > │ 02:19:46 verbose #31 benchmark.run / solutions.map -00:01:06 v #1555 > > {i = 4; test_name = closed_2; time = 573} -00:01:06 v #1556 > > │ -00:01:06 v #1557 > > │ 02:19:46 verbose #32 benchmark.run / {input_str = -00:01:06 v #1558 > > struct ([|1; 3; 4; 6; 8; 9; 11|], 1, 7)} -00:01:06 v #1559 > > │ 02:19:47 verbose #33 benchmark.run / solutions.map -00:01:06 v #1560 > > {i = 1; test_name = semi_open_1; time = 635} -00:01:06 v #1561 > > │ 02:19:47 verbose #34 benchmark.run / solutions.map -00:01:06 v #1562 > > {i = 2; test_name = closed_1; time = 603} -00:01:06 v #1563 > > │ 02:19:48 verbose #35 benchmark.run / solutions.map -00:01:06 v #1564 > > {i = 3; test_name = semi_open_2; time = 644} -00:01:06 v #1565 > > │ 02:19:49 verbose #36 benchmark.run / solutions.map -00:01:06 v #1566 > > {i = 4; test_name = closed_2; time = 628} -00:01:06 v #1567 > > │ -00:01:06 v #1568 > > │ 02:19:49 verbose #37 benchmark.run / {input_str = -00:01:06 v #1569 > > struct ([|1; 3; 4; 6; 8; 9; 11|], 11, 7)} -00:01:06 v #1570 > > │ 02:19:49 verbose #38 benchmark.run / solutions.map -00:01:06 v #1571 > > {i = 1; test_name = semi_open_1; time = 643} -00:01:06 v #1572 > > │ 02:19:50 verbose #39 benchmark.run / solutions.map -00:01:06 v #1573 > > {i = 2; test_name = closed_1; time = 606} -00:01:06 v #1574 > > │ 02:19:51 verbose #40 benchmark.run / solutions.map -00:01:06 v #1575 > > {i = 3; test_name = semi_open_2; time = 636} -00:01:06 v #1576 > > │ 02:19:52 verbose #41 benchmark.run / solutions.map -00:01:06 v #1577 > > {i = 4; test_name = closed_2; time = 624} -00:01:06 v #1578 > > │ -00:01:06 v #1579 > > │ 02:19:52 verbose #42 benchmark.run / {input_str = -00:01:06 v #1580 > > struct ([|1; 3; 4; 6; 8; 9; 11|], 12, 7)} -00:01:06 v #1581 > > │ 02:19:52 verbose #43 benchmark.run / solutions.map -00:01:06 v #1582 > > {i = 1; test_name = semi_open_1; time = 689} -00:01:06 v #1583 > > │ 02:19:53 verbose #44 benchmark.run / solutions.map -00:01:06 v #1584 > > {i = 2; test_name = closed_1; time = 613} -00:01:06 v #1585 > > │ 02:19:54 verbose #45 benchmark.run / solutions.map -00:01:06 v #1586 > > {i = 3; test_name = semi_open_2; time = 623} -00:01:06 v #1587 > > │ 02:19:55 verbose #46 benchmark.run / solutions.map -00:01:06 v #1588 > > {i = 4; test_name = closed_2; time = 613} -00:01:06 v #1589 > > │ -00:01:06 v #1590 > > │ 02:19:55 verbose #47 benchmark.run / {input_str = -00:01:06 v #1591 > > struct ([|1; 2; 3; 4...100; ...|], 60, 100)} -00:01:06 v #1592 > > │ 02:19:55 verbose #48 benchmark.run / solutions.map -00:01:06 v #1593 > > {i = 1; test_name = semi_open_1; time = 630} -00:01:06 v #1594 > > │ 02:19:56 verbose #49 benchmark.run / solutions.map -00:01:06 v #1595 > > {i = 2; test_name = closed_1; time = 633} -00:01:06 v #1596 > > │ 02:19:57 verbose #50 benchmark.run / solutions.map -00:01:06 v #1597 > > {i = 3; test_name = semi_open_2; time = 653} -00:01:06 v #1598 > > │ 02:19:58 verbose #51 benchmark.run / solutions.map -00:01:06 v #1599 > > {i = 4; test_name = closed_2; time = 646} -00:01:06 v #1600 > > │ ``` -00:01:06 v #1601 > > │ input | expected | result | -00:01:06 v #1602 > > best -00:01:06 v #1603 > > │ --- | --- | --- | -00:01:06 v #1604 > > --- -00:01:06 v #1605 > > │ struct ([1; 3; 4; 6; 8; 9; 11], 6, 7) | US4_0 3 | US4_0 3 | -00:01:06 v #1606 > > 4, 610 -00:01:06 v #1607 > > │ struct ([1; 3; 4; 6; 8; 9; 11], 1, 7) | US4_0 0 | US4_0 0 | -00:01:06 v #1608 > > 2, 559 -00:01:06 v #1609 > > │ struct ([1; 3; 4; 6; 8; 9; 11], 11, 7) | US4_0 6 | US4_0 6 | -00:01:06 v #1610 > > 1, 550 -00:01:06 v #1611 > > │ struct ([1; 3; 4; 6; 8; 9; 11], 12, 7) | US4_1 | US4_1 | -00:01:06 v #1612 > > 1, 574 -00:01:06 v #1613 > > │ struct ([1; 2; 3; 4...00; ...], 60, 1000) | US4_0 59 | US4_0 59 | -00:01:06 v #1614 > > 1, 610 -00:01:06 v #1615 > > │ struct ([1; 3; 4; 6; 8; 9; 11], 6, 7) | US4_0 3 | US4_0 3 | -00:01:06 v #1616 > > 2, 561 -00:01:06 v #1617 > > │ struct ([1; 3; 4; 6; 8; 9; 11], 1, 7) | US4_0 0 | US4_0 0 | -00:01:06 v #1618 > > 2, 603 -00:01:06 v #1619 > > │ struct ([1; 3; 4; 6; 8; 9; 11], 11, 7) | US4_0 6 | US4_0 6 | -00:01:06 v #1620 > > 2, 606 -00:01:06 v #1621 > > │ struct ([1; 3; 4; 6; 8; 9; 11], 12, 7) | US4_1 | US4_1 | -00:01:06 v #1622 > > 2, 613 -00:01:06 v #1623 > > │ struct ([1; 2; 3; 4...100; ...], 60, 100) | US4_0 59 | US4_0 59 | -00:01:06 v #1624 > > 1, 630 -00:01:06 v #1625 > > │ ``` -00:01:06 v #1626 > > │ 02:19:58 verbose #52 benchmark.sort_result_list -00:01:06 v #1627 > > averages.iter / {avg = 602; i = 2} -00:01:06 v #1628 > > │ 02:19:58 verbose #53 benchmark.sort_result_list -00:01:06 v #1629 > > averages.iter / {avg = 607; i = 4} -00:01:06 v #1630 > > │ 02:19:58 verbose #54 benchmark.sort_result_list -00:01:06 v #1631 > > averages.iter / {avg = 619; i = 1} -00:01:06 v #1632 > > │ 02:19:58 verbose #55 benchmark.sort_result_list -00:01:06 v #1633 > > averages.iter / {avg = 625; i = 3} -00:01:06 v #1634 > > │ ``` -00:01:06 v #1635 > > -00:01:06 v #1636 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:06 v #1637 > > //// test -00:01:06 v #1638 > > //// timeout=90000 -00:01:06 v #1639 > > -00:01:06 v #1640 > > inl binary_search_semi_open_1 arr target left right = -00:01:06 v #1641 > > inl rec body left right = -00:01:06 v #1642 > > if left >= right -00:01:06 v #1643 > > then None -00:01:06 v #1644 > > else -00:01:06 v #1645 > > inl mid = (left + right) / 2 -00:01:06 v #1646 > > inl item = index arr mid -00:01:06 v #1647 > > if item = target -00:01:06 v #1648 > > then Some mid -00:01:06 v #1649 > > elif item < target -00:01:06 v #1650 > > then loop (mid + 1) right -00:01:06 v #1651 > > else loop left mid -00:01:06 v #1652 > > and inl loop left right = -00:01:06 v #1653 > > if var_is right |> not -00:01:06 v #1654 > > then body left right -00:01:06 v #1655 > > else -00:01:06 v #1656 > > inl left = dyn left -00:01:06 v #1657 > > join body left right -00:01:06 v #1658 > > loop left right -00:01:06 v #1659 > > -00:01:06 v #1660 > > inl binary_search_closed_1 arr target left right = -00:01:06 v #1661 > > inl rec body left right = -00:01:06 v #1662 > > if left > right -00:01:06 v #1663 > > then None -00:01:06 v #1664 > > else -00:01:06 v #1665 > > inl mid = (left + right) / 2 -00:01:06 v #1666 > > inl item = index arr mid -00:01:06 v #1667 > > if item = target -00:01:06 v #1668 > > then Some mid -00:01:06 v #1669 > > elif item < target -00:01:06 v #1670 > > then loop (mid + 1) right -00:01:06 v #1671 > > else loop left (mid - 1) -00:01:06 v #1672 > > and inl loop left right = -00:01:06 v #1673 > > if var_is right |> not -00:01:06 v #1674 > > then body left right -00:01:06 v #1675 > > else -00:01:06 v #1676 > > inl left = dyn left -00:01:06 v #1677 > > join body left right -00:01:06 v #1678 > > loop left right -00:01:06 v #1679 > > -00:01:06 v #1680 > > inl binary_search_semi_open_2 arr target left right = -00:01:06 v #1681 > > let rec body left right = -00:01:06 v #1682 > > if left >= right -00:01:06 v #1683 > > then None -00:01:06 v #1684 > > else -00:01:06 v #1685 > > inl mid = (left + right) / 2 -00:01:06 v #1686 > > inl item = index arr mid -00:01:06 v #1687 > > if item = target -00:01:06 v #1688 > > then Some mid -00:01:06 v #1689 > > elif item < target -00:01:06 v #1690 > > then loop (mid + 1) right -00:01:06 v #1691 > > else loop left mid -00:01:06 v #1692 > > and inl loop left right = body left right -00:01:06 v #1693 > > loop left right -00:01:06 v #1694 > > -00:01:06 v #1695 > > inl binary_search_closed_2 arr target left right = -00:01:06 v #1696 > > let rec body left right = -00:01:06 v #1697 > > if left > right -00:01:06 v #1698 > > then None -00:01:06 v #1699 > > else -00:01:06 v #1700 > > inl mid = (left + right) / 2 -00:01:06 v #1701 > > inl item = index arr mid -00:01:06 v #1702 > > if item = target -00:01:06 v #1703 > > then Some mid -00:01:06 v #1704 > > elif item < target -00:01:06 v #1705 > > then loop (mid + 1) right -00:01:06 v #1706 > > else loop left (mid - 1) -00:01:06 v #1707 > > and inl loop left right = body left right -00:01:06 v #1708 > > loop left right -00:01:06 v #1709 > > -00:01:06 v #1710 > > inl get_solutions () = -00:01:06 v #1711 > > [[ -00:01:06 v #1712 > > "semi_open_1", -00:01:06 v #1713 > > fun (arr, (target, len)) => -00:01:06 v #1714 > > binary_search_semi_open_1 arr target 0 len -00:01:06 v #1715 > > -00:01:06 v #1716 > > "closed_1", -00:01:06 v #1717 > > fun (arr, (target, len)) => -00:01:06 v #1718 > > binary_search_closed_1 arr target 0 (len - 1) -00:01:06 v #1719 > > -00:01:06 v #1720 > > "semi_open_2", -00:01:06 v #1721 > > fun (arr, (target, len)) => -00:01:06 v #1722 > > binary_search_semi_open_2 arr target 0 len -00:01:06 v #1723 > > -00:01:06 v #1724 > > "closed_2", -00:01:06 v #1725 > > fun (arr, (target, len)) => -00:01:06 v #1726 > > binary_search_closed_2 arr target 0 (len - 1) -00:01:06 v #1727 > > ]] -00:01:06 v #1728 > > -00:01:06 v #1729 > > inl rec binary_search_tests () = -00:01:06 v #1730 > > inl arr_with_len target len arr = -00:01:06 v #1731 > > arr, (target, (len |> optionm'.default_with fun () => length arr)) -00:01:06 v #1732 > > -00:01:06 v #1733 > > inl test_cases = [[ -00:01:06 v #1734 > > (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 6 None), (Some 3i32) -00:01:06 v #1735 > > (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 1 None), (Some 0i32) -00:01:06 v #1736 > > (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 11 None), (Some 6i32) -00:01:06 v #1737 > > (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 12 None), None -00:01:06 v #1738 > > ((am'.init_series 1i32 1000 1 |> fun x => a x : _ int _) |> arr_with_len -00:01:06 v #1739 > > 60 None), (Some 59) -00:01:06 v #1740 > > -00:01:06 v #1741 > > (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 6 (Some 7)), (Some -00:01:06 v #1742 > > 3i32) -00:01:06 v #1743 > > (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 1 (Some 7)), (Some -00:01:06 v #1744 > > 0i32) -00:01:06 v #1745 > > (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 11 (Some 7)), (Some -00:01:06 v #1746 > > 6i32) -00:01:06 v #1747 > > (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 12 (Some 7)), None -00:01:06 v #1748 > > ((am'.init_series 1i32 1000 1 |> fun x => a x : _ int _) |> arr_with_len -00:01:06 v #1749 > > 60 (Some 100)), (Some 59) -00:01:06 v #1750 > > ]] -00:01:06 v #1751 > > -00:01:06 v #1752 > > inl solutions = get_solutions () -00:01:06 v #1753 > > -00:01:06 v #1754 > > // inl is_fast () = true -00:01:06 v #1755 > > -00:01:06 v #1756 > > inl count = -00:01:06 v #1757 > > if is_fast () -00:01:06 v #1758 > > then 1000i32 -00:01:06 v #1759 > > else 10000000i32 -00:01:06 v #1760 > > -00:01:06 v #1761 > > run_all (reflection.nameof { binary_search_tests }) count solutions -00:01:06 v #1762 > > test_cases -00:01:06 v #1763 > > |> sort_result_list -00:01:06 v #1764 > > -00:01:06 v #1765 > > -00:01:06 v #1766 > > let main () = -00:01:06 v #1767 > > binary_search_tests () -00:01:36 v #1768 > > -00:01:36 v #1769 > > ── [ 30.41s - stdout ] ───────────────────────────────────────────────────────── -00:01:36 v #1770 > > │ -00:01:36 v #1771 > > │ ``` -00:01:36 v #1772 > > │ 00:00:00 v #1 benchmark.run_all / { test_name = -00:01:36 v #1773 > > binary_search_tests; count = 10000000 } -00:01:36 v #1774 > > │ -00:01:36 v #1775 > > │ 00:00:00 v #2 benchmark.run / { input_str = struct ([|1; -00:01:36 v #1776 > > 3; 4; 6; 8; 9; 11|], 6, 7) } -00:01:36 v #1777 > > │ 00:00:00 v #3 benchmark.run / solutions.map / { i = 1; -00:01:36 v #1778 > > test_name = semi_open_1; time = 635 } -00:01:36 v #1779 > > │ 00:00:01 v #4 benchmark.run / solutions.map / { i = 2; -00:01:36 v #1780 > > test_name = closed_1; time = 530 } -00:01:36 v #1781 > > │ 00:00:02 v #5 benchmark.run / solutions.map / { i = 3; -00:01:36 v #1782 > > test_name = semi_open_2; time = 580 } -00:01:36 v #1783 > > │ 00:00:03 v #6 benchmark.run / solutions.map / { i = 4; -00:01:36 v #1784 > > test_name = closed_2; time = 546 } -00:01:36 v #1785 > > │ -00:01:36 v #1786 > > │ 00:00:03 v #7 benchmark.run / { input_str = struct ([|1; -00:01:36 v #1787 > > 3; 4; 6; 8; 9; 11|], 1, 7) } -00:01:36 v #1788 > > │ 00:00:04 v #8 benchmark.run / solutions.map / { i = 1; -00:01:36 v #1789 > > test_name = semi_open_1; time = 609 } -00:01:36 v #1790 > > │ 00:00:04 v #9 benchmark.run / solutions.map / { i = 2; -00:01:36 v #1791 > > test_name = closed_1; time = 474 } -00:01:36 v #1792 > > │ 00:00:05 v #10 benchmark.run / solutions.map / { i = 3; -00:01:36 v #1793 > > test_name = semi_open_2; time = 479 } -00:01:36 v #1794 > > │ 00:00:06 v #11 benchmark.run / solutions.map / { i = 4; -00:01:36 v #1795 > > test_name = closed_2; time = 479 } -00:01:36 v #1796 > > │ -00:01:36 v #1797 > > │ 00:00:06 v #12 benchmark.run / { input_str = struct -00:01:36 v #1798 > > ([|1; 3; 4; 6; 8; 9; 11|], 11, 7) } -00:01:36 v #1799 > > │ 00:00:06 v #13 benchmark.run / solutions.map / { i = 1; -00:01:36 v #1800 > > test_name = semi_open_1; time = 486 } -00:01:36 v #1801 > > │ 00:00:07 v #14 benchmark.run / solutions.map / { i = 2; -00:01:36 v #1802 > > test_name = closed_1; time = 478 } -00:01:36 v #1803 > > │ 00:00:08 v #15 benchmark.run / solutions.map / { i = 3; -00:01:36 v #1804 > > test_name = semi_open_2; time = 477 } -00:01:36 v #1805 > > │ 00:00:08 v #16 benchmark.run / solutions.map / { i = 4; -00:01:36 v #1806 > > test_name = closed_2; time = 488 } -00:01:36 v #1807 > > │ -00:01:36 v #1808 > > │ 00:00:08 v #17 benchmark.run / { input_str = struct -00:01:36 v #1809 > > ([|1; 3; 4; 6; 8; 9; 11|], 12, 7) } -00:01:36 v #1810 > > │ 00:00:09 v #18 benchmark.run / solutions.map / { i = 1; -00:01:36 v #1811 > > test_name = semi_open_1; time = 480 } -00:01:36 v #1812 > > │ 00:00:10 v #19 benchmark.run / solutions.map / { i = 2; -00:01:36 v #1813 > > test_name = closed_1; time = 484 } -00:01:36 v #1814 > > │ 00:00:11 v #20 benchmark.run / solutions.map / { i = 3; -00:01:36 v #1815 > > test_name = semi_open_2; time = 489 } -00:01:36 v #1816 > > │ 00:00:11 v #21 benchmark.run / solutions.map / { i = 4; -00:01:36 v #1817 > > test_name = closed_2; time = 484 } -00:01:36 v #1818 > > │ -00:01:36 v #1819 > > │ 00:00:11 v #22 benchmark.run / { input_str = struct -00:01:36 v #1820 > > ([|1; 2; 3; 4...00; ...|], 60, 1000) } -00:01:36 v #1821 > > │ 00:00:12 v #23 benchmark.run / solutions.map / { i = 1; -00:01:36 v #1822 > > test_name = semi_open_1; time = 512 } -00:01:36 v #1823 > > │ 00:00:13 v #24 benchmark.run / solutions.map / { i = 2; -00:01:36 v #1824 > > test_name = closed_1; time = 526 } -00:01:36 v #1825 > > │ 00:00:14 v #25 benchmark.run / solutions.map / { i = 3; -00:01:36 v #1826 > > test_name = semi_open_2; time = 513 } -00:01:36 v #1827 > > │ 00:00:14 v #26 benchmark.run / solutions.map / { i = 4; -00:01:36 v #1828 > > test_name = closed_2; time = 520 } -00:01:36 v #1829 > > │ -00:01:36 v #1830 > > │ 00:00:14 v #27 benchmark.run / { input_str = struct -00:01:36 v #1831 > > ([|1; 3; 4; 6; 8; 9; 11|], 6, 7) } -00:01:36 v #1832 > > │ 00:00:15 v #28 benchmark.run / solutions.map / { i = 1; -00:01:36 v #1833 > > test_name = semi_open_1; time = 459 } -00:01:36 v #1834 > > │ 00:00:16 v #29 benchmark.run / solutions.map / { i = 2; -00:01:36 v #1835 > > test_name = closed_1; time = 463 } -00:01:36 v #1836 > > │ 00:00:16 v #30 benchmark.run / solutions.map / { i = 3; -00:01:36 v #1837 > > test_name = semi_open_2; time = 465 } -00:01:36 v #1838 > > │ 00:00:17 v #31 benchmark.run / solutions.map / { i = 4; -00:01:36 v #1839 > > test_name = closed_2; time = 458 } -00:01:36 v #1840 > > │ -00:01:36 v #1841 > > │ 00:00:17 v #32 benchmark.run / { input_str = struct -00:01:36 v #1842 > > ([|1; 3; 4; 6; 8; 9; 11|], 1, 7) } -00:01:36 v #1843 > > │ 00:00:18 v #33 benchmark.run / solutions.map / { i = 1; -00:01:36 v #1844 > > test_name = semi_open_1; time = 477 } -00:01:36 v #1845 > > │ 00:00:18 v #34 benchmark.run / solutions.map / { i = 2; -00:01:36 v #1846 > > test_name = closed_1; time = 479 } -00:01:36 v #1847 > > │ 00:00:19 v #35 benchmark.run / solutions.map / { i = 3; -00:01:36 v #1848 > > test_name = semi_open_2; time = 476 } -00:01:36 v #1849 > > │ 00:00:20 v #36 benchmark.run / solutions.map / { i = 4; -00:01:36 v #1850 > > test_name = closed_2; time = 479 } -00:01:36 v #1851 > > │ -00:01:36 v #1852 > > │ 00:00:20 v #37 benchmark.run / { input_str = struct -00:01:36 v #1853 > > ([|1; 3; 4; 6; 8; 9; 11|], 11, 7) } -00:01:36 v #1854 > > │ 00:00:21 v #38 benchmark.run / solutions.map / { i = 1; -00:01:36 v #1855 > > test_name = semi_open_1; time = 488 } -00:01:36 v #1856 > > │ 00:00:21 v #39 benchmark.run / solutions.map / { i = 2; -00:01:36 v #1857 > > test_name = closed_1; time = 482 } -00:01:36 v #1858 > > │ 00:00:22 v #40 benchmark.run / solutions.map / { i = 3; -00:01:36 v #1859 > > test_name = semi_open_2; time = 476 } -00:01:36 v #1860 > > │ 00:00:23 v #41 benchmark.run / solutions.map / { i = 4; -00:01:36 v #1861 > > test_name = closed_2; time = 486 } -00:01:36 v #1862 > > │ -00:01:36 v #1863 > > │ 00:00:23 v #42 benchmark.run / { input_str = struct -00:01:36 v #1864 > > ([|1; 3; 4; 6; 8; 9; 11|], 12, 7) } -00:01:36 v #1865 > > │ 00:00:23 v #43 benchmark.run / solutions.map / { i = 1; -00:01:36 v #1866 > > test_name = semi_open_1; time = 492 } -00:01:36 v #1867 > > │ 00:00:24 v #44 benchmark.run / solutions.map / { i = 2; -00:01:36 v #1868 > > test_name = closed_1; time = 493 } -00:01:36 v #1869 > > │ 00:00:25 v #45 benchmark.run / solutions.map / { i = 3; -00:01:36 v #1870 > > test_name = semi_open_2; time = 488 } -00:01:36 v #1871 > > │ 00:00:25 v #46 benchmark.run / solutions.map / { i = 4; -00:01:36 v #1872 > > test_name = closed_2; time = 492 } -00:01:36 v #1873 > > │ -00:01:36 v #1874 > > │ 00:00:25 v #47 benchmark.run / { input_str = struct -00:01:36 v #1875 > > ([|1; 2; 3; 4...100; ...|], 60, 100) } -00:01:36 v #1876 > > │ 00:00:26 v #48 benchmark.run / solutions.map / { i = 1; -00:01:36 v #1877 > > test_name = semi_open_1; time = 495 } -00:01:36 v #1878 > > │ 00:00:27 v #49 benchmark.run / solutions.map / { i = 2; -00:01:36 v #1879 > > test_name = closed_1; time = 507 } -00:01:36 v #1880 > > │ 00:00:28 v #50 benchmark.run / solutions.map / { i = 3; -00:01:36 v #1881 > > test_name = semi_open_2; time = 480 } -00:01:36 v #1882 > > │ 00:00:28 v #51 benchmark.run / solutions.map / { i = 4; -00:01:36 v #1883 > > test_name = closed_2; time = 479 } -00:01:36 v #1884 > > │ ``` -00:01:36 v #1885 > > │ input | expected | result | -00:01:36 v #1886 > > best -00:01:36 v #1887 > > │ --- | --- | --- | -00:01:36 v #1888 > > --- -00:01:36 v #1889 > > │ struct ([1; 3; 4; 6; 8; 9; 11], 6, 7) | US6_0 3 | US6_0 3 | -00:01:36 v #1890 > > 2, 530 -00:01:36 v #1891 > > │ struct ([1; 3; 4; 6; 8; 9; 11], 1, 7) | US6_0 0 | US6_0 0 | -00:01:36 v #1892 > > 2, 474 -00:01:36 v #1893 > > │ struct ([1; 3; 4; 6; 8; 9; 11], 11, 7) | US6_0 6 | US6_0 6 | -00:01:36 v #1894 > > 3, 477 -00:01:36 v #1895 > > │ struct ([1; 3; 4; 6; 8; 9; 11], 12, 7) | US6_1 | US6_1 | -00:01:36 v #1896 > > 1, 480 -00:01:36 v #1897 > > │ struct ([1; 2; 3; 4...00; ...], 60, 1000) | US6_0 59 | US6_0 59 | -00:01:36 v #1898 > > 1, 512 -00:01:36 v #1899 > > │ struct ([1; 3; 4; 6; 8; 9; 11], 6, 7) | US6_0 3 | US6_0 3 | -00:01:36 v #1900 > > 4, 458 -00:01:36 v #1901 > > │ struct ([1; 3; 4; 6; 8; 9; 11], 1, 7) | US6_0 0 | US6_0 0 | -00:01:36 v #1902 > > 3, 476 -00:01:36 v #1903 > > │ struct ([1; 3; 4; 6; 8; 9; 11], 11, 7) | US6_0 6 | US6_0 6 | -00:01:36 v #1904 > > 3, 476 -00:01:36 v #1905 > > │ struct ([1; 3; 4; 6; 8; 9; 11], 12, 7) | US6_1 | US6_1 | -00:01:36 v #1906 > > 3, 488 -00:01:36 v #1907 > > │ struct ([1; 2; 3; 4...100; ...], 60, 100) | US6_0 59 | US6_0 59 | -00:01:36 v #1908 > > 4, 479 -00:01:36 v #1909 > > │ ``` -00:01:36 v #1910 > > │ 00:00:28 v #52 benchmark.sort_result_list -00:01:36 v #1911 > > averages.iter / { i = 2; avg = 491 } -00:01:36 v #1912 > > │ 00:00:28 v #53 benchmark.sort_result_list -00:01:36 v #1913 > > averages.iter / { i = 4; avg = 491 } -00:01:36 v #1914 > > │ 00:00:28 v #54 benchmark.sort_result_list -00:01:36 v #1915 > > averages.iter / { i = 3; avg = 492 } -00:01:36 v #1916 > > │ 00:00:28 v #55 benchmark.sort_result_list -00:01:36 v #1917 > > averages.iter / { i = 1; avg = 513 } -00:01:36 v #1918 > > │ ``` -00:01:36 v #1919 > > │ -00:01:36 v #1920 > > -00:01:36 v #1921 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:01:36 v #1922 > > │ ## returnLettersWithOddCountTests -00:01:36 v #1923 > > -00:01:36 v #1924 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:01:36 v #1925 > > │ Test: ReturnLettersWithOddCount -00:01:36 v #1926 > > │ -00:01:36 v #1927 > > │ Solution: 1 -00:01:36 v #1928 > > │ Test case 1. A. Time: 645L -00:01:36 v #1929 > > │ -00:01:36 v #1930 > > │ Solution: 2 -00:01:36 v #1931 > > │ Test case 1. A. Time: 663L -00:01:36 v #1932 > > │ -00:01:36 v #1933 > > │ Solution: 3 -00:01:36 v #1934 > > │ Test case 1. A. Time: 680L -00:01:36 v #1935 > > │ -00:01:36 v #1936 > > │ Solution: 9 -00:01:36 v #1937 > > │ Test case 1. A. Time: 730L -00:01:36 v #1938 > > │ -00:01:36 v #1939 > > │ Solution: 10 -00:01:36 v #1940 > > │ Test case 1. A. Time: 815L -00:01:36 v #1941 > > │ -00:01:36 v #1942 > > │ Input | Expected | Result | Best -00:01:36 v #1943 > > │ --- | --- | --- | --- -00:01:36 v #1944 > > │ 1 | a | a | (1, 645) -00:01:36 v #1945 > > │ 2 | ba | ba | (1, 663) -00:01:36 v #1946 > > │ 3 | aaa | aaa | (1, 680) -00:01:36 v #1947 > > │ 9 | aaaaaaaaa | aaaaaaaaa | (1, 730) -00:01:36 v #1948 > > │ 10 | baaaaaaaaa | baaaaaaaaa | (1, 815) -00:01:36 v #1949 > > │ -00:01:36 v #1950 > > │ Averages -00:01:36 v #1951 > > │ Test case 1. Average Time: 706L -00:01:36 v #1952 > > │ -00:01:36 v #1953 > > │ Ranking -00:01:36 v #1954 > > │ Test case 1. Average Time: 706L -00:01:36 v #1955 > > -00:01:36 v #1956 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:01:36 v #1957 > > //// test -00:01:36 v #1958 > > -00:01:36 v #1959 > > let solutions = [[ -00:01:36 v #1960 > > "A", -00:01:36 v #1961 > > fun n -> -00:01:36 v #1962 > > let mutable _builder = StringBuilder (new string('a', n)) -00:01:36 v #1963 > > if n % 2 = 0 then -00:01:36 v #1964 > > _builder.[[0]] <- 'b' -00:01:36 v #1965 > > -00:01:36 v #1966 > > _builder.ToString () -00:01:36 v #1967 > > ]] -00:01:36 v #1968 > > let testCases = seq { -00:01:36 v #1969 > > 1, "a" -00:01:36 v #1970 > > 2, "ba" -00:01:36 v #1971 > > 3, "aaa" -00:01:36 v #1972 > > 9, "aaaaaaaaa" -00:01:36 v #1973 > > 10, "baaaaaaaaa" -00:01:36 v #1974 > > } -00:01:36 v #1975 > > let rec returnLettersWithOddCountTests = -00:01:36 v #1976 > > runAll (nameof returnLettersWithOddCountTests) _count solutions testCases -00:01:36 v #1977 > > returnLettersWithOddCountTests -00:01:36 v #1978 > > |> sortResultList -00:01:37 v #1979 > > -00:01:37 v #1980 > > ── [ 1.01s - stdout ] ────────────────────────────────────────────────────────── -00:01:37 v #1981 > > │ -00:01:37 v #1982 > > │ -00:01:37 v #1983 > > │ Test: returnLettersWithOddCountTests -00:01:37 v #1984 > > │ -00:01:37 v #1985 > > │ Solution: 1 -00:01:37 v #1986 > > │ Test case 1. A. Time: 0L -00:01:37 v #1987 > > │ -00:01:37 v #1988 > > │ Solution: 2 -00:01:37 v #1989 > > │ Test case 1. A. Time: 0L -00:01:37 v #1990 > > │ -00:01:37 v #1991 > > │ Solution: 3 -00:01:37 v #1992 > > │ Test case 1. A. Time: 0L -00:01:37 v #1993 > > │ -00:01:37 v #1994 > > │ Solution: 9 -00:01:37 v #1995 > > │ Test case 1. A. Time: 0L -00:01:37 v #1996 > > │ -00:01:37 v #1997 > > │ Solution: 10 -00:01:37 v #1998 > > │ Test case 1. A. Time: 1L -00:01:37 v #1999 > > │ -00:01:37 v #2000 > > │ Input | Expected | Result | Best -00:01:37 v #2001 > > │ --- | --- | --- | --- -00:01:37 v #2002 > > │ 1 | a | a | (1, 0) -00:01:37 v #2003 > > │ 2 | ba | ba | (1, 0) -00:01:37 v #2004 > > │ 3 | aaa | aaa | (1, 0) -00:01:37 v #2005 > > │ 9 | aaaaaaaaa | aaaaaaaaa | (1, 0) -00:01:37 v #2006 > > │ 10 | baaaaaaaaa | baaaaaaaaa | (1, 1) -00:01:37 v #2007 > > │ -00:01:37 v #2008 > > │ Average Ranking -00:01:37 v #2009 > > │ Test case 1. Average Time: 0L -00:01:37 v #2010 > > │ -00:01:37 v #2011 > > -00:01:37 v #2012 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:01:37 v #2013 > > │ ## hasAnyPairCloseToEachotherTests -00:01:37 v #2014 > > -00:01:37 v #2015 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:01:37 v #2016 > > │ Test: HasAnyPairCloseToEachother -00:01:37 v #2017 > > │ -00:01:37 v #2018 > > │ Solution: 0 -00:01:37 v #2019 > > │ Test case 1. A. Time: 137L -00:01:37 v #2020 > > │ -00:01:37 v #2021 > > │ Solution: 1,2 -00:01:37 v #2022 > > │ Test case 1. A. Time: 186L -00:01:37 v #2023 > > │ -00:01:37 v #2024 > > │ Solution: 3,5 -00:01:37 v #2025 > > │ Test case 1. A. Time: 206L -00:01:37 v #2026 > > │ -00:01:37 v #2027 > > │ Solution: 3,4,6 -00:01:37 v #2028 > > │ Test case 1. A. Time: 149L -00:01:37 v #2029 > > │ -00:01:37 v #2030 > > │ Solution: 2,4,6 -00:01:37 v #2031 > > │ Test case 1. A. Time: 150L -00:01:37 v #2032 > > │ -00:01:37 v #2033 > > │ Input | Expected | Result | Best -00:01:37 v #2034 > > │ --- | --- | --- | --- -00:01:37 v #2035 > > │ 0 | False | False | (1, 137) -00:01:37 v #2036 > > │ 1,2 | True | True | (1, 186) -00:01:37 v #2037 > > │ 3,5 | False | False | (1, 206) -00:01:37 v #2038 > > │ 3,4,6 | True | True | (1, 149) -00:01:37 v #2039 > > │ 2,4,6 | False | False | (1, 150) -00:01:37 v #2040 > > │ -00:01:37 v #2041 > > │ Averages -00:01:37 v #2042 > > │ Test case 1. Average Time: 165L -00:01:37 v #2043 > > │ -00:01:37 v #2044 > > │ Ranking -00:01:37 v #2045 > > │ Test case 1. Average Time: 165L -00:01:37 v #2046 > > -00:01:37 v #2047 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:01:37 v #2048 > > //// test -00:01:37 v #2049 > > -00:01:37 v #2050 > > let solutions = [[ -00:01:37 v #2051 > > "A", -00:01:37 v #2052 > > fun (a: int[[]]) -> -00:01:37 v #2053 > > let indices = System.Linq.Enumerable.Range(0, a.Length) |> -00:01:37 v #2054 > > System.Linq.Enumerable.ToArray -00:01:37 v #2055 > > System.Array.Sort (a, indices) -00:01:37 v #2056 > > -00:01:37 v #2057 > > indices -00:01:37 v #2058 > > |> Array.take (a.Length - 1) -00:01:37 v #2059 > > |> Array.exists (fun i -> a.[[i + 1]] - a.[[i]] = 1) -00:01:37 v #2060 > > ]] -00:01:37 v #2061 > > let testCases = seq { -00:01:37 v #2062 > > [[| 0 |]], false -00:01:37 v #2063 > > [[| 1; 2 |]], true -00:01:37 v #2064 > > [[| 3; 5 |]], false -00:01:37 v #2065 > > [[| 3; 4; 6 |]], true -00:01:37 v #2066 > > [[| 2; 4; 6 |]], false -00:01:37 v #2067 > > } -00:01:37 v #2068 > > let rec hasAnyPairCloseToEachotherTests = -00:01:37 v #2069 > > runAll (nameof hasAnyPairCloseToEachotherTests) _count solutions testCases -00:01:37 v #2070 > > hasAnyPairCloseToEachotherTests -00:01:37 v #2071 > > |> sortResultList -00:01:38 v #2072 > > -00:01:38 v #2073 > > ── [ 1.02s - stdout ] ────────────────────────────────────────────────────────── -00:01:38 v #2074 > > │ -00:01:38 v #2075 > > │ -00:01:38 v #2076 > > │ Test: hasAnyPairCloseToEachotherTests -00:01:38 v #2077 > > │ -00:01:38 v #2078 > > │ Solution: 0 -00:01:38 v #2079 > > │ Test case 1. A. Time: 2L -00:01:38 v #2080 > > │ -00:01:38 v #2081 > > │ Solution: 1,2 -00:01:38 v #2082 > > │ Test case 1. A. Time: 0L -00:01:38 v #2083 > > │ -00:01:38 v #2084 > > │ Solution: 3,5 -00:01:38 v #2085 > > │ Test case 1. A. Time: 0L -00:01:38 v #2086 > > │ -00:01:38 v #2087 > > │ Solution: 3,4,6 -00:01:38 v #2088 > > │ Test case 1. A. Time: 0L -00:01:38 v #2089 > > │ -00:01:38 v #2090 > > │ Solution: 2,4,6 -00:01:38 v #2091 > > │ Test case 1. A. Time: 0L -00:01:38 v #2092 > > │ -00:01:38 v #2093 > > │ Input | Expected | Result | Best -00:01:38 v #2094 > > │ --- | --- | --- | --- -00:01:38 v #2095 > > │ 0 | False | False | (1, 2) -00:01:38 v #2096 > > │ 1,2 | True | True | (1, 0) -00:01:38 v #2097 > > │ 3,5 | False | False | (1, 0) -00:01:38 v #2098 > > │ 3,4,6 | True | True | (1, 0) -00:01:38 v #2099 > > │ 2,4,6 | False | False | (1, 0) -00:01:38 v #2100 > > │ -00:01:38 v #2101 > > │ Average Ranking -00:01:38 v #2102 > > │ Test case 1. Average Time: 0L -00:01:38 v #2103 > > │ -00:01:39 v #2104 > 00:01:37 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 84685 } -00:01:39 v #2105 > 00:01:37 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/apps/perf/Perf.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/apps/perf/Perf.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:01:40 v #2106 > 00:01:38 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/apps/perf/Perf.dib.ipynb to html -00:01:40 v #2107 > 00:01:38 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. -00:01:40 v #2108 > 00:01:38 v #7 ! validate(nb) -00:01:41 v #2109 > 00:01:39 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 -00:01:41 v #2110 > 00:01:39 v #9 ! return _pygments_highlight( -00:01:42 v #2111 > 00:01:40 v #10 ! [NbConvertApp] Writing 458079 bytes to c:\home\git\polyglot\apps\perf\Perf.dib.html -00:01:42 v #2112 > 00:01:40 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 848 } -00:01:42 v #2113 > 00:01:40 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 848 } -00:01:42 v #2114 > 00:01:40 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/apps/perf/Perf.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/apps/perf/Perf.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:01:42 v #2115 > 00:01:40 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } -00:01:42 v #2116 > 00:01:40 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } -00:01:42 v #2117 > 00:01:40 d #16 spiral.run / dib / { exit_code = 0; result_length = 85592 } -00:01:42 d #2118 runtime.execute_with_options_async / { exit_code = 0; output_length = 92289 } -00:01:42 d #3 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path Perf.dib --retries 3 -00:01:42 v #5 async.run_with_timeout_async / { timeout = 100 } +00:00:01 d #1 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path Perf.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path Perf.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } +00:00:01 v #2 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "Perf.dib", "--retries", "3"])) } +00:00:01 v #3 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/apps/perf/Perf.dib", "--output-path", "c:/home/git/polyglot/apps/perf/Perf.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/apps/perf/Perf.dib" --output-path "c:/home/git/polyglot/apps/perf/Perf.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } +00:00:03 v #4 > > +00:00:03 v #5 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:03 v #6 > > │ # Perf (Polyglot) +00:00:25 v #7 > > +00:00:25 v #8 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:25 v #9 > > //// test +00:00:25 v #10 > > +00:00:25 v #11 > > open testing +00:00:25 v #12 > > open benchmark +00:00:27 v #13 > > +00:00:27 v #14 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:27 v #15 > > #if !INTERACTIVE +00:00:27 v #16 > > open Lib +00:00:27 v #17 > > #endif +00:00:27 v #18 > > +00:00:27 v #19 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:27 v #20 > > │ ## TestCaseResult +00:00:27 v #21 > > +00:00:27 v #22 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:27 v #23 > > type TestCaseResult = +00:00:27 v #24 > > { +00:00:27 v #25 > > Input: string +00:00:27 v #26 > > Expected: string +00:00:27 v #27 > > Result: string +00:00:27 v #28 > > TimeList: int64 list +00:00:27 v #29 > > } +00:00:27 v #30 > > +00:00:27 v #31 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:27 v #32 > > │ ## run +00:00:27 v #33 > > +00:00:27 v #34 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:27 v #35 > > let run count (solutions: (string * ('TInput -> 'TExpected)) list) (input, +00:00:27 v #36 > > expected) = +00:00:27 v #37 > > let inputStr = +00:00:27 v #38 > > match box input with +00:00:27 v #39 > > | :? System.Collections.ICollection as input -> +00:00:27 v #40 > > System.Linq.Enumerable.Cast<obj> input +00:00:27 v #41 > > |> Seq.map string +00:00:27 v #42 > > |> SpiralSm.concat "," +00:00:27 v #43 > > | _ -> input.ToString () +00:00:27 v #44 > > +00:00:27 v #45 > > printfn "" +00:00:27 v #46 > > printfn $"Solution: {inputStr} " +00:00:27 v #47 > > +00:00:27 v #48 > > let performanceInvoke (fn: unit -> 'T) = +00:00:27 v #49 > > GC.Collect () +00:00:27 v #50 > > let stopwatch = System.Diagnostics.Stopwatch () +00:00:27 v #51 > > stopwatch.Start () +00:00:27 v #52 > > let time1 = stopwatch.ElapsedMilliseconds +00:00:27 v #53 > > +00:00:27 v #54 > > let result = +00:00:27 v #55 > > [[| 0 .. count |]] +00:00:27 v #56 > > |> Array.Parallel.map (fun _ -> +00:00:27 v #57 > > fn () +00:00:27 v #58 > > ) +00:00:27 v #59 > > |> Array.last +00:00:27 v #60 > > +00:00:27 v #61 > > let time2 = stopwatch.ElapsedMilliseconds - time1 +00:00:27 v #62 > > +00:00:27 v #63 > > result, time2 +00:00:27 v #64 > > +00:00:27 v #65 > > let resultsWithTime = +00:00:27 v #66 > > solutions +00:00:27 v #67 > > |> List.mapi (fun i (testName, solution) -> +00:00:27 v #68 > > let result, time = performanceInvoke (fun () -> solution input) +00:00:27 v #69 > > printfn $"Test case %d{i + 1}. %s{testName}. Time: %A{time} " +00:00:27 v #70 > > result, time +00:00:27 v #71 > > ) +00:00:27 v #72 > > +00:00:27 v #73 > > +00:00:27 v #74 > > match resultsWithTime |> List.map fst with +00:00:27 v #75 > > | ([[]] | [[ _ ]]) -> () +00:00:27 v #76 > > | (head :: tail) when tail |> List.forall ((=) head) -> () +00:00:27 v #77 > > | results -> failwithf $"Challenge error: %A{results}" +00:00:27 v #78 > > +00:00:27 v #79 > > { +00:00:27 v #80 > > Input = inputStr +00:00:27 v #81 > > Expected = expected.ToString () +00:00:27 v #82 > > Result = resultsWithTime |> Seq.map fst |> Seq.head |> _.ToString() +00:00:27 v #83 > > TimeList = resultsWithTime |> List.map snd +00:00:27 v #84 > > } +00:00:27 v #85 > > +00:00:27 v #86 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:27 v #87 > > │ ## runAll +00:00:27 v #88 > > +00:00:27 v #89 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:27 v #90 > > let runAll testName count (solutions: (string * ('TInput -> 'TExpected)) list) +00:00:27 v #91 > > testCases = +00:00:27 v #92 > > printfn "" +00:00:27 v #93 > > printfn "" +00:00:27 v #94 > > printfn $"Test: {testName}" +00:00:27 v #95 > > testCases +00:00:27 v #96 > > |> Seq.map (run count solutions) +00:00:27 v #97 > > |> Seq.toList +00:00:27 v #98 > > +00:00:27 v #99 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:27 v #100 > > │ ## sortResultList +00:00:27 v #101 > > +00:00:27 v #102 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:27 v #103 > > let sortResultList resultList = +00:00:27 v #104 > > let table = +00:00:27 v #105 > > let rows = +00:00:27 v #106 > > resultList +00:00:27 v #107 > > |> List.map (fun result -> +00:00:27 v #108 > > let best = +00:00:27 v #109 > > result.TimeList +00:00:27 v #110 > > |> List.mapi (fun i time -> +00:00:27 v #111 > > i + 1, time +00:00:27 v #112 > > ) +00:00:27 v #113 > > |> List.sortBy snd +00:00:27 v #114 > > |> List.head +00:00:27 v #115 > > |> _.ToString() +00:00:27 v #116 > > let row = +00:00:27 v #117 > > [[ +00:00:27 v #118 > > result.Input +00:00:27 v #119 > > result.Expected +00:00:27 v #120 > > result.Result +00:00:27 v #121 > > best +00:00:27 v #122 > > ]] +00:00:27 v #123 > > let color = +00:00:27 v #124 > > match result.Expected = result.Result with +00:00:27 v #125 > > | true -> Some ConsoleColor.DarkGreen +00:00:27 v #126 > > | false -> Some ConsoleColor.DarkRed +00:00:27 v #127 > > row, color +00:00:27 v #128 > > ) +00:00:27 v #129 > > let header = +00:00:27 v #130 > > [[ +00:00:27 v #131 > > [[ +00:00:27 v #132 > > "Input" +00:00:27 v #133 > > "Expected" +00:00:27 v #134 > > "Result" +00:00:27 v #135 > > "Best" +00:00:27 v #136 > > ]] +00:00:27 v #137 > > [[ +00:00:27 v #138 > > "---" +00:00:27 v #139 > > "---" +00:00:27 v #140 > > "---" +00:00:27 v #141 > > "---" +00:00:27 v #142 > > ]] +00:00:27 v #143 > > ]] +00:00:27 v #144 > > |> List.map (fun row -> row, None) +00:00:27 v #145 > > header @ rows +00:00:27 v #146 > > +00:00:27 v #147 > > let formattedTable = +00:00:27 v #148 > > let lengthMap = +00:00:27 v #149 > > table +00:00:27 v #150 > > |> List.map fst +00:00:27 v #151 > > |> List.transpose +00:00:27 v #152 > > |> List.map (fun column -> +00:00:27 v #153 > > column +00:00:27 v #154 > > |> List.map String.length +00:00:27 v #155 > > |> List.sortDescending +00:00:27 v #156 > > |> List.tryHead +00:00:27 v #157 > > |> Option.defaultValue 0 +00:00:27 v #158 > > ) +00:00:27 v #159 > > |> List.indexed +00:00:27 v #160 > > |> Map.ofList +00:00:27 v #161 > > table +00:00:27 v #162 > > |> List.map (fun (row, color) -> +00:00:27 v #163 > > let newRow = +00:00:27 v #164 > > row +00:00:27 v #165 > > |> List.mapi (fun i cell -> +00:00:27 v #166 > > cell.PadRight lengthMap.[[i]] +00:00:27 v #167 > > ) +00:00:27 v #168 > > newRow, color +00:00:27 v #169 > > ) +00:00:27 v #170 > > +00:00:27 v #171 > > printfn "" +00:00:27 v #172 > > formattedTable +00:00:27 v #173 > > |> List.iter (fun (row, color) -> +00:00:27 v #174 > > match color with +00:00:27 v #175 > > | Some color -> Console.ForegroundColor <- color +00:00:27 v #176 > > | None -> Console.ResetColor () +00:00:27 v #177 > > +00:00:27 v #178 > > printfn "%s" (String.Join ("\t| ", row)) +00:00:27 v #179 > > +00:00:27 v #180 > > Console.ResetColor () +00:00:27 v #181 > > ) +00:00:27 v #182 > > +00:00:27 v #183 > > let averages = +00:00:27 v #184 > > resultList +00:00:27 v #185 > > |> List.map (fun result -> result.TimeList |> List.map float) +00:00:27 v #186 > > |> List.transpose +00:00:27 v #187 > > |> List.map List.average +00:00:27 v #188 > > |> List.map int64 +00:00:27 v #189 > > |> List.indexed +00:00:27 v #190 > > +00:00:27 v #191 > > printfn "" +00:00:27 v #192 > > printfn "Average Ranking " +00:00:27 v #193 > > averages +00:00:27 v #194 > > |> List.sortBy snd +00:00:27 v #195 > > |> List.iter (fun (i, avg) -> +00:00:27 v #196 > > printfn $"Test case %d{i + 1}. Average Time: %A{avg} " +00:00:27 v #197 > > ) +00:00:27 v #198 > > +00:00:27 v #199 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:27 v #200 > > let mutable _count = +00:00:27 v #201 > > if ("CI" |> System.Environment.GetEnvironmentVariable |> fun x -> $"%A{x}") +00:00:27 v #202 > > <> "<null>" +00:00:27 v #203 > > then 2000000 +00:00:27 v #204 > > else 2000 +00:00:27 v #205 > > +00:00:27 v #206 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:27 v #207 > > inl is_fast () = +00:00:27 v #208 > > false +00:00:27 v #209 > > +00:00:27 v #210 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:27 v #211 > > │ ## empty3Tests +00:00:27 v #212 > > +00:00:27 v #213 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:27 v #214 > > │ Test: Empty3 +00:00:27 v #215 > > │ +00:00:27 v #216 > > │ Solution: (a, a) +00:00:27 v #217 > > │ Test case 1. A. Time: 91L +00:00:27 v #218 > > │ +00:00:27 v #219 > > │ Solution: (a, a) +00:00:27 v #220 > > │ Test case 1. A. Time: 56L +00:00:27 v #221 > > │ +00:00:27 v #222 > > │ Input | Expected | Result | Best +00:00:27 v #223 > > │ --- | --- | --- | --- +00:00:27 v #224 > > │ (a, a) | a | a | (1, 91) +00:00:27 v #225 > > │ (a, a) | a | a | (1, 56) +00:00:27 v #226 > > │ +00:00:27 v #227 > > │ Averages +00:00:27 v #228 > > │ Test case 1. Average Time: 73L +00:00:27 v #229 > > │ +00:00:27 v #230 > > │ Ranking +00:00:27 v #231 > > │ Test case 1. Average Time: 73L +00:00:27 v #232 > > +00:00:27 v #233 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:27 v #234 > > //// test +00:00:27 v #235 > > +00:00:27 v #236 > > let solutions = [[ +00:00:27 v #237 > > "A", +00:00:27 v #238 > > fun (a, _b) -> +00:00:27 v #239 > > a +00:00:27 v #240 > > ]] +00:00:27 v #241 > > let testCases = seq { +00:00:27 v #242 > > ("a", "a"), "a" +00:00:27 v #243 > > ("a", "a"), "a" +00:00:27 v #244 > > } +00:00:27 v #245 > > let rec empty3Tests = runAll (nameof empty3Tests) _count solutions testCases +00:00:27 v #246 > > empty3Tests +00:00:27 v #247 > > |> sortResultList +00:00:28 v #248 > > +00:00:28 v #249 > > ── [ 705.10ms - stdout ] ─────────────────────────────────────────────────────── +00:00:28 v #250 > > │ +00:00:28 v #251 > > │ +00:00:28 v #252 > > │ Test: empty3Tests +00:00:28 v #253 > > │ +00:00:28 v #254 > > │ Solution: (a, a) +00:00:28 v #255 > > │ Test case 1. A. Time: 1L +00:00:28 v #256 > > │ +00:00:28 v #257 > > │ Solution: (a, a) +00:00:28 v #258 > > │ Test case 1. A. Time: 0L +00:00:28 v #259 > > │ +00:00:28 v #260 > > │ Input | Expected | Result | Best +00:00:28 v #261 > > │ --- | --- | --- | --- +00:00:28 v #262 > > │ (a, a) | a | a | (1, 1) +00:00:28 v #263 > > │ (a, a) | a | a | (1, 0) +00:00:28 v #264 > > │ +00:00:28 v #265 > > │ Average Ranking +00:00:28 v #266 > > │ Test case 1. Average Time: 0L +00:00:28 v #267 > > │ +00:00:28 v #268 > > +00:00:28 v #269 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:28 v #270 > > │ ## empty2Tests +00:00:28 v #271 > > +00:00:28 v #272 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:28 v #273 > > │ Test: Empty2 +00:00:28 v #274 > > │ +00:00:28 v #275 > > │ Solution: (a, a) +00:00:28 v #276 > > │ Test case 1. A. Time: 59L +00:00:28 v #277 > > │ +00:00:28 v #278 > > │ Solution: (a, a) +00:00:28 v #279 > > │ Test case 1. A. Time: 53L +00:00:28 v #280 > > │ +00:00:28 v #281 > > │ Input | Expected | Result | Best +00:00:28 v #282 > > │ --- | --- | --- | --- +00:00:28 v #283 > > │ (a, a) | a | a | (1, 59) +00:00:28 v #284 > > │ (a, a) | a | a | (1, 53) +00:00:28 v #285 > > │ +00:00:28 v #286 > > │ Averages +00:00:28 v #287 > > │ Test case 1. Average Time: 56L +00:00:28 v #288 > > │ +00:00:28 v #289 > > │ Ranking +00:00:28 v #290 > > │ Test case 1. Average Time: 56L +00:00:28 v #291 > > +00:00:28 v #292 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:28 v #293 > > //// test +00:00:28 v #294 > > +00:00:28 v #295 > > let solutions = [[ +00:00:28 v #296 > > "A", +00:00:28 v #297 > > fun (a, _b) -> +00:00:28 v #298 > > a +00:00:28 v #299 > > ]] +00:00:28 v #300 > > let testCases = seq { +00:00:28 v #301 > > ("a", "a"), "a" +00:00:28 v #302 > > ("a", "a"), "a" +00:00:28 v #303 > > } +00:00:28 v #304 > > let rec empty2Tests = runAll (nameof empty2Tests) _count solutions testCases +00:00:28 v #305 > > empty2Tests +00:00:28 v #306 > > |> sortResultList +00:00:29 v #307 > > +00:00:29 v #308 > > ── [ 705.26ms - stdout ] ─────────────────────────────────────────────────────── +00:00:29 v #309 > > │ +00:00:29 v #310 > > │ +00:00:29 v #311 > > │ Test: empty2Tests +00:00:29 v #312 > > │ +00:00:29 v #313 > > │ Solution: (a, a) +00:00:29 v #314 > > │ Test case 1. A. Time: 0L +00:00:29 v #315 > > │ +00:00:29 v #316 > > │ Solution: (a, a) +00:00:29 v #317 > > │ Test case 1. A. Time: 0L +00:00:29 v #318 > > │ +00:00:29 v #319 > > │ Input | Expected | Result | Best +00:00:29 v #320 > > │ --- | --- | --- | --- +00:00:29 v #321 > > │ (a, a) | a | a | (1, 0) +00:00:29 v #322 > > │ (a, a) | a | a | (1, 0) +00:00:29 v #323 > > │ +00:00:29 v #324 > > │ Average Ranking +00:00:29 v #325 > > │ Test case 1. Average Time: 0L +00:00:29 v #326 > > │ +00:00:29 v #327 > > +00:00:29 v #328 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:29 v #329 > > │ ## emptyTests +00:00:29 v #330 > > +00:00:29 v #331 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:29 v #332 > > │ Test: Empty +00:00:29 v #333 > > │ +00:00:29 v #334 > > │ Solution: 0 +00:00:29 v #335 > > │ Test case 1. A. Time: 61L +00:00:29 v #336 > > │ +00:00:29 v #337 > > │ Solution: 2 +00:00:29 v #338 > > │ Test case 1. A. Time: 62L +00:00:29 v #339 > > │ +00:00:29 v #340 > > │ Solution: 5 +00:00:29 v #341 > > │ Test case 1. A. Time: 70L +00:00:29 v #342 > > │ +00:00:29 v #343 > > │ Input | Expected | Result | Best +00:00:29 v #344 > > │ --- | --- | --- | --- +00:00:29 v #345 > > │ 0 | 0 | 0 | (1, 61) +00:00:29 v #346 > > │ 2 | 2 | 2 | (1, 62) +00:00:29 v #347 > > │ 5 | 5 | 5 | (1, 70) +00:00:29 v #348 > > │ +00:00:29 v #349 > > │ Averages +00:00:29 v #350 > > │ Test case 1. Average Time: 64L +00:00:29 v #351 > > │ +00:00:29 v #352 > > │ Ranking +00:00:29 v #353 > > │ Test case 1. Average Time: 64L +00:00:29 v #354 > > +00:00:29 v #355 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:29 v #356 > > //// test +00:00:29 v #357 > > +00:00:29 v #358 > > let solutions = [[ +00:00:29 v #359 > > "A", +00:00:29 v #360 > > fun n -> +00:00:29 v #361 > > n + 0 +00:00:29 v #362 > > ]] +00:00:29 v #363 > > let testCases = seq { +00:00:29 v #364 > > 0, 0 +00:00:29 v #365 > > 2, 2 +00:00:29 v #366 > > 5, 5 +00:00:29 v #367 > > } +00:00:29 v #368 > > let rec emptyTests = runAll (nameof emptyTests) _count solutions testCases +00:00:29 v #369 > > emptyTests +00:00:29 v #370 > > |> sortResultList +00:00:30 v #371 > > +00:00:30 v #372 > > ── [ 1.04s - stdout ] ────────────────────────────────────────────────────────── +00:00:30 v #373 > > │ +00:00:30 v #374 > > │ +00:00:30 v #375 > > │ Test: emptyTests +00:00:30 v #376 > > │ +00:00:30 v #377 > > │ Solution: 0 +00:00:30 v #378 > > │ Test case 1. A. Time: 1L +00:00:30 v #379 > > │ +00:00:30 v #380 > > │ Solution: 2 +00:00:30 v #381 > > │ Test case 1. A. Time: 0L +00:00:30 v #382 > > │ +00:00:30 v #383 > > │ Solution: 5 +00:00:30 v #384 > > │ Test case 1. A. Time: 0L +00:00:30 v #385 > > │ +00:00:30 v #386 > > │ Input | Expected | Result | Best +00:00:30 v #387 > > │ --- | --- | --- | --- +00:00:30 v #388 > > │ 0 | 0 | 0 | (1, 1) +00:00:30 v #389 > > │ 2 | 2 | 2 | (1, 0) +00:00:30 v #390 > > │ 5 | 5 | 5 | (1, 0) +00:00:30 v #391 > > │ +00:00:30 v #392 > > │ Average Ranking +00:00:30 v #393 > > │ Test case 1. Average Time: 0L +00:00:30 v #394 > > │ +00:00:30 v #395 > > +00:00:30 v #396 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:30 v #397 > > │ ## uniqueLettersTests +00:00:30 v #398 > > +00:00:30 v #399 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:30 v #400 > > │ Test: UniqueLetters +00:00:30 v #401 > > │ +00:00:30 v #402 > > │ Solution: abc +00:00:30 v #403 > > │ Test case 1. A. Time: 1512L +00:00:30 v #404 > > │ Test case 2. B. Time: 1947L +00:00:30 v #405 > > │ Test case 3. C. Time: 2023L +00:00:30 v #406 > > │ Test case 4. D. Time: 1358L +00:00:30 v #407 > > │ Test case 5. E. Time: 1321L +00:00:30 v #408 > > │ Test case 6. F. Time: 1346L +00:00:30 v #409 > > │ Test case 7. G. Time: 1304L +00:00:30 v #410 > > │ Test case 8. H. Time: 1383L +00:00:30 v #411 > > │ Test case 9. I. Time: 1495L +00:00:30 v #412 > > │ Test case 10. J. Time: 1245L +00:00:30 v #413 > > │ Test case 11. K. Time: 1219L +00:00:30 v #414 > > │ +00:00:30 v #415 > > │ Solution: accabb +00:00:30 v #416 > > │ Test case 1. A. Time: 1648L +00:00:30 v #417 > > │ Test case 2. B. Time: 2061L +00:00:30 v #418 > > │ Test case 3. C. Time: 2413L +00:00:30 v #419 > > │ Test case 4. D. Time: 1561L +00:00:30 v #420 > > │ Test case 5. E. Time: 1593L +00:00:30 v #421 > > │ Test case 6. F. Time: 1518L +00:00:30 v #422 > > │ Test case 7. G. Time: 1415L +00:00:30 v #423 > > │ Test case 8. H. Time: 1510L +00:00:30 v #424 > > │ Test case 9. I. Time: 1445L +00:00:30 v #425 > > │ Test case 10. J. Time: 1636L +00:00:30 v #426 > > │ Test case 11. K. Time: 1317L +00:00:30 v #427 > > │ +00:00:30 v #428 > > │ Solution: pprrqqpp +00:00:30 v #429 > > │ Test case 1. A. Time: 2255L +00:00:30 v #430 > > │ Test case 2. B. Time: 2408L +00:00:30 v #431 > > │ Test case 3. C. Time: 2393L +00:00:30 v #432 > > │ Test case 4. D. Time: 1675L +00:00:30 v #433 > > │ Test case 5. E. Time: 1911L +00:00:30 v #434 > > │ Test case 6. F. Time: 2126L +00:00:30 v #435 > > │ Test case 7. G. Time: 1504L +00:00:30 v #436 > > │ Test case 8. H. Time: 1715L +00:00:30 v #437 > > │ Test case 9. I. Time: 1537L +00:00:30 v #438 > > │ Test case 10. J. Time: 1522L +00:00:30 v #439 > > │ Test case 11. K. Time: 1322L +00:00:30 v #440 > > │ +00:00:30 v #441 > > │ Solution: +00:00:30 v #442 > > aaaaaaaaaaaaaaccccccabbbbbbbaaacccbbbaaccccccccccacbbbbbbbbbbbbbcccccccbbbbbbbb +00:00:30 v #443 > > │ Test case 1. A. Time: 13073L +00:00:30 v #444 > > │ Test case 2. B. Time: 11519L +00:00:30 v #445 > > │ Test case 3. C. Time: 8373L +00:00:30 v #446 > > │ Test case 4. D. Time: 5860L +00:00:30 v #447 > > │ Test case 5. E. Time: 6490L +00:00:30 v #448 > > │ Test case 6. F. Time: 6325L +00:00:30 v #449 > > │ Test case 7. G. Time: 5799L +00:00:30 v #450 > > │ Test case 8. H. Time: 7099L +00:00:30 v #451 > > │ Test case 9. I. Time: 6133L +00:00:30 v #452 > > │ Test case 10. J. Time: 5993L +00:00:30 v #453 > > │ Test case 11. K. Time: 2040L +00:00:30 v #454 > > │ +00:00:30 v #455 > > │ Input +00:00:30 v #456 > > | Expected | Result | Best +00:00:30 v #457 > > │ --- +00:00:30 v #458 > > | --- | --- | --- +00:00:30 v #459 > > │ abc +00:00:30 v #460 > > | abc | abc | (11, 1219) +00:00:30 v #461 > > │ accabb +00:00:30 v #462 > > | acb | acb | (11, 1317) +00:00:30 v #463 > > │ pprrqqpp +00:00:30 v #464 > > | prq | prq | (11, 1322) +00:00:30 v #465 > > │ +00:00:30 v #466 > > aaaaaaaaaaaaaaccccccabbbbbbbaaacccbbbaaccccccccccacbbbbbbbbbbbbbcccccccbbbbbbbb +00:00:30 v #467 > > | acb | acb | (11, 2040) +00:00:30 v #468 > > │ +00:00:30 v #469 > > │ Averages +00:00:30 v #470 > > │ Test case 1. Average Time: 4622L +00:00:30 v #471 > > │ Test case 2. Average Time: 4483L +00:00:30 v #472 > > │ Test case 3. Average Time: 3800L +00:00:30 v #473 > > │ Test case 4. Average Time: 2613L +00:00:30 v #474 > > │ Test case 5. Average Time: 2828L +00:00:30 v #475 > > │ Test case 6. Average Time: 2828L +00:00:30 v #476 > > │ Test case 7. Average Time: 2505L +00:00:30 v #477 > > │ Test case 8. Average Time: 2926L +00:00:30 v #478 > > │ Test case 9. Average Time: 2652L +00:00:30 v #479 > > │ Test case 10. Average Time: 2599L +00:00:30 v #480 > > │ Test case 11. Average Time: 1474L +00:00:30 v #481 > > │ +00:00:30 v #482 > > │ Ranking +00:00:30 v #483 > > │ Test case 1. Average Time: 4622L +00:00:30 v #484 > > │ Test case 2. Average Time: 4483L +00:00:30 v #485 > > │ Test case 3. Average Time: 3800L +00:00:30 v #486 > > │ Test case 8. Average Time: 2926L +00:00:30 v #487 > > │ Test case 5. Average Time: 2828L +00:00:30 v #488 > > │ Test case 6. Average Time: 2828L +00:00:30 v #489 > > │ Test case 9. Average Time: 2652L +00:00:30 v #490 > > │ Test case 4. Average Time: 2613L +00:00:30 v #491 > > │ Test case 10. Average Time: 2599L +00:00:30 v #492 > > │ Test case 7. Average Time: 2505L +00:00:30 v #493 > > │ Test case 11. Average Time: 1474L +00:00:30 v #494 > > +00:00:30 v #495 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:30 v #496 > > //// test +00:00:30 v #497 > > +00:00:30 v #498 > > let solutions = [[ +00:00:30 v #499 > > "A", +00:00:30 v #500 > > fun input -> +00:00:30 v #501 > > input +00:00:30 v #502 > > |> Seq.toList +00:00:30 v #503 > > |> List.fold (fun acc x -> if List.contains x acc then acc else acc @ [[ +00:00:30 v #504 > > x ]]) [[]] +00:00:30 v #505 > > |> Seq.toArray +00:00:30 v #506 > > |> String +00:00:30 v #507 > > +00:00:30 v #508 > > "B", +00:00:30 v #509 > > fun input -> +00:00:30 v #510 > > input +00:00:30 v #511 > > |> Seq.rev +00:00:30 v #512 > > |> fun list -> Seq.foldBack (fun x acc -> if List.contains x acc then +00:00:30 v #513 > > acc else x :: acc) list [[]] +00:00:30 v #514 > > |> Seq.rev +00:00:30 v #515 > > |> Seq.toArray +00:00:30 v #516 > > |> String +00:00:30 v #517 > > +00:00:30 v #518 > > "C", +00:00:30 v #519 > > fun input -> +00:00:30 v #520 > > input +00:00:30 v #521 > > |> Seq.rev +00:00:30 v #522 > > |> fun list -> Seq.foldBack (fun x (set, acc) -> if Set.contains x set +00:00:30 v #523 > > then set, acc else set.Add x, x :: acc) list (Set.empty, [[]]) +00:00:30 v #524 > > |> snd +00:00:30 v #525 > > |> Seq.rev +00:00:30 v #526 > > |> Seq.toArray +00:00:30 v #527 > > |> String +00:00:30 v #528 > > +00:00:30 v #529 > > "D", +00:00:30 v #530 > > fun input -> +00:00:30 v #531 > > input +00:00:30 v #532 > > |> Seq.fold (fun (set, acc) x -> if Set.contains x set then set, acc +00:00:30 v #533 > > else set.Add x, Array.append acc [[| x |]]) (Set.empty, [[||]]) +00:00:30 v #534 > > |> snd +00:00:30 v #535 > > |> String +00:00:30 v #536 > > +00:00:30 v #537 > > "E", +00:00:30 v #538 > > fun input -> +00:00:30 v #539 > > input +00:00:30 v #540 > > |> Seq.fold (fun (set, acc) x -> if Set.contains x set then set, acc +00:00:30 v #541 > > else set.Add x, x :: acc) (Set.empty, [[]]) +00:00:30 v #542 > > |> snd +00:00:30 v #543 > > |> List.rev +00:00:30 v #544 > > |> List.toArray +00:00:30 v #545 > > |> String +00:00:30 v #546 > > +00:00:30 v #547 > > "F", +00:00:30 v #548 > > fun input -> +00:00:30 v #549 > > input +00:00:30 v #550 > > |> Seq.fold (fun (set, acc) x -> if Set.contains x set then set, acc +00:00:30 v #551 > > else set.Add x, acc @ [[ x ]]) (Set.empty, [[]]) +00:00:30 v #552 > > |> snd +00:00:30 v #553 > > |> List.toArray +00:00:30 v #554 > > |> String +00:00:30 v #555 > > +00:00:30 v #556 > > "G", +00:00:30 v #557 > > fun input -> +00:00:30 v #558 > > input +00:00:30 v #559 > > |> Seq.fold (fun (set, acc) x -> if Set.contains x set then set, acc +00:00:30 v #560 > > else set.Add x, x :: acc) (Set.empty, [[]]) +00:00:30 v #561 > > |> snd +00:00:30 v #562 > > |> List.toArray +00:00:30 v #563 > > |> Array.rev +00:00:30 v #564 > > |> String +00:00:30 v #565 > > +00:00:30 v #566 > > "H", +00:00:30 v #567 > > fun input -> +00:00:30 v #568 > > input +00:00:30 v #569 > > |> Seq.toList +00:00:30 v #570 > > |> fun list -> +00:00:30 v #571 > > let rec loop set = function +00:00:30 v #572 > > | head :: tail when Set.contains head set -> loop set tail +00:00:30 v #573 > > | head :: tail -> (loop (set.Add head) tail) @ [[ head ]] +00:00:30 v #574 > > | [[]] -> [[]] +00:00:30 v #575 > > loop Set.empty list +00:00:30 v #576 > > |> List.rev +00:00:30 v #577 > > |> List.toArray +00:00:30 v #578 > > |> String +00:00:30 v #579 > > +00:00:30 v #580 > > "I", +00:00:30 v #581 > > fun input -> +00:00:30 v #582 > > input +00:00:30 v #583 > > |> Seq.toList +00:00:30 v #584 > > |> fun list -> +00:00:30 v #585 > > let rec loop set = function +00:00:30 v #586 > > | head :: tail when Set.contains head set -> loop set tail +00:00:30 v #587 > > | head :: tail -> loop (set.Add head) tail |> Array.append [[| +00:00:30 v #588 > > head |]] +00:00:30 v #589 > > | [[]] -> [[||]] +00:00:30 v #590 > > loop Set.empty list +00:00:30 v #591 > > |> String +00:00:30 v #592 > > +00:00:30 v #593 > > "J", +00:00:30 v #594 > > fun input -> +00:00:30 v #595 > > input +00:00:30 v #596 > > |> Seq.toList +00:00:30 v #597 > > |> fun list -> +00:00:30 v #598 > > let rec loop set = function +00:00:30 v #599 > > | head :: tail when Set.contains head set -> loop set tail +00:00:30 v #600 > > | head :: tail -> head :: loop (set.Add head) tail +00:00:30 v #601 > > | [[]] -> [[]] +00:00:30 v #602 > > loop Set.empty list +00:00:30 v #603 > > |> List.toArray +00:00:30 v #604 > > |> String +00:00:30 v #605 > > +00:00:30 v #606 > > "K", +00:00:30 v #607 > > fun input -> +00:00:30 v #608 > > input +00:00:30 v #609 > > |> Seq.distinct +00:00:30 v #610 > > |> Seq.toArray +00:00:30 v #611 > > |> String +00:00:30 v #612 > > ]] +00:00:30 v #613 > > let testCases = seq { +00:00:30 v #614 > > "abc", "abc" +00:00:30 v #615 > > "accabb", "acb" +00:00:30 v #616 > > "pprrqqpp", "prq" +00:00:30 v #617 > > +00:00:30 v #618 > > "aaaaaaaaaaaaaaccccccabbbbbbbaaacccbbbaaccccccccccacbbbbbbbbbbbbbcccccccbbbbbbbb +00:00:30 v #619 > > ", "acb" +00:00:30 v #620 > > } +00:00:30 v #621 > > let rec uniqueLettersTests = runAll (nameof uniqueLettersTests) _count solutions +00:00:30 v #622 > > testCases +00:00:30 v #623 > > uniqueLettersTests +00:00:30 v #624 > > |> sortResultList +00:00:45 v #625 > > +00:00:45 v #626 > > ── [ 14.99s - stdout ] ───────────────────────────────────────────────────────── +00:00:45 v #627 > > │ +00:00:45 v #628 > > │ +00:00:45 v #629 > > │ Test: uniqueLettersTests +00:00:45 v #630 > > │ +00:00:45 v #631 > > │ Solution: abc +00:00:45 v #632 > > │ Test case 1. A. Time: 3L +00:00:45 v #633 > > │ Test case 2. B. Time: 5L +00:00:45 v #634 > > │ Test case 3. C. Time: 5L +00:00:45 v #635 > > │ Test case 4. D. Time: 2L +00:00:45 v #636 > > │ Test case 5. E. Time: 2L +00:00:45 v #637 > > │ Test case 6. F. Time: 2L +00:00:45 v #638 > > │ Test case 7. G. Time: 2L +00:00:45 v #639 > > │ Test case 8. H. Time: 3L +00:00:45 v #640 > > │ Test case 9. I. Time: 4L +00:00:45 v #641 > > │ Test case 10. J. Time: 2L +00:00:45 v #642 > > │ Test case 11. K. Time: 3L +00:00:45 v #643 > > │ +00:00:45 v #644 > > │ Solution: accabb +00:00:45 v #645 > > │ Test case 1. A. Time: 1L +00:00:45 v #646 > > │ Test case 2. B. Time: 2L +00:00:45 v #647 > > │ Test case 3. C. Time: 2L +00:00:45 v #648 > > │ Test case 4. D. Time: 1L +00:00:45 v #649 > > │ Test case 5. E. Time: 1L +00:00:45 v #650 > > │ Test case 6. F. Time: 1L +00:00:45 v #651 > > │ Test case 7. G. Time: 1L +00:00:45 v #652 > > │ Test case 8. H. Time: 1L +00:00:45 v #653 > > │ Test case 9. I. Time: 1L +00:00:45 v #654 > > │ Test case 10. J. Time: 1L +00:00:45 v #655 > > │ Test case 11. K. Time: 1L +00:00:45 v #656 > > │ +00:00:45 v #657 > > │ Solution: pprrqqpp +00:00:45 v #658 > > │ Test case 1. A. Time: 1L +00:00:45 v #659 > > │ Test case 2. B. Time: 1L +00:00:45 v #660 > > │ Test case 3. C. Time: 2L +00:00:45 v #661 > > │ Test case 4. D. Time: 1L +00:00:45 v #662 > > │ Test case 5. E. Time: 1L +00:00:45 v #663 > > │ Test case 6. F. Time: 1L +00:00:45 v #664 > > │ Test case 7. G. Time: 1L +00:00:45 v #665 > > │ Test case 8. H. Time: 1L +00:00:45 v #666 > > │ Test case 9. I. Time: 1L +00:00:45 v #667 > > │ Test case 10. J. Time: 1L +00:00:45 v #668 > > │ Test case 11. K. Time: 1L +00:00:45 v #669 > > │ +00:00:45 v #670 > > │ Solution: +00:00:45 v #671 > > aaaaaaaaaaaaaaccccccabbbbbbbaaacccbbbaaccccccccccacbbbbbbbbbbbbbcccccccbbbbbbbb│ Test case 1. A. Time: 16L +00:00:45 v #672 > > │ Test case 2. B. Time: 10L +00:00:45 v #673 > > │ Test case 3. C. Time: 16L +00:00:45 v #674 > > │ Test case 4. D. Time: 9L +00:00:45 v #675 > > │ Test case 5. E. Time: 19L +00:00:45 v #676 > > │ Test case 6. F. Time: 15L +00:00:45 v #677 > > │ Test case 7. G. Time: 9L +00:00:45 v #678 > > │ Test case 8. H. Time: 9L +00:00:45 v #679 > > │ Test case 9. I. Time: 7L +00:00:45 v #680 > > │ Test case 10. J. Time: 8L +00:00:45 v #681 > > │ Test case 11. K. Time: 4L +00:00:45 v #682 > > │ +00:00:45 v #683 > > │ Input +00:00:45 v #684 > > | Expected | Result | Best +00:00:45 v #685 > > │ --- +00:00:45 v #686 > > | --- | --- | --- +00:00:45 v #687 > > │ abc +00:00:45 v #688 > > | abc | abc | (4, 2) +00:00:45 v #689 > > │ accabb +00:00:45 v #690 > > | acb | acb | (1, 1) +00:00:45 v #691 > > │ pprrqqpp +00:00:45 v #692 > > | prq | prq | (1, 1) +00:00:45 v #693 > > │ +00:00:45 v #694 > > aaaaaaaaaaaaaaccccccabbbbbbbaaacccbbbaaccccccccccacbbbbbbbbbbbbbcccccccbbbbbbbb | +00:00:45 v #695 > > acb | acb | (11, 4) +00:00:45 v #696 > > │ +00:00:45 v #697 > > │ Average Ranking +00:00:45 v #698 > > │ Test case 11. Average Time: 2L +00:00:45 v #699 > > │ Test case 4. Average Time: 3L +00:00:45 v #700 > > │ Test case 7. Average Time: 3L +00:00:45 v #701 > > │ Test case 8. Average Time: 3L +00:00:45 v #702 > > │ Test case 9. Average Time: 3L +00:00:45 v #703 > > │ Test case 10. Average Time: 3L +00:00:45 v #704 > > │ Test case 2. Average Time: 4L +00:00:45 v #705 > > │ Test case 6. Average Time: 4L +00:00:45 v #706 > > │ Test case 1. Average Time: 5L +00:00:45 v #707 > > │ Test case 5. Average Time: 5L +00:00:45 v #708 > > │ Test case 3. Average Time: 6L +00:00:45 v #709 > > │ +00:00:45 v #710 > > +00:00:45 v #711 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:45 v #712 > > │ ## rotateStringsTests +00:00:45 v #713 > > +00:00:45 v #714 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:45 v #715 > > │ https://www.hackerrank.com/challenges/rotate-string/forum +00:00:45 v #716 > > │ +00:00:45 v #717 > > │ Test: RotateStrings +00:00:45 v #718 > > │ +00:00:45 v #719 > > │ Solution: abc +00:00:45 v #720 > > │ Test case 1. A. Time: 1842L +00:00:45 v #721 > > │ Test case 2. B. Time: 1846L +00:00:45 v #722 > > │ Test case 3. C. Time: 1936L +00:00:45 v #723 > > │ Test case 4. CA. Time: 2224L +00:00:45 v #724 > > │ Test case 5. CB. Time: 2329L +00:00:45 v #725 > > │ Test case 6. D. Time: 2474L +00:00:45 v #726 > > │ Test case 7. E. Time: 1664L +00:00:45 v #727 > > │ Test case 8. F. Time: 1517L +00:00:45 v #728 > > │ Test case 9. FA. Time: 1651L +00:00:45 v #729 > > │ Test case 10. FB. Time: 3764L +00:00:45 v #730 > > │ Test case 11. FC. Time: 5415L +00:00:45 v #731 > > │ +00:00:45 v #732 > > │ Solution: abcde +00:00:45 v #733 > > │ Test case 1. A. Time: 3356L +00:00:45 v #734 > > │ Test case 2. B. Time: 2592L +00:00:45 v #735 > > │ Test case 3. C. Time: 2346L +00:00:45 v #736 > > │ Test case 4. CA. Time: 2997L +00:00:45 v #737 > > │ Test case 5. CB. Time: 3061L +00:00:45 v #738 > > │ Test case 6. D. Time: 4051L +00:00:45 v #739 > > │ Test case 7. E. Time: 1905L +00:00:45 v #740 > > │ Test case 8. F. Time: 1771L +00:00:45 v #741 > > │ Test case 9. FA. Time: 2175L +00:00:45 v #742 > > │ Test case 10. FB. Time: 3275L +00:00:45 v #743 > > │ Test case 11. FC. Time: 5266L +00:00:45 v #744 > > │ +00:00:45 v #745 > > │ Solution: abcdefghi +00:00:45 v #746 > > │ Test case 1. A. Time: 4492L +00:00:45 v #747 > > │ Test case 2. B. Time: 3526L +00:00:45 v #748 > > │ Test case 3. C. Time: 3583L +00:00:45 v #749 > > │ Test case 4. CA. Time: 3711L +00:00:45 v #750 > > │ Test case 5. CB. Time: 4783L +00:00:45 v #751 > > │ Test case 6. D. Time: 7557L +00:00:45 v #752 > > │ Test case 7. E. Time: 3452L +00:00:45 v #753 > > │ Test case 8. F. Time: 3050L +00:00:45 v #754 > > │ Test case 9. FA. Time: 3275L +00:00:45 v #755 > > │ Test case 10. FB. Time: 4635L +00:00:45 v #756 > > │ Test case 11. FC. Time: 5616L +00:00:45 v #757 > > │ +00:00:45 v #758 > > │ Solution: abab +00:00:45 v #759 > > │ Test case 1. A. Time: 2093L +00:00:45 v #760 > > │ Test case 2. B. Time: 1843L +00:00:45 v #761 > > │ Test case 3. C. Time: 1746L +00:00:45 v #762 > > │ Test case 4. CA. Time: 2085L +00:00:45 v #763 > > │ Test case 5. CB. Time: 2139L +00:00:45 v #764 > > │ Test case 6. D. Time: 2095L +00:00:45 v #765 > > │ Test case 7. E. Time: 1723L +00:00:45 v #766 > > │ Test case 8. F. Time: 1558L +00:00:45 v #767 > > │ Test case 9. FA. Time: 1620L +00:00:45 v #768 > > │ Test case 10. FB. Time: 2319L +00:00:45 v #769 > > │ Test case 11. FC. Time: 3918L +00:00:45 v #770 > > │ +00:00:45 v #771 > > │ Solution: aa +00:00:45 v #772 > > │ Test case 1. A. Time: 1107L +00:00:45 v #773 > > │ Test case 2. B. Time: 1241L +00:00:45 v #774 > > │ Test case 3. C. Time: 1183L +00:00:45 v #775 > > │ Test case 4. CA. Time: 1563L +00:00:45 v #776 > > │ Test case 5. CB. Time: 1525L +00:00:45 v #777 > > │ Test case 6. D. Time: 1591L +00:00:45 v #778 > > │ Test case 7. E. Time: 1327L +00:00:45 v #779 > > │ Test case 8. F. Time: 1151L +00:00:45 v #780 > > │ Test case 9. FA. Time: 1180L +00:00:45 v #781 > > │ Test case 10. FB. Time: 1733L +00:00:45 v #782 > > │ Test case 11. FC. Time: 2817L +00:00:45 v #783 > > │ +00:00:45 v #784 > > │ Solution: z +00:00:45 v #785 > > │ Test case 1. A. Time: 816L +00:00:45 v #786 > > │ Test case 2. B. Time: 745L +00:00:45 v #787 > > │ Test case 3. C. Time: 928L +00:00:45 v #788 > > │ Test case 4. CA. Time: 1375L +00:00:45 v #789 > > │ Test case 5. CB. Time: 1029L +00:00:45 v #790 > > │ Test case 6. D. Time: 852L +00:00:45 v #791 > > │ Test case 7. E. Time: 712L +00:00:45 v #792 > > │ Test case 8. F. Time: 263L +00:00:45 v #793 > > │ Test case 9. FA. Time: 232L +00:00:45 v #794 > > │ Test case 10. FB. Time: 773L +00:00:45 v #795 > > │ Test case 11. FC. Time: 1789L +00:00:45 v #796 > > │ +00:00:45 v #797 > > │ Input | Expected +00:00:45 v #798 > > +00:00:45 v #799 > > | Result +00:00:45 v #800 > > +00:00:45 v #801 > > | Best +00:00:45 v #802 > > │ --- | --- +00:00:45 v #803 > > +00:00:45 v #804 > > | --- +00:00:45 v #805 > > +00:00:45 v #806 > > | --- +00:00:45 v #807 > > │ abc | bca cab abc +00:00:45 v #808 > > +00:00:45 v #809 > > | bca cab abc +00:00:45 v #810 > > +00:00:45 v #811 > > | (8, 1517) +00:00:45 v #812 > > │ abcde | bcdea cdeab deabc eabcd abcde +00:00:45 v #813 > > | bcdea cdeab deabc eabcd abcde +00:00:45 v #814 > > | (8, 1771) +00:00:45 v #815 > > │ abcdefghi | bcdefghia cdefghiab defghiabc efghiabcd +00:00:45 v #816 > > fghiabcde ghiabcdef hiabcdefg iabcdefgh abcdefghi | bcdefghia cdefghiab +00:00:45 v #817 > > defghiabc efghiabcd fghiabcde ghiabcdef hiabcdefg iabcdefgh abcdefghi | +00:00:45 v #818 > > (8, 3050) +00:00:45 v #819 > > │ abab | baba abab baba abab +00:00:45 v #820 > > | baba abab baba abab +00:00:45 v #821 > > | (8, 1558) +00:00:45 v #822 > > │ aa | aa aa +00:00:45 v #823 > > +00:00:45 v #824 > > | aa aa +00:00:45 v #825 > > +00:00:45 v #826 > > | (1, 1107) +00:00:45 v #827 > > │ z | z +00:00:45 v #828 > > +00:00:45 v #829 > > | z +00:00:45 v #830 > > +00:00:45 v #831 > > | (9, 232) +00:00:45 v #832 > > │ +00:00:45 v #833 > > │ Averages +00:00:45 v #834 > > │ Test case 1. Average Time: 2284L +00:00:45 v #835 > > │ Test case 2. Average Time: 1965L +00:00:45 v #836 > > │ Test case 3. Average Time: 1953L +00:00:45 v #837 > > │ Test case 4. Average Time: 2325L +00:00:45 v #838 > > │ Test case 5. Average Time: 2477L +00:00:45 v #839 > > │ Test case 6. Average Time: 3103L +00:00:45 v #840 > > │ Test case 7. Average Time: 1797L +00:00:45 v #841 > > │ Test case 8. Average Time: 1551L +00:00:45 v #842 > > │ Test case 9. Average Time: 1688L +00:00:45 v #843 > > │ Test case 10. Average Time: 2749L +00:00:45 v #844 > > │ Test case 11. Average Time: 4136L +00:00:45 v #845 > > │ +00:00:45 v #846 > > │ Ranking +00:00:45 v #847 > > │ Test case 11. Average Time: 4136L +00:00:45 v #848 > > │ Test case 6. Average Time: 3103L +00:00:45 v #849 > > │ Test case 10. Average Time: 2749L +00:00:45 v #850 > > │ Test case 5. Average Time: 2477L +00:00:45 v #851 > > │ Test case 4. Average Time: 2325L +00:00:45 v #852 > > │ Test case 1. Average Time: 2284L +00:00:45 v #853 > > │ Test case 2. Average Time: 1965L +00:00:45 v #854 > > │ Test case 3. Average Time: 1953L +00:00:45 v #855 > > │ Test case 7. Average Time: 1797L +00:00:45 v #856 > > │ Test case 9. Average Time: 1688L +00:00:45 v #857 > > │ Test case 8. Average Time: 1551L +00:00:45 v #858 > > +00:00:45 v #859 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:45 v #860 > > //// test +00:00:45 v #861 > > +00:00:45 v #862 > > let solutions = [[ +00:00:45 v #863 > > "A", +00:00:45 v #864 > > fun (input: string) -> +00:00:45 v #865 > > let resultList = +00:00:45 v #866 > > List.fold (fun acc x -> +00:00:45 v #867 > > let rotate (text: string) (letter: string) = (text |> +00:00:45 v #868 > > SpiralSm.slice 1 (input.Length - 1)) + letter +00:00:45 v #869 > > [[ rotate (if acc.IsEmpty then input else acc.Head) (string x) +00:00:45 v #870 > > ]] @ acc +00:00:45 v #871 > > ) [[]] (Seq.toList input) +00:00:45 v #872 > > +00:00:45 v #873 > > (resultList, "") +00:00:45 v #874 > > ||> List.foldBack (fun acc x -> x + acc + " ") +00:00:45 v #875 > > |> _.TrimEnd() +00:00:45 v #876 > > +00:00:45 v #877 > > "B", +00:00:45 v #878 > > fun input -> +00:00:45 v #879 > > input +00:00:45 v #880 > > |> Seq.toList +00:00:45 v #881 > > |> List.fold (fun (acc: string list) letter -> +00:00:45 v #882 > > let last = +00:00:45 v #883 > > if acc.IsEmpty +00:00:45 v #884 > > then input +00:00:45 v #885 > > else acc.Head +00:00:45 v #886 > > +00:00:45 v #887 > > let item = last.[[1 .. input.Length - 1]] + string letter +00:00:45 v #888 > > +00:00:45 v #889 > > item :: acc +00:00:45 v #890 > > ) [[]] +00:00:45 v #891 > > |> List.rev +00:00:45 v #892 > > |> SpiralSm.concat " " +00:00:45 v #893 > > +00:00:45 v #894 > > "C", +00:00:45 v #895 > > fun input -> +00:00:45 v #896 > > input +00:00:45 v #897 > > |> Seq.toList +00:00:45 v #898 > > |> List.fold (fun (acc: string list) letter -> acc.Head.[[ 1 .. +00:00:45 v #899 > > input.Length - 1 ]] + string letter :: acc) [[ input ]] +00:00:45 v #900 > > |> List.rev +00:00:45 v #901 > > |> List.skip 1 +00:00:45 v #902 > > |> SpiralSm.concat " " +00:00:45 v #903 > > +00:00:45 v #904 > > "CA", +00:00:45 v #905 > > fun input -> +00:00:45 v #906 > > input +00:00:45 v #907 > > |> Seq.fold (fun (acc: string list) letter -> acc.Head.[[ 1 .. +00:00:45 v #908 > > input.Length - 1 ]] + string letter :: acc) [[ input ]] +00:00:45 v #909 > > |> Seq.rev +00:00:45 v #910 > > |> Seq.skip 1 +00:00:45 v #911 > > |> SpiralSm.concat " " +00:00:45 v #912 > > +00:00:45 v #913 > > "CB", +00:00:45 v #914 > > fun input -> +00:00:45 v #915 > > input +00:00:45 v #916 > > |> Seq.toArray +00:00:45 v #917 > > |> Array.fold (fun (acc: string[[]]) letter -> acc |> Array.append [[| +00:00:45 v #918 > > acc.[[0]].[[ 1 .. input.Length - 1 ]] + string letter |]]) [[| input |]] +00:00:45 v #919 > > |> Array.rev +00:00:45 v #920 > > |> Array.skip 1 +00:00:45 v #921 > > |> SpiralSm.concat " " +00:00:45 v #922 > > +00:00:45 v #923 > > "D", +00:00:45 v #924 > > fun input -> +00:00:45 v #925 > > input +00:00:45 v #926 > > |> Seq.toList +00:00:45 v #927 > > |> fun list -> +00:00:45 v #928 > > let rec loop (acc: char list list) = function +00:00:45 v #929 > > | _ when acc.Length = list.Length -> acc +00:00:45 v #930 > > | head :: tail -> +00:00:45 v #931 > > let item = tail @ [[ head ]] +00:00:45 v #932 > > loop (item :: acc) item +00:00:45 v #933 > > | [[]] -> [[]] +00:00:45 v #934 > > loop [[]] list +00:00:45 v #935 > > |> List.rev +00:00:45 v #936 > > |> List.map (List.toArray >> String) +00:00:45 v #937 > > |> SpiralSm.concat " " +00:00:45 v #938 > > +00:00:45 v #939 > > "E", +00:00:45 v #940 > > fun input -> +00:00:45 v #941 > > input +00:00:45 v #942 > > |> Seq.toList +00:00:45 v #943 > > |> fun list -> +00:00:45 v #944 > > let rec loop (last: string) = function +00:00:45 v #945 > > | head :: tail -> +00:00:45 v #946 > > let item = last.[[1 .. input.Length - 1]] + string head +00:00:45 v #947 > > item :: loop item tail +00:00:45 v #948 > > | [[]] -> [[]] +00:00:45 v #949 > > loop input list +00:00:45 v #950 > > |> SpiralSm.concat " " +00:00:45 v #951 > > +00:00:45 v #952 > > "F", +00:00:45 v #953 > > fun input -> +00:00:45 v #954 > > Array.singleton 0 +00:00:45 v #955 > > |> Array.append [[| 1 .. input.Length - 1 |]] +00:00:45 v #956 > > |> Array.map (fun i -> input.[[ i .. ]] + input.[[ .. i - 1 ]]) +00:00:45 v #957 > > |> SpiralSm.concat " " +00:00:45 v #958 > > +00:00:45 v #959 > > "FA", +00:00:45 v #960 > > fun input -> +00:00:45 v #961 > > List.singleton 0 +00:00:45 v #962 > > |> List.append [[ 1 .. input.Length - 1 ]] +00:00:45 v #963 > > |> List.map (fun i -> input.[[ i .. ]] + input.[[ .. i - 1 ]]) +00:00:45 v #964 > > |> SpiralSm.concat " " +00:00:45 v #965 > > +00:00:45 v #966 > > "FB", +00:00:45 v #967 > > fun input -> +00:00:45 v #968 > > Seq.singleton 0 +00:00:45 v #969 > > |> Seq.append (seq { 1 .. input.Length - 1 }) +00:00:45 v #970 > > |> Seq.map (fun i -> input.[[ i .. ]] + input.[[ .. i - 1 ]]) +00:00:45 v #971 > > |> SpiralSm.concat " " +00:00:45 v #972 > > +00:00:45 v #973 > > "FC", +00:00:45 v #974 > > fun input -> +00:00:45 v #975 > > Array.singleton 0 +00:00:45 v #976 > > |> Array.append [[| 1 .. input.Length - 1 |]] +00:00:45 v #977 > > |> Array.Parallel.map (fun i -> input.[[ i .. ]] + input.[[ .. i - 1 ]]) +00:00:45 v #978 > > |> SpiralSm.concat " " +00:00:45 v #979 > > ]] +00:00:45 v #980 > > let testCases = seq { +00:00:45 v #981 > > "abc", "bca cab abc" +00:00:45 v #982 > > "abcde", "bcdea cdeab deabc eabcd abcde" +00:00:45 v #983 > > "abcdefghi", "bcdefghia cdefghiab defghiabc efghiabcd fghiabcde ghiabcdef +00:00:45 v #984 > > hiabcdefg iabcdefgh abcdefghi" +00:00:45 v #985 > > "abab", "baba abab baba abab" +00:00:45 v #986 > > "aa", "aa aa" +00:00:45 v #987 > > "z", "z" +00:00:45 v #988 > > } +00:00:45 v #989 > > let rec rotateStringsTests = runAll (nameof rotateStringsTests) _count solutions +00:00:45 v #990 > > testCases +00:00:45 v #991 > > rotateStringsTests +00:00:45 v #992 > > |> sortResultList +00:01:06 v #993 > > +00:01:06 v #994 > > ── [ 21.56s - stdout ] ───────────────────────────────────────────────────────── +00:01:06 v #995 > > │ +00:01:06 v #996 > > │ +00:01:06 v #997 > > │ Test: rotateStringsTests +00:01:06 v #998 > > │ +00:01:06 v #999 > > │ Solution: abc +00:01:06 v #1000 > > │ Test case 1. A. Time: 3L +00:01:06 v #1001 > > │ Test case 2. B. Time: 2L +00:01:06 v #1002 > > │ Test case 3. C. Time: 2L +00:01:06 v #1003 > > │ Test case 4. CA. Time: 4L +00:01:06 v #1004 > > │ Test case 5. CB. Time: 2L +00:01:06 v #1005 > > │ Test case 6. D. Time: 3L +00:01:06 v #1006 > > │ Test case 7. E. Time: 2L +00:01:06 v #1007 > > │ Test case 8. F. Time: 2L +00:01:06 v #1008 > > │ Test case 9. FA. Time: 2L +00:01:06 v #1009 > > │ Test case 10. FB. Time: 8L +00:01:06 v #1010 > > │ Test case 11. FC. Time: 9L +00:01:06 v #1011 > > │ +00:01:06 v #1012 > > │ Solution: abcde +00:01:06 v #1013 > > │ Test case 1. A. Time: 4L +00:01:06 v #1014 > > │ Test case 2. B. Time: 1L +00:01:06 v #1015 > > │ Test case 3. C. Time: 1L +00:01:06 v #1016 > > │ Test case 4. CA. Time: 1L +00:01:06 v #1017 > > │ Test case 5. CB. Time: 2L +00:01:06 v #1018 > > │ Test case 6. D. Time: 5L +00:01:06 v #1019 > > │ Test case 7. E. Time: 1L +00:01:06 v #1020 > > │ Test case 8. F. Time: 0L +00:01:06 v #1021 > > │ Test case 9. FA. Time: 1L +00:01:06 v #1022 > > │ Test case 10. FB. Time: 4L +00:01:06 v #1023 > > │ Test case 11. FC. Time: 5L +00:01:06 v #1024 > > │ +00:01:06 v #1025 > > │ Solution: abcdefghi +00:01:06 v #1026 > > │ Test case 1. A. Time: 6L +00:01:06 v #1027 > > │ Test case 2. B. Time: 2L +00:01:06 v #1028 > > │ Test case 3. C. Time: 3L +00:01:06 v #1029 > > │ Test case 4. CA. Time: 3L +00:01:06 v #1030 > > │ Test case 5. CB. Time: 10L +00:01:06 v #1031 > > │ Test case 6. D. Time: 7L +00:01:06 v #1032 > > │ Test case 7. E. Time: 3L +00:01:06 v #1033 > > │ Test case 8. F. Time: 0L +00:01:06 v #1034 > > │ Test case 9. FA. Time: 1L +00:01:06 v #1035 > > │ Test case 10. FB. Time: 5L +00:01:06 v #1036 > > │ Test case 11. FC. Time: 4L +00:01:06 v #1037 > > │ +00:01:06 v #1038 > > │ Solution: abab +00:01:06 v #1039 > > │ Test case 1. A. Time: 1L +00:01:06 v #1040 > > │ Test case 2. B. Time: 1L +00:01:06 v #1041 > > │ Test case 3. C. Time: 1L +00:01:06 v #1042 > > │ Test case 4. CA. Time: 1L +00:01:06 v #1043 > > │ Test case 5. CB. Time: 1L +00:01:06 v #1044 > > │ Test case 6. D. Time: 1L +00:01:06 v #1045 > > │ Test case 7. E. Time: 1L +00:01:06 v #1046 > > │ Test case 8. F. Time: 0L +00:01:06 v #1047 > > │ Test case 9. FA. Time: 0L +00:01:06 v #1048 > > │ Test case 10. FB. Time: 1L +00:01:06 v #1049 > > │ Test case 11. FC. Time: 5L +00:01:06 v #1050 > > │ +00:01:06 v #1051 > > │ Solution: aa +00:01:06 v #1052 > > │ Test case 1. A. Time: 1L +00:01:06 v #1053 > > │ Test case 2. B. Time: 1L +00:01:06 v #1054 > > │ Test case 3. C. Time: 0L +00:01:06 v #1055 > > │ Test case 4. CA. Time: 0L +00:01:06 v #1056 > > │ Test case 5. CB. Time: 0L +00:01:06 v #1057 > > │ Test case 6. D. Time: 0L +00:01:06 v #1058 > > │ Test case 7. E. Time: 0L +00:01:06 v #1059 > > │ Test case 8. F. Time: 0L +00:01:06 v #1060 > > │ Test case 9. FA. Time: 0L +00:01:06 v #1061 > > │ Test case 10. FB. Time: 1L +00:01:06 v #1062 > > │ Test case 11. FC. Time: 4L +00:01:06 v #1063 > > │ +00:01:06 v #1064 > > │ Solution: z +00:01:06 v #1065 > > │ Test case 1. A. Time: 0L +00:01:06 v #1066 > > │ Test case 2. B. Time: 0L +00:01:06 v #1067 > > │ Test case 3. C. Time: 0L +00:01:06 v #1068 > > │ Test case 4. CA. Time: 0L +00:01:06 v #1069 > > │ Test case 5. CB. Time: 0L +00:01:06 v #1070 > > │ Test case 6. D. Time: 0L +00:01:06 v #1071 > > │ Test case 7. E. Time: 0L +00:01:06 v #1072 > > │ Test case 8. F. Time: 0L +00:01:06 v #1073 > > │ Test case 9. FA. Time: 0L +00:01:06 v #1074 > > │ Test case 10. FB. Time: 2L +00:01:06 v #1075 > > │ Test case 11. FC. Time: 4L +00:01:06 v #1076 > > │ +00:01:06 v #1077 > > │ Input | Expected +00:01:06 v #1078 > > | Result +00:01:06 v #1079 > > +00:01:06 v #1080 > > | Best +00:01:06 v #1081 > > │ --- | --- +00:01:06 v #1082 > > +00:01:06 v #1083 > > | --- +00:01:06 v #1084 > > +00:01:06 v #1085 > > | --- +00:01:06 v #1086 > > │ abc | bca cab abc +00:01:06 v #1087 > > | bca cab abc +00:01:06 v #1088 > > | (2, 2) +00:01:06 v #1089 > > │ abcde | bcdea cdeab deabc eabcd abcde +00:01:06 v #1090 > > | bcdea cdeab deabc eabcd abcde +00:01:06 v #1091 > > | (8, 0) +00:01:06 v #1092 > > │ abcdefghi | bcdefghia cdefghiab defghiabc efghiabcd fghiabcde +00:01:06 v #1093 > > ghiabcdef hiabcdefg iabcdefgh abcdefghi | bcdefghia cdefghiab defghiabc efghiabcd +00:01:06 v #1094 > > fghiabcde ghiabcdef hiabcdefg iabcdefgh abcdefghi | (8, 0) +00:01:06 v #1095 > > │ abab | baba abab baba abab +00:01:06 v #1096 > > | baba abab baba abab +00:01:06 v #1097 > > | (8, 0) +00:01:06 v #1098 > > │ aa | aa aa +00:01:06 v #1099 > > +00:01:06 v #1100 > > | aa aa +00:01:06 v #1101 > > +00:01:06 v #1102 > > | (3, 0) +00:01:06 v #1103 > > │ z | z +00:01:06 v #1104 > > +00:01:06 v #1105 > > | z +00:01:06 v #1106 > > +00:01:06 v #1107 > > | (1, 0) +00:01:06 v #1108 > > │ +00:01:06 v #1109 > > │ Average Ranking +00:01:06 v #1110 > > │ Test case 8. Average Time: 0L +00:01:06 v #1111 > > │ Test case 9. Average Time: 0L +00:01:06 v #1112 > > │ Test case 2. Average Time: 1L +00:01:06 v #1113 > > │ Test case 3. Average Time: 1L +00:01:06 v #1114 > > │ Test case 4. Average Time: 1L +00:01:06 v #1115 > > │ Test case 7. Average Time: 1L +00:01:06 v #1116 > > │ Test case 1. Average Time: 2L +00:01:06 v #1117 > > │ Test case 5. Average Time: 2L +00:01:06 v #1118 > > │ Test case 6. Average Time: 2L +00:01:06 v #1119 > > │ Test case 10. Average Time: 3L +00:01:06 v #1120 > > │ Test case 11. Average Time: 5L +00:01:06 v #1121 > > │ +00:01:06 v #1122 > > +00:01:06 v #1123 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:01:06 v #1124 > > │ ## rotate_strings_tests +00:01:06 v #1125 > > +00:01:06 v #1126 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:01:06 v #1127 > > │ ``` +00:01:06 v #1128 > > │ 02:21:12 verbose #1 benchmark.run_all / {count = +00:01:06 v #1129 > > 2000000; test_name = rotate_strings_tests} +00:01:06 v #1130 > > │ +00:01:06 v #1131 > > │ 02:21:12 verbose #2 benchmark.run / {input_str = +00:01:06 v #1132 > > "abc"} +00:01:06 v #1133 > > │ 02:21:13 verbose #3 benchmark.run / solutions.map / {i +00:01:06 v #1134 > > = 1; test_name = F; time = 638} +00:01:06 v #1135 > > │ 02:21:14 verbose #4 benchmark.run / solutions.map / {i +00:01:06 v #1136 > > = 2; test_name = FA; time = 779} +00:01:06 v #1137 > > │ +00:01:06 v #1138 > > │ 02:21:14 verbose #5 benchmark.run / {input_str = +00:01:06 v #1139 > > "abcde"} +00:01:06 v #1140 > > │ 02:21:15 verbose #6 benchmark.run / solutions.map / {i +00:01:06 v #1141 > > = 1; test_name = F; time = 745} +00:01:06 v #1142 > > │ 02:21:16 verbose #7 benchmark.run / solutions.map / {i +00:01:06 v #1143 > > = 2; test_name = FA; time = 809} +00:01:06 v #1144 > > │ +00:01:06 v #1145 > > │ 02:21:16 verbose #8 benchmark.run / {input_str = +00:01:06 v #1146 > > "abcdefghi"} +00:01:06 v #1147 > > │ 02:21:17 verbose #9 benchmark.run / solutions.map / {i +00:01:06 v #1148 > > = 1; test_name = F; time = 1092} +00:01:06 v #1149 > > │ 02:21:18 verbose #10 benchmark.run / solutions.map +00:01:06 v #1150 > > {i = 2; test_name = FA; time = 1304} +00:01:06 v #1151 > > │ +00:01:06 v #1152 > > │ 02:21:18 verbose #11 benchmark.run / {input_str = +00:01:06 v #1153 > > "abab"} +00:01:06 v #1154 > > │ 02:21:19 verbose #12 benchmark.run / solutions.map +00:01:06 v #1155 > > {i = 1; test_name = F; time = 536} +00:01:06 v #1156 > > │ 02:21:20 verbose #13 benchmark.run / solutions.map +00:01:06 v #1157 > > {i = 2; test_name = FA; time = 620} +00:01:06 v #1158 > > │ +00:01:06 v #1159 > > │ 02:21:20 verbose #14 benchmark.run / {input_str = +00:01:06 v #1160 > > "aa"} +00:01:06 v #1161 > > │ 02:21:21 verbose #15 benchmark.run / solutions.map +00:01:06 v #1162 > > {i = 1; test_name = F; time = 365} +00:01:06 v #1163 > > │ 02:21:21 verbose #16 benchmark.run / solutions.map +00:01:06 v #1164 > > {i = 2; test_name = FA; time = 396} +00:01:06 v #1165 > > │ +00:01:06 v #1166 > > │ 02:21:21 verbose #17 benchmark.run / {input_str = "z"} +00:01:06 v #1167 > > │ 02:21:22 verbose #18 benchmark.run / solutions.map +00:01:06 v #1168 > > {i = 1; test_name = F; time = 158} +00:01:06 v #1169 > > │ 02:21:22 verbose #19 benchmark.run / solutions.map +00:01:06 v #1170 > > {i = 2; test_name = FA; time = 143} +00:01:06 v #1171 > > │ ``` +00:01:06 v #1172 > > │ input | expected +00:01:06 v #1173 > > +00:01:06 v #1174 > > | result +00:01:06 v #1175 > > +00:01:06 v #1176 > > | best +00:01:06 v #1177 > > │ --- | --- +00:01:06 v #1178 > > +00:01:06 v #1179 > > | --- +00:01:06 v #1180 > > +00:01:06 v #1181 > > | --- +00:01:06 v #1182 > > │ "abc" | "bca cab abc" +00:01:06 v #1183 > > | "bca cab abc" +00:01:06 v #1184 > > | 1, 638 +00:01:06 v #1185 > > │ "abcde" | "bcdea cdeab deabc eabcd abcde" +00:01:06 v #1186 > > | "bcdea cdeab deabc eabcd abcde" +00:01:06 v #1187 > > | 1, 745 +00:01:06 v #1188 > > │ "abcdefghi" | "bcdefghia cdefghiab defghiabc efghiabcd +00:01:06 v #1189 > > fghiabcde ghiabcdef hiabcdefg iabcdefgh abcdefghi" | "bcdefghia cdefghiab +00:01:06 v #1190 > > defghiabc efghiabcd fghiabcde ghiabcdef hiabcdefg iabcdefgh abcdefghi" | 1, 1092 +00:01:06 v #1191 > > │ "abab" | "baba abab baba abab" +00:01:06 v #1192 > > | "baba abab baba abab" +00:01:06 v #1193 > > | 1, 536 +00:01:06 v #1194 > > │ "aa" | "aa aa" +00:01:06 v #1195 > > +00:01:06 v #1196 > > | "aa aa" +00:01:06 v #1197 > > +00:01:06 v #1198 > > | 1, 365 +00:01:06 v #1199 > > │ "z" | "z" +00:01:06 v #1200 > > +00:01:06 v #1201 > > | "z" +00:01:06 v #1202 > > +00:01:06 v #1203 > > | 2, 143 +00:01:06 v #1204 > > │ ``` +00:01:06 v #1205 > > │ 02:21:22 verbose #20 benchmark.sort_result_list +00:01:06 v #1206 > > averages.iter / {avg = 589; i = 1} +00:01:06 v #1207 > > │ 02:21:22 verbose #21 benchmark.sort_result_list +00:01:06 v #1208 > > averages.iter / {avg = 675; i = 2} +00:01:06 v #1209 > > │ ``` +00:01:06 v #1210 > > +00:01:06 v #1211 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:01:06 v #1212 > > //// test +00:01:06 v #1213 > > //// timeout=60000 +00:01:06 v #1214 > > +00:01:06 v #1215 > > inl get_solutions () = +00:01:06 v #1216 > > [[ +00:01:06 v #1217 > > // "A", +00:01:06 v #1218 > > // fun (input : string) => +00:01:06 v #1219 > > // let resultList = +00:01:06 v #1220 > > // List.fold (fun acc x => +00:01:06 v #1221 > > // let rotate (text : string) (letter : string) = +00:01:06 v #1222 > > text.Substring (1, input.Length - 1) + letter +00:01:06 v #1223 > > // [[ rotate (if acc.IsEmpty then input else acc.Head) +00:01:06 v #1224 > > (string x) ]] ++ acc +00:01:06 v #1225 > > // ) [[]] (Seq.toList input) +00:01:06 v #1226 > > +00:01:06 v #1227 > > // List.foldBack (fun acc x => x + acc + " ") resultList "" +00:01:06 v #1228 > > // |> fun x => x.TrimEnd () +00:01:06 v #1229 > > +00:01:06 v #1230 > > // "B", +00:01:06 v #1231 > > // fun input => +00:01:06 v #1232 > > // input +00:01:06 v #1233 > > // |> Seq.toList +00:01:06 v #1234 > > // |> List.fold (fun (acc : string list) letter => +00:01:06 v #1235 > > // let last = +00:01:06 v #1236 > > // if acc.IsEmpty +00:01:06 v #1237 > > // then input +00:01:06 v #1238 > > // else acc.Head +00:01:06 v #1239 > > +00:01:06 v #1240 > > // let item = last.[[1 .. input.Length - 1]] + string letter +00:01:06 v #1241 > > +00:01:06 v #1242 > > // item :: acc +00:01:06 v #1243 > > // ) [[]] +00:01:06 v #1244 > > // |> List.rev +00:01:06 v #1245 > > // |> SpiralSm.concat " " +00:01:06 v #1246 > > +00:01:06 v #1247 > > // "C", +00:01:06 v #1248 > > // fun input => +00:01:06 v #1249 > > // input +00:01:06 v #1250 > > // |> Seq.toList +00:01:06 v #1251 > > // |> List.fold (fun (acc : list string) letter => acc.Head.[[ 1 .. +00:01:06 v #1252 > > input.Length - 1 ]] + string letter :: acc) [[ input ]] +00:01:06 v #1253 > > // |> List.rev +00:01:06 v #1254 > > // |> List.skip 1 +00:01:06 v #1255 > > // |> SpiralSm.concat " " +00:01:06 v #1256 > > +00:01:06 v #1257 > > // "CA", +00:01:06 v #1258 > > // fun input => +00:01:06 v #1259 > > // input +00:01:06 v #1260 > > // |> Seq.fold (fun (acc : list string) letter => acc.Head.[[ 1 .. +00:01:06 v #1261 > > input.Length - 1 ]] + string letter :: acc) [[ input ]] +00:01:06 v #1262 > > // |> Seq.rev +00:01:06 v #1263 > > // |> Seq.skip 1 +00:01:06 v #1264 > > // |> SpiralSm.concat " " +00:01:06 v #1265 > > +00:01:06 v #1266 > > // "CB", +00:01:06 v #1267 > > // fun input => +00:01:06 v #1268 > > // input +00:01:06 v #1269 > > // |> Seq.toArray +00:01:06 v #1270 > > // |> Array.fold (fun (acc : a _ string) letter => acc |> +00:01:06 v #1271 > > Array.append (a ;[[ acc.[[0]].[[ 1 .. input.Length - 1 ]] + string letter ]])) +00:01:06 v #1272 > > (a ;[[ input ]]) +00:01:06 v #1273 > > // |> Array.rev +00:01:06 v #1274 > > // |> Array.skip 1 +00:01:06 v #1275 > > // |> SpiralSm.concat " " +00:01:06 v #1276 > > +00:01:06 v #1277 > > // "D", +00:01:06 v #1278 > > // fun input => +00:01:06 v #1279 > > // input +00:01:06 v #1280 > > // |> Seq.toList +00:01:06 v #1281 > > // |> fun list => +00:01:06 v #1282 > > // let rec loop (acc : list (list char)) = function +00:01:06 v #1283 > > // | _ when acc.Length = list.Length => acc +00:01:06 v #1284 > > // | head :: tail => +00:01:06 v #1285 > > // let item = tail ++ [[ head ]] +00:01:06 v #1286 > > // loop (item :: acc) item +00:01:06 v #1287 > > // | [[]] => [[]] +00:01:06 v #1288 > > // loop [[]] list +00:01:06 v #1289 > > // |> List.rev +00:01:06 v #1290 > > // |> List.map (List.toArray >> String) +00:01:06 v #1291 > > // |> SpiralSm.concat " " +00:01:06 v #1292 > > +00:01:06 v #1293 > > // "E", +00:01:06 v #1294 > > // fun input => +00:01:06 v #1295 > > // input +00:01:06 v #1296 > > // |> Seq.toList +00:01:06 v #1297 > > // |> fun list => +00:01:06 v #1298 > > // let rec loop (last : string) = function +00:01:06 v #1299 > > // | head :: tail => +00:01:06 v #1300 > > // let item = last.[[1 .. input.Length - 1]] + string +00:01:06 v #1301 > > head +00:01:06 v #1302 > > // item :: loop item tail +00:01:06 v #1303 > > // | [[]] => [[]] +00:01:06 v #1304 > > // loop input list +00:01:06 v #1305 > > // |> SpiralSm.concat " " +00:01:06 v #1306 > > +00:01:06 v #1307 > > "F", +00:01:06 v #1308 > > fun input => +00:01:06 v #1309 > > // Array.singleton 0 +00:01:06 v #1310 > > // |> Array.append [[| 1 .. input.Length - 1 |]] +00:01:06 v #1311 > > // |> Array.map (fun i -> input.[[ i .. ]] + input.[[ .. i - 1 ]]) +00:01:06 v #1312 > > // |> SpiralSm.concat " " +00:01:06 v #1313 > > inl input_length = input |> sm.length +00:01:06 v #1314 > > am.singleton 0i32 +00:01:06 v #1315 > > |> am.append (am'.init_series 1 (input_length - 1) 1 |> fun x => a x +00:01:06 v #1316 > > : _ int _) +00:01:06 v #1317 > > |> fun (a x) => x +00:01:06 v #1318 > > |> am'.map_base fun i => +00:01:06 v #1319 > > inl a = input |> sm'.slice i (input_length - 1) +00:01:06 v #1320 > > inl b = input |> sm'.slice 0 (i - 1) +00:01:06 v #1321 > > a +. b +00:01:06 v #1322 > > |> fun x => a x : _ int _ +00:01:06 v #1323 > > |> seq.of_array +00:01:06 v #1324 > > |> sm'.concat " " +00:01:06 v #1325 > > +00:01:06 v #1326 > > "FA", +00:01:06 v #1327 > > fun input => +00:01:06 v #1328 > > // List.singleton 0 +00:01:06 v #1329 > > // |> List.append [[ 1 .. input.Length - 1 ]] +00:01:06 v #1330 > > // // |> List.map (fun i => input.[[ i .. ]] + input.[[ .. i - 1 ]]) +00:01:06 v #1331 > > // |> SpiralSm.concat " " +00:01:06 v #1332 > > inl input_length = input |> sm.length +00:01:06 v #1333 > > listm.singleton 0i32 +00:01:06 v #1334 > > |> listm.append (listm'.init_series 1 (input_length - 1) 1) +00:01:06 v #1335 > > |> listm.map (fun i => +00:01:06 v #1336 > > inl a = input |> sm'.slice i (input_length - 1) +00:01:06 v #1337 > > inl b = if i = 0 then "" else input |> sm'.slice 0 (i - 1) +00:01:06 v #1338 > > a +. b +00:01:06 v #1339 > > ) +00:01:06 v #1340 > > |> listm'.box +00:01:06 v #1341 > > |> listm'.to_array' +00:01:06 v #1342 > > |> fun x => a x : _ int _ +00:01:06 v #1343 > > |> seq.of_array +00:01:06 v #1344 > > |> sm'.concat " " +00:01:06 v #1345 > > +00:01:06 v #1346 > > // "FB", +00:01:06 v #1347 > > // fun input => +00:01:06 v #1348 > > // Seq.singleton 0 +00:01:06 v #1349 > > // // |> Seq.append (seq { 1 .. input.Length - 1 }) +00:01:06 v #1350 > > // // |> Seq.map (fun i => input.[[ i .. ]] + input.[[ .. i - 1 ]]) +00:01:06 v #1351 > > // |> SpiralSm.concat " " +00:01:06 v #1352 > > +00:01:06 v #1353 > > // "FC", +00:01:06 v #1354 > > // fun input => +00:01:06 v #1355 > > // Array.singleton 0 +00:01:06 v #1356 > > // |> Array.append (a ;[[ 1 .. input.Length - 1 ]]) +00:01:06 v #1357 > > //// |> Array.Parallel.map (fun i => input.[[ i .. ]] + input.[[ .. i +00:01:06 v #1358 > > - 1 ]]) +00:01:06 v #1359 > > // |> SpiralSm.concat " " +00:01:06 v #1360 > > ]] +00:01:06 v #1361 > > +00:01:06 v #1362 > > inl rec rotate_strings_tests () = +00:01:06 v #1363 > > inl test_cases = [[ +00:01:06 v #1364 > > "abc", "bca cab abc" +00:01:06 v #1365 > > "abcde", "bcdea cdeab deabc eabcd abcde" +00:01:06 v #1366 > > "abcdefghi", "bcdefghia cdefghiab defghiabc efghiabcd fghiabcde +00:01:06 v #1367 > > ghiabcdef hiabcdefg iabcdefgh abcdefghi" +00:01:06 v #1368 > > "abab", "baba abab baba abab" +00:01:06 v #1369 > > "aa", "aa aa" +00:01:06 v #1370 > > "z", "z" +00:01:06 v #1371 > > ]] +00:01:06 v #1372 > > +00:01:06 v #1373 > > inl solutions = get_solutions () +00:01:06 v #1374 > > +00:01:06 v #1375 > > // inl is_fast () = true +00:01:06 v #1376 > > +00:01:06 v #1377 > > inl count = +00:01:06 v #1378 > > if is_fast () +00:01:06 v #1379 > > then 1000i32 +00:01:06 v #1380 > > else 2000000i32 +00:01:06 v #1381 > > +00:01:06 v #1382 > > run_all (reflection.nameof { rotate_strings_tests }) count solutions +00:01:06 v #1383 > > test_cases +00:01:06 v #1384 > > |> sort_result_list +00:01:06 v #1385 > > +00:01:06 v #1386 > > rotate_strings_tests () +00:01:34 v #1387 > > +00:01:34 v #1388 > > ── [ 27.81s - stdout ] ───────────────────────────────────────────────────────── +00:01:34 v #1389 > > │ +00:01:34 v #1390 > > │ ``` +00:01:34 v #1391 > > │ 00:00:00 v #1 benchmark.run_all / { test_name = +00:01:34 v #1392 > > rotate_strings_tests; count = 2000000 } +00:01:34 v #1393 > > │ +00:01:34 v #1394 > > │ 00:00:00 v #2 benchmark.run / { input_str = "abc" } +00:01:34 v #1395 > > │ 00:00:01 v #3 benchmark.run / solutions.map / { i = 1; +00:01:34 v #1396 > > test_name = F; time = 1253 } +00:01:34 v #1397 > > │ 00:00:03 v #4 benchmark.run / solutions.map / { i = 2; +00:01:34 v #1398 > > test_name = FA; time = 1654 } +00:01:34 v #1399 > > │ +00:01:34 v #1400 > > │ 00:00:03 v #5 benchmark.run / { input_str = "abcde" } +00:01:34 v #1401 > > │ 00:00:06 v #6 benchmark.run / solutions.map / { i = 1; +00:01:34 v #1402 > > test_name = F; time = 1769 } +00:01:34 v #1403 > > │ 00:00:08 v #7 benchmark.run / solutions.map / { i = 2; +00:01:34 v #1404 > > test_name = FA; time = 2186 } +00:01:34 v #1405 > > │ +00:01:34 v #1406 > > │ 00:00:08 v #8 benchmark.run / { input_str = "abcdefghi" +00:01:34 v #1407 > > } +00:01:34 v #1408 > > │ 00:00:12 v #9 benchmark.run / solutions.map / { i = 1; +00:01:34 v #1409 > > test_name = F; time = 2815 } +00:01:34 v #1410 > > │ 00:00:16 v #10 benchmark.run / solutions.map / { i = 2; +00:01:34 v #1411 > > test_name = FA; time = 3839 } +00:01:34 v #1412 > > │ +00:01:34 v #1413 > > │ 00:00:16 v #11 benchmark.run / { input_str = "abab" } +00:01:34 v #1414 > > │ 00:00:18 v #12 benchmark.run / solutions.map / { i = 1; +00:01:34 v #1415 > > test_name = F; time = 1508 } +00:01:34 v #1416 > > │ 00:00:21 v #13 benchmark.run / solutions.map / { i = 2; +00:01:34 v #1417 > > test_name = FA; time = 1862 } +00:01:34 v #1418 > > │ +00:01:34 v #1419 > > │ 00:00:21 v #14 benchmark.run / { input_str = "aa" } +00:01:34 v #1420 > > │ 00:00:22 v #15 benchmark.run / solutions.map / { i = 1; +00:01:34 v #1421 > > test_name = F; time = 1103 } +00:01:34 v #1422 > > │ 00:00:24 v #16 benchmark.run / solutions.map / { i = 2; +00:01:34 v #1423 > > test_name = FA; time = 1310 } +00:01:34 v #1424 > > │ +00:01:34 v #1425 > > │ 00:00:24 v #17 benchmark.run / { input_str = "z" } +00:01:34 v #1426 > > │ 00:00:25 v #18 benchmark.run / solutions.map / { i = 1; +00:01:34 v #1427 > > test_name = F; time = 312 } +00:01:34 v #1428 > > │ 00:00:25 v #19 benchmark.run / solutions.map / { i = 2; +00:01:34 v #1429 > > test_name = FA; time = 351 } +00:01:34 v #1430 > > │ ``` +00:01:34 v #1431 > > │ input | expected +00:01:34 v #1432 > > +00:01:34 v #1433 > > | result +00:01:34 v #1434 > > +00:01:34 v #1435 > > | best +00:01:34 v #1436 > > │ --- | --- +00:01:34 v #1437 > > +00:01:34 v #1438 > > | --- +00:01:34 v #1439 > > +00:01:34 v #1440 > > | --- +00:01:34 v #1441 > > │ "abc" | "bca cab abc" +00:01:34 v #1442 > > | "bca cab abc" +00:01:34 v #1443 > > | 1, 1253 +00:01:34 v #1444 > > │ "abcde" | "bcdea cdeab deabc eabcd abcde" +00:01:34 v #1445 > > | "bcdea cdeab deabc eabcd abcde" +00:01:34 v #1446 > > | 1, 1769 +00:01:34 v #1447 > > │ "abcdefghi" | "bcdefghia cdefghiab defghiabc efghiabcd +00:01:34 v #1448 > > fghiabcde ghiabcdef hiabcdefg iabcdefgh abcdefghi" | "bcdefghia cdefghiab +00:01:34 v #1449 > > defghiabc efghiabcd fghiabcde ghiabcdef hiabcdefg iabcdefgh abcdefghi" | 1, 2815 +00:01:34 v #1450 > > │ "abab" | "baba abab baba abab" +00:01:34 v #1451 > > | "baba abab baba abab" +00:01:34 v #1452 > > | 1, 1508 +00:01:34 v #1453 > > │ "aa" | "aa aa" +00:01:34 v #1454 > > +00:01:34 v #1455 > > | "aa aa" +00:01:34 v #1456 > > +00:01:34 v #1457 > > | 1, 1103 +00:01:34 v #1458 > > │ "z" | "z" +00:01:34 v #1459 > > +00:01:34 v #1460 > > | "z" +00:01:34 v #1461 > > +00:01:34 v #1462 > > | 1, 312 +00:01:34 v #1463 > > │ ``` +00:01:34 v #1464 > > │ 00:00:25 v #20 benchmark.sort_result_list +00:01:34 v #1465 > > averages.iter / { i = 1; avg = 1460 } +00:01:34 v #1466 > > │ 00:00:25 v #21 benchmark.sort_result_list +00:01:34 v #1467 > > averages.iter / { i = 2; avg = 1867 } +00:01:34 v #1468 > > │ ``` +00:01:34 v #1469 > > │ +00:01:34 v #1470 > > +00:01:34 v #1471 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:01:34 v #1472 > > //// test +00:01:34 v #1473 > > +00:01:34 v #1474 > > // rotate_strings_tests () +00:01:34 v #1475 > > () +00:01:35 v #1476 > > +00:01:35 v #1477 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:01:35 v #1478 > > │ ## binary_search_tests +00:01:35 v #1479 > > +00:01:35 v #1480 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:01:35 v #1481 > > │ ``` +00:01:35 v #1482 > > │ 02:19:29 verbose #1 benchmark.run_all / {count = +00:01:35 v #1483 > > 10000000; test_name = binary_search_tests} +00:01:35 v #1484 > > │ +00:01:35 v #1485 > > │ 02:19:29 verbose #2 benchmark.run / {input_str = +00:01:35 v #1486 > > struct ([|1; 3; 4; 6; 8; 9; 11|], 6, 7)} +00:01:35 v #1487 > > │ 02:19:30 verbose #3 benchmark.run / solutions.map / {i +00:01:35 v #1488 > > = 1; test_name = semi_open_1; time = 662} +00:01:35 v #1489 > > │ 02:19:30 verbose #4 benchmark.run / solutions.map / {i +00:01:35 v #1490 > > = 2; test_name = closed_1; time = 619} +00:01:35 v #1491 > > │ 02:19:31 verbose #5 benchmark.run / solutions.map / {i +00:01:35 v #1492 > > = 3; test_name = semi_open_2; time = 644} +00:01:35 v #1493 > > │ 02:19:32 verbose #6 benchmark.run / solutions.map / {i +00:01:35 v #1494 > > = 4; test_name = closed_2; time = 610} +00:01:35 v #1495 > > │ +00:01:35 v #1496 > > │ 02:19:32 verbose #7 benchmark.run / {input_str = +00:01:35 v #1497 > > struct ([|1; 3; 4; 6; 8; 9; 11|], 1, 7)} +00:01:35 v #1498 > > │ 02:19:33 verbose #8 benchmark.run / solutions.map / {i +00:01:35 v #1499 > > = 1; test_name = semi_open_1; time = 607} +00:01:35 v #1500 > > │ 02:19:33 verbose #9 benchmark.run / solutions.map / {i +00:01:35 v #1501 > > = 2; test_name = closed_1; time = 559} +00:01:35 v #1502 > > │ 02:19:34 verbose #10 benchmark.run / solutions.map +00:01:35 v #1503 > > {i = 3; test_name = semi_open_2; time = 612} +00:01:35 v #1504 > > │ 02:19:35 verbose #11 benchmark.run / solutions.map +00:01:35 v #1505 > > {i = 4; test_name = closed_2; time = 577} +00:01:35 v #1506 > > │ +00:01:35 v #1507 > > │ 02:19:35 verbose #12 benchmark.run / {input_str = +00:01:35 v #1508 > > struct ([|1; 3; 4; 6; 8; 9; 11|], 11, 7)} +00:01:35 v #1509 > > │ 02:19:35 verbose #13 benchmark.run / solutions.map +00:01:35 v #1510 > > {i = 1; test_name = semi_open_1; time = 550} +00:01:35 v #1511 > > │ 02:19:36 verbose #14 benchmark.run / solutions.map +00:01:35 v #1512 > > {i = 2; test_name = closed_1; time = 580} +00:01:35 v #1513 > > │ 02:19:37 verbose #15 benchmark.run / solutions.map +00:01:35 v #1514 > > {i = 3; test_name = semi_open_2; time = 624} +00:01:35 v #1515 > > │ 02:19:37 verbose #16 benchmark.run / solutions.map +00:01:35 v #1516 > > {i = 4; test_name = closed_2; time = 590} +00:01:35 v #1517 > > │ +00:01:35 v #1518 > > │ 02:19:37 verbose #17 benchmark.run / {input_str = +00:01:35 v #1519 > > struct ([|1; 3; 4; 6; 8; 9; 11|], 12, 7)} +00:01:35 v #1520 > > │ 02:19:38 verbose #18 benchmark.run / solutions.map +00:01:35 v #1521 > > {i = 1; test_name = semi_open_1; time = 574} +00:01:35 v #1522 > > │ 02:19:39 verbose #19 benchmark.run / solutions.map +00:01:35 v #1523 > > {i = 2; test_name = closed_1; time = 577} +00:01:35 v #1524 > > │ 02:19:39 verbose #20 benchmark.run / solutions.map +00:01:35 v #1525 > > {i = 3; test_name = semi_open_2; time = 582} +00:01:35 v #1526 > > │ 02:19:40 verbose #21 benchmark.run / solutions.map +00:01:35 v #1527 > > {i = 4; test_name = closed_2; time = 585} +00:01:35 v #1528 > > │ +00:01:35 v #1529 > > │ 02:19:40 verbose #22 benchmark.run / {input_str = +00:01:35 v #1530 > > struct ([|1; 2; 3; 4...00; ...|], 60, 1000)} +00:01:35 v #1531 > > │ 02:19:41 verbose #23 benchmark.run / solutions.map +00:01:35 v #1532 > > {i = 1; test_name = semi_open_1; time = 610} +00:01:35 v #1533 > > │ 02:19:42 verbose #24 benchmark.run / solutions.map +00:01:35 v #1534 > > {i = 2; test_name = closed_1; time = 672} +00:01:35 v #1535 > > │ 02:19:42 verbose #25 benchmark.run / solutions.map +00:01:35 v #1536 > > {i = 3; test_name = semi_open_2; time = 636} +00:01:35 v #1537 > > │ 02:19:43 verbose #26 benchmark.run / solutions.map +00:01:35 v #1538 > > {i = 4; test_name = closed_2; time = 629} +00:01:35 v #1539 > > │ +00:01:35 v #1540 > > │ 02:19:43 verbose #27 benchmark.run / {input_str = +00:01:35 v #1541 > > struct ([|1; 3; 4; 6; 8; 9; 11|], 6, 7)} +00:01:35 v #1542 > > │ 02:19:44 verbose #28 benchmark.run / solutions.map +00:01:35 v #1543 > > {i = 1; test_name = semi_open_1; time = 599} +00:01:35 v #1544 > > │ 02:19:44 verbose #29 benchmark.run / solutions.map +00:01:35 v #1545 > > {i = 2; test_name = closed_1; time = 561} +00:01:35 v #1546 > > │ 02:19:45 verbose #30 benchmark.run / solutions.map +00:01:35 v #1547 > > {i = 3; test_name = semi_open_2; time = 604} +00:01:35 v #1548 > > │ 02:19:46 verbose #31 benchmark.run / solutions.map +00:01:35 v #1549 > > {i = 4; test_name = closed_2; time = 573} +00:01:35 v #1550 > > │ +00:01:35 v #1551 > > │ 02:19:46 verbose #32 benchmark.run / {input_str = +00:01:35 v #1552 > > struct ([|1; 3; 4; 6; 8; 9; 11|], 1, 7)} +00:01:35 v #1553 > > │ 02:19:47 verbose #33 benchmark.run / solutions.map +00:01:35 v #1554 > > {i = 1; test_name = semi_open_1; time = 635} +00:01:35 v #1555 > > │ 02:19:47 verbose #34 benchmark.run / solutions.map +00:01:35 v #1556 > > {i = 2; test_name = closed_1; time = 603} +00:01:35 v #1557 > > │ 02:19:48 verbose #35 benchmark.run / solutions.map +00:01:35 v #1558 > > {i = 3; test_name = semi_open_2; time = 644} +00:01:35 v #1559 > > │ 02:19:49 verbose #36 benchmark.run / solutions.map +00:01:35 v #1560 > > {i = 4; test_name = closed_2; time = 628} +00:01:35 v #1561 > > │ +00:01:35 v #1562 > > │ 02:19:49 verbose #37 benchmark.run / {input_str = +00:01:35 v #1563 > > struct ([|1; 3; 4; 6; 8; 9; 11|], 11, 7)} +00:01:35 v #1564 > > │ 02:19:49 verbose #38 benchmark.run / solutions.map +00:01:35 v #1565 > > {i = 1; test_name = semi_open_1; time = 643} +00:01:35 v #1566 > > │ 02:19:50 verbose #39 benchmark.run / solutions.map +00:01:35 v #1567 > > {i = 2; test_name = closed_1; time = 606} +00:01:35 v #1568 > > │ 02:19:51 verbose #40 benchmark.run / solutions.map +00:01:35 v #1569 > > {i = 3; test_name = semi_open_2; time = 636} +00:01:35 v #1570 > > │ 02:19:52 verbose #41 benchmark.run / solutions.map +00:01:35 v #1571 > > {i = 4; test_name = closed_2; time = 624} +00:01:35 v #1572 > > │ +00:01:35 v #1573 > > │ 02:19:52 verbose #42 benchmark.run / {input_str = +00:01:35 v #1574 > > struct ([|1; 3; 4; 6; 8; 9; 11|], 12, 7)} +00:01:35 v #1575 > > │ 02:19:52 verbose #43 benchmark.run / solutions.map +00:01:35 v #1576 > > {i = 1; test_name = semi_open_1; time = 689} +00:01:35 v #1577 > > │ 02:19:53 verbose #44 benchmark.run / solutions.map +00:01:35 v #1578 > > {i = 2; test_name = closed_1; time = 613} +00:01:35 v #1579 > > │ 02:19:54 verbose #45 benchmark.run / solutions.map +00:01:35 v #1580 > > {i = 3; test_name = semi_open_2; time = 623} +00:01:35 v #1581 > > │ 02:19:55 verbose #46 benchmark.run / solutions.map +00:01:35 v #1582 > > {i = 4; test_name = closed_2; time = 613} +00:01:35 v #1583 > > │ +00:01:35 v #1584 > > │ 02:19:55 verbose #47 benchmark.run / {input_str = +00:01:35 v #1585 > > struct ([|1; 2; 3; 4...100; ...|], 60, 100)} +00:01:35 v #1586 > > │ 02:19:55 verbose #48 benchmark.run / solutions.map +00:01:35 v #1587 > > {i = 1; test_name = semi_open_1; time = 630} +00:01:35 v #1588 > > │ 02:19:56 verbose #49 benchmark.run / solutions.map +00:01:35 v #1589 > > {i = 2; test_name = closed_1; time = 633} +00:01:35 v #1590 > > │ 02:19:57 verbose #50 benchmark.run / solutions.map +00:01:35 v #1591 > > {i = 3; test_name = semi_open_2; time = 653} +00:01:35 v #1592 > > │ 02:19:58 verbose #51 benchmark.run / solutions.map +00:01:35 v #1593 > > {i = 4; test_name = closed_2; time = 646} +00:01:35 v #1594 > > │ ``` +00:01:35 v #1595 > > │ input | expected | result | +00:01:35 v #1596 > > best +00:01:35 v #1597 > > │ --- | --- | --- | +00:01:35 v #1598 > > --- +00:01:35 v #1599 > > │ struct ([1; 3; 4; 6; 8; 9; 11], 6, 7) | US4_0 3 | US4_0 3 | +00:01:35 v #1600 > > 4, 610 +00:01:35 v #1601 > > │ struct ([1; 3; 4; 6; 8; 9; 11], 1, 7) | US4_0 0 | US4_0 0 | +00:01:35 v #1602 > > 2, 559 +00:01:35 v #1603 > > │ struct ([1; 3; 4; 6; 8; 9; 11], 11, 7) | US4_0 6 | US4_0 6 | +00:01:35 v #1604 > > 1, 550 +00:01:35 v #1605 > > │ struct ([1; 3; 4; 6; 8; 9; 11], 12, 7) | US4_1 | US4_1 | +00:01:35 v #1606 > > 1, 574 +00:01:35 v #1607 > > │ struct ([1; 2; 3; 4...00; ...], 60, 1000) | US4_0 59 | US4_0 59 | +00:01:35 v #1608 > > 1, 610 +00:01:35 v #1609 > > │ struct ([1; 3; 4; 6; 8; 9; 11], 6, 7) | US4_0 3 | US4_0 3 | +00:01:35 v #1610 > > 2, 561 +00:01:35 v #1611 > > │ struct ([1; 3; 4; 6; 8; 9; 11], 1, 7) | US4_0 0 | US4_0 0 | +00:01:35 v #1612 > > 2, 603 +00:01:35 v #1613 > > │ struct ([1; 3; 4; 6; 8; 9; 11], 11, 7) | US4_0 6 | US4_0 6 | +00:01:35 v #1614 > > 2, 606 +00:01:35 v #1615 > > │ struct ([1; 3; 4; 6; 8; 9; 11], 12, 7) | US4_1 | US4_1 | +00:01:35 v #1616 > > 2, 613 +00:01:35 v #1617 > > │ struct ([1; 2; 3; 4...100; ...], 60, 100) | US4_0 59 | US4_0 59 | +00:01:35 v #1618 > > 1, 630 +00:01:35 v #1619 > > │ ``` +00:01:35 v #1620 > > │ 02:19:58 verbose #52 benchmark.sort_result_list +00:01:35 v #1621 > > averages.iter / {avg = 602; i = 2} +00:01:35 v #1622 > > │ 02:19:58 verbose #53 benchmark.sort_result_list +00:01:35 v #1623 > > averages.iter / {avg = 607; i = 4} +00:01:35 v #1624 > > │ 02:19:58 verbose #54 benchmark.sort_result_list +00:01:35 v #1625 > > averages.iter / {avg = 619; i = 1} +00:01:35 v #1626 > > │ 02:19:58 verbose #55 benchmark.sort_result_list +00:01:35 v #1627 > > averages.iter / {avg = 625; i = 3} +00:01:35 v #1628 > > │ ``` +00:01:35 v #1629 > > +00:01:35 v #1630 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:01:35 v #1631 > > //// test +00:01:35 v #1632 > > //// timeout=90000 +00:01:35 v #1633 > > +00:01:35 v #1634 > > inl binary_search_semi_open_1 arr target left right = +00:01:35 v #1635 > > inl rec body left right = +00:01:35 v #1636 > > if left >= right +00:01:35 v #1637 > > then None +00:01:35 v #1638 > > else +00:01:35 v #1639 > > inl mid = (left + right) / 2 +00:01:35 v #1640 > > inl item = index arr mid +00:01:35 v #1641 > > if item = target +00:01:35 v #1642 > > then Some mid +00:01:35 v #1643 > > elif item < target +00:01:35 v #1644 > > then loop (mid + 1) right +00:01:35 v #1645 > > else loop left mid +00:01:35 v #1646 > > and inl loop left right = +00:01:35 v #1647 > > if var_is right |> not +00:01:35 v #1648 > > then body left right +00:01:35 v #1649 > > else +00:01:35 v #1650 > > inl left = dyn left +00:01:35 v #1651 > > join body left right +00:01:35 v #1652 > > loop left right +00:01:35 v #1653 > > +00:01:35 v #1654 > > inl binary_search_closed_1 arr target left right = +00:01:35 v #1655 > > inl rec body left right = +00:01:35 v #1656 > > if left > right +00:01:35 v #1657 > > then None +00:01:35 v #1658 > > else +00:01:35 v #1659 > > inl mid = (left + right) / 2 +00:01:35 v #1660 > > inl item = index arr mid +00:01:35 v #1661 > > if item = target +00:01:35 v #1662 > > then Some mid +00:01:35 v #1663 > > elif item < target +00:01:35 v #1664 > > then loop (mid + 1) right +00:01:35 v #1665 > > else loop left (mid - 1) +00:01:35 v #1666 > > and inl loop left right = +00:01:35 v #1667 > > if var_is right |> not +00:01:35 v #1668 > > then body left right +00:01:35 v #1669 > > else +00:01:35 v #1670 > > inl left = dyn left +00:01:35 v #1671 > > join body left right +00:01:35 v #1672 > > loop left right +00:01:35 v #1673 > > +00:01:35 v #1674 > > inl binary_search_semi_open_2 arr target left right = +00:01:35 v #1675 > > let rec body left right = +00:01:35 v #1676 > > if left >= right +00:01:35 v #1677 > > then None +00:01:35 v #1678 > > else +00:01:35 v #1679 > > inl mid = (left + right) / 2 +00:01:35 v #1680 > > inl item = index arr mid +00:01:35 v #1681 > > if item = target +00:01:35 v #1682 > > then Some mid +00:01:35 v #1683 > > elif item < target +00:01:35 v #1684 > > then loop (mid + 1) right +00:01:35 v #1685 > > else loop left mid +00:01:35 v #1686 > > and inl loop left right = body left right +00:01:35 v #1687 > > loop left right +00:01:35 v #1688 > > +00:01:35 v #1689 > > inl binary_search_closed_2 arr target left right = +00:01:35 v #1690 > > let rec body left right = +00:01:35 v #1691 > > if left > right +00:01:35 v #1692 > > then None +00:01:35 v #1693 > > else +00:01:35 v #1694 > > inl mid = (left + right) / 2 +00:01:35 v #1695 > > inl item = index arr mid +00:01:35 v #1696 > > if item = target +00:01:35 v #1697 > > then Some mid +00:01:35 v #1698 > > elif item < target +00:01:35 v #1699 > > then loop (mid + 1) right +00:01:35 v #1700 > > else loop left (mid - 1) +00:01:35 v #1701 > > and inl loop left right = body left right +00:01:35 v #1702 > > loop left right +00:01:35 v #1703 > > +00:01:35 v #1704 > > inl get_solutions () = +00:01:35 v #1705 > > [[ +00:01:35 v #1706 > > "semi_open_1", +00:01:35 v #1707 > > fun (arr, (target, len)) => +00:01:35 v #1708 > > binary_search_semi_open_1 arr target 0 len +00:01:35 v #1709 > > +00:01:35 v #1710 > > "closed_1", +00:01:35 v #1711 > > fun (arr, (target, len)) => +00:01:35 v #1712 > > binary_search_closed_1 arr target 0 (len - 1) +00:01:35 v #1713 > > +00:01:35 v #1714 > > "semi_open_2", +00:01:35 v #1715 > > fun (arr, (target, len)) => +00:01:35 v #1716 > > binary_search_semi_open_2 arr target 0 len +00:01:35 v #1717 > > +00:01:35 v #1718 > > "closed_2", +00:01:35 v #1719 > > fun (arr, (target, len)) => +00:01:35 v #1720 > > binary_search_closed_2 arr target 0 (len - 1) +00:01:35 v #1721 > > ]] +00:01:35 v #1722 > > +00:01:35 v #1723 > > inl rec binary_search_tests () = +00:01:35 v #1724 > > inl arr_with_len target len arr = +00:01:35 v #1725 > > arr, (target, (len |> optionm'.default_with fun () => length arr)) +00:01:35 v #1726 > > +00:01:35 v #1727 > > inl test_cases = [[ +00:01:35 v #1728 > > (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 6 None), (Some 3i32) +00:01:35 v #1729 > > (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 1 None), (Some 0i32) +00:01:35 v #1730 > > (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 11 None), (Some 6i32) +00:01:35 v #1731 > > (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 12 None), None +00:01:35 v #1732 > > ((am'.init_series 1i32 1000 1 |> fun x => a x : _ int _) |> arr_with_len +00:01:35 v #1733 > > 60 None), (Some 59) +00:01:35 v #1734 > > +00:01:35 v #1735 > > (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 6 (Some 7)), (Some +00:01:35 v #1736 > > 3i32) +00:01:35 v #1737 > > (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 1 (Some 7)), (Some +00:01:35 v #1738 > > 0i32) +00:01:35 v #1739 > > (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 11 (Some 7)), (Some +00:01:35 v #1740 > > 6i32) +00:01:35 v #1741 > > (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 12 (Some 7)), None +00:01:35 v #1742 > > ((am'.init_series 1i32 1000 1 |> fun x => a x : _ int _) |> arr_with_len +00:01:35 v #1743 > > 60 (Some 100)), (Some 59) +00:01:35 v #1744 > > ]] +00:01:35 v #1745 > > +00:01:35 v #1746 > > inl solutions = get_solutions () +00:01:35 v #1747 > > +00:01:35 v #1748 > > // inl is_fast () = true +00:01:35 v #1749 > > +00:01:35 v #1750 > > inl count = +00:01:35 v #1751 > > if is_fast () +00:01:35 v #1752 > > then 1000i32 +00:01:35 v #1753 > > else 10000000i32 +00:01:35 v #1754 > > +00:01:35 v #1755 > > run_all (reflection.nameof { binary_search_tests }) count solutions +00:01:35 v #1756 > > test_cases +00:01:35 v #1757 > > |> sort_result_list +00:01:35 v #1758 > > +00:01:35 v #1759 > > +00:01:35 v #1760 > > let main () = +00:01:35 v #1761 > > binary_search_tests () +00:02:16 v #1762 > > +00:02:16 v #1763 > > ── [ 41.37s - stdout ] ───────────────────────────────────────────────────────── +00:02:16 v #1764 > > │ +00:02:16 v #1765 > > │ ``` +00:02:16 v #1766 > > │ 00:00:00 v #1 benchmark.run_all / { test_name = +00:02:16 v #1767 > > binary_search_tests; count = 10000000 } +00:02:16 v #1768 > > │ +00:02:16 v #1769 > > │ 00:00:00 v #2 benchmark.run / { input_str = struct ([|1; +00:02:16 v #1770 > > 3; 4; 6; 8; 9; 11|], 6, 7) } +00:02:16 v #1771 > > │ 00:00:01 v #3 benchmark.run / solutions.map / { i = 1; +00:02:16 v #1772 > > test_name = semi_open_1; time = 802 } +00:02:16 v #1773 > > │ 00:00:02 v #4 benchmark.run / solutions.map / { i = 2; +00:02:16 v #1774 > > test_name = closed_1; time = 660 } +00:02:16 v #1775 > > │ 00:00:03 v #5 benchmark.run / solutions.map / { i = 3; +00:02:16 v #1776 > > test_name = semi_open_2; time = 663 } +00:02:16 v #1777 > > │ 00:00:04 v #6 benchmark.run / solutions.map / { i = 4; +00:02:16 v #1778 > > test_name = closed_2; time = 741 } +00:02:16 v #1779 > > │ +00:02:16 v #1780 > > │ 00:00:04 v #7 benchmark.run / { input_str = struct ([|1; +00:02:16 v #1781 > > 3; 4; 6; 8; 9; 11|], 1, 7) } +00:02:16 v #1782 > > │ 00:00:05 v #8 benchmark.run / solutions.map / { i = 1; +00:02:16 v #1783 > > test_name = semi_open_1; time = 724 } +00:02:16 v #1784 > > │ 00:00:06 v #9 benchmark.run / solutions.map / { i = 2; +00:02:16 v #1785 > > test_name = closed_1; time = 744 } +00:02:16 v #1786 > > │ 00:00:07 v #10 benchmark.run / solutions.map / { i = 3; +00:02:16 v #1787 > > test_name = semi_open_2; time = 762 } +00:02:16 v #1788 > > │ 00:00:08 v #11 benchmark.run / solutions.map / { i = 4; +00:02:16 v #1789 > > test_name = closed_2; time = 831 } +00:02:16 v #1790 > > │ +00:02:16 v #1791 > > │ 00:00:08 v #12 benchmark.run / { input_str = struct +00:02:16 v #1792 > > ([|1; 3; 4; 6; 8; 9; 11|], 11, 7) } +00:02:16 v #1793 > > │ 00:00:09 v #13 benchmark.run / solutions.map / { i = 1; +00:02:16 v #1794 > > test_name = semi_open_1; time = 652 } +00:02:16 v #1795 > > │ 00:00:10 v #14 benchmark.run / solutions.map / { i = 2; +00:02:16 v #1796 > > test_name = closed_1; time = 649 } +00:02:16 v #1797 > > │ 00:00:11 v #15 benchmark.run / solutions.map / { i = 3; +00:02:16 v #1798 > > test_name = semi_open_2; time = 604 } +00:02:16 v #1799 > > │ 00:00:12 v #16 benchmark.run / solutions.map / { i = 4; +00:02:16 v #1800 > > test_name = closed_2; time = 589 } +00:02:16 v #1801 > > │ +00:02:16 v #1802 > > │ 00:00:12 v #17 benchmark.run / { input_str = struct +00:02:16 v #1803 > > ([|1; 3; 4; 6; 8; 9; 11|], 12, 7) } +00:02:16 v #1804 > > │ 00:00:13 v #18 benchmark.run / solutions.map / { i = 1; +00:02:16 v #1805 > > test_name = semi_open_1; time = 609 } +00:02:16 v #1806 > > │ 00:00:14 v #19 benchmark.run / solutions.map / { i = 2; +00:02:16 v #1807 > > test_name = closed_1; time = 649 } +00:02:16 v #1808 > > │ 00:00:15 v #20 benchmark.run / solutions.map / { i = 3; +00:02:16 v #1809 > > test_name = semi_open_2; time = 590 } +00:02:16 v #1810 > > │ 00:00:16 v #21 benchmark.run / solutions.map / { i = 4; +00:02:16 v #1811 > > test_name = closed_2; time = 589 } +00:02:16 v #1812 > > │ +00:02:16 v #1813 > > │ 00:00:16 v #22 benchmark.run / { input_str = struct +00:02:16 v #1814 > > ([|1; 2; 3; 4...00; ...|], 60, 1000) } +00:02:16 v #1815 > > │ 00:00:17 v #23 benchmark.run / solutions.map / { i = 1; +00:02:16 v #1816 > > test_name = semi_open_1; time = 627 } +00:02:16 v #1817 > > │ 00:00:17 v #24 benchmark.run / solutions.map / { i = 2; +00:02:16 v #1818 > > test_name = closed_1; time = 654 } +00:02:16 v #1819 > > │ 00:00:18 v #25 benchmark.run / solutions.map / { i = 3; +00:02:16 v #1820 > > test_name = semi_open_2; time = 642 } +00:02:16 v #1821 > > │ 00:00:19 v #26 benchmark.run / solutions.map / { i = 4; +00:02:16 v #1822 > > test_name = closed_2; time = 654 } +00:02:16 v #1823 > > │ +00:02:16 v #1824 > > │ 00:00:19 v #27 benchmark.run / { input_str = struct +00:02:16 v #1825 > > ([|1; 3; 4; 6; 8; 9; 11|], 6, 7) } +00:02:16 v #1826 > > │ 00:00:20 v #28 benchmark.run / solutions.map / { i = 1; +00:02:16 v #1827 > > test_name = semi_open_1; time = 629 } +00:02:16 v #1828 > > │ 00:00:21 v #29 benchmark.run / solutions.map / { i = 2; +00:02:16 v #1829 > > test_name = closed_1; time = 672 } +00:02:16 v #1830 > > │ 00:00:22 v #30 benchmark.run / solutions.map / { i = 3; +00:02:16 v #1831 > > test_name = semi_open_2; time = 664 } +00:02:16 v #1832 > > │ 00:00:23 v #31 benchmark.run / solutions.map / { i = 4; +00:02:16 v #1833 > > test_name = closed_2; time = 676 } +00:02:16 v #1834 > > │ +00:02:16 v #1835 > > │ 00:00:23 v #32 benchmark.run / { input_str = struct +00:02:16 v #1836 > > ([|1; 3; 4; 6; 8; 9; 11|], 1, 7) } +00:02:16 v #1837 > > │ 00:00:24 v #33 benchmark.run / solutions.map / { i = 1; +00:02:16 v #1838 > > test_name = semi_open_1; time = 605 } +00:02:16 v #1839 > > │ 00:00:25 v #34 benchmark.run / solutions.map / { i = 2; +00:02:16 v #1840 > > test_name = closed_1; time = 619 } +00:02:16 v #1841 > > │ 00:00:26 v #35 benchmark.run / solutions.map / { i = 3; +00:02:16 v #1842 > > test_name = semi_open_2; time = 596 } +00:02:16 v #1843 > > │ 00:00:27 v #36 benchmark.run / solutions.map / { i = 4; +00:02:16 v #1844 > > test_name = closed_2; time = 596 } +00:02:16 v #1845 > > │ +00:02:16 v #1846 > > │ 00:00:27 v #37 benchmark.run / { input_str = struct +00:02:16 v #1847 > > ([|1; 3; 4; 6; 8; 9; 11|], 11, 7) } +00:02:16 v #1848 > > │ 00:00:28 v #38 benchmark.run / solutions.map / { i = 1; +00:02:16 v #1849 > > test_name = semi_open_1; time = 605 } +00:02:16 v #1850 > > │ 00:00:29 v #39 benchmark.run / solutions.map / { i = 2; +00:02:16 v #1851 > > test_name = closed_1; time = 604 } +00:02:16 v #1852 > > │ 00:00:30 v #40 benchmark.run / solutions.map / { i = 3; +00:02:16 v #1853 > > test_name = semi_open_2; time = 610 } +00:02:16 v #1854 > > │ 00:00:31 v #41 benchmark.run / solutions.map / { i = 4; +00:02:16 v #1855 > > test_name = closed_2; time = 608 } +00:02:16 v #1856 > > │ +00:02:16 v #1857 > > │ 00:00:31 v #42 benchmark.run / { input_str = struct +00:02:16 v #1858 > > ([|1; 3; 4; 6; 8; 9; 11|], 12, 7) } +00:02:16 v #1859 > > │ 00:00:32 v #43 benchmark.run / solutions.map / { i = 1; +00:02:16 v #1860 > > test_name = semi_open_1; time = 677 } +00:02:16 v #1861 > > │ 00:00:33 v #44 benchmark.run / solutions.map / { i = 2; +00:02:16 v #1862 > > test_name = closed_1; time = 663 } +00:02:16 v #1863 > > │ 00:00:34 v #45 benchmark.run / solutions.map / { i = 3; +00:02:16 v #1864 > > test_name = semi_open_2; time = 674 } +00:02:16 v #1865 > > │ 00:00:35 v #46 benchmark.run / solutions.map / { i = 4; +00:02:16 v #1866 > > test_name = closed_2; time = 647 } +00:02:16 v #1867 > > │ +00:02:16 v #1868 > > │ 00:00:35 v #47 benchmark.run / { input_str = struct +00:02:16 v #1869 > > ([|1; 2; 3; 4...100; ...|], 60, 100) } +00:02:16 v #1870 > > │ 00:00:36 v #48 benchmark.run / solutions.map / { i = 1; +00:02:16 v #1871 > > test_name = semi_open_1; time = 613 } +00:02:16 v #1872 > > │ 00:00:37 v #49 benchmark.run / solutions.map / { i = 2; +00:02:16 v #1873 > > test_name = closed_1; time = 661 } +00:02:16 v #1874 > > │ 00:00:38 v #50 benchmark.run / solutions.map / { i = 3; +00:02:16 v #1875 > > test_name = semi_open_2; time = 637 } +00:02:16 v #1876 > > │ 00:00:39 v #51 benchmark.run / solutions.map / { i = 4; +00:02:16 v #1877 > > test_name = closed_2; time = 644 } +00:02:16 v #1878 > > │ ``` +00:02:16 v #1879 > > │ input | expected | result | +00:02:16 v #1880 > > best +00:02:16 v #1881 > > │ --- | --- | --- | +00:02:16 v #1882 > > --- +00:02:16 v #1883 > > │ struct ([1; 3; 4; 6; 8; 9; 11], 6, 7) | US6_0 3 | US6_0 3 | +00:02:16 v #1884 > > 2, 660 +00:02:16 v #1885 > > │ struct ([1; 3; 4; 6; 8; 9; 11], 1, 7) | US6_0 0 | US6_0 0 | +00:02:16 v #1886 > > 1, 724 +00:02:16 v #1887 > > │ struct ([1; 3; 4; 6; 8; 9; 11], 11, 7) | US6_0 6 | US6_0 6 | +00:02:16 v #1888 > > 4, 589 +00:02:16 v #1889 > > │ struct ([1; 3; 4; 6; 8; 9; 11], 12, 7) | US6_1 | US6_1 | +00:02:16 v #1890 > > 4, 589 +00:02:16 v #1891 > > │ struct ([1; 2; 3; 4...00; ...], 60, 1000) | US6_0 59 | US6_0 59 | +00:02:16 v #1892 > > 1, 627 +00:02:16 v #1893 > > │ struct ([1; 3; 4; 6; 8; 9; 11], 6, 7) | US6_0 3 | US6_0 3 | +00:02:16 v #1894 > > 1, 629 +00:02:16 v #1895 > > │ struct ([1; 3; 4; 6; 8; 9; 11], 1, 7) | US6_0 0 | US6_0 0 | +00:02:16 v #1896 > > 3, 596 +00:02:16 v #1897 > > │ struct ([1; 3; 4; 6; 8; 9; 11], 11, 7) | US6_0 6 | US6_0 6 | +00:02:16 v #1898 > > 2, 604 +00:02:16 v #1899 > > │ struct ([1; 3; 4; 6; 8; 9; 11], 12, 7) | US6_1 | US6_1 | +00:02:16 v #1900 > > 4, 647 +00:02:16 v #1901 > > │ struct ([1; 2; 3; 4...100; ...], 60, 100) | US6_0 59 | US6_0 59 | +00:02:16 v #1902 > > 1, 613 +00:02:16 v #1903 > > │ ``` +00:02:16 v #1904 > > │ 00:00:39 v #52 benchmark.sort_result_list +00:02:16 v #1905 > > averages.iter / { i = 3; avg = 644 } +00:02:16 v #1906 > > │ 00:00:39 v #53 benchmark.sort_result_list +00:02:16 v #1907 > > averages.iter / { i = 1; avg = 654 } +00:02:16 v #1908 > > │ 00:00:39 v #54 benchmark.sort_result_list +00:02:16 v #1909 > > averages.iter / { i = 2; avg = 657 } +00:02:16 v #1910 > > │ 00:00:39 v #55 benchmark.sort_result_list +00:02:16 v #1911 > > averages.iter / { i = 4; avg = 657 } +00:02:16 v #1912 > > │ ``` +00:02:16 v #1913 > > │ +00:02:16 v #1914 > > +00:02:16 v #1915 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:02:16 v #1916 > > │ ## returnLettersWithOddCountTests +00:02:16 v #1917 > > +00:02:16 v #1918 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:02:16 v #1919 > > │ Test: ReturnLettersWithOddCount +00:02:16 v #1920 > > │ +00:02:16 v #1921 > > │ Solution: 1 +00:02:16 v #1922 > > │ Test case 1. A. Time: 645L +00:02:16 v #1923 > > │ +00:02:16 v #1924 > > │ Solution: 2 +00:02:16 v #1925 > > │ Test case 1. A. Time: 663L +00:02:16 v #1926 > > │ +00:02:16 v #1927 > > │ Solution: 3 +00:02:16 v #1928 > > │ Test case 1. A. Time: 680L +00:02:16 v #1929 > > │ +00:02:16 v #1930 > > │ Solution: 9 +00:02:16 v #1931 > > │ Test case 1. A. Time: 730L +00:02:16 v #1932 > > │ +00:02:16 v #1933 > > │ Solution: 10 +00:02:16 v #1934 > > │ Test case 1. A. Time: 815L +00:02:16 v #1935 > > │ +00:02:16 v #1936 > > │ Input | Expected | Result | Best +00:02:16 v #1937 > > │ --- | --- | --- | --- +00:02:16 v #1938 > > │ 1 | a | a | (1, 645) +00:02:16 v #1939 > > │ 2 | ba | ba | (1, 663) +00:02:16 v #1940 > > │ 3 | aaa | aaa | (1, 680) +00:02:16 v #1941 > > │ 9 | aaaaaaaaa | aaaaaaaaa | (1, 730) +00:02:16 v #1942 > > │ 10 | baaaaaaaaa | baaaaaaaaa | (1, 815) +00:02:16 v #1943 > > │ +00:02:16 v #1944 > > │ Averages +00:02:16 v #1945 > > │ Test case 1. Average Time: 706L +00:02:16 v #1946 > > │ +00:02:16 v #1947 > > │ Ranking +00:02:16 v #1948 > > │ Test case 1. Average Time: 706L +00:02:16 v #1949 > > +00:02:16 v #1950 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:02:16 v #1951 > > //// test +00:02:16 v #1952 > > +00:02:16 v #1953 > > let solutions = [[ +00:02:16 v #1954 > > "A", +00:02:16 v #1955 > > fun n -> +00:02:16 v #1956 > > let mutable _builder = StringBuilder (new string('a', n)) +00:02:16 v #1957 > > if n % 2 = 0 then +00:02:16 v #1958 > > _builder.[[0]] <- 'b' +00:02:16 v #1959 > > +00:02:16 v #1960 > > _builder.ToString () +00:02:16 v #1961 > > ]] +00:02:16 v #1962 > > let testCases = seq { +00:02:16 v #1963 > > 1, "a" +00:02:16 v #1964 > > 2, "ba" +00:02:16 v #1965 > > 3, "aaa" +00:02:16 v #1966 > > 9, "aaaaaaaaa" +00:02:16 v #1967 > > 10, "baaaaaaaaa" +00:02:16 v #1968 > > } +00:02:16 v #1969 > > let rec returnLettersWithOddCountTests = +00:02:16 v #1970 > > runAll (nameof returnLettersWithOddCountTests) _count solutions testCases +00:02:16 v #1971 > > returnLettersWithOddCountTests +00:02:16 v #1972 > > |> sortResultList +00:02:18 v #1973 > > +00:02:18 v #1974 > > ── [ 1.67s - stdout ] ────────────────────────────────────────────────────────── +00:02:18 v #1975 > > │ +00:02:18 v #1976 > > │ +00:02:18 v #1977 > > │ Test: returnLettersWithOddCountTests +00:02:18 v #1978 > > │ +00:02:18 v #1979 > > │ Solution: 1 +00:02:18 v #1980 > > │ Test case 1. A. Time: 1L +00:02:18 v #1981 > > │ +00:02:18 v #1982 > > │ Solution: 2 +00:02:18 v #1983 > > │ Test case 1. A. Time: 0L +00:02:18 v #1984 > > │ +00:02:18 v #1985 > > │ Solution: 3 +00:02:18 v #1986 > > │ Test case 1. A. Time: 0L +00:02:18 v #1987 > > │ +00:02:18 v #1988 > > │ Solution: 9 +00:02:18 v #1989 > > │ Test case 1. A. Time: 0L +00:02:18 v #1990 > > │ +00:02:18 v #1991 > > │ Solution: 10 +00:02:18 v #1992 > > │ Test case 1. A. Time: 0L +00:02:18 v #1993 > > │ +00:02:18 v #1994 > > │ Input | Expected | Result | Best +00:02:18 v #1995 > > │ --- | --- | --- | --- +00:02:18 v #1996 > > │ 1 | a | a | (1, 1) +00:02:18 v #1997 > > │ 2 | ba | ba | (1, 0) +00:02:18 v #1998 > > │ 3 | aaa | aaa | (1, 0) +00:02:18 v #1999 > > │ 9 | aaaaaaaaa | aaaaaaaaa | (1, 0) +00:02:18 v #2000 > > │ 10 | baaaaaaaaa | baaaaaaaaa | (1, 0) +00:02:18 v #2001 > > │ +00:02:18 v #2002 > > │ Average Ranking +00:02:18 v #2003 > > │ Test case 1. Average Time: 0L +00:02:18 v #2004 > > │ +00:02:18 v #2005 > > +00:02:18 v #2006 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:02:18 v #2007 > > │ ## hasAnyPairCloseToEachotherTests +00:02:18 v #2008 > > +00:02:18 v #2009 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:02:18 v #2010 > > │ Test: HasAnyPairCloseToEachother +00:02:18 v #2011 > > │ +00:02:18 v #2012 > > │ Solution: 0 +00:02:18 v #2013 > > │ Test case 1. A. Time: 137L +00:02:18 v #2014 > > │ +00:02:18 v #2015 > > │ Solution: 1,2 +00:02:18 v #2016 > > │ Test case 1. A. Time: 186L +00:02:18 v #2017 > > │ +00:02:18 v #2018 > > │ Solution: 3,5 +00:02:18 v #2019 > > │ Test case 1. A. Time: 206L +00:02:18 v #2020 > > │ +00:02:18 v #2021 > > │ Solution: 3,4,6 +00:02:18 v #2022 > > │ Test case 1. A. Time: 149L +00:02:18 v #2023 > > │ +00:02:18 v #2024 > > │ Solution: 2,4,6 +00:02:18 v #2025 > > │ Test case 1. A. Time: 150L +00:02:18 v #2026 > > │ +00:02:18 v #2027 > > │ Input | Expected | Result | Best +00:02:18 v #2028 > > │ --- | --- | --- | --- +00:02:18 v #2029 > > │ 0 | False | False | (1, 137) +00:02:18 v #2030 > > │ 1,2 | True | True | (1, 186) +00:02:18 v #2031 > > │ 3,5 | False | False | (1, 206) +00:02:18 v #2032 > > │ 3,4,6 | True | True | (1, 149) +00:02:18 v #2033 > > │ 2,4,6 | False | False | (1, 150) +00:02:18 v #2034 > > │ +00:02:18 v #2035 > > │ Averages +00:02:18 v #2036 > > │ Test case 1. Average Time: 165L +00:02:18 v #2037 > > │ +00:02:18 v #2038 > > │ Ranking +00:02:18 v #2039 > > │ Test case 1. Average Time: 165L +00:02:18 v #2040 > > +00:02:18 v #2041 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:02:18 v #2042 > > //// test +00:02:18 v #2043 > > +00:02:18 v #2044 > > let solutions = [[ +00:02:18 v #2045 > > "A", +00:02:18 v #2046 > > fun (a: int[[]]) -> +00:02:18 v #2047 > > let indices = System.Linq.Enumerable.Range(0, a.Length) |> +00:02:18 v #2048 > > System.Linq.Enumerable.ToArray +00:02:18 v #2049 > > System.Array.Sort (a, indices) +00:02:18 v #2050 > > +00:02:18 v #2051 > > indices +00:02:18 v #2052 > > |> Array.take (a.Length - 1) +00:02:18 v #2053 > > |> Array.exists (fun i -> a.[[i + 1]] - a.[[i]] = 1) +00:02:18 v #2054 > > ]] +00:02:18 v #2055 > > let testCases = seq { +00:02:18 v #2056 > > [[| 0 |]], false +00:02:18 v #2057 > > [[| 1; 2 |]], true +00:02:18 v #2058 > > [[| 3; 5 |]], false +00:02:18 v #2059 > > [[| 3; 4; 6 |]], true +00:02:18 v #2060 > > [[| 2; 4; 6 |]], false +00:02:18 v #2061 > > } +00:02:18 v #2062 > > let rec hasAnyPairCloseToEachotherTests = +00:02:18 v #2063 > > runAll (nameof hasAnyPairCloseToEachotherTests) _count solutions testCases +00:02:18 v #2064 > > hasAnyPairCloseToEachotherTests +00:02:18 v #2065 > > |> sortResultList +00:02:20 v #2066 > > +00:02:20 v #2067 > > ── [ 1.63s - stdout ] ────────────────────────────────────────────────────────── +00:02:20 v #2068 > > │ +00:02:20 v #2069 > > │ +00:02:20 v #2070 > > │ Test: hasAnyPairCloseToEachotherTests +00:02:20 v #2071 > > │ +00:02:20 v #2072 > > │ Solution: 0 +00:02:20 v #2073 > > │ Test case 1. A. Time: 2L +00:02:20 v #2074 > > │ +00:02:20 v #2075 > > │ Solution: 1,2 +00:02:20 v #2076 > > │ Test case 1. A. Time: 0L +00:02:20 v #2077 > > │ +00:02:20 v #2078 > > │ Solution: 3,5 +00:02:20 v #2079 > > │ Test case 1. A. Time: 0L +00:02:20 v #2080 > > │ +00:02:20 v #2081 > > │ Solution: 3,4,6 +00:02:20 v #2082 > > │ Test case 1. A. Time: 0L +00:02:20 v #2083 > > │ +00:02:20 v #2084 > > │ Solution: 2,4,6 +00:02:20 v #2085 > > │ Test case 1. A. Time: 0L +00:02:20 v #2086 > > │ +00:02:20 v #2087 > > │ Input | Expected | Result | Best +00:02:20 v #2088 > > │ --- | --- | --- | --- +00:02:20 v #2089 > > │ 0 | False | False | (1, 2) +00:02:20 v #2090 > > │ 1,2 | True | True | (1, 0) +00:02:20 v #2091 > > │ 3,5 | False | False | (1, 0) +00:02:20 v #2092 > > │ 3,4,6 | True | True | (1, 0) +00:02:20 v #2093 > > │ 2,4,6 | False | False | (1, 0) +00:02:20 v #2094 > > │ +00:02:20 v #2095 > > │ Average Ranking +00:02:20 v #2096 > > │ Test case 1. Average Time: 0L +00:02:20 v #2097 > > │ +00:02:20 v #2098 > 00:02:19 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 84693 } +00:02:20 v #2099 > 00:02:19 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/apps/perf/Perf.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/apps/perf/Perf.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } +00:02:22 v #2100 > 00:02:20 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/apps/perf/Perf.dib.ipynb to html +00:02:22 v #2101 > 00:02:20 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. +00:02:22 v #2102 > 00:02:20 v #7 ! validate(nb) +00:02:22 v #2103 > 00:02:21 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 +00:02:22 v #2104 > 00:02:21 v #9 ! return _pygments_highlight( +00:02:24 v #2105 > 00:02:23 v #10 ! [NbConvertApp] Writing 458087 bytes to c:\home\git\polyglot\apps\perf\Perf.dib.html +00:02:24 v #2106 > 00:02:23 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 848 } +00:02:24 v #2107 > 00:02:23 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 848 } +00:02:24 v #2108 > 00:02:23 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/apps/perf/Perf.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/apps/perf/Perf.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } +00:02:24 v #2109 > 00:02:23 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } +00:02:24 v #2110 > 00:02:23 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } +00:02:24 v #2111 > 00:02:23 d #16 spiral.run / dib / { exit_code = 0; result_length = 85600 } +00:02:24 d #2112 runtime.execute_with_options_async / { exit_code = 0; output_length = 92297 } +00:02:24 d #1 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path Perf.dib --retries 3 00:00:00 d #1 writeDibCode / output: Fs / path: Perf.dib 00:00:00 d #2 parseDibCode / output: Fs / file: Perf.dib@@ -27958,40611 +25723,489 @@---{ pwsh ../apps/dir-tree-html/build.ps1 } | Invoke-Block -
00:00:00 v #1 async.run_with_timeout_async / { timeout = 180 } -00:00:00 d #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0 - ""C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 --default-int i32 --default-float f64"; options = { command = dotnet "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 --default-int i32 --default-float f64; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = Some <fun:compiler@87-4>; stdin = None; trace = true; working_directory = Some "C:\home\git\polyglot" } } -00:00:00 v #2 > 00:00:00 d #1 pwd: C:\home\git\polyglot -00:00:00 v #3 > 00:00:00 d #2 dllPath: C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release -00:00:00 v #4 > 00:00:00 d #3 targetDir: C:\home\git\polyglot\target/spiral_Eval -00:00:01 v #2 async.run_with_timeout_async / { timeout = 100 } -00:00:01 v #3 async.run_with_timeout_async / { timeout = 100 } -00:00:01 v #5 > Starting the Spiral Server. It is bound to: http://localhost:13805 -00:00:01 v #4 async.run_with_timeout_async / { timeout = 100 } -00:00:01 v #1 Supervisor.sendJson / port: 13805 / json: {"Ping":true} / result: -00:00:01 v #2 Supervisor.awaitCompiler / Ping / result: 'Some null' / port: 13805 / retry: 1 -00:00:01 v #6 > Server bound to: http://localhost:13805 -00:00:01 d #7 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path DirTreeHtml.dib"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path DirTreeHtml.dib; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } -00:00:01 v #8 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "DirTreeHtml.dib"])) } -00:00:01 v #9 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/apps/dir-tree-html/DirTreeHtml.dib", "--output-path", "c:/home/git/polyglot/apps/dir-tree-html/DirTreeHtml.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/apps/dir-tree-html/DirTreeHtml.dib" --output-path "c:/home/git/polyglot/apps/dir-tree-html/DirTreeHtml.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } -00:00:03 v #10 > > -00:00:03 v #11 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:03 v #12 > > │ # DirTreeHtml (Polyglot) -00:00:07 v #13 > > -00:00:07 v #14 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:07 v #15 > > #r -00:00:07 v #16 > > @"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan -00:00:07 v #17 > > dard2.1/FSharp.Control.AsyncSeq.dll" -00:00:07 v #18 > > #r -00:00:07 v #19 > > @"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6. -00:00:07 v #20 > > 0/System.Reactive.dll" -00:00:07 v #21 > > #r -00:00:07 v #22 > > @"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib -00:00:07 v #23 > > netstandard2.0/System.Reactive.Linq.dll" -00:00:07 v #24 > > #r -00:00:07 v #25 > > @"../../../../../../../.nuget/packages/argu/6.2.4/lib/netstandard2.0/Argu.dll" -00:00:07 v #26 > > #r -00:00:07 v #27 > > @"../../../../../../../.nuget/packages/falco.markup/1.1.1/lib/netstandard2.0/Fal -00:00:07 v #28 > > co.Markup.dll" -00:00:20 v #29 > > -00:00:20 v #30 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:20 v #31 > > #if !INTERACTIVE -00:00:20 v #32 > > open Lib -00:00:20 v #33 > > #endif -00:00:20 v #34 > > -00:00:20 v #35 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:20 v #36 > > open SpiralFileSystem.Operators -00:00:20 v #37 > > open Falco.Markup -00:00:20 v #38 > > -00:00:20 v #39 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:20 v #40 > > type FileSystemNode = -00:00:20 v #41 > > | File of string * string * int64 -00:00:20 v #42 > > | Folder of string * string * FileSystemNode list -00:00:20 v #43 > > | Root of FileSystemNode list -00:00:20 v #44 > > -00:00:20 v #45 > > let rec scanDirectory isRoot (basePath : string) (path : string) = -00:00:20 v #46 > > let relativePath = -00:00:20 v #47 > > path -00:00:20 v #48 > > |> SpiralSm.replace basePath "" -00:00:20 v #49 > > |> SpiralSm.replace "\\" "/" -00:00:20 v #50 > > |> SpiralSm.replace "//" "/" -00:00:20 v #51 > > |> SpiralSm.trim_start [[| '/' |]] -00:00:20 v #52 > > -00:00:20 v #53 > > let directories = -00:00:20 v #54 > > path -00:00:20 v #55 > > |> System.IO.Directory.GetDirectories -00:00:20 v #56 > > |> Array.toList -00:00:20 v #57 > > |> List.sort -00:00:20 v #58 > > |> List.map (scanDirectory false basePath) -00:00:20 v #59 > > let files = -00:00:20 v #60 > > path -00:00:20 v #61 > > |> System.IO.Directory.GetFiles -00:00:20 v #62 > > |> Array.toList -00:00:20 v #63 > > |> List.sort -00:00:20 v #64 > > |> List.map (fun f -> File (System.IO.Path.GetFileName f, relativePath, -00:00:20 v #65 > > System.IO.FileInfo(f).Length)) -00:00:20 v #66 > > -00:00:20 v #67 > > let children = directories @ files -00:00:20 v #68 > > if isRoot -00:00:20 v #69 > > then Root children -00:00:20 v #70 > > else Folder (path |> System.IO.Path.GetFileName, relativePath, children) -00:00:20 v #71 > > -00:00:20 v #72 > > let rec generateHtml fsNode = -00:00:20 v #73 > > let sizeLabel size = -00:00:20 v #74 > > match float size with -00:00:20 v #75 > > | size when size > 1024.0 * 1024.0 -> $"%.2f{size / 1024.0 / 1024.0} MB" -00:00:20 v #76 > > | size when size > 1024.0 -> $"%.2f{size / 1024.0} KB" -00:00:20 v #77 > > | size -> $"%.2f{size} B" -00:00:20 v #78 > > match fsNode with -00:00:20 v #79 > > | File (fileName, relativePath, size) -> -00:00:20 v #80 > > Elem.div [[]] [[ -00:00:20 v #81 > > Text.raw "📄 " -00:00:20 v #82 > > Elem.a [[ -00:00:20 v #83 > > Attr.href $"""{relativePath}{if relativePath = "" then "" else -00:00:20 v #84 > > "/"}{fileName}""" -00:00:20 v #85 > > ]] [[ -00:00:20 v #86 > > Text.raw fileName -00:00:20 v #87 > > ]] -00:00:20 v #88 > > Elem.span [[]] [[ -00:00:20 v #89 > > Text.raw $" ({size |> sizeLabel})" -00:00:20 v #90 > > ]] -00:00:20 v #91 > > ]] -00:00:20 v #92 > > | Folder (folderName, relativePath, children) -> -00:00:20 v #93 > > let size = -00:00:20 v #94 > > let rec loop children = -00:00:20 v #95 > > children -00:00:20 v #96 > > |> List.sumBy (function -00:00:20 v #97 > > | File (_, _, size) -> size -00:00:20 v #98 > > | Folder (_, _, children) -00:00:20 v #99 > > | Root children -> loop children -00:00:20 v #100 > > ) -00:00:20 v #101 > > loop children -00:00:20 v #102 > > Elem.details [[ -00:00:20 v #103 > > Attr.open' "true" -00:00:20 v #104 > > ]] [[ -00:00:20 v #105 > > Elem.summary [[]] [[ -00:00:20 v #106 > > Text.raw "📂 " -00:00:20 v #107 > > Elem.a [[ -00:00:20 v #108 > > Attr.href relativePath -00:00:20 v #109 > > ]] [[ -00:00:20 v #110 > > Text.raw folderName -00:00:20 v #111 > > ]] -00:00:20 v #112 > > Elem.span [[]] [[ -00:00:20 v #113 > > Text.raw $" ({size |> sizeLabel})" -00:00:20 v #114 > > ]] -00:00:20 v #115 > > ]] -00:00:20 v #116 > > Elem.div [[]] [[ -00:00:20 v #117 > > yield! children |> List.map generateHtml -00:00:20 v #118 > > ]] -00:00:20 v #119 > > ]] -00:00:20 v #120 > > | Root children -> -00:00:20 v #121 > > Elem.div [[]] [[ -00:00:20 v #122 > > yield! children |> List.map generateHtml -00:00:20 v #123 > > ]] -00:00:20 v #124 > > -00:00:20 v #125 > > let generateHtmlForFileSystem root = -00:00:20 v #126 > > $"""<!DOCTYPE html> -00:00:20 v #127 > > <html lang="en"> -00:00:20 v #128 > > <head> -00:00:20 v #129 > > <meta charset="UTF-8"> -00:00:20 v #130 > > <style> -00:00:20 v #131 > > body {{ -00:00:20 v #132 > > background-color: #222; -00:00:20 v #133 > > color: #ccc; -00:00:20 v #134 > > }} -00:00:20 v #135 > > a {{ -00:00:20 v #136 > > color: #777; -00:00:20 v #137 > > font-size: 15px; -00:00:20 v #138 > > }} -00:00:20 v #139 > > span {{ -00:00:20 v #140 > > font-size: 11px; -00:00:20 v #141 > > }} -00:00:20 v #142 > > div > div {{ -00:00:20 v #143 > > padding-left: 10px; -00:00:20 v #144 > > }} -00:00:20 v #145 > > details > div {{ -00:00:20 v #146 > > padding-left: 19px; -00:00:20 v #147 > > }} -00:00:20 v #148 > > </style> -00:00:20 v #149 > > </head> -00:00:20 v #150 > > <body> -00:00:20 v #151 > > {root |> generateHtml |> renderNode} -00:00:20 v #152 > > </body> -00:00:20 v #153 > > </html> -00:00:20 v #154 > > """ -00:00:21 v #155 > > -00:00:21 v #156 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:21 v #157 > > //// test -00:00:21 v #158 > > -00:00:21 v #159 > > let expected = """<!DOCTYPE html> -00:00:21 v #160 > > <html lang="en"> -00:00:21 v #161 > > <head> -00:00:21 v #162 > > <meta charset="UTF-8"> -00:00:21 v #163 > > <style> -00:00:21 v #164 > > body { -00:00:21 v #165 > > background-color: #222; -00:00:21 v #166 > > color: #ccc; -00:00:21 v #167 > > } -00:00:21 v #168 > > a { -00:00:21 v #169 > > color: #777; -00:00:21 v #170 > > font-size: 15px; -00:00:21 v #171 > > } -00:00:21 v #172 > > span { -00:00:21 v #173 > > font-size: 11px; -00:00:21 v #174 > > } -00:00:21 v #175 > > div > div { -00:00:21 v #176 > > padding-left: 10px; -00:00:21 v #177 > > } -00:00:21 v #178 > > details > div { -00:00:21 v #179 > > padding-left: 19px; -00:00:21 v #180 > > } -00:00:21 v #181 > > </style> -00:00:21 v #182 > > </head> -00:00:21 v #183 > > <body> -00:00:21 v #184 > > <div><details open="true"><summary>📂 <a href="_.root">_.root</a><span> -00:00:21 v #185 > > (10.00 B)</span></summary><div><details open="true"><summary>📂 <a -00:00:21 v #186 > > href="_.root/3">3</a><span> (6.00 B)</span></summary><div><details -00:00:21 v #187 > > open="true"><summary>📂 <a href="_.root/3/2">2</a><span> (3.00 -00:00:21 v #188 > > B)</span></summary><div><details open="true"><summary>📂 <a -00:00:21 v #189 > > href="_.root/3/2/1">1</a><span> (1.00 B)</span></summary><div><div>📄 <a -00:00:21 v #190 > > href="_.root/3/2/1/file.txt">file.txt</a><span> (1.00 -00:00:21 v #191 > > B)</span></div></div></details><div>📄 <a -00:00:21 v #192 > > href="_.root/3/2/file.txt">file.txt</a><span> (2.00 -00:00:21 v #193 > > B)</span></div></div></details><div>📄 <a -00:00:21 v #194 > > href="_.root/3/file.txt">file.txt</a><span> (3.00 -00:00:21 v #195 > > B)</span></div></div></details><div>📄 <a -00:00:21 v #196 > > href="_.root/file.txt">file.txt</a><span> (4.00 -00:00:21 v #197 > > B)</span></div></div></details></div> -00:00:21 v #198 > > </body> -00:00:21 v #199 > > </html> -00:00:21 v #200 > > """ -00:00:21 v #201 > > -00:00:21 v #202 > > let struct (tempFolder, disposable) = expected |> SpiralCrypto.hash_text |> -00:00:21 v #203 > > SpiralFileSystem.create_temp_dir' -00:00:21 v #204 > > let rec loop d n = async { -00:00:21 v #205 > > if n >= 0 then -00:00:21 v #206 > > tempFolder </> d |> System.IO.Directory.CreateDirectory |> ignore -00:00:21 v #207 > > do! -00:00:21 v #208 > > n -00:00:21 v #209 > > |> string -00:00:21 v #210 > > |> String.replicate (n + 1) -00:00:21 v #211 > > |> SpiralFileSystem.write_all_text_async (tempFolder </> d </> -00:00:21 v #212 > > $"file.txt") -00:00:21 v #213 > > do! loop $"{d}/{n}" (n - 1) -00:00:21 v #214 > > } -00:00:21 v #215 > > loop "_.root" 3 -00:00:21 v #216 > > |> Async.RunSynchronously -00:00:21 v #217 > > -00:00:21 v #218 > > let html = -00:00:21 v #219 > > scanDirectory true tempFolder tempFolder -00:00:21 v #220 > > |> generateHtmlForFileSystem -00:00:21 v #221 > > -00:00:21 v #222 > > html -00:00:21 v #223 > > |> _assertEqual expected -00:00:21 v #224 > > -00:00:21 v #225 > > disposable.Dispose () -00:00:21 v #226 > > -00:00:21 v #227 > > html |> Microsoft.DotNet.Interactive.Formatting.Html.ToHtmlContent -00:00:21 v #228 > > -00:00:21 v #229 > > ── [ 190.24ms - return value ] ───────────────────────────────────────────────── -00:00:21 v #230 > > │ <!DOCTYPE html> -00:00:21 v #231 > > │ <html lang="en"> -00:00:21 v #232 > > │ <head> -00:00:21 v #233 > > │ <meta charset="UTF-8"> -00:00:21 v #234 > > │ <style> -00:00:21 v #235 > > │ body { -00:00:21 v #236 > > │ background-color: #222; -00:00:21 v #237 > > │ color: #ccc; -00:00:21 v #238 > > │ } -00:00:21 v #239 > > │ a { -00:00:21 v #240 > > │ color: #777; -00:00:21 v #241 > > │ font-size: 15px; -00:00:21 v #242 > > │ } -00:00:21 v #243 > > │ span { -00:00:21 v #244 > > │ font-size: 11px; -00:00:21 v #245 > > │ } -00:00:21 v #246 > > │ div > div { -00:00:21 v #247 > > │ padding-left: 10px; -00:00:21 v #248 > > │ } -00:00:21 v #249 > > │ details > div { -00:00:21 v #250 > > │ padding-left: 19px; -00:00:21 v #251 > > │ } -00:00:21 v #252 > > │ </style> -00:00:21 v #253 > > │ </head> -00:00:21 v #254 > > │ <body> -00:00:21 v #255 > > │ <div><details open="true"><summary>📂 <a -00:00:21 v #256 > > href="_.root">_.root</a><span> (10.00 B)</span></summary><div><details -00:00:21 v #257 > > open="true"><summary>📂 <a href="_.root/3">3</a><span> (6.00 -00:00:21 v #258 > > B)</span></summary><div><details open="true"><summary>📂 <a -00:00:21 v #259 > > href="_.root/3/2">2</a><span> (3.00 B)</span></summary><div><details -00:00:21 v #260 > > open="true"><summary>📂 <a href="_.root/3/2/1">1</a><span> (1.00 -00:00:21 v #261 > > B)</span></summary><div><div>📄 <a -00:00:21 v #262 > > href="_.root/3/2/1/file.txt">file.txt</a><span> (1.00 -00:00:21 v #263 > > B)</span></div></div></details><div>📄 <a -00:00:21 v #264 > > href="_.root/3/2/file.txt">file.txt</a><span> (2.00 -00:00:21 v #265 > > B)</span></div></div></details><div>📄 <a -00:00:21 v #266 > > href="_.root/3/file.txt">file.txt</a><span> (3.00 -00:00:21 v #267 > > B)</span></div></div></details><div>📄 <a -00:00:21 v #268 > > href="_.root/file.txt">file.txt</a><span> (4.00 -00:00:21 v #269 > > B)</span></div></div></details></div> -00:00:21 v #270 > > │ </body> -00:00:21 v #271 > > │ </html> -00:00:21 v #272 > > │ -00:00:21 v #273 > > -00:00:21 v #274 > > ── [ 194.73ms - stdout ] ─────────────────────────────────────────────────────── -00:00:21 v #275 > > │ "<!DOCTYPE html> -00:00:21 v #276 > > │ <html lang="en"> -00:00:21 v #277 > > │ <head> -00:00:21 v #278 > > │ <meta charset="UTF-8"> -00:00:21 v #279 > > │ <style> -00:00:21 v #280 > > │ body { -00:00:21 v #281 > > │ background-color: #222; -00:00:21 v #282 > > │ color: #ccc; -00:00:21 v #283 > > │ } -00:00:21 v #284 > > │ a { -00:00:21 v #285 > > │ color: #777; -00:00:21 v #286 > > │ font-size: 15px; -00:00:21 v #287 > > │ } -00:00:21 v #288 > > │ span { -00:00:21 v #289 > > │ font-size: 11px; -00:00:21 v #290 > > │ } -00:00:21 v #291 > > │ div > div { -00:00:21 v #292 > > │ padding-left: 10px; -00:00:21 v #293 > > │ } -00:00:21 v #294 > > │ details > div { -00:00:21 v #295 > > │ padding-left: 19px; -00:00:21 v #296 > > │ } -00:00:21 v #297 > > │ </style> -00:00:21 v #298 > > │ </head> -00:00:21 v #299 > > │ <body> -00:00:21 v #300 > > │ <div><details open="true"><summary>📂 <a -00:00:21 v #301 > > href="_.root">_.root</a><span> (10.00 B)</span></summary><div><details -00:00:21 v #302 > > open="true"><summary>📂 <a href="_.root/3">3</a><span> (6.00 -00:00:21 v #303 > > B)</span></summary><div><details open="true"><summary>📂 <a -00:00:21 v #304 > > href="_.root/3/2">2</a><span> (3.00 B)</span></summary><div><details -00:00:21 v #305 > > open="true"><summary>📂 <a href="_.root/3/2/1">1</a><span> (1.00 -00:00:21 v #306 > > B)</span></summary><div><div>📄 <a -00:00:21 v #307 > > href="_.root/3/2/1/file.txt">file.txt</a><span> (1.00 -00:00:21 v #308 > > B)</span></div></div></details><div>📄 <a -00:00:21 v #309 > > href="_.root/3/2/file.txt">file.txt</a><span> (2.00 -00:00:21 v #310 > > B)</span></div></div></details><div>📄 <a -00:00:21 v #311 > > href="_.root/3/file.txt">file.txt</a><span> (3.00 -00:00:21 v #312 > > B)</span></div></div></details><div>📄 <a -00:00:21 v #313 > > href="_.root/file.txt">file.txt</a><span> (4.00 -00:00:21 v #314 > > B)</span></div></div></details></div> -00:00:21 v #315 > > │ </body> -00:00:21 v #316 > > │ </html> -00:00:21 v #317 > > │ " -00:00:21 v #318 > > │ -00:00:21 v #319 > > │ -00:00:21 v #320 > > -00:00:21 v #321 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:21 v #322 > > │ ## Arguments -00:00:21 v #323 > > -00:00:21 v #324 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:21 v #325 > > [[<RequireQualifiedAccess>]] -00:00:21 v #326 > > type Arguments = -00:00:21 v #327 > > | [[<Argu.ArguAttributes.ExactlyOnce>]] Dir of string -00:00:21 v #328 > > | [[<Argu.ArguAttributes.ExactlyOnce>]] Html of string -00:00:21 v #329 > > -00:00:21 v #330 > > interface Argu.IArgParserTemplate with -00:00:21 v #331 > > member s.Usage = -00:00:21 v #332 > > match s with -00:00:21 v #333 > > | Dir _ -> nameof Dir -00:00:21 v #334 > > | Html _ -> nameof Html -00:00:21 v #335 > > -00:00:21 v #336 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:21 v #337 > > //// test -00:00:21 v #338 > > -00:00:21 v #339 > > Argu.ArgumentParser.Create<Arguments>().PrintUsage () -00:00:21 v #340 > > -00:00:21 v #341 > > ── [ 85.46ms - return value ] ────────────────────────────────────────────────── -00:00:21 v #342 > > │ "USAGE: dotnet-repl [--help] --dir <string> --html <string> -00:00:21 v #343 > > │ -00:00:21 v #344 > > │ OPTIONS: -00:00:21 v #345 > > │ -00:00:21 v #346 > > │ --dir <string> Dir -00:00:21 v #347 > > │ --html <string> Html -00:00:21 v #348 > > │ --help display this list of options. -00:00:21 v #349 > > │ " -00:00:21 v #350 > > │ -00:00:21 v #351 > > -00:00:21 v #352 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:21 v #353 > > │ ## main -00:00:21 v #354 > > -00:00:21 v #355 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:21 v #356 > > let main args = -00:00:21 v #357 > > let argsMap = args |> Runtime.parseArgsMap<Arguments> -00:00:21 v #358 > > -00:00:21 v #359 > > let dir = -00:00:21 v #360 > > match argsMap.[[nameof Arguments.Dir]] with -00:00:21 v #361 > > | [[ Arguments.Dir dir ]] -> Some dir -00:00:21 v #362 > > | _ -> None -00:00:21 v #363 > > |> Option.get -00:00:21 v #364 > > -00:00:21 v #365 > > let htmlPath = -00:00:21 v #366 > > match argsMap.[[nameof Arguments.Html]] with -00:00:21 v #367 > > | [[ Arguments.Html html ]] -> Some html -00:00:21 v #368 > > | _ -> None -00:00:21 v #369 > > |> Option.get -00:00:21 v #370 > > -00:00:21 v #371 > > let fileSystem = scanDirectory true dir dir -00:00:21 v #372 > > let html = generateHtmlForFileSystem fileSystem -00:00:21 v #373 > > -00:00:21 v #374 > > html |> SpiralFileSystem.write_all_text_async htmlPath -00:00:21 v #375 > > |> Async.runWithTimeout 30000 -00:00:21 v #376 > > |> function -00:00:21 v #377 > > | Some () -> 0 -00:00:21 v #378 > > | None -> 1 -00:00:21 v #379 > > -00:00:21 v #380 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:21 v #381 > > //// test -00:00:21 v #382 > > -00:00:21 v #383 > > let args = -00:00:21 v #384 > > System.Environment.GetEnvironmentVariable "ARGS" -00:00:21 v #385 > > |> SpiralRuntime.split_args -00:00:21 v #386 > > |> Result.toArray -00:00:21 v #387 > > |> Array.collect id -00:00:21 v #388 > > -00:00:21 v #389 > > match args with -00:00:21 v #390 > > | [[||]] -> 0 -00:00:21 v #391 > > | args -> if main args = 0 then 0 else failwith "main failed" -00:00:21 v #392 > > -00:00:21 v #393 > > ── [ 94.50ms - return value ] ────────────────────────────────────────────────── -00:00:21 v #394 > > │ <div class="dni-plaintext"><pre>0 -00:00:21 v #395 > > │ </pre></div><style> -00:00:21 v #396 > > │ .dni-code-hint { -00:00:21 v #397 > > │ font-style: italic; -00:00:21 v #398 > > │ overflow: hidden; -00:00:21 v #399 > > │ white-space: nowrap; -00:00:21 v #400 > > │ } -00:00:21 v #401 > > │ .dni-treeview { -00:00:21 v #402 > > │ white-space: nowrap; -00:00:21 v #403 > > │ } -00:00:21 v #404 > > │ .dni-treeview td { -00:00:21 v #405 > > │ vertical-align: top; -00:00:21 v #406 > > │ text-align: start; -00:00:21 v #407 > > │ } -00:00:21 v #408 > > │ details.dni-treeview { -00:00:21 v #409 > > │ padding-left: 1em; -00:00:21 v #410 > > │ } -00:00:21 v #411 > > │ table td { -00:00:21 v #412 > > │ text-align: start; -00:00:21 v #413 > > │ } -00:00:21 v #414 > > │ table tr { -00:00:21 v #415 > > │ vertical-align: top; -00:00:21 v #416 > > │ margin: 0em 0px; -00:00:21 v #417 > > │ } -00:00:21 v #418 > > │ table tr td pre -00:00:21 v #419 > > │ { -00:00:21 v #420 > > │ vertical-align: top !important; -00:00:21 v #421 > > │ margin: 0em 0px !important; -00:00:21 v #422 > > │ } -00:00:21 v #423 > > │ table th { -00:00:21 v #424 > > │ text-align: start; -00:00:21 v #425 > > │ } -00:00:21 v #426 > > │ </style> -00:00:21 v #427 > 00:00:20 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 13688 } -00:00:21 v #428 > 00:00:20 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/apps/dir-tree-html/DirTreeHtml.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/apps/dir-tree-html/DirTreeHtml.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:00:23 v #429 > 00:00:21 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/apps/dir-tree-html/DirTreeHtml.dib.ipynb to html -00:00:23 v #430 > 00:00:21 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. -00:00:23 v #431 > 00:00:21 v #7 ! validate(nb) -00:00:23 v #432 > 00:00:22 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 -00:00:23 v #433 > 00:00:22 v #9 ! return _pygments_highlight( -00:00:24 v #434 > 00:00:22 v #10 ! [NbConvertApp] Writing 310059 bytes to c:\home\git\polyglot\apps\dir-tree-html\DirTreeHtml.dib.html -00:00:24 v #435 > 00:00:22 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 880 } -00:00:24 v #436 > 00:00:22 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 880 } -00:00:24 v #437 > 00:00:22 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/apps/dir-tree-html/DirTreeHtml.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/apps/dir-tree-html/DirTreeHtml.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:00:24 v #438 > 00:00:22 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } -00:00:24 v #439 > 00:00:22 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } -00:00:24 v #440 > 00:00:22 d #16 spiral.run / dib / { exit_code = 0; result_length = 14627 } -00:00:24 d #441 runtime.execute_with_options_async / { exit_code = 0; output_length = 18087 } -00:00:24 d #3 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path DirTreeHtml.dib -00:00:24 v #5 async.run_with_timeout_async / { timeout = 100 } -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::string::String")>] -type std_string_String = class end -#else -type std_string_String = string -#endif - -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("&$0")>] -type Ref<'T> = class end -#else -type Ref<'T> = 'T -#endif - -#if FABLE_COMPILER - -type System_Net_Sockets_TcpClient = System.IDisposable -#else -type System_Net_Sockets_TcpClient = System.Net.Sockets.TcpClient -#endif - -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("mut $0")>] -#endif -type Mut<'T> = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("Vec<$0>")>] -#endif -type Vec<'T> = class end -module TraceState = let mutable trace_state = None -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::env::VarError")>] -#endif -type std_env_VarError = class end -type IOsEnviron = abstract environ: x: unit -> obj -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("str")>] -type Str = class end -#else -type Str = string -#endif - -type [<Struct>] US0 = - | US0_0 - | US0_1 - | US0_2 - | US0_3 - | US0_4 -and Mut0 = {mutable l0 : int64} -and Mut1 = {mutable l0 : (string -> unit)} -and Mut2 = {mutable l0 : bool} -and Mut3 = {mutable l0 : string} -and Mut4 = {mutable l0 : US0} -and [<Struct>] US1 = - | US1_0 of f0_0 : US0 - | US1_1 -and [<Struct>] US2 = - | US2_0 of f0_0 : int64 - | US2_1 -and [<Struct>] US3 = - | US3_0 - | US3_1 - | US3_2 -and [<Struct>] US4 = - | US4_0 of f0_0 : US3 - | US4_1 of f1_0 : US3 - | US4_2 of f2_0 : US3 - | US4_3 of f3_0 : US3 - | US4_4 of f4_0 : US3 -and [<Struct>] US5 = - | US5_0 of f0_0 : string - | US5_1 -and [<Struct>] US6 = - | US6_0 of f0_0 : bool - | US6_1 -and [<Struct>] US7 = - | US7_0 of f0_0 : bool - | US7_1 of f1_0 : exn -and [<Struct>] US8 = - | US8_0 of f0_0 : bool - | US8_1 of f1_0 : exn -and [<Struct>] US9 = - | US9_0 of f0_0 : int32 - | US9_1 -let rec method3 (v0 : string) : string = - v0 -and method4 () : string = - let v0 : string = "" - v0 -and closure1 () (v0 : string) : US5 = - US5_0(v0) -and method5 () : (string -> US5) = - closure1() -and method2 (v0 : string) : string = - (* run_target_args' - let v1 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v2 : string = method3(v0) - let v3 : string = "std::env::var(&*$0)" - let v4 : Result<std_string_String, std_env_VarError> = Fable.Core.RustInterop.emitRustExpr v2 v3 - let v5 : string = "true; let _result_map_ = $0.map(|x| { //" - let v6 : bool = Fable.Core.RustInterop.emitRustExpr v4 v5 - let v7 : string = "x" - let v8 : std_string_String = Fable.Core.RustInterop.emitRustExpr () v7 - let v9 : string = "fable_library_rust::String_::fromString($0)" - let v10 : string = Fable.Core.RustInterop.emitRustExpr v8 v9 - let v11 : string = "true; $0 })" - let v12 : bool = Fable.Core.RustInterop.emitRustExpr v10 v11 - let v13 : string = "_result_map_" - let v14 : Result<string, std_env_VarError> = Fable.Core.RustInterop.emitRustExpr () v13 - let v15 : string = method4() - let v16 : string = "$0.unwrap_or($1)" - let v17 : string = Fable.Core.RustInterop.emitRustExpr struct (v14, v15) v16 - let _run_target_args'_v1 = v17 - #endif -#if FABLE_COMPILER_RUST && WASM - let v18 : US3 = US3_1 - let v19 : US4 = US4_2(v18) - let v20 : string = $"env.get_environment_variable / target: {v19} / var: {v0}" - let v21 : string = failwith<string> v20 - let _run_target_args'_v1 = v21 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v22 : US3 = US3_2 - let v23 : US4 = US4_2(v22) - let v24 : string = $"env.get_environment_variable / target: {v23} / var: {v0}" - let v25 : string = failwith<string> v24 - let _run_target_args'_v1 = v25 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v26 : string = "process.env[$0] ?? \"\"" - let v27 : string = Fable.Core.JsInterop.emitJsExpr v0 v26 - let _run_target_args'_v1 = v27 - #endif -#if FABLE_COMPILER_PYTHON - let v28 : string = "os" - let v29 : IOsEnviron = Fable.Core.PyInterop.importAll v28 - let v30 : string = "v29.environ" - let v31 : obj = Fable.Core.PyInterop.emitPyExpr () v30 - let v34 : string = "v31.get($0)" - let v35 : string = Fable.Core.PyInterop.emitPyExpr v0 v34 - let mutable _v35 = None - #if !FABLE_COMPILER && !WASM && !CONTRACT - let v38 : (string -> string option) = Option.ofObj - let v39 : string option = v38 v35 - v39 - #else - Some v35 - #endif - |> fun x -> _v35 <- Some x - let v40 : string option = match _v35 with Some x -> x | None -> failwith "optionm'.of_obj / _v35=None" - let v43 : (string -> US5) = method5() - let v44 : US5 option = v40 |> Option.map v43 - let v55 : US5 = US5_1 - let v56 : US5 = v44 |> Option.defaultValue v55 - let v63 : string = - match v56 with - | US5_1 -> (* None *) - let v61 : string = "" - v61 - | US5_0(v60) -> (* Some *) - v60 - let _run_target_args'_v1 = v63 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v64 : US3 = US3_1 - let v65 : US4 = US4_0(v64) - let v66 : string = $"env.get_environment_variable / target: {v65} / var: {v0}" - let v67 : string = failwith<string> v66 - let _run_target_args'_v1 = v67 - #endif -#else - let v68 : (string -> string) = System.Environment.GetEnvironmentVariable - let v69 : string = v68 v0 - let mutable _v69 = None - #if !FABLE_COMPILER && !WASM && !CONTRACT - let v70 : (string -> string option) = Option.ofObj - let v71 : string option = v70 v69 - v71 - #else - Some v69 - #endif - |> fun x -> _v69 <- Some x - let v72 : string option = match _v69 with Some x -> x | None -> failwith "optionm'.of_obj / _v69=None" - let v75 : (string -> US5) = method5() - let v76 : US5 option = v72 |> Option.map v75 - let v87 : US5 = US5_1 - let v88 : US5 = v76 |> Option.defaultValue v87 - let v95 : string = - match v88 with - | US5_1 -> (* None *) - let v93 : string = "" - v93 - | US5_0(v92) -> (* Some *) - v92 - let _run_target_args'_v1 = v95 - #endif - let v96 : string = _run_target_args'_v1 - v96 -and method1 () : struct (US1 * US2) = - let v0 : string = "TRACE_LEVEL" - let v1 : string = method2(v0) - - - - - - let v2 : bool = "Verbose" = v1 - let v6 : US1 = - if v2 then - let v3 : US0 = US0_0 - US1_0(v3) - else - US1_1 - let v47 : US1 = - match v6 with - | US1_1 -> (* None *) - let v9 : bool = "Debug" = v1 - let v13 : US1 = - if v9 then - let v10 : US0 = US0_1 - US1_0(v10) - else - US1_1 - match v13 with - | US1_1 -> (* None *) - let v16 : bool = "Info" = v1 - let v20 : US1 = - if v16 then - let v17 : US0 = US0_2 - US1_0(v17) - else - US1_1 - match v20 with - | US1_1 -> (* None *) - let v23 : bool = "Warning" = v1 - let v27 : US1 = - if v23 then - let v24 : US0 = US0_3 - US1_0(v24) - else - US1_1 - match v27 with - | US1_1 -> (* None *) - let v30 : bool = "Critical" = v1 - let v34 : US1 = - if v30 then - let v31 : US0 = US0_4 - US1_0(v31) - else - US1_1 - match v34 with - | US1_1 -> (* None *) - US1_1 - | US1_0(v35) -> (* Some *) - US1_0(v35) - | US1_0(v28) -> (* Some *) - US1_0(v28) - | US1_0(v21) -> (* Some *) - US1_0(v21) - | US1_0(v14) -> (* Some *) - US1_0(v14) - | US1_0(v7) -> (* Some *) - US1_0(v7) - let v48 : string = "AUTOMATION" - let v49 : string = method2(v48) - let v50 : string = "True" - let v51 : bool = v49 <> v50 - let v107 : US2 = - if v51 then - US2_1 - else - (* run_target_args' - let v55 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v56 : System.DateTime = System.DateTime.Now - let _run_target_args'_v55 = v56 - #endif -#if FABLE_COMPILER_RUST && WASM - let v57 : System.DateTime = System.DateTime.Now - let _run_target_args'_v55 = v57 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v58 : System.DateTime = null |> unbox<System.DateTime> - let _run_target_args'_v55 = v58 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v61 : System.DateTime = System.DateTime.Now - let _run_target_args'_v55 = v61 - #endif -#if FABLE_COMPILER_PYTHON - let v62 : System.DateTime = System.DateTime.Now - let _run_target_args'_v55 = v62 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v63 : System.DateTime = System.DateTime.Now - let _run_target_args'_v55 = v63 - #endif -#else - let v64 : System.DateTime = System.DateTime.Now - let _run_target_args'_v55 = v64 - #endif - let v65 : System.DateTime = _run_target_args'_v55 - (* run_target_args' - let v70 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v71 : (System.DateTime -> int64) = _.Ticks - let v72 : int64 = v71 v65 - let _run_target_args'_v70 = v72 - #endif -#if FABLE_COMPILER_RUST && WASM - let v73 : (System.DateTime -> int64) = _.Ticks - let v74 : int64 = v73 v65 - let _run_target_args'_v70 = v74 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v75 : int64 = null |> unbox<int64> - let _run_target_args'_v70 = v75 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v78 : (System.DateTime -> int64) = _.Ticks - let v79 : int64 = v78 v65 - let _run_target_args'_v70 = v79 - #endif -#if FABLE_COMPILER_PYTHON - let v80 : (System.DateTime -> int64) = _.Ticks - let v81 : int64 = v80 v65 - let _run_target_args'_v70 = v81 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v82 : (System.DateTime -> int64) = _.Ticks - let v83 : int64 = v82 v65 - let _run_target_args'_v70 = v83 - #endif -#else - let v84 : (System.DateTime -> int64) = _.Ticks - let v85 : int64 = v84 v65 - let _run_target_args'_v70 = v85 - #endif - let v86 : int64 = _run_target_args'_v70 - let v103 : int64 = v86 |> int64 - US2_0(v103) - struct (v47, v107) -and closure2 () (v0 : string) : unit = - () -and method0 (v0 : US0) : struct (Mut0 * Mut1 * Mut2 * Mut3 * Mut4 * int64 option) = - (* run_target_args' - let v1 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let struct (v2 : US1, v3 : US2) = method1() - let _run_target_args'_v1 = struct (v2, v3) - #endif -#if FABLE_COMPILER_RUST && WASM - let v4 : US1 = US1_1 - let v5 : US2 = US2_1 - let _run_target_args'_v1 = struct (v4, v5) - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v6 : string = "AUTOMATION" - (* run_target_args' - let v7 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v8 : string = "option_env!(\"" + v6 + "\").unwrap_or(\"\")" - let v9 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr () v8 - (* run_target_args' - let v10 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v11 : string = "String::from($0)" - let v12 : std_string_String = Fable.Core.RustInterop.emitRustExpr v9 v11 - let _run_target_args'_v10 = v12 - #endif -#if FABLE_COMPILER_RUST && WASM - let v13 : string = "String::from($0)" - let v14 : std_string_String = Fable.Core.RustInterop.emitRustExpr v9 v13 - let _run_target_args'_v10 = v14 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v15 : string = "String::from($0)" - let v16 : std_string_String = Fable.Core.RustInterop.emitRustExpr v9 v15 - let _run_target_args'_v10 = v16 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v17 : std_string_String = v9 |> unbox<std_string_String> - let _run_target_args'_v10 = v17 - #endif -#if FABLE_COMPILER_PYTHON - let v20 : std_string_String = v9 |> unbox<std_string_String> - let _run_target_args'_v10 = v20 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v23 : std_string_String = v9 |> unbox<std_string_String> - let _run_target_args'_v10 = v23 - #endif -#else - let v26 : std_string_String = v9 |> unbox<std_string_String> - let _run_target_args'_v10 = v26 - #endif - let v29 : std_string_String = _run_target_args'_v10 - let v34 : string = "fable_library_rust::String_::fromString($0)" - let v35 : string = Fable.Core.RustInterop.emitRustExpr v29 v34 - let _run_target_args'_v7 = v35 - #endif -#if FABLE_COMPILER_RUST && WASM - let v36 : string = "option_env!(\"" + v6 + "\").unwrap_or(\"\")" - let v37 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr () v36 - (* run_target_args' - let v38 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v39 : string = "String::from($0)" - let v40 : std_string_String = Fable.Core.RustInterop.emitRustExpr v37 v39 - let _run_target_args'_v38 = v40 - #endif -#if FABLE_COMPILER_RUST && WASM - let v41 : string = "String::from($0)" - let v42 : std_string_String = Fable.Core.RustInterop.emitRustExpr v37 v41 - let _run_target_args'_v38 = v42 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v43 : string = "String::from($0)" - let v44 : std_string_String = Fable.Core.RustInterop.emitRustExpr v37 v43 - let _run_target_args'_v38 = v44 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v45 : std_string_String = v37 |> unbox<std_string_String> - let _run_target_args'_v38 = v45 - #endif -#if FABLE_COMPILER_PYTHON - let v48 : std_string_String = v37 |> unbox<std_string_String> - let _run_target_args'_v38 = v48 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v51 : std_string_String = v37 |> unbox<std_string_String> - let _run_target_args'_v38 = v51 - #endif -#else - let v54 : std_string_String = v37 |> unbox<std_string_String> - let _run_target_args'_v38 = v54 - #endif - let v57 : std_string_String = _run_target_args'_v38 - let v62 : string = "fable_library_rust::String_::fromString($0)" - let v63 : string = Fable.Core.RustInterop.emitRustExpr v57 v62 - let _run_target_args'_v7 = v63 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v64 : string = "option_env!(\"" + v6 + "\").unwrap_or(\"\")" - let v65 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr () v64 - (* run_target_args' - let v66 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v67 : string = "String::from($0)" - let v68 : std_string_String = Fable.Core.RustInterop.emitRustExpr v65 v67 - let _run_target_args'_v66 = v68 - #endif -#if FABLE_COMPILER_RUST && WASM - let v69 : string = "String::from($0)" - let v70 : std_string_String = Fable.Core.RustInterop.emitRustExpr v65 v69 - let _run_target_args'_v66 = v70 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v71 : string = "String::from($0)" - let v72 : std_string_String = Fable.Core.RustInterop.emitRustExpr v65 v71 - let _run_target_args'_v66 = v72 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v73 : std_string_String = v65 |> unbox<std_string_String> - let _run_target_args'_v66 = v73 - #endif -#if FABLE_COMPILER_PYTHON - let v76 : std_string_String = v65 |> unbox<std_string_String> - let _run_target_args'_v66 = v76 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v79 : std_string_String = v65 |> unbox<std_string_String> - let _run_target_args'_v66 = v79 - #endif -#else - let v82 : std_string_String = v65 |> unbox<std_string_String> - let _run_target_args'_v66 = v82 - #endif - let v85 : std_string_String = _run_target_args'_v66 - let v90 : string = "fable_library_rust::String_::fromString($0)" - let v91 : string = Fable.Core.RustInterop.emitRustExpr v85 v90 - let _run_target_args'_v7 = v91 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v92 : string = null |> unbox<string> - let _run_target_args'_v7 = v92 - #endif -#if FABLE_COMPILER_PYTHON - let v95 : string = null |> unbox<string> - let _run_target_args'_v7 = v95 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v98 : string = null |> unbox<string> - let _run_target_args'_v7 = v98 - #endif -#else - let v101 : string = null |> unbox<string> - let _run_target_args'_v7 = v101 - #endif - let v104 : string = _run_target_args'_v7 - let v109 : string = "True" - let v110 : bool = v104 <> v109 - let v121 : US2 = - if v110 then - US2_1 - else - let v114 : string = $"near_sdk::env::block_timestamp()" - let v115 : uint64 = Fable.Core.RustInterop.emitRustExpr () v114 - let v116 : (uint64 -> int64) = int64 - let v117 : int64 = v116 v115 - US2_0(v117) - let v122 : US1 = US1_1 - let _run_target_args'_v1 = struct (v122, v121) - #endif -#if FABLE_COMPILER_TYPESCRIPT - let struct (v123 : US1, v124 : US2) = method1() - let _run_target_args'_v1 = struct (v123, v124) - #endif -#if FABLE_COMPILER_PYTHON - let struct (v125 : US1, v126 : US2) = method1() - let _run_target_args'_v1 = struct (v125, v126) - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let struct (v127 : US1, v128 : US2) = method1() - let _run_target_args'_v1 = struct (v127, v128) - #endif -#else - let struct (v129 : US1, v130 : US2) = method1() - let _run_target_args'_v1 = struct (v129, v130) - #endif - let struct (v131 : US1, v132 : US2) = _run_target_args'_v1 - let v137 : Mut0 = {l0 = 1L} : Mut0 - let v138 : (string -> unit) = closure2() - let v139 : Mut1 = {l0 = v138} : Mut1 - let v140 : Mut2 = {l0 = true} : Mut2 - let v141 : string = "" - let v142 : Mut3 = {l0 = v141} : Mut3 - let v145 : US0 = - match v131 with - | US1_1 -> (* None *) - v0 - | US1_0(v143) -> (* Some *) - v143 - let v146 : Mut4 = {l0 = v145} : Mut4 - let v153 : int64 option = - match v132 with - | US2_1 -> (* None *) - let v151 : int64 option = None - v151 - | US2_0(v147) -> (* Some *) - let v148 : int64 option = Some v147 - v148 - struct (v137, v139, v140, v142, v146, v153) -and closure0 () () : unit = - let v0 : bool = TraceState.trace_state.IsNone - if v0 then - let v1 : US0 = US0_0 - let struct (v2 : Mut0, v3 : Mut1, v4 : Mut2, v5 : Mut3, v6 : Mut4, v7 : int64 option) = method0(v1) - let v8 : struct (Mut0 * Mut1 * Mut2 * Mut3 * Mut4 * int64 option) option = Some struct (v2, v3, v4, v5, v6, v7) - TraceState.trace_state <- v8 - () -and method8 (v0 : US0) : bool = - let v1 : unit = () - let v2 : (unit -> unit) = closure0() - let v3 : unit = (fun () -> v2 (); v1) () - let struct (v17 : Mut0, v18 : Mut1, v19 : Mut2, v20 : Mut3, v21 : Mut4, v22 : int64 option) = TraceState.trace_state.Value - let v35 : US0 = v21.l0 - let v36 : bool = v19.l0 - let v37 : bool = v36 = false - if v37 then - false - else - let v38 : int32 = [ US0_0, 0; US0_1, 1; US0_2, 2; US0_3, 3; US0_4, 4 ] |> Map |> Map.find v0 - let v39 : int32 = [ US0_0, 0; US0_1, 1; US0_2, 2; US0_3, 3; US0_4, 4 ] |> Map |> Map.find v35 - let v40 : bool = v38 >= v39 - v40 -and closure6 () (v0 : int64) : US2 = - US2_0(v0) -and method10 () : (int64 -> US2) = - closure6() -and method11 () : string = - let v0 : string = "hh:mm:ss" - v0 -and method12 () : string = - let v0 : string = "HH:mm:ss" - v0 -and method9 (v0 : Mut0, v1 : Mut1, v2 : Mut2, v3 : Mut3, v4 : Mut4, v5 : int64 option) : string = - (* run_target_args' - let v6 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v7 : (int64 -> US2) = method10() - let v8 : US2 option = v5 |> Option.map v7 - let v19 : US2 = US2_1 - let v20 : US2 = v8 |> Option.defaultValue v19 - let v117 : System.DateTime = - match v20 with - | US2_1 -> (* None *) - (* run_target_args' - let v101 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v102 : System.DateTime = System.DateTime.Now - let _run_target_args'_v101 = v102 - #endif -#if FABLE_COMPILER_RUST && WASM - let v103 : System.DateTime = System.DateTime.Now - let _run_target_args'_v101 = v103 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v104 : System.DateTime = null |> unbox<System.DateTime> - let _run_target_args'_v101 = v104 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v107 : System.DateTime = System.DateTime.Now - let _run_target_args'_v101 = v107 - #endif -#if FABLE_COMPILER_PYTHON - let v108 : System.DateTime = System.DateTime.Now - let _run_target_args'_v101 = v108 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v109 : System.DateTime = System.DateTime.Now - let _run_target_args'_v101 = v109 - #endif -#else - let v110 : System.DateTime = System.DateTime.Now - let _run_target_args'_v101 = v110 - #endif - let v111 : System.DateTime = _run_target_args'_v101 - v111 - | US2_0(v24) -> (* Some *) - (* run_target_args' - let v25 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v26 : System.DateTime = System.DateTime.Now - let _run_target_args'_v25 = v26 - #endif -#if FABLE_COMPILER_RUST && WASM - let v27 : System.DateTime = System.DateTime.Now - let _run_target_args'_v25 = v27 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v28 : System.DateTime = null |> unbox<System.DateTime> - let _run_target_args'_v25 = v28 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v31 : System.DateTime = System.DateTime.Now - let _run_target_args'_v25 = v31 - #endif -#if FABLE_COMPILER_PYTHON - let v32 : System.DateTime = System.DateTime.Now - let _run_target_args'_v25 = v32 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v33 : System.DateTime = System.DateTime.Now - let _run_target_args'_v25 = v33 - #endif -#else - let v34 : System.DateTime = System.DateTime.Now - let _run_target_args'_v25 = v34 - #endif - let v35 : System.DateTime = _run_target_args'_v25 - (* run_target_args' - let v40 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v41 : (System.DateTime -> int64) = _.Ticks - let v42 : int64 = v41 v35 - let _run_target_args'_v40 = v42 - #endif -#if FABLE_COMPILER_RUST && WASM - let v43 : (System.DateTime -> int64) = _.Ticks - let v44 : int64 = v43 v35 - let _run_target_args'_v40 = v44 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v45 : int64 = null |> unbox<int64> - let _run_target_args'_v40 = v45 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v48 : (System.DateTime -> int64) = _.Ticks - let v49 : int64 = v48 v35 - let _run_target_args'_v40 = v49 - #endif -#if FABLE_COMPILER_PYTHON - let v50 : (System.DateTime -> int64) = _.Ticks - let v51 : int64 = v50 v35 - let _run_target_args'_v40 = v51 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v52 : (System.DateTime -> int64) = _.Ticks - let v53 : int64 = v52 v35 - let _run_target_args'_v40 = v53 - #endif -#else - let v54 : (System.DateTime -> int64) = _.Ticks - let v55 : int64 = v54 v35 - let _run_target_args'_v40 = v55 - #endif - let v56 : int64 = _run_target_args'_v40 - let v73 : int64 = v56 |> int64 - let v76 : int64 = v73 - v24 - let v77 : System.TimeSpan = v76 |> System.TimeSpan - let v82 : (System.TimeSpan -> int32) = _.Hours - let v83 : int32 = v82 v77 - let v86 : (System.TimeSpan -> int32) = _.Minutes - let v87 : int32 = v86 v77 - let v90 : (System.TimeSpan -> int32) = _.Seconds - let v91 : int32 = v90 v77 - let v94 : (System.TimeSpan -> int32) = _.Milliseconds - let v95 : int32 = v94 v77 - let v98 : System.DateTime = System.DateTime (1, 1, 1, v83, v87, v91, v95) - v98 - let v118 : string = method11() - let v121 : bool = v118 = "" - let v123 : string = - if v121 then - let v122 : string = "M-d-y hh:mm:ss tt" - v122 - else - v118 - let v124 : (string -> string) = v117.ToString - let v125 : string = v124 v123 - let _run_target_args'_v6 = v125 - #endif -#if FABLE_COMPILER_RUST && WASM - let v139 : (int64 -> US2) = method10() - let v140 : US2 option = v5 |> Option.map v139 - let v151 : US2 = US2_1 - let v152 : US2 = v140 |> Option.defaultValue v151 - let v249 : System.DateTime = - match v152 with - | US2_1 -> (* None *) - (* run_target_args' - let v233 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v234 : System.DateTime = System.DateTime.Now - let _run_target_args'_v233 = v234 - #endif -#if FABLE_COMPILER_RUST && WASM - let v235 : System.DateTime = System.DateTime.Now - let _run_target_args'_v233 = v235 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v236 : System.DateTime = null |> unbox<System.DateTime> - let _run_target_args'_v233 = v236 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v239 : System.DateTime = System.DateTime.Now - let _run_target_args'_v233 = v239 - #endif -#if FABLE_COMPILER_PYTHON - let v240 : System.DateTime = System.DateTime.Now - let _run_target_args'_v233 = v240 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v241 : System.DateTime = System.DateTime.Now - let _run_target_args'_v233 = v241 - #endif -#else - let v242 : System.DateTime = System.DateTime.Now - let _run_target_args'_v233 = v242 - #endif - let v243 : System.DateTime = _run_target_args'_v233 - v243 - | US2_0(v156) -> (* Some *) - (* run_target_args' - let v157 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v158 : System.DateTime = System.DateTime.Now - let _run_target_args'_v157 = v158 - #endif -#if FABLE_COMPILER_RUST && WASM - let v159 : System.DateTime = System.DateTime.Now - let _run_target_args'_v157 = v159 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v160 : System.DateTime = null |> unbox<System.DateTime> - let _run_target_args'_v157 = v160 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v163 : System.DateTime = System.DateTime.Now - let _run_target_args'_v157 = v163 - #endif -#if FABLE_COMPILER_PYTHON - let v164 : System.DateTime = System.DateTime.Now - let _run_target_args'_v157 = v164 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v165 : System.DateTime = System.DateTime.Now - let _run_target_args'_v157 = v165 - #endif -#else - let v166 : System.DateTime = System.DateTime.Now - let _run_target_args'_v157 = v166 - #endif - let v167 : System.DateTime = _run_target_args'_v157 - (* run_target_args' - let v172 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v173 : (System.DateTime -> int64) = _.Ticks - let v174 : int64 = v173 v167 - let _run_target_args'_v172 = v174 - #endif -#if FABLE_COMPILER_RUST && WASM - let v175 : (System.DateTime -> int64) = _.Ticks - let v176 : int64 = v175 v167 - let _run_target_args'_v172 = v176 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v177 : int64 = null |> unbox<int64> - let _run_target_args'_v172 = v177 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v180 : (System.DateTime -> int64) = _.Ticks - let v181 : int64 = v180 v167 - let _run_target_args'_v172 = v181 - #endif -#if FABLE_COMPILER_PYTHON - let v182 : (System.DateTime -> int64) = _.Ticks - let v183 : int64 = v182 v167 - let _run_target_args'_v172 = v183 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v184 : (System.DateTime -> int64) = _.Ticks - let v185 : int64 = v184 v167 - let _run_target_args'_v172 = v185 - #endif -#else - let v186 : (System.DateTime -> int64) = _.Ticks - let v187 : int64 = v186 v167 - let _run_target_args'_v172 = v187 - #endif - let v188 : int64 = _run_target_args'_v172 - let v205 : int64 = v188 |> int64 - let v208 : int64 = v205 - v156 - let v209 : System.TimeSpan = v208 |> System.TimeSpan - let v214 : (System.TimeSpan -> int32) = _.Hours - let v215 : int32 = v214 v209 - let v218 : (System.TimeSpan -> int32) = _.Minutes - let v219 : int32 = v218 v209 - let v222 : (System.TimeSpan -> int32) = _.Seconds - let v223 : int32 = v222 v209 - let v226 : (System.TimeSpan -> int32) = _.Milliseconds - let v227 : int32 = v226 v209 - let v230 : System.DateTime = System.DateTime (1, 1, 1, v215, v219, v223, v227) - v230 - let v250 : string = method11() - let v253 : bool = v250 = "" - let v255 : string = - if v253 then - let v254 : string = "M-d-y hh:mm:ss tt" - v254 - else - v250 - let v256 : (string -> string) = v249.ToString - let v257 : string = v256 v255 - let _run_target_args'_v6 = v257 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v271 : string = $"near_sdk::env::block_timestamp()" - let v272 : uint64 = Fable.Core.RustInterop.emitRustExpr () v271 - let v273 : (int64 -> US2) = method10() - let v274 : US2 option = v5 |> Option.map v273 - let v285 : US2 = US2_1 - let v286 : US2 = v274 |> Option.defaultValue v285 - let v297 : uint64 = - match v286 with - | US2_1 -> (* None *) - v272 - | US2_0(v290) -> (* Some *) - let v291 : (int64 -> uint64) = uint64 - let v292 : uint64 = v291 v290 - let v295 : uint64 = v272 - v292 - v295 - let v298 : uint64 = v297 / 1000000000UL - let v299 : uint64 = v298 % 60UL - let v300 : uint64 = v298 / 60UL - let v301 : uint64 = v300 % 60UL - let v302 : uint64 = v298 / 3600UL - let v303 : uint64 = v302 % 24UL - let v304 : string = $"format!(\"{{:02}}:{{:02}}:{{:02}}\", $0, $1, $2)" - let v305 : std_string_String = Fable.Core.RustInterop.emitRustExpr struct (v303, v301, v299) v304 - let v306 : string = "fable_library_rust::String_::fromString($0)" - let v307 : string = Fable.Core.RustInterop.emitRustExpr v305 v306 - let _run_target_args'_v6 = v307 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v308 : (int64 -> US2) = method10() - let v309 : US2 option = v5 |> Option.map v308 - let v320 : US2 = US2_1 - let v321 : US2 = v309 |> Option.defaultValue v320 - let v418 : System.DateTime = - match v321 with - | US2_1 -> (* None *) - (* run_target_args' - let v402 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v403 : System.DateTime = System.DateTime.Now - let _run_target_args'_v402 = v403 - #endif -#if FABLE_COMPILER_RUST && WASM - let v404 : System.DateTime = System.DateTime.Now - let _run_target_args'_v402 = v404 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v405 : System.DateTime = null |> unbox<System.DateTime> - let _run_target_args'_v402 = v405 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v408 : System.DateTime = System.DateTime.Now - let _run_target_args'_v402 = v408 - #endif -#if FABLE_COMPILER_PYTHON - let v409 : System.DateTime = System.DateTime.Now - let _run_target_args'_v402 = v409 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v410 : System.DateTime = System.DateTime.Now - let _run_target_args'_v402 = v410 - #endif -#else - let v411 : System.DateTime = System.DateTime.Now - let _run_target_args'_v402 = v411 - #endif - let v412 : System.DateTime = _run_target_args'_v402 - v412 - | US2_0(v325) -> (* Some *) - (* run_target_args' - let v326 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v327 : System.DateTime = System.DateTime.Now - let _run_target_args'_v326 = v327 - #endif -#if FABLE_COMPILER_RUST && WASM - let v328 : System.DateTime = System.DateTime.Now - let _run_target_args'_v326 = v328 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v329 : System.DateTime = null |> unbox<System.DateTime> - let _run_target_args'_v326 = v329 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v332 : System.DateTime = System.DateTime.Now - let _run_target_args'_v326 = v332 - #endif -#if FABLE_COMPILER_PYTHON - let v333 : System.DateTime = System.DateTime.Now - let _run_target_args'_v326 = v333 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v334 : System.DateTime = System.DateTime.Now - let _run_target_args'_v326 = v334 - #endif -#else - let v335 : System.DateTime = System.DateTime.Now - let _run_target_args'_v326 = v335 - #endif - let v336 : System.DateTime = _run_target_args'_v326 - (* run_target_args' - let v341 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v342 : (System.DateTime -> int64) = _.Ticks - let v343 : int64 = v342 v336 - let _run_target_args'_v341 = v343 - #endif -#if FABLE_COMPILER_RUST && WASM - let v344 : (System.DateTime -> int64) = _.Ticks - let v345 : int64 = v344 v336 - let _run_target_args'_v341 = v345 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v346 : int64 = null |> unbox<int64> - let _run_target_args'_v341 = v346 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v349 : (System.DateTime -> int64) = _.Ticks - let v350 : int64 = v349 v336 - let _run_target_args'_v341 = v350 - #endif -#if FABLE_COMPILER_PYTHON - let v351 : (System.DateTime -> int64) = _.Ticks - let v352 : int64 = v351 v336 - let _run_target_args'_v341 = v352 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v353 : (System.DateTime -> int64) = _.Ticks - let v354 : int64 = v353 v336 - let _run_target_args'_v341 = v354 - #endif -#else - let v355 : (System.DateTime -> int64) = _.Ticks - let v356 : int64 = v355 v336 - let _run_target_args'_v341 = v356 - #endif - let v357 : int64 = _run_target_args'_v341 - let v374 : int64 = v357 |> int64 - let v377 : int64 = v374 - v325 - let v378 : System.TimeSpan = v377 |> System.TimeSpan - let v383 : (System.TimeSpan -> int32) = _.Hours - let v384 : int32 = v383 v378 - let v387 : (System.TimeSpan -> int32) = _.Minutes - let v388 : int32 = v387 v378 - let v391 : (System.TimeSpan -> int32) = _.Seconds - let v392 : int32 = v391 v378 - let v395 : (System.TimeSpan -> int32) = _.Milliseconds - let v396 : int32 = v395 v378 - let v399 : System.DateTime = System.DateTime (1, 1, 1, v384, v388, v392, v396) - v399 - let v419 : string = method12() - let v422 : bool = v419 = "" - let v424 : string = - if v422 then - let v423 : string = "M-d-y hh:mm:ss tt" - v423 - else - v419 - let v425 : (string -> string) = v418.ToString - let v426 : string = v425 v424 - let _run_target_args'_v6 = v426 - #endif -#if FABLE_COMPILER_PYTHON - let v440 : (int64 -> US2) = method10() - let v441 : US2 option = v5 |> Option.map v440 - let v452 : US2 = US2_1 - let v453 : US2 = v441 |> Option.defaultValue v452 - let v550 : System.DateTime = - match v453 with - | US2_1 -> (* None *) - (* run_target_args' - let v534 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v535 : System.DateTime = System.DateTime.Now - let _run_target_args'_v534 = v535 - #endif -#if FABLE_COMPILER_RUST && WASM - let v536 : System.DateTime = System.DateTime.Now - let _run_target_args'_v534 = v536 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v537 : System.DateTime = null |> unbox<System.DateTime> - let _run_target_args'_v534 = v537 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v540 : System.DateTime = System.DateTime.Now - let _run_target_args'_v534 = v540 - #endif -#if FABLE_COMPILER_PYTHON - let v541 : System.DateTime = System.DateTime.Now - let _run_target_args'_v534 = v541 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v542 : System.DateTime = System.DateTime.Now - let _run_target_args'_v534 = v542 - #endif -#else - let v543 : System.DateTime = System.DateTime.Now - let _run_target_args'_v534 = v543 - #endif - let v544 : System.DateTime = _run_target_args'_v534 - v544 - | US2_0(v457) -> (* Some *) - (* run_target_args' - let v458 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v459 : System.DateTime = System.DateTime.Now - let _run_target_args'_v458 = v459 - #endif -#if FABLE_COMPILER_RUST && WASM - let v460 : System.DateTime = System.DateTime.Now - let _run_target_args'_v458 = v460 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v461 : System.DateTime = null |> unbox<System.DateTime> - let _run_target_args'_v458 = v461 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v464 : System.DateTime = System.DateTime.Now - let _run_target_args'_v458 = v464 - #endif -#if FABLE_COMPILER_PYTHON - let v465 : System.DateTime = System.DateTime.Now - let _run_target_args'_v458 = v465 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v466 : System.DateTime = System.DateTime.Now - let _run_target_args'_v458 = v466 - #endif -#else - let v467 : System.DateTime = System.DateTime.Now - let _run_target_args'_v458 = v467 - #endif - let v468 : System.DateTime = _run_target_args'_v458 - (* run_target_args' - let v473 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v474 : (System.DateTime -> int64) = _.Ticks - let v475 : int64 = v474 v468 - let _run_target_args'_v473 = v475 - #endif -#if FABLE_COMPILER_RUST && WASM - let v476 : (System.DateTime -> int64) = _.Ticks - let v477 : int64 = v476 v468 - let _run_target_args'_v473 = v477 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v478 : int64 = null |> unbox<int64> - let _run_target_args'_v473 = v478 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v481 : (System.DateTime -> int64) = _.Ticks - let v482 : int64 = v481 v468 - let _run_target_args'_v473 = v482 - #endif -#if FABLE_COMPILER_PYTHON - let v483 : (System.DateTime -> int64) = _.Ticks - let v484 : int64 = v483 v468 - let _run_target_args'_v473 = v484 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v485 : (System.DateTime -> int64) = _.Ticks - let v486 : int64 = v485 v468 - let _run_target_args'_v473 = v486 - #endif -#else - let v487 : (System.DateTime -> int64) = _.Ticks - let v488 : int64 = v487 v468 - let _run_target_args'_v473 = v488 - #endif - let v489 : int64 = _run_target_args'_v473 - let v506 : int64 = v489 |> int64 - let v509 : int64 = v506 - v457 - let v510 : System.TimeSpan = v509 |> System.TimeSpan - let v515 : (System.TimeSpan -> int32) = _.Hours - let v516 : int32 = v515 v510 - let v519 : (System.TimeSpan -> int32) = _.Minutes - let v520 : int32 = v519 v510 - let v523 : (System.TimeSpan -> int32) = _.Seconds - let v524 : int32 = v523 v510 - let v527 : (System.TimeSpan -> int32) = _.Milliseconds - let v528 : int32 = v527 v510 - let v531 : System.DateTime = System.DateTime (1, 1, 1, v516, v520, v524, v528) - v531 - let v551 : string = method12() - let v554 : bool = v551 = "" - let v556 : string = - if v554 then - let v555 : string = "M-d-y hh:mm:ss tt" - v555 - else - v551 - let v557 : (string -> string) = v550.ToString - let v558 : string = v557 v556 - let _run_target_args'_v6 = v558 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v572 : (int64 -> US2) = method10() - let v573 : US2 option = v5 |> Option.map v572 - let v584 : US2 = US2_1 - let v585 : US2 = v573 |> Option.defaultValue v584 - let v682 : System.DateTime = - match v585 with - | US2_1 -> (* None *) - (* run_target_args' - let v666 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v667 : System.DateTime = System.DateTime.Now - let _run_target_args'_v666 = v667 - #endif -#if FABLE_COMPILER_RUST && WASM - let v668 : System.DateTime = System.DateTime.Now - let _run_target_args'_v666 = v668 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v669 : System.DateTime = null |> unbox<System.DateTime> - let _run_target_args'_v666 = v669 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v672 : System.DateTime = System.DateTime.Now - let _run_target_args'_v666 = v672 - #endif -#if FABLE_COMPILER_PYTHON - let v673 : System.DateTime = System.DateTime.Now - let _run_target_args'_v666 = v673 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v674 : System.DateTime = System.DateTime.Now - let _run_target_args'_v666 = v674 - #endif -#else - let v675 : System.DateTime = System.DateTime.Now - let _run_target_args'_v666 = v675 - #endif - let v676 : System.DateTime = _run_target_args'_v666 - v676 - | US2_0(v589) -> (* Some *) - (* run_target_args' - let v590 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v591 : System.DateTime = System.DateTime.Now - let _run_target_args'_v590 = v591 - #endif -#if FABLE_COMPILER_RUST && WASM - let v592 : System.DateTime = System.DateTime.Now - let _run_target_args'_v590 = v592 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v593 : System.DateTime = null |> unbox<System.DateTime> - let _run_target_args'_v590 = v593 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v596 : System.DateTime = System.DateTime.Now - let _run_target_args'_v590 = v596 - #endif -#if FABLE_COMPILER_PYTHON - let v597 : System.DateTime = System.DateTime.Now - let _run_target_args'_v590 = v597 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v598 : System.DateTime = System.DateTime.Now - let _run_target_args'_v590 = v598 - #endif -#else - let v599 : System.DateTime = System.DateTime.Now - let _run_target_args'_v590 = v599 - #endif - let v600 : System.DateTime = _run_target_args'_v590 - (* run_target_args' - let v605 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v606 : (System.DateTime -> int64) = _.Ticks - let v607 : int64 = v606 v600 - let _run_target_args'_v605 = v607 - #endif -#if FABLE_COMPILER_RUST && WASM - let v608 : (System.DateTime -> int64) = _.Ticks - let v609 : int64 = v608 v600 - let _run_target_args'_v605 = v609 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v610 : int64 = null |> unbox<int64> - let _run_target_args'_v605 = v610 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v613 : (System.DateTime -> int64) = _.Ticks - let v614 : int64 = v613 v600 - let _run_target_args'_v605 = v614 - #endif -#if FABLE_COMPILER_PYTHON - let v615 : (System.DateTime -> int64) = _.Ticks - let v616 : int64 = v615 v600 - let _run_target_args'_v605 = v616 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v617 : (System.DateTime -> int64) = _.Ticks - let v618 : int64 = v617 v600 - let _run_target_args'_v605 = v618 - #endif -#else - let v619 : (System.DateTime -> int64) = _.Ticks - let v620 : int64 = v619 v600 - let _run_target_args'_v605 = v620 - #endif - let v621 : int64 = _run_target_args'_v605 - let v638 : int64 = v621 |> int64 - let v641 : int64 = v638 - v589 - let v642 : System.TimeSpan = v641 |> System.TimeSpan - let v647 : (System.TimeSpan -> int32) = _.Hours - let v648 : int32 = v647 v642 - let v651 : (System.TimeSpan -> int32) = _.Minutes - let v652 : int32 = v651 v642 - let v655 : (System.TimeSpan -> int32) = _.Seconds - let v656 : int32 = v655 v642 - let v659 : (System.TimeSpan -> int32) = _.Milliseconds - let v660 : int32 = v659 v642 - let v663 : System.DateTime = System.DateTime (1, 1, 1, v648, v652, v656, v660) - v663 - let v683 : string = method12() - let v686 : bool = v683 = "" - let v688 : string = - if v686 then - let v687 : string = "M-d-y hh:mm:ss tt" - v687 - else - v683 - let v689 : (string -> string) = v682.ToString - let v690 : string = v689 v688 - let _run_target_args'_v6 = v690 - #endif -#else - let v704 : (int64 -> US2) = method10() - let v705 : US2 option = v5 |> Option.map v704 - let v716 : US2 = US2_1 - let v717 : US2 = v705 |> Option.defaultValue v716 - let v814 : System.DateTime = - match v717 with - | US2_1 -> (* None *) - (* run_target_args' - let v798 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v799 : System.DateTime = System.DateTime.Now - let _run_target_args'_v798 = v799 - #endif -#if FABLE_COMPILER_RUST && WASM - let v800 : System.DateTime = System.DateTime.Now - let _run_target_args'_v798 = v800 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v801 : System.DateTime = null |> unbox<System.DateTime> - let _run_target_args'_v798 = v801 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v804 : System.DateTime = System.DateTime.Now - let _run_target_args'_v798 = v804 - #endif -#if FABLE_COMPILER_PYTHON - let v805 : System.DateTime = System.DateTime.Now - let _run_target_args'_v798 = v805 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v806 : System.DateTime = System.DateTime.Now - let _run_target_args'_v798 = v806 - #endif -#else - let v807 : System.DateTime = System.DateTime.Now - let _run_target_args'_v798 = v807 - #endif - let v808 : System.DateTime = _run_target_args'_v798 - v808 - | US2_0(v721) -> (* Some *) - (* run_target_args' - let v722 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v723 : System.DateTime = System.DateTime.Now - let _run_target_args'_v722 = v723 - #endif -#if FABLE_COMPILER_RUST && WASM - let v724 : System.DateTime = System.DateTime.Now - let _run_target_args'_v722 = v724 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v725 : System.DateTime = null |> unbox<System.DateTime> - let _run_target_args'_v722 = v725 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v728 : System.DateTime = System.DateTime.Now - let _run_target_args'_v722 = v728 - #endif -#if FABLE_COMPILER_PYTHON - let v729 : System.DateTime = System.DateTime.Now - let _run_target_args'_v722 = v729 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v730 : System.DateTime = System.DateTime.Now - let _run_target_args'_v722 = v730 - #endif -#else - let v731 : System.DateTime = System.DateTime.Now - let _run_target_args'_v722 = v731 - #endif - let v732 : System.DateTime = _run_target_args'_v722 - (* run_target_args' - let v737 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v738 : (System.DateTime -> int64) = _.Ticks - let v739 : int64 = v738 v732 - let _run_target_args'_v737 = v739 - #endif -#if FABLE_COMPILER_RUST && WASM - let v740 : (System.DateTime -> int64) = _.Ticks - let v741 : int64 = v740 v732 - let _run_target_args'_v737 = v741 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v742 : int64 = null |> unbox<int64> - let _run_target_args'_v737 = v742 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v745 : (System.DateTime -> int64) = _.Ticks - let v746 : int64 = v745 v732 - let _run_target_args'_v737 = v746 - #endif -#if FABLE_COMPILER_PYTHON - let v747 : (System.DateTime -> int64) = _.Ticks - let v748 : int64 = v747 v732 - let _run_target_args'_v737 = v748 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v749 : (System.DateTime -> int64) = _.Ticks - let v750 : int64 = v749 v732 - let _run_target_args'_v737 = v750 - #endif -#else - let v751 : (System.DateTime -> int64) = _.Ticks - let v752 : int64 = v751 v732 - let _run_target_args'_v737 = v752 - #endif - let v753 : int64 = _run_target_args'_v737 - let v770 : int64 = v753 |> int64 - let v773 : int64 = v770 - v721 - let v774 : System.TimeSpan = v773 |> System.TimeSpan - let v779 : (System.TimeSpan -> int32) = _.Hours - let v780 : int32 = v779 v774 - let v783 : (System.TimeSpan -> int32) = _.Minutes - let v784 : int32 = v783 v774 - let v787 : (System.TimeSpan -> int32) = _.Seconds - let v788 : int32 = v787 v774 - let v791 : (System.TimeSpan -> int32) = _.Milliseconds - let v792 : int32 = v791 v774 - let v795 : System.DateTime = System.DateTime (1, 1, 1, v780, v784, v788, v792) - v795 - let v815 : string = method12() - let v818 : bool = v815 = "" - let v820 : string = - if v818 then - let v819 : string = "M-d-y hh:mm:ss tt" - v819 - else - v815 - let v821 : (string -> string) = v814.ToString - let v822 : string = v821 v820 - let _run_target_args'_v6 = v822 - #endif - let v836 : string = _run_target_args'_v6 - v836 -and method15 () : string = - let v0 : string = "" - v0 -and closure7 (v0 : Mut3, v1 : string) () : unit = - let v2 : string = v0.l0 - let v3 : string = v2 + v1 - v0.l0 <- v3 - () -and method14 (v0 : char) : string = - let v1 : string = method15() - let v2 : Mut3 = {l0 = v1} : Mut3 - let v3 : string = $"{v0}" - let v6 : unit = () - let v7 : (unit -> unit) = closure7(v2, v3) - let v8 : unit = (fun () -> v7 (); v6) () - let v11 : string = v2.l0 - v11 -and method16 () : string = - let v0 : string = "\u001b[0m" - v0 -and method13 () : string = - - - - - - let v0 : string = "Verbose" - let v1 : (unit -> string) = v0.ToLower - let v2 : string = v1 () - let v5 : char = v2.[int 0] - let v6 : string = method14(v5) - (* run_target_args' - let v7 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v8 : string = "inline_colorization::color_bright_black" - let v9 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr () v8 - (* run_target_args' - let v10 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v11 : string = "&*$0" - let v12 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v6 v11 - let _run_target_args'_v10 = v12 - #endif -#if FABLE_COMPILER_RUST && WASM - let v13 : string = "&*$0" - let v14 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v6 v13 - let _run_target_args'_v10 = v14 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v15 : string = "&*$0" - let v16 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v6 v15 - let _run_target_args'_v10 = v16 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v17 : Ref<Str> = v6 |> unbox<Ref<Str>> - let _run_target_args'_v10 = v17 - #endif -#if FABLE_COMPILER_PYTHON - let v20 : Ref<Str> = v6 |> unbox<Ref<Str>> - let _run_target_args'_v10 = v20 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v23 : Ref<Str> = v6 |> unbox<Ref<Str>> - let _run_target_args'_v10 = v23 - #endif -#else - let v26 : Ref<Str> = v6 |> unbox<Ref<Str>> - let _run_target_args'_v10 = v26 - #endif - let v29 : Ref<Str> = _run_target_args'_v10 - let v34 : string = "inline_colorization::color_reset" - let v35 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr () v34 - let v36 : string = $"format!(\"{{}}{{}}{{}}\", $0, $1, $2)" - let v37 : std_string_String = Fable.Core.RustInterop.emitRustExpr struct (v9, v29, v35) v36 - let v38 : string = "fable_library_rust::String_::fromString($0)" - let v39 : string = Fable.Core.RustInterop.emitRustExpr v37 v38 - let _run_target_args'_v7 = v39 - #endif -#if FABLE_COMPILER_RUST && WASM - let v40 : string = "inline_colorization::color_bright_black" - let v41 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr () v40 - (* run_target_args' - let v42 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v43 : string = "&*$0" - let v44 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v6 v43 - let _run_target_args'_v42 = v44 - #endif -#if FABLE_COMPILER_RUST && WASM - let v45 : string = "&*$0" - let v46 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v6 v45 - let _run_target_args'_v42 = v46 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v47 : string = "&*$0" - let v48 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v6 v47 - let _run_target_args'_v42 = v48 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v49 : Ref<Str> = v6 |> unbox<Ref<Str>> - let _run_target_args'_v42 = v49 - #endif -#if FABLE_COMPILER_PYTHON - let v52 : Ref<Str> = v6 |> unbox<Ref<Str>> - let _run_target_args'_v42 = v52 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v55 : Ref<Str> = v6 |> unbox<Ref<Str>> - let _run_target_args'_v42 = v55 - #endif -#else - let v58 : Ref<Str> = v6 |> unbox<Ref<Str>> - let _run_target_args'_v42 = v58 - #endif - let v61 : Ref<Str> = _run_target_args'_v42 - let v66 : string = "inline_colorization::color_reset" - let v67 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr () v66 - let v68 : string = $"format!(\"{{}}{{}}{{}}\", $0, $1, $2)" - let v69 : std_string_String = Fable.Core.RustInterop.emitRustExpr struct (v41, v61, v67) v68 - let v70 : string = "fable_library_rust::String_::fromString($0)" - let v71 : string = Fable.Core.RustInterop.emitRustExpr v69 v70 - let _run_target_args'_v7 = v71 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v72 : string = "inline_colorization::color_bright_black" - let v73 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr () v72 - (* run_target_args' - let v74 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v75 : string = "&*$0" - let v76 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v6 v75 - let _run_target_args'_v74 = v76 - #endif -#if FABLE_COMPILER_RUST && WASM - let v77 : string = "&*$0" - let v78 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v6 v77 - let _run_target_args'_v74 = v78 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v79 : string = "&*$0" - let v80 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v6 v79 - let _run_target_args'_v74 = v80 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v81 : Ref<Str> = v6 |> unbox<Ref<Str>> - let _run_target_args'_v74 = v81 - #endif -#if FABLE_COMPILER_PYTHON - let v84 : Ref<Str> = v6 |> unbox<Ref<Str>> - let _run_target_args'_v74 = v84 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v87 : Ref<Str> = v6 |> unbox<Ref<Str>> - let _run_target_args'_v74 = v87 - #endif -#else - let v90 : Ref<Str> = v6 |> unbox<Ref<Str>> - let _run_target_args'_v74 = v90 - #endif - let v93 : Ref<Str> = _run_target_args'_v74 - let v98 : string = "inline_colorization::color_reset" - let v99 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr () v98 - let v100 : string = $"format!(\"{{}}{{}}{{}}\", $0, $1, $2)" - let v101 : std_string_String = Fable.Core.RustInterop.emitRustExpr struct (v73, v93, v99) v100 - let v102 : string = "fable_library_rust::String_::fromString($0)" - let v103 : string = Fable.Core.RustInterop.emitRustExpr v101 v102 - let _run_target_args'_v7 = v103 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v104 : string = "\u001b[90m" - let v105 : string = method16() - let v106 : string = v104 + v6 - let v107 : string = v106 + v105 - let _run_target_args'_v7 = v107 - #endif -#if FABLE_COMPILER_PYTHON - let v108 : string = "\u001b[90m" - let v109 : string = method16() - let v110 : string = v108 + v6 - let v111 : string = v110 + v109 - let _run_target_args'_v7 = v111 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v112 : string = "\u001b[90m" - let v113 : string = method16() - let v114 : string = v112 + v6 - let v115 : string = v114 + v113 - let _run_target_args'_v7 = v115 - #endif -#else - let v116 : string = "\u001b[90m" - let v117 : string = method16() - let v118 : string = v116 + v6 - let v119 : string = v118 + v117 - let _run_target_args'_v7 = v119 - #endif - let v120 : string = _run_target_args'_v7 - v120 -and method18 (v0 : int32, v1 : string) : string = - let v2 : string = method15() - let v3 : Mut3 = {l0 = v2} : Mut3 - let v4 : string = "{ " - let v5 : string = $"{v4}" - let v8 : unit = () - let v9 : (unit -> unit) = closure7(v3, v5) - let v10 : unit = (fun () -> v9 (); v8) () - let v13 : string = "port" - let v14 : string = $"{v13}" - let v17 : unit = () - let v18 : (unit -> unit) = closure7(v3, v14) - let v19 : unit = (fun () -> v18 (); v17) () - let v22 : string = " = " - let v23 : string = $"{v22}" - let v26 : unit = () - let v27 : (unit -> unit) = closure7(v3, v23) - let v28 : unit = (fun () -> v27 (); v26) () - let v31 : string = $"{v0}" - let v34 : unit = () - let v35 : (unit -> unit) = closure7(v3, v31) - let v36 : unit = (fun () -> v35 (); v34) () - let v39 : string = "; " - let v40 : string = $"{v39}" - let v43 : unit = () - let v44 : (unit -> unit) = closure7(v3, v40) - let v45 : unit = (fun () -> v44 (); v43) () - let v48 : string = "ex" - let v49 : string = $"{v48}" - let v52 : unit = () - let v53 : (unit -> unit) = closure7(v3, v49) - let v54 : unit = (fun () -> v53 (); v52) () - let v57 : string = $"{v22}" - let v60 : unit = () - let v61 : (unit -> unit) = closure7(v3, v57) - let v62 : unit = (fun () -> v61 (); v60) () - let v65 : string = $"{v1}" - let v68 : unit = () - let v69 : (unit -> unit) = closure7(v3, v65) - let v70 : unit = (fun () -> v69 (); v68) () - let v73 : string = " }" - let v74 : string = $"{v73}" - let v77 : unit = () - let v78 : (unit -> unit) = closure7(v3, v74) - let v79 : unit = (fun () -> v78 (); v77) () - let v82 : string = v3.l0 - v82 -and method19 (v0 : string) : string = - let v1 : char list = [] - let v2 : (char list -> (char [])) = List.toArray - let v3 : (char []) = v2 v1 - let v6 : string = v0.TrimStart v3 - let v30 : char list = [] - let v31 : char list = '/' :: v30 - let v34 : char list = ' ' :: v31 - let v37 : (char list -> (char [])) = List.toArray - let v38 : (char []) = v37 v34 - let v41 : string = v6.TrimEnd v38 - v41 -and method17 (v0 : Mut0, v1 : Mut1, v2 : Mut2, v3 : Mut3, v4 : Mut4, v5 : int64 option, v6 : string, v7 : string, v8 : int32, v9 : string) : string = - let v10 : string = method18(v8, v9) - let v11 : int64 = v0.l0 - let v12 : string = "networking.test_port_open" - let v13 : string = $"{v6} {v7} #{v11} %s{v12} / {v10}" - method19(v13) -and closure8 (v0 : Mut0) () : unit = - let v1 : int64 = v0.l0 - let v2 : int64 = v1 + 1L - v0.l0 <- v2 - () -and closure10 (v0 : string) () : unit = - let v1 : (string -> unit) = System.Console.WriteLine - v1 v0 -and closure9 () (v0 : string) : unit = - let v1 : unit = () - let v2 : (unit -> unit) = closure10(v0) - let v3 : unit = (fun () -> v2 (); v1) () - () -and method20 (v0 : string) : unit = - let v1 : unit = () - let v2 : (unit -> unit) = closure0() - let v3 : unit = (fun () -> v2 (); v1) () - let struct (v17 : Mut0, v18 : Mut1, v19 : Mut2, v20 : Mut3, v21 : Mut4, v22 : int64 option) = TraceState.trace_state.Value - let v35 : unit = () - let v36 : (unit -> unit) = closure8(v17) - let v37 : unit = (fun () -> v36 (); v35) () - let v40 : (string -> unit) = closure9() - (* run_target_args' - let v41 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v42 : string = @"println!(""{}"", $0)" - Fable.Core.RustInterop.emitRustExpr v0 v42 - #endif -#if FABLE_COMPILER_RUST && WASM - let v43 : string = @"println!(""{}"", $0)" - Fable.Core.RustInterop.emitRustExpr v0 v43 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v44 : string = v20.l0 - let v45 : bool = v44 = "" - let v53 : string = - if v45 then - v0 - else - let v46 : bool = v0 = "" - if v46 then - let v47 : string = v20.l0 - v47 - else - let v48 : string = v20.l0 - let v49 : string = "\n" - let v50 : string = v48 + v49 - let v51 : string = v50 + v0 - v51 - (* run_target_args' - let v54 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v55 : string = "&*$0" - let v56 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v53 v55 - let _run_target_args'_v54 = v56 - #endif -#if FABLE_COMPILER_RUST && WASM - let v57 : string = "&*$0" - let v58 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v53 v57 - let _run_target_args'_v54 = v58 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v59 : string = "&*$0" - let v60 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v53 v59 - let _run_target_args'_v54 = v60 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v61 : Ref<Str> = v53 |> unbox<Ref<Str>> - let _run_target_args'_v54 = v61 - #endif -#if FABLE_COMPILER_PYTHON - let v64 : Ref<Str> = v53 |> unbox<Ref<Str>> - let _run_target_args'_v54 = v64 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v67 : Ref<Str> = v53 |> unbox<Ref<Str>> - let _run_target_args'_v54 = v67 - #endif -#else - let v70 : Ref<Str> = v53 |> unbox<Ref<Str>> - let _run_target_args'_v54 = v70 - #endif - let v73 : Ref<Str> = _run_target_args'_v54 - let v78 : string = $"$0.chars()" - let v79 : Mut<_> = Fable.Core.RustInterop.emitRustExpr v73 v78 - let v80 : string = "$0" - let v81 : _ = Fable.Core.RustInterop.emitRustExpr v79 v80 - let v82 : string = "$0.collect::<Vec<_>>()" - let v83 : Vec<char> = Fable.Core.RustInterop.emitRustExpr v81 v82 - let v84 : string = "$0.chunks(15000).map(|x| x.into_iter().map(|x| x.clone()).collect::<Vec<_>>()).collect::<Vec<_>>()" - let v85 : Vec<Vec<char>> = Fable.Core.RustInterop.emitRustExpr v83 v84 - let v86 : string = "true; let _vec_map : Vec<_> = $0.into_iter().map(|x| { //" - let v87 : bool = Fable.Core.RustInterop.emitRustExpr v85 v86 - let v88 : string = "x" - let v89 : Vec<char> = Fable.Core.RustInterop.emitRustExpr () v88 - let v90 : string = "String::from_iter($0)" - let v91 : std_string_String = Fable.Core.RustInterop.emitRustExpr v89 v90 - let v92 : string = "true; $0 }).collect::<Vec<_>>()" - let v93 : bool = Fable.Core.RustInterop.emitRustExpr v91 v92 - let v94 : string = "_vec_map" - let v95 : Vec<std_string_String> = Fable.Core.RustInterop.emitRustExpr () v94 - let v96 : string = "$0.len()" - let v97 : unativeint = Fable.Core.RustInterop.emitRustExpr v95 v96 - let v98 : int32 = v97 |> int32 - let v105 : string = "" - let v106 : bool = v0 <> v105 - let v110 : bool = - if v106 then - let v109 : bool = v98 <= 1 - v109 - else - false - if v110 then - v20.l0 <- v53 - () - else - v20.l0 <- v105 - let v111 : string = "true; $0.into_iter().for_each(|x| { //" - let v112 : bool = Fable.Core.RustInterop.emitRustExpr v95 v111 - let v113 : string = "x" - let v114 : std_string_String = Fable.Core.RustInterop.emitRustExpr () v113 - let v115 : string = $"true; near_sdk::log!(\"{{}}\", $0)" - let v116 : bool = Fable.Core.RustInterop.emitRustExpr v114 v115 - let v117 : string = $"true" - let v118 : bool = Fable.Core.RustInterop.emitRustExpr () v117 - let v119 : string = "true; }); //" - let v120 : bool = Fable.Core.RustInterop.emitRustExpr () v119 - () - #endif -#if FABLE_COMPILER_TYPESCRIPT - v40 v0 - #endif -#if FABLE_COMPILER_PYTHON - v40 v0 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - v40 v0 - #endif -#else - v40 v0 - #endif - // run_target_args' is_unit - let v121 : (string -> unit) = v18.l0 - v121 v0 -and closure5 (v0 : int32, v1 : exn) () : unit = - let v2 : US0 = US0_0 - let v3 : bool = method8(v2) - if v3 then - let v4 : unit = () - let v5 : (unit -> unit) = closure0() - let v6 : unit = (fun () -> v5 (); v4) () - let struct (v20 : Mut0, v21 : Mut1, v22 : Mut2, v23 : Mut3, v24 : Mut4, v25 : int64 option) = TraceState.trace_state.Value - let v38 : string = method9(v20, v21, v22, v23, v24, v25) - let v39 : string = method13() - (* run_target_args' - let v40 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v41 : string = $"%A{v1}" - let _run_target_args'_v40 = v41 - #endif -#if FABLE_COMPILER_RUST && WASM - let v44 : string = $"%A{v1}" - let _run_target_args'_v40 = v44 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v47 : string = $"%A{v1}" - let _run_target_args'_v40 = v47 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v50 : string = $"%A{v1}" - let _run_target_args'_v40 = v50 - #endif -#if FABLE_COMPILER_PYTHON - let v53 : string = $"%A{v1}" - let _run_target_args'_v40 = v53 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v56 : string = $"%A{v1}" - let _run_target_args'_v40 = v56 - #endif -#else - let v59 : string = $"{v1.GetType ()}: {v1.Message}" - let _run_target_args'_v40 = v59 - #endif - let v60 : string = _run_target_args'_v40 - let v65 : string = method17(v20, v21, v22, v23, v24, v25, v38, v39, v0, v60) - method20(v65) -and method7 (v0 : string, v1 : int32) : Async<bool> = - (* run_target_args' - let v2 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v3 : Async<bool> = null |> unbox<Async<bool>> - let _run_target_args'_v2 = v3 - #endif -#if FABLE_COMPILER_RUST && WASM - let v6 : Async<bool> = null |> unbox<Async<bool>> - let _run_target_args'_v2 = v6 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v9 : Async<bool> = null |> unbox<Async<bool>> - let _run_target_args'_v2 = v9 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v12 : unit = () - let _let'_v12 = - async { - let v15 : Async<System.Threading.CancellationToken> = Async.CancellationToken - let! v15 = v15 - let v16 : System.Threading.CancellationToken = v15 - (* run_target_args' - let v17 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v18 : System_Net_Sockets_TcpClient = null |> unbox<System_Net_Sockets_TcpClient> - let _run_target_args'_v17 = v18 - #endif -#if FABLE_COMPILER_RUST && WASM - let v21 : System_Net_Sockets_TcpClient = null |> unbox<System_Net_Sockets_TcpClient> - let _run_target_args'_v17 = v21 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v24 : System_Net_Sockets_TcpClient = null |> unbox<System_Net_Sockets_TcpClient> - let _run_target_args'_v17 = v24 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v27 : System_Net_Sockets_TcpClient = null |> unbox<System_Net_Sockets_TcpClient> - let _run_target_args'_v17 = v27 - #endif -#if FABLE_COMPILER_PYTHON - let v30 : System_Net_Sockets_TcpClient = null |> unbox<System_Net_Sockets_TcpClient> - let _run_target_args'_v17 = v30 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v33 : System_Net_Sockets_TcpClient = null |> unbox<System_Net_Sockets_TcpClient> - let _run_target_args'_v17 = v33 - #endif -#else - let v36 : System_Net_Sockets_TcpClient = new System_Net_Sockets_TcpClient () - let _run_target_args'_v17 = v36 - #endif - let v37 : System_Net_Sockets_TcpClient = _run_target_args'_v17 - use v37 = v37 - let v42 : System_Net_Sockets_TcpClient = v37 - try - (* run_target_args' - let v43 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v44 : System.Threading.Tasks.ValueTask = null |> unbox<System.Threading.Tasks.ValueTask> - let _run_target_args'_v43 = v44 - #endif -#if FABLE_COMPILER_RUST && WASM - let v47 : System.Threading.Tasks.ValueTask = null |> unbox<System.Threading.Tasks.ValueTask> - let _run_target_args'_v43 = v47 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v50 : System.Threading.Tasks.ValueTask = null |> unbox<System.Threading.Tasks.ValueTask> - let _run_target_args'_v43 = v50 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v53 : System.Threading.Tasks.ValueTask = null |> unbox<System.Threading.Tasks.ValueTask> - let _run_target_args'_v43 = v53 - #endif -#if FABLE_COMPILER_PYTHON - let v56 : System.Threading.Tasks.ValueTask = null |> unbox<System.Threading.Tasks.ValueTask> - let _run_target_args'_v43 = v56 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v59 : System.Threading.Tasks.ValueTask = null |> unbox<System.Threading.Tasks.ValueTask> - let _run_target_args'_v43 = v59 - #endif -#else - let v62 : System.Threading.Tasks.ValueTask = v42.ConnectAsync (v0, v1, v16) - let _run_target_args'_v43 = v62 - #endif - let v63 : System.Threading.Tasks.ValueTask = _run_target_args'_v43 - (* run_target_args' - let v68 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v69 : System.Threading.Tasks.Task = null |> unbox<System.Threading.Tasks.Task> - let _run_target_args'_v68 = v69 - #endif -#if FABLE_COMPILER_RUST && WASM - let v72 : System.Threading.Tasks.Task = null |> unbox<System.Threading.Tasks.Task> - let _run_target_args'_v68 = v72 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v75 : System.Threading.Tasks.Task = null |> unbox<System.Threading.Tasks.Task> - let _run_target_args'_v68 = v75 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v78 : System.Threading.Tasks.Task = null |> unbox<System.Threading.Tasks.Task> - let _run_target_args'_v68 = v78 - #endif -#if FABLE_COMPILER_PYTHON - let v81 : System.Threading.Tasks.Task = null |> unbox<System.Threading.Tasks.Task> - let _run_target_args'_v68 = v81 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v84 : System.Threading.Tasks.Task = null |> unbox<System.Threading.Tasks.Task> - let _run_target_args'_v68 = v84 - #endif -#else - let v87 : (unit -> System.Threading.Tasks.Task) = v63.AsTask - let v88 : System.Threading.Tasks.Task = v87 () - let _run_target_args'_v68 = v88 - #endif - let v89 : System.Threading.Tasks.Task = _run_target_args'_v68 - (* run_target_args' - let v94 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v95 : Async<unit> = null |> unbox<Async<unit>> - let _run_target_args'_v94 = v95 - #endif -#if FABLE_COMPILER_RUST && WASM - let v98 : Async<unit> = null |> unbox<Async<unit>> - let _run_target_args'_v94 = v98 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v101 : Async<unit> = null |> unbox<Async<unit>> - let _run_target_args'_v94 = v101 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v104 : (System.Threading.Tasks.Task -> Async<unit>) = Async.AwaitTask - let v105 : Async<unit> = v104 v89 - let _run_target_args'_v94 = v105 - #endif -#if FABLE_COMPILER_PYTHON - let v106 : (System.Threading.Tasks.Task -> Async<unit>) = Async.AwaitTask - let v107 : Async<unit> = v106 v89 - let _run_target_args'_v94 = v107 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v108 : (System.Threading.Tasks.Task -> Async<unit>) = Async.AwaitTask - let v109 : Async<unit> = v108 v89 - let _run_target_args'_v94 = v109 - #endif -#else - let v110 : (System.Threading.Tasks.Task -> Async<unit>) = Async.AwaitTask - let v111 : Async<unit> = v110 v89 - let _run_target_args'_v94 = v111 - #endif - let v112 : Async<unit> = _run_target_args'_v94 - do! v112 - return true - (* indent - () - indent *) - with ex -> - let v191 : exn = ex - let v192 : unit = () - let v193 : (unit -> unit) = closure5(v1, v191) - let v194 : unit = (fun () -> v193 (); v192) () - return false - (* indent - () - indent *) - (* try_unit - let v327 : bool = try_unit *) - (* indent - () - indent *) - } - (* indent - () - indent *) - let v2535 : Async<bool> = _let'_v12 - let _run_target_args'_v2 = v2535 - #endif -#if FABLE_COMPILER_PYTHON - let v2536 : unit = () - let _let'_v2536 = - async { - let v2539 : Async<System.Threading.CancellationToken> = Async.CancellationToken - let! v2539 = v2539 - let v2540 : System.Threading.CancellationToken = v2539 - (* run_target_args' - let v2541 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v2542 : System_Net_Sockets_TcpClient = null |> unbox<System_Net_Sockets_TcpClient> - let _run_target_args'_v2541 = v2542 - #endif -#if FABLE_COMPILER_RUST && WASM - let v2545 : System_Net_Sockets_TcpClient = null |> unbox<System_Net_Sockets_TcpClient> - let _run_target_args'_v2541 = v2545 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v2548 : System_Net_Sockets_TcpClient = null |> unbox<System_Net_Sockets_TcpClient> - let _run_target_args'_v2541 = v2548 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v2551 : System_Net_Sockets_TcpClient = null |> unbox<System_Net_Sockets_TcpClient> - let _run_target_args'_v2541 = v2551 - #endif -#if FABLE_COMPILER_PYTHON - let v2554 : System_Net_Sockets_TcpClient = null |> unbox<System_Net_Sockets_TcpClient> - let _run_target_args'_v2541 = v2554 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v2557 : System_Net_Sockets_TcpClient = null |> unbox<System_Net_Sockets_TcpClient> - let _run_target_args'_v2541 = v2557 - #endif -#else - let v2560 : System_Net_Sockets_TcpClient = new System_Net_Sockets_TcpClient () - let _run_target_args'_v2541 = v2560 - #endif - let v2561 : System_Net_Sockets_TcpClient = _run_target_args'_v2541 - use v2561 = v2561 - let v2566 : System_Net_Sockets_TcpClient = v2561 - try - (* run_target_args' - let v2567 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v2568 : System.Threading.Tasks.ValueTask = null |> unbox<System.Threading.Tasks.ValueTask> - let _run_target_args'_v2567 = v2568 - #endif -#if FABLE_COMPILER_RUST && WASM - let v2571 : System.Threading.Tasks.ValueTask = null |> unbox<System.Threading.Tasks.ValueTask> - let _run_target_args'_v2567 = v2571 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v2574 : System.Threading.Tasks.ValueTask = null |> unbox<System.Threading.Tasks.ValueTask> - let _run_target_args'_v2567 = v2574 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v2577 : System.Threading.Tasks.ValueTask = null |> unbox<System.Threading.Tasks.ValueTask> - let _run_target_args'_v2567 = v2577 - #endif -#if FABLE_COMPILER_PYTHON - let v2580 : System.Threading.Tasks.ValueTask = null |> unbox<System.Threading.Tasks.ValueTask> - let _run_target_args'_v2567 = v2580 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v2583 : System.Threading.Tasks.ValueTask = null |> unbox<System.Threading.Tasks.ValueTask> - let _run_target_args'_v2567 = v2583 - #endif -#else - let v2586 : System.Threading.Tasks.ValueTask = v2566.ConnectAsync (v0, v1, v2540) - let _run_target_args'_v2567 = v2586 - #endif - let v2587 : System.Threading.Tasks.ValueTask = _run_target_args'_v2567 - (* run_target_args' - let v2592 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v2593 : System.Threading.Tasks.Task = null |> unbox<System.Threading.Tasks.Task> - let _run_target_args'_v2592 = v2593 - #endif -#if FABLE_COMPILER_RUST && WASM - let v2596 : System.Threading.Tasks.Task = null |> unbox<System.Threading.Tasks.Task> - let _run_target_args'_v2592 = v2596 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v2599 : System.Threading.Tasks.Task = null |> unbox<System.Threading.Tasks.Task> - let _run_target_args'_v2592 = v2599 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v2602 : System.Threading.Tasks.Task = null |> unbox<System.Threading.Tasks.Task> - let _run_target_args'_v2592 = v2602 - #endif -#if FABLE_COMPILER_PYTHON - let v2605 : System.Threading.Tasks.Task = null |> unbox<System.Threading.Tasks.Task> - let _run_target_args'_v2592 = v2605 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v2608 : System.Threading.Tasks.Task = null |> unbox<System.Threading.Tasks.Task> - let _run_target_args'_v2592 = v2608 - #endif -#else - let v2611 : (unit -> System.Threading.Tasks.Task) = v2587.AsTask - let v2612 : System.Threading.Tasks.Task = v2611 () - let _run_target_args'_v2592 = v2612 - #endif - let v2613 : System.Threading.Tasks.Task = _run_target_args'_v2592 - (* run_target_args' - let v2618 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v2619 : Async<unit> = null |> unbox<Async<unit>> - let _run_target_args'_v2618 = v2619 - #endif -#if FABLE_COMPILER_RUST && WASM - let v2622 : Async<unit> = null |> unbox<Async<unit>> - let _run_target_args'_v2618 = v2622 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v2625 : Async<unit> = null |> unbox<Async<unit>> - let _run_target_args'_v2618 = v2625 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v2628 : (System.Threading.Tasks.Task -> Async<unit>) = Async.AwaitTask - let v2629 : Async<unit> = v2628 v2613 - let _run_target_args'_v2618 = v2629 - #endif -#if FABLE_COMPILER_PYTHON - let v2630 : (System.Threading.Tasks.Task -> Async<unit>) = Async.AwaitTask - let v2631 : Async<unit> = v2630 v2613 - let _run_target_args'_v2618 = v2631 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v2632 : (System.Threading.Tasks.Task -> Async<unit>) = Async.AwaitTask - let v2633 : Async<unit> = v2632 v2613 - let _run_target_args'_v2618 = v2633 - #endif -#else - let v2634 : (System.Threading.Tasks.Task -> Async<unit>) = Async.AwaitTask - let v2635 : Async<unit> = v2634 v2613 - let _run_target_args'_v2618 = v2635 - #endif - let v2636 : Async<unit> = _run_target_args'_v2618 - do! v2636 - return true - (* indent - () - indent *) - with ex -> - let v2715 : exn = ex - let v2716 : unit = () - let v2717 : (unit -> unit) = closure5(v1, v2715) - let v2718 : unit = (fun () -> v2717 (); v2716) () - return false - (* indent - () - indent *) - (* try_unit - let v2851 : bool = try_unit *) - (* indent - () - indent *) - } - (* indent - () - indent *) - let v5059 : Async<bool> = _let'_v2536 - let _run_target_args'_v2 = v5059 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v5060 : unit = () - let _let'_v5060 = - async { - let v5063 : Async<System.Threading.CancellationToken> = Async.CancellationToken - let! v5063 = v5063 - let v5064 : System.Threading.CancellationToken = v5063 - (* run_target_args' - let v5065 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v5066 : System_Net_Sockets_TcpClient = null |> unbox<System_Net_Sockets_TcpClient> - let _run_target_args'_v5065 = v5066 - #endif -#if FABLE_COMPILER_RUST && WASM - let v5069 : System_Net_Sockets_TcpClient = null |> unbox<System_Net_Sockets_TcpClient> - let _run_target_args'_v5065 = v5069 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v5072 : System_Net_Sockets_TcpClient = null |> unbox<System_Net_Sockets_TcpClient> - let _run_target_args'_v5065 = v5072 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v5075 : System_Net_Sockets_TcpClient = null |> unbox<System_Net_Sockets_TcpClient> - let _run_target_args'_v5065 = v5075 - #endif -#if FABLE_COMPILER_PYTHON - let v5078 : System_Net_Sockets_TcpClient = null |> unbox<System_Net_Sockets_TcpClient> - let _run_target_args'_v5065 = v5078 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v5081 : System_Net_Sockets_TcpClient = null |> unbox<System_Net_Sockets_TcpClient> - let _run_target_args'_v5065 = v5081 - #endif -#else - let v5084 : System_Net_Sockets_TcpClient = new System_Net_Sockets_TcpClient () - let _run_target_args'_v5065 = v5084 - #endif - let v5085 : System_Net_Sockets_TcpClient = _run_target_args'_v5065 - use v5085 = v5085 - let v5090 : System_Net_Sockets_TcpClient = v5085 - try - (* run_target_args' - let v5091 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v5092 : System.Threading.Tasks.ValueTask = null |> unbox<System.Threading.Tasks.ValueTask> - let _run_target_args'_v5091 = v5092 - #endif -#if FABLE_COMPILER_RUST && WASM - let v5095 : System.Threading.Tasks.ValueTask = null |> unbox<System.Threading.Tasks.ValueTask> - let _run_target_args'_v5091 = v5095 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v5098 : System.Threading.Tasks.ValueTask = null |> unbox<System.Threading.Tasks.ValueTask> - let _run_target_args'_v5091 = v5098 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v5101 : System.Threading.Tasks.ValueTask = null |> unbox<System.Threading.Tasks.ValueTask> - let _run_target_args'_v5091 = v5101 - #endif -#if FABLE_COMPILER_PYTHON - let v5104 : System.Threading.Tasks.ValueTask = null |> unbox<System.Threading.Tasks.ValueTask> - let _run_target_args'_v5091 = v5104 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v5107 : System.Threading.Tasks.ValueTask = null |> unbox<System.Threading.Tasks.ValueTask> - let _run_target_args'_v5091 = v5107 - #endif -#else - let v5110 : System.Threading.Tasks.ValueTask = v5090.ConnectAsync (v0, v1, v5064) - let _run_target_args'_v5091 = v5110 - #endif - let v5111 : System.Threading.Tasks.ValueTask = _run_target_args'_v5091 - (* run_target_args' - let v5116 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v5117 : System.Threading.Tasks.Task = null |> unbox<System.Threading.Tasks.Task> - let _run_target_args'_v5116 = v5117 - #endif -#if FABLE_COMPILER_RUST && WASM - let v5120 : System.Threading.Tasks.Task = null |> unbox<System.Threading.Tasks.Task> - let _run_target_args'_v5116 = v5120 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v5123 : System.Threading.Tasks.Task = null |> unbox<System.Threading.Tasks.Task> - let _run_target_args'_v5116 = v5123 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v5126 : System.Threading.Tasks.Task = null |> unbox<System.Threading.Tasks.Task> - let _run_target_args'_v5116 = v5126 - #endif -#if FABLE_COMPILER_PYTHON - let v5129 : System.Threading.Tasks.Task = null |> unbox<System.Threading.Tasks.Task> - let _run_target_args'_v5116 = v5129 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v5132 : System.Threading.Tasks.Task = null |> unbox<System.Threading.Tasks.Task> - let _run_target_args'_v5116 = v5132 - #endif -#else - let v5135 : (unit -> System.Threading.Tasks.Task) = v5111.AsTask - let v5136 : System.Threading.Tasks.Task = v5135 () - let _run_target_args'_v5116 = v5136 - #endif - let v5137 : System.Threading.Tasks.Task = _run_target_args'_v5116 - (* run_target_args' - let v5142 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v5143 : Async<unit> = null |> unbox<Async<unit>> - let _run_target_args'_v5142 = v5143 - #endif -#if FABLE_COMPILER_RUST && WASM - let v5146 : Async<unit> = null |> unbox<Async<unit>> - let _run_target_args'_v5142 = v5146 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v5149 : Async<unit> = null |> unbox<Async<unit>> - let _run_target_args'_v5142 = v5149 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v5152 : (System.Threading.Tasks.Task -> Async<unit>) = Async.AwaitTask - let v5153 : Async<unit> = v5152 v5137 - let _run_target_args'_v5142 = v5153 - #endif -#if FABLE_COMPILER_PYTHON - let v5154 : (System.Threading.Tasks.Task -> Async<unit>) = Async.AwaitTask - let v5155 : Async<unit> = v5154 v5137 - let _run_target_args'_v5142 = v5155 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v5156 : (System.Threading.Tasks.Task -> Async<unit>) = Async.AwaitTask - let v5157 : Async<unit> = v5156 v5137 - let _run_target_args'_v5142 = v5157 - #endif -#else - let v5158 : (System.Threading.Tasks.Task -> Async<unit>) = Async.AwaitTask - let v5159 : Async<unit> = v5158 v5137 - let _run_target_args'_v5142 = v5159 - #endif - let v5160 : Async<unit> = _run_target_args'_v5142 - do! v5160 - return true - (* indent - () - indent *) - with ex -> - let v5239 : exn = ex - let v5240 : unit = () - let v5241 : (unit -> unit) = closure5(v1, v5239) - let v5242 : unit = (fun () -> v5241 (); v5240) () - return false - (* indent - () - indent *) - (* try_unit - let v5375 : bool = try_unit *) - (* indent - () - indent *) - } - (* indent - () - indent *) - let v7583 : Async<bool> = _let'_v5060 - let _run_target_args'_v2 = v7583 - #endif -#else - let v7584 : unit = () - let _let'_v7584 = - async { - let v7587 : Async<System.Threading.CancellationToken> = Async.CancellationToken - let! v7587 = v7587 - let v7588 : System.Threading.CancellationToken = v7587 - (* run_target_args' - let v7589 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v7590 : System_Net_Sockets_TcpClient = null |> unbox<System_Net_Sockets_TcpClient> - let _run_target_args'_v7589 = v7590 - #endif -#if FABLE_COMPILER_RUST && WASM - let v7593 : System_Net_Sockets_TcpClient = null |> unbox<System_Net_Sockets_TcpClient> - let _run_target_args'_v7589 = v7593 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v7596 : System_Net_Sockets_TcpClient = null |> unbox<System_Net_Sockets_TcpClient> - let _run_target_args'_v7589 = v7596 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v7599 : System_Net_Sockets_TcpClient = null |> unbox<System_Net_Sockets_TcpClient> - let _run_target_args'_v7589 = v7599 - #endif -#if FABLE_COMPILER_PYTHON - let v7602 : System_Net_Sockets_TcpClient = null |> unbox<System_Net_Sockets_TcpClient> - let _run_target_args'_v7589 = v7602 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v7605 : System_Net_Sockets_TcpClient = null |> unbox<System_Net_Sockets_TcpClient> - let _run_target_args'_v7589 = v7605 - #endif -#else - let v7608 : System_Net_Sockets_TcpClient = new System_Net_Sockets_TcpClient () - let _run_target_args'_v7589 = v7608 - #endif - let v7609 : System_Net_Sockets_TcpClient = _run_target_args'_v7589 - use v7609 = v7609 - let v7614 : System_Net_Sockets_TcpClient = v7609 - try - (* run_target_args' - let v7615 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v7616 : System.Threading.Tasks.ValueTask = null |> unbox<System.Threading.Tasks.ValueTask> - let _run_target_args'_v7615 = v7616 - #endif -#if FABLE_COMPILER_RUST && WASM - let v7619 : System.Threading.Tasks.ValueTask = null |> unbox<System.Threading.Tasks.ValueTask> - let _run_target_args'_v7615 = v7619 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v7622 : System.Threading.Tasks.ValueTask = null |> unbox<System.Threading.Tasks.ValueTask> - let _run_target_args'_v7615 = v7622 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v7625 : System.Threading.Tasks.ValueTask = null |> unbox<System.Threading.Tasks.ValueTask> - let _run_target_args'_v7615 = v7625 - #endif -#if FABLE_COMPILER_PYTHON - let v7628 : System.Threading.Tasks.ValueTask = null |> unbox<System.Threading.Tasks.ValueTask> - let _run_target_args'_v7615 = v7628 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v7631 : System.Threading.Tasks.ValueTask = null |> unbox<System.Threading.Tasks.ValueTask> - let _run_target_args'_v7615 = v7631 - #endif -#else - let v7634 : System.Threading.Tasks.ValueTask = v7614.ConnectAsync (v0, v1, v7588) - let _run_target_args'_v7615 = v7634 - #endif - let v7635 : System.Threading.Tasks.ValueTask = _run_target_args'_v7615 - (* run_target_args' - let v7640 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v7641 : System.Threading.Tasks.Task = null |> unbox<System.Threading.Tasks.Task> - let _run_target_args'_v7640 = v7641 - #endif -#if FABLE_COMPILER_RUST && WASM - let v7644 : System.Threading.Tasks.Task = null |> unbox<System.Threading.Tasks.Task> - let _run_target_args'_v7640 = v7644 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v7647 : System.Threading.Tasks.Task = null |> unbox<System.Threading.Tasks.Task> - let _run_target_args'_v7640 = v7647 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v7650 : System.Threading.Tasks.Task = null |> unbox<System.Threading.Tasks.Task> - let _run_target_args'_v7640 = v7650 - #endif -#if FABLE_COMPILER_PYTHON - let v7653 : System.Threading.Tasks.Task = null |> unbox<System.Threading.Tasks.Task> - let _run_target_args'_v7640 = v7653 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v7656 : System.Threading.Tasks.Task = null |> unbox<System.Threading.Tasks.Task> - let _run_target_args'_v7640 = v7656 - #endif -#else - let v7659 : (unit -> System.Threading.Tasks.Task) = v7635.AsTask - let v7660 : System.Threading.Tasks.Task = v7659 () - let _run_target_args'_v7640 = v7660 - #endif - let v7661 : System.Threading.Tasks.Task = _run_target_args'_v7640 - (* run_target_args' - let v7666 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v7667 : Async<unit> = null |> unbox<Async<unit>> - let _run_target_args'_v7666 = v7667 - #endif -#if FABLE_COMPILER_RUST && WASM - let v7670 : Async<unit> = null |> unbox<Async<unit>> - let _run_target_args'_v7666 = v7670 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v7673 : Async<unit> = null |> unbox<Async<unit>> - let _run_target_args'_v7666 = v7673 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v7676 : (System.Threading.Tasks.Task -> Async<unit>) = Async.AwaitTask - let v7677 : Async<unit> = v7676 v7661 - let _run_target_args'_v7666 = v7677 - #endif -#if FABLE_COMPILER_PYTHON - let v7678 : (System.Threading.Tasks.Task -> Async<unit>) = Async.AwaitTask - let v7679 : Async<unit> = v7678 v7661 - let _run_target_args'_v7666 = v7679 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v7680 : (System.Threading.Tasks.Task -> Async<unit>) = Async.AwaitTask - let v7681 : Async<unit> = v7680 v7661 - let _run_target_args'_v7666 = v7681 - #endif -#else - let v7682 : (System.Threading.Tasks.Task -> Async<unit>) = Async.AwaitTask - let v7683 : Async<unit> = v7682 v7661 - let _run_target_args'_v7666 = v7683 - #endif - let v7684 : Async<unit> = _run_target_args'_v7666 - do! v7684 - return true - (* indent - () - indent *) - with ex -> - let v7763 : exn = ex - let v7764 : unit = () - let v7765 : (unit -> unit) = closure5(v1, v7763) - let v7766 : unit = (fun () -> v7765 (); v7764) () - return false - (* indent - () - indent *) - (* try_unit - let v7899 : bool = try_unit *) - (* indent - () - indent *) - } - (* indent - () - indent *) - let v10107 : Async<bool> = _let'_v7584 - let _run_target_args'_v2 = v10107 - #endif - let v10108 : Async<bool> = _run_target_args'_v2 - v10108 -and method6 (v0 : string, v1 : int32) : Async<bool> = - method7(v0, v1) -and closure4 (v0 : string) (v1 : int32) : Async<bool> = - method6(v0, v1) -and closure3 () (v0 : string) : (int32 -> Async<bool>) = - closure4(v0) -and closure14 () (v0 : bool) : US7 = - US7_0(v0) -and method26 () : (bool -> US7) = - closure14() -and closure15 () (v0 : exn) : US7 = - US7_1(v0) -and method27 () : (exn -> US7) = - closure15() -and method25 (v0 : Async<Choice<bool, exn>>) : Async<US7> = - (* run_target_args' - let v1 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v2 : Async<US7> = null |> unbox<Async<US7>> - let _run_target_args'_v1 = v2 - #endif -#if FABLE_COMPILER_RUST && WASM - let v5 : Async<US7> = null |> unbox<Async<US7>> - let _run_target_args'_v1 = v5 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v8 : Async<US7> = null |> unbox<Async<US7>> - let _run_target_args'_v1 = v8 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v11 : unit = () - let _let'_v11 = - async { - let! v0 = v0 - let v14 : Choice<bool, exn> = v0 - (* run_target_args' - let v15 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v16 : US7 = null |> unbox<US7> - let _run_target_args'_v15 = v16 - #endif -#if FABLE_COMPILER_RUST && WASM - let v19 : US7 = null |> unbox<US7> - let _run_target_args'_v15 = v19 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v22 : US7 = null |> unbox<US7> - let _run_target_args'_v15 = v22 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v25 : US7 = null |> unbox<US7> - let _run_target_args'_v15 = v25 - #endif -#if FABLE_COMPILER_PYTHON - let v28 : US7 = null |> unbox<US7> - let _run_target_args'_v15 = v28 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v31 : (bool -> US7) = method26() - let v32 : (exn -> US7) = method27() - let v33 : US7 = match v14 with Choice1Of2 x -> v31 x | Choice2Of2 x -> v32 x - let _run_target_args'_v15 = v33 - #endif -#else - let v34 : (bool -> US7) = method26() - let v35 : (exn -> US7) = method27() - let v36 : US7 = match v14 with Choice1Of2 x -> v34 x | Choice2Of2 x -> v35 x - let _run_target_args'_v15 = v36 - #endif - let v37 : US7 = _run_target_args'_v15 - return v37 - (* indent - () - indent *) - } - (* indent - () - indent *) - let v238 : Async<US7> = _let'_v11 - let _run_target_args'_v1 = v238 - #endif -#if FABLE_COMPILER_PYTHON - let v239 : unit = () - let _let'_v239 = - async { - let! v0 = v0 - let v242 : Choice<bool, exn> = v0 - (* run_target_args' - let v243 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v244 : US7 = null |> unbox<US7> - let _run_target_args'_v243 = v244 - #endif -#if FABLE_COMPILER_RUST && WASM - let v247 : US7 = null |> unbox<US7> - let _run_target_args'_v243 = v247 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v250 : US7 = null |> unbox<US7> - let _run_target_args'_v243 = v250 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v253 : US7 = null |> unbox<US7> - let _run_target_args'_v243 = v253 - #endif -#if FABLE_COMPILER_PYTHON - let v256 : US7 = null |> unbox<US7> - let _run_target_args'_v243 = v256 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v259 : (bool -> US7) = method26() - let v260 : (exn -> US7) = method27() - let v261 : US7 = match v242 with Choice1Of2 x -> v259 x | Choice2Of2 x -> v260 x - let _run_target_args'_v243 = v261 - #endif -#else - let v262 : (bool -> US7) = method26() - let v263 : (exn -> US7) = method27() - let v264 : US7 = match v242 with Choice1Of2 x -> v262 x | Choice2Of2 x -> v263 x - let _run_target_args'_v243 = v264 - #endif - let v265 : US7 = _run_target_args'_v243 - return v265 - (* indent - () - indent *) - } - (* indent - () - indent *) - let v466 : Async<US7> = _let'_v239 - let _run_target_args'_v1 = v466 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v467 : unit = () - let _let'_v467 = - async { - let! v0 = v0 - let v470 : Choice<bool, exn> = v0 - (* run_target_args' - let v471 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v472 : US7 = null |> unbox<US7> - let _run_target_args'_v471 = v472 - #endif -#if FABLE_COMPILER_RUST && WASM - let v475 : US7 = null |> unbox<US7> - let _run_target_args'_v471 = v475 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v478 : US7 = null |> unbox<US7> - let _run_target_args'_v471 = v478 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v481 : US7 = null |> unbox<US7> - let _run_target_args'_v471 = v481 - #endif -#if FABLE_COMPILER_PYTHON - let v484 : US7 = null |> unbox<US7> - let _run_target_args'_v471 = v484 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v487 : (bool -> US7) = method26() - let v488 : (exn -> US7) = method27() - let v489 : US7 = match v470 with Choice1Of2 x -> v487 x | Choice2Of2 x -> v488 x - let _run_target_args'_v471 = v489 - #endif -#else - let v490 : (bool -> US7) = method26() - let v491 : (exn -> US7) = method27() - let v492 : US7 = match v470 with Choice1Of2 x -> v490 x | Choice2Of2 x -> v491 x - let _run_target_args'_v471 = v492 - #endif - let v493 : US7 = _run_target_args'_v471 - return v493 - (* indent - () - indent *) - } - (* indent - () - indent *) - let v694 : Async<US7> = _let'_v467 - let _run_target_args'_v1 = v694 - #endif -#else - let v695 : unit = () - let _let'_v695 = - async { - let! v0 = v0 - let v698 : Choice<bool, exn> = v0 - (* run_target_args' - let v699 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v700 : US7 = null |> unbox<US7> - let _run_target_args'_v699 = v700 - #endif -#if FABLE_COMPILER_RUST && WASM - let v703 : US7 = null |> unbox<US7> - let _run_target_args'_v699 = v703 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v706 : US7 = null |> unbox<US7> - let _run_target_args'_v699 = v706 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v709 : US7 = null |> unbox<US7> - let _run_target_args'_v699 = v709 - #endif -#if FABLE_COMPILER_PYTHON - let v712 : US7 = null |> unbox<US7> - let _run_target_args'_v699 = v712 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v715 : (bool -> US7) = method26() - let v716 : (exn -> US7) = method27() - let v717 : US7 = match v698 with Choice1Of2 x -> v715 x | Choice2Of2 x -> v716 x - let _run_target_args'_v699 = v717 - #endif -#else - let v718 : (bool -> US7) = method26() - let v719 : (exn -> US7) = method27() - let v720 : US7 = match v698 with Choice1Of2 x -> v718 x | Choice2Of2 x -> v719 x - let _run_target_args'_v699 = v720 - #endif - let v721 : US7 = _run_target_args'_v699 - return v721 - (* indent - () - indent *) - } - (* indent - () - indent *) - let v922 : Async<US7> = _let'_v695 - let _run_target_args'_v1 = v922 - #endif - let v923 : Async<US7> = _run_target_args'_v1 - v923 -and method28 (v0 : Async<US7>) : Async<US8> = - (* run_target_args' - let v1 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v2 : Async<US8> = null |> unbox<Async<US8>> - let _run_target_args'_v1 = v2 - #endif -#if FABLE_COMPILER_RUST && WASM - let v5 : Async<US8> = null |> unbox<Async<US8>> - let _run_target_args'_v1 = v5 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v8 : Async<US8> = null |> unbox<Async<US8>> - let _run_target_args'_v1 = v8 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v11 : unit = () - let _let'_v11 = - async { - let! v0 = v0 - let v14 : US7 = v0 - let v20 : US8 = - match v14 with - | US7_0(v15) -> (* C1of2 *) - US8_0(v15) - | US7_1(v17) -> (* C2of2 *) - US8_1(v17) - return v20 - (* indent - () - indent *) - } - (* indent - () - indent *) - let v70 : Async<US8> = _let'_v11 - let _run_target_args'_v1 = v70 - #endif -#if FABLE_COMPILER_PYTHON - let v71 : unit = () - let _let'_v71 = - async { - let! v0 = v0 - let v74 : US7 = v0 - let v80 : US8 = - match v74 with - | US7_0(v75) -> (* C1of2 *) - US8_0(v75) - | US7_1(v77) -> (* C2of2 *) - US8_1(v77) - return v80 - (* indent - () - indent *) - } - (* indent - () - indent *) - let v130 : Async<US8> = _let'_v71 - let _run_target_args'_v1 = v130 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v131 : unit = () - let _let'_v131 = - async { - let! v0 = v0 - let v134 : US7 = v0 - let v140 : US8 = - match v134 with - | US7_0(v135) -> (* C1of2 *) - US8_0(v135) - | US7_1(v137) -> (* C2of2 *) - US8_1(v137) - return v140 - (* indent - () - indent *) - } - (* indent - () - indent *) - let v190 : Async<US8> = _let'_v131 - let _run_target_args'_v1 = v190 - #endif -#else - let v191 : unit = () - let _let'_v191 = - async { - let! v0 = v0 - let v194 : US7 = v0 - let v200 : US8 = - match v194 with - | US7_0(v195) -> (* C1of2 *) - US8_0(v195) - | US7_1(v197) -> (* C2of2 *) - US8_1(v197) - return v200 - (* indent - () - indent *) - } - (* indent - () - indent *) - let v250 : Async<US8> = _let'_v191 - let _run_target_args'_v1 = v250 - #endif - let v251 : Async<US8> = _run_target_args'_v1 - v251 -and method31 (v0 : int32) : string = - let v1 : string = method15() - let v2 : Mut3 = {l0 = v1} : Mut3 - let v3 : string = "{ " - let v4 : string = $"{v3}" - let v7 : unit = () - let v8 : (unit -> unit) = closure7(v2, v4) - let v9 : unit = (fun () -> v8 (); v7) () - let v12 : string = "timeout" - let v13 : string = $"{v12}" - let v16 : unit = () - let v17 : (unit -> unit) = closure7(v2, v13) - let v18 : unit = (fun () -> v17 (); v16) () - let v21 : string = " = " - let v22 : string = $"{v21}" - let v25 : unit = () - let v26 : (unit -> unit) = closure7(v2, v22) - let v27 : unit = (fun () -> v26 (); v25) () - let v30 : string = $"{v0}" - let v33 : unit = () - let v34 : (unit -> unit) = closure7(v2, v30) - let v35 : unit = (fun () -> v34 (); v33) () - let v38 : string = " }" - let v39 : string = $"{v38}" - let v42 : unit = () - let v43 : (unit -> unit) = closure7(v2, v39) - let v44 : unit = (fun () -> v43 (); v42) () - let v47 : string = v2.l0 - v47 -and method30 (v0 : Mut0, v1 : Mut1, v2 : Mut2, v3 : Mut3, v4 : Mut4, v5 : int64 option, v6 : string, v7 : string, v8 : int32) : string = - let v9 : string = method31(v8) - let v10 : int64 = v0.l0 - let v11 : string = "async.run_with_timeout_async" - let v12 : string = $"{v6} {v7} #{v10} %s{v11} / {v9}" - method19(v12) -and closure16 (v0 : int32) () : unit = - let v1 : US0 = US0_0 - let v2 : bool = method8(v1) - if v2 then - let v3 : unit = () - let v4 : (unit -> unit) = closure0() - let v5 : unit = (fun () -> v4 (); v3) () - let struct (v19 : Mut0, v20 : Mut1, v21 : Mut2, v22 : Mut3, v23 : Mut4, v24 : int64 option) = TraceState.trace_state.Value - let v37 : string = method9(v19, v20, v21, v22, v23, v24) - let v38 : string = method13() - let v39 : string = method30(v19, v20, v21, v22, v23, v24, v37, v38, v0) - method20(v39) -and method32 () : string = - - - - - - let v0 : string = "Critical" - let v1 : (unit -> string) = v0.ToLower - let v2 : string = v1 () - let v5 : char = v2.[int 0] - let v6 : string = method14(v5) - (* run_target_args' - let v7 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v8 : string = "inline_colorization::color_bright_red" - let v9 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr () v8 - (* run_target_args' - let v10 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v11 : string = "&*$0" - let v12 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v6 v11 - let _run_target_args'_v10 = v12 - #endif -#if FABLE_COMPILER_RUST && WASM - let v13 : string = "&*$0" - let v14 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v6 v13 - let _run_target_args'_v10 = v14 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v15 : string = "&*$0" - let v16 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v6 v15 - let _run_target_args'_v10 = v16 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v17 : Ref<Str> = v6 |> unbox<Ref<Str>> - let _run_target_args'_v10 = v17 - #endif -#if FABLE_COMPILER_PYTHON - let v20 : Ref<Str> = v6 |> unbox<Ref<Str>> - let _run_target_args'_v10 = v20 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v23 : Ref<Str> = v6 |> unbox<Ref<Str>> - let _run_target_args'_v10 = v23 - #endif -#else - let v26 : Ref<Str> = v6 |> unbox<Ref<Str>> - let _run_target_args'_v10 = v26 - #endif - let v29 : Ref<Str> = _run_target_args'_v10 - let v34 : string = "inline_colorization::color_reset" - let v35 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr () v34 - let v36 : string = $"format!(\"{{}}{{}}{{}}\", $0, $1, $2)" - let v37 : std_string_String = Fable.Core.RustInterop.emitRustExpr struct (v9, v29, v35) v36 - let v38 : string = "fable_library_rust::String_::fromString($0)" - let v39 : string = Fable.Core.RustInterop.emitRustExpr v37 v38 - let _run_target_args'_v7 = v39 - #endif -#if FABLE_COMPILER_RUST && WASM - let v40 : string = "inline_colorization::color_bright_red" - let v41 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr () v40 - (* run_target_args' - let v42 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v43 : string = "&*$0" - let v44 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v6 v43 - let _run_target_args'_v42 = v44 - #endif -#if FABLE_COMPILER_RUST && WASM - let v45 : string = "&*$0" - let v46 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v6 v45 - let _run_target_args'_v42 = v46 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v47 : string = "&*$0" - let v48 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v6 v47 - let _run_target_args'_v42 = v48 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v49 : Ref<Str> = v6 |> unbox<Ref<Str>> - let _run_target_args'_v42 = v49 - #endif -#if FABLE_COMPILER_PYTHON - let v52 : Ref<Str> = v6 |> unbox<Ref<Str>> - let _run_target_args'_v42 = v52 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v55 : Ref<Str> = v6 |> unbox<Ref<Str>> - let _run_target_args'_v42 = v55 - #endif -#else - let v58 : Ref<Str> = v6 |> unbox<Ref<Str>> - let _run_target_args'_v42 = v58 - #endif - let v61 : Ref<Str> = _run_target_args'_v42 - let v66 : string = "inline_colorization::color_reset" - let v67 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr () v66 - let v68 : string = $"format!(\"{{}}{{}}{{}}\", $0, $1, $2)" - let v69 : std_string_String = Fable.Core.RustInterop.emitRustExpr struct (v41, v61, v67) v68 - let v70 : string = "fable_library_rust::String_::fromString($0)" - let v71 : string = Fable.Core.RustInterop.emitRustExpr v69 v70 - let _run_target_args'_v7 = v71 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v72 : string = "inline_colorization::color_bright_red" - let v73 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr () v72 - (* run_target_args' - let v74 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v75 : string = "&*$0" - let v76 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v6 v75 - let _run_target_args'_v74 = v76 - #endif -#if FABLE_COMPILER_RUST && WASM - let v77 : string = "&*$0" - let v78 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v6 v77 - let _run_target_args'_v74 = v78 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v79 : string = "&*$0" - let v80 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr v6 v79 - let _run_target_args'_v74 = v80 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v81 : Ref<Str> = v6 |> unbox<Ref<Str>> - let _run_target_args'_v74 = v81 - #endif -#if FABLE_COMPILER_PYTHON - let v84 : Ref<Str> = v6 |> unbox<Ref<Str>> - let _run_target_args'_v74 = v84 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v87 : Ref<Str> = v6 |> unbox<Ref<Str>> - let _run_target_args'_v74 = v87 - #endif -#else - let v90 : Ref<Str> = v6 |> unbox<Ref<Str>> - let _run_target_args'_v74 = v90 - #endif - let v93 : Ref<Str> = _run_target_args'_v74 - let v98 : string = "inline_colorization::color_reset" - let v99 : Ref<Str> = Fable.Core.RustInterop.emitRustExpr () v98 - let v100 : string = $"format!(\"{{}}{{}}{{}}\", $0, $1, $2)" - let v101 : std_string_String = Fable.Core.RustInterop.emitRustExpr struct (v73, v93, v99) v100 - let v102 : string = "fable_library_rust::String_::fromString($0)" - let v103 : string = Fable.Core.RustInterop.emitRustExpr v101 v102 - let _run_target_args'_v7 = v103 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v104 : string = "\u001b[91m" - let v105 : string = method16() - let v106 : string = v104 + v6 - let v107 : string = v106 + v105 - let _run_target_args'_v7 = v107 - #endif -#if FABLE_COMPILER_PYTHON - let v108 : string = "\u001b[91m" - let v109 : string = method16() - let v110 : string = v108 + v6 - let v111 : string = v110 + v109 - let _run_target_args'_v7 = v111 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v112 : string = "\u001b[91m" - let v113 : string = method16() - let v114 : string = v112 + v6 - let v115 : string = v114 + v113 - let _run_target_args'_v7 = v115 - #endif -#else - let v116 : string = "\u001b[91m" - let v117 : string = method16() - let v118 : string = v116 + v6 - let v119 : string = v118 + v117 - let _run_target_args'_v7 = v119 - #endif - let v120 : string = _run_target_args'_v7 - v120 -and method34 (v0 : int32, v1 : string) : string = - let v2 : string = method15() - let v3 : Mut3 = {l0 = v2} : Mut3 - let v4 : string = "{ " - let v5 : string = $"{v4}" - let v8 : unit = () - let v9 : (unit -> unit) = closure7(v3, v5) - let v10 : unit = (fun () -> v9 (); v8) () - let v13 : string = "timeout" - let v14 : string = $"{v13}" - let v17 : unit = () - let v18 : (unit -> unit) = closure7(v3, v14) - let v19 : unit = (fun () -> v18 (); v17) () - let v22 : string = " = " - let v23 : string = $"{v22}" - let v26 : unit = () - let v27 : (unit -> unit) = closure7(v3, v23) - let v28 : unit = (fun () -> v27 (); v26) () - let v31 : string = $"{v0}" - let v34 : unit = () - let v35 : (unit -> unit) = closure7(v3, v31) - let v36 : unit = (fun () -> v35 (); v34) () - let v39 : string = "; " - let v40 : string = $"{v39}" - let v43 : unit = () - let v44 : (unit -> unit) = closure7(v3, v40) - let v45 : unit = (fun () -> v44 (); v43) () - let v48 : string = "ex" - let v49 : string = $"{v48}" - let v52 : unit = () - let v53 : (unit -> unit) = closure7(v3, v49) - let v54 : unit = (fun () -> v53 (); v52) () - let v57 : string = $"{v22}" - let v60 : unit = () - let v61 : (unit -> unit) = closure7(v3, v57) - let v62 : unit = (fun () -> v61 (); v60) () - let v65 : string = $"{v1}" - let v68 : unit = () - let v69 : (unit -> unit) = closure7(v3, v65) - let v70 : unit = (fun () -> v69 (); v68) () - let v73 : string = " }" - let v74 : string = $"{v73}" - let v77 : unit = () - let v78 : (unit -> unit) = closure7(v3, v74) - let v79 : unit = (fun () -> v78 (); v77) () - let v82 : string = v3.l0 - v82 -and method33 (v0 : Mut0, v1 : Mut1, v2 : Mut2, v3 : Mut3, v4 : Mut4, v5 : int64 option, v6 : string, v7 : string, v8 : int32, v9 : string) : string = - let v10 : string = method34(v8, v9) - let v11 : int64 = v0.l0 - let v12 : string = "async.run_with_timeout_async**" - let v13 : string = $"{v6} {v7} #{v11} %s{v12} / {v10}" - method19(v13) -and closure17 (v0 : int32, v1 : exn) () : unit = - let v2 : US0 = US0_4 - let v3 : bool = method8(v2) - if v3 then - let v4 : unit = () - let v5 : (unit -> unit) = closure0() - let v6 : unit = (fun () -> v5 (); v4) () - let struct (v20 : Mut0, v21 : Mut1, v22 : Mut2, v23 : Mut3, v24 : Mut4, v25 : int64 option) = TraceState.trace_state.Value - let v38 : string = method9(v20, v21, v22, v23, v24, v25) - let v39 : string = method32() - (* run_target_args' - let v40 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v41 : string = $"%A{v1}" - let _run_target_args'_v40 = v41 - #endif -#if FABLE_COMPILER_RUST && WASM - let v44 : string = $"%A{v1}" - let _run_target_args'_v40 = v44 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v47 : string = $"%A{v1}" - let _run_target_args'_v40 = v47 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v50 : string = $"%A{v1}" - let _run_target_args'_v40 = v50 - #endif -#if FABLE_COMPILER_PYTHON - let v53 : string = $"%A{v1}" - let _run_target_args'_v40 = v53 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v56 : string = $"%A{v1}" - let _run_target_args'_v40 = v56 - #endif -#else - let v59 : string = $"{v1.GetType ()}: {v1.Message}" - let _run_target_args'_v40 = v59 - #endif - let v60 : string = _run_target_args'_v40 - let v65 : string = method33(v20, v21, v22, v23, v24, v25, v38, v39, v0, v60) - method20(v65) -and method29 (v0 : int32, v1 : Async<US8>) : Async<US6> = - (* run_target_args' - let v2 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v3 : Async<US6> = null |> unbox<Async<US6>> - let _run_target_args'_v2 = v3 - #endif -#if FABLE_COMPILER_RUST && WASM - let v6 : Async<US6> = null |> unbox<Async<US6>> - let _run_target_args'_v2 = v6 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v9 : Async<US6> = null |> unbox<Async<US6>> - let _run_target_args'_v2 = v9 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v12 : unit = () - let _let'_v12 = - async { - let! v1 = v1 - let v15 : US8 = v1 - let v139 : US6 = - match v15 with - | US8_1(v18) -> (* Error *) - let v19 : string = $"%A{v18}" - let v22 : string = "System.TimeoutException" - let v23 : bool = v19.Contains v22 - if v23 then - let v26 : unit = () - let v27 : (unit -> unit) = closure16(v0) - let v28 : unit = (fun () -> v27 (); v26) () - US6_1 - else - let v69 : unit = () - let v70 : (unit -> unit) = closure17(v0, v18) - let v71 : unit = (fun () -> v70 (); v69) () - US6_1 - | US8_0(v16) -> (* Ok *) - US6_0(v16) - return v139 - (* indent - () - indent *) - } - (* indent - () - indent *) - let v1015 : Async<US6> = _let'_v12 - let _run_target_args'_v2 = v1015 - #endif -#if FABLE_COMPILER_PYTHON - let v1016 : unit = () - let _let'_v1016 = - async { - let! v1 = v1 - let v1019 : US8 = v1 - let v1143 : US6 = - match v1019 with - | US8_1(v1022) -> (* Error *) - let v1023 : string = $"%A{v1022}" - let v1026 : string = "System.TimeoutException" - let v1027 : bool = v1023.Contains v1026 - if v1027 then - let v1030 : unit = () - let v1031 : (unit -> unit) = closure16(v0) - let v1032 : unit = (fun () -> v1031 (); v1030) () - US6_1 - else - let v1073 : unit = () - let v1074 : (unit -> unit) = closure17(v0, v1022) - let v1075 : unit = (fun () -> v1074 (); v1073) () - US6_1 - | US8_0(v1020) -> (* Ok *) - US6_0(v1020) - return v1143 - (* indent - () - indent *) - } - (* indent - () - indent *) - let v2019 : Async<US6> = _let'_v1016 - let _run_target_args'_v2 = v2019 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v2020 : unit = () - let _let'_v2020 = - async { - let! v1 = v1 - let v2023 : US8 = v1 - let v2147 : US6 = - match v2023 with - | US8_1(v2026) -> (* Error *) - let v2027 : string = $"%A{v2026}" - let v2030 : string = "System.TimeoutException" - let v2031 : bool = v2027.Contains v2030 - if v2031 then - let v2034 : unit = () - let v2035 : (unit -> unit) = closure16(v0) - let v2036 : unit = (fun () -> v2035 (); v2034) () - US6_1 - else - let v2077 : unit = () - let v2078 : (unit -> unit) = closure17(v0, v2026) - let v2079 : unit = (fun () -> v2078 (); v2077) () - US6_1 - | US8_0(v2024) -> (* Ok *) - US6_0(v2024) - return v2147 - (* indent - () - indent *) - } - (* indent - () - indent *) - let v3023 : Async<US6> = _let'_v2020 - let _run_target_args'_v2 = v3023 - #endif -#else - let v3024 : unit = () - let _let'_v3024 = - async { - let! v1 = v1 - let v3027 : US8 = v1 - let v3151 : US6 = - match v3027 with - | US8_1(v3030) -> (* Error *) - let v3031 : string = $"%A{v3030}" - let v3034 : string = "System.TimeoutException" - let v3035 : bool = v3031.Contains v3034 - if v3035 then - let v3038 : unit = () - let v3039 : (unit -> unit) = closure16(v0) - let v3040 : unit = (fun () -> v3039 (); v3038) () - US6_1 - else - let v3081 : unit = () - let v3082 : (unit -> unit) = closure17(v0, v3030) - let v3083 : unit = (fun () -> v3082 (); v3081) () - US6_1 - | US8_0(v3028) -> (* Ok *) - US6_0(v3028) - return v3151 - (* indent - () - indent *) - } - (* indent - () - indent *) - let v4027 : Async<US6> = _let'_v3024 - let _run_target_args'_v2 = v4027 - #endif - let v4028 : Async<US6> = _run_target_args'_v2 - v4028 -and method24 (v0 : Async<bool>, v1 : int32) : Async<US6> = - (* run_target_args' - let v2 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v3 : Async<US6> = null |> unbox<Async<US6>> - let _run_target_args'_v2 = v3 - #endif -#if FABLE_COMPILER_RUST && WASM - let v6 : Async<US6> = null |> unbox<Async<US6>> - let _run_target_args'_v2 = v6 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v9 : Async<US6> = null |> unbox<Async<US6>> - let _run_target_args'_v2 = v9 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v12 : unit = () - let _let'_v12 = - async { - (* run_target_args' - let v15 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v16 : Async<Async<bool>> = null |> unbox<Async<Async<bool>>> - let _run_target_args'_v15 = v16 - #endif -#if FABLE_COMPILER_RUST && WASM - let v19 : Async<Async<bool>> = null |> unbox<Async<Async<bool>>> - let _run_target_args'_v15 = v19 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v22 : Async<Async<bool>> = null |> unbox<Async<Async<bool>>> - let _run_target_args'_v15 = v22 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v25 : Async<Async<bool>> = Async.StartChild (v0, v1) - let _run_target_args'_v15 = v25 - #endif -#if FABLE_COMPILER_PYTHON - let v26 : Async<Async<bool>> = Async.StartChild (v0, v1) - let _run_target_args'_v15 = v26 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v27 : Async<Async<bool>> = Async.StartChild (v0, v1) - let _run_target_args'_v15 = v27 - #endif -#else - let v28 : Async<Async<bool>> = Async.StartChild (v0, v1) - let _run_target_args'_v15 = v28 - #endif - let v29 : Async<Async<bool>> = _run_target_args'_v15 - let! v29 = v29 - let v34 : Async<bool> = v29 - (* run_target_args' - let v35 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v36 : Async<Choice<bool, exn>> = null |> unbox<Async<Choice<bool, exn>>> - let _run_target_args'_v35 = v36 - #endif -#if FABLE_COMPILER_RUST && WASM - let v39 : Async<Choice<bool, exn>> = null |> unbox<Async<Choice<bool, exn>>> - let _run_target_args'_v35 = v39 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v42 : Async<Choice<bool, exn>> = null |> unbox<Async<Choice<bool, exn>>> - let _run_target_args'_v35 = v42 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v45 : (Async<bool> -> Async<Choice<bool, exn>>) = Async.Catch - let v46 : Async<Choice<bool, exn>> = v45 v34 - let _run_target_args'_v35 = v46 - #endif -#if FABLE_COMPILER_PYTHON - let v47 : (Async<bool> -> Async<Choice<bool, exn>>) = Async.Catch - let v48 : Async<Choice<bool, exn>> = v47 v34 - let _run_target_args'_v35 = v48 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v49 : (Async<bool> -> Async<Choice<bool, exn>>) = Async.Catch - let v50 : Async<Choice<bool, exn>> = v49 v34 - let _run_target_args'_v35 = v50 - #endif -#else - let v51 : (Async<bool> -> Async<Choice<bool, exn>>) = Async.Catch - let v52 : Async<Choice<bool, exn>> = v51 v34 - let _run_target_args'_v35 = v52 - #endif - let v53 : Async<Choice<bool, exn>> = _run_target_args'_v35 - let v58 : Async<US7> = method25(v53) - let v59 : Async<US8> = method28(v58) - let v60 : Async<US6> = method29(v1, v59) - return! v60 - (* indent - () - indent *) - } - (* indent - () - indent *) - let v383 : Async<US6> = _let'_v12 - let _run_target_args'_v2 = v383 - #endif -#if FABLE_COMPILER_PYTHON - let v384 : unit = () - let _let'_v384 = - async { - (* run_target_args' - let v387 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v388 : Async<Async<bool>> = null |> unbox<Async<Async<bool>>> - let _run_target_args'_v387 = v388 - #endif -#if FABLE_COMPILER_RUST && WASM - let v391 : Async<Async<bool>> = null |> unbox<Async<Async<bool>>> - let _run_target_args'_v387 = v391 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v394 : Async<Async<bool>> = null |> unbox<Async<Async<bool>>> - let _run_target_args'_v387 = v394 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v397 : Async<Async<bool>> = Async.StartChild (v0, v1) - let _run_target_args'_v387 = v397 - #endif -#if FABLE_COMPILER_PYTHON - let v398 : Async<Async<bool>> = Async.StartChild (v0, v1) - let _run_target_args'_v387 = v398 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v399 : Async<Async<bool>> = Async.StartChild (v0, v1) - let _run_target_args'_v387 = v399 - #endif -#else - let v400 : Async<Async<bool>> = Async.StartChild (v0, v1) - let _run_target_args'_v387 = v400 - #endif - let v401 : Async<Async<bool>> = _run_target_args'_v387 - let! v401 = v401 - let v406 : Async<bool> = v401 - (* run_target_args' - let v407 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v408 : Async<Choice<bool, exn>> = null |> unbox<Async<Choice<bool, exn>>> - let _run_target_args'_v407 = v408 - #endif -#if FABLE_COMPILER_RUST && WASM - let v411 : Async<Choice<bool, exn>> = null |> unbox<Async<Choice<bool, exn>>> - let _run_target_args'_v407 = v411 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v414 : Async<Choice<bool, exn>> = null |> unbox<Async<Choice<bool, exn>>> - let _run_target_args'_v407 = v414 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v417 : (Async<bool> -> Async<Choice<bool, exn>>) = Async.Catch - let v418 : Async<Choice<bool, exn>> = v417 v406 - let _run_target_args'_v407 = v418 - #endif -#if FABLE_COMPILER_PYTHON - let v419 : (Async<bool> -> Async<Choice<bool, exn>>) = Async.Catch - let v420 : Async<Choice<bool, exn>> = v419 v406 - let _run_target_args'_v407 = v420 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v421 : (Async<bool> -> Async<Choice<bool, exn>>) = Async.Catch - let v422 : Async<Choice<bool, exn>> = v421 v406 - let _run_target_args'_v407 = v422 - #endif -#else - let v423 : (Async<bool> -> Async<Choice<bool, exn>>) = Async.Catch - let v424 : Async<Choice<bool, exn>> = v423 v406 - let _run_target_args'_v407 = v424 - #endif - let v425 : Async<Choice<bool, exn>> = _run_target_args'_v407 - let v430 : Async<US7> = method25(v425) - let v431 : Async<US8> = method28(v430) - let v432 : Async<US6> = method29(v1, v431) - return! v432 - (* indent - () - indent *) - } - (* indent - () - indent *) - let v755 : Async<US6> = _let'_v384 - let _run_target_args'_v2 = v755 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v756 : unit = () - let _let'_v756 = - async { - (* run_target_args' - let v759 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v760 : Async<Async<bool>> = null |> unbox<Async<Async<bool>>> - let _run_target_args'_v759 = v760 - #endif -#if FABLE_COMPILER_RUST && WASM - let v763 : Async<Async<bool>> = null |> unbox<Async<Async<bool>>> - let _run_target_args'_v759 = v763 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v766 : Async<Async<bool>> = null |> unbox<Async<Async<bool>>> - let _run_target_args'_v759 = v766 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v769 : Async<Async<bool>> = Async.StartChild (v0, v1) - let _run_target_args'_v759 = v769 - #endif -#if FABLE_COMPILER_PYTHON - let v770 : Async<Async<bool>> = Async.StartChild (v0, v1) - let _run_target_args'_v759 = v770 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v771 : Async<Async<bool>> = Async.StartChild (v0, v1) - let _run_target_args'_v759 = v771 - #endif -#else - let v772 : Async<Async<bool>> = Async.StartChild (v0, v1) - let _run_target_args'_v759 = v772 - #endif - let v773 : Async<Async<bool>> = _run_target_args'_v759 - let! v773 = v773 - let v778 : Async<bool> = v773 - (* run_target_args' - let v779 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v780 : Async<Choice<bool, exn>> = null |> unbox<Async<Choice<bool, exn>>> - let _run_target_args'_v779 = v780 - #endif -#if FABLE_COMPILER_RUST && WASM - let v783 : Async<Choice<bool, exn>> = null |> unbox<Async<Choice<bool, exn>>> - let _run_target_args'_v779 = v783 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v786 : Async<Choice<bool, exn>> = null |> unbox<Async<Choice<bool, exn>>> - let _run_target_args'_v779 = v786 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v789 : (Async<bool> -> Async<Choice<bool, exn>>) = Async.Catch - let v790 : Async<Choice<bool, exn>> = v789 v778 - let _run_target_args'_v779 = v790 - #endif -#if FABLE_COMPILER_PYTHON - let v791 : (Async<bool> -> Async<Choice<bool, exn>>) = Async.Catch - let v792 : Async<Choice<bool, exn>> = v791 v778 - let _run_target_args'_v779 = v792 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v793 : (Async<bool> -> Async<Choice<bool, exn>>) = Async.Catch - let v794 : Async<Choice<bool, exn>> = v793 v778 - let _run_target_args'_v779 = v794 - #endif -#else - let v795 : (Async<bool> -> Async<Choice<bool, exn>>) = Async.Catch - let v796 : Async<Choice<bool, exn>> = v795 v778 - let _run_target_args'_v779 = v796 - #endif - let v797 : Async<Choice<bool, exn>> = _run_target_args'_v779 - let v802 : Async<US7> = method25(v797) - let v803 : Async<US8> = method28(v802) - let v804 : Async<US6> = method29(v1, v803) - return! v804 - (* indent - () - indent *) - } - (* indent - () - indent *) - let v1127 : Async<US6> = _let'_v756 - let _run_target_args'_v2 = v1127 - #endif -#else - let v1128 : unit = () - let _let'_v1128 = - async { - (* run_target_args' - let v1131 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v1132 : Async<Async<bool>> = null |> unbox<Async<Async<bool>>> - let _run_target_args'_v1131 = v1132 - #endif -#if FABLE_COMPILER_RUST && WASM - let v1135 : Async<Async<bool>> = null |> unbox<Async<Async<bool>>> - let _run_target_args'_v1131 = v1135 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v1138 : Async<Async<bool>> = null |> unbox<Async<Async<bool>>> - let _run_target_args'_v1131 = v1138 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v1141 : Async<Async<bool>> = Async.StartChild (v0, v1) - let _run_target_args'_v1131 = v1141 - #endif -#if FABLE_COMPILER_PYTHON - let v1142 : Async<Async<bool>> = Async.StartChild (v0, v1) - let _run_target_args'_v1131 = v1142 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v1143 : Async<Async<bool>> = Async.StartChild (v0, v1) - let _run_target_args'_v1131 = v1143 - #endif -#else - let v1144 : Async<Async<bool>> = Async.StartChild (v0, v1) - let _run_target_args'_v1131 = v1144 - #endif - let v1145 : Async<Async<bool>> = _run_target_args'_v1131 - let! v1145 = v1145 - let v1150 : Async<bool> = v1145 - (* run_target_args' - let v1151 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v1152 : Async<Choice<bool, exn>> = null |> unbox<Async<Choice<bool, exn>>> - let _run_target_args'_v1151 = v1152 - #endif -#if FABLE_COMPILER_RUST && WASM - let v1155 : Async<Choice<bool, exn>> = null |> unbox<Async<Choice<bool, exn>>> - let _run_target_args'_v1151 = v1155 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v1158 : Async<Choice<bool, exn>> = null |> unbox<Async<Choice<bool, exn>>> - let _run_target_args'_v1151 = v1158 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v1161 : (Async<bool> -> Async<Choice<bool, exn>>) = Async.Catch - let v1162 : Async<Choice<bool, exn>> = v1161 v1150 - let _run_target_args'_v1151 = v1162 - #endif -#if FABLE_COMPILER_PYTHON - let v1163 : (Async<bool> -> Async<Choice<bool, exn>>) = Async.Catch - let v1164 : Async<Choice<bool, exn>> = v1163 v1150 - let _run_target_args'_v1151 = v1164 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v1165 : (Async<bool> -> Async<Choice<bool, exn>>) = Async.Catch - let v1166 : Async<Choice<bool, exn>> = v1165 v1150 - let _run_target_args'_v1151 = v1166 - #endif -#else - let v1167 : (Async<bool> -> Async<Choice<bool, exn>>) = Async.Catch - let v1168 : Async<Choice<bool, exn>> = v1167 v1150 - let _run_target_args'_v1151 = v1168 - #endif - let v1169 : Async<Choice<bool, exn>> = _run_target_args'_v1151 - let v1174 : Async<US7> = method25(v1169) - let v1175 : Async<US8> = method28(v1174) - let v1176 : Async<US6> = method29(v1, v1175) - return! v1176 - (* indent - () - indent *) - } - (* indent - () - indent *) - let v1499 : Async<US6> = _let'_v1128 - let _run_target_args'_v2 = v1499 - #endif - let v1500 : Async<US6> = _run_target_args'_v2 - v1500 -and method23 (v0 : int32, v1 : Async<bool>) : Async<US6> = - (* run_target_args' - let v2 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v3 : Async<US6> = method24(v1, v0) - let _run_target_args'_v2 = v3 - #endif -#if FABLE_COMPILER_RUST && WASM - let v4 : Async<US6> = method24(v1, v0) - let _run_target_args'_v2 = v4 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v5 : Async<US6> = method24(v1, v0) - let _run_target_args'_v2 = v5 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v6 : Async<US6> = method24(v1, v0) - let _run_target_args'_v2 = v6 - #endif -#if FABLE_COMPILER_PYTHON - let v7 : Async<US6> = method24(v1, v0) - let _run_target_args'_v2 = v7 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v8 : Async<US6> = method24(v1, v0) - let _run_target_args'_v2 = v8 - #endif -#else - let v9 : Async<US6> = method24(v1, v0) - let _run_target_args'_v2 = v9 - #endif - let v10 : Async<US6> = _run_target_args'_v2 - v10 -and method22 (v0 : int32, v1 : string, v2 : int32) : Async<bool> = - (* run_target_args' - let v3 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v4 : Async<bool> = null |> unbox<Async<bool>> - let _run_target_args'_v3 = v4 - #endif -#if FABLE_COMPILER_RUST && WASM - let v7 : Async<bool> = null |> unbox<Async<bool>> - let _run_target_args'_v3 = v7 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v10 : Async<bool> = null |> unbox<Async<bool>> - let _run_target_args'_v3 = v10 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v13 : unit = () - let _let'_v13 = - async { - let v16 : Async<bool> = method6(v1, v2) - let v17 : Async<US6> = method23(v0, v16) - let! v17 = v17 - let v18 : US6 = v17 - let v21 : bool = - match v18 with - | US6_1 -> (* None *) - false - | US6_0(v19) -> (* Some *) - v19 - return v21 - (* indent - () - indent *) - } - (* indent - () - indent *) - let v64 : Async<bool> = _let'_v13 - let _run_target_args'_v3 = v64 - #endif -#if FABLE_COMPILER_PYTHON - let v65 : unit = () - let _let'_v65 = - async { - let v68 : Async<bool> = method6(v1, v2) - let v69 : Async<US6> = method23(v0, v68) - let! v69 = v69 - let v70 : US6 = v69 - let v73 : bool = - match v70 with - | US6_1 -> (* None *) - false - | US6_0(v71) -> (* Some *) - v71 - return v73 - (* indent - () - indent *) - } - (* indent - () - indent *) - let v116 : Async<bool> = _let'_v65 - let _run_target_args'_v3 = v116 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v117 : unit = () - let _let'_v117 = - async { - let v120 : Async<bool> = method6(v1, v2) - let v121 : Async<US6> = method23(v0, v120) - let! v121 = v121 - let v122 : US6 = v121 - let v125 : bool = - match v122 with - | US6_1 -> (* None *) - false - | US6_0(v123) -> (* Some *) - v123 - return v125 - (* indent - () - indent *) - } - (* indent - () - indent *) - let v168 : Async<bool> = _let'_v117 - let _run_target_args'_v3 = v168 - #endif -#else - let v169 : unit = () - let _let'_v169 = - async { - let v172 : Async<bool> = method6(v1, v2) - let v173 : Async<US6> = method23(v0, v172) - let! v173 = v173 - let v174 : US6 = v173 - let v177 : bool = - match v174 with - | US6_1 -> (* None *) - false - | US6_0(v175) -> (* Some *) - v175 - return v177 - (* indent - () - indent *) - } - (* indent - () - indent *) - let v220 : Async<bool> = _let'_v169 - let _run_target_args'_v3 = v220 - #endif - let v221 : Async<bool> = _run_target_args'_v3 - v221 -and method21 (v0 : int32, v1 : string, v2 : int32) : Async<bool> = - method22(v0, v1, v2) -and closure13 (v0 : int32, v1 : string) (v2 : int32) : Async<bool> = - method21(v0, v1, v2) -and closure12 (v0 : int32) (v1 : string) : (int32 -> Async<bool>) = - closure13(v0, v1) -and closure11 () (v0 : int32) : (string -> (int32 -> Async<bool>)) = - closure12(v0) -and closure22 () (v0 : int32) : US9 = - US9_0(v0) -and method38 () : (int32 -> US9) = - closure22() -and method40 (v0 : int32, v1 : int64, v2 : int32 option, v3 : bool) : string = - let v4 : string = method15() - let v5 : Mut3 = {l0 = v4} : Mut3 - let v6 : string = "{ " - let v7 : string = $"{v6}" - let v10 : unit = () - let v11 : (unit -> unit) = closure7(v5, v7) - let v12 : unit = (fun () -> v11 (); v10) () - let v15 : string = "port" - let v16 : string = $"{v15}" - let v19 : unit = () - let v20 : (unit -> unit) = closure7(v5, v16) - let v21 : unit = (fun () -> v20 (); v19) () - let v24 : string = " = " - let v25 : string = $"{v24}" - let v28 : unit = () - let v29 : (unit -> unit) = closure7(v5, v25) - let v30 : unit = (fun () -> v29 (); v28) () - let v33 : string = $"{v0}" - let v36 : unit = () - let v37 : (unit -> unit) = closure7(v5, v33) - let v38 : unit = (fun () -> v37 (); v36) () - let v41 : string = "; " - let v42 : string = $"{v41}" - let v45 : unit = () - let v46 : (unit -> unit) = closure7(v5, v42) - let v47 : unit = (fun () -> v46 (); v45) () - let v50 : string = "retry" - let v51 : string = $"{v50}" - let v54 : unit = () - let v55 : (unit -> unit) = closure7(v5, v51) - let v56 : unit = (fun () -> v55 (); v54) () - let v59 : string = $"{v24}" - let v62 : unit = () - let v63 : (unit -> unit) = closure7(v5, v59) - let v64 : unit = (fun () -> v63 (); v62) () - let v67 : string = $"{v1}" - let v70 : unit = () - let v71 : (unit -> unit) = closure7(v5, v67) - let v72 : unit = (fun () -> v71 (); v70) () - let v75 : string = $"{v41}" - let v78 : unit = () - let v79 : (unit -> unit) = closure7(v5, v75) - let v80 : unit = (fun () -> v79 (); v78) () - let v83 : string = "timeout" - let v84 : string = $"{v83}" - let v87 : unit = () - let v88 : (unit -> unit) = closure7(v5, v84) - let v89 : unit = (fun () -> v88 (); v87) () - let v92 : string = $"{v24}" - let v95 : unit = () - let v96 : (unit -> unit) = closure7(v5, v92) - let v97 : unit = (fun () -> v96 (); v95) () - (* run_target_args' - let v100 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v101 : string = "format!(\"{:#?}\", $0)" - let v102 : std_string_String = Fable.Core.RustInterop.emitRustExpr v2 v101 - let v103 : string = "fable_library_rust::String_::fromString($0)" - let v104 : string = Fable.Core.RustInterop.emitRustExpr v102 v103 - let _run_target_args'_v100 = v104 - #endif -#if FABLE_COMPILER_RUST && WASM - let v105 : string = "format!(\"{:#?}\", $0)" - let v106 : std_string_String = Fable.Core.RustInterop.emitRustExpr v2 v105 - let v107 : string = "fable_library_rust::String_::fromString($0)" - let v108 : string = Fable.Core.RustInterop.emitRustExpr v106 v107 - let _run_target_args'_v100 = v108 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v109 : string = "format!(\"{:#?}\", $0)" - let v110 : std_string_String = Fable.Core.RustInterop.emitRustExpr v2 v109 - let v111 : string = "fable_library_rust::String_::fromString($0)" - let v112 : string = Fable.Core.RustInterop.emitRustExpr v110 v111 - let _run_target_args'_v100 = v112 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v113 : string = $"%A{v2}" - let _run_target_args'_v100 = v113 - #endif -#if FABLE_COMPILER_PYTHON - let v116 : string = $"%A{v2}" - let _run_target_args'_v100 = v116 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v119 : string = $"%A{v2}" - let _run_target_args'_v100 = v119 - #endif -#else - let v122 : string = $"%A{v2}" - let _run_target_args'_v100 = v122 - #endif - let v125 : string = _run_target_args'_v100 - let v130 : string = $"{v125}" - let v133 : unit = () - let v134 : (unit -> unit) = closure7(v5, v130) - let v135 : unit = (fun () -> v134 (); v133) () - let v138 : string = $"{v41}" - let v141 : unit = () - let v142 : (unit -> unit) = closure7(v5, v138) - let v143 : unit = (fun () -> v142 (); v141) () - let v146 : string = "status" - let v147 : string = $"{v146}" - let v150 : unit = () - let v151 : (unit -> unit) = closure7(v5, v147) - let v152 : unit = (fun () -> v151 (); v150) () - let v155 : string = $"{v24}" - let v158 : unit = () - let v159 : (unit -> unit) = closure7(v5, v155) - let v160 : unit = (fun () -> v159 (); v158) () - let v165 : string = - if v3 then - let v163 : string = "true" - v163 - else - let v164 : string = "false" - v164 - let v166 : string = $"{v165}" - let v169 : unit = () - let v170 : (unit -> unit) = closure7(v5, v166) - let v171 : unit = (fun () -> v170 (); v169) () - let v174 : string = " }" - let v175 : string = $"{v174}" - let v178 : unit = () - let v179 : (unit -> unit) = closure7(v5, v175) - let v180 : unit = (fun () -> v179 (); v178) () - let v183 : string = v5.l0 - v183 -and method39 (v0 : Mut0, v1 : Mut1, v2 : Mut2, v3 : Mut3, v4 : Mut4, v5 : int64 option, v6 : string, v7 : string, v8 : int32, v9 : int64, v10 : int32 option, v11 : bool) : string = - let v12 : string = method40(v8, v9, v10, v11) - let v13 : int64 = v0.l0 - let v14 : string = "networking.wait_for_port_access" - let v15 : string = $"{v6} {v7} #{v13} %s{v14} / {v12}" - method19(v15) -and closure23 (v0 : int32 option, v1 : bool, v2 : int32, v3 : int64) () : unit = - let v4 : US0 = US0_0 - let v5 : bool = method8(v4) - if v5 then - let v6 : unit = () - let v7 : (unit -> unit) = closure0() - let v8 : unit = (fun () -> v7 (); v6) () - let struct (v22 : Mut0, v23 : Mut1, v24 : Mut2, v25 : Mut3, v26 : Mut4, v27 : int64 option) = TraceState.trace_state.Value - let v40 : string = method9(v22, v23, v24, v25, v26, v27) - let v41 : string = method13() - let v42 : string = method39(v22, v23, v24, v25, v26, v27, v40, v41, v2, v3, v0, v1) - method20(v42) -and method37 (v0 : int32 option, v1 : bool, v2 : string, v3 : int32, v4 : int64) : Async<int64> = - (* run_target_args' - let v5 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v6 : Async<int64> = null |> unbox<Async<int64>> - let _run_target_args'_v5 = v6 - #endif -#if FABLE_COMPILER_RUST && WASM - let v9 : Async<int64> = null |> unbox<Async<int64>> - let _run_target_args'_v5 = v9 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v12 : Async<int64> = null |> unbox<Async<int64>> - let _run_target_args'_v5 = v12 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v15 : unit = () - let _let'_v15 = - async { - let v18 : (int32 -> US9) = method38() - let v19 : US9 option = v0 |> Option.map v18 - let v30 : US9 = US9_1 - let v31 : US9 = v19 |> Option.defaultValue v30 - let v39 : Async<bool> = - match v31 with - | US9_1 -> (* None *) - method6(v2, v3) - | US9_0(v36) -> (* Some *) - method21(v36, v2, v3) - let! v39 = v39 - let v40 : bool = v39 - let v41 : bool = v40 = v1 - if v41 then - return v4 - (* fix_condition then - () - else - fix_condition then *) else - let v42 : int64 = v4 % 100L - let v43 : bool = v42 = 0L - if v43 then - let v44 : unit = () - let v45 : (unit -> unit) = closure23(v0, v1, v3, v4) - let v46 : unit = (fun () -> v45 (); v44) () - () - (* run_target_args' - let v86 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v87 : (int32 -> Async<unit>) = Async.Sleep - let v88 : Async<unit> = v87 10 - let _run_target_args'_v86 = v88 - #endif -#if FABLE_COMPILER_RUST && WASM - let v89 : (int32 -> Async<unit>) = Async.Sleep - let v90 : Async<unit> = v89 10 - let _run_target_args'_v86 = v90 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v91 : (int32 -> Async<unit>) = Async.Sleep - let v92 : Async<unit> = v91 10 - let _run_target_args'_v86 = v92 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v93 : (int32 -> Async<unit>) = Async.Sleep - let v94 : Async<unit> = v93 10 - let _run_target_args'_v86 = v94 - #endif -#if FABLE_COMPILER_PYTHON - let v95 : (int32 -> Async<unit>) = Async.Sleep - let v96 : Async<unit> = v95 10 - let _run_target_args'_v86 = v96 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v97 : (int32 -> Async<unit>) = Async.Sleep - let v98 : Async<unit> = v97 10 - let _run_target_args'_v86 = v98 - #endif -#else - let v99 : (int32 -> Async<unit>) = Async.Sleep - let v100 : Async<unit> = v99 10 - let _run_target_args'_v86 = v100 - #endif - let v101 : Async<unit> = _run_target_args'_v86 - do! v101 - let v104 : int64 = v4 + 1L - let v105 : Async<int64> = method36(v0, v1, v2, v3, v104) - return! v105 - (* fix_condition else - () - fix_condition else *) - (* indent - () - indent *) - } - (* indent - () - indent *) - let v722 : Async<int64> = _let'_v15 - let _run_target_args'_v5 = v722 - #endif -#if FABLE_COMPILER_PYTHON - let v723 : unit = () - let _let'_v723 = - async { - let v726 : (int32 -> US9) = method38() - let v727 : US9 option = v0 |> Option.map v726 - let v738 : US9 = US9_1 - let v739 : US9 = v727 |> Option.defaultValue v738 - let v747 : Async<bool> = - match v739 with - | US9_1 -> (* None *) - method6(v2, v3) - | US9_0(v744) -> (* Some *) - method21(v744, v2, v3) - let! v747 = v747 - let v748 : bool = v747 - let v749 : bool = v748 = v1 - if v749 then - return v4 - (* fix_condition then - () - else - fix_condition then *) else - let v750 : int64 = v4 % 100L - let v751 : bool = v750 = 0L - if v751 then - let v752 : unit = () - let v753 : (unit -> unit) = closure23(v0, v1, v3, v4) - let v754 : unit = (fun () -> v753 (); v752) () - () - (* run_target_args' - let v794 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v795 : (int32 -> Async<unit>) = Async.Sleep - let v796 : Async<unit> = v795 10 - let _run_target_args'_v794 = v796 - #endif -#if FABLE_COMPILER_RUST && WASM - let v797 : (int32 -> Async<unit>) = Async.Sleep - let v798 : Async<unit> = v797 10 - let _run_target_args'_v794 = v798 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v799 : (int32 -> Async<unit>) = Async.Sleep - let v800 : Async<unit> = v799 10 - let _run_target_args'_v794 = v800 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v801 : (int32 -> Async<unit>) = Async.Sleep - let v802 : Async<unit> = v801 10 - let _run_target_args'_v794 = v802 - #endif -#if FABLE_COMPILER_PYTHON - let v803 : (int32 -> Async<unit>) = Async.Sleep - let v804 : Async<unit> = v803 10 - let _run_target_args'_v794 = v804 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v805 : (int32 -> Async<unit>) = Async.Sleep - let v806 : Async<unit> = v805 10 - let _run_target_args'_v794 = v806 - #endif -#else - let v807 : (int32 -> Async<unit>) = Async.Sleep - let v808 : Async<unit> = v807 10 - let _run_target_args'_v794 = v808 - #endif - let v809 : Async<unit> = _run_target_args'_v794 - do! v809 - let v812 : int64 = v4 + 1L - let v813 : Async<int64> = method36(v0, v1, v2, v3, v812) - return! v813 - (* fix_condition else - () - fix_condition else *) - (* indent - () - indent *) - } - (* indent - () - indent *) - let v1430 : Async<int64> = _let'_v723 - let _run_target_args'_v5 = v1430 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v1431 : unit = () - let _let'_v1431 = - async { - let v1434 : (int32 -> US9) = method38() - let v1435 : US9 option = v0 |> Option.map v1434 - let v1446 : US9 = US9_1 - let v1447 : US9 = v1435 |> Option.defaultValue v1446 - let v1455 : Async<bool> = - match v1447 with - | US9_1 -> (* None *) - method6(v2, v3) - | US9_0(v1452) -> (* Some *) - method21(v1452, v2, v3) - let! v1455 = v1455 - let v1456 : bool = v1455 - let v1457 : bool = v1456 = v1 - if v1457 then - return v4 - (* fix_condition then - () - else - fix_condition then *) else - let v1458 : int64 = v4 % 100L - let v1459 : bool = v1458 = 0L - if v1459 then - let v1460 : unit = () - let v1461 : (unit -> unit) = closure23(v0, v1, v3, v4) - let v1462 : unit = (fun () -> v1461 (); v1460) () - () - (* run_target_args' - let v1502 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v1503 : (int32 -> Async<unit>) = Async.Sleep - let v1504 : Async<unit> = v1503 10 - let _run_target_args'_v1502 = v1504 - #endif -#if FABLE_COMPILER_RUST && WASM - let v1505 : (int32 -> Async<unit>) = Async.Sleep - let v1506 : Async<unit> = v1505 10 - let _run_target_args'_v1502 = v1506 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v1507 : (int32 -> Async<unit>) = Async.Sleep - let v1508 : Async<unit> = v1507 10 - let _run_target_args'_v1502 = v1508 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v1509 : (int32 -> Async<unit>) = Async.Sleep - let v1510 : Async<unit> = v1509 10 - let _run_target_args'_v1502 = v1510 - #endif -#if FABLE_COMPILER_PYTHON - let v1511 : (int32 -> Async<unit>) = Async.Sleep - let v1512 : Async<unit> = v1511 10 - let _run_target_args'_v1502 = v1512 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v1513 : (int32 -> Async<unit>) = Async.Sleep - let v1514 : Async<unit> = v1513 10 - let _run_target_args'_v1502 = v1514 - #endif -#else - let v1515 : (int32 -> Async<unit>) = Async.Sleep - let v1516 : Async<unit> = v1515 10 - let _run_target_args'_v1502 = v1516 - #endif - let v1517 : Async<unit> = _run_target_args'_v1502 - do! v1517 - let v1520 : int64 = v4 + 1L - let v1521 : Async<int64> = method36(v0, v1, v2, v3, v1520) - return! v1521 - (* fix_condition else - () - fix_condition else *) - (* indent - () - indent *) - } - (* indent - () - indent *) - let v2138 : Async<int64> = _let'_v1431 - let _run_target_args'_v5 = v2138 - #endif -#else - let v2139 : unit = () - let _let'_v2139 = - async { - let v2142 : (int32 -> US9) = method38() - let v2143 : US9 option = v0 |> Option.map v2142 - let v2154 : US9 = US9_1 - let v2155 : US9 = v2143 |> Option.defaultValue v2154 - let v2163 : Async<bool> = - match v2155 with - | US9_1 -> (* None *) - method6(v2, v3) - | US9_0(v2160) -> (* Some *) - method21(v2160, v2, v3) - let! v2163 = v2163 - let v2164 : bool = v2163 - let v2165 : bool = v2164 = v1 - if v2165 then - return v4 - (* fix_condition then - () - else - fix_condition then *) else - let v2166 : int64 = v4 % 100L - let v2167 : bool = v2166 = 0L - if v2167 then - let v2168 : unit = () - let v2169 : (unit -> unit) = closure23(v0, v1, v3, v4) - let v2170 : unit = (fun () -> v2169 (); v2168) () - () - (* run_target_args' - let v2210 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v2211 : (int32 -> Async<unit>) = Async.Sleep - let v2212 : Async<unit> = v2211 10 - let _run_target_args'_v2210 = v2212 - #endif -#if FABLE_COMPILER_RUST && WASM - let v2213 : (int32 -> Async<unit>) = Async.Sleep - let v2214 : Async<unit> = v2213 10 - let _run_target_args'_v2210 = v2214 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v2215 : (int32 -> Async<unit>) = Async.Sleep - let v2216 : Async<unit> = v2215 10 - let _run_target_args'_v2210 = v2216 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v2217 : (int32 -> Async<unit>) = Async.Sleep - let v2218 : Async<unit> = v2217 10 - let _run_target_args'_v2210 = v2218 - #endif -#if FABLE_COMPILER_PYTHON - let v2219 : (int32 -> Async<unit>) = Async.Sleep - let v2220 : Async<unit> = v2219 10 - let _run_target_args'_v2210 = v2220 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v2221 : (int32 -> Async<unit>) = Async.Sleep - let v2222 : Async<unit> = v2221 10 - let _run_target_args'_v2210 = v2222 - #endif -#else - let v2223 : (int32 -> Async<unit>) = Async.Sleep - let v2224 : Async<unit> = v2223 10 - let _run_target_args'_v2210 = v2224 - #endif - let v2225 : Async<unit> = _run_target_args'_v2210 - do! v2225 - let v2228 : int64 = v4 + 1L - let v2229 : Async<int64> = method36(v0, v1, v2, v3, v2228) - return! v2229 - (* fix_condition else - () - fix_condition else *) - (* indent - () - indent *) - } - (* indent - () - indent *) - let v2846 : Async<int64> = _let'_v2139 - let _run_target_args'_v5 = v2846 - #endif - let v2847 : Async<int64> = _run_target_args'_v5 - v2847 -and method36 (v0 : int32 option, v1 : bool, v2 : string, v3 : int32, v4 : int64) : Async<int64> = - method37(v0, v1, v2, v3, v4) -and method35 (v0 : int32 option, v1 : bool, v2 : string, v3 : int32) : Async<int64> = - let v4 : int64 = 1L - method36(v0, v1, v2, v3, v4) -and closure21 (v0 : int32 option, v1 : bool, v2 : string) (v3 : int32) : Async<int64> = - method35(v0, v1, v2, v3) -and closure20 (v0 : int32 option, v1 : bool) (v2 : string) : (int32 -> Async<int64>) = - closure21(v0, v1, v2) -and closure19 (v0 : int32 option) (v1 : bool) : (string -> (int32 -> Async<int64>)) = - closure20(v0, v1) -and closure18 () (v0 : int32 option) : (bool -> (string -> (int32 -> Async<int64>))) = - closure19(v0) -and method43 (v0 : int32 option, v1 : string, v2 : int32) : Async<int32> = - (* run_target_args' - let v3 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v4 : Async<int32> = null |> unbox<Async<int32>> - let _run_target_args'_v3 = v4 - #endif -#if FABLE_COMPILER_RUST && WASM - let v7 : Async<int32> = null |> unbox<Async<int32>> - let _run_target_args'_v3 = v7 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v10 : Async<int32> = null |> unbox<Async<int32>> - let _run_target_args'_v3 = v10 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v13 : unit = () - let _let'_v13 = - async { - let v16 : (int32 -> US9) = method38() - let v17 : US9 option = v0 |> Option.map v16 - let v28 : US9 = US9_1 - let v29 : US9 = v17 |> Option.defaultValue v28 - let v37 : Async<bool> = - match v29 with - | US9_1 -> (* None *) - method6(v1, v2) - | US9_0(v34) -> (* Some *) - method21(v34, v1, v2) - let! v37 = v37 - let v38 : bool = v37 - let v39 : bool = v38 = false - if v39 then - return v2 - (* fix_condition then - () - else - fix_condition then *) else - let v40 : int32 = v2 + 1 - let v41 : Async<int32> = method42(v0, v1, v40) - return! v41 - (* fix_condition else - () - fix_condition else *) - (* indent - () - indent *) - } - (* indent - () - indent *) - let v224 : Async<int32> = _let'_v13 - let _run_target_args'_v3 = v224 - #endif -#if FABLE_COMPILER_PYTHON - let v225 : unit = () - let _let'_v225 = - async { - let v228 : (int32 -> US9) = method38() - let v229 : US9 option = v0 |> Option.map v228 - let v240 : US9 = US9_1 - let v241 : US9 = v229 |> Option.defaultValue v240 - let v249 : Async<bool> = - match v241 with - | US9_1 -> (* None *) - method6(v1, v2) - | US9_0(v246) -> (* Some *) - method21(v246, v1, v2) - let! v249 = v249 - let v250 : bool = v249 - let v251 : bool = v250 = false - if v251 then - return v2 - (* fix_condition then - () - else - fix_condition then *) else - let v252 : int32 = v2 + 1 - let v253 : Async<int32> = method42(v0, v1, v252) - return! v253 - (* fix_condition else - () - fix_condition else *) - (* indent - () - indent *) - } - (* indent - () - indent *) - let v436 : Async<int32> = _let'_v225 - let _run_target_args'_v3 = v436 - #endif -#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON - let v437 : unit = () - let _let'_v437 = - async { - let v440 : (int32 -> US9) = method38() - let v441 : US9 option = v0 |> Option.map v440 - let v452 : US9 = US9_1 - let v453 : US9 = v441 |> Option.defaultValue v452 - let v461 : Async<bool> = - match v453 with - | US9_1 -> (* None *) - method6(v1, v2) - | US9_0(v458) -> (* Some *) - method21(v458, v1, v2) - let! v461 = v461 - let v462 : bool = v461 - let v463 : bool = v462 = false - if v463 then - return v2 - (* fix_condition then - () - else - fix_condition then *) else - let v464 : int32 = v2 + 1 - let v465 : Async<int32> = method42(v0, v1, v464) - return! v465 - (* fix_condition else - () - fix_condition else *) - (* indent - () - indent *) - } - (* indent - () - indent *) - let v648 : Async<int32> = _let'_v437 - let _run_target_args'_v3 = v648 - #endif -#else - let v649 : unit = () - let _let'_v649 = - async { - let v652 : (int32 -> US9) = method38() - let v653 : US9 option = v0 |> Option.map v652 - let v664 : US9 = US9_1 - let v665 : US9 = v653 |> Option.defaultValue v664 - let v673 : Async<bool> = - match v665 with - | US9_1 -> (* None *) - method6(v1, v2) - | US9_0(v670) -> (* Some *) - method21(v670, v1, v2) - let! v673 = v673 - let v674 : bool = v673 - let v675 : bool = v674 = false - if v675 then - return v2 - (* fix_condition then - () - else - fix_condition then *) else - let v676 : int32 = v2 + 1 - let v677 : Async<int32> = method42(v0, v1, v676) - return! v677 - (* fix_condition else - () - fix_condition else *) - (* indent - () - indent *) - } - (* indent - () - indent *) - let v860 : Async<int32> = _let'_v649 - let _run_target_args'_v3 = v860 - #endif - let v861 : Async<int32> = _run_target_args'_v3 - v861 -and method42 (v0 : int32 option, v1 : string, v2 : int32) : Async<int32> = - method43(v0, v1, v2) -and method41 (v0 : int32 option, v1 : string, v2 : int32) : Async<int32> = - method42(v0, v1, v2) -and closure26 (v0 : int32 option, v1 : string) (v2 : int32) : Async<int32> = - method41(v0, v1, v2) -and closure25 (v0 : int32 option) (v1 : string) : (int32 -> Async<int32>) = - closure26(v0, v1) -and closure24 () (v0 : int32 option) : (string -> (int32 -> Async<int32>)) = - closure25(v0) -let v0 : unit = () -let v1 : (unit -> unit) = closure0() -let v2 : unit = (fun () -> v1 (); v0) () -let v16 : (string -> (int32 -> Async<bool>)) = closure3() -let test_port_open x = v16 x -let v17 : (int32 -> (string -> (int32 -> Async<bool>))) = closure11() -let test_port_open_timeout x = v17 x -let v18 : (int32 option -> (bool -> (string -> (int32 -> Async<int64>)))) = closure18() -let wait_for_port_access x = v18 x -let v19 : (int32 option -> (string -> (int32 -> Async<int32>))) = closure24() -let get_available_port x = v19 x -() -00:00:00 d #1 writeDibCode / output: Fs / path: DirTreeHtml.dib -00:00:00 d #2 parseDibCode / output: Fs / file: DirTreeHtml.dib -00:00:00 d #1 persistCodeProject / packages: [Argu; Falco.Markup; FSharp.Control.AsyncSeq; ... ] / modules: [lib/spiral/common.fsx; lib/spiral/sm.fsx; lib/spiral/crypto.fsx; ... ] / name: DirTreeHtml / hash: / code.Length: 4638 -00:00:00 d #2 buildProject / fullPath: C:\home\git\polyglot\target\Builder\DirTreeHtml\DirTreeHtml.fsproj -00:00:00 d #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0 - "publish "C:\home\git\polyglot\target/Builder\DirTreeHtml\DirTreeHtml.fsproj" --configuration Release --output "C:\home\git\polyglot\apps\dir-tree-html\dist" --runtime linux-x64"; options = { command = dotnet publish "C:\home\git\polyglot\target/Builder\DirTreeHtml\DirTreeHtml.fsproj" --configuration Release --output "C:\home\git\polyglot\apps\dir-tree-html\dist" --runtime linux-x64; cancellation_token = None; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = Some "C:\home\git\polyglot\target\Builder\DirTreeHtml" } } -00:00:01 v #2 > Determining projects to restore... -00:00:01 v #3 > Paket version 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0 -00:00:01 v #4 > The last full restore is still up to date. Nothing left to do. -00:00:01 v #5 > Total time taken: 0 milliseconds -00:00:02 v #6 > Restored C:\home\git\polyglot\target\Builder\DirTreeHtml\DirTreeHtml.fsproj (in 367 ms). -00:00:13 v #7 > DirTreeHtml -> C:\home\git\polyglot\target\Builder\DirTreeHtml\bin\Release\net9.0\linux-x64\DirTreeHtml.dll -00:00:14 v #8 > DirTreeHtml -> C:\home\git\polyglot\apps\dir-tree-html\dist\ -00:00:14 v #9 > -00:00:14 v #10 > Workload updates are available. Run `dotnet workload list` for more information. -00:00:14 d #11 runtime.execute_with_options_async / { exit_code = 0; output_length = 545 } -00:00:14 d #12 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0 - "publish "C:\home\git\polyglot\target/Builder\DirTreeHtml\DirTreeHtml.fsproj" --configuration Release --output "C:\home\git\polyglot\apps\dir-tree-html\dist" --runtime win-x64"; options = { command = dotnet publish "C:\home\git\polyglot\target/Builder\DirTreeHtml\DirTreeHtml.fsproj" --configuration Release --output "C:\home\git\polyglot\apps\dir-tree-html\dist" --runtime win-x64; cancellation_token = None; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = Some "C:\home\git\polyglot\target\Builder\DirTreeHtml" } } -00:00:15 v #13 > Determining projects to restore... -00:00:15 v #14 > Paket version 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0 -00:00:15 v #15 > The last full restore is still up to date. Nothing left to do. -00:00:15 v #16 > Total time taken: 0 milliseconds -00:00:16 v #17 > Restored C:\home\git\polyglot\target\Builder\DirTreeHtml\DirTreeHtml.fsproj (in 358 ms). -00:00:27 v #18 > DirTreeHtml -> C:\home\git\polyglot\target\Builder\DirTreeHtml\bin\Release\net9.0\win-x64\DirTreeHtml.dll -00:00:28 v #19 > DirTreeHtml -> C:\home\git\polyglot\apps\dir-tree-html\dist\ -00:00:28 v #20 > -00:00:28 v #21 > Workload updates are available. Run `dotnet workload list` for more information. -00:00:28 d #22 runtime.execute_with_options_async / { exit_code = 0; output_length = 543 } --
{ pwsh ../lib/spiral/build.ps1 -sequential 1 } | Invoke-Block
-
00:00:00 v #1 async.run_with_timeout_async / { timeout = 180 } -00:00:00 d #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0 - ""C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 --default-int i32 --default-float f64"; options = { command = dotnet "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 --default-int i32 --default-float f64; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = Some <fun:compiler@87-4>; stdin = None; trace = true; working_directory = Some "C:\home\git\polyglot" } } -00:00:00 v #2 > 00:00:00 d #1 pwd: C:\home\git\polyglot -00:00:00 v #3 > 00:00:00 d #2 dllPath: C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release -00:00:00 v #4 > 00:00:00 d #3 targetDir: C:\home\git\polyglot\target/spiral_Eval -00:00:01 v #2 async.run_with_timeout_async / { timeout = 100 } -00:00:01 v #3 async.run_with_timeout_async / { timeout = 100 } -00:00:01 v #5 > Starting the Spiral Server. It is bound to: http://localhost:13805 -00:00:01 v #4 async.run_with_timeout_async / { timeout = 100 } -00:00:01 v #1 Supervisor.sendJson / port: 13805 / json: {"Ping":true} / result: -00:00:01 v #2 Supervisor.awaitCompiler / Ping / result: 'Some null' / port: 13805 / retry: 1 -00:00:01 v #6 > Server bound to: http://localhost:13805 -00:00:01 d #7 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path parsing.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path parsing.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } -00:00:01 v #8 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "parsing.dib", "--retries", "3"])) } -00:00:01 v #9 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/lib/spiral/parsing.dib", "--output-path", "c:/home/git/polyglot/lib/spiral/parsing.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/lib/spiral/parsing.dib" --output-path "c:/home/git/polyglot/lib/spiral/parsing.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } -00:00:03 v #10 > > -00:00:03 v #11 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:03 v #12 > > │ # parsing -00:00:07 v #13 > > -00:00:07 v #14 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:07 v #15 > > //// test -00:00:07 v #16 > > -00:00:07 v #17 > > open testing -00:00:11 v #18 > > -00:00:11 v #19 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:11 v #20 > > │ ## fparsec -00:00:11 v #21 > > -00:00:11 v #22 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:11 v #23 > > │ <div><div></div><div><strong>Installing -00:00:11 v #24 > > Packages</strong><ul><li><span>FParsec</span></li></ul></div><div></div></div> -00:00:12 v #25 > > -00:00:12 v #26 > > │ <div><div></div><div><strong>Installing -00:00:12 v #27 > > Packages</strong><ul><li><span>FParsec.</span></li></ul></div><div></div></div> -00:00:12 v #28 > > -00:00:12 v #29 > > │ <div><div></div><div><strong>Installing -00:00:12 v #30 > > Packages</strong><ul><li><span>FParsec..</span></li></ul></div><div></div></div> -00:00:13 v #31 > > -00:00:13 v #32 > > │ <div><div></div><div><strong>Installing -00:00:13 v #33 > > Packages</strong><ul><li><span>FParsec...</span></li></ul></div><div></div></div -00:00:13 v #34 > > > -00:00:13 v #35 > > -00:00:13 v #36 > > │ <div><div></div><div><strong>Installing -00:00:13 v #37 > > Packages</strong><ul><li><span>FParsec....</span></li></ul></div><div></div></di -00:00:13 v #38 > > v> -00:00:14 v #39 > > -00:00:14 v #40 > > │ <div><div></div><div><strong>Installing -00:00:14 v #41 > > Packages</strong><ul><li><span>FParsec.....</span></li></ul></div><div></div></d -00:00:14 v #42 > > iv> -00:00:14 v #43 > > -00:00:14 v #44 > > │ <div><div></div><div><strong>Installing -00:00:14 v #45 > > Packages</strong><ul><li><span>FParsec......</span></li></ul></div><div></div>< -00:00:14 v #46 > > div> -00:00:14 v #47 > > -00:00:14 v #48 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:14 v #49 > > │ Package added: fsharp.core,4.3.4 -00:00:14 v #50 > > -00:00:14 v #51 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:14 v #52 > > │ Package added: FParsec,1.1.1 -00:00:14 v #53 > > -00:00:14 v #54 > > │ <div><div></div><div></div><div><strong>Installed -00:00:14 v #55 > > Packages</strong><ul><li><span>FParsec, 1.1.1</span></li></ul></div></div> -00:00:15 v #56 > > -00:00:15 v #57 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:15 v #58 > > //// test -00:00:15 v #59 > > -00:00:15 v #60 > > nominal position_ = $'FParsec.Position' -00:00:15 v #61 > > nominal parser_error_ = $'FParsec.Error.ParserError' -00:00:15 v #62 > > -00:00:15 v #63 > > nominal reply_ t = $'FParsec.Reply<`t>' -00:00:15 v #64 > > -00:00:15 v #65 > > nominal char_stream_ t = $'FParsec.CharStream<`t>' -00:00:15 v #66 > > -00:00:15 v #67 > > // nominal parser t u = char_stream u -> reply t -00:00:15 v #68 > > nominal parser_ t u = $'FParsec.Primitives.Parser<`t, `u>' -00:00:15 v #69 > > -00:00:15 v #70 > > inl p_char_ forall t. (x : char) : parser_ char t = -00:00:15 v #71 > > x |> $'FParsec.CharParsers.pchar' -00:00:15 v #72 > > -00:00:15 v #73 > > inl p_string_ forall t. (x : string) : parser_ string t = -00:00:15 v #74 > > x |> $'FParsec.CharParsers.pstring' -00:00:15 v #75 > > -00:00:15 v #76 > > inl (>>.$) forall t u v. (a : parser_ t v) (b : parser_ u v) : parser_ u v = -00:00:15 v #77 > > b |> $'FParsec.Primitives.(>>.)' a -00:00:15 v #78 > > -00:00:15 v #79 > > inl (.>>$) forall t u v. (a : parser_ t v) (b : parser_ u v) : parser_ t v = -00:00:15 v #80 > > b |> $'FParsec.Primitives.(.>>)' a -00:00:15 v #81 > > -00:00:15 v #82 > > inl (.>>.$) forall t u v. (a : parser_ t v) (b : parser_ u v) : parser_ (pair t -00:00:15 v #83 > > u) v = -00:00:15 v #84 > > b |> $'FParsec.Primitives.(.>>.)' a -00:00:15 v #85 > > -00:00:15 v #86 > > inl (>>%$) forall t u v. (a : parser_ t v) (b : u) : parser_ u v = -00:00:15 v #87 > > b |> $'FParsec.Primitives.(>>%)' a -00:00:15 v #88 > > -00:00:15 v #89 > > inl (>>=$) forall t u v. (a : parser_ t v) (b : t -> parser_ u v) : parser_ u v -00:00:15 v #90 > > = -00:00:15 v #91 > > b |> $'FParsec.Primitives.(>>=)' a -00:00:15 v #92 > > -00:00:15 v #93 > > inl (|>>$) forall t u v. (a : parser_ t v) (b : t -> u) : parser_ u v = -00:00:15 v #94 > > inl b = fun x => x |> b -00:00:15 v #95 > > b |> $'FParsec.Primitives.(|>>)' a -00:00:15 v #96 > > -00:00:15 v #97 > > inl any_char_ () : parser_ char _ = -00:00:15 v #98 > > $'FParsec.CharParsers.anyChar' -00:00:15 v #99 > > -00:00:15 v #100 > > inl any_string_ () : parser_ string _ = -00:00:15 v #101 > > $'FParsec.CharParsers.anyString' -00:00:15 v #102 > > -00:00:15 v #103 > > inl any_string__ (n : i32) : parser_ string _ = -00:00:15 v #104 > > n |> $'FParsec.CharParsers.anyString' -00:00:15 v #105 > > -00:00:15 v #106 > > inl eof_ () : parser_ () _ = -00:00:15 v #107 > > $'FParsec.CharParsers.eof' -00:00:15 v #108 > > -00:00:15 v #109 > > inl spaces_ () : parser_ () () = -00:00:15 v #110 > > $'FParsec.CharParsers.spaces' -00:00:15 v #111 > > -00:00:15 v #112 > > inl spaces1_ () : parser_ () () = -00:00:15 v #113 > > $'FParsec.CharParsers.spaces1' -00:00:15 v #114 > > -00:00:15 v #115 > > inl (<|>$) forall t u. (a : parser_ t u) (b : parser_ t u) : parser_ t u = -00:00:15 v #116 > > b |> $'FParsec.Primitives.(<|>)' a -00:00:15 v #117 > > -00:00:15 v #118 > > inl many_satisfy_ forall t. (x : char -> bool) : parser_ string t = -00:00:15 v #119 > > x |> $'FParsec.CharParsers.manySatisfy' -00:00:15 v #120 > > -00:00:15 v #121 > > inl satisfy_ forall t. (x : char -> bool) : parser_ char t = -00:00:15 v #122 > > x |> $'FParsec.CharParsers.satisfy' -00:00:15 v #123 > > -00:00:15 v #124 > > inl none_of_ (x : list char) : parser_ char () = -00:00:15 v #125 > > x -00:00:15 v #126 > > |> listm'.box -00:00:15 v #127 > > |> listm'.to_array' -00:00:15 v #128 > > |> $'FParsec.CharParsers.noneOf' -00:00:15 v #129 > > -00:00:15 v #130 > > inl any_of_ (x : list char) : parser_ char () = -00:00:15 v #131 > > x -00:00:15 v #132 > > |> listm'.box -00:00:15 v #133 > > |> listm'.to_array' -00:00:15 v #134 > > |> $'FParsec.CharParsers.anyOf' -00:00:15 v #135 > > -00:00:15 v #136 > > inl skip_any_of_ (x : list char) : parser_ () () = -00:00:15 v #137 > > x -00:00:15 v #138 > > |> listm'.box -00:00:15 v #139 > > |> listm'.to_array' -00:00:15 v #140 > > |> $'FParsec.CharParsers.skipAnyOf' -00:00:15 v #141 > > -00:00:15 v #142 > > inl between_ forall t u v x. (a : parser_ t x) (b : parser_ u x) (c : parser_ v -00:00:15 v #143 > > x) : parser_ v x = -00:00:15 v #144 > > c |> $'FParsec.Primitives.between' a b -00:00:15 v #145 > > -00:00:15 v #146 > > inl many_chars_ forall t. (x : parser_ char t) : parser_ string t = -00:00:15 v #147 > > x |> $'FParsec.CharParsers.manyChars' -00:00:15 v #148 > > -00:00:15 v #149 > > inl many1_chars_ forall t. (x : parser_ char t) : parser_ string t = -00:00:15 v #150 > > x |> $'FParsec.CharParsers.many1Chars' -00:00:15 v #151 > > -00:00:15 v #152 > > inl many_strings_ forall t. (x : parser_ string t) : parser_ string t = -00:00:15 v #153 > > x |> $'FParsec.CharParsers.manyStrings' -00:00:15 v #154 > > -00:00:15 v #155 > > inl skip_any_string_ forall t. (n : i32) : parser_ () t = -00:00:15 v #156 > > n |> $'FParsec.CharParsers.skipAnyString' -00:00:15 v #157 > > -00:00:15 v #158 > > inl many1_strings_ forall t. (x : parser_ string t) : parser_ string t = -00:00:15 v #159 > > x |> $'FParsec.CharParsers.many1Strings' -00:00:15 v #160 > > -00:00:15 v #161 > > inl opt_ forall t u. (a : parser_ t u) : parser_ (optionm'.option' t) u = -00:00:15 v #162 > > a |> $'FParsec.Primitives.opt' -00:00:15 v #163 > > -00:00:15 v #164 > > inl choice_ forall t u. (a : list (parser_ t u)) : parser_ t u = -00:00:15 v #165 > > a -00:00:15 v #166 > > |> listm'.box -00:00:15 v #167 > > |> seq.of_list' -00:00:15 v #168 > > |> $'FParsec.Primitives.choice' -00:00:15 v #169 > > -00:00:15 v #170 > > inl delay_ forall t u. (fn : () -> parser_ t u) : parser_ t u = -00:00:15 v #171 > > fn |> $'FParsec.Primitives.parse.Delay' -00:00:15 v #172 > > -00:00:15 v #173 > > inl peek_ forall t u. (a : parser_ t u) : parser_ char u = -00:00:15 v #174 > > $'!a.Peek ()' -00:00:15 v #175 > > -00:00:15 v #176 > > inl not_followed_by_ forall t u. (a : parser_ t u) : parser_ () u = -00:00:15 v #177 > > a |> $'FParsec.Primitives.notFollowedBy' -00:00:15 v #178 > > -00:00:15 v #179 > > inl sep_by_ forall t u v. (a : parser_ t v) (b : parser_ u v) : parser_ -00:00:15 v #180 > > (listm'.list' t) v = -00:00:15 v #181 > > b |> $'FParsec.Primitives.sepBy' a -00:00:15 v #182 > > -00:00:15 v #183 > > inl sep_by1_ forall t u v. (a : parser_ t v) (b : parser_ u v) : parser_ -00:00:15 v #184 > > (listm'.list' t) v = -00:00:15 v #185 > > b |> $'FParsec.Primitives.sepBy1' a -00:00:15 v #186 > > -00:00:15 v #187 > > inl sep_end_by_ forall t u v. (a : parser_ t v) (b : parser_ u v) : parser_ -00:00:15 v #188 > > (listm'.list' t) v = -00:00:15 v #189 > > b |> $'FParsec.Primitives.sepEndBy' a -00:00:15 v #190 > > -00:00:15 v #191 > > inl many_ forall t u. (a : parser_ t u) : parser_ (listm'.list' t) u = -00:00:15 v #192 > > a |> $'FParsec.Primitives.many' -00:00:15 v #193 > > -00:00:15 v #194 > > inl many1_ forall t u. (a : parser_ t u) : parser_ (listm'.list' t) u = -00:00:15 v #195 > > a |> $'FParsec.Primitives.many1' -00:00:15 v #196 > > -00:00:15 v #197 > > inl many1_satisfy_ forall t. (x : char -> bool) : parser_ string t = -00:00:15 v #198 > > x |> $'FParsec.CharParsers.many1Satisfy' -00:00:15 v #199 > > -00:00:15 v #200 > > nominal parser_result'_ t u = $'FParsec.CharParsers.ParserResult<`t, `u>' -00:00:15 v #201 > > -00:00:15 v #202 > > inl run_ forall t. (parser : parser_ t ()) (x : string) : parser_result'_ t () = -00:00:15 v #203 > > x |> $'FParsec.CharParsers.run' parser -00:00:15 v #204 > > -00:00:15 v #205 > > union parser_result_ t u = -00:00:15 v #206 > > | Success : t * u * position_ -00:00:15 v #207 > > | Failure : string * parser_error_ * u -00:00:15 v #208 > > -00:00:15 v #209 > > inl parser_result_ forall t u. = function -00:00:15 v #210 > > | Success (a, b, c) => $'`(parser_result'_ t u).Success (!a, !b, !c)' : -00:00:15 v #211 > > parser_result'_ t u -00:00:15 v #212 > > | Failure (a, b, c) => $'`(parser_result'_ t u).Failure (!a, !b, !c)' : -00:00:15 v #213 > > parser_result'_ t u -00:00:15 v #214 > > -00:00:15 v #215 > > inl parser_result'_ forall t u. (x : parser_result'_ t u) : parser_result_ t u = -00:00:15 v #216 > > $'let mutable _!x = None ' -00:00:15 v #217 > > $'match !x with' -00:00:15 v #218 > > $'| FParsec.CharParsers.Success (a, b, c) -> (' : () -00:00:15 v #219 > > $'(fun () ->' -00:00:15 v #220 > > $'(fun () ->' -00:00:15 v #221 > > (Success ((dyn $'a'), dyn $'b', dyn $'c') : _ t u) |> emit_unit -00:00:15 v #222 > > $')' -00:00:15 v #223 > > $'|> fun x -> x ()' -00:00:15 v #224 > > $') () ) | FParsec.CharParsers.Failure (a, b, c) -> (' : () -00:00:15 v #225 > > $'(fun () ->' -00:00:15 v #226 > > $'(fun () ->' -00:00:15 v #227 > > (Failure ((dyn $'a'), dyn $'b', dyn $'c') : _ t u) |> emit_unit -00:00:15 v #228 > > $')' -00:00:15 v #229 > > $'|> fun x -> x ()' -00:00:15 v #230 > > $') () )' : () -00:00:15 v #231 > > $'|> fun x -> _!x <- Some x' -00:00:15 v #232 > > $'match _!x with Some x -> x | None -> failwith "??? / _!x=None"' -00:00:15 v #233 > > -00:00:15 v #234 > > inl parse_ parser input : result _ _ = -00:00:15 v #235 > > match input |> run_ parser |> parser_result'_ with -00:00:15 v #236 > > | Success (result, b, c) => Ok (result, c) -00:00:15 v #237 > > | Failure (error_msg, b, c) => Error (error_msg, b) -00:00:15 v #238 > > -00:00:15 v #239 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:15 v #240 > > //// test -00:00:15 v #241 > > -00:00:15 v #242 > > inl split_args (args : string) : result (array_base (string * position_)) -00:00:15 v #243 > > (string * parser_error_) = -00:00:15 v #244 > > inl esc = [[ '\\'; '`' ]] -00:00:15 v #245 > > inl quotes = [[ '"' ]] -00:00:15 v #246 > > inl special = esc ++ quotes -00:00:15 v #247 > > inl p_esc_char c = -00:00:15 v #248 > > p_char_ c >>.$ any_char_ () |>>$ fun c' => $'$"{!c}{!c'}"' -00:00:15 v #249 > > inl p_word = special |> none_of_ |>>$ sm'.obj_to_string -00:00:15 v #250 > > inl p_plain = special ++ [[ ' ' ]] |> none_of_ |> many1_chars_ -00:00:15 v #251 > > inl p_text = p_word |> many1_strings_ -00:00:15 v #252 > > inl p_esc = esc |> listm.map p_esc_char |> choice_ -00:00:15 v #253 > > inl p_quoted = (p_word <|>$ p_esc) |> many_ |>>$ (seq.of_list' >> sm'.concat -00:00:15 v #254 > > "") -00:00:15 v #255 > > inl p_quoted_all = p_quoted |> between_ (p_char_ '"') (p_char_ '"') -00:00:15 v #256 > > inl p_esc_root = p_esc |>>$ (fun _ => "") >>.$ (p_word |> many_) |>>$ -00:00:15 v #257 > > (seq.of_list' >> sm'.concat "") -00:00:15 v #258 > > inl p_content = p_plain <|>$ p_quoted_all <|>$ p_esc_root -00:00:15 v #259 > > inl p_args = spaces1_ () |> sep_by_ p_content -00:00:15 v #260 > > args -00:00:15 v #261 > > |> parse_ p_args -00:00:15 v #262 > > |> resultm.map fun (a', b') => -00:00:15 v #263 > > ( -00:00:15 v #264 > > ( -00:00:15 v #265 > > a' -00:00:15 v #266 > > |> listm'.to_array' -00:00:15 v #267 > > |> a -00:00:15 v #268 > > |> am.map fun x => x, b' -00:00:15 v #269 > > |> fun (a x : _ i32 _) => x -00:00:15 v #270 > > ) -00:00:15 v #271 > > ) -00:00:15 v #272 > > -00:00:15 v #273 > > [[ -00:00:15 v #274 > > "a b c", -00:00:15 v #275 > > ;[[ "a"; "b"; "c" ]] -00:00:15 v #276 > > -00:00:15 v #277 > > "e f \"g h\" i", -00:00:15 v #278 > > ;[[ "e"; "f"; "g h"; "i" ]] -00:00:15 v #279 > > -00:00:15 v #280 > > "\"j k\" \"l\" \"m\"", -00:00:15 v #281 > > ;[[ "j k"; "l"; "m" ]] -00:00:15 v #282 > > -00:00:15 v #283 > > "s -t \"u \`\"v\`\" w\"", -00:00:15 v #284 > > ;[[ "s"; "-t"; "u \`\"v\`\" w" ]] -00:00:15 v #285 > > -00:00:15 v #286 > > "n -o \"p \\\"q\\\" r\"", -00:00:15 v #287 > > ;[[ "n"; "-o"; "p \\\"q\\\" r" ]] -00:00:15 v #288 > > -00:00:15 v #289 > > "r -s \"t \\\"u\\\"\"", -00:00:15 v #290 > > ;[[ "r"; "-s"; "t \\\"u\\\"" ]] -00:00:15 v #291 > > -00:00:15 v #292 > > $'$"x -y \\\"$z -a \'(b=\\\\\\"c-id=)[[a-fA-F0-9]]{{8}}\', {{ \`$_[[1]] + -00:00:15 v #293 > > \`$d++ }}\\\""', -00:00:15 v #294 > > ;[[ "x"; "-y"; "$z -a '(b=\\\"c-id=)[[a-fA-F0-9]]{8}', { `$_[[1]] + `$d++ }" -00:00:15 v #295 > > ]] -00:00:15 v #296 > > -00:00:15 v #297 > > "e -f \"$g -h '(i=`\"j-id=)[[a-fA-F0-9]]{8}', { `$_[[1]] + `$k++ }\"", -00:00:15 v #298 > > ;[[ "e"; "-f"; "$g -h '(i=`\"j-id=)[[a-fA-F0-9]]{8}', { `$_[[1]] + `$k++ }" -00:00:15 v #299 > > ]] -00:00:15 v #300 > > -00:00:15 v #301 > > $'$"--l \\\\\\"\'\'\' m \'\'\'\\\\\\" "', -00:00:15 v #302 > > ;[[ "--l"; "''' m '''" ]] -00:00:15 v #303 > > -00:00:15 v #304 > > $'$"n --o --p q --r \\\"s:/t u/v.w\\\" --x \\\"y:/z.a\\\" --b c.d -00:00:15 v #305 > > \\\"\\\\e{{f-g}}\\\" h.i \\\"j (k)\\\""', -00:00:15 v #306 > > ;[[ "n"; "--o"; "--p"; "q"; "--r"; "s:/t u/v.w"; "--x"; "y:/z.a"; "--b"; -00:00:15 v #307 > > "c.d"; "\\e{f-g}"; "h.i"; "j (k)" ]] -00:00:15 v #308 > > -00:00:15 v #309 > > $'\@$"l ""m n:\\o.p"""', -00:00:15 v #310 > > ;[[ "l"; "m n:\\o.p" ]] -00:00:15 v #311 > > ]] -00:00:15 v #312 > > |> listm.rev -00:00:15 v #313 > > |> listm.map fun input, expected => -00:00:15 v #314 > > input -00:00:15 v #315 > > |> split_args -00:00:15 v #316 > > |> fun x => -00:00:15 v #317 > > try -00:00:15 v #318 > > fun () => -00:00:15 v #319 > > ($'$"\ninput: {!input}"' : string) -00:00:15 v #320 > > |> console.write_line -00:00:15 v #321 > > x -00:00:15 v #322 > > |> resultm.get -00:00:15 v #323 > > |> am'.map_base fst -00:00:15 v #324 > > |> _assert_eq' expected -00:00:15 v #325 > > false -00:00:15 v #326 > > fun ex => -00:00:15 v #327 > > ($'$"error / expected: %A{!expected} / ex: %A{!ex}"' : string) -00:00:15 v #328 > > |> console.write_line -00:00:15 v #329 > > Some true -00:00:15 v #330 > > |> optionm.value -00:00:15 v #331 > > |> listm'.filter id -00:00:15 v #332 > > |> function -00:00:15 v #333 > > | [[]] => () -00:00:15 v #334 > > | x => failwith $'$"{!x}"' -00:00:19 v #335 > > -00:00:19 v #336 > > ── [ 3.77s - stdout ] ────────────────────────────────────────────────────────── -00:00:19 v #337 > > │ -00:00:19 v #338 > > │ input: a b c -00:00:19 v #339 > > │ __assert_eq' / actual: [|"a"; "b"; "c"|] / expected: [|"a"; -00:00:19 v #340 > > "b"; "c"|] -00:00:19 v #341 > > │ -00:00:19 v #342 > > │ input: e f "g h" i -00:00:19 v #343 > > │ __assert_eq' / actual: [|"e"; "f"; "g h"; "i"|] / expected: -00:00:19 v #344 > > [|"e"; "f"; "g h"; "i"|] -00:00:19 v #345 > > │ -00:00:19 v #346 > > │ input: "j k" "l" "m" -00:00:19 v #347 > > │ __assert_eq' / actual: [|"j k"; "l"; "m"|] / expected: [|"j -00:00:19 v #348 > > k"; "l"; "m"|] -00:00:19 v #349 > > │ -00:00:19 v #350 > > │ input: s -t "u `"v`" w" -00:00:19 v #351 > > │ __assert_eq' / actual: [|"s"; "-t"; "u `"v`" w"|] / expected: -00:00:19 v #352 > > [|"s"; "-t"; "u `"v`" w"|] -00:00:19 v #353 > > │ -00:00:19 v #354 > > │ input: n -o "p \"q\" r" -00:00:19 v #355 > > │ __assert_eq' / actual: [|"n"; "-o"; "p \"q\" r"|] / expected: -00:00:19 v #356 > > [|"n"; "-o"; "p \"q\" r"|] -00:00:19 v #357 > > │ -00:00:19 v #358 > > │ input: r -s "t \"u\"" -00:00:19 v #359 > > │ __assert_eq' / actual: [|"r"; "-s"; "t \"u\""|] / expected: -00:00:19 v #360 > > [|"r"; "-s"; "t \"u\""|] -00:00:19 v #361 > > │ -00:00:19 v #362 > > │ input: x -y "$z -a '(b=\"c-id=)[a-fA-F0-9]{8}', { `$_[1] + -00:00:19 v #363 > > `$d++ }" -00:00:19 v #364 > > │ __assert_eq' / actual: [|"x"; "-y"; "$z -a -00:00:19 v #365 > > '(b=\"c-id=)[a-fA-F0-9]{8}', { `$_[1] + `$d++ }"|] / expected: [|"x"; "-y"; "$z -00:00:19 v #366 > > -a '(b=\"c-id=)[a-fA-F0-9]{8}', { `$_[1] + `$d++ }"|] -00:00:19 v #367 > > │ -00:00:19 v #368 > > │ input: e -f "$g -h '(i=`"j-id=)[a-fA-F0-9]{8}', { `$_[1] + -00:00:19 v #369 > > `$k++ }" -00:00:19 v #370 > > │ __assert_eq' / actual: [|"e"; "-f"; "$g -h -00:00:19 v #371 > > '(i=`"j-id=)[a-fA-F0-9]{8}', { `$_[1] + `$k++ }"|] / expected: [|"e"; "-f"; "$g -00:00:19 v #372 > > -h '(i=`"j-id=)[a-fA-F0-9]{8}', { `$_[1] + `$k++ }"|] -00:00:19 v #373 > > │ -00:00:19 v #374 > > │ input: --l \"''' m '''\" -00:00:19 v #375 > > │ __assert_eq' / actual: [|"--l"; "''' m '''"|] / expected: -00:00:19 v #376 > > [|"--l"; "''' m '''"|] -00:00:19 v #377 > > │ -00:00:19 v #378 > > │ input: n --o --p q --r "s:/t u/v.w" --x "y:/z.a" --b c.d -00:00:19 v #379 > > "\e{f-g}" h.i "j (k)" -00:00:19 v #380 > > │ __assert_eq' / actual: [|"n"; "--o"; "--p"; "q"; "--r"; "s:/t -00:00:19 v #381 > > u/v.w"; "--x"; "y:/z.a"; "--b"; "c.d"; -00:00:19 v #382 > > │ "\e{f-g}"; "h.i"; "j (k)"|] / expected: [|"n"; "--o"; -00:00:19 v #383 > > "--p"; "q"; "--r"; "s:/t u/v.w"; "--x"; "y:/z.a"; "--b"; "c.d"; -00:00:19 v #384 > > │ "\e{f-g}"; "h.i"; "j (k)"|] -00:00:19 v #385 > > │ -00:00:19 v #386 > > │ input: l "m n:\o.p" -00:00:19 v #387 > > │ __assert_eq' / actual: [|"l"; "m n:\o.p"|] / expected: [|"l"; -00:00:19 v #388 > > "m n:\o.p"|] -00:00:19 v #389 > > │ -00:00:19 v #390 > > -00:00:19 v #391 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:19 v #392 > > │ ## parsing -00:00:19 v #393 > > -00:00:19 v #394 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:19 v #395 > > │ ### range -00:00:19 v #396 > > -00:00:19 v #397 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:19 v #398 > > type range = -00:00:19 v #399 > > { -00:00:19 v #400 > > from : int -00:00:19 v #401 > > to : int -00:00:19 v #402 > > } -00:00:19 v #403 > > -00:00:19 v #404 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:19 v #405 > > │ ### position -00:00:19 v #406 > > -00:00:19 v #407 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:19 v #408 > > type position = -00:00:19 v #409 > > { -00:00:19 v #410 > > line : int -00:00:19 v #411 > > col : int -00:00:19 v #412 > > } -00:00:20 v #413 > > -00:00:20 v #414 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:20 v #415 > > │ ### parser_state -00:00:20 v #416 > > -00:00:20 v #417 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:20 v #418 > > nominal parser_state = -00:00:20 v #419 > > { -00:00:20 v #420 > > line_text : sm'.string_builder -00:00:20 v #421 > > position : position -00:00:20 v #422 > > } -00:00:20 v #423 > > -00:00:20 v #424 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:20 v #425 > > │ ### parser -00:00:20 v #426 > > -00:00:20 v #427 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:20 v #428 > > type parser t = string * parser_state -> result (t * string * parser_state) -00:00:20 v #429 > > string -00:00:21 v #430 > > -00:00:21 v #431 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:21 v #432 > > │ ### parse -00:00:21 v #433 > > -00:00:21 v #434 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:21 v #435 > > inl parse forall t. (p : parser t) (input : string) : result (t * string * -00:00:21 v #436 > > parser_state) string = -00:00:21 v #437 > > inl input = -00:00:21 v #438 > > input -00:00:21 v #439 > > |> optionm'.of_obj -00:00:21 v #440 > > |> optionm'.default_value' "" -00:00:21 v #441 > > p (input, { line_text = "" |> sm'.string_builder; position = { line = 1; col -00:00:21 v #442 > > = 1 } } |> parser_state) -00:00:21 v #443 > > -00:00:21 v #444 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:21 v #445 > > │ ### inc -00:00:21 v #446 > > -00:00:21 v #447 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:21 v #448 > > inl inc (parser_state s) = function -00:00:21 v #449 > > | '\n' => { line = s.position.line + 1; col = 1 } -00:00:21 v #450 > > | _ => { s.position with col = s.position.col + 1 }.position -00:00:22 v #451 > > -00:00:22 v #452 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:22 v #453 > > │ ### update -00:00:22 v #454 > > -00:00:22 v #455 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:22 v #456 > > inl update result s = -00:00:22 v #457 > > (s, result |> sm'.to_char_array |> am'.to_list_base' |> listm'.unbox) -00:00:22 v #458 > > ||> listm.fold fun (parser_state s as s') c => -00:00:22 v #459 > > { s with -00:00:22 v #460 > > position = c |> inc s' -00:00:22 v #461 > > line_text = -00:00:22 v #462 > > match c with -00:00:22 v #463 > > | '\n' => s.line_text |> sm'.builder_clear -00:00:22 v #464 > > | c => s.line_text |> sm'.builder_append (c |> -00:00:22 v #465 > > sm'.obj_to_string) -00:00:22 v #466 > > } |> parser_state -00:00:22 v #467 > > -00:00:22 v #468 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:22 v #469 > > │ ### any_char -00:00:22 v #470 > > -00:00:22 v #471 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:22 v #472 > > inl any_char () : parser char = function -00:00:22 v #473 > > | "", s => -00:00:22 v #474 > > backend_switch { -00:00:22 v #475 > > Fsharp = fun () => $'$"parsing.any_char / unexpected end of input -00:00:22 v #476 > > s: %A{!s}"' : string -00:00:22 v #477 > > Python = fun () => $'f"parsing.any_char / unexpected end of input -00:00:22 v #478 > > s: {!s}"' : string -00:00:22 v #479 > > } -00:00:22 v #480 > > |> Error -00:00:22 v #481 > > | x, s => -00:00:22 v #482 > > inl first_char = x |> sm'.index 0i32 -00:00:22 v #483 > > Ok ( -00:00:22 v #484 > > first_char, -00:00:22 v #485 > > x |> sm'.range (am'.Start 1i32) (am'.End eval), -00:00:22 v #486 > > s |> update (first_char |> sm'.obj_to_string) -00:00:22 v #487 > > ) -00:00:22 v #488 > > -00:00:22 v #489 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:22 v #490 > > //// test -00:00:22 v #491 > > ///! fsharp -00:00:22 v #492 > > ///! cuda -00:00:22 v #493 > > ///! typescript -00:00:22 v #494 > > -00:00:22 v #495 > > "abc" -00:00:22 v #496 > > |> parse (any_char ()) -00:00:22 v #497 > > |> resultm.get -00:00:22 v #498 > > |> sm'.format_debug -00:00:22 v #499 > > |> _assert_eq ( -00:00:22 v #500 > > ('a', "bc", { line_text = "a" |> sm'.string_builder; position = { line = -00:00:22 v #501 > > 1i32; col = 2i32 } }) -00:00:22 v #502 > > |> sm'.format_debug -00:00:22 v #503 > > ) -00:00:25 v #504 > > -00:00:25 v #505 > > ── [ 2.91s - return value ] ──────────────────────────────────────────────────── -00:00:25 v #506 > > │ .py output (Cuda): -00:00:25 v #507 > > │ __assert_eq / actual: ('a', 'bc', a, 1, 2) / expected: ('a', -00:00:25 v #508 > > 'bc', a, 1, 2) -00:00:25 v #509 > > │ -00:00:25 v #510 > > │ .ts output: -00:00:25 v #511 > > │ __assert_eq / actual: a,bc,a,1,2 / expected: a,bc,a,1,2 -00:00:25 v #512 > > │ -00:00:25 v #513 > > │ -00:00:25 v #514 > > -00:00:25 v #515 > > ── [ 2.91s - stdout ] ────────────────────────────────────────────────────────── -00:00:25 v #516 > > │ .fsx output: -00:00:25 v #517 > > │ __assert_eq / actual: "struct ('a', "bc", a, 1, 2)" -00:00:25 v #518 > > expected: "struct ('a', "bc", a, 1, 2)" -00:00:25 v #519 > > │ -00:00:25 v #520 > > -00:00:25 v #521 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:25 v #522 > > //// test -00:00:25 v #523 > > -00:00:25 v #524 > > "abc" -00:00:25 v #525 > > |> parse_ (any_char_ ()) -00:00:25 v #526 > > |> resultm.get -00:00:25 v #527 > > |> sm'.format_debug -00:00:25 v #528 > > |> _assert_eq' (('a', ($'FParsec.Position (null, 0, 1, 2)' : position_)) |> -00:00:25 v #529 > > sm'.format_debug) -00:00:26 v #530 > > -00:00:26 v #531 > > ── [ 490.43ms - stdout ] ─────────────────────────────────────────────────────── -00:00:26 v #532 > > │ __assert_eq' / actual: "struct ('a', (Ln: 1, Col: 2))" -00:00:26 v #533 > > expected: "struct ('a', (Ln: 1, Col: 2))" -00:00:26 v #534 > > │ -00:00:26 v #535 > > -00:00:26 v #536 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:26 v #537 > > │ ### p_char -00:00:26 v #538 > > -00:00:26 v #539 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:26 v #540 > > inl p_char (c : char) : parser char = function -00:00:26 v #541 > > | "", s => -00:00:26 v #542 > > backend_switch { -00:00:26 v #543 > > Fsharp = fun () => $'$"parsing.p_char / unexpected end of input / c: -00:00:26 v #544 > > \'{!c}\' / s: %A{!s}"' : string -00:00:26 v #545 > > Python = fun () => $'f"parsing.p_char / unexpected end of input / c: -00:00:26 v #546 > > \'{!c}\' / s: {!s}"' : string -00:00:26 v #547 > > } -00:00:26 v #548 > > |> Error -00:00:26 v #549 > > | input, (parser_state ({ line_text position = { line col } } as s) as s') -00:00:26 v #550 > > => -00:00:26 v #551 > > inl first_char = input |> sm'.index 0i32 -00:00:26 v #552 > > if first_char = c then -00:00:26 v #553 > > Ok ( -00:00:26 v #554 > > first_char, -00:00:26 v #555 > > input |> sm'.range (am'.Start 1i32) (am'.End eval), -00:00:26 v #556 > > s' |> update (first_char |> sm'.obj_to_string) -00:00:26 v #557 > > ) -00:00:26 v #558 > > else -00:00:26 v #559 > > inl message : string = -00:00:26 v #560 > > inl rest = -00:00:26 v #561 > > input -00:00:26 v #562 > > |> sm'.range -00:00:26 v #563 > > (am'.Start 0i32) -00:00:26 v #564 > > (am'.End fun l => -00:00:26 v #565 > > match (input |> sm'.index_of "\n") - 1 with -00:00:26 v #566 > > | -2 => l () + 1 -00:00:26 v #567 > > | i => i + 1 -00:00:26 v #568 > > ) -00:00:26 v #569 > > backend_switch { -00:00:26 v #570 > > Fsharp = fun () => $'$"parsing.p_char / expected: \'{!c}\' -00:00:26 v #571 > > line: {!line} / col: {!col}\n{!line_text}{!rest}"' : string -00:00:26 v #572 > > Python = fun () => $'f"""parsing.p_char / expected: \'{!c}\' -00:00:26 v #573 > > / line: {!line} / col: {!col}\n{!line_text}{!rest}"""' : string -00:00:26 v #574 > > } -00:00:26 v #575 > > inl pointer_line = (sm'.replicate (col - 1) " ") +. "^" -00:00:26 v #576 > > backend_switch { -00:00:26 v #577 > > Fsharp = fun () => $'$"{!message}\n{!pointer_line}\n"' : string -00:00:26 v #578 > > Python = fun () => $'f"""{!message}\n{!pointer_line}\n"""' : -00:00:26 v #579 > > string -00:00:26 v #580 > > } -00:00:26 v #581 > > |> Error -00:00:26 v #582 > > -00:00:26 v #583 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:26 v #584 > > //// test -00:00:26 v #585 > > ///! fsharp -00:00:26 v #586 > > ///! cuda -00:00:26 v #587 > > ///! typescript -00:00:26 v #588 > > -00:00:26 v #589 > > "abc" -00:00:26 v #590 > > |> parse (p_char 'a') -00:00:26 v #591 > > |> resultm.get -00:00:26 v #592 > > |> sm'.format_debug -00:00:26 v #593 > > |> _assert_eq ( -00:00:26 v #594 > > ('a', "bc", { line_text = "a" |> sm'.string_builder; position = { line = -00:00:26 v #595 > > 1i32; col = 2i32 } }) -00:00:26 v #596 > > |> sm'.format_debug -00:00:26 v #597 > > ) -00:00:29 v #598 > > -00:00:29 v #599 > > ── [ 2.51s - return value ] ──────────────────────────────────────────────────── -00:00:29 v #600 > > │ .py output (Cuda): -00:00:29 v #601 > > │ __assert_eq / actual: ('a', 'bc', a, 1, 2) / expected: ('a', -00:00:29 v #602 > > 'bc', a, 1, 2) -00:00:29 v #603 > > │ -00:00:29 v #604 > > │ .ts output: -00:00:29 v #605 > > │ __assert_eq / actual: a,bc,a,1,2 / expected: a,bc,a,1,2 -00:00:29 v #606 > > │ -00:00:29 v #607 > > │ -00:00:29 v #608 > > -00:00:29 v #609 > > ── [ 2.51s - stdout ] ────────────────────────────────────────────────────────── -00:00:29 v #610 > > │ .fsx output: -00:00:29 v #611 > > │ __assert_eq / actual: "struct ('a', "bc", a, 1, 2)" -00:00:29 v #612 > > expected: "struct ('a', "bc", a, 1, 2)" -00:00:29 v #613 > > │ -00:00:29 v #614 > > -00:00:29 v #615 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:29 v #616 > > //// test -00:00:29 v #617 > > -00:00:29 v #618 > > "abc" -00:00:29 v #619 > > |> parse_ (p_char_ 'a') -00:00:29 v #620 > > |> resultm.get -00:00:29 v #621 > > |> sm'.format_debug -00:00:29 v #622 > > |> _assert_eq' (('a', ($'FParsec.Position (null, 0, 1, 2)' : position_)) |> -00:00:29 v #623 > > sm'.format_debug) -00:00:29 v #624 > > -00:00:29 v #625 > > ── [ 494.07ms - stdout ] ─────────────────────────────────────────────────────── -00:00:29 v #626 > > │ __assert_eq' / actual: "struct ('a', (Ln: 1, Col: 2))" -00:00:29 v #627 > > expected: "struct ('a', (Ln: 1, Col: 2))" -00:00:29 v #628 > > │ -00:00:29 v #629 > > -00:00:29 v #630 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:29 v #631 > > │ ### any_string -00:00:29 v #632 > > -00:00:29 v #633 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:29 v #634 > > inl any_string length : parser string = fun input, s => -00:00:29 v #635 > > if sm'.length input < length then -00:00:29 v #636 > > backend_switch { -00:00:29 v #637 > > Fsharp = fun () => $'$"parsing.any_string / unexpected end of input -00:00:29 v #638 > > / s: %A{!s}"' : string -00:00:29 v #639 > > Python = fun () => $'f"parsing.any_string / unexpected end of input -00:00:29 v #640 > > / s: {!s}"' : string -00:00:29 v #641 > > } -00:00:29 v #642 > > |> Error -00:00:29 v #643 > > else -00:00:29 v #644 > > inl result = input |> sm'.range (am'.Start 0i32) (am'.End fun _ => -00:00:29 v #645 > > length) -00:00:29 v #646 > > Ok ( -00:00:29 v #647 > > result, -00:00:29 v #648 > > input |> sm'.range (am'.Start length) (am'.End eval), -00:00:29 v #649 > > s |> update result -00:00:29 v #650 > > ) -00:00:30 v #651 > > -00:00:30 v #652 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:30 v #653 > > //// test -00:00:30 v #654 > > ///! fsharp -00:00:30 v #655 > > ///! cuda -00:00:30 v #656 > > ///! typescript -00:00:30 v #657 > > -00:00:30 v #658 > > "abcdef" -00:00:30 v #659 > > |> parse (any_string 3i32) -00:00:30 v #660 > > |> resultm.get -00:00:30 v #661 > > |> sm'.format_debug -00:00:30 v #662 > > |> _assert_eq ( -00:00:30 v #663 > > ("abc", "def", { line_text = "abc" |> sm'.string_builder; position = { line -00:00:30 v #664 > > = 1i32; col = 4i32 } }) -00:00:30 v #665 > > |> sm'.format_debug -00:00:30 v #666 > > ) -00:00:32 v #667 > > -00:00:32 v #668 > > ── [ 2.25s - return value ] ──────────────────────────────────────────────────── -00:00:32 v #669 > > │ .py output (Cuda): -00:00:32 v #670 > > │ __assert_eq / actual: ('abc', 'def', abc, 1, 4) / expected: -00:00:32 v #671 > > ('abc', 'def', abc, 1, 4) -00:00:32 v #672 > > │ -00:00:32 v #673 > > │ .ts output: -00:00:32 v #674 > > │ __assert_eq / actual: abc,def,abc,1,4 / expected: -00:00:32 v #675 > > abc,def,abc,1,4 -00:00:32 v #676 > > │ -00:00:32 v #677 > > │ -00:00:32 v #678 > > -00:00:32 v #679 > > ── [ 2.26s - stdout ] ────────────────────────────────────────────────────────── -00:00:32 v #680 > > │ .fsx output: -00:00:32 v #681 > > │ __assert_eq / actual: "struct ("abc", "def", abc, 1, 4)" -00:00:32 v #682 > > expected: "struct ("abc", "def", abc, 1, 4)" -00:00:32 v #683 > > │ -00:00:32 v #684 > > -00:00:32 v #685 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:32 v #686 > > //// test -00:00:32 v #687 > > -00:00:32 v #688 > > "abcdef" -00:00:32 v #689 > > |> parse_ (any_string__ 3) -00:00:32 v #690 > > |> resultm.get -00:00:32 v #691 > > |> sm'.obj_to_string -00:00:32 v #692 > > |> _assert_eq' (("abc", ($'FParsec.Position (null, 0, 1, 4)' : position_)) |> -00:00:32 v #693 > > sm'.obj_to_string) -00:00:32 v #694 > > -00:00:32 v #695 > > ── [ 473.53ms - stdout ] ─────────────────────────────────────────────────────── -00:00:32 v #696 > > │ __assert_eq' / actual: "(abc, (Ln: 1, Col: 4))" / expected: -00:00:32 v #697 > > "(abc, (Ln: 1, Col: 4))" -00:00:32 v #698 > > │ -00:00:32 v #699 > > -00:00:32 v #700 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:32 v #701 > > │ ### skip_any_string -00:00:32 v #702 > > -00:00:32 v #703 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:32 v #704 > > inl skip_any_string length : parser () = fun input, s => -00:00:32 v #705 > > if sm'.length input < length then -00:00:32 v #706 > > backend_switch { -00:00:32 v #707 > > Fsharp = fun () => $'$"parsing.skip_any_string / unexpected end of -00:00:32 v #708 > > input / s: %A{!s}"' : string -00:00:32 v #709 > > Python = fun () => $'f"parsing.skip_any_string / unexpected end of -00:00:32 v #710 > > input / s: {!s}"' : string -00:00:32 v #711 > > } -00:00:32 v #712 > > |> Error -00:00:32 v #713 > > else -00:00:32 v #714 > > Ok ( -00:00:32 v #715 > > (), -00:00:32 v #716 > > input |> sm'.range (am'.Start length) (am'.End eval), -00:00:32 v #717 > > s |> update (input |> sm'.range (am'.Start 0i32) (am'.End fun _ => -00:00:32 v #718 > > length)) -00:00:32 v #719 > > ) -00:00:33 v #720 > > -00:00:33 v #721 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:33 v #722 > > //// test -00:00:33 v #723 > > ///! fsharp -00:00:33 v #724 > > ///! cuda -00:00:33 v #725 > > ///! typescript -00:00:33 v #726 > > -00:00:33 v #727 > > "abcdef" -00:00:33 v #728 > > |> parse (skip_any_string 3i32) -00:00:33 v #729 > > |> resultm.get -00:00:33 v #730 > > |> sm'.format_debug -00:00:33 v #731 > > |> _assert_eq ( -00:00:33 v #732 > > ((), "def", { line_text = "abc" |> sm'.string_builder; position = { line = -00:00:33 v #733 > > 1i32; col = 4i32 } }) -00:00:33 v #734 > > |> sm'.format_debug -00:00:33 v #735 > > ) -00:00:35 v #736 > > -00:00:35 v #737 > > ── [ 2.11s - return value ] ──────────────────────────────────────────────────── -00:00:35 v #738 > > │ .py output (Cuda): -00:00:35 v #739 > > │ __assert_eq / actual: ('def', abc, 1, 4) / expected: ('def', -00:00:35 v #740 > > abc, 1, 4) -00:00:35 v #741 > > │ -00:00:35 v #742 > > │ .ts output: -00:00:35 v #743 > > │ __assert_eq / actual: def,abc,1,4 / expected: def,abc,1,4 -00:00:35 v #744 > > │ -00:00:35 v #745 > > │ -00:00:35 v #746 > > -00:00:35 v #747 > > ── [ 2.11s - stdout ] ────────────────────────────────────────────────────────── -00:00:35 v #748 > > │ .fsx output: -00:00:35 v #749 > > │ __assert_eq / actual: "struct ("def", abc, 1, 4)" / expected: -00:00:35 v #750 > > "struct ("def", abc, 1, 4)" -00:00:35 v #751 > > │ -00:00:35 v #752 > > -00:00:35 v #753 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:35 v #754 > > │ ### (>>.) -00:00:35 v #755 > > -00:00:35 v #756 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:35 v #757 > > inl (>>.) forall t u. (a : parser t) (b : parser u) : parser u = fun input, s => -00:00:35 v #758 > > match a (input, s) with -00:00:35 v #759 > > | Ok (_, rest, s) => b (rest, s) -00:00:35 v #760 > > | Error e => Error e -00:00:36 v #761 > > -00:00:36 v #762 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:36 v #763 > > │ ### (>>.) -00:00:36 v #764 > > -00:00:36 v #765 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:36 v #766 > > inl (.>>) forall t u. (a : parser t) (b : parser u) : parser t = fun input, s => -00:00:36 v #767 > > match a (input, s) with -00:00:36 v #768 > > | Ok (result, rest, s) => -00:00:36 v #769 > > b (rest, s) -00:00:36 v #770 > > |> resultm.map fun _, rest, s => -00:00:36 v #771 > > result, rest, s -00:00:36 v #772 > > | Error e => Error e -00:00:36 v #773 > > -00:00:36 v #774 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:36 v #775 > > │ ### (.>>.) -00:00:36 v #776 > > -00:00:36 v #777 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:36 v #778 > > inl (.>>.) forall t u. (a : parser t) (b : parser u) : parser (t * u) = fun -00:00:36 v #779 > > input, s => -00:00:36 v #780 > > match a (input, s) with -00:00:36 v #781 > > | Ok (result_a, rest, s) => -00:00:36 v #782 > > b (rest, s) -00:00:36 v #783 > > |> resultm.map fun result_b, rest, s => -00:00:36 v #784 > > (result_a, result_b), rest, s -00:00:36 v #785 > > | Error e => Error e -00:00:36 v #786 > > -00:00:36 v #787 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:36 v #788 > > │ ### (>>%) -00:00:36 v #789 > > -00:00:36 v #790 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:36 v #791 > > inl (>>%) forall t u. (a : parser t) (b : u) : parser u = -00:00:36 v #792 > > a >> resultm.map fun _, rest, s => -00:00:36 v #793 > > b, rest, s -00:00:37 v #794 > > -00:00:37 v #795 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:37 v #796 > > //// test -00:00:37 v #797 > > ///! fsharp -00:00:37 v #798 > > ///! cuda -00:00:37 v #799 > > ///! typescript -00:00:37 v #800 > > -00:00:37 v #801 > > "abc" -00:00:37 v #802 > > |> parse (p_char 'a' >>. p_char 'b') -00:00:37 v #803 > > |> resultm.get -00:00:37 v #804 > > |> sm'.format_debug -00:00:37 v #805 > > |> _assert_eq ( -00:00:37 v #806 > > ('b', "c", { line_text = "ab" |> sm'.string_builder; position = { line = -00:00:37 v #807 > > 1i32; col = 3i32 } }) -00:00:37 v #808 > > |> sm'.format_debug -00:00:37 v #809 > > ) -00:00:37 v #810 > > -00:00:37 v #811 > > "abc\ndef\nghi" -00:00:37 v #812 > > |> parse (skip_any_string 5i32 >>. p_char 'a') -00:00:37 v #813 > > |> _assert_eq (Error "parsing.p_char / expected: 'a' / line: 2 / col: 2\ndef\n -00:00:37 v #814 > > ^\n") -00:00:39 v #815 > > -00:00:39 v #816 > > ── [ 2.31s - return value ] ──────────────────────────────────────────────────── -00:00:39 v #817 > > │ -00:00:39 v #818 > > │ .py output (Cuda): -00:00:39 v #819 > > │ __assert_eq / actual: ('b', 'c', ab, 1, 3) / expected: ('b', -00:00:39 v #820 > > 'c', ab, 1, 3) -00:00:39 v #821 > > │ __assert_eq / actual: US0_1(v0="parsing.p_char / expected: -00:00:39 v #822 > > 'a' / line: 2 / col: 2\ndef\n ^\n") / expected: US0_1(v0="parsing.p_char -00:00:39 v #823 > > expected: 'a' / line: 2 / col: 2\ndef\n ^\n") -00:00:39 v #824 > > │ -00:00:39 v #825 > > │ -00:00:39 v #826 > > │ .ts output: -00:00:39 v #827 > > │ __assert_eq / actual: b,c,ab,1,3 / expected: b,c,ab,1,3 -00:00:39 v #828 > > │ __assert_eq / actual: US0_1 (parsing.p_char / expected: 'a' -00:00:39 v #829 > > line: 2 / col: 2 -00:00:39 v #830 > > │ def -00:00:39 v #831 > > │ ^ -00:00:39 v #832 > > │ ) / expected: US0_1 (parsing.p_char / expected: 'a' / line: 2 -00:00:39 v #833 > > / col: 2 -00:00:39 v #834 > > │ def -00:00:39 v #835 > > │ ^ -00:00:39 v #836 > > │ ) -00:00:39 v #837 > > │ -00:00:39 v #838 > > │ -00:00:39 v #839 > > │ -00:00:39 v #840 > > -00:00:39 v #841 > > ── [ 2.31s - stdout ] ────────────────────────────────────────────────────────── -00:00:39 v #842 > > │ .fsx output: -00:00:39 v #843 > > │ __assert_eq / actual: "struct ('b', "c", ab, 1, 3)" -00:00:39 v #844 > > expected: "struct ('b', "c", ab, 1, 3)" -00:00:39 v #845 > > │ __assert_eq / actual: US0_1 "parsing.p_char / expected: 'a' -00:00:39 v #846 > > line: 2 / col: 2 -00:00:39 v #847 > > │ def -00:00:39 v #848 > > │ ^ -00:00:39 v #849 > > │ " / expected: US0_1 "parsing.p_char / expected: 'a' / line: 2 -00:00:39 v #850 > > / col: 2 -00:00:39 v #851 > > │ def -00:00:39 v #852 > > │ ^ -00:00:39 v #853 > > │ " -00:00:39 v #854 > > │ -00:00:39 v #855 > > -00:00:39 v #856 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:39 v #857 > > //// test -00:00:39 v #858 > > -00:00:39 v #859 > > "abc" -00:00:39 v #860 > > |> parse_ (p_char_ 'a' >>.$ p_char_ 'b') -00:00:39 v #861 > > |> resultm.get -00:00:39 v #862 > > |> sm'.obj_to_string -00:00:39 v #863 > > |> _assert_eq' (('b', ($'FParsec.Position (null, 0, 1, 3)' : position_)) |> -00:00:39 v #864 > > sm'.obj_to_string) -00:00:40 v #865 > > -00:00:40 v #866 > > ── [ 449.46ms - stdout ] ─────────────────────────────────────────────────────── -00:00:40 v #867 > > │ __assert_eq' / actual: "(b, (Ln: 1, Col: 3))" / expected: -00:00:40 v #868 > > "(b, (Ln: 1, Col: 3))" -00:00:40 v #869 > > │ -00:00:40 v #870 > > -00:00:40 v #871 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:40 v #872 > > //// test -00:00:40 v #873 > > -00:00:40 v #874 > > "abc\ndef\nghi" -00:00:40 v #875 > > |> parse_ (skip_any_string_ 5 >>.$ p_char_ 'a') -00:00:40 v #876 > > |> resultm.unwrap_err -00:00:40 v #877 > > |> sm'.obj_to_string -00:00:40 v #878 > > |> sm'.replace "\r\n" "\n" -00:00:40 v #879 > > |> _assert_eq "(Error in Ln: 2 Col: 2\ndef\n ^\nExpecting: 'a'\n, Error in Ln: 2 -00:00:40 v #880 > > Col: 2\nExpecting: 'a'\n)" -00:00:40 v #881 > > -00:00:40 v #882 > > ── [ 549.60ms - stdout ] ─────────────────────────────────────────────────────── -00:00:40 v #883 > > │ __assert_eq / actual: "(Error in Ln: 2 Col: 2 -00:00:40 v #884 > > │ def -00:00:40 v #885 > > │ ^ -00:00:40 v #886 > > │ Expecting: 'a' -00:00:40 v #887 > > │ , Error in Ln: 2 Col: 2 -00:00:40 v #888 > > │ Expecting: 'a' -00:00:40 v #889 > > │ )" / expected: "(Error in Ln: 2 Col: 2 -00:00:40 v #890 > > │ def -00:00:40 v #891 > > │ ^ -00:00:40 v #892 > > │ Expecting: 'a' -00:00:40 v #893 > > │ , Error in Ln: 2 Col: 2 -00:00:40 v #894 > > │ Expecting: 'a' -00:00:40 v #895 > > │ )" -00:00:40 v #896 > > │ -00:00:40 v #897 > > -00:00:40 v #898 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:40 v #899 > > │ ### none_of -00:00:40 v #900 > > -00:00:40 v #901 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:40 v #902 > > inl none_of (chars : list char) : parser char = function -00:00:40 v #903 > > | "", s => -00:00:40 v #904 > > inl chars = chars |> listm'.box |> listm'.to_array' -00:00:40 v #905 > > backend_switch { -00:00:40 v #906 > > Fsharp = fun () => $'$"parsing.none_of / unexpected end of input -00:00:40 v #907 > > chars: %A{!chars} / s: %A{!s}"' : string -00:00:40 v #908 > > Python = fun () => $'f"parsing.none_of / unexpected end of input -00:00:40 v #909 > > chars: {!chars} / s: {!s}"' : string -00:00:40 v #910 > > } -00:00:40 v #911 > > |> Error -00:00:40 v #912 > > | x, s => -00:00:40 v #913 > > inl first_char = x |> sm'.index 0i32 -00:00:40 v #914 > > if chars |> listm'.exists' ((=) first_char) |> not then -00:00:40 v #915 > > Ok ( -00:00:40 v #916 > > first_char, -00:00:40 v #917 > > x |> sm'.range (am'.Start 1i32) (am'.End eval), -00:00:40 v #918 > > s |> update (first_char |> sm'.obj_to_string) -00:00:40 v #919 > > ) -00:00:40 v #920 > > else -00:00:40 v #921 > > inl chars = chars |> listm'.box |> listm'.to_array' -00:00:40 v #922 > > backend_switch { -00:00:40 v #923 > > Fsharp = fun () => $'$"parsing.none_of / unexpected char: -00:00:40 v #924 > > \'{!first_char}\' / chars: %A{!chars} / s: %A{!s}"' : string -00:00:40 v #925 > > Python = fun () => $'f"parsing.none_of / unexpected char: -00:00:40 v #926 > > \'{!first_char}\' / chars: {!chars} / s: {!s}"' : string -00:00:40 v #927 > > } -00:00:40 v #928 > > |> Error -00:00:41 v #929 > > -00:00:41 v #930 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:41 v #931 > > //// test -00:00:41 v #932 > > ///! fsharp -00:00:41 v #933 > > ///! cuda -00:00:41 v #934 > > ///! typescript -00:00:41 v #935 > > -00:00:41 v #936 > > "abc" -00:00:41 v #937 > > |> parse (none_of [['a'; 'b'; 'c']]) -00:00:41 v #938 > > |> _assert_eq ( -00:00:41 v #939 > > backend_switch { -00:00:41 v #940 > > Fsharp = fun () => -00:00:41 v #941 > > run_target function -00:00:41 v #942 > > | TypeScript _ => fun () => "parsing.none_of / unexpected char: -00:00:41 v #943 > > \'a\' / chars: a,b,c / s: ,1,1" : string -00:00:41 v #944 > > | _ => fun () => join "parsing.none_of / unexpected char: \'a\' -00:00:41 v #945 > > chars: [[|'a'; 'b'; 'c'|]] / s: struct (, 1, 1)" : string -00:00:41 v #946 > > Python = fun () => "parsing.none_of / unexpected char: \'a\' / chars: -00:00:41 v #947 > > [['a' 'b' 'c']] / s: (, 1, 1)" : string -00:00:41 v #948 > > } -00:00:41 v #949 > > |> Error -00:00:41 v #950 > > ) -00:00:41 v #951 > > -00:00:41 v #952 > > "def" -00:00:41 v #953 > > |> parse (none_of [['a'; 'b'; 'c']]) -00:00:41 v #954 > > |> resultm.get -00:00:41 v #955 > > |> sm'.format_debug -00:00:41 v #956 > > |> _assert_eq ( -00:00:41 v #957 > > ('d', "ef", { line_text = "d" |> sm'.string_builder; position = { line = -00:00:41 v #958 > > 1i32; col = 2i32 } }) -00:00:41 v #959 > > |> sm'.format_debug -00:00:41 v #960 > > ) -00:00:43 v #961 > > -00:00:43 v #962 > > ── [ 2.28s - return value ] ──────────────────────────────────────────────────── -00:00:43 v #963 > > │ -00:00:43 v #964 > > │ .py output (Cuda): -00:00:43 v #965 > > │ __assert_eq / actual: US0_1(v0="parsing.none_of / unexpected -00:00:43 v #966 > > char: 'a' / chars: ['a' 'b' 'c'] / s: (, 1, 1)") / expected: -00:00:43 v #967 > > US0_1(v0="parsing.none_of / unexpected char: 'a' / chars: ['a' 'b' 'c'] / s: (, -00:00:43 v #968 > > 1, 1)") -00:00:43 v #969 > > │ __assert_eq / actual: ('d', 'ef', d, 1, 2) / expected: ('d', -00:00:43 v #970 > > 'ef', d, 1, 2) -00:00:43 v #971 > > │ -00:00:43 v #972 > > │ -00:00:43 v #973 > > │ .ts output: -00:00:43 v #974 > > │ __assert_eq / actual: US0_1 (parsing.none_of / unexpected -00:00:43 v #975 > > char: 'a' / chars: a,b,c / s: ,1,1) / expected: US0_1 (parsing.none_of -00:00:43 v #976 > > unexpected char: 'a' / chars: a,b,c / s: ,1,1) -00:00:43 v #977 > > │ __assert_eq / actual: d,ef,d,1,2 / expected: d,ef,d,1,2 -00:00:43 v #978 > > │ -00:00:43 v #979 > > │ -00:00:43 v #980 > > │ -00:00:43 v #981 > > -00:00:43 v #982 > > ── [ 2.28s - stdout ] ────────────────────────────────────────────────────────── -00:00:43 v #983 > > │ .fsx output: -00:00:43 v #984 > > │ __assert_eq / actual: US0_1 -00:00:43 v #985 > > │ "parsing.none_of / unexpected char: 'a' / chars: [|'a'; -00:00:43 v #986 > > 'b'; 'c'|] / s: struct (, 1, 1)" / expected: US0_1 -00:00:43 v #987 > > │ "parsing.none_of / unexpected char: 'a' / chars: [|'a'; -00:00:43 v #988 > > 'b'; 'c'|] / s: struct (, 1, 1)" -00:00:43 v #989 > > │ __assert_eq / actual: "struct ('d', "ef", d, 1, 2)" -00:00:43 v #990 > > expected: "struct ('d', "ef", d, 1, 2)" -00:00:43 v #991 > > │ -00:00:43 v #992 > > -00:00:43 v #993 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:43 v #994 > > //// test -00:00:43 v #995 > > -00:00:43 v #996 > > "abc" -00:00:43 v #997 > > |> parse_ (none_of_ [['a'; 'b'; 'c']]) -00:00:43 v #998 > > |> resultm.unwrap_err -00:00:43 v #999 > > |> sm'.obj_to_string -00:00:43 v #1000 > > |> sm'.replace "\r\n" "\n" -00:00:43 v #1001 > > |> _assert_eq ($'"(Error in Ln: 1 Col: 1\nabc\n^\nExpecting: any char not in -00:00:43 v #1002 > > ‘abc’\n, Error in Ln: 1 Col: 1\nExpecting: any char not in ‘abc’\n)"') -00:00:43 v #1003 > > -00:00:43 v #1004 > > "def" -00:00:43 v #1005 > > |> parse_ (none_of_ [['a'; 'b'; 'c']]) -00:00:43 v #1006 > > |> resultm.get -00:00:43 v #1007 > > |> sm'.obj_to_string -00:00:43 v #1008 > > |> _assert_eq' (('d', ($'FParsec.Position (null, 0, 1, 2)' : position_)) |> -00:00:43 v #1009 > > sm'.obj_to_string) -00:00:43 v #1010 > > -00:00:43 v #1011 > > ── [ 573.19ms - stdout ] ─────────────────────────────────────────────────────── -00:00:43 v #1012 > > │ __assert_eq / actual: "(Error in Ln: 1 Col: 1 -00:00:43 v #1013 > > │ abc -00:00:43 v #1014 > > │ ^ -00:00:43 v #1015 > > │ Expecting: any char not in ‘abc’ -00:00:43 v #1016 > > │ , Error in Ln: 1 Col: 1 -00:00:43 v #1017 > > │ Expecting: any char not in ‘abc’ -00:00:43 v #1018 > > │ )" / expected: "(Error in Ln: 1 Col: 1 -00:00:43 v #1019 > > │ abc -00:00:43 v #1020 > > │ ^ -00:00:43 v #1021 > > │ Expecting: any char not in ‘abc’ -00:00:43 v #1022 > > │ , Error in Ln: 1 Col: 1 -00:00:43 v #1023 > > │ Expecting: any char not in ‘abc’ -00:00:43 v #1024 > > │ )" -00:00:43 v #1025 > > │ __assert_eq' / actual: "(d, (Ln: 1, Col: 2))" / expected: -00:00:43 v #1026 > > "(d, (Ln: 1, Col: 2))" -00:00:43 v #1027 > > │ -00:00:43 v #1028 > > -00:00:43 v #1029 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:43 v #1030 > > │ ### (<|>) -00:00:43 v #1031 > > -00:00:43 v #1032 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:43 v #1033 > > inl (<|>) forall t. (a : parser t) (b : parser t) : parser t = fun input, s => -00:00:43 v #1034 > > match a (input, s) with -00:00:43 v #1035 > > | Ok _ as result => result -00:00:43 v #1036 > > | Error _ => b (input, s) -00:00:44 v #1037 > > -00:00:44 v #1038 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:44 v #1039 > > //// test -00:00:44 v #1040 > > ///! fsharp -00:00:44 v #1041 > > ///! cuda -00:00:44 v #1042 > > ///! typescript -00:00:44 v #1043 > > -00:00:44 v #1044 > > "abc" -00:00:44 v #1045 > > |> parse (p_char 'a' <|> p_char 'b') -00:00:44 v #1046 > > |> resultm.get -00:00:44 v #1047 > > |> sm'.format_debug -00:00:44 v #1048 > > |> _assert_eq ( -00:00:44 v #1049 > > ('a', "bc", { line_text = "a" |> sm'.string_builder; position = { line = -00:00:44 v #1050 > > 1i32; col = 2i32 } }) -00:00:44 v #1051 > > |> sm'.format_debug -00:00:44 v #1052 > > ) -00:00:44 v #1053 > > -00:00:44 v #1054 > > "cba" -00:00:44 v #1055 > > |> parse (p_char 'a' <|> p_char 'b') -00:00:44 v #1056 > > |> _assert_eq (Error "parsing.p_char / expected: 'b' / line: 1 / col: -00:00:44 v #1057 > > 1\ncba\n^\n") -00:00:46 v #1058 > > -00:00:46 v #1059 > > ── [ 2.26s - return value ] ──────────────────────────────────────────────────── -00:00:46 v #1060 > > │ -00:00:46 v #1061 > > │ .py output (Cuda): -00:00:46 v #1062 > > │ __assert_eq / actual: ('a', 'bc', a, 1, 2) / expected: ('a', -00:00:46 v #1063 > > 'bc', a, 1, 2) -00:00:46 v #1064 > > │ __assert_eq / actual: US0_1(v0="parsing.p_char / expected: -00:00:46 v #1065 > > 'b' / line: 1 / col: 1\ncba\n^\n") / expected: US0_1(v0="parsing.p_char -00:00:46 v #1066 > > expected: 'b' / line: 1 / col: 1\ncba\n^\n") -00:00:46 v #1067 > > │ -00:00:46 v #1068 > > │ -00:00:46 v #1069 > > │ .ts output: -00:00:46 v #1070 > > │ __assert_eq / actual: a,bc,a,1,2 / expected: a,bc,a,1,2 -00:00:46 v #1071 > > │ __assert_eq / actual: US0_1 (parsing.p_char / expected: 'b' -00:00:46 v #1072 > > line: 1 / col: 1 -00:00:46 v #1073 > > │ cba -00:00:46 v #1074 > > │ ^ -00:00:46 v #1075 > > │ ) / expected: US0_1 (parsing.p_char / expected: 'b' / line: 1 -00:00:46 v #1076 > > / col: 1 -00:00:46 v #1077 > > │ cba -00:00:46 v #1078 > > │ ^ -00:00:46 v #1079 > > │ ) -00:00:46 v #1080 > > │ -00:00:46 v #1081 > > │ -00:00:46 v #1082 > > │ -00:00:46 v #1083 > > -00:00:46 v #1084 > > ── [ 2.26s - stdout ] ────────────────────────────────────────────────────────── -00:00:46 v #1085 > > │ .fsx output: -00:00:46 v #1086 > > │ __assert_eq / actual: "struct ('a', "bc", a, 1, 2)" -00:00:46 v #1087 > > expected: "struct ('a', "bc", a, 1, 2)" -00:00:46 v #1088 > > │ __assert_eq / actual: US0_1 "parsing.p_char / expected: 'b' -00:00:46 v #1089 > > line: 1 / col: 1 -00:00:46 v #1090 > > │ cba -00:00:46 v #1091 > > │ ^ -00:00:46 v #1092 > > │ " / expected: US0_1 "parsing.p_char / expected: 'b' / line: 1 -00:00:46 v #1093 > > / col: 1 -00:00:46 v #1094 > > │ cba -00:00:46 v #1095 > > │ ^ -00:00:46 v #1096 > > │ " -00:00:46 v #1097 > > │ -00:00:46 v #1098 > > -00:00:46 v #1099 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:46 v #1100 > > │ ### (|>>) -00:00:46 v #1101 > > -00:00:46 v #1102 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:46 v #1103 > > inl (|>>) p f : parser _ = -00:00:46 v #1104 > > p >> resultm.map fun result, rest => -00:00:46 v #1105 > > f result, rest -00:00:47 v #1106 > > -00:00:47 v #1107 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:47 v #1108 > > //// test -00:00:47 v #1109 > > ///! fsharp -00:00:47 v #1110 > > ///! cuda -00:00:47 v #1111 > > ///! typescript -00:00:47 v #1112 > > -00:00:47 v #1113 > > "abc" -00:00:47 v #1114 > > |> parse (p_char 'a' |>> sm'.char_to_upper) -00:00:47 v #1115 > > |> resultm.get -00:00:47 v #1116 > > |> sm'.format_debug -00:00:47 v #1117 > > |> _assert_eq ( -00:00:47 v #1118 > > ('A', "bc", { line_text = "a" |> sm'.string_builder; position = { line = -00:00:47 v #1119 > > 1i32; col = 2i32 } }) -00:00:47 v #1120 > > |> sm'.format_debug -00:00:47 v #1121 > > ) -00:00:49 v #1122 > > -00:00:49 v #1123 > > ── [ 2.14s - return value ] ──────────────────────────────────────────────────── -00:00:49 v #1124 > > │ .py output (Cuda): -00:00:49 v #1125 > > │ __assert_eq / actual: ('A', 'bc', a, 1, 2) / expected: ('A', -00:00:49 v #1126 > > 'bc', a, 1, 2) -00:00:49 v #1127 > > │ -00:00:49 v #1128 > > │ .ts output: -00:00:49 v #1129 > > │ __assert_eq / actual: A,bc,a,1,2 / expected: A,bc,a,1,2 -00:00:49 v #1130 > > │ -00:00:49 v #1131 > > │ -00:00:49 v #1132 > > -00:00:49 v #1133 > > ── [ 2.14s - stdout ] ────────────────────────────────────────────────────────── -00:00:49 v #1134 > > │ .fsx output: -00:00:49 v #1135 > > │ __assert_eq / actual: "struct ('A', "bc", a, 1, 2)" -00:00:49 v #1136 > > expected: "struct ('A', "bc", a, 1, 2)" -00:00:49 v #1137 > > │ -00:00:49 v #1138 > > -00:00:49 v #1139 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:49 v #1140 > > │ ### many -00:00:49 v #1141 > > -00:00:49 v #1142 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:49 v #1143 > > inl many p : parser (list _) = fun input => -00:00:49 v #1144 > > let rec loop acc input = -00:00:49 v #1145 > > match p input with -00:00:49 v #1146 > > | Ok (result, rest) => loop (result :: acc) rest -00:00:49 v #1147 > > | Error _ => Ok (acc |> listm.rev, input) -00:00:49 v #1148 > > loop [[]] input -00:00:49 v #1149 > > -00:00:49 v #1150 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:49 v #1151 > > //// test -00:00:49 v #1152 > > ///! fsharp -00:00:49 v #1153 > > ///! cuda -00:00:49 v #1154 > > ///! typescript -00:00:49 v #1155 > > -00:00:49 v #1156 > > "aaabbc" -00:00:49 v #1157 > > |> parse (many (p_char 'a' <|> p_char 'b')) -00:00:49 v #1158 > > |> resultm.get -00:00:49 v #1159 > > |> sm'.format_debug -00:00:49 v #1160 > > |> _assert_eq ( -00:00:49 v #1161 > > ( -00:00:49 v #1162 > > [['a'; 'a'; 'a'; 'b'; 'b']], -00:00:49 v #1163 > > "c", -00:00:49 v #1164 > > { line_text = "aaabb" |> sm'.string_builder; position = { line = 1i32; -00:00:49 v #1165 > > col = 6i32 } } -00:00:49 v #1166 > > ) -00:00:49 v #1167 > > |> sm'.format_debug -00:00:49 v #1168 > > ) -00:00:51 v #1169 > > -00:00:51 v #1170 > > ── [ 2.21s - return value ] ──────────────────────────────────────────────────── -00:00:51 v #1171 > > │ .py output (Cuda): -00:00:51 v #1172 > > │ __assert_eq / actual: (UH0_1(v0='a', v1=UH0_1(v0='a', -00:00:51 v #1173 > > v1=UH0_1(v0='a', v1=UH0_1(v0='b', v1=UH0_1(v0='b', v1=UH0_0()))))), 'c', aaabb, -00:00:51 v #1174 > > 1, 6) / expected: (UH0_1(v0='a', v1=UH0_1(v0='a', v1=UH0_1(v0='a', -00:00:51 v #1175 > > v1=UH0_1(v0='b', v1=UH0_1(v0='b', v1=UH0_0()))))), 'c', aaabb, 1, 6) -00:00:51 v #1176 > > │ -00:00:51 v #1177 > > │ .ts output: -00:00:51 v #1178 > > │ __assert_eq / actual: UH0_1 (a, UH0_1 (a, UH0_1 (a, UH0_1 (b, -00:00:51 v #1179 > > UH0_1 (b, UH0_0))))),c,aaabb,1,6 / expected: UH0_1 (a, UH0_1 (a, UH0_1 (a, UH0_1 -00:00:51 v #1180 > > (b, UH0_1 (b, UH0_0))))),c,aaabb,1,6 -00:00:51 v #1181 > > │ -00:00:51 v #1182 > > │ -00:00:51 v #1183 > > -00:00:51 v #1184 > > ── [ 2.22s - stdout ] ────────────────────────────────────────────────────────── -00:00:51 v #1185 > > │ .fsx output: -00:00:51 v #1186 > > │ __assert_eq / actual: "struct (UH0_1 ('a', UH0_1 ('a', UH0_1 -00:00:51 v #1187 > > ('a', UH0_1 ('b', UH0_1 ('b', UH0_0))))), -00:00:51 v #1188 > > │ "c", aaabb, 1, 6)" / expected: "struct (UH0_1 ('a', -00:00:51 v #1189 > > UH0_1 ('a', UH0_1 ('a', UH0_1 ('b', UH0_1 ('b', UH0_0))))), -00:00:51 v #1190 > > │ "c", aaabb, 1, 6)" -00:00:51 v #1191 > > │ -00:00:51 v #1192 > > -00:00:51 v #1193 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:51 v #1194 > > │ ### many1_chars -00:00:51 v #1195 > > -00:00:51 v #1196 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:51 v #1197 > > inl many1_chars p : parser string = -00:00:51 v #1198 > > p >> resultm.map fun first_result, rest => -00:00:51 v #1199 > > let rec loop acc input = -00:00:51 v #1200 > > match p input with -00:00:51 v #1201 > > | Ok (result, rest) => loop (acc +. sm'.obj_to_string result) rest -00:00:51 v #1202 > > | Error _ => acc, input -00:00:51 v #1203 > > loop (first_result |> sm'.obj_to_string) rest -00:00:52 v #1204 > > -00:00:52 v #1205 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:52 v #1206 > > //// test -00:00:52 v #1207 > > ///! fsharp -00:00:52 v #1208 > > ///! cuda -00:00:52 v #1209 > > ///! typescript -00:00:52 v #1210 > > -00:00:52 v #1211 > > "aaabbc" -00:00:52 v #1212 > > |> parse (many1_chars (p_char 'a' <|> p_char 'b')) -00:00:52 v #1213 > > |> resultm.get -00:00:52 v #1214 > > |> sm'.format_debug -00:00:52 v #1215 > > |> _assert_eq ( -00:00:52 v #1216 > > ("aaabb", "c", { line_text = "aaabb" |> sm'.string_builder; position = { -00:00:52 v #1217 > > line = 1i32; col = 6i32 } }) -00:00:52 v #1218 > > |> sm'.format_debug -00:00:52 v #1219 > > ) -00:00:54 v #1220 > > -00:00:54 v #1221 > > ── [ 2.19s - return value ] ──────────────────────────────────────────────────── -00:00:54 v #1222 > > │ .py output (Cuda): -00:00:54 v #1223 > > │ __assert_eq / actual: ('aaabb', 'c', aaabb, 1, 6) / expected: -00:00:54 v #1224 > > ('aaabb', 'c', aaabb, 1, 6) -00:00:54 v #1225 > > │ -00:00:54 v #1226 > > │ .ts output: -00:00:54 v #1227 > > │ __assert_eq / actual: aaabb,c,aaabb,1,6 / expected: -00:00:54 v #1228 > > aaabb,c,aaabb,1,6 -00:00:54 v #1229 > > │ -00:00:54 v #1230 > > │ -00:00:54 v #1231 > > -00:00:54 v #1232 > > ── [ 2.19s - stdout ] ────────────────────────────────────────────────────────── -00:00:54 v #1233 > > │ .fsx output: -00:00:54 v #1234 > > │ __assert_eq / actual: "struct ("aaabb", "c", aaabb, 1, 6)" -00:00:54 v #1235 > > expected: "struct ("aaabb", "c", aaabb, 1, 6)" -00:00:54 v #1236 > > │ -00:00:54 v #1237 > > -00:00:54 v #1238 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:54 v #1239 > > │ ### many_chars -00:00:54 v #1240 > > -00:00:54 v #1241 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:54 v #1242 > > inl many_chars p : parser string = fun input => -00:00:54 v #1243 > > match many1_chars p input with -00:00:54 v #1244 > > | Ok (result, rest) => Ok (result, rest) -00:00:54 v #1245 > > | Error e => Ok ("", input) -00:00:55 v #1246 > > -00:00:55 v #1247 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:55 v #1248 > > │ ### many_chars_till -00:00:55 v #1249 > > -00:00:55 v #1250 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:55 v #1251 > > inl many_chars_till p end_p : parser string = fun input => -00:00:55 v #1252 > > match end_p input with -00:00:55 v #1253 > > | Ok _ => Ok ("", input) -00:00:55 v #1254 > > | Error _ => many_chars p input -00:00:55 v #1255 > > -00:00:55 v #1256 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:55 v #1257 > > │ ### many1 -00:00:55 v #1258 > > -00:00:55 v #1259 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:55 v #1260 > > inl many1 p : parser (list _) = -00:00:55 v #1261 > > p >> resultm.map fun first_result, rest => -00:00:55 v #1262 > > let rec loop acc input = -00:00:55 v #1263 > > match p input with -00:00:55 v #1264 > > | Ok (result, rest) => loop (result :: acc) rest -00:00:55 v #1265 > > | Error _ => acc |> listm.rev, input -00:00:55 v #1266 > > loop [[ first_result ]] rest -00:00:56 v #1267 > > -00:00:56 v #1268 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:56 v #1269 > > //// test -00:00:56 v #1270 > > ///! fsharp -00:00:56 v #1271 > > ///! cuda -00:00:56 v #1272 > > ///! typescript -00:00:56 v #1273 > > -00:00:56 v #1274 > > "aaabbc" -00:00:56 v #1275 > > |> parse (many1 (p_char 'a' <|> p_char 'b')) -00:00:56 v #1276 > > |> resultm.get -00:00:56 v #1277 > > |> sm'.format_debug -00:00:56 v #1278 > > |> _assert_eq ( -00:00:56 v #1279 > > ([['a'; 'a'; 'a'; 'b'; 'b']], "c", { line_text = "aaabb" |> -00:00:56 v #1280 > > sm'.string_builder; position = { line = 1i32; col = 6i32 } }) -00:00:56 v #1281 > > |> sm'.format_debug -00:00:56 v #1282 > > ) -00:00:56 v #1283 > > -00:00:56 v #1284 > > "bcc" -00:00:56 v #1285 > > |> parse (many1 (p_char 'a' <|> p_char 'b')) -00:00:56 v #1286 > > |> resultm.get -00:00:56 v #1287 > > |> sm'.format_debug -00:00:56 v #1288 > > |> _assert_eq ( -00:00:56 v #1289 > > ([['b']], "cc", { line_text = "b" |> sm'.string_builder; position = { line = -00:00:56 v #1290 > > 1i32; col = 2i32 } }) -00:00:56 v #1291 > > |> sm'.format_debug -00:00:56 v #1292 > > ) -00:00:56 v #1293 > > -00:00:56 v #1294 > > "cba" -00:00:56 v #1295 > > |> parse (many1 (p_char 'a' <|> p_char 'b')) -00:00:56 v #1296 > > |> _assert_eq (Error "parsing.p_char / expected: 'b' / line: 1 / col: -00:00:56 v #1297 > > 1\ncba\n^\n") -00:00:58 v #1298 > > -00:00:58 v #1299 > > ── [ 2.45s - return value ] ──────────────────────────────────────────────────── -00:00:58 v #1300 > > │ -00:00:58 v #1301 > > │ .py output (Cuda): -00:00:58 v #1302 > > │ __assert_eq / actual: (UH0_1(v0='a', v1=UH0_1(v0='a', -00:00:58 v #1303 > > v1=UH0_1(v0='a', v1=UH0_1(v0='b', v1=UH0_1(v0='b', v1=UH0_0()))))), 'c', aaabb, -00:00:58 v #1304 > > 1, 6) / expected: (UH0_1(v0='a', v1=UH0_1(v0='a', v1=UH0_1(v0='a', -00:00:58 v #1305 > > v1=UH0_1(v0='b', v1=UH0_1(v0='b', v1=UH0_0()))))), 'c', aaabb, 1, 6) -00:00:58 v #1306 > > │ __assert_eq / actual: (UH0_1(v0='b', v1=UH0_0()), 'cc', b, 1, -00:00:58 v #1307 > > 2) / expected: (UH0_1(v0='b', v1=UH0_0()), 'cc', b, 1, 2) -00:00:58 v #1308 > > │ __assert_eq / actual: US1_1(v0="parsing.p_char / expected: -00:00:58 v #1309 > > 'b' / line: 1 / col: 1\ncba\n^\n") / expected: US1_1(v0="parsing.p_char -00:00:58 v #1310 > > expected: 'b' / line: 1 / col: 1\ncba\n^\n") -00:00:58 v #1311 > > │ -00:00:58 v #1312 > > │ -00:00:58 v #1313 > > │ .ts output: -00:00:58 v #1314 > > │ __assert_eq / actual: UH0_1 (a, UH0_1 (a, UH0_1 (a, UH0_1 (b, -00:00:58 v #1315 > > UH0_1 (b, UH0_0))))),c,aaabb,1,6 / expected: UH0_1 (a, UH0_1 (a, UH0_1 (a, UH0_1 -00:00:58 v #1316 > > (b, UH0_1 (b, UH0_0))))),c,aaabb,1,6 -00:00:58 v #1317 > > │ __assert_eq / actual: UH0_1 (b, UH0_0),cc,b,1,2 / expected: -00:00:58 v #1318 > > UH0_1 (b, UH0_0),cc,b,1,2 -00:00:58 v #1319 > > │ __assert_eq / actual: US1_1 (parsing.p_char / expected: 'b' -00:00:58 v #1320 > > line: 1 / col: 1 -00:00:58 v #1321 > > │ cba -00:00:58 v #1322 > > │ ^ -00:00:58 v #1323 > > │ ) / expected: US1_1 (parsing.p_char / expected: 'b' / line: 1 -00:00:58 v #1324 > > / col: 1 -00:00:58 v #1325 > > │ cba -00:00:58 v #1326 > > │ ^ -00:00:58 v #1327 > > │ ) -00:00:58 v #1328 > > │ -00:00:58 v #1329 > > │ -00:00:58 v #1330 > > │ -00:00:58 v #1331 > > -00:00:58 v #1332 > > ── [ 2.45s - stdout ] ────────────────────────────────────────────────────────── -00:00:58 v #1333 > > │ .fsx output: -00:00:58 v #1334 > > │ __assert_eq / actual: "struct (UH0_1 ('a', UH0_1 ('a', UH0_1 -00:00:58 v #1335 > > ('a', UH0_1 ('b', UH0_1 ('b', UH0_0))))), -00:00:58 v #1336 > > │ "c", aaabb, 1, 6)" / expected: "struct (UH0_1 ('a', -00:00:58 v #1337 > > UH0_1 ('a', UH0_1 ('a', UH0_1 ('b', UH0_1 ('b', UH0_0))))), -00:00:58 v #1338 > > │ "c", aaabb, 1, 6)" -00:00:58 v #1339 > > │ __assert_eq / actual: "struct (UH0_1 ('b', UH0_0), "cc", b, -00:00:58 v #1340 > > 1, 2)" / expected: "struct (UH0_1 ('b', UH0_0), "cc", b, 1, 2)" -00:00:58 v #1341 > > │ __assert_eq / actual: US1_1 "parsing.p_char / expected: 'b' -00:00:58 v #1342 > > line: 1 / col: 1 -00:00:58 v #1343 > > │ cba -00:00:58 v #1344 > > │ ^ -00:00:58 v #1345 > > │ " / expected: US1_1 "parsing.p_char / expected: 'b' / line: 1 -00:00:58 v #1346 > > / col: 1 -00:00:58 v #1347 > > │ cba -00:00:58 v #1348 > > │ ^ -00:00:58 v #1349 > > │ " -00:00:58 v #1350 > > │ -00:00:58 v #1351 > > -00:00:58 v #1352 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:58 v #1353 > > │ ### many1_strings -00:00:58 v #1354 > > -00:00:58 v #1355 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:58 v #1356 > > inl many1_strings p : parser string = -00:00:58 v #1357 > > many1 p >> resultm.map fun results, rest => -00:00:58 v #1358 > > results -00:00:58 v #1359 > > |> listm.map sm'.obj_to_string -00:00:58 v #1360 > > |> listm'.box -00:00:58 v #1361 > > |> seq.of_list' -00:00:58 v #1362 > > |> sm'.concat "", -00:00:58 v #1363 > > rest -00:00:59 v #1364 > > -00:00:59 v #1365 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:59 v #1366 > > //// test -00:00:59 v #1367 > > ///! fsharp -00:00:59 v #1368 > > ///! cuda -00:00:59 v #1369 > > ///! typescript -00:00:59 v #1370 > > -00:00:59 v #1371 > > "aaabbc" -00:00:59 v #1372 > > |> parse (many1_strings (p_char 'a' <|> p_char 'b')) -00:00:59 v #1373 > > |> resultm.get -00:00:59 v #1374 > > |> sm'.format_debug -00:00:59 v #1375 > > |> _assert_eq ( -00:00:59 v #1376 > > ("aaabb", "c", { line_text = "aaabb" |> sm'.string_builder; position = { -00:00:59 v #1377 > > line = 1i32; col = 6i32 } }) -00:00:59 v #1378 > > |> sm'.format_debug -00:00:59 v #1379 > > ) -00:01:01 v #1380 > > -00:01:01 v #1381 > > ── [ 2.36s - return value ] ──────────────────────────────────────────────────── -00:01:01 v #1382 > > │ .py output (Cuda): -00:01:01 v #1383 > > │ __assert_eq / actual: ('aaabb', 'c', aaabb, 1, 6) / expected: -00:01:01 v #1384 > > ('aaabb', 'c', aaabb, 1, 6) -00:01:01 v #1385 > > │ -00:01:01 v #1386 > > │ .ts output: -00:01:01 v #1387 > > │ __assert_eq / actual: aaabb,c,aaabb,1,6 / expected: -00:01:01 v #1388 > > aaabb,c,aaabb,1,6 -00:01:01 v #1389 > > │ -00:01:01 v #1390 > > │ -00:01:01 v #1391 > > -00:01:01 v #1392 > > ── [ 2.36s - stdout ] ────────────────────────────────────────────────────────── -00:01:01 v #1393 > > │ .fsx output: -00:01:01 v #1394 > > │ __assert_eq / actual: "struct ("aaabb", "c", aaabb, 1, 6)" -00:01:01 v #1395 > > expected: "struct ("aaabb", "c", aaabb, 1, 6)" -00:01:01 v #1396 > > │ -00:01:01 v #1397 > > -00:01:01 v #1398 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:01:01 v #1399 > > │ ### many_strings -00:01:01 v #1400 > > -00:01:01 v #1401 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:01 v #1402 > > inl many_strings p : parser string = fun input => -00:01:01 v #1403 > > match many p input with -00:01:01 v #1404 > > | Ok (results, rest) => -00:01:01 v #1405 > > Ok (results |> listm.map sm'.obj_to_string |> listm'.box |> seq.of_list' -00:01:01 v #1406 > > |> sm'.concat "", rest) -00:01:01 v #1407 > > | Error e => Ok ("", input) -00:01:01 v #1408 > > -00:01:01 v #1409 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:01:01 v #1410 > > │ ### choice -00:01:01 v #1411 > > -00:01:01 v #1412 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:01 v #1413 > > inl choice parsers : parser _ = fun input => -00:01:01 v #1414 > > let rec loop = function -00:01:01 v #1415 > > | [[]] => Error "parsing.choice / no parsers succeeded" -00:01:01 v #1416 > > | p :: ps => -00:01:01 v #1417 > > match p input with -00:01:01 v #1418 > > | Ok _ as result => result -00:01:01 v #1419 > > | Error _ => loop ps -00:01:01 v #1420 > > loop parsers -00:01:02 v #1421 > > -00:01:02 v #1422 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:02 v #1423 > > //// test -00:01:02 v #1424 > > ///! fsharp -00:01:02 v #1425 > > ///! cuda -00:01:02 v #1426 > > ///! typescript -00:01:02 v #1427 > > -00:01:02 v #1428 > > "bca" -00:01:02 v #1429 > > |> parse (choice [[ p_char 'a'; p_char 'b'; p_char 'c' ]]) -00:01:02 v #1430 > > |> resultm.get -00:01:02 v #1431 > > |> sm'.format_debug -00:01:02 v #1432 > > |> _assert_eq ( -00:01:02 v #1433 > > ('b', "ca", { line_text = "b" |> sm'.string_builder; position = { line = -00:01:02 v #1434 > > 1i32; col = 2i32 } }) -00:01:02 v #1435 > > |> sm'.format_debug -00:01:02 v #1436 > > ) -00:01:02 v #1437 > > -00:01:02 v #1438 > > "cba" -00:01:02 v #1439 > > |> parse (choice [[ p_char 'a'; p_char 'b'; p_char 'c' ]]) -00:01:02 v #1440 > > |> resultm.get -00:01:02 v #1441 > > |> sm'.format_debug -00:01:02 v #1442 > > |> _assert_eq ( -00:01:02 v #1443 > > ('c', "ba", { line_text = "c" |> sm'.string_builder; position = { line = -00:01:02 v #1444 > > 1i32; col = 2i32 } }) -00:01:02 v #1445 > > |> sm'.format_debug -00:01:02 v #1446 > > ) -00:01:04 v #1447 > > -00:01:04 v #1448 > > ── [ 2.26s - return value ] ──────────────────────────────────────────────────── -00:01:04 v #1449 > > │ -00:01:04 v #1450 > > │ .py output (Cuda): -00:01:04 v #1451 > > │ __assert_eq / actual: ('b', 'ca', b, 1, 2) / expected: ('b', -00:01:04 v #1452 > > 'ca', b, 1, 2) -00:01:04 v #1453 > > │ __assert_eq / actual: ('c', 'ba', c, 1, 2) / expected: ('c', -00:01:04 v #1454 > > 'ba', c, 1, 2) -00:01:04 v #1455 > > │ -00:01:04 v #1456 > > │ -00:01:04 v #1457 > > │ .ts output: -00:01:04 v #1458 > > │ __assert_eq / actual: b,ca,b,1,2 / expected: b,ca,b,1,2 -00:01:04 v #1459 > > │ __assert_eq / actual: c,ba,c,1,2 / expected: c,ba,c,1,2 -00:01:04 v #1460 > > │ -00:01:04 v #1461 > > │ -00:01:04 v #1462 > > │ -00:01:04 v #1463 > > -00:01:04 v #1464 > > ── [ 2.26s - stdout ] ────────────────────────────────────────────────────────── -00:01:04 v #1465 > > │ .fsx output: -00:01:04 v #1466 > > │ __assert_eq / actual: "struct ('b', "ca", b, 1, 2)" -00:01:04 v #1467 > > expected: "struct ('b', "ca", b, 1, 2)" -00:01:04 v #1468 > > │ __assert_eq / actual: "struct ('c', "ba", c, 1, 2)" -00:01:04 v #1469 > > expected: "struct ('c', "ba", c, 1, 2)" -00:01:04 v #1470 > > │ -00:01:04 v #1471 > > -00:01:04 v #1472 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:01:04 v #1473 > > │ ### between -00:01:04 v #1474 > > -00:01:04 v #1475 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:04 v #1476 > > inl between p_open p_close p_content : parser _ = fun input => -00:01:04 v #1477 > > match p_open input with -00:01:04 v #1478 > > | Ok (_, rest1) => -00:01:04 v #1479 > > match p_content rest1 with -00:01:04 v #1480 > > | Ok (result, rest2) => -00:01:04 v #1481 > > match p_close rest2 with -00:01:04 v #1482 > > | Ok (_, rest3) => Ok (result, rest3) -00:01:04 v #1483 > > | Error e => -00:01:04 v #1484 > > backend_switch { -00:01:04 v #1485 > > Fsharp = fun () => $'$"parsing.between / expected closing -00:01:04 v #1486 > > delimiter / e: %A{!e} / input: %A{!input} / rest1: %A{!rest1} / rest2: -00:01:04 v #1487 > > %A{!rest2}"' : string -00:01:04 v #1488 > > Python = fun () => $'f"parsing.between / expected closing -00:01:04 v #1489 > > delimiter / e: {!e} / input: {!input} / rest1: {!rest1} / rest2: {!rest2}"' : -00:01:04 v #1490 > > string -00:01:04 v #1491 > > } -00:01:04 v #1492 > > |> Error -00:01:04 v #1493 > > | Error _ => Error "parsing.between / expected content" -00:01:04 v #1494 > > | Error e => Error e -00:01:05 v #1495 > > -00:01:05 v #1496 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:05 v #1497 > > //// test -00:01:05 v #1498 > > -00:01:05 v #1499 > > "[[aaabb" -00:01:05 v #1500 > > |> parse_ (between_ (p_char_ '[[') (p_char_ ']]') (many1_chars_ (p_char_ 'a' -00:01:05 v #1501 > > <|>$ p_char_ 'b'))) -00:01:05 v #1502 > > |> resultm.unwrap_err -00:01:05 v #1503 > > |> sm'.format_debug -00:01:05 v #1504 > > -00:01:05 v #1505 > > ── [ 539.34ms - return value ] ───────────────────────────────────────────────── -00:01:05 v #1506 > > │ struct ("Error in Ln: 1 Col: 7 -00:01:05 v #1507 > > │ [aaabb -00:01:05 v #1508 > > │ ^ -00:01:05 v #1509 > > │ Note: The error occurred at the end of the input stream. -00:01:05 v #1510 > > │ Expecting: ']', 'a' or 'b' -00:01:05 v #1511 > > │ ", -00:01:05 v #1512 > > │ Error in Ln: 1 Col: 7 -00:01:05 v #1513 > > │ Expecting: ']', 'a' or 'b' -00:01:05 v #1514 > > │ ) -00:01:05 v #1515 > > -00:01:05 v #1516 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:05 v #1517 > > //// test -00:01:05 v #1518 > > ///! fsharp -00:01:05 v #1519 > > ///! cuda -00:01:05 v #1520 > > ///! typescript -00:01:05 v #1521 > > -00:01:05 v #1522 > > "[[aaabb]]" -00:01:05 v #1523 > > |> parse (between (p_char '[[') (p_char ']]') (many1_chars (p_char 'a' <|> -00:01:05 v #1524 > > p_char 'b'))) -00:01:05 v #1525 > > |> resultm.get -00:01:05 v #1526 > > |> sm'.format_debug -00:01:05 v #1527 > > |> _assert_eq ( -00:01:05 v #1528 > > ("aaabb", "", { line_text = "[[aaabb]]" |> sm'.string_builder; position = { -00:01:05 v #1529 > > line = 1i32; col = 8i32 } }) -00:01:05 v #1530 > > |> sm'.format_debug -00:01:05 v #1531 > > ) -00:01:05 v #1532 > > -00:01:05 v #1533 > > "[[aaabb" -00:01:05 v #1534 > > |> parse (between (p_char '[[') (p_char ']]') (many1_chars (p_char 'a' <|> -00:01:05 v #1535 > > p_char 'b'))) -00:01:05 v #1536 > > |> resultm.unwrap_err -00:01:05 v #1537 > > |> sm'.format_debug -00:01:05 v #1538 > > |> _assert_eq ( -00:01:05 v #1539 > > backend_switch { -00:01:05 v #1540 > > Fsharp = fun () => -00:01:05 v #1541 > > run_target function -00:01:05 v #1542 > > | TypeScript _ => fun () => "parsing.between / expected closing -00:01:05 v #1543 > > delimiter / e: parsing.p_char / unexpected end of input / c: ']]' / s: -00:01:05 v #1544 > > [[aaabb,1,7 / input: [[aaabb,[[aaabb,1,1 / rest1: aaabb,[[aaabb,1,2 / rest2: -00:01:05 v #1545 > > ,[[aaabb,1,7" : string -00:01:05 v #1546 > > | _ => fun () => join "\"parsing.between / expected closing -00:01:05 v #1547 > > delimiter / e: \"parsing.p_char / unexpected end of input / c: ']]' / s: struct -00:01:05 v #1548 > > ([[aaabb, 1, 7)\" / input: struct (\"[[aaabb\", [[aaabb, 1, 1) / rest1: struct -00:01:05 v #1549 > > (\"aaabb\", [[aaabb, 1, 2) / rest2: struct (\"\", [[aaabb, 1, 7)\"" : string -00:01:05 v #1550 > > Python = fun () => "parsing.between / expected closing delimiter / e: -00:01:05 v #1551 > > parsing.p_char / unexpected end of input / c: ']]' / s: ([[aaabb, 1, 7) / input: -00:01:05 v #1552 > > ('[[aaabb', [[aaabb, 1, 1) / rest1: ('aaabb', [[aaabb, 1, 2) / rest2: ('', -00:01:05 v #1553 > > [[aaabb, 1, 7)" : string -00:01:05 v #1554 > > } -00:01:05 v #1555 > > ) -00:01:08 v #1556 > > -00:01:08 v #1557 > > ── [ 2.47s - return value ] ──────────────────────────────────────────────────── -00:01:08 v #1558 > > │ -00:01:08 v #1559 > > │ .py output (Cuda): -00:01:08 v #1560 > > │ __assert_eq / actual: ('aaabb', '', [aaabb], 1, 8) -00:01:08 v #1561 > > expected: ('aaabb', '', [aaabb], 1, 8) -00:01:08 v #1562 > > │ __assert_eq / actual: parsing.between / expected closing -00:01:08 v #1563 > > delimiter / e: parsing.p_char / unexpected end of input / c: ']' / s: ([aaabb, -00:01:08 v #1564 > > 1, 7) / input: ('[aaabb', [aaabb, 1, 1) / rest1: ('aaabb', [aaabb, 1, 2) -00:01:08 v #1565 > > rest2: ('', [aaabb, 1, 7) / expected: parsing.between / expected closing -00:01:08 v #1566 > > delimiter / e: parsing.p_char / unexpected end of input / c: ']' / s: ([aaabb, -00:01:08 v #1567 > > 1, 7) / input: ('[aaabb', [aaabb, 1, 1) / rest1: ('aaabb', [aaabb, 1, 2) -00:01:08 v #1568 > > rest2: ('', [aaabb, 1, 7) -00:01:08 v #1569 > > │ -00:01:08 v #1570 > > │ -00:01:08 v #1571 > > │ .ts output: -00:01:08 v #1572 > > │ __assert_eq / actual: aaabb,,[aaabb],1,8 / expected: -00:01:08 v #1573 > > aaabb,,[aaabb],1,8 -00:01:08 v #1574 > > │ __assert_eq / actual: parsing.between / expected closing -00:01:08 v #1575 > > delimiter / e: parsing.p_char / unexpected end of input / c: ']' / s: [aaabb,1,7 -00:01:08 v #1576 > > / input: [aaabb,[aaabb,1,1 / rest1: aaabb,[aaabb,1,2 / rest2: ,[aaabb,1,7 -00:01:08 v #1577 > > expected: parsing.between / expected closing delimiter / e: parsing.p_char -00:01:08 v #1578 > > unexpected end of input / c: ']' / s: [aaabb,1,7 / input: [aaabb,[aaabb,1,1 -00:01:08 v #1579 > > rest1: aaabb,[aaabb,1,2 / rest2: ,[aaabb,1,7 -00:01:08 v #1580 > > │ -00:01:08 v #1581 > > │ -00:01:08 v #1582 > > │ -00:01:08 v #1583 > > -00:01:08 v #1584 > > ── [ 2.47s - stdout ] ────────────────────────────────────────────────────────── -00:01:08 v #1585 > > │ .fsx output: -00:01:08 v #1586 > > │ __assert_eq / actual: "struct ("aaabb", "", [aaabb], 1, 8)" -00:01:08 v #1587 > > expected: "struct ("aaabb", "", [aaabb], 1, 8)" -00:01:08 v #1588 > > │ __assert_eq / actual: ""parsing.between / expected closing -00:01:08 v #1589 > > delimiter / e: "parsing.p_char / unexpected end of input / c: ']' / s: struct -00:01:08 v #1590 > > ([aaabb, 1, 7)" / input: struct ("[aaabb", [aaabb, 1, 1) / rest1: struct -00:01:08 v #1591 > > ("aaabb", [aaabb, 1, 2) / rest2: struct ("", [aaabb, 1, 7)"" / expected: -00:01:08 v #1592 > > ""parsing.between / expected closing delimiter / e: "parsing.p_char / unexpected -00:01:08 v #1593 > > end of input / c: ']' / s: struct ([aaabb, 1, 7)" / input: struct ("[aaabb", -00:01:08 v #1594 > > [aaabb, 1, 1) / rest1: struct ("aaabb", [aaabb, 1, 2) / rest2: struct ("", -00:01:08 v #1595 > > [aaabb, 1, 7)"" -00:01:08 v #1596 > > │ -00:01:08 v #1597 > > -00:01:08 v #1598 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:01:08 v #1599 > > │ ### sep_by -00:01:08 v #1600 > > -00:01:08 v #1601 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:08 v #1602 > > inl sep_by p sep : parser (list _) = fun input, s => -00:01:08 v #1603 > > let rec loop acc input s = -00:01:08 v #1604 > > match p (input, s) with -00:01:08 v #1605 > > | Ok (result, rest, s) => -00:01:08 v #1606 > > match sep (rest, s) with -00:01:08 v #1607 > > | Ok (_, rest, s) => loop (result :: acc) rest s -00:01:08 v #1608 > > | Error _ => Ok ((result :: acc) |> listm.rev, rest, s) -00:01:08 v #1609 > > | Error _ => Ok (acc |> listm.rev, input, s) -00:01:08 v #1610 > > loop [[]] input s -00:01:08 v #1611 > > -00:01:08 v #1612 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:01:08 v #1613 > > │ ### span -00:01:08 v #1614 > > -00:01:08 v #1615 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:08 v #1616 > > inl span pred str = -00:01:08 v #1617 > > let rec loop i = -00:01:08 v #1618 > > if i >= sm'.length str -00:01:08 v #1619 > > then i -00:01:08 v #1620 > > elif pred (str |> sm'.index i) -00:01:08 v #1621 > > then loop (i + 1) -00:01:08 v #1622 > > else i -00:01:08 v #1623 > > loop 0 -00:01:09 v #1624 > > -00:01:09 v #1625 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:01:09 v #1626 > > │ ### spaces1 -00:01:09 v #1627 > > -00:01:09 v #1628 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:09 v #1629 > > inl spaces1 () : parser () = fun input, s => -00:01:09 v #1630 > > match input |> span ((=) ' ') with -00:01:09 v #1631 > > | 0i32 => Error "parsing.spaces1 / expected at least one space" -00:01:09 v #1632 > > | n => Ok ((), input |> sm'.range (am'.Start n) (am'.End eval), s) -00:01:09 v #1633 > > -00:01:09 v #1634 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:01:09 v #1635 > > │ ### spaces -00:01:09 v #1636 > > -00:01:09 v #1637 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:09 v #1638 > > inl spaces () : parser () = fun input, s => -00:01:09 v #1639 > > input -00:01:09 v #1640 > > |> span ((=) ' ') -00:01:09 v #1641 > > |> fun (n : i32) => -00:01:09 v #1642 > > Ok ((), input |> sm'.range (am'.Start n) (am'.End eval), s) -00:01:10 v #1643 > > -00:01:10 v #1644 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:01:10 v #1645 > > │ ### p_digit -00:01:10 v #1646 > > -00:01:10 v #1647 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:10 v #1648 > > inl p_digit () : parser char = fun input, s => -00:01:10 v #1649 > > match input |> sm'.index 0i32 with -00:01:10 v #1650 > > | ('0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9') as c => -00:01:10 v #1651 > > Ok (c, input |> sm'.range (am'.Start 1i32) (am'.End eval), s) -00:01:10 v #1652 > > | c => -00:01:10 v #1653 > > backend_switch { -00:01:10 v #1654 > > Fsharp = fun () => $'$"parsing.p_digit / unexpected char: {!c}"' : -00:01:10 v #1655 > > string -00:01:10 v #1656 > > Python = fun () => $'f"parsing.p_digit / unexpected char: {!c}"' : -00:01:10 v #1657 > > string -00:01:10 v #1658 > > } -00:01:10 v #1659 > > |> Error -00:01:10 v #1660 > > -00:01:10 v #1661 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:10 v #1662 > > //// test -00:01:10 v #1663 > > ///! fsharp -00:01:10 v #1664 > > ///! cuda -00:01:10 v #1665 > > ///! typescript -00:01:10 v #1666 > > -00:01:10 v #1667 > > "1 2 3" -00:01:10 v #1668 > > |> parse (sep_by (p_digit ()) (spaces1 ())) -00:01:10 v #1669 > > |> resultm.get -00:01:10 v #1670 > > |> sm'.format_debug -00:01:10 v #1671 > > |> _assert_eq ( -00:01:10 v #1672 > > ([['1'; '2'; '3']], "", { line_text = "" |> sm'.string_builder; position = { -00:01:10 v #1673 > > col = 1i32; line = 1i32 } }) -00:01:10 v #1674 > > |> sm'.format_debug -00:01:10 v #1675 > > ) -00:01:12 v #1676 > > -00:01:12 v #1677 > > ── [ 2.17s - return value ] ──────────────────────────────────────────────────── -00:01:12 v #1678 > > │ .py output (Cuda): -00:01:12 v #1679 > > │ __assert_eq / actual: (UH0_1(v0='1', v1=UH0_1(v0='2', -00:01:12 v #1680 > > v1=UH0_1(v0='3', v1=UH0_0()))), '', , 1, 1) / expected: (UH0_1(v0='1', -00:01:12 v #1681 > > v1=UH0_1(v0='2', v1=UH0_1(v0='3', v1=UH0_0()))), '', , 1, 1) -00:01:12 v #1682 > > │ -00:01:12 v #1683 > > │ .ts output: -00:01:12 v #1684 > > │ __assert_eq / actual: UH0_1 (1, UH0_1 (2, UH0_1 (3, -00:01:12 v #1685 > > UH0_0))),,,1,1 / expected: UH0_1 (1, UH0_1 (2, UH0_1 (3, UH0_0))),,,1,1 -00:01:12 v #1686 > > │ -00:01:12 v #1687 > > │ -00:01:12 v #1688 > > -00:01:12 v #1689 > > ── [ 2.17s - stdout ] ────────────────────────────────────────────────────────── -00:01:12 v #1690 > > │ .fsx output: -00:01:12 v #1691 > > │ __assert_eq / actual: "struct (UH0_1 ('1', UH0_1 ('2', UH0_1 -00:01:12 v #1692 > > ('3', UH0_0))), "", , 1, 1)" / expected: "struct (UH0_1 ('1', UH0_1 ('2', UH0_1 -00:01:12 v #1693 > > ('3', UH0_0))), "", , 1, 1)" -00:01:12 v #1694 > > │ -00:01:12 v #1695 > > -00:01:12 v #1696 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:12 v #1697 > > //// test -00:01:12 v #1698 > > ///! fsharp -00:01:12 v #1699 > > ///! cuda -00:01:12 v #1700 > > ///! typescript -00:01:12 v #1701 > > -00:01:12 v #1702 > > "1 a 2" -00:01:12 v #1703 > > |> parse (sep_by (p_digit ()) (spaces1 ())) -00:01:12 v #1704 > > |> resultm.get -00:01:12 v #1705 > > |> sm'.format_debug -00:01:12 v #1706 > > |> _assert_eq ( -00:01:12 v #1707 > > ([['1']], "a 2", { line_text = "" |> sm'.string_builder; position = { col = -00:01:12 v #1708 > > 1i32; line = 1i32 } }) -00:01:12 v #1709 > > |> sm'.format_debug -00:01:12 v #1710 > > ) -00:01:15 v #1711 > > -00:01:15 v #1712 > > ── [ 2.19s - return value ] ──────────────────────────────────────────────────── -00:01:15 v #1713 > > │ .py output (Cuda): -00:01:15 v #1714 > > │ __assert_eq / actual: (UH0_1(v0='1', v1=UH0_0()), 'a 2', , 1, -00:01:15 v #1715 > > 1) / expected: (UH0_1(v0='1', v1=UH0_0()), 'a 2', , 1, 1) -00:01:15 v #1716 > > │ -00:01:15 v #1717 > > │ .ts output: -00:01:15 v #1718 > > │ __assert_eq / actual: UH0_1 (1, UH0_0),a 2,,1,1 / expected: -00:01:15 v #1719 > > UH0_1 (1, UH0_0),a 2,,1,1 -00:01:15 v #1720 > > │ -00:01:15 v #1721 > > │ -00:01:15 v #1722 > > -00:01:15 v #1723 > > ── [ 2.19s - stdout ] ────────────────────────────────────────────────────────── -00:01:15 v #1724 > > │ .fsx output: -00:01:15 v #1725 > > │ __assert_eq / actual: "struct (UH0_1 ('1', UH0_0), "a 2", , -00:01:15 v #1726 > > 1, 1)" / expected: "struct (UH0_1 ('1', UH0_0), "a 2", , 1, 1)" -00:01:15 v #1727 > > │ -00:01:15 v #1728 > > -00:01:15 v #1729 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:01:15 v #1730 > > │ ### opt -00:01:15 v #1731 > > -00:01:15 v #1732 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:15 v #1733 > > inl opt p : parser (option _) = fun input, s => -00:01:15 v #1734 > > match p (input, s) with -00:01:15 v #1735 > > | Ok (result, rest, s) => Ok (Some result, rest, s) -00:01:15 v #1736 > > | Error _ => Ok (None, input, s) -00:01:15 v #1737 > > -00:01:15 v #1738 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:01:15 v #1739 > > │ ### rest_of_line -00:01:15 v #1740 > > -00:01:15 v #1741 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:15 v #1742 > > inl rest_of_line () : parser string = fun input, s => -00:01:15 v #1743 > > inl i : i32 = input |> span ((<>) '\n') -00:01:15 v #1744 > > inl result = input |> sm'.range (am'.Start i) (am'.End eval) -00:01:15 v #1745 > > Ok (result, result, s) -00:01:16 v #1746 > > -00:01:16 v #1747 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:01:16 v #1748 > > │ ### eof -00:01:16 v #1749 > > -00:01:16 v #1750 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:16 v #1751 > > inl eof () : parser () = fun input, s => -00:01:16 v #1752 > > if sm'.length input = 0i32 -00:01:16 v #1753 > > then Ok ((), input, s) -00:01:16 v #1754 > > else -00:01:16 v #1755 > > backend_switch { -00:01:16 v #1756 > > Fsharp = fun () => $'$"parsing.eof / expected end of input / input: -00:01:16 v #1757 > > %A{!input}"' : string -00:01:16 v #1758 > > Python = fun () => $'f"parsing.eof / expected end of input / input: -00:01:16 v #1759 > > {!input}"' : string -00:01:16 v #1760 > > } -00:01:16 v #1761 > > |> Error -00:01:16 v #1762 > 00:01:14 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 63624 } -00:01:16 v #1763 > 00:01:14 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/lib/spiral/parsing.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/lib/spiral/parsing.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:01:17 v #1764 > 00:01:16 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/lib/spiral/parsing.dib.ipynb to html -00:01:17 v #1765 > 00:01:16 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. -00:01:17 v #1766 > 00:01:16 v #7 ! validate(nb) -00:01:18 v #1767 > 00:01:16 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 -00:01:18 v #1768 > 00:01:16 v #9 ! return _pygments_highlight( -00:01:20 v #1769 > 00:01:18 v #10 ! [NbConvertApp] Writing 503656 bytes to c:\home\git\polyglot\lib\spiral\parsing.dib.html -00:01:20 v #1770 > 00:01:18 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 856 } -00:01:20 v #1771 > 00:01:18 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 856 } -00:01:20 v #1772 > 00:01:18 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/parsing.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/parsing.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:01:20 v #1773 > 00:01:18 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } -00:01:20 v #1774 > 00:01:18 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } -00:01:20 v #1775 > 00:01:18 d #16 spiral.run / dib / { exit_code = 0; result_length = 64539 } -00:01:20 d #1776 runtime.execute_with_options_async / { exit_code = 0; output_length = 70587 } -00:01:20 d #3 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path parsing.dib --retries 3 -00:01:20 d #1777 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path sm'.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path sm'.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } -00:01:20 v #1778 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "sm'.dib", "--retries", "3"])) } -00:01:20 v #1779 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/lib/spiral/sm'.dib", "--output-path", "c:/home/git/polyglot/lib/spiral/sm'.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/lib/spiral/sm'.dib" --output-path "c:/home/git/polyglot/lib/spiral/sm'.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } -00:01:22 v #1780 > > -00:01:22 v #1781 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:01:22 v #1782 > > │ # sm' -00:01:25 v #1783 > > -00:01:25 v #1784 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:25 v #1785 > > //// test -00:01:25 v #1786 > > -00:01:25 v #1787 > > open testing -00:01:26 v #1788 > > -00:01:26 v #1789 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:26 v #1790 > > open rust -00:01:26 v #1791 > > open rust_operators -00:01:26 v #1792 > > open sm'_real -00:01:27 v #1793 > > -00:01:27 v #1794 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:01:27 v #1795 > > │ ## rust -00:01:27 v #1796 > > -00:01:27 v #1797 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:01:27 v #1798 > > │ ### std_string -00:01:27 v #1799 > > -00:01:27 v #1800 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:27 v #1801 > > //// real -00:01:27 v #1802 > > -00:01:27 v #1803 > > nominal std_string = -00:01:27 v #1804 > > `( -00:01:27 v #1805 > > backend_switch `(()) `({}) { -00:01:27 v #1806 > > Fsharp = -00:01:27 v #1807 > > (fun () => -00:01:27 v #1808 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:01:27 v #1809 > > Fable.Core.Emit(\"std::string::String\")>]]\ntype std_string_String = class -00:01:27 v #1810 > > end\n#else\ntype std_string_String = string\n#endif\n" -00:01:27 v #1811 > > ) : () -> () -00:01:27 v #1812 > > } -00:01:27 v #1813 > > $'' : $'std_string_String' -00:01:27 v #1814 > > ) -00:01:27 v #1815 > > -00:01:27 v #1816 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:27 v #1817 > > type std_string = sm'_real.std_string -00:01:27 v #1818 > > -00:01:27 v #1819 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:01:27 v #1820 > > │ ### to_string' -00:01:27 v #1821 > > -00:01:27 v #1822 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:27 v #1823 > > inl to_string' forall t. (x : t) : std_string = -00:01:27 v #1824 > > !\($'$"!x.to_string()"') -00:01:28 v #1825 > > -00:01:28 v #1826 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:01:28 v #1827 > > │ ### from_std_string -00:01:28 v #1828 > > -00:01:28 v #1829 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:28 v #1830 > > //// real -00:01:28 v #1831 > > -00:01:28 v #1832 > > inl from_std_string (str : std_string) : string = -00:01:28 v #1833 > > open rust -00:01:28 v #1834 > > rust.emit_expr `std_string `string str -00:01:28 v #1835 > > ($'"fable_library_rust::String_::fromString($0)"' : string) -00:01:28 v #1836 > > -00:01:28 v #1837 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:28 v #1838 > > inl from_std_string (str : std_string) : string = -00:01:28 v #1839 > > real sm'_real.from_std_string str -00:01:29 v #1840 > > -00:01:29 v #1841 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:01:29 v #1842 > > │ ## sm' -00:01:29 v #1843 > > -00:01:29 v #1844 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:01:29 v #1845 > > │ ### symbol_to_string -00:01:29 v #1846 > > -00:01:29 v #1847 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:29 v #1848 > > //// real -00:01:29 v #1849 > > -00:01:29 v #1850 > > inl symbol_to_string forall t {symbol}. : string = -00:01:29 v #1851 > > // inl x = real_core.type_lit_to_lit `t -00:01:29 v #1852 > > // inl x = real_core.type_to_symbol `t -00:01:29 v #1853 > > // inl x = real_core.type_lit_to_lit `t -00:01:29 v #1854 > > // !!!!SymbolToString (`(`t)) -00:01:29 v #1855 > > inl x = real_core.type_to_symbol `t -00:01:29 v #1856 > > !!!!SymbolToString (x) -00:01:29 v #1857 > > -00:01:29 v #1858 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:29 v #1859 > > inl symbol_to_string forall t {symbol}. (x : t) : string = -00:01:29 v #1860 > > real symbol_to_string `t -00:01:29 v #1861 > > -00:01:29 v #1862 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:29 v #1863 > > //// test -00:01:29 v #1864 > > ///! fsharp -00:01:29 v #1865 > > ///! cuda -00:01:29 v #1866 > > -00:01:29 v #1867 > > .test -00:01:29 v #1868 > > |> symbol_to_string -00:01:29 v #1869 > > |> _assert_eq "test" -00:01:31 v #1870 > > -00:01:31 v #1871 > > ── [ 1.84s - return value ] ──────────────────────────────────────────────────── -00:01:31 v #1872 > > │ .py output (Cuda): -00:01:31 v #1873 > > │ __assert_eq / actual: test / expected: test -00:01:31 v #1874 > > │ -00:01:31 v #1875 > > │ -00:01:31 v #1876 > > -00:01:31 v #1877 > > ── [ 1.85s - stdout ] ────────────────────────────────────────────────────────── -00:01:31 v #1878 > > │ .fsx output: -00:01:31 v #1879 > > │ __assert_eq / actual: "test" / expected: "test" -00:01:31 v #1880 > > │ -00:01:31 v #1881 > > -00:01:31 v #1882 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:31 v #1883 > > //// test -00:01:31 v #1884 > > //// real -00:01:31 v #1885 > > ///! fsharp -00:01:31 v #1886 > > ///! cuda -00:01:31 v #1887 > > -00:01:31 v #1888 > > open testing -00:01:31 v #1889 > > inl x = .test -00:01:31 v #1890 > > inl x = symbol_to_string `(`x) -00:01:31 v #1891 > > _assert_eq `string "test" x -00:01:32 v #1892 > > -00:01:32 v #1893 > > ── [ 1.13s - return value ] ──────────────────────────────────────────────────── -00:01:32 v #1894 > > │ .py output (Cuda): -00:01:32 v #1895 > > │ __assert_eq / actual: test / expected: test -00:01:32 v #1896 > > │ -00:01:32 v #1897 > > │ -00:01:32 v #1898 > > -00:01:32 v #1899 > > ── [ 1.13s - stdout ] ────────────────────────────────────────────────────────── -00:01:32 v #1900 > > │ .fsx output: -00:01:32 v #1901 > > │ __assert_eq / actual: "test" / expected: "test" -00:01:32 v #1902 > > │ -00:01:32 v #1903 > > -00:01:32 v #1904 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:01:32 v #1905 > > │ ### index -00:01:32 v #1906 > > -00:01:32 v #1907 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:32 v #1908 > > inl index i (str : string) : char = -00:01:32 v #1909 > > sm.index str i -00:01:33 v #1910 > > -00:01:33 v #1911 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:01:33 v #1912 > > │ ### length -00:01:33 v #1913 > > -00:01:33 v #1914 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:33 v #1915 > > inl length forall dim {int}. (input : string) : dim = -00:01:33 v #1916 > > input |> sm.length -00:01:33 v #1917 > > -00:01:33 v #1918 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:33 v #1919 > > //// test -00:01:33 v #1920 > > ///! fsharp -00:01:33 v #1921 > > ///! cuda -00:01:33 v #1922 > > -00:01:33 v #1923 > > "abc" -00:01:33 v #1924 > > |> length -00:01:33 v #1925 > > |> _assert_eq 3i32 -00:01:34 v #1926 > > -00:01:34 v #1927 > > ── [ 1.13s - return value ] ──────────────────────────────────────────────────── -00:01:34 v #1928 > > │ .py output (Cuda): -00:01:34 v #1929 > > │ __assert_eq / actual: 3 / expected: 3 -00:01:34 v #1930 > > │ -00:01:34 v #1931 > > │ -00:01:34 v #1932 > > -00:01:34 v #1933 > > ── [ 1.13s - stdout ] ────────────────────────────────────────────────────────── -00:01:34 v #1934 > > │ .fsx output: -00:01:34 v #1935 > > │ __assert_eq / actual: 3 / expected: 3 -00:01:34 v #1936 > > │ -00:01:34 v #1937 > > -00:01:34 v #1938 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:01:34 v #1939 > > │ ### to_char_array -00:01:34 v #1940 > > -00:01:34 v #1941 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:34 v #1942 > > inl to_char_array (str : string) : array_base char = -00:01:34 v #1943 > > am.init (str |> length) (fun i => str |> index i) -00:01:34 v #1944 > > |> fun (a x : _ int _) => x -00:01:35 v #1945 > > -00:01:35 v #1946 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:35 v #1947 > > //// test -00:01:35 v #1948 > > ///! fsharp -00:01:35 v #1949 > > ///! cuda -00:01:35 v #1950 > > -00:01:35 v #1951 > > "abc" -00:01:35 v #1952 > > |> to_char_array -00:01:35 v #1953 > > |> sm'.format -00:01:35 v #1954 > > |> _assert_eq (;[[ 'a'; 'b'; 'c' ]] |> sm'.format) -00:01:36 v #1955 > > -00:01:36 v #1956 > > ── [ 1.61s - return value ] ──────────────────────────────────────────────────── -00:01:36 v #1957 > > │ .py output (Cuda): -00:01:36 v #1958 > > │ __assert_eq / actual: ['a' 'b' 'c'] / expected: ['a' 'b' 'c'] -00:01:36 v #1959 > > │ -00:01:36 v #1960 > > │ -00:01:36 v #1961 > > -00:01:36 v #1962 > > ── [ 1.61s - stdout ] ────────────────────────────────────────────────────────── -00:01:36 v #1963 > > │ .fsx output: -00:01:36 v #1964 > > │ __assert_eq / actual: "[|'a'; 'b'; 'c'|]" / expected: "[|'a'; -00:01:36 v #1965 > > 'b'; 'c'|]" -00:01:36 v #1966 > > │ -00:01:36 v #1967 > > -00:01:36 v #1968 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:01:36 v #1969 > > │ ### to_char_list -00:01:36 v #1970 > > -00:01:36 v #1971 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:36 v #1972 > > inl to_char_list (str : string) : list char = -00:01:36 v #1973 > > listm.init (str |> length) (fun (i : i64) => str |> index i) -00:01:37 v #1974 > > -00:01:37 v #1975 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:37 v #1976 > > //// test -00:01:37 v #1977 > > ///! fsharp -00:01:37 v #1978 > > ///! cuda -00:01:37 v #1979 > > -00:01:37 v #1980 > > "abc" -00:01:37 v #1981 > > |> to_char_list -00:01:37 v #1982 > > |> _assert_eq [[ 'a'; 'b'; 'c' ]] -00:01:38 v #1983 > > -00:01:38 v #1984 > > ── [ 1.27s - return value ] ──────────────────────────────────────────────────── -00:01:38 v #1985 > > │ .py output (Cuda): -00:01:38 v #1986 > > │ __assert_eq / actual: UH0_1(v0='a', v1=UH0_1(v0='b', -00:01:38 v #1987 > > v1=UH0_1(v0='c', v1=UH0_0()))) / expected: UH0_1(v0='a', v1=UH0_1(v0='b', -00:01:38 v #1988 > > v1=UH0_1(v0='c', v1=UH0_0()))) -00:01:38 v #1989 > > │ -00:01:38 v #1990 > > │ -00:01:38 v #1991 > > -00:01:38 v #1992 > > ── [ 1.27s - stdout ] ────────────────────────────────────────────────────────── -00:01:38 v #1993 > > │ .fsx output: -00:01:38 v #1994 > > │ __assert_eq / actual: UH0_1 ('a', UH0_1 ('b', UH0_1 ('c', -00:01:38 v #1995 > > UH0_0))) / expected: UH0_1 ('a', UH0_1 ('b', UH0_1 ('c', UH0_0))) -00:01:38 v #1996 > > │ -00:01:38 v #1997 > > -00:01:38 v #1998 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:01:38 v #1999 > > │ ### is_empty -00:01:38 v #2000 > > -00:01:38 v #2001 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:38 v #2002 > > inl is_empty (input : string) : bool = -00:01:38 v #2003 > > length input = 0i32 -00:01:39 v #2004 > > -00:01:39 v #2005 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:01:39 v #2006 > > │ ### slice -00:01:39 v #2007 > > -00:01:39 v #2008 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:39 v #2009 > > inl slice forall t {number; int}. (from : t) (to : t) s : string = -00:01:39 v #2010 > > backend_switch { -00:01:39 v #2011 > > Fsharp = fun () => sm.slice s { from to } : string -00:01:39 v #2012 > > Python = fun () => sm.slice s { from to = if var_is s || var_is to then -00:01:39 v #2013 > > to + 1 else to } : string -00:01:39 v #2014 > > } -00:01:39 v #2015 > > -00:01:39 v #2016 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:39 v #2017 > > //// test -00:01:39 v #2018 > > ///! fsharp -00:01:39 v #2019 > > ///! cuda -00:01:39 v #2020 > > -00:01:39 v #2021 > > "abcdef" -00:01:39 v #2022 > > |> slice 1i32 3i32 -00:01:39 v #2023 > > |> _assert_eq "bcd" -00:01:39 v #2024 > > -00:01:39 v #2025 > > (join "abcde") -00:01:39 v #2026 > > |> slice 1i32 3i32 -00:01:39 v #2027 > > |> _assert_eq "bcd" -00:01:39 v #2028 > > -00:01:39 v #2029 > > "abcde" -00:01:39 v #2030 > > |> slice 1i32 (join 3i32) -00:01:39 v #2031 > > |> _assert_eq "bcd" -00:01:39 v #2032 > > -00:01:39 v #2033 > > (join "abcde") -00:01:39 v #2034 > > |> slice 1i32 (join 3i32) -00:01:39 v #2035 > > |> _assert_eq "bcd" -00:01:40 v #2036 > > -00:01:40 v #2037 > > ── [ 1.20s - return value ] ──────────────────────────────────────────────────── -00:01:40 v #2038 > > │ -00:01:40 v #2039 > > │ .py output (Cuda): -00:01:40 v #2040 > > │ __assert_eq / actual: bcd / expected: bcd -00:01:40 v #2041 > > │ __assert_eq / actual: bcd / expected: bcd -00:01:40 v #2042 > > │ __assert_eq / actual: bcd / expected: bcd -00:01:40 v #2043 > > │ __assert_eq / actual: bcd / expected: bcd -00:01:40 v #2044 > > │ -00:01:40 v #2045 > > │ -00:01:40 v #2046 > > -00:01:40 v #2047 > > ── [ 1.20s - stdout ] ────────────────────────────────────────────────────────── -00:01:40 v #2048 > > │ .fsx output: -00:01:40 v #2049 > > │ __assert_eq / actual: "bcd" / expected: "bcd" -00:01:40 v #2050 > > │ __assert_eq / actual: "bcd" / expected: "bcd" -00:01:40 v #2051 > > │ __assert_eq / actual: "bcd" / expected: "bcd" -00:01:40 v #2052 > > │ __assert_eq / actual: "bcd" / expected: "bcd" -00:01:40 v #2053 > > │ -00:01:40 v #2054 > > -00:01:40 v #2055 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:01:40 v #2056 > > │ ### format_debug -00:01:40 v #2057 > > -00:01:40 v #2058 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:40 v #2059 > > //// real -00:01:40 v #2060 > > -00:01:40 v #2061 > > inl format_debug forall t. (x : t) : string = -00:01:40 v #2062 > > backend_switch `string `({}) { -00:01:40 v #2063 > > Fsharp = (fun () => $'$"%A{!x}"' : string) : () -> string -00:01:40 v #2064 > > Python = (fun () => $'f"{!x}"' : string) : () -> string -00:01:40 v #2065 > > } -00:01:41 v #2066 > > -00:01:41 v #2067 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:41 v #2068 > > inl format_debug forall t. (x : t) : string = -00:01:41 v #2069 > > real format_debug `t x -00:01:41 v #2070 > > -00:01:41 v #2071 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:41 v #2072 > > //// test -00:01:41 v #2073 > > ///! fsharp -00:01:41 v #2074 > > ///! cuda -00:01:41 v #2075 > > -00:01:41 v #2076 > > { c = "1"; a = "2"; b = "3" } -00:01:41 v #2077 > > |> format_debug -00:01:41 v #2078 > > |> _assert_eq ( -00:01:41 v #2079 > > backend_switch { -00:01:41 v #2080 > > Fsharp = fun () => "struct (\"1\", \"2\", \"3\")" : string -00:01:41 v #2081 > > Python = fun () => "('1', '2', '3')" : string -00:01:41 v #2082 > > } -00:01:41 v #2083 > > ) -00:01:42 v #2084 > > -00:01:42 v #2085 > > ── [ 1.21s - return value ] ──────────────────────────────────────────────────── -00:01:42 v #2086 > > │ .py output (Cuda): -00:01:42 v #2087 > > │ __assert_eq / actual: ('1', '2', '3') / expected: ('1', '2', -00:01:42 v #2088 > > '3') -00:01:42 v #2089 > > │ -00:01:42 v #2090 > > │ -00:01:42 v #2091 > > -00:01:42 v #2092 > > ── [ 1.21s - stdout ] ────────────────────────────────────────────────────────── -00:01:42 v #2093 > > │ .fsx output: -00:01:42 v #2094 > > │ __assert_eq / actual: "struct ("1", "2", "3")" / expected: -00:01:42 v #2095 > > "struct ("1", "2", "3")" -00:01:42 v #2096 > > │ -00:01:42 v #2097 > > -00:01:42 v #2098 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:01:42 v #2099 > > │ ### format_pretty -00:01:42 v #2100 > > -00:01:42 v #2101 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:42 v #2102 > > //// real -00:01:42 v #2103 > > -00:01:42 v #2104 > > inl format_pretty forall t. (x : t) : string = -00:01:42 v #2105 > > run_target_args `string `t (fun () => x) function -00:01:42 v #2106 > > | Rust _ => fun x => -00:01:42 v #2107 > > open rust -00:01:42 v #2108 > > inl result = rust.emit_expr `t `std_string x -00:01:42 v #2109 > > ($'"format\!(\\\"{:#?}\\\", $0)"' : string) -00:01:42 v #2110 > > from_std_string result -00:01:42 v #2111 > > | _ => fun _ => format_debug `t x -00:01:43 v #2112 > > -00:01:43 v #2113 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:43 v #2114 > > inl format_pretty forall t. (x : t) : string = -00:01:43 v #2115 > > real sm'_real.format_pretty `t x -00:01:43 v #2116 > > -00:01:43 v #2117 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:01:43 v #2118 > > │ ### prim -00:01:43 v #2119 > > -00:01:43 v #2120 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:43 v #2121 > > inl prim x = real -00:01:43 v #2122 > > match x with -00:01:43 v #2123 > > | (x : i8) | (x : i16) | (x : i32) | (x : i64) => "%d", x -00:01:43 v #2124 > > | (x : u8) | (x : u16) | (x : u32) | (x : u64) => "%u", x -00:01:43 v #2125 > > | (x : f32) | (x : f64) => "%f", x -00:01:43 v #2126 > > | (x : string) => "%s", x -00:01:43 v #2127 > > | (x : char) => "%c", x -00:01:44 v #2128 > > -00:01:44 v #2129 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:01:44 v #2130 > > │ ### printable -00:01:44 v #2131 > > -00:01:44 v #2132 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:44 v #2133 > > //// real -00:01:44 v #2134 > > -00:01:44 v #2135 > > prototype printable t : t -> () -00:01:44 v #2136 > > -00:01:44 v #2137 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:01:44 v #2138 > > │ ### format_real -00:01:44 v #2139 > > -00:01:44 v #2140 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:44 v #2141 > > //// real -00:01:44 v #2142 > > -00:01:44 v #2143 > > let format_real forall t. (x : t) : string = -00:01:44 v #2144 > > inl result = mut `string (join "") -00:01:44 v #2145 > > inl rec write x = -00:01:44 v #2146 > > inl p ((a : string), b) = -00:01:44 v #2147 > > inl s : string = -00:01:44 v #2148 > > backend_switch `string `({}) { -00:01:44 v #2149 > > Fsharp = -00:01:44 v #2150 > > (fun () => -00:01:44 v #2151 > > match b with -00:01:44 v #2152 > > | (_ : f32) | (_ : f64) => $'$"%+.6f{!b}"' : string -00:01:44 v #2153 > > | _ => $'$"{!b}"' : string -00:01:44 v #2154 > > ) : () -> string -00:01:44 v #2155 > > Python = -00:01:44 v #2156 > > (fun () => -00:01:44 v #2157 > > match b with -00:01:44 v #2158 > > | (_ : f32) | (_ : f64) => $'"{:.6f}".format(!b)' : -00:01:44 v #2159 > > string -00:01:44 v #2160 > > | _ => $'f"{!b}"' : string -00:01:44 v #2161 > > ) : () -> string -00:01:44 v #2162 > > } -00:01:44 v #2163 > > exec_unit ((fun () => result <- (+.) `string ((~*) `string result) -00:01:44 v #2164 > > s) : () -> ()) -00:01:44 v #2165 > > -00:01:44 v #2166 > > match x with // According to Bing it shouldn't matter whether these are -00:01:44 v #2167 > > %d or %lld in printf. -00:01:44 v #2168 > > | () => () -00:01:44 v #2169 > > | (x : i8) | (x : i16) | (x : i32) | (x : i64) => p ("%d", x) -00:01:44 v #2170 > > | (x : u8) | (x : u16) | (x : u32) | (x : u64) => p ("%u", x) -00:01:44 v #2171 > > | (x : f32) | (x : f64) => p ("%f", x) -00:01:44 v #2172 > > | (x : string) => p ("%s", x) -00:01:44 v #2173 > > | (x : char) => p ("%c", x) -00:01:44 v #2174 > > | (x : bool) => p ("%s", if x then "true" else "false") -00:01:44 v #2175 > > | (a,b) => write a . write ", " . write b -00:01:44 v #2176 > > | {} as x => -00:01:44 v #2177 > > write "{ " -00:01:44 v #2178 > > inl _result = -00:01:44 v #2179 > > real_core.record_fold -00:01:44 v #2180 > > fun { state = separator key value } => -00:01:44 v #2181 > > write separator -00:01:44 v #2182 > > write (symbol_to_string `(`key)) . write " = " . write -00:01:44 v #2183 > > value -00:01:44 v #2184 > > "; " -00:01:44 v #2185 > > () x -00:01:44 v #2186 > > write " }" -00:01:44 v #2187 > > | x when real_core.symbol_is x => write (symbol_to_string `(`x)) -00:01:44 v #2188 > > | x when real_core.function_is x => write (x ()) -00:01:44 v #2189 > > | x when real_core.union_is x => -00:01:44 v #2190 > > if real_core.prototype_has `(`x) printable then printable `(`x) x -00:01:44 v #2191 > > else -00:01:44 v #2192 > > write (format_debug `(`x) x) -00:01:44 v #2193 > > // real_core.unbox x (fun (k, v) => -00:01:44 v #2194 > > // write k -00:01:44 v #2195 > > // match v with -00:01:44 v #2196 > > // | () => () -00:01:44 v #2197 > > // | _ => write "(" . write v . write ")" -00:01:44 v #2198 > > // ) -00:01:44 v #2199 > > | x when real_core.nominal_is x => -00:01:44 v #2200 > > if real_core.prototype_has `(`x) printable then printable `(`x) x -00:01:44 v #2201 > > // elif layout_is x then write *x // TODO: Deal with all the layout -00:01:44 v #2202 > > type cases. -00:01:44 v #2203 > > else write (format_pretty `(`x) x) -00:01:44 v #2204 > > | x => write (format_debug `(`x) x) -00:01:44 v #2205 > > write x -00:01:44 v #2206 > > (~*) `string result -00:01:44 v #2207 > > -00:01:44 v #2208 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:01:44 v #2209 > > │ ### format -00:01:44 v #2210 > > -00:01:44 v #2211 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:44 v #2212 > > inl format forall t. (x : t) : string = -00:01:44 v #2213 > > real format_real `t x -00:01:45 v #2214 > > -00:01:45 v #2215 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:45 v #2216 > > //// test -00:01:45 v #2217 > > ///! fsharp -00:01:45 v #2218 > > ////! cuda -00:01:45 v #2219 > > ////! rust -00:01:45 v #2220 > > ////! typescript -00:01:45 v #2221 > > ////! python -00:01:45 v #2222 > > -00:01:45 v #2223 > > ("1", "2", [["3"; "4"]], { b = "5"; c = "6"; a = fun () => "7" }) -00:01:45 v #2224 > > |> format -00:01:45 v #2225 > > |> _assert_eq "1, 2, UH0_1 (\"3\", UH0_1 (\"4\", UH0_0)), { b = 5; c = 6; a = 7 -00:01:45 v #2226 > > }" -00:01:45 v #2227 > > -00:01:45 v #2228 > > ── [ 542.60ms - stdout ] ─────────────────────────────────────────────────────── -00:01:45 v #2229 > > │ __assert_eq / actual: "1, 2, UH0_1 ("3", UH0_1 ("4", UH0_0)), -00:01:45 v #2230 > > { b = 5; c = 6; a = 7 }" / expected: "1, 2, UH0_1 ("3", UH0_1 ("4", UH0_0)), { b -00:01:45 v #2231 > > = 5; c = 6; a = 7 }" -00:01:45 v #2232 > > │ -00:01:45 v #2233 > > -00:01:45 v #2234 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:01:45 v #2235 > > │ ### concat_array -00:01:45 v #2236 > > -00:01:45 v #2237 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:45 v #2238 > > inl concat_array (separator : string) (input : a int string) = -00:01:45 v #2239 > > (input, { acc = ""; sep = "" }) -00:01:45 v #2240 > > ||> am.foldBack fun (x : string) { acc sep } => -00:01:45 v #2241 > > { acc = $'!x + !sep + !acc + ""' : string; sep = separator } -00:01:45 v #2242 > > |> fun { acc } => acc -00:01:46 v #2243 > > -00:01:46 v #2244 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:46 v #2245 > > //// test -00:01:46 v #2246 > > ///! fsharp -00:01:46 v #2247 > > ////! cuda // AttributeError: 'str' object has no attribute 'item' -00:01:46 v #2248 > > ///! rust -00:01:46 v #2249 > > ///! typescript -00:01:46 v #2250 > > ///! python -00:01:46 v #2251 > > //// print_code -00:01:46 v #2252 > > -00:01:46 v #2253 > > ;[[ -00:01:46 v #2254 > > "1" -00:01:46 v #2255 > > "2" -00:01:46 v #2256 > > "3" -00:01:46 v #2257 > > ]] -00:01:46 v #2258 > > |> fun x => -00:01:46 v #2259 > > inl code = (a x : _ int _) |> concat_array "\n" -00:01:46 v #2260 > > code -00:01:46 v #2261 > > |> _assert_eq "1\n2\n3" -00:01:49 v #2262 > > -00:01:49 v #2263 > > ── [ 2.81s - return value ] ──────────────────────────────────────────────────── -00:01:49 v #2264 > > │ -00:01:49 v #2265 > > │ .rs output: -00:01:49 v #2266 > > │ __assert_eq / actual: "1 -00:01:49 v #2267 > > │ 2 -00:01:49 v #2268 > > │ 3" / expected: "1 -00:01:49 v #2269 > > │ 2 -00:01:49 v #2270 > > │ 3" -00:01:49 v #2271 > > │ -00:01:49 v #2272 > > │ -00:01:49 v #2273 > > │ .ts output: -00:01:49 v #2274 > > │ __assert_eq / actual: 1 -00:01:49 v #2275 > > │ 2 -00:01:49 v #2276 > > │ 3 / expected: 1 -00:01:49 v #2277 > > │ 2 -00:01:49 v #2278 > > │ 3 -00:01:49 v #2279 > > │ -00:01:49 v #2280 > > │ -00:01:49 v #2281 > > │ .py output: -00:01:49 v #2282 > > │ __assert_eq / actual: 1 -00:01:49 v #2283 > > │ 2 -00:01:49 v #2284 > > │ 3 / expected: 1 -00:01:49 v #2285 > > │ 2 -00:01:49 v #2286 > > │ 3 -00:01:49 v #2287 > > │ -00:01:49 v #2288 > > │ -00:01:49 v #2289 > > │ -00:01:49 v #2290 > > │ -00:01:49 v #2291 > > │ -00:01:49 v #2292 > > -00:01:49 v #2293 > > ── [ 2.81s - stdout ] ────────────────────────────────────────────────────────── -00:01:49 v #2294 > > │ .fsx: -00:01:49 v #2295 > > │ type Mut0 = {mutable l0 : int32; mutable l1 : string; mutable -00:01:49 v #2296 > > l2 : string} -00:01:49 v #2297 > > │ let rec method1 (v0 : int32, v1 : Mut0) : bool = -00:01:49 v #2298 > > │ let v2 : int32 = v1.l0 -00:01:49 v #2299 > > │ let v3 : bool = v2 < v0 -00:01:49 v #2300 > > │ v3 -00:01:49 v #2301 > > │ and method2 (v0 : bool) : bool = -00:01:49 v #2302 > > │ v0 -00:01:49 v #2303 > > │ and closure0 (v0 : string) () : unit = -00:01:49 v #2304 > > │ let v1 : (string -> unit) = System.Console.WriteLine -00:01:49 v #2305 > > │ v1 v0 -00:01:49 v #2306 > > │ and method0 () : unit = -00:01:49 v #2307 > > │ let v0 : string = "1" -00:01:49 v #2308 > > │ let v1 : string = "2" -00:01:49 v #2309 > > │ let v2 : string = "3" -00:01:49 v #2310 > > │ let v3 : (string []) = [|v0; v1; v2|] -00:01:49 v #2311 > > │ let v4 : int32 = v3.Length -00:01:49 v #2312 > > │ let v5 : string = "" -00:01:49 v #2313 > > │ let v6 : Mut0 = {l0 = 0; l1 = v5; l2 = v5} : Mut0 -00:01:49 v #2314 > > │ while method1(v4, v6) do -00:01:49 v #2315 > > │ let v8 : int32 = v6.l0 -00:01:49 v #2316 > > │ let v9 : int32 = -v8 -00:01:49 v #2317 > > │ let v10 : int32 = v9 + v4 -00:01:49 v #2318 > > │ let v11 : int32 = v10 - 1 -00:01:49 v #2319 > > │ let struct (v12 : string, v13 : string) = v6.l1, -00:01:49 v #2320 > > v6.l2 -00:01:49 v #2321 > > │ let v14 : string = v3.[int v11] -00:01:49 v #2322 > > │ let v15 : string = v14 + v13 + v12 + "" -00:01:49 v #2323 > > │ let v16 : int32 = v8 + 1 -00:01:49 v #2324 > > │ let v17 : string = "\n" -00:01:49 v #2325 > > │ v6.l0 <- v16 -00:01:49 v #2326 > > │ v6.l1 <- v15 -00:01:49 v #2327 > > │ v6.l2 <- v17 -00:01:49 v #2328 > > │ () -00:01:49 v #2329 > > │ let struct (v18 : string, v19 : string) = v6.l1, v6.l2 -00:01:49 v #2330 > > │ let v20 : bool = v18 = "1\n2\n3" -00:01:49 v #2331 > > │ let v22 : bool = -00:01:49 v #2332 > > │ if v20 then -00:01:49 v #2333 > > │ true -00:01:49 v #2334 > > │ else -00:01:49 v #2335 > > │ method2(v20) -00:01:49 v #2336 > > │ let v23 : string = "__assert_eq" -00:01:49 v #2337 > > │ let v24 : string = "1\n2\n3" -00:01:49 v #2338 > > │ let v25 : string = $"{v23} / actual: %A{v18} / expected: -00:01:49 v #2339 > > %A{v24}" -00:01:49 v #2340 > > │ let v28 : unit = () -00:01:49 v #2341 > > │ let v29 : (unit -> unit) = closure0(v25) -00:01:49 v #2342 > > │ let v30 : unit = (fun () -> v29 (); v28) () -00:01:49 v #2343 > > │ let v32 : bool = v22 = false -00:01:49 v #2344 > > │ if v32 then -00:01:49 v #2345 > > │ failwith<unit> v25 -00:01:49 v #2346 > > │ method0() -00:01:49 v #2347 > > │ -00:01:49 v #2348 > > │ -00:01:49 v #2349 > > │ .rs: -00:01:49 v #2350 > > │ #![allow(dead_code)] -00:01:49 v #2351 > > │ #![allow(non_camel_case_types)] -00:01:49 v #2352 > > │ #![allow(non_snake_case)] -00:01:49 v #2353 > > │ #![allow(non_upper_case_globals)] -00:01:49 v #2354 > > │ #![allow(unreachable_code)] -00:01:49 v #2355 > > │ #![allow(unused_attributes)] -00:01:49 v #2356 > > │ #![allow(unused_imports)] -00:01:49 v #2357 > > │ #![allow(unused_macros)] -00:01:49 v #2358 > > │ #![allow(unused_parens)] -00:01:49 v #2359 > > │ #![allow(unused_variables)] -00:01:49 v #2360 > > │ #![allow(unused_assignments)] -00:01:49 v #2361 > > │ mod module_de117a1e { -00:01:49 v #2362 > > │ pub mod Spiral { -00:01:49 v #2363 > > │ use super::*; -00:01:49 v #2364 > > │ use fable_library_rust::NativeArray_::get_Count; -00:01:49 v #2365 > > │ use fable_library_rust::NativeArray_::new_array; -00:01:49 v #2366 > > │ use fable_library_rust::NativeArray_::Array; -00:01:49 v #2367 > > │ use fable_library_rust::Native_::on_startup; -00:01:49 v #2368 > > │ use fable_library_rust::Native_::LrcPtr; -00:01:49 v #2369 > > │ use fable_library_rust::Native_::MutCell; -00:01:49 v #2370 > > │ use fable_library_rust::String_::append; -00:01:49 v #2371 > > │ use fable_library_rust::String_::printfn; -00:01:49 v #2372 > > │ use fable_library_rust::String_::sprintf; -00:01:49 v #2373 > > │ use fable_library_rust::String_::string; -00:01:49 v #2374 > > │ #[derive(Clone, Debug, Hash, PartialEq, PartialOrd)] -00:01:49 v #2375 > > │ pub struct Mut0 { -00:01:49 v #2376 > > │ pub l0: MutCell<i32>, -00:01:49 v #2377 > > │ pub l1: MutCell<string>, -00:01:49 v #2378 > > │ pub l2: MutCell<string>, -00:01:49 v #2379 > > │ } -00:01:49 v #2380 > > │ impl core::fmt::Display for Mut0 { -00:01:49 v #2381 > > │ fn fmt(&self, f: &mut core::fmt::Formatter) -> -00:01:49 v #2382 > > core::fmt::Result { -00:01:49 v #2383 > > │ write!(f, "{}", -00:01:49 v #2384 > > core::any::type_name::<Self>()) -00:01:49 v #2385 > > │ } -00:01:49 v #2386 > > │ } -00:01:49 v #2387 > > │ pub fn method1(v0: i32, v1: LrcPtr<Spiral::Mut0>) -> -00:01:49 v #2388 > > bool { -00:01:49 v #2389 > > │ (v1.l0.get().clone()) < (v0) -00:01:49 v #2390 > > │ } -00:01:49 v #2391 > > │ pub fn method2(v0: bool) -> bool { -00:01:49 v #2392 > > │ v0 -00:01:49 v #2393 > > │ } -00:01:49 v #2394 > > │ pub fn closure0(v0: string, unitVar: ()) { -00:01:49 v #2395 > > │ printfn!("{0}", v0); -00:01:49 v #2396 > > │ } -00:01:49 v #2397 > > │ pub fn method0() { -00:01:49 v #2398 > > │ let v3: Array<string> = new_array(&[string("1"), -00:01:49 v #2399 > > string("2"), string("3")]); -00:01:49 v #2400 > > │ let v4: i32 = get_Count(v3.clone()); -00:01:49 v #2401 > > │ let v6: LrcPtr<Spiral::Mut0> = -00:01:49 v #2402 > > LrcPtr::new(Spiral::Mut0 { -00:01:49 v #2403 > > │ l0: MutCell::new(0_i32), -00:01:49 v #2404 > > │ l1: MutCell::new(string("")), -00:01:49 v #2405 > > │ l2: MutCell::new(string("")), -00:01:49 v #2406 > > │ }); -00:01:49 v #2407 > > │ while Spiral::method1(v4, v6.clone()) { -00:01:49 v #2408 > > │ let v8: i32 = v6.l0.get().clone(); -00:01:49 v #2409 > > │ let v11: i32 = ((v8.wrapping_neg()) + (v4)) - -00:01:49 v #2410 > > 1_i32; -00:01:49 v #2411 > > │ let matchValue: string = v6.l1.get().clone(); -00:01:49 v #2412 > > │ let matchValue_1: string = -00:01:49 v #2413 > > v6.l2.get().clone(); -00:01:49 v #2414 > > │ let v15: string = append( -00:01:49 v #2415 > > │ (append((append((v3[v11].clone()), -00:01:49 v #2416 > > (matchValue_1))), (matchValue))), -00:01:49 v #2417 > > │ string(""), -00:01:49 v #2418 > > │ ); -00:01:49 v #2419 > > │ let v16: i32 = (v8) + 1_i32; -00:01:49 v #2420 > > │ v6.l0.set(v16); -00:01:49 v #2421 > > │ v6.l1.set(v15); -00:01:49 v #2422 > > │ v6.l2.set(string("\n")); -00:01:49 v #2423 > > │ () -00:01:49 v #2424 > > │ } -00:01:49 v #2425 > > │ { -00:01:49 v #2426 > > │ let matchValue_2: string = -00:01:49 v #2427 > > v6.l1.get().clone(); -00:01:49 v #2428 > > │ let matchValue_3: string = -00:01:49 v #2429 > > v6.l2.get().clone(); -00:01:49 v #2430 > > │ let v18: string = matchValue_2; -00:01:49 v #2431 > > │ let v20: bool = (v18.clone()) == -00:01:49 v #2432 > > string("1\n2\n3"); -00:01:49 v #2433 > > │ let v22: bool = if v20 { true } else { -00:01:49 v #2434 > > Spiral::method2(v20) }; -00:01:49 v #2435 > > │ let v25: string = sprintf!( -00:01:49 v #2436 > > │ "{} / actual: {:?} / expected: {:?}", -00:01:49 v #2437 > > │ string("__assert_eq"), -00:01:49 v #2438 > > │ v18, -00:01:49 v #2439 > > │ string("1\n2\n3") -00:01:49 v #2440 > > │ ); -00:01:49 v #2441 > > │ let v30: () = { -00:01:49 v #2442 > > │ Spiral::closure0(v25.clone(), ()); -00:01:49 v #2443 > > │ () -00:01:49 v #2444 > > │ }; -00:01:49 v #2445 > > │ if (v22) == false { -00:01:49 v #2446 > > │ panic!("{}", v25,); -00:01:49 v #2447 > > │ } -00:01:49 v #2448 > > │ } -00:01:49 v #2449 > > │ } -00:01:49 v #2450 > > │ // on_startup!(Spiral::method0()); -00:01:49 v #2451 > > │ } -00:01:49 v #2452 > > │ } -00:01:49 v #2453 > > │ pub use module_de117a1e::*; -00:01:49 v #2454 > > │ -00:01:49 v #2455 > > │ pub fn main() -> Result<(), String> { -00:01:49 v #2456 > > │ Ok(Spiral::method0()) -00:01:49 v #2457 > > │ } -00:01:49 v #2458 > > │ -00:01:49 v #2459 > > │ .ts: -00:01:49 v #2460 > > │ import { Record } from -00:01:49 v #2461 > > "./fable_modules/fable-library-ts.5.0.0-alpha.2/Types.js"; -00:01:49 v #2462 > > │ import { op_UnaryNegation_Int32, int32 } from -00:01:49 v #2463 > > "./fable_modules/fable-library-ts.5.0.0-alpha.2/Int32.js"; -00:01:49 v #2464 > > │ import { IComparable, IEquatable } from -00:01:49 v #2465 > > "./fable_modules/fable-library-ts.5.0.0-alpha.2/Util.js"; -00:01:49 v #2466 > > │ import { record_type, string_type, int32_type, TypeInfo } -00:01:49 v #2467 > > from "./fable_modules/fable-library-ts.5.0.0-alpha.2/Reflection.js"; -00:01:49 v #2468 > > │ import { item } from -00:01:49 v #2469 > > "./fable_modules/fable-library-ts.5.0.0-alpha.2/Array.js"; -00:01:49 v #2470 > > │ import { interpolate, toText } from -00:01:49 v #2471 > > "./fable_modules/fable-library-ts.5.0.0-alpha.2/String.js"; -00:01:49 v #2472 > > │ -00:01:49 v #2473 > > │ export class Mut0 extends Record implements IEquatable<Mut0>, -00:01:49 v #2474 > > IComparable<Mut0> { -00:01:49 v #2475 > > │ l0: int32; -00:01:49 v #2476 > > │ l1: string; -00:01:49 v #2477 > > │ l2: string; -00:01:49 v #2478 > > │ constructor(l0: int32, l1: string, l2: string) { -00:01:49 v #2479 > > │ super(); -00:01:49 v #2480 > > │ this.l0 = (l0 | 0); -00:01:49 v #2481 > > │ this.l1 = l1; -00:01:49 v #2482 > > │ this.l2 = l2; -00:01:49 v #2483 > > │ } -00:01:49 v #2484 > > │ } -00:01:49 v #2485 > > │ -00:01:49 v #2486 > > │ export function Mut0_$reflection(): TypeInfo { -00:01:49 v #2487 > > │ return record_type("Spiral.Mut0", [], Mut0, () => [["l0", -00:01:49 v #2488 > > int32_type], ["l1", string_type], ["l2", string_type]]); -00:01:49 v #2489 > > │ } -00:01:49 v #2490 > > │ -00:01:49 v #2491 > > │ export function method1(v0: int32, v1: Mut0): boolean { -00:01:49 v #2492 > > │ return v1.l0 < v0; -00:01:49 v #2493 > > │ } -00:01:49 v #2494 > > │ -00:01:49 v #2495 > > │ export function method2(v0: boolean): boolean { -00:01:49 v #2496 > > │ return v0; -00:01:49 v #2497 > > │ } -00:01:49 v #2498 > > │ -00:01:49 v #2499 > > │ export function closure0(v0: string, unitVar: void): void { -00:01:49 v #2500 > > │ console.log(v0); -00:01:49 v #2501 > > │ } -00:01:49 v #2502 > > │ -00:01:49 v #2503 > > │ export function method0(): void { -00:01:49 v #2504 > > │ const v3: string[] = ["1", "2", "3"]; -00:01:49 v #2505 > > │ const v4: int32 = v3.length | 0; -00:01:49 v #2506 > > │ const v6: Mut0 = new Mut0(0, "", ""); -00:01:49 v #2507 > > │ while (method1(v4, v6)) { -00:01:49 v #2508 > > │ const v8: int32 = v6.l0 | 0; -00:01:49 v #2509 > > │ const v11: int32 = ((op_UnaryNegation_Int32(v8) + v4) -00:01:49 v #2510 > > - 1) | 0; -00:01:49 v #2511 > > │ const matchValue: string = v6.l1; -00:01:49 v #2512 > > │ const matchValue_1: string = v6.l2; -00:01:49 v #2513 > > │ const v15: string = ((item(v11, v3) + matchValue_1) + -00:01:49 v #2514 > > matchValue) + ""; -00:01:49 v #2515 > > │ const v16: int32 = (v8 + 1) | 0; -00:01:49 v #2516 > > │ v6.l0 = (v16 | 0); -00:01:49 v #2517 > > │ v6.l1 = v15; -00:01:49 v #2518 > > │ v6.l2 = "\n"; -00:01:49 v #2519 > > │ } -00:01:49 v #2520 > > │ const matchValue_2: string = v6.l1; -00:01:49 v #2521 > > │ const matchValue_3: string = v6.l2; -00:01:49 v #2522 > > │ const v18: string = matchValue_2; -00:01:49 v #2523 > > │ const v20: boolean = v18 === "1\n2\n3"; -00:01:49 v #2524 > > │ const v22: boolean = v20 ? true : method2(v20); -00:01:49 v #2525 > > │ const v25: string = toText(interpolate("%P() / actual: -00:01:49 v #2526 > > %A%P() / expected: %A%P()", ["__assert_eq", v18, "1\n2\n3"])); -00:01:49 v #2527 > > │ let v30: any; -00:01:49 v #2528 > > │ closure0(v25, undefined); -00:01:49 v #2529 > > │ v30 = undefined; -00:01:49 v #2530 > > │ if (v22 === false) { -00:01:49 v #2531 > > │ throw new Error(v25); -00:01:49 v #2532 > > │ } -00:01:49 v #2533 > > │ } -00:01:49 v #2534 > > │ -00:01:49 v #2535 > > │ method0(); -00:01:49 v #2536 > > │ -00:01:49 v #2537 > > │ -00:01:49 v #2538 > > │ -00:01:49 v #2539 > > │ // spiral.process_typescript -00:01:49 v #2540 > > │ -00:01:49 v #2541 > > │ .py: -00:01:49 v #2542 > > │ from __future__ import annotations -00:01:49 v #2543 > > │ from fable_modules.fable_library.int32 import -00:01:49 v #2544 > > op_unary_negation_int32 -00:01:49 v #2545 > > │ from fable_modules.fable_library.reflection import (TypeInfo, -00:01:49 v #2546 > > int32_type, string_type, record_type) -00:01:49 v #2547 > > │ from fable_modules.fable_library.string_ import (to_text, -00:01:49 v #2548 > > interpolate) -00:01:49 v #2549 > > │ from fable_modules.fable_library.types import (Record, Array) -00:01:49 v #2550 > > │ from dataclasses import dataclass -00:01:49 v #2551 > > │ -00:01:49 v #2552 > > │ def _expr0() -> TypeInfo: -00:01:49 v #2553 > > │ return record_type("Spiral.Mut0", [], Mut0, lambda: -00:01:49 v #2554 > > [("l0", int32_type), ("l1", string_type), ("l2", string_type)]) -00:01:49 v #2555 > > │ -00:01:49 v #2556 > > │ -00:01:49 v #2557 > > │ @dataclass(eq = False, repr = False, slots = True) -00:01:49 v #2558 > > │ class Mut0(Record): -00:01:49 v #2559 > > │ l0: int -00:01:49 v #2560 > > │ l1: str -00:01:49 v #2561 > > │ l2: str -00:01:49 v #2562 > > │ -00:01:49 v #2563 > > │ Mut0_reflection = _expr0 -00:01:49 v #2564 > > │ -00:01:49 v #2565 > > │ def method1(v0: int, v1: Mut0) -> bool: -00:01:49 v #2566 > > │ return v1.l0 < v0 -00:01:49 v #2567 > > │ -00:01:49 v #2568 > > │ -00:01:49 v #2569 > > │ def method2(v0: bool) -> bool: -00:01:49 v #2570 > > │ return v0 -00:01:49 v #2571 > > │ -00:01:49 v #2572 > > │ -00:01:49 v #2573 > > │ def closure0(v0: str, unit_var: None) -> None: -00:01:49 v #2574 > > │ print(v0) -00:01:49 v #2575 > > │ -00:01:49 v #2576 > > │ -00:01:49 v #2577 > > │ def method0(__unit: None=None) -> None: -00:01:49 v #2578 > > │ v3: Array[str] = ["1", "2", "3"] -00:01:49 v #2579 > > │ v4: int = len(v3) or 0 -00:01:49 v #2580 > > │ v6: Mut0 = Mut0(0, "", "") -00:01:49 v #2581 > > │ while method1(v4, v6): -00:01:49 v #2582 > > │ v8: int = v6.l0 or 0 -00:01:49 v #2583 > > │ v11: int = ((op_unary_negation_int32(v8) + v4) - 1) -00:01:49 v #2584 > > or 0 -00:01:49 v #2585 > > │ match_value: str = v6.l1 -00:01:49 v #2586 > > │ match_value_1: str = v6.l2 -00:01:49 v #2587 > > │ v15: str = ((v3[v11] + match_value_1) + match_value) -00:01:49 v #2588 > > + "" -00:01:49 v #2589 > > │ v16: int = (v8 + 1) or 0 -00:01:49 v #2590 > > │ v6.l0 = v16 or 0 -00:01:49 v #2591 > > │ v6.l1 = v15 -00:01:49 v #2592 > > │ v6.l2 = "\n" -00:01:49 v #2593 > > │ match_value_2: str = v6.l1 -00:01:49 v #2594 > > │ match_value_3: str = v6.l2 -00:01:49 v #2595 > > │ v18: str = match_value_2 -00:01:49 v #2596 > > │ v20: bool = v18 == "1\n2\n3" -00:01:49 v #2597 > > │ v22: bool = True if v20 else method2(v20) -00:01:49 v #2598 > > │ v25: str = to_text(interpolate("%P() / actual: %A%P() -00:01:49 v #2599 > > expected: %A%P()", ["__assert_eq", v18, "1\n2\n3"])) -00:01:49 v #2600 > > │ v30: None -00:01:49 v #2601 > > │ closure0(v25, None) -00:01:49 v #2602 > > │ v30 = None -00:01:49 v #2603 > > │ if v22 == False: -00:01:49 v #2604 > > │ raise Exception(v25) -00:01:49 v #2605 > > │ -00:01:49 v #2606 > > │ -00:01:49 v #2607 > > │ -00:01:49 v #2608 > > │ method0() -00:01:49 v #2609 > > │ -00:01:49 v #2610 > > │ -00:01:49 v #2611 > > │ -00:01:49 v #2612 > > │ # spiral.process_python -00:01:49 v #2613 > > │ -00:01:49 v #2614 > > │ .fsx output: -00:01:49 v #2615 > > │ __assert_eq / actual: "1 -00:01:49 v #2616 > > │ 2 -00:01:49 v #2617 > > │ 3" / expected: "1 -00:01:49 v #2618 > > │ 2 -00:01:49 v #2619 > > │ 3" -00:01:49 v #2620 > > │ -00:01:49 v #2621 > > -00:01:49 v #2622 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:01:49 v #2623 > > │ ### concat_list -00:01:49 v #2624 > > -00:01:49 v #2625 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:49 v #2626 > > inl concat_list separator input = -00:01:49 v #2627 > > (input, { acc = ""; sep = "" }) -00:01:49 v #2628 > > ||> listm.foldBack fun (x : string) { acc sep } => -00:01:49 v #2629 > > { acc = $'!x + !sep + !acc + ""' : string; sep = separator } -00:01:49 v #2630 > > |> fun { acc } => acc -00:01:49 v #2631 > > -00:01:49 v #2632 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:49 v #2633 > > //// test -00:01:49 v #2634 > > ///! fsharp -00:01:49 v #2635 > > ///! cuda -00:01:49 v #2636 > > ///! rust -00:01:49 v #2637 > > ///! typescript -00:01:49 v #2638 > > ///! python -00:01:49 v #2639 > > //// print_code -00:01:49 v #2640 > > -00:01:49 v #2641 > > [[ -00:01:49 v #2642 > > "1" -00:01:49 v #2643 > > "2" -00:01:49 v #2644 > > "3" -00:01:49 v #2645 > > ]] -00:01:49 v #2646 > > |> fun x => -00:01:49 v #2647 > > inl code = (x : _) |> concat_list "\n" -00:01:49 v #2648 > > code -00:01:49 v #2649 > > |> _assert_eq "1\n2\n3" -00:01:52 v #2650 > > -00:01:52 v #2651 > > ── [ 3.12s - return value ] ──────────────────────────────────────────────────── -00:01:52 v #2652 > > │ -00:01:52 v #2653 > > │ .py output (Cuda): -00:01:52 v #2654 > > │ __assert_eq / actual: 1 -00:01:52 v #2655 > > │ 2 -00:01:52 v #2656 > > │ 3 / expected: 1 -00:01:52 v #2657 > > │ 2 -00:01:52 v #2658 > > │ 3 -00:01:52 v #2659 > > │ -00:01:52 v #2660 > > │ -00:01:52 v #2661 > > │ .rs output: -00:01:52 v #2662 > > │ __assert_eq / actual: "1 -00:01:52 v #2663 > > │ 2 -00:01:52 v #2664 > > │ 3" / expected: "1 -00:01:52 v #2665 > > │ 2 -00:01:52 v #2666 > > │ 3" -00:01:52 v #2667 > > │ -00:01:52 v #2668 > > │ -00:01:52 v #2669 > > │ .ts output: -00:01:52 v #2670 > > │ __assert_eq / actual: 1 -00:01:52 v #2671 > > │ 2 -00:01:52 v #2672 > > │ 3 / expected: 1 -00:01:52 v #2673 > > │ 2 -00:01:52 v #2674 > > │ 3 -00:01:52 v #2675 > > │ -00:01:52 v #2676 > > │ -00:01:52 v #2677 > > │ .py output: -00:01:52 v #2678 > > │ __assert_eq / actual: 1 -00:01:52 v #2679 > > │ 2 -00:01:52 v #2680 > > │ 3 / expected: 1 -00:01:52 v #2681 > > │ 2 -00:01:52 v #2682 > > │ 3 -00:01:52 v #2683 > > │ -00:01:52 v #2684 > > │ -00:01:52 v #2685 > > │ -00:01:52 v #2686 > > │ -00:01:52 v #2687 > > │ -00:01:52 v #2688 > > -00:01:52 v #2689 > > ── [ 3.12s - stdout ] ────────────────────────────────────────────────────────── -00:01:52 v #2690 > > │ .fsx: -00:01:52 v #2691 > > │ let rec method1 (v0 : bool) : bool = -00:01:52 v #2692 > > │ v0 -00:01:52 v #2693 > > │ and closure0 (v0 : string) () : unit = -00:01:52 v #2694 > > │ let v1 : (string -> unit) = System.Console.WriteLine -00:01:52 v #2695 > > │ v1 v0 -00:01:52 v #2696 > > │ and method0 () : unit = -00:01:52 v #2697 > > │ let v0 : string = "3" -00:01:52 v #2698 > > │ let v1 : string = "" -00:01:52 v #2699 > > │ let v2 : string = v0 + v1 + v1 + "" -00:01:52 v #2700 > > │ let v3 : string = "2" -00:01:52 v #2701 > > │ let v4 : string = "\n" -00:01:52 v #2702 > > │ let v5 : string = v3 + v4 + v2 + "" -00:01:52 v #2703 > > │ let v6 : string = "1" -00:01:52 v #2704 > > │ let v7 : string = v6 + v4 + v5 + "" -00:01:52 v #2705 > > │ let v8 : bool = v7 = "1\n2\n3" -00:01:52 v #2706 > > │ let v10 : bool = -00:01:52 v #2707 > > │ if v8 then -00:01:52 v #2708 > > │ true -00:01:52 v #2709 > > │ else -00:01:52 v #2710 > > │ method1(v8) -00:01:52 v #2711 > > │ let v11 : string = "__assert_eq" -00:01:52 v #2712 > > │ let v12 : string = "1\n2\n3" -00:01:52 v #2713 > > │ let v13 : string = $"{v11} / actual: %A{v7} / expected: -00:01:52 v #2714 > > %A{v12}" -00:01:52 v #2715 > > │ let v16 : unit = () -00:01:52 v #2716 > > │ let v17 : (unit -> unit) = closure0(v13) -00:01:52 v #2717 > > │ let v18 : unit = (fun () -> v17 (); v16) () -00:01:52 v #2718 > > │ let v20 : bool = v10 = false -00:01:52 v #2719 > > │ if v20 then -00:01:52 v #2720 > > │ failwith<unit> v13 -00:01:52 v #2721 > > │ method0() -00:01:52 v #2722 > > │ -00:01:52 v #2723 > > │ -00:01:52 v #2724 > > │ .rs: -00:01:52 v #2725 > > │ #![allow(dead_code)] -00:01:52 v #2726 > > │ #![allow(non_camel_case_types)] -00:01:52 v #2727 > > │ #![allow(non_snake_case)] -00:01:52 v #2728 > > │ #![allow(non_upper_case_globals)] -00:01:52 v #2729 > > │ #![allow(unreachable_code)] -00:01:52 v #2730 > > │ #![allow(unused_attributes)] -00:01:52 v #2731 > > │ #![allow(unused_imports)] -00:01:52 v #2732 > > │ #![allow(unused_macros)] -00:01:52 v #2733 > > │ #![allow(unused_parens)] -00:01:52 v #2734 > > │ #![allow(unused_variables)] -00:01:52 v #2735 > > │ #![allow(unused_assignments)] -00:01:52 v #2736 > > │ mod module_fa23a5e2 { -00:01:52 v #2737 > > │ pub mod Spiral { -00:01:52 v #2738 > > │ use super::*; -00:01:52 v #2739 > > │ use fable_library_rust::Native_::on_startup; -00:01:52 v #2740 > > │ use fable_library_rust::String_::printfn; -00:01:52 v #2741 > > │ use fable_library_rust::String_::sprintf; -00:01:52 v #2742 > > │ use fable_library_rust::String_::string; -00:01:52 v #2743 > > │ pub fn method1(v0: bool) -> bool { -00:01:52 v #2744 > > │ v0 -00:01:52 v #2745 > > │ } -00:01:52 v #2746 > > │ pub fn closure0(v0: string, unitVar: ()) { -00:01:52 v #2747 > > │ printfn!("{0}", v0); -00:01:52 v #2748 > > │ } -00:01:52 v #2749 > > │ pub fn method0() { -00:01:52 v #2750 > > │ let v7: string = string("1\n2\n3"); -00:01:52 v #2751 > > │ let v8: bool = (v7.clone()) == string("1\n2\n3"); -00:01:52 v #2752 > > │ let v10: bool = if v8 { true } else { -00:01:52 v #2753 > > Spiral::method1(v8) }; -00:01:52 v #2754 > > │ let v13: string = sprintf!( -00:01:52 v #2755 > > │ "{} / actual: {:?} / expected: {:?}", -00:01:52 v #2756 > > │ string("__assert_eq"), -00:01:52 v #2757 > > │ v7, -00:01:52 v #2758 > > │ string("1\n2\n3") -00:01:52 v #2759 > > │ ); -00:01:52 v #2760 > > │ let v18: () = { -00:01:52 v #2761 > > │ Spiral::closure0(v13.clone(), ()); -00:01:52 v #2762 > > │ () -00:01:52 v #2763 > > │ }; -00:01:52 v #2764 > > │ if (v10) == false { -00:01:52 v #2765 > > │ panic!("{}", v13,); -00:01:52 v #2766 > > │ } -00:01:52 v #2767 > > │ } -00:01:52 v #2768 > > │ // on_startup!(Spiral::method0()); -00:01:52 v #2769 > > │ } -00:01:52 v #2770 > > │ } -00:01:52 v #2771 > > │ pub use module_fa23a5e2::*; -00:01:52 v #2772 > > │ -00:01:52 v #2773 > > │ pub fn main() -> Result<(), String> { -00:01:52 v #2774 > > │ Ok(Spiral::method0()) -00:01:52 v #2775 > > │ } -00:01:52 v #2776 > > │ -00:01:52 v #2777 > > │ .ts: -00:01:52 v #2778 > > │ import { interpolate, toText } from -00:01:52 v #2779 > > "./fable_modules/fable-library-ts.5.0.0-alpha.2/String.js"; -00:01:52 v #2780 > > │ -00:01:52 v #2781 > > │ export function method1(v0: boolean): boolean { -00:01:52 v #2782 > > │ return v0; -00:01:52 v #2783 > > │ } -00:01:52 v #2784 > > │ -00:01:52 v #2785 > > │ export function closure0(v0: string, unitVar: void): void { -00:01:52 v #2786 > > │ console.log(v0); -00:01:52 v #2787 > > │ } -00:01:52 v #2788 > > │ -00:01:52 v #2789 > > │ export function method0(): void { -00:01:52 v #2790 > > │ const v7 = "1\n2\n3"; -00:01:52 v #2791 > > │ const v8: boolean = v7 === "1\n2\n3"; -00:01:52 v #2792 > > │ const v10: boolean = v8 ? true : method1(v8); -00:01:52 v #2793 > > │ const v13: string = toText(interpolate("%P() / actual: -00:01:52 v #2794 > > %A%P() / expected: %A%P()", ["__assert_eq", v7, "1\n2\n3"])); -00:01:52 v #2795 > > │ let v18: any; -00:01:52 v #2796 > > │ closure0(v13, undefined); -00:01:52 v #2797 > > │ v18 = undefined; -00:01:52 v #2798 > > │ if (v10 === false) { -00:01:52 v #2799 > > │ throw new Error(v13); -00:01:52 v #2800 > > │ } -00:01:52 v #2801 > > │ } -00:01:52 v #2802 > > │ -00:01:52 v #2803 > > │ method0(); -00:01:52 v #2804 > > │ -00:01:52 v #2805 > > │ -00:01:52 v #2806 > > │ -00:01:52 v #2807 > > │ // spiral.process_typescript -00:01:52 v #2808 > > │ -00:01:52 v #2809 > > │ .py: -00:01:52 v #2810 > > │ from fable_modules.fable_library.string_ import (to_text, -00:01:52 v #2811 > > interpolate) -00:01:52 v #2812 > > │ -00:01:52 v #2813 > > │ def method1(v0: bool) -> bool: -00:01:52 v #2814 > > │ return v0 -00:01:52 v #2815 > > │ -00:01:52 v #2816 > > │ -00:01:52 v #2817 > > │ def closure0(v0: str, unit_var: None) -> None: -00:01:52 v #2818 > > │ print(v0) -00:01:52 v #2819 > > │ -00:01:52 v #2820 > > │ -00:01:52 v #2821 > > │ def method0(__unit: None=None) -> None: -00:01:52 v #2822 > > │ v7: str = "1\n2\n3" -00:01:52 v #2823 > > │ v8: bool = v7 == "1\n2\n3" -00:01:52 v #2824 > > │ v10: bool = True if v8 else method1(v8) -00:01:52 v #2825 > > │ v13: str = to_text(interpolate("%P() / actual: %A%P() -00:01:52 v #2826 > > expected: %A%P()", ["__assert_eq", v7, "1\n2\n3"])) -00:01:52 v #2827 > > │ v18: None -00:01:52 v #2828 > > │ closure0(v13, None) -00:01:52 v #2829 > > │ v18 = None -00:01:52 v #2830 > > │ if v10 == False: -00:01:52 v #2831 > > │ raise Exception(v13) -00:01:52 v #2832 > > │ -00:01:52 v #2833 > > │ -00:01:52 v #2834 > > │ -00:01:52 v #2835 > > │ method0() -00:01:52 v #2836 > > │ -00:01:52 v #2837 > > │ -00:01:52 v #2838 > > │ -00:01:52 v #2839 > > │ # spiral.process_python -00:01:52 v #2840 > > │ -00:01:52 v #2841 > > │ .py (Cuda): -00:01:52 v #2842 > > │ kernel = r""" -00:01:52 v #2843 > > │ """ -00:01:52 v #2844 > > │ class static_array(): -00:01:52 v #2845 > > │ def __init__(self, length): -00:01:52 v #2846 > > │ self.ptr = [] -00:01:52 v #2847 > > │ for _ in range(length): -00:01:52 v #2848 > > │ self.ptr.append(None) -00:01:52 v #2849 > > │ -00:01:52 v #2850 > > │ def __getitem__(self, index): -00:01:52 v #2851 > > │ assert 0 <= index < len(self.ptr), "The get index -00:01:52 v #2852 > > needs to be in range." -00:01:52 v #2853 > > │ return self.ptr[index] -00:01:52 v #2854 > > │ -00:01:52 v #2855 > > │ def __setitem__(self, index, value): -00:01:52 v #2856 > > │ assert 0 <= index < len(self.ptr), "The set index -00:01:52 v #2857 > > needs to be in range." -00:01:52 v #2858 > > │ self.ptr[index] = value -00:01:52 v #2859 > > │ -00:01:52 v #2860 > > │ class static_array_list(static_array): -00:01:52 v #2861 > > │ def __init__(self, length): -00:01:52 v #2862 > > │ super().__init__(length) -00:01:52 v #2863 > > │ self.length = 0 -00:01:52 v #2864 > > │ -00:01:52 v #2865 > > │ def __getitem__(self, index): -00:01:52 v #2866 > > │ assert 0 <= index < self.length, "The get index needs -00:01:52 v #2867 > > to be in range." -00:01:52 v #2868 > > │ return self.ptr[index] -00:01:52 v #2869 > > │ -00:01:52 v #2870 > > │ def __setitem__(self, index, value): -00:01:52 v #2871 > > │ assert 0 <= index < self.length, "The set index needs -00:01:52 v #2872 > > to be in range." -00:01:52 v #2873 > > │ self.ptr[index] = value -00:01:52 v #2874 > > │ -00:01:52 v #2875 > > │ def push(self,value): -00:01:52 v #2876 > > │ assert (self.length < len(self.ptr)), "The length -00:01:52 v #2877 > > before pushing has to be less than the maximum length of the array." -00:01:52 v #2878 > > │ self.ptr[self.length] = value -00:01:52 v #2879 > > │ self.length += 1 -00:01:52 v #2880 > > │ -00:01:52 v #2881 > > │ def pop(self): -00:01:52 v #2882 > > │ assert (0 < self.length), "The length before popping -00:01:52 v #2883 > > has to be greater than 0." -00:01:52 v #2884 > > │ self.length -= 1 -00:01:52 v #2885 > > │ return self.ptr[self.length] -00:01:52 v #2886 > > │ -00:01:52 v #2887 > > │ def unsafe_set_length(self,i): -00:01:52 v #2888 > > │ assert 0 <= i <= len(self.ptr), "The new length has -00:01:52 v #2889 > > to be in range." -00:01:52 v #2890 > > │ self.length = i -00:01:52 v #2891 > > │ -00:01:52 v #2892 > > │ class dynamic_array(static_array): -00:01:52 v #2893 > > │ pass -00:01:52 v #2894 > > │ -00:01:52 v #2895 > > │ class dynamic_array_list(static_array_list): -00:01:52 v #2896 > > │ def length_(self): return self.length -00:01:52 v #2897 > > │ -00:01:52 v #2898 > > │ import cupy as cp -00:01:52 v #2899 > > │ import numpy as np -00:01:52 v #2900 > > │ from dataclasses import dataclass -00:01:52 v #2901 > > │ from typing import NamedTuple, Union, Callable, Tuple -00:01:52 v #2902 > > │ i8 = int; i16 = int; i32 = int; i64 = int; u8 = int; u16 = -00:01:52 v #2903 > > int; u32 = int; u64 = int; f32 = float; f64 = float; char = str; string = str -00:01:52 v #2904 > > │ cuda = False -00:01:52 v #2905 > > │ -00:01:52 v #2906 > > │ def method1(v0 : bool) -> bool: -00:01:52 v #2907 > > │ return v0 -00:01:52 v #2908 > > │ def method0() -> None: -00:01:52 v #2909 > > │ v0 = "3" -00:01:52 v #2910 > > │ v1 = "" -00:01:52 v #2911 > > │ v2 = v0 + v1 + v1 + "" -00:01:52 v #2912 > > │ del v0, v1 -00:01:52 v #2913 > > │ v3 = "2" -00:01:52 v #2914 > > │ v4 = "\n" -00:01:52 v #2915 > > │ v5 = v3 + v4 + v2 + "" -00:01:52 v #2916 > > │ del v2, v3 -00:01:52 v #2917 > > │ v6 = "1" -00:01:52 v #2918 > > │ v7 = v6 + v4 + v5 + "" -00:01:52 v #2919 > > │ del v4, v5, v6 -00:01:52 v #2920 > > │ v8 = v7 == "1\n2\n3" -00:01:52 v #2921 > > │ if v8: -00:01:52 v #2922 > > │ v10 = True -00:01:52 v #2923 > > │ else: -00:01:52 v #2924 > > │ v10 = method1(v8) -00:01:52 v #2925 > > │ del v8 -00:01:52 v #2926 > > │ v14 = "__assert_eq" -00:01:52 v #2927 > > │ v15 = "1\n2\n3" -00:01:52 v #2928 > > │ v16 = f"{v14} / actual: {v7} / expected: {v15}" -00:01:52 v #2929 > > │ del v7, v14, v15 -00:01:52 v #2930 > > │ print(v16) -00:01:52 v #2931 > > │ v22 = v10 == False -00:01:52 v #2932 > > │ del v10 -00:01:52 v #2933 > > │ if v22: -00:01:52 v #2934 > > │ del v22 -00:01:52 v #2935 > > │ raise Exception(v16) -00:01:52 v #2936 > > │ else: -00:01:52 v #2937 > > │ del v16, v22 -00:01:52 v #2938 > > │ return -00:01:52 v #2939 > > │ def main_body(): -00:01:52 v #2940 > > │ return method0() -00:01:52 v #2941 > > │ -00:01:52 v #2942 > > │ def main(): -00:01:52 v #2943 > > │ r = main_body() -00:01:52 v #2944 > > │ if cuda: cp.cuda.get_current_stream().synchronize() # -00:01:52 v #2945 > > This line is here so the `__trap()` calls on the kernel aren't missed. -00:01:52 v #2946 > > │ return r -00:01:52 v #2947 > > │ -00:01:52 v #2948 > > │ if __name__ == '__main__': result = main(); None if result is -00:01:52 v #2949 > > None else print(result) -00:01:52 v #2950 > > │ -00:01:52 v #2951 > > │ .fsx output: -00:01:52 v #2952 > > │ __assert_eq / actual: "1 -00:01:52 v #2953 > > │ 2 -00:01:52 v #2954 > > │ 3" / expected: "1 -00:01:52 v #2955 > > │ 2 -00:01:52 v #2956 > > │ 3" -00:01:52 v #2957 > > │ -00:01:52 v #2958 > > -00:01:52 v #2959 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:01:52 v #2960 > > │ ### concat_list_interpolation -00:01:52 v #2961 > > -00:01:52 v #2962 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:52 v #2963 > > inl concat_list_interpolation separator input = -00:01:52 v #2964 > > (input, { acc = ""; sep = "" }) -00:01:52 v #2965 > > ||> listm.foldBack fun (x : string) { acc sep } => -00:01:52 v #2966 > > backend_switch { -00:01:52 v #2967 > > Fsharp = fun () => { acc = $'$"{!x}{!sep}{!acc}"' : string; sep = -00:01:52 v #2968 > > separator } -00:01:52 v #2969 > > Python = fun () => { acc = $'f"{!x}{!sep}{!acc}"' : string; sep = -00:01:52 v #2970 > > separator } -00:01:52 v #2971 > > } -00:01:52 v #2972 > > |> fun { acc } => acc -00:01:53 v #2973 > > -00:01:53 v #2974 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:53 v #2975 > > //// test -00:01:53 v #2976 > > ///! fsharp -00:01:53 v #2977 > > ///! cuda -00:01:53 v #2978 > > ///! rust -00:01:53 v #2979 > > ///! typescript -00:01:53 v #2980 > > ///! python -00:01:53 v #2981 > > //// print_code -00:01:53 v #2982 > > -00:01:53 v #2983 > > [[ -00:01:53 v #2984 > > "1" -00:01:53 v #2985 > > "2" -00:01:53 v #2986 > > "3" -00:01:53 v #2987 > > ]] -00:01:53 v #2988 > > |> fun x => -00:01:53 v #2989 > > inl code = (x : _) |> concat_list_interpolation "\n" -00:01:53 v #2990 > > code -00:01:53 v #2991 > > |> _assert_eq "1\n2\n3" -00:01:56 v #2992 > > -00:01:56 v #2993 > > ── [ 3.37s - return value ] ──────────────────────────────────────────────────── -00:01:56 v #2994 > > │ -00:01:56 v #2995 > > │ .py output (Cuda): -00:01:56 v #2996 > > │ __assert_eq / actual: 1 -00:01:56 v #2997 > > │ 2 -00:01:56 v #2998 > > │ 3 / expected: 1 -00:01:56 v #2999 > > │ 2 -00:01:56 v #3000 > > │ 3 -00:01:56 v #3001 > > │ -00:01:56 v #3002 > > │ -00:01:56 v #3003 > > │ .rs output: -00:01:56 v #3004 > > │ __assert_eq / actual: "1 -00:01:56 v #3005 > > │ 2 -00:01:56 v #3006 > > │ 3" / expected: "1 -00:01:56 v #3007 > > │ 2 -00:01:56 v #3008 > > │ 3" -00:01:56 v #3009 > > │ -00:01:56 v #3010 > > │ -00:01:56 v #3011 > > │ .ts output: -00:01:56 v #3012 > > │ __assert_eq / actual: 1 -00:01:56 v #3013 > > │ 2 -00:01:56 v #3014 > > │ 3 / expected: 1 -00:01:56 v #3015 > > │ 2 -00:01:56 v #3016 > > │ 3 -00:01:56 v #3017 > > │ -00:01:56 v #3018 > > │ -00:01:56 v #3019 > > │ .py output: -00:01:56 v #3020 > > │ __assert_eq / actual: 1 -00:01:56 v #3021 > > │ 2 -00:01:56 v #3022 > > │ 3 / expected: 1 -00:01:56 v #3023 > > │ 2 -00:01:56 v #3024 > > │ 3 -00:01:56 v #3025 > > │ -00:01:56 v #3026 > > │ -00:01:56 v #3027 > > │ -00:01:56 v #3028 > > │ -00:01:56 v #3029 > > │ -00:01:56 v #3030 > > -00:01:56 v #3031 > > ── [ 3.37s - stdout ] ────────────────────────────────────────────────────────── -00:01:56 v #3032 > > │ .fsx: -00:01:56 v #3033 > > │ let rec method1 (v0 : bool) : bool = -00:01:56 v #3034 > > │ v0 -00:01:56 v #3035 > > │ and closure0 (v0 : string) () : unit = -00:01:56 v #3036 > > │ let v1 : (string -> unit) = System.Console.WriteLine -00:01:56 v #3037 > > │ v1 v0 -00:01:56 v #3038 > > │ and method0 () : unit = -00:01:56 v #3039 > > │ let v0 : string = "3" -00:01:56 v #3040 > > │ let v1 : string = "" -00:01:56 v #3041 > > │ let v2 : string = $"{v0}{v1}{v1}" -00:01:56 v #3042 > > │ let v7 : string = "\n" -00:01:56 v #3043 > > │ let v8 : string = "2" -00:01:56 v #3044 > > │ let v9 : string = $"{v8}{v7}{v2}" -00:01:56 v #3045 > > │ let v13 : string = "1" -00:01:56 v #3046 > > │ let v14 : string = $"{v13}{v7}{v9}" -00:01:56 v #3047 > > │ let v18 : bool = v14 = "1\n2\n3" -00:01:56 v #3048 > > │ let v20 : bool = -00:01:56 v #3049 > > │ if v18 then -00:01:56 v #3050 > > │ true -00:01:56 v #3051 > > │ else -00:01:56 v #3052 > > │ method1(v18) -00:01:56 v #3053 > > │ let v21 : string = "__assert_eq" -00:01:56 v #3054 > > │ let v22 : string = "1\n2\n3" -00:01:56 v #3055 > > │ let v23 : string = $"{v21} / actual: %A{v14} / expected: -00:01:56 v #3056 > > %A{v22}" -00:01:56 v #3057 > > │ let v26 : unit = () -00:01:56 v #3058 > > │ let v27 : (unit -> unit) = closure0(v23) -00:01:56 v #3059 > > │ let v28 : unit = (fun () -> v27 (); v26) () -00:01:56 v #3060 > > │ let v30 : bool = v20 = false -00:01:56 v #3061 > > │ if v30 then -00:01:56 v #3062 > > │ failwith<unit> v23 -00:01:56 v #3063 > > │ method0() -00:01:56 v #3064 > > │ -00:01:56 v #3065 > > │ -00:01:56 v #3066 > > │ .rs: -00:01:56 v #3067 > > │ #![allow(dead_code)] -00:01:56 v #3068 > > │ #![allow(non_camel_case_types)] -00:01:56 v #3069 > > │ #![allow(non_snake_case)] -00:01:56 v #3070 > > │ #![allow(non_upper_case_globals)] -00:01:56 v #3071 > > │ #![allow(unreachable_code)] -00:01:56 v #3072 > > │ #![allow(unused_attributes)] -00:01:56 v #3073 > > │ #![allow(unused_imports)] -00:01:56 v #3074 > > │ #![allow(unused_macros)] -00:01:56 v #3075 > > │ #![allow(unused_parens)] -00:01:56 v #3076 > > │ #![allow(unused_variables)] -00:01:56 v #3077 > > │ #![allow(unused_assignments)] -00:01:56 v #3078 > > │ mod module_5bddefcc { -00:01:56 v #3079 > > │ pub mod Spiral { -00:01:56 v #3080 > > │ use super::*; -00:01:56 v #3081 > > │ use fable_library_rust::NativeArray_::new_array; -00:01:56 v #3082 > > │ use fable_library_rust::Native_::on_startup; -00:01:56 v #3083 > > │ use fable_library_rust::String_::concat; -00:01:56 v #3084 > > │ use fable_library_rust::String_::printfn; -00:01:56 v #3085 > > │ use fable_library_rust::String_::sprintf; -00:01:56 v #3086 > > │ use fable_library_rust::String_::string; -00:01:56 v #3087 > > │ pub fn method1(v0: bool) -> bool { -00:01:56 v #3088 > > │ v0 -00:01:56 v #3089 > > │ } -00:01:56 v #3090 > > │ pub fn closure0(v0: string, unitVar: ()) { -00:01:56 v #3091 > > │ printfn!("{0}", v0); -00:01:56 v #3092 > > │ } -00:01:56 v #3093 > > │ pub fn method0() { -00:01:56 v #3094 > > │ let v14: string = concat(new_array(&[ -00:01:56 v #3095 > > │ string("1"), -00:01:56 v #3096 > > │ string("\n"), -00:01:56 v #3097 > > │ concat(new_array(&[ -00:01:56 v #3098 > > │ string("2"), -00:01:56 v #3099 > > │ string("\n"), -00:01:56 v #3100 > > │ concat(new_array(&[string("3"), -00:01:56 v #3101 > > string(""), string("")])), -00:01:56 v #3102 > > │ ])), -00:01:56 v #3103 > > │ ])); -00:01:56 v #3104 > > │ let v18: bool = (v14.clone()) == -00:01:56 v #3105 > > string("1\n2\n3"); -00:01:56 v #3106 > > │ let v20: bool = if v18 { true } else { -00:01:56 v #3107 > > Spiral::method1(v18) }; -00:01:56 v #3108 > > │ let v23: string = sprintf!( -00:01:56 v #3109 > > │ "{} / actual: {:?} / expected: {:?}", -00:01:56 v #3110 > > │ string("__assert_eq"), -00:01:56 v #3111 > > │ v14, -00:01:56 v #3112 > > │ string("1\n2\n3") -00:01:56 v #3113 > > │ ); -00:01:56 v #3114 > > │ let v28: () = { -00:01:56 v #3115 > > │ Spiral::closure0(v23.clone(), ()); -00:01:56 v #3116 > > │ () -00:01:56 v #3117 > > │ }; -00:01:56 v #3118 > > │ if (v20) == false { -00:01:56 v #3119 > > │ panic!("{}", v23,); -00:01:56 v #3120 > > │ } -00:01:56 v #3121 > > │ } -00:01:56 v #3122 > > │ // on_startup!(Spiral::method0()); -00:01:56 v #3123 > > │ } -00:01:56 v #3124 > > │ } -00:01:56 v #3125 > > │ pub use module_5bddefcc::*; -00:01:56 v #3126 > > │ -00:01:56 v #3127 > > │ pub fn main() -> Result<(), String> { -00:01:56 v #3128 > > │ Ok(Spiral::method0()) -00:01:56 v #3129 > > │ } -00:01:56 v #3130 > > │ -00:01:56 v #3131 > > │ .ts: -00:01:56 v #3132 > > │ import { interpolate, toText, concat } from -00:01:56 v #3133 > > "./fable_modules/fable-library-ts.5.0.0-alpha.2/String.js"; -00:01:56 v #3134 > > │ -00:01:56 v #3135 > > │ export function method1(v0: boolean): boolean { -00:01:56 v #3136 > > │ return v0; -00:01:56 v #3137 > > │ } -00:01:56 v #3138 > > │ -00:01:56 v #3139 > > │ export function closure0(v0: string, unitVar: void): void { -00:01:56 v #3140 > > │ console.log(v0); -00:01:56 v #3141 > > │ } -00:01:56 v #3142 > > │ -00:01:56 v #3143 > > │ export function method0(): void { -00:01:56 v #3144 > > │ const v14: string = concat("1", "\n", ...concat("2", -00:01:56 v #3145 > > "\n", ...concat("3", "", ...""))); -00:01:56 v #3146 > > │ const v18: boolean = v14 === "1\n2\n3"; -00:01:56 v #3147 > > │ const v20: boolean = v18 ? true : method1(v18); -00:01:56 v #3148 > > │ const v23: string = toText(interpolate("%P() / actual: -00:01:56 v #3149 > > %A%P() / expected: %A%P()", ["__assert_eq", v14, "1\n2\n3"])); -00:01:56 v #3150 > > │ let v28: any; -00:01:56 v #3151 > > │ closure0(v23, undefined); -00:01:56 v #3152 > > │ v28 = undefined; -00:01:56 v #3153 > > │ if (v20 === false) { -00:01:56 v #3154 > > │ throw new Error(v23); -00:01:56 v #3155 > > │ } -00:01:56 v #3156 > > │ } -00:01:56 v #3157 > > │ -00:01:56 v #3158 > > │ method0(); -00:01:56 v #3159 > > │ -00:01:56 v #3160 > > │ -00:01:56 v #3161 > > │ -00:01:56 v #3162 > > │ // spiral.process_typescript -00:01:56 v #3163 > > │ -00:01:56 v #3164 > > │ .py: -00:01:56 v #3165 > > │ from fable_modules.fable_library.string_ import (concat, -00:01:56 v #3166 > > to_text, interpolate) -00:01:56 v #3167 > > │ -00:01:56 v #3168 > > │ def method1(v0: bool) -> bool: -00:01:56 v #3169 > > │ return v0 -00:01:56 v #3170 > > │ -00:01:56 v #3171 > > │ -00:01:56 v #3172 > > │ def closure0(v0: str, unit_var: None) -> None: -00:01:56 v #3173 > > │ print(v0) -00:01:56 v #3174 > > │ -00:01:56 v #3175 > > │ -00:01:56 v #3176 > > │ def method0(__unit: None=None) -> None: -00:01:56 v #3177 > > │ v14: str = concat("1", "\n", *concat("2", "\n", -00:01:56 v #3178 > > *concat("3", "", *""))) -00:01:56 v #3179 > > │ v18: bool = v14 == "1\n2\n3" -00:01:56 v #3180 > > │ v20: bool = True if v18 else method1(v18) -00:01:56 v #3181 > > │ v23: str = to_text(interpolate("%P() / actual: %A%P() -00:01:56 v #3182 > > expected: %A%P()", ["__assert_eq", v14, "1\n2\n3"])) -00:01:56 v #3183 > > │ v28: None -00:01:56 v #3184 > > │ closure0(v23, None) -00:01:56 v #3185 > > │ v28 = None -00:01:56 v #3186 > > │ if v20 == False: -00:01:56 v #3187 > > │ raise Exception(v23) -00:01:56 v #3188 > > │ -00:01:56 v #3189 > > │ -00:01:56 v #3190 > > │ -00:01:56 v #3191 > > │ method0() -00:01:56 v #3192 > > │ -00:01:56 v #3193 > > │ -00:01:56 v #3194 > > │ -00:01:56 v #3195 > > │ # spiral.process_python -00:01:56 v #3196 > > │ -00:01:56 v #3197 > > │ .py (Cuda): -00:01:56 v #3198 > > │ kernel = r""" -00:01:56 v #3199 > > │ """ -00:01:56 v #3200 > > │ class static_array(): -00:01:56 v #3201 > > │ def __init__(self, length): -00:01:56 v #3202 > > │ self.ptr = [] -00:01:56 v #3203 > > │ for _ in range(length): -00:01:56 v #3204 > > │ self.ptr.append(None) -00:01:56 v #3205 > > │ -00:01:56 v #3206 > > │ def __getitem__(self, index): -00:01:56 v #3207 > > │ assert 0 <= index < len(self.ptr), "The get index -00:01:56 v #3208 > > needs to be in range." -00:01:56 v #3209 > > │ return self.ptr[index] -00:01:56 v #3210 > > │ -00:01:56 v #3211 > > │ def __setitem__(self, index, value): -00:01:56 v #3212 > > │ assert 0 <= index < len(self.ptr), "The set index -00:01:56 v #3213 > > needs to be in range." -00:01:56 v #3214 > > │ self.ptr[index] = value -00:01:56 v #3215 > > │ -00:01:56 v #3216 > > │ class static_array_list(static_array): -00:01:56 v #3217 > > │ def __init__(self, length): -00:01:56 v #3218 > > │ super().__init__(length) -00:01:56 v #3219 > > │ self.length = 0 -00:01:56 v #3220 > > │ -00:01:56 v #3221 > > │ def __getitem__(self, index): -00:01:56 v #3222 > > │ assert 0 <= index < self.length, "The get index needs -00:01:56 v #3223 > > to be in range." -00:01:56 v #3224 > > │ return self.ptr[index] -00:01:56 v #3225 > > │ -00:01:56 v #3226 > > │ def __setitem__(self, index, value): -00:01:56 v #3227 > > │ assert 0 <= index < self.length, "The set index needs -00:01:56 v #3228 > > to be in range." -00:01:56 v #3229 > > │ self.ptr[index] = value -00:01:56 v #3230 > > │ -00:01:56 v #3231 > > │ def push(self,value): -00:01:56 v #3232 > > │ assert (self.length < len(self.ptr)), "The length -00:01:56 v #3233 > > before pushing has to be less than the maximum length of the array." -00:01:56 v #3234 > > │ self.ptr[self.length] = value -00:01:56 v #3235 > > │ self.length += 1 -00:01:56 v #3236 > > │ -00:01:56 v #3237 > > │ def pop(self): -00:01:56 v #3238 > > │ assert (0 < self.length), "The length before popping -00:01:56 v #3239 > > has to be greater than 0." -00:01:56 v #3240 > > │ self.length -= 1 -00:01:56 v #3241 > > │ return self.ptr[self.length] -00:01:56 v #3242 > > │ -00:01:56 v #3243 > > │ def unsafe_set_length(self,i): -00:01:56 v #3244 > > │ assert 0 <= i <= len(self.ptr), "The new length has -00:01:56 v #3245 > > to be in range." -00:01:56 v #3246 > > │ self.length = i -00:01:56 v #3247 > > │ -00:01:56 v #3248 > > │ class dynamic_array(static_array): -00:01:56 v #3249 > > │ pass -00:01:56 v #3250 > > │ -00:01:56 v #3251 > > │ class dynamic_array_list(static_array_list): -00:01:56 v #3252 > > │ def length_(self): return self.length -00:01:56 v #3253 > > │ -00:01:56 v #3254 > > │ import cupy as cp -00:01:56 v #3255 > > │ import numpy as np -00:01:56 v #3256 > > │ from dataclasses import dataclass -00:01:56 v #3257 > > │ from typing import NamedTuple, Union, Callable, Tuple -00:01:56 v #3258 > > │ i8 = int; i16 = int; i32 = int; i64 = int; u8 = int; u16 = -00:01:56 v #3259 > > int; u32 = int; u64 = int; f32 = float; f64 = float; char = str; string = str -00:01:56 v #3260 > > │ cuda = False -00:01:56 v #3261 > > │ -00:01:56 v #3262 > > │ def method1(v0 : bool) -> bool: -00:01:56 v #3263 > > │ return v0 -00:01:56 v #3264 > > │ def method0() -> None: -00:01:56 v #3265 > > │ v4 = "3" -00:01:56 v #3266 > > │ v5 = "" -00:01:56 v #3267 > > │ v6 = f"{v4}{v5}{v5}" -00:01:56 v #3268 > > │ del v4, v5 -00:01:56 v #3269 > > │ v9 = "\n" -00:01:56 v #3270 > > │ v12 = "2" -00:01:56 v #3271 > > │ v13 = f"{v12}{v9}{v6}" -00:01:56 v #3272 > > │ del v6, v12 -00:01:56 v #3273 > > │ v18 = "1" -00:01:56 v #3274 > > │ v19 = f"{v18}{v9}{v13}" -00:01:56 v #3275 > > │ del v9, v13, v18 -00:01:56 v #3276 > > │ v22 = v19 == "1\n2\n3" -00:01:56 v #3277 > > │ if v22: -00:01:56 v #3278 > > │ v24 = True -00:01:56 v #3279 > > │ else: -00:01:56 v #3280 > > │ v24 = method1(v22) -00:01:56 v #3281 > > │ del v22 -00:01:56 v #3282 > > │ v28 = "__assert_eq" -00:01:56 v #3283 > > │ v29 = "1\n2\n3" -00:01:56 v #3284 > > │ v30 = f"{v28} / actual: {v19} / expected: {v29}" -00:01:56 v #3285 > > │ del v19, v28, v29 -00:01:56 v #3286 > > │ print(v30) -00:01:56 v #3287 > > │ v36 = v24 == False -00:01:56 v #3288 > > │ del v24 -00:01:56 v #3289 > > │ if v36: -00:01:56 v #3290 > > │ del v36 -00:01:56 v #3291 > > │ raise Exception(v30) -00:01:56 v #3292 > > │ else: -00:01:56 v #3293 > > │ del v30, v36 -00:01:56 v #3294 > > │ return -00:01:56 v #3295 > > │ def main_body(): -00:01:56 v #3296 > > │ return method0() -00:01:56 v #3297 > > │ -00:01:56 v #3298 > > │ def main(): -00:01:56 v #3299 > > │ r = main_body() -00:01:56 v #3300 > > │ if cuda: cp.cuda.get_current_stream().synchronize() # -00:01:56 v #3301 > > This line is here so the `__trap()` calls on the kernel aren't missed. -00:01:56 v #3302 > > │ return r -00:01:56 v #3303 > > │ -00:01:56 v #3304 > > │ if __name__ == '__main__': result = main(); None if result is -00:01:56 v #3305 > > None else print(result) -00:01:56 v #3306 > > │ -00:01:56 v #3307 > > │ .fsx output: -00:01:56 v #3308 > > │ __assert_eq / actual: "1 -00:01:56 v #3309 > > │ 2 -00:01:56 v #3310 > > │ 3" / expected: "1 -00:01:56 v #3311 > > │ 2 -00:01:56 v #3312 > > │ 3" -00:01:56 v #3313 > > │ -00:01:56 v #3314 > > -00:01:56 v #3315 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:01:56 v #3316 > > │ ### ellipsis -00:01:56 v #3317 > > -00:01:56 v #3318 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:56 v #3319 > > inl ellipsis (max : i32) (s : string) = -00:01:56 v #3320 > > if sm.length s <= max -00:01:56 v #3321 > > then s -00:01:56 v #3322 > > else s |> slice 0 (max - 1) |> fun x => $'!x + "..."' -00:01:56 v #3323 > > -00:01:56 v #3324 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:56 v #3325 > > //// test -00:01:56 v #3326 > > ///! fsharp -00:01:56 v #3327 > > ///! cuda -00:01:56 v #3328 > > ///! rust -00:01:56 v #3329 > > ///! typescript -00:01:56 v #3330 > > ///! python -00:01:56 v #3331 > > -00:01:56 v #3332 > > "12345" -00:01:56 v #3333 > > |> ellipsis 2 -00:01:56 v #3334 > > |> _assert_eq "12..." -00:01:56 v #3335 > > -00:01:56 v #3336 > > "12345" -00:01:56 v #3337 > > |> ellipsis 4 -00:01:56 v #3338 > > |> _assert_eq "1234..." -00:01:59 v #3339 > > -00:01:59 v #3340 > > ── [ 3.05s - return value ] ──────────────────────────────────────────────────── -00:01:59 v #3341 > > │ -00:01:59 v #3342 > > │ .py output (Cuda): -00:01:59 v #3343 > > │ __assert_eq / actual: 12... / expected: 12... -00:01:59 v #3344 > > │ __assert_eq / actual: 1234... / expected: 1234... -00:01:59 v #3345 > > │ -00:01:59 v #3346 > > │ -00:01:59 v #3347 > > │ .rs output: -00:01:59 v #3348 > > │ __assert_eq / actual: "12..." / expected: "12..." -00:01:59 v #3349 > > │ __assert_eq / actual: "1234..." / expected: "1234..." -00:01:59 v #3350 > > │ -00:01:59 v #3351 > > │ -00:01:59 v #3352 > > │ .ts output: -00:01:59 v #3353 > > │ __assert_eq / actual: 12... / expected: 12... -00:01:59 v #3354 > > │ __assert_eq / actual: 1234... / expected: 1234... -00:01:59 v #3355 > > │ -00:01:59 v #3356 > > │ -00:01:59 v #3357 > > │ .py output: -00:01:59 v #3358 > > │ __assert_eq / actual: 12... / expected: 12... -00:01:59 v #3359 > > │ __assert_eq / actual: 1234... / expected: 1234... -00:01:59 v #3360 > > │ -00:02:00 v #3361 > > │ -00:02:00 v #3362 > > │ -00:02:00 v #3363 > > -00:02:00 v #3364 > > ── [ 3.05s - stdout ] ────────────────────────────────────────────────────────── -00:02:00 v #3365 > > │ .fsx output: -00:02:00 v #3366 > > │ __assert_eq / actual: "12..." / expected: "12..." -00:02:00 v #3367 > > │ __assert_eq / actual: "1234..." / expected: "1234..." -00:02:00 v #3368 > > │ -00:02:00 v #3369 > > -00:02:00 v #3370 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:00 v #3371 > > │ ## fsharp -00:02:00 v #3372 > > -00:02:00 v #3373 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:00 v #3374 > > │ ### last_index_of -00:02:00 v #3375 > > -00:02:00 v #3376 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:00 v #3377 > > inl last_index_of (search : string) (s : string) : i32 = -00:02:00 v #3378 > > $'!s.LastIndexOf !search ' -00:02:00 v #3379 > > -00:02:00 v #3380 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:00 v #3381 > > │ ### index_of -00:02:00 v #3382 > > -00:02:00 v #3383 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:00 v #3384 > > inl index_of (search : string) (s : string) : i32 = -00:02:00 v #3385 > > backend_switch { -00:02:00 v #3386 > > Fsharp = fun () => $'!s.IndexOf !search ' : i32 -00:02:00 v #3387 > > Python = fun () => $'!s.find(!search)' : i32 -00:02:00 v #3388 > > } -00:02:00 v #3389 > > -00:02:00 v #3390 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:00 v #3391 > > │ ### replicate -00:02:00 v #3392 > > -00:02:00 v #3393 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:00 v #3394 > > inl replicate (n : int) (s : string) : string = -00:02:00 v #3395 > > inl rec body i acc = -00:02:00 v #3396 > > if i >= n -00:02:00 v #3397 > > then acc -00:02:00 v #3398 > > else loop (i + 1) (acc +. s) -00:02:00 v #3399 > > and inl loop i = join_body_unit body n i -00:02:00 v #3400 > > loop 0 "" -00:02:01 v #3401 > > -00:02:01 v #3402 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:01 v #3403 > > //// test -00:02:01 v #3404 > > ///! fsharp -00:02:01 v #3405 > > //// print_code -00:02:01 v #3406 > > -00:02:01 v #3407 > > "12" -00:02:01 v #3408 > > |> replicate 3 -00:02:01 v #3409 > > |> _assert_eq "121212" -00:02:01 v #3410 > > -00:02:01 v #3411 > > ── [ 474.89ms - stdout ] ─────────────────────────────────────────────────────── -00:02:01 v #3412 > > │ .fsx: -00:02:01 v #3413 > > │ let rec method1 (v0 : bool) : bool = -00:02:01 v #3414 > > │ v0 -00:02:01 v #3415 > > │ and closure0 (v0 : string) () : unit = -00:02:01 v #3416 > > │ let v1 : (string -> unit) = System.Console.WriteLine -00:02:01 v #3417 > > │ v1 v0 -00:02:01 v #3418 > > │ and method0 () : unit = -00:02:01 v #3419 > > │ let v0 : string = "" -00:02:01 v #3420 > > │ let v1 : string = "12" -00:02:01 v #3421 > > │ let v2 : string = v0 + v1 -00:02:01 v #3422 > > │ let v3 : string = v2 + v1 -00:02:01 v #3423 > > │ let v4 : string = v3 + v1 -00:02:01 v #3424 > > │ let v5 : bool = v4 = "121212" -00:02:01 v #3425 > > │ let v7 : bool = -00:02:01 v #3426 > > │ if v5 then -00:02:01 v #3427 > > │ true -00:02:01 v #3428 > > │ else -00:02:01 v #3429 > > │ method1(v5) -00:02:01 v #3430 > > │ let v8 : string = "__assert_eq" -00:02:01 v #3431 > > │ let v9 : string = "121212" -00:02:01 v #3432 > > │ let v10 : string = $"{v8} / actual: %A{v4} / expected: -00:02:01 v #3433 > > %A{v9}" -00:02:01 v #3434 > > │ let v13 : unit = () -00:02:01 v #3435 > > │ let v14 : (unit -> unit) = closure0(v10) -00:02:01 v #3436 > > │ let v15 : unit = (fun () -> v14 (); v13) () -00:02:01 v #3437 > > │ let v17 : bool = v7 = false -00:02:01 v #3438 > > │ if v17 then -00:02:01 v #3439 > > │ failwith<unit> v10 -00:02:01 v #3440 > > │ method0() -00:02:01 v #3441 > > │ -00:02:01 v #3442 > > │ -00:02:01 v #3443 > > │ __assert_eq / actual: "121212" / expected: "121212" -00:02:01 v #3444 > > │ -00:02:01 v #3445 > > -00:02:01 v #3446 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:01 v #3447 > > //// test -00:02:01 v #3448 > > ///! fsharp -00:02:01 v #3449 > > ///! cuda -00:02:01 v #3450 > > ///! rust -00:02:01 v #3451 > > ///! typescript -00:02:01 v #3452 > > ///! python -00:02:01 v #3453 > > -00:02:01 v #3454 > > "12" -00:02:01 v #3455 > > |> replicate 3 -00:02:01 v #3456 > > |> _assert_eq "121212" -00:02:04 v #3457 > > -00:02:04 v #3458 > > ── [ 3.15s - return value ] ──────────────────────────────────────────────────── -00:02:04 v #3459 > > │ .py output (Cuda): -00:02:04 v #3460 > > │ __assert_eq / actual: 121212 / expected: 121212 -00:02:04 v #3461 > > │ -00:02:04 v #3462 > > │ .rs output: -00:02:04 v #3463 > > │ __assert_eq / actual: "121212" / expected: "121212" -00:02:04 v #3464 > > │ -00:02:04 v #3465 > > │ .ts output: -00:02:04 v #3466 > > │ __assert_eq / actual: 121212 / expected: 121212 -00:02:04 v #3467 > > │ -00:02:04 v #3468 > > │ .py output: -00:02:04 v #3469 > > │ __assert_eq / actual: 121212 / expected: 121212 -00:02:04 v #3470 > > │ -00:02:04 v #3471 > > │ -00:02:04 v #3472 > > -00:02:04 v #3473 > > ── [ 3.15s - stdout ] ────────────────────────────────────────────────────────── -00:02:04 v #3474 > > │ .fsx output: -00:02:04 v #3475 > > │ __assert_eq / actual: "121212" / expected: "121212" -00:02:04 v #3476 > > │ -00:02:04 v #3477 > > -00:02:04 v #3478 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:04 v #3479 > > │ ### obj_to_string -00:02:04 v #3480 > > -00:02:04 v #3481 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:04 v #3482 > > inl obj_to_string x : string = -00:02:04 v #3483 > > backend_switch { -00:02:04 v #3484 > > Fsharp = fun () => x |> $'_.ToString()' : string -00:02:04 v #3485 > > Python = fun () => $'str(!x)' : string -00:02:04 v #3486 > > } -00:02:05 v #3487 > > -00:02:05 v #3488 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:05 v #3489 > > │ ### pad_left -00:02:05 v #3490 > > -00:02:05 v #3491 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:05 v #3492 > > inl pad_left (total_width : int) (padding_char : char) (s : string) : string = -00:02:05 v #3493 > > inl padding = padding_char |> obj_to_string |> replicate (total_width - -00:02:05 v #3494 > > length s) -00:02:05 v #3495 > > padding +. s -00:02:05 v #3496 > > -00:02:05 v #3497 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:05 v #3498 > > │ ### pad_right -00:02:05 v #3499 > > -00:02:05 v #3500 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:05 v #3501 > > inl pad_right (total_width : int) (padding_char : char) (s : string) : string = -00:02:05 v #3502 > > inl padding = padding_char |> obj_to_string |> replicate (total_width - -00:02:05 v #3503 > > length s) -00:02:05 v #3504 > > s +. padding -00:02:06 v #3505 > > -00:02:06 v #3506 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:06 v #3507 > > //// test -00:02:06 v #3508 > > ///! fsharp -00:02:06 v #3509 > > ///! cuda -00:02:06 v #3510 > > ///! rust -00:02:06 v #3511 > > ///! typescript -00:02:06 v #3512 > > ///! python -00:02:06 v #3513 > > -00:02:06 v #3514 > > "123" -00:02:06 v #3515 > > |> pad_right 6 ' ' -00:02:06 v #3516 > > |> _assert_eq "123 " -00:02:09 v #3517 > > -00:02:09 v #3518 > > ── [ 3.29s - return value ] ──────────────────────────────────────────────────── -00:02:09 v #3519 > > │ .py output (Cuda): -00:02:09 v #3520 > > │ __assert_eq / actual: 123 / expected: 123 -00:02:09 v #3521 > > │ -00:02:09 v #3522 > > │ .rs output: -00:02:09 v #3523 > > │ __assert_eq / actual: "123 " / expected: "123 " -00:02:09 v #3524 > > │ -00:02:09 v #3525 > > │ .ts output: -00:02:09 v #3526 > > │ __assert_eq / actual: 123 / expected: 123 -00:02:09 v #3527 > > │ -00:02:09 v #3528 > > │ .py output: -00:02:09 v #3529 > > │ __assert_eq / actual: 123 / expected: 123 -00:02:09 v #3530 > > │ -00:02:09 v #3531 > > │ -00:02:09 v #3532 > > -00:02:09 v #3533 > > ── [ 3.29s - stdout ] ────────────────────────────────────────────────────────── -00:02:09 v #3534 > > │ .fsx output: -00:02:09 v #3535 > > │ __assert_eq / actual: "123 " / expected: "123 " -00:02:09 v #3536 > > │ -00:02:09 v #3537 > > -00:02:09 v #3538 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:09 v #3539 > > │ ### convert_to_utf32 -00:02:09 v #3540 > > -00:02:09 v #3541 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:09 v #3542 > > inl convert_to_utf32 (c : char) : int = -00:02:09 v #3543 > > backend_switch { -00:02:09 v #3544 > > Fsharp = fun () => -00:02:09 v #3545 > > run_target_args' c function -00:02:09 v #3546 > > | Fsharp (Native) => fun c => $'System.Char.ConvertToUtf32 (string -00:02:09 v #3547 > > !c, 0)' : int -00:02:09 v #3548 > > | _ => fun c => c |> i32 -00:02:09 v #3549 > > Python = fun () => $'ord(!c)' : int -00:02:09 v #3550 > > } -00:02:09 v #3551 > > -00:02:09 v #3552 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:09 v #3553 > > │ ### ends_with -00:02:09 v #3554 > > -00:02:09 v #3555 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:09 v #3556 > > inl ends_with (value : string) (s : string) : bool = -00:02:09 v #3557 > > backend_switch { -00:02:09 v #3558 > > Fsharp = fun () => $'!s.EndsWith (!value, false, null)' : bool -00:02:09 v #3559 > > Python = fun () => $'!s.endswith(!value)' : bool -00:02:09 v #3560 > > } -00:02:10 v #3561 > > -00:02:10 v #3562 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:10 v #3563 > > │ ### starts_with -00:02:10 v #3564 > > -00:02:10 v #3565 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:10 v #3566 > > inl starts_with (value : string) (s : string) : bool = -00:02:10 v #3567 > > backend_switch { -00:02:10 v #3568 > > Fsharp = fun () => $'!s.StartsWith (!value, false, null)' : bool -00:02:10 v #3569 > > Python = fun () => $'!s.startswith(!value)' : bool -00:02:10 v #3570 > > } -00:02:10 v #3571 > > -00:02:10 v #3572 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:10 v #3573 > > │ ### is_white_space -00:02:10 v #3574 > > -00:02:10 v #3575 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:10 v #3576 > > inl is_white_space (c : char) : bool = -00:02:10 v #3577 > > c |> $'System.Char.IsWhiteSpace' -00:02:11 v #3578 > > -00:02:11 v #3579 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:11 v #3580 > > │ ### substring -00:02:11 v #3581 > > -00:02:11 v #3582 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:11 v #3583 > > inl substring (start : i32) (len : i32) (str : string) : string = -00:02:11 v #3584 > > $'!str.Substring (!start, !len)' -00:02:11 v #3585 > > -00:02:11 v #3586 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:11 v #3587 > > │ ### to_lower -00:02:11 v #3588 > > -00:02:11 v #3589 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:11 v #3590 > > inl to_lower (input : string) : string = -00:02:11 v #3591 > > backend_switch { -00:02:11 v #3592 > > Fsharp = fun () => $'!input.ToLower' () : string -00:02:11 v #3593 > > Python = fun () => $'!input.lower()' : string -00:02:11 v #3594 > > } -00:02:12 v #3595 > > -00:02:12 v #3596 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:12 v #3597 > > │ ### to_upper -00:02:12 v #3598 > > -00:02:12 v #3599 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:12 v #3600 > > inl to_upper (input : string) : string = -00:02:12 v #3601 > > $'!input.ToUpper' () -00:02:12 v #3602 > > -00:02:12 v #3603 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:12 v #3604 > > │ ### char_to_upper -00:02:12 v #3605 > > -00:02:12 v #3606 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:12 v #3607 > > inl char_to_upper (input : char) : char = -00:02:12 v #3608 > > backend_switch { -00:02:12 v #3609 > > Fsharp = fun () => $'System.Char.ToUpper !input ' : char -00:02:12 v #3610 > > Python = fun () => $'!input.upper()' : char -00:02:12 v #3611 > > } -00:02:13 v #3612 > > -00:02:13 v #3613 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:13 v #3614 > > │ ### string_builder -00:02:13 v #3615 > > -00:02:13 v #3616 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:13 v #3617 > > nominal string_builder_python = -00:02:13 v #3618 > > `( -00:02:13 v #3619 > > global "import io" -00:02:13 v #3620 > > $'' : $'io.StringIO' -00:02:13 v #3621 > > ) -00:02:13 v #3622 > > type string_builder_switch = -00:02:13 v #3623 > > { -00:02:13 v #3624 > > Fsharp : $'System.Text.StringBuilder' -00:02:13 v #3625 > > Python : string_builder_python -00:02:13 v #3626 > > } -00:02:13 v #3627 > > nominal string_builder = $'backend_switch `(string_builder_switch)' -00:02:13 v #3628 > > -00:02:13 v #3629 > > inl string_builder (initial : string) : string_builder = -00:02:13 v #3630 > > inl initial = -00:02:13 v #3631 > > if initial = "" -00:02:13 v #3632 > > then join initial -00:02:13 v #3633 > > else initial -00:02:13 v #3634 > > -00:02:13 v #3635 > > backend_switch { -00:02:13 v #3636 > > Fsharp = fun () => initial |> $'`string_builder ' : string_builder -00:02:13 v #3637 > > Python = fun () => -00:02:13 v #3638 > > global "import io" -00:02:13 v #3639 > > global "class CustomStringIO(io.StringIO):\n def __init__(self, -00:02:13 v #3640 > > init=''):\n super().__init__()\n if init != '': self.write(init)\n -00:02:13 v #3641 > > def __str__(self): return self.getvalue()\n def __repr__(self): return -00:02:13 v #3642 > > self.getvalue()" -00:02:13 v #3643 > > $'CustomStringIO(!initial)' : string_builder -00:02:13 v #3644 > > } -00:02:13 v #3645 > > -00:02:13 v #3646 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:13 v #3647 > > │ ### builder_append -00:02:13 v #3648 > > -00:02:13 v #3649 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:13 v #3650 > > inl builder_append (item : string) (sb : string_builder) : string_builder = -00:02:13 v #3651 > > backend_switch { -00:02:13 v #3652 > > Fsharp = fun () => -00:02:13 v #3653 > > ($'!sb.Append' item : string_builder) |> ignore -00:02:13 v #3654 > > sb -00:02:13 v #3655 > > Python = fun () => -00:02:13 v #3656 > > ($'!sb.write(!item)' : int) |> ignore -00:02:13 v #3657 > > sb -00:02:13 v #3658 > > } -00:02:13 v #3659 > > -00:02:13 v #3660 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:13 v #3661 > > //// test -00:02:13 v #3662 > > ///! fsharp -00:02:13 v #3663 > > ///! cuda -00:02:13 v #3664 > > ///! rust -00:02:13 v #3665 > > ///! typescript -00:02:13 v #3666 > > ///! python -00:02:13 v #3667 > > -00:02:13 v #3668 > > "ab" -00:02:13 v #3669 > > |> string_builder -00:02:13 v #3670 > > |> builder_append "cd" -00:02:13 v #3671 > > |> builder_append "ef" -00:02:13 v #3672 > > |> sm'.obj_to_string -00:02:13 v #3673 > > |> _assert_eq "abcdef" -00:02:18 v #3674 > > -00:02:18 v #3675 > > ── [ 4.12s - return value ] ──────────────────────────────────────────────────── -00:02:18 v #3676 > > │ .py output (Cuda): -00:02:18 v #3677 > > │ __assert_eq / actual: abcdef / expected: abcdef -00:02:18 v #3678 > > │ -00:02:18 v #3679 > > │ .rs output: -00:02:18 v #3680 > > │ __assert_eq / actual: "abcdef" / expected: "abcdef" -00:02:18 v #3681 > > │ -00:02:18 v #3682 > > │ .ts output: -00:02:18 v #3683 > > │ __assert_eq / actual: abcdef / expected: abcdef -00:02:18 v #3684 > > │ -00:02:18 v #3685 > > │ .py output: -00:02:18 v #3686 > > │ __assert_eq / actual: abcdef / expected: abcdef -00:02:18 v #3687 > > │ -00:02:18 v #3688 > > │ -00:02:18 v #3689 > > -00:02:18 v #3690 > > ── [ 4.12s - stdout ] ────────────────────────────────────────────────────────── -00:02:18 v #3691 > > │ .fsx output: -00:02:18 v #3692 > > │ __assert_eq / actual: "abcdef" / expected: "abcdef" -00:02:18 v #3693 > > │ -00:02:18 v #3694 > > -00:02:18 v #3695 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:18 v #3696 > > │ ### builder_append_line -00:02:18 v #3697 > > -00:02:18 v #3698 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:18 v #3699 > > inl builder_append_line (sb : string_builder) : string_builder = -00:02:18 v #3700 > > backend_switch { -00:02:18 v #3701 > > Fsharp = fun () => -00:02:18 v #3702 > > ($'!sb.AppendLine ()' : string_builder) |> ignore -00:02:18 v #3703 > > sb -00:02:18 v #3704 > > Python = fun () => -00:02:18 v #3705 > > sb |> builder_append "\n" -00:02:18 v #3706 > > } -00:02:18 v #3707 > > -00:02:18 v #3708 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:18 v #3709 > > │ ### builder_replace -00:02:18 v #3710 > > -00:02:18 v #3711 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:18 v #3712 > > inl builder_replace (old : string) (new : string) (sb : string_builder) : -00:02:18 v #3713 > > string_builder = -00:02:18 v #3714 > > backend_switch { -00:02:18 v #3715 > > Fsharp = fun () => -00:02:18 v #3716 > > ($'!sb.Replace (!old, !new)' : string_builder) |> ignore -00:02:18 v #3717 > > sb -00:02:18 v #3718 > > Python = fun () => -00:02:18 v #3719 > > ($'!sb.getvalue().replace(!old, !new)' : string) |> string_builder -00:02:18 v #3720 > > } -00:02:18 v #3721 > > -00:02:18 v #3722 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:18 v #3723 > > │ ### builder_insert -00:02:18 v #3724 > > -00:02:18 v #3725 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:18 v #3726 > > inl builder_insert (i : i32) (s : string) (sb : string_builder) : string_builder -00:02:18 v #3727 > > = -00:02:18 v #3728 > > backend_switch { -00:02:18 v #3729 > > Fsharp = fun () => -00:02:18 v #3730 > > ($'!sb.Insert (!i, !s)' : string_builder) |> ignore -00:02:18 v #3731 > > sb -00:02:18 v #3732 > > Python = fun () => -00:02:18 v #3733 > > inl sb = sb |> obj_to_string -00:02:18 v #3734 > > $'"".join([[!sb[[:!i]], !s, !sb[[!i:]]]])' |> string_builder -00:02:18 v #3735 > > } -00:02:19 v #3736 > > -00:02:19 v #3737 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:19 v #3738 > > │ ### builder_clear -00:02:19 v #3739 > > -00:02:19 v #3740 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:19 v #3741 > > inl builder_clear (sb : string_builder) : string_builder = -00:02:19 v #3742 > > backend_switch { -00:02:19 v #3743 > > Fsharp = fun () => -00:02:19 v #3744 > > ($'!sb.Clear' () : string_builder) |> ignore -00:02:19 v #3745 > > sb -00:02:19 v #3746 > > Python = fun () => -00:02:19 v #3747 > > ($'!sb.truncate(0)' : int) |> ignore -00:02:19 v #3748 > > ($'!sb.seek(0)' : int) |> ignore -00:02:19 v #3749 > > sb -00:02:19 v #3750 > > } -00:02:19 v #3751 > > -00:02:19 v #3752 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:19 v #3753 > > │ ### trim -00:02:19 v #3754 > > -00:02:19 v #3755 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:19 v #3756 > > inl trim (input : string) : string = -00:02:19 v #3757 > > backend_switch { -00:02:19 v #3758 > > Fsharp = fun () => $'!input.Trim' () : string -00:02:19 v #3759 > > Python = fun () => $'!input.strip()' : string -00:02:19 v #3760 > > } -00:02:20 v #3761 > > -00:02:20 v #3762 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:20 v #3763 > > │ ### concat -00:02:20 v #3764 > > -00:02:20 v #3765 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:20 v #3766 > > inl concat (a : string) (b : seq.seq' string) : string = -00:02:20 v #3767 > > backend_switch { -00:02:20 v #3768 > > Fsharp = fun () => -00:02:20 v #3769 > > inl a = -00:02:20 v #3770 > > if a = "\n" -00:02:20 v #3771 > > then join a -00:02:20 v #3772 > > else a -00:02:20 v #3773 > > b |> $'String.concat' a : string -00:02:20 v #3774 > > Python = fun () => -00:02:20 v #3775 > > $'!a.join(!b)' : string -00:02:20 v #3776 > > } -00:02:20 v #3777 > > -00:02:20 v #3778 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:20 v #3779 > > │ ### trim_end -00:02:20 v #3780 > > -00:02:20 v #3781 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:20 v #3782 > > inl trim_end (trim_chars : list char) (input : string) : string = -00:02:20 v #3783 > > inl trim_chars = trim_chars |> listm'.box -00:02:20 v #3784 > > backend_switch { -00:02:20 v #3785 > > Fsharp = fun () => -00:02:20 v #3786 > > inl trim_chars = trim_chars |> listm'.to_array' -00:02:20 v #3787 > > $'!input.TrimEnd !trim_chars ' : string -00:02:20 v #3788 > > Python = fun () => -00:02:20 v #3789 > > inl trim_chars = trim_chars |> listm'.map obj_to_string |> -00:02:20 v #3790 > > seq.of_list' |> concat "" -00:02:20 v #3791 > > $'!input.rstrip(!trim_chars)' : string -00:02:20 v #3792 > > } -00:02:21 v #3793 > > -00:02:21 v #3794 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:21 v #3795 > > │ ### trim_start -00:02:21 v #3796 > > -00:02:21 v #3797 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:21 v #3798 > > inl trim_start (trim_chars : list char) (input : string) : string = -00:02:21 v #3799 > > inl trim_chars = trim_chars |> listm'.box -00:02:21 v #3800 > > backend_switch { -00:02:21 v #3801 > > Fsharp = fun () => -00:02:21 v #3802 > > inl trim_chars = trim_chars |> listm'.to_array' -00:02:21 v #3803 > > $'!input.TrimStart !trim_chars ' : string -00:02:21 v #3804 > > Python = fun () => -00:02:21 v #3805 > > inl trim_chars = trim_chars |> listm'.map obj_to_string |> -00:02:21 v #3806 > > seq.of_list' |> concat "" -00:02:21 v #3807 > > $'!input.lstrip(!trim_chars)' : string -00:02:21 v #3808 > > } -00:02:21 v #3809 > > -00:02:21 v #3810 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:21 v #3811 > > │ ### length' -00:02:21 v #3812 > > -00:02:21 v #3813 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:21 v #3814 > > inl length' forall dim. (input : string) : dim = -00:02:21 v #3815 > > backend_switch { -00:02:21 v #3816 > > Fsharp = fun () => input |> $'String.length' : dim -00:02:21 v #3817 > > Python = fun () => $'len(!input)' : dim -00:02:21 v #3818 > > } -00:02:21 v #3819 > > -00:02:21 v #3820 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:21 v #3821 > > //// test -00:02:21 v #3822 > > ///! fsharp -00:02:21 v #3823 > > ///! cuda -00:02:21 v #3824 > > -00:02:21 v #3825 > > "abc" -00:02:21 v #3826 > > |> length' -00:02:21 v #3827 > > |> _assert_eq 3i32 -00:02:23 v #3828 > > -00:02:23 v #3829 > > ── [ 1.15s - return value ] ──────────────────────────────────────────────────── -00:02:23 v #3830 > > │ .py output (Cuda): -00:02:23 v #3831 > > │ __assert_eq / actual: 3 / expected: 3 -00:02:23 v #3832 > > │ -00:02:23 v #3833 > > │ -00:02:23 v #3834 > > -00:02:23 v #3835 > > ── [ 1.15s - stdout ] ────────────────────────────────────────────────────────── -00:02:23 v #3836 > > │ .fsx output: -00:02:23 v #3837 > > │ __assert_eq / actual: 3 / expected: 3 -00:02:23 v #3838 > > │ -00:02:23 v #3839 > > -00:02:23 v #3840 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:23 v #3841 > > │ ### to_string any -00:02:23 v #3842 > > -00:02:23 v #3843 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:23 v #3844 > > instance to_string any = -00:02:23 v #3845 > > obj_to_string -00:02:23 v #3846 > > -00:02:23 v #3847 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:23 v #3848 > > │ ### (~$) -00:02:23 v #3849 > > -00:02:23 v #3850 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:23 v #3851 > > inl (~$) s = -00:02:23 v #3852 > > s |> obj_to_string -00:02:24 v #3853 > > -00:02:24 v #3854 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:24 v #3855 > > │ ### replace -00:02:24 v #3856 > > -00:02:24 v #3857 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:24 v #3858 > > inl replace (old_value : string) (new_value : string) (s : string) : string = -00:02:24 v #3859 > > $'!s.Replace (!old_value, !new_value)' -00:02:24 v #3860 > > -00:02:24 v #3861 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:24 v #3862 > > │ ### split -00:02:24 v #3863 > > -00:02:24 v #3864 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:24 v #3865 > > inl split (separator : string) (str : string) : array_base string = -00:02:24 v #3866 > > backend_switch { -00:02:24 v #3867 > > Fsharp = fun () => $'!str.Split !separator ' : array_base string -00:02:24 v #3868 > > Python = fun () => $'!str.split(!separator)' : array_base string -00:02:24 v #3869 > > } -00:02:24 v #3870 > > -00:02:24 v #3871 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:24 v #3872 > > │ ### split_string -00:02:24 v #3873 > > -00:02:24 v #3874 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:24 v #3875 > > inl split_string (separator : array_base string) (str : string) : array_base -00:02:24 v #3876 > > string = -00:02:24 v #3877 > > run_target_args (fun () => str, separator) function -00:02:24 v #3878 > > | Fsharp (Native) => fun str, separator => $'!str.Split (!separator, -00:02:24 v #3879 > > System.StringSplitOptions.None)' -00:02:24 v #3880 > > | _ => fun str, separator => str |> split ((a separator : _ int _) |> -00:02:24 v #3881 > > seq.of_array |> concat (join "")) -00:02:25 v #3882 > > -00:02:25 v #3883 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:25 v #3884 > > │ ### join' -00:02:25 v #3885 > > -00:02:25 v #3886 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:25 v #3887 > > inl join' (concat : string) (s : a int string) : string = -00:02:25 v #3888 > > $'System.String.Join (!concat, !s)' -00:02:25 v #3889 > > -00:02:25 v #3890 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:25 v #3891 > > │ ### encoding -00:02:25 v #3892 > > -00:02:25 v #3893 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:25 v #3894 > > nominal encoding = $'System.Text.Encoding' -00:02:26 v #3895 > > -00:02:26 v #3896 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:26 v #3897 > > │ ### encoding_utf8 -00:02:26 v #3898 > > -00:02:26 v #3899 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:26 v #3900 > > inl encoding_utf8 () : encoding = -00:02:26 v #3901 > > $'`encoding.UTF8' -00:02:26 v #3902 > > -00:02:26 v #3903 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:26 v #3904 > > │ ### utf8_get_bytes -00:02:26 v #3905 > > -00:02:26 v #3906 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:26 v #3907 > > inl utf8_get_bytes (s : string) : a i32 u8 = -00:02:26 v #3908 > > s |> (encoding_utf8 () |> $'_.GetBytes') -00:02:27 v #3909 > > -00:02:27 v #3910 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:27 v #3911 > > │ ### byte_to_string -00:02:27 v #3912 > > -00:02:27 v #3913 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:27 v #3914 > > inl byte_to_string (format : string) (x : u8) : string = -00:02:27 v #3915 > > $'!x.ToString' format -00:02:27 v #3916 > > -00:02:27 v #3917 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:27 v #3918 > > │ ## rust -00:02:27 v #3919 > > -00:02:27 v #3920 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:27 v #3921 > > │ ### str -00:02:27 v #3922 > > -00:02:27 v #3923 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:27 v #3924 > > nominal str = -00:02:27 v #3925 > > `( -00:02:27 v #3926 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:02:27 v #3927 > > Fable.Core.Emit(\"str\")>]]\ntype Str = class end\n#else\ntype Str = -00:02:27 v #3928 > > string\n#endif\n" -00:02:27 v #3929 > > $'' : $'Str' -00:02:27 v #3930 > > ) -00:02:28 v #3931 > > -00:02:28 v #3932 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:28 v #3933 > > │ ### chars -00:02:28 v #3934 > > -00:02:28 v #3935 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:28 v #3936 > > inl chars (x : rust.ref str) : rust.mut' (into_iterator char) = -00:02:28 v #3937 > > !\\(x, $'$"$0.chars()"') -00:02:28 v #3938 > > -00:02:28 v #3939 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:28 v #3940 > > │ ### char_is_alphanumeric -00:02:28 v #3941 > > -00:02:28 v #3942 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:28 v #3943 > > inl char_is_alphanumeric (x : char) : bool = -00:02:28 v #3944 > > !\\(x, $'$"$0.is_alphanumeric()"') -00:02:28 v #3945 > > -00:02:28 v #3946 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:28 v #3947 > > │ ### byte_slice -00:02:28 v #3948 > > -00:02:28 v #3949 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:28 v #3950 > > inl byte_slice (s : string) : rust.ref (am'.slice u8) = -00:02:28 v #3951 > > !\($'"b\\\"" + !s + "\\\""') -00:02:29 v #3952 > > -00:02:29 v #3953 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:29 v #3954 > > │ ### display -00:02:29 v #3955 > > -00:02:29 v #3956 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:29 v #3957 > > nominal display t = -00:02:29 v #3958 > > `( -00:02:29 v #3959 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:02:29 v #3960 > > Fable.Core.Emit(\"std::fmt::Display<$0>\")>]]\n#endif\ntype std_fmt_Display<'T> -00:02:29 v #3961 > > = class end" -00:02:29 v #3962 > > $'' : $'std_fmt_Display<`t>' -00:02:29 v #3963 > > ) -00:02:29 v #3964 > > -00:02:29 v #3965 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:29 v #3966 > > │ ### base64_decode_error -00:02:29 v #3967 > > -00:02:29 v #3968 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:29 v #3969 > > nominal base64_decode_error = -00:02:29 v #3970 > > `( -00:02:29 v #3971 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:02:29 v #3972 > > Fable.Core.Emit(\"base64::DecodeError\")>]]\n#endif\ntype base64_DecodeError = -00:02:29 v #3973 > > class end" -00:02:29 v #3974 > > $'' : $'base64_DecodeError' -00:02:29 v #3975 > > ) -00:02:30 v #3976 > > -00:02:30 v #3977 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:30 v #3978 > > │ ### borsh_io_error -00:02:30 v #3979 > > -00:02:30 v #3980 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:30 v #3981 > > nominal borsh_io_error = -00:02:30 v #3982 > > `( -00:02:30 v #3983 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:02:30 v #3984 > > Fable.Core.Emit(\"borsh::io::Error\")>]]\n#endif\ntype borsh_io_Error = class -00:02:30 v #3985 > > end" -00:02:30 v #3986 > > $'' : $'borsh_io_Error' -00:02:30 v #3987 > > ) -00:02:30 v #3988 > > -00:02:30 v #3989 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:30 v #3990 > > │ ### utf8_error -00:02:30 v #3991 > > -00:02:30 v #3992 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:30 v #3993 > > nominal utf8_error = -00:02:30 v #3994 > > `( -00:02:30 v #3995 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:02:30 v #3996 > > Fable.Core.Emit(\"std::str::Utf8Error\")>]]\n#endif\ntype std_str_Utf8Error = -00:02:30 v #3997 > > class end" -00:02:30 v #3998 > > $'' : $'std_str_Utf8Error' -00:02:30 v #3999 > > ) -00:02:31 v #4000 > > -00:02:31 v #4001 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:31 v #4002 > > │ ### from_utf8_error -00:02:31 v #4003 > > -00:02:31 v #4004 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:31 v #4005 > > nominal from_utf8_error = -00:02:31 v #4006 > > `( -00:02:31 v #4007 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:02:31 v #4008 > > Fable.Core.Emit(\"std::string::FromUtf8Error\")>]]\n#endif\ntype -00:02:31 v #4009 > > std_string_FromUtf8Error = class end" -00:02:31 v #4010 > > $'' : $'std_string_FromUtf8Error' -00:02:31 v #4011 > > ) -00:02:31 v #4012 > > -00:02:31 v #4013 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:31 v #4014 > > │ ### json_value -00:02:31 v #4015 > > -00:02:31 v #4016 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:31 v #4017 > > nominal json_value = -00:02:31 v #4018 > > `( -00:02:31 v #4019 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:02:31 v #4020 > > Fable.Core.Emit(\"serde_json::Value\")>]]\n#endif\ntype serde_json_Value = class -00:02:31 v #4021 > > end" -00:02:31 v #4022 > > $'' : $'serde_json_Value' -00:02:31 v #4023 > > ) -00:02:32 v #4024 > > -00:02:32 v #4025 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:32 v #4026 > > │ ### json_error -00:02:32 v #4027 > > -00:02:32 v #4028 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:32 v #4029 > > nominal json_error = -00:02:32 v #4030 > > `( -00:02:32 v #4031 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:02:32 v #4032 > > Fable.Core.Emit(\"serde_json::Error\")>]]\n#endif\ntype serde_json_Error = class -00:02:32 v #4033 > > end" -00:02:32 v #4034 > > $'' : $'serde_json_Error' -00:02:32 v #4035 > > ) -00:02:32 v #4036 > > -00:02:32 v #4037 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:32 v #4038 > > │ ### serde_wasm_bindgen_error -00:02:32 v #4039 > > -00:02:32 v #4040 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:32 v #4041 > > nominal serde_wasm_bindgen_error = -00:02:32 v #4042 > > `( -00:02:32 v #4043 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:02:32 v #4044 > > Fable.Core.Emit(\"serde_wasm_bindgen::Error\")>]]\n#endif\ntype -00:02:32 v #4045 > > serde_wasm_bindgen_Error = class end" -00:02:32 v #4046 > > $'' : $'serde_wasm_bindgen_Error' -00:02:32 v #4047 > > ) -00:02:32 v #4048 > > -00:02:32 v #4049 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:32 v #4050 > > │ ### js_string -00:02:32 v #4051 > > -00:02:32 v #4052 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:32 v #4053 > > nominal js_string = -00:02:32 v #4054 > > `( -00:02:32 v #4055 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:02:32 v #4056 > > Fable.Core.Emit(\"js_sys::JsString\")>]]\n#endif\ntype js_sys_JsString = class -00:02:32 v #4057 > > end" -00:02:32 v #4058 > > $'' : $'js_sys_JsString' -00:02:32 v #4059 > > ) -00:02:33 v #4060 > > -00:02:33 v #4061 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:33 v #4062 > > │ ### os_str -00:02:33 v #4063 > > -00:02:33 v #4064 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:33 v #4065 > > nominal os_str = -00:02:33 v #4066 > > `( -00:02:33 v #4067 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:02:33 v #4068 > > Fable.Core.Emit(\"std::ffi::OsStr\")>]]\n#endif\ntype std_ffi_OsStr = class end" -00:02:33 v #4069 > > $'' : $'std_ffi_OsStr' -00:02:33 v #4070 > > ) -00:02:33 v #4071 > > -00:02:33 v #4072 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:33 v #4073 > > │ ### c_str -00:02:33 v #4074 > > -00:02:33 v #4075 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:33 v #4076 > > nominal c_str = -00:02:33 v #4077 > > `( -00:02:33 v #4078 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:02:33 v #4079 > > Fable.Core.Emit(\"std::ffi::CStr\")>]]\n#endif\ntype std_ffi_CStr = class end" -00:02:33 v #4080 > > $'' : $'std_ffi_CStr' -00:02:33 v #4081 > > ) -00:02:34 v #4082 > > -00:02:34 v #4083 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:34 v #4084 > > │ ### c_string -00:02:34 v #4085 > > -00:02:34 v #4086 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:34 v #4087 > > nominal c_string = -00:02:34 v #4088 > > `( -00:02:34 v #4089 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:02:34 v #4090 > > Fable.Core.Emit(\"std::ffi::CString\")>]]\n#endif\ntype std_ffi_CString = class -00:02:34 v #4091 > > end" -00:02:34 v #4092 > > $'' : $'std_ffi_CString' -00:02:34 v #4093 > > ) -00:02:34 v #4094 > > -00:02:34 v #4095 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:34 v #4096 > > │ ### os_string -00:02:34 v #4097 > > -00:02:34 v #4098 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:34 v #4099 > > nominal os_string = -00:02:34 v #4100 > > `( -00:02:34 v #4101 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:02:34 v #4102 > > Fable.Core.Emit(\"std::ffi::OsString\")>]]\n#endif\ntype std_ffi_OsString = -00:02:34 v #4103 > > class end" -00:02:34 v #4104 > > $'' : $'std_ffi_OsString' -00:02:34 v #4105 > > ) -00:02:35 v #4106 > > -00:02:35 v #4107 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:35 v #4108 > > │ ### raw_string_literal -00:02:35 v #4109 > > -00:02:35 v #4110 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:35 v #4111 > > inl raw_string_literal (s : string) : rust.ref str = -00:02:35 v #4112 > > !\($'"r#\\"" + !s + "\\"#"') -00:02:35 v #4113 > > -00:02:35 v #4114 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:35 v #4115 > > │ ### raw_string_literal_static -00:02:35 v #4116 > > -00:02:35 v #4117 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:35 v #4118 > > inl raw_string_literal_static (s : string) : rust.static_ref str = -00:02:35 v #4119 > > !\($'"r#\\"" + !s + "\\"#"') -00:02:36 v #4120 > > -00:02:36 v #4121 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:36 v #4122 > > │ ### (~#) -00:02:36 v #4123 > > -00:02:36 v #4124 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:36 v #4125 > > inl (~#) s = -00:02:36 v #4126 > > s |> raw_string_literal -00:02:36 v #4127 > > -00:02:36 v #4128 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:36 v #4129 > > │ ### (~##) -00:02:36 v #4130 > > -00:02:36 v #4131 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:36 v #4132 > > inl (~##) s = -00:02:36 v #4133 > > s |> raw_string_literal_static -00:02:36 v #4134 > > -00:02:36 v #4135 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:36 v #4136 > > │ ### include_str -00:02:36 v #4137 > > -00:02:36 v #4138 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:36 v #4139 > > inl include_str (path : string) : rust.ref str = -00:02:36 v #4140 > > !\($'"include_str\!(\\\"" + !path + "\\\")"') -00:02:37 v #4141 > > -00:02:37 v #4142 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:37 v #4143 > > │ ### as_str -00:02:37 v #4144 > > -00:02:37 v #4145 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:37 v #4146 > > inl as_str (s : string) : rust.ref str = -00:02:37 v #4147 > > // !\\(s, $'"fable_library_rust::String_::LrcStr::as_str(&$0)"') -00:02:37 v #4148 > > run_target_args (fun () => s) function -00:02:37 v #4149 > > | Rust _ => fun s => !\\(s, $'"&*$0"') -00:02:37 v #4150 > > | _ => fun s => s |> unbox -00:02:37 v #4151 > > -00:02:37 v #4152 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:37 v #4153 > > │ ### from_iter -00:02:37 v #4154 > > -00:02:37 v #4155 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:37 v #4156 > > inl from_iter forall (t : * -> *). (s : t char) : std_string = -00:02:37 v #4157 > > !\\(s, $'"String::from_iter($0)"') -00:02:38 v #4158 > > -00:02:38 v #4159 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:38 v #4160 > > │ ### ref_to_std_string -00:02:38 v #4161 > > -00:02:38 v #4162 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:38 v #4163 > > inl ref_to_std_string (str : rust.ref str) : std_string = -00:02:38 v #4164 > > run_target_args (fun () => str) function -00:02:38 v #4165 > > | Rust _ => fun str => !\\(str, $'"String::from($0)"') -00:02:38 v #4166 > > | _ => fun str => str |> unbox -00:02:38 v #4167 > > -00:02:38 v #4168 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:38 v #4169 > > │ ### cow_to_std_string -00:02:38 v #4170 > > -00:02:38 v #4171 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:38 v #4172 > > inl cow_to_std_string (str : rust.cow str) : std_string = -00:02:38 v #4173 > > !\\(str, $'"String::from($0)"') -00:02:40 v #4174 > > -00:02:40 v #4175 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:40 v #4176 > > │ ### to_std_string -00:02:40 v #4177 > > -00:02:40 v #4178 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:40 v #4179 > > inl to_std_string (s : string) : std_string = -00:02:40 v #4180 > > s |> as_str |> ref_to_std_string -00:02:40 v #4181 > > -00:02:40 v #4182 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:40 v #4183 > > │ ### as_str_std -00:02:40 v #4184 > > -00:02:40 v #4185 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:40 v #4186 > > inl as_str_std (s : std_string) : rust.ref str = -00:02:40 v #4187 > > !\\(s, $'"$0.as_str()"') -00:02:41 v #4188 > > -00:02:41 v #4189 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:41 v #4190 > > │ ### into_boxed_str -00:02:41 v #4191 > > -00:02:41 v #4192 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:41 v #4193 > > inl into_boxed_str (s : std_string) : rust.box str = -00:02:41 v #4194 > > !\\(s, $'"$0.into_boxed_str()"') -00:02:41 v #4195 > > -00:02:41 v #4196 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:41 v #4197 > > │ ### os_string_as_ref -00:02:41 v #4198 > > -00:02:41 v #4199 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:41 v #4200 > > inl os_string_as_ref (s : os_string) : rust.ref os_str = -00:02:41 v #4201 > > !\\(s, $'"$0.as_ref()"') -00:02:42 v #4202 > > -00:02:42 v #4203 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:42 v #4204 > > │ ### to_os_string -00:02:42 v #4205 > > -00:02:42 v #4206 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:42 v #4207 > > inl to_os_string (s : rust.ref os_str) : os_string = -00:02:42 v #4208 > > !\\(s, $'"$0.to_os_string()"') -00:02:42 v #4209 > > -00:02:42 v #4210 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:42 v #4211 > > │ ### new_c_string -00:02:42 v #4212 > > -00:02:42 v #4213 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:42 v #4214 > > inl new_c_string (s : std_string) : c_string = -00:02:42 v #4215 > > !\\(s, $'"std::ffi::CString::new($0).unwrap()"') -00:02:43 v #4216 > > -00:02:43 v #4217 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:43 v #4218 > > │ ### os_to_str -00:02:43 v #4219 > > -00:02:43 v #4220 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:43 v #4221 > > inl os_to_str (s : os_string) : optionm'.option' (rust.ref str) = -00:02:43 v #4222 > > !\\(s, $'"$0.to_str()"') -00:02:43 v #4223 > > -00:02:43 v #4224 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:43 v #4225 > > │ ### from_os_str_ref -00:02:43 v #4226 > > -00:02:43 v #4227 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:43 v #4228 > > inl from_os_str_ref s = -00:02:43 v #4229 > > s -00:02:43 v #4230 > > |> to_os_string -00:02:43 v #4231 > > |> os_to_str -00:02:43 v #4232 > > |> optionm'.unwrap -00:02:43 v #4233 > > |> ref_to_std_string -00:02:43 v #4234 > > |> from_std_string -00:02:44 v #4235 > > -00:02:44 v #4236 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:44 v #4237 > > │ ### format_custom' -00:02:44 v #4238 > > -00:02:44 v #4239 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:44 v #4240 > > inl format_custom' (f : string) x : std_string = -00:02:44 v #4241 > > run_target function -00:02:44 v #4242 > > | Rust _ => fun () => -00:02:44 v #4243 > > !\\(x, $'"format\!(\\\"" + !f + "\\\", $0)"') -00:02:44 v #4244 > > | _ => fun () => null () -00:02:44 v #4245 > > -00:02:44 v #4246 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:44 v #4247 > > │ ### format_debug' -00:02:44 v #4248 > > -00:02:44 v #4249 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:44 v #4250 > > inl format_debug' x : std_string = -00:02:44 v #4251 > > run_target function -00:02:44 v #4252 > > | Rust _ => fun () => -00:02:44 v #4253 > > !\\(x, $'"format\!(\\\"{:?}\\\", $0)"') -00:02:44 v #4254 > > | _ => fun () => null () -00:02:44 v #4255 > > -00:02:44 v #4256 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:44 v #4257 > > │ ### format' -00:02:44 v #4258 > > -00:02:44 v #4259 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:44 v #4260 > > inl format' x : std_string = -00:02:44 v #4261 > > run_target_args (fun () => x) function -00:02:44 v #4262 > > | Rust _ => fun x => -00:02:44 v #4263 > > !\\(x, $'"format\!(\\\"{}\\\", $0)"') -00:02:44 v #4264 > > | _ => fun _ => null () -00:02:45 v #4265 > > -00:02:45 v #4266 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:45 v #4267 > > │ ### format_hex' -00:02:45 v #4268 > > -00:02:45 v #4269 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:45 v #4270 > > inl format_hex' x : std_string = -00:02:45 v #4271 > > !\\(x, $'"format\!(\\\"{:02x}\\\", $0)"') -00:02:45 v #4272 > > -00:02:45 v #4273 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:45 v #4274 > > │ ### format'' -00:02:45 v #4275 > > -00:02:45 v #4276 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:45 v #4277 > > inl format'' (format : string) : std_string = -00:02:45 v #4278 > > !\($'@@$"format\!(" + !format + ")"') -00:02:46 v #4279 > > -00:02:46 v #4280 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:46 v #4281 > > │ ### regex -00:02:46 v #4282 > > -00:02:46 v #4283 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:46 v #4284 > > nominal regex = -00:02:46 v #4285 > > `( -00:02:46 v #4286 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:02:46 v #4287 > > Fable.Core.Emit(\"regex::Regex\")>]]\n#endif\ntype regex_Regex = class end" -00:02:46 v #4288 > > $'' : $'regex_Regex' -00:02:46 v #4289 > > ) -00:02:46 v #4290 > > -00:02:46 v #4291 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:46 v #4292 > > │ ### regex_error -00:02:46 v #4293 > > -00:02:46 v #4294 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:46 v #4295 > > nominal regex_error = -00:02:46 v #4296 > > `( -00:02:46 v #4297 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:02:46 v #4298 > > Fable.Core.Emit(\"regex::Error\")>]]\n#endif\ntype regex_Error = class end" -00:02:46 v #4299 > > $'' : $'regex_Error' -00:02:46 v #4300 > > ) -00:02:47 v #4301 > > -00:02:47 v #4302 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:47 v #4303 > > │ ### new_regex -00:02:47 v #4304 > > -00:02:47 v #4305 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:47 v #4306 > > inl new_regex (pattern : string) : resultm.result' regex regex_error = -00:02:47 v #4307 > > !\\(pattern, $'$"regex::Regex::new(&$0)"') -00:02:47 v #4308 > > -00:02:47 v #4309 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:47 v #4310 > > │ ### captures -00:02:47 v #4311 > > -00:02:47 v #4312 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:47 v #4313 > > nominal regex_captures t = -00:02:47 v #4314 > > `( -00:02:47 v #4315 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:02:47 v #4316 > > Fable.Core.Emit(\"regex::Captures<$0>\")>]]\n#endif\ntype regex_Captures<'T> = -00:02:47 v #4317 > > class end" -00:02:47 v #4318 > > $'' : $'regex_Captures<`t>' -00:02:47 v #4319 > > ) -00:02:48 v #4320 > > -00:02:48 v #4321 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:48 v #4322 > > │ ### regex_capture_matches -00:02:48 v #4323 > > -00:02:48 v #4324 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:48 v #4325 > > nominal regex_capture_matches = -00:02:48 v #4326 > > `( -00:02:48 v #4327 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:02:48 v #4328 > > Fable.Core.Emit(\"regex::CaptureMatches\")>]]\n#endif\ntype regex_CaptureMatches -00:02:48 v #4329 > > = class end" -00:02:48 v #4330 > > $'' : $'regex_CaptureMatches' -00:02:48 v #4331 > > ) -00:02:48 v #4332 > > -00:02:48 v #4333 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:48 v #4334 > > │ ### regex_capture_names -00:02:48 v #4335 > > -00:02:48 v #4336 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:48 v #4337 > > nominal regex_capture_names = -00:02:48 v #4338 > > `( -00:02:48 v #4339 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:02:48 v #4340 > > Fable.Core.Emit(\"regex::CaptureNames\")>]]\n#endif\ntype regex_CaptureNames = -00:02:48 v #4341 > > class end" -00:02:48 v #4342 > > $'' : $'regex_CaptureNames' -00:02:48 v #4343 > > ) -00:02:48 v #4344 > > -00:02:48 v #4345 > > inl regex_capture_names (regex : regex) : regex_capture_names = -00:02:48 v #4346 > > !\\(regex, $'$"$0.capture_names()"') -00:02:48 v #4347 > > -00:02:48 v #4348 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:48 v #4349 > > │ ### match' -00:02:48 v #4350 > > -00:02:48 v #4351 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:48 v #4352 > > nominal match' = -00:02:48 v #4353 > > `( -00:02:48 v #4354 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:02:48 v #4355 > > Fable.Core.Emit(\"regex::Match\")>]]\n#endif\ntype regex_Match = class end" -00:02:48 v #4356 > > $'' : $'regex_Match' -00:02:48 v #4357 > > ) -00:02:49 v #4358 > > -00:02:49 v #4359 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:49 v #4360 > > │ ### regex_captures_iter -00:02:49 v #4361 > > -00:02:49 v #4362 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:49 v #4363 > > inl regex_captures_iter (s : rust.static_ref (rust.mut' std_string)) (regex : -00:02:49 v #4364 > > regex) : regex_capture_matches = -00:02:49 v #4365 > > inl regex = regex |> rust.emit -00:02:49 v #4366 > > !\\(regex, $'$"$0.captures_iter(!s)"') -00:02:49 v #4367 > > -00:02:49 v #4368 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:49 v #4369 > > │ ### regex_captures -00:02:49 v #4370 > > -00:02:49 v #4371 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:49 v #4372 > > let regex_captures (s : string) (regex : regex) : am'.vec (mapm.hash_map string -00:02:49 v #4373 > > string) = -00:02:49 v #4374 > > // inl s = join s -00:02:49 v #4375 > > // !\\(regex, $'$"$0.captures_iter(&*!s).map(|caps| -00:02:49 v #4376 > > $0.capture_names().map(|x| x.and_then(|n| Some((n, -00:02:49 v #4377 > > caps.name(n)?.as_str())))).flatten().collect()).collect()"') -00:02:49 v #4378 > > -00:02:49 v #4379 > > inl s = s |> to_std_string -00:02:49 v #4380 > > fun () => -00:02:49 v #4381 > > inl matches = -00:02:49 v #4382 > > inl s = s |> rust.new_box |> rust.box_leak -00:02:49 v #4383 > > regex |> regex_captures_iter s -00:02:49 v #4384 > > -00:02:49 v #4385 > > (!\($'"true; let _regex_captures : Vec<_> = !matches.map(|x| { //"') : -00:02:49 v #4386 > > bool) |> ignore -00:02:49 v #4387 > > -00:02:49 v #4388 > > inl fn (match' : rust.static_ref (rust.mut' (regex_captures -00:02:49 v #4389 > > rust.static_lifetime))) : mapm.hash_map string string = -00:02:49 v #4390 > > -00:02:49 v #4391 > > inl names = regex |> regex_capture_names -00:02:49 v #4392 > > -00:02:49 v #4393 > > (!\($'"true; let _regex_captures : std::collections::HashMap<_, _> = -00:02:49 v #4394 > > !names.map(|x| { //"') : bool) |> ignore -00:02:49 v #4395 > > -00:02:49 v #4396 > > inl fn (n : string) : pair string string = -00:02:49 v #4397 > > inl n' = n |> rust.clone -00:02:49 v #4398 > > -00:02:49 v #4399 > > new_pair n' !\\(n, $'$"!match'.name(&$0).map(|x| -00:02:49 v #4400 > > x.as_str()).unwrap_or(\\\"\\\").to_string().into()"') -00:02:49 v #4401 > > -00:02:49 v #4402 > > (!\\(fn !\($'"x.unwrap_or(\\\"\\\").to_string().into()"'), $'"true; -00:02:49 v #4403 > > $0 }).map(|x| std::sync::Arc::try_unwrap(x).unwrap_or_else(|x| -00:02:49 v #4404 > > (*x).clone())).collect()"') : bool) |> ignore -00:02:49 v #4405 > > -00:02:49 v #4406 > > !\($'"_regex_captures"') -00:02:49 v #4407 > > -00:02:49 v #4408 > > inl x = -00:02:49 v #4409 > > !\($'$"x"') -00:02:49 v #4410 > > |> rust.new_box -00:02:49 v #4411 > > |> rust.box_leak -00:02:49 v #4412 > > -00:02:49 v #4413 > > (!\\(fn x, $'"true; $0 }).collect::<Vec<_>>()"') : bool) |> ignore -00:02:49 v #4414 > > -00:02:49 v #4415 > > !\($'"_regex_captures"') -00:02:49 v #4416 > > -00:02:49 v #4417 > > |> rust.capture_move -00:02:50 v #4418 > > -00:02:50 v #4419 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:50 v #4420 > > //// test -00:02:50 v #4421 > > ///! rust -d regex -00:02:50 v #4422 > > -00:02:50 v #4423 > > "fable-library-ts\\.(?<a>[[\\d.]]+)$" -00:02:50 v #4424 > > |> new_regex -00:02:50 v #4425 > > |> resultm.unwrap' -00:02:50 v #4426 > > |> regex_captures "fable_modules/fable-library-ts.4.17.0" -00:02:50 v #4427 > > |> am'.vec_map (mapm.to_vec >> am'.vec_sort_by_key id) -00:02:50 v #4428 > > |> sm'.format_debug -00:02:50 v #4429 > > |> _assert_eq ( -00:02:50 v #4430 > > ;[[ -00:02:50 v #4431 > > ;[[ "", ""; "a", "4.17.0" ]] -00:02:50 v #4432 > > |> am'.to_vec -00:02:50 v #4433 > > ]] -00:02:50 v #4434 > > |> am'.to_vec -00:02:50 v #4435 > > |> sm'.format_debug -00:02:50 v #4436 > > ) -00:02:53 v #4437 > > -00:02:53 v #4438 > > ── [ 3.34s - return value ] ──────────────────────────────────────────────────── -00:02:53 v #4439 > > │ __assert_eq / actual: "[[("", ""), ("a", "4.17.0")]]" -00:02:53 v #4440 > > expected: "[[("", ""), ("a", "4.17.0")]]" -00:02:53 v #4441 > > │ -00:02:53 v #4442 > > -00:02:53 v #4443 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:53 v #4444 > > │ ### replace_regex' -00:02:53 v #4445 > > -00:02:53 v #4446 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:53 v #4447 > > inl replace_regex' (pattern : string) (replacement : a i32 string) (s : string) -00:02:53 v #4448 > > : string = -00:02:53 v #4449 > > run_target_args (fun () => s, pattern, replacement) function -00:02:53 v #4450 > > | Rust (Native) => fun s, pattern, replacement => -00:02:53 v #4451 > > inl regex = pattern |> new_regex |> resultm.unwrap' -00:02:53 v #4452 > > !\\((regex, #s, replacement), $'$"$0.replace_all($1, &*$2)"') -00:02:53 v #4453 > > |> cow_to_std_string -00:02:53 v #4454 > > |> from_std_string -00:02:53 v #4455 > > | _ => fun _ => null () -00:02:54 v #4456 > > -00:02:54 v #4457 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:54 v #4458 > > │ ### serialize -00:02:54 v #4459 > > -00:02:54 v #4460 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:54 v #4461 > > inl serialize forall t. (x : t) : resultm.result' std_string json_error = -00:02:54 v #4462 > > !\($'"serde_json::to_string(&!x)"') -00:02:54 v #4463 > > -00:02:54 v #4464 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:54 v #4465 > > │ ### deserialize -00:02:54 v #4466 > > -00:02:54 v #4467 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:54 v #4468 > > inl deserialize forall t. (json : string) : resultm.result' t std_string = -00:02:54 v #4469 > > inl json = join json -00:02:54 v #4470 > > inl json = json |> as_str -00:02:54 v #4471 > > !\\(json, $'"serde_json::from_str(&$0)"') -00:02:54 v #4472 > > |> resultm.map_error' fun (x : json_error) => x |> format' -00:02:54 v #4473 > > -00:02:54 v #4474 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:54 v #4475 > > │ ### borsh_serialize -00:02:54 v #4476 > > -00:02:54 v #4477 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:54 v #4478 > > inl borsh_serialize forall t. (data : t) : am'.vec u8 = -00:02:54 v #4479 > > (!\($'"true; let mut data = Vec::new()"') : bool) |> ignore -00:02:54 v #4480 > > (!\\(data, $'"true; borsh::BorshSerialize::serialize(&$0, &mut -00:02:54 v #4481 > > data).unwrap()"') : bool) |> ignore -00:02:54 v #4482 > > !\($'"data"') -00:02:55 v #4483 > > -00:02:55 v #4484 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:55 v #4485 > > │ ### borsh_deserialize -00:02:55 v #4486 > > -00:02:55 v #4487 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:55 v #4488 > > inl borsh_deserialize forall t. (data : array_base u8) : resultm.result' t -00:02:55 v #4489 > > std_string = -00:02:55 v #4490 > > inl data = data |> am'.as_slice -00:02:55 v #4491 > > (!\($'"true; let mut !data = !data"') : bool) |> ignore -00:02:55 v #4492 > > inl result = !\($'"borsh::BorshDeserialize::deserialize(&mut !data)"') -00:02:55 v #4493 > > result -00:02:55 v #4494 > > |> resultm.map_error' fun (x : borsh_io_error) => x |> format' -00:02:55 v #4495 > > -00:02:55 v #4496 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:55 v #4497 > > │ ### deserialize_vec -00:02:55 v #4498 > > -00:02:55 v #4499 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:55 v #4500 > > inl deserialize_vec (value : json_value) : resultm.result' (am'.vec u8) -00:02:55 v #4501 > > std_string = -00:02:55 v #4502 > > inl value = join value -00:02:55 v #4503 > > !\($'"serde_json::from_value(!value)"') -00:02:55 v #4504 > > |> resultm.map_error' fun (x : json_error) => x |> format' -00:02:56 v #4505 > > -00:02:56 v #4506 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:56 v #4507 > > │ ### encode_uri_component -00:02:56 v #4508 > > -00:02:56 v #4509 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:56 v #4510 > > inl encode_uri_component (s : std_string) : js_string = -00:02:56 v #4511 > > !\($'"js_sys::encode_uri_component(&!s)"') -00:02:56 v #4512 > > -00:02:56 v #4513 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:56 v #4514 > > │ ### strip_prefix -00:02:56 v #4515 > > -00:02:56 v #4516 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:56 v #4517 > > inl strip_prefix (prefix : char) (s : std_string) : optionm'.option' (rust.ref -00:02:56 v #4518 > > str) = -00:02:56 v #4519 > > inl s = join s -00:02:56 v #4520 > > !\($'"!s.strip_prefix(!prefix)"') -00:02:57 v #4521 > > -00:02:57 v #4522 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:57 v #4523 > > │ ### str_from_utf8 -00:02:57 v #4524 > > -00:02:57 v #4525 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:57 v #4526 > > inl str_from_utf8 (bytes : rust.ref (am'.slice u8)) : resultm.result' (rust.ref -00:02:57 v #4527 > > str) utf8_error = -00:02:57 v #4528 > > !\\(bytes, $'"std::str::from_utf8($0)"') -00:02:57 v #4529 > > -00:02:57 v #4530 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:57 v #4531 > > │ ### string_from_utf8 -00:02:57 v #4532 > > -00:02:57 v #4533 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:57 v #4534 > > inl string_from_utf8 (bytes : am'.vec u8) : resultm.result' std_string -00:02:57 v #4535 > > from_utf8_error = -00:02:57 v #4536 > > inl bytes = join bytes -00:02:57 v #4537 > > !\\(bytes, $'"std::string::String::from_utf8($0)"') -00:02:58 v #4538 > > -00:02:58 v #4539 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:58 v #4540 > > │ ### base64_decode -00:02:58 v #4541 > > -00:02:58 v #4542 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:58 v #4543 > > inl base64_decode (s : std_string) : result std_string std_string = -00:02:58 v #4544 > > fun () => -00:02:58 v #4545 > > inl s = join s -00:02:58 v #4546 > > inl bytes : resultm.result' (am'.vec u8) base64_decode_error = -00:02:58 v #4547 > > -00:02:58 v #4548 > > !\($'"base64::Engine::decode(&base64::engine::general_purpose::STANDARD, !s)"') -00:02:58 v #4549 > > bytes -00:02:58 v #4550 > > |> resultm.map_error' format' -00:02:58 v #4551 > > |> resultm.try' -00:02:58 v #4552 > > |> string_from_utf8 -00:02:58 v #4553 > > |> resultm.map_error' format' -00:02:58 v #4554 > > |> fun x => -00:02:58 v #4555 > > join x () -00:02:58 v #4556 > > |> resultm.unbox -00:02:58 v #4557 > > -00:02:58 v #4558 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:58 v #4559 > > │ ### encoding' -00:02:58 v #4560 > > -00:02:58 v #4561 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:58 v #4562 > > nominal encoding' = -00:02:58 v #4563 > > `( -00:02:58 v #4564 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:02:58 v #4565 > > Fable.Core.Emit(\"encoding_rs::Encoding\")>]]\n#endif\ntype encoding_rs_Encoding -00:02:58 v #4566 > > = class end" -00:02:58 v #4567 > > $'' : $'encoding_rs_Encoding' -00:02:58 v #4568 > > ) -00:02:59 v #4569 > > -00:02:59 v #4570 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:59 v #4571 > > │ ### encoding_utf8' -00:02:59 v #4572 > > -00:02:59 v #4573 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:59 v #4574 > > inl encoding_utf8' () : rust.ref encoding' = -00:02:59 v #4575 > > !\($'"encoding_rs::UTF_8"') -00:02:59 v #4576 > > -00:02:59 v #4577 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:59 v #4578 > > │ ### encoding_1252 -00:02:59 v #4579 > > -00:02:59 v #4580 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:59 v #4581 > > inl encoding_1252' () : rust.ref encoding' = -00:02:59 v #4582 > > !\($'"encoding_rs::WINDOWS_1252"') -00:02:59 v #4583 > > -00:02:59 v #4584 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:02:59 v #4585 > > │ ### encoding_encode -00:02:59 v #4586 > > -00:02:59 v #4587 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:59 v #4588 > > inl encoding_encode' (encoding : rust.ref encoding') (text : string) : rust.cow -00:02:59 v #4589 > > (am'.slice u8) = -00:02:59 v #4590 > > !\\((encoding, text), $'"$0.encode(&*$1).0"') -00:03:00 v #4591 > > -00:03:00 v #4592 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:00 v #4593 > > │ ### utf8_decode -00:03:00 v #4594 > > -00:03:00 v #4595 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:00 v #4596 > > inl utf8_decode (data : am'.vec u8) : resultm.result' std_string (rust.cow str) -00:03:00 v #4597 > > = -00:03:00 v #4598 > > !\($'$"encoding::Encoding::decode(encoding::all::UTF_8, &!data, -00:03:00 v #4599 > > encoding::DecoderTrap::Replace)"') -00:03:00 v #4600 > > -00:03:00 v #4601 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:00 v #4602 > > │ ### windows -00:03:00 v #4603 > > -00:03:00 v #4604 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:00 v #4605 > > nominal windows t = -00:03:00 v #4606 > > `( -00:03:00 v #4607 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:03:00 v #4608 > > Fable.Core.Emit(\"std::slice::Windows<$0>\")>]]\n#endif\ntype -00:03:00 v #4609 > > std_slice_Windows<'T> = class end" -00:03:00 v #4610 > > $'' : $'std_slice_Windows<`t>' -00:03:00 v #4611 > > ) -00:03:00 v #4612 > > -00:03:00 v #4613 > > inl windows (len : unativeint) (source : am'.vec u8) : windows u8 = -00:03:00 v #4614 > > inl source = source |> rust.new_box |> rust.box_leak -00:03:00 v #4615 > > // inl source' = source |> rust.clone -00:03:00 v #4616 > > inl result = !\\(len, $'"<[[_]]>::windows(!source, $0)"') -00:03:00 v #4617 > > // source |> rust.drop -00:03:00 v #4618 > > result -00:03:01 v #4619 > > -00:03:01 v #4620 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:01 v #4621 > > │ ### any -00:03:01 v #4622 > > -00:03:01 v #4623 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:01 v #4624 > > inl any forall t. (fn : string -> bool) (source : windows t) : bool = -00:03:01 v #4625 > > (!\($'"true; let mut !source = !source"') : bool) |> ignore -00:03:01 v #4626 > > inl fn' x = -00:03:01 v #4627 > > x -00:03:01 v #4628 > > |> str_from_utf8 -00:03:01 v #4629 > > |> resultm.unwrap_or' #"" -00:03:01 v #4630 > > |> ref_to_std_string -00:03:01 v #4631 > > |> from_std_string -00:03:01 v #4632 > > |> fn -00:03:01 v #4633 > > !\\(fn', $'"!source.any(move |x| $0(x))"') -00:03:01 v #4634 > > -00:03:01 v #4635 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:01 v #4636 > > │ ### slice_contains -00:03:01 v #4637 > > -00:03:01 v #4638 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:01 v #4639 > > inl slice_contains (text : string) (source : am'.vec u8) : bool = -00:03:01 v #4640 > > fun () => -00:03:01 v #4641 > > inl source = join source -00:03:01 v #4642 > > source -00:03:01 v #4643 > > |> windows (text |> length |> (fun x => x : i32) |> convert) -00:03:01 v #4644 > > |> any ((=.) text) -00:03:01 v #4645 > > |> fun x => join x () -00:03:02 v #4646 > > -00:03:02 v #4647 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:02 v #4648 > > │ ### as_bytes -00:03:02 v #4649 > > -00:03:02 v #4650 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:02 v #4651 > > inl as_bytes (text : string) : rust.ref (am'.slice u8) = -00:03:02 v #4652 > > inl text = join text -00:03:02 v #4653 > > !\($'"!text.as_bytes()"') -00:03:02 v #4654 > > -00:03:02 v #4655 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:02 v #4656 > > │ ### into_bytes -00:03:02 v #4657 > > -00:03:02 v #4658 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:02 v #4659 > > inl into_bytes (x : std_string) : am'.vec u8 = -00:03:02 v #4660 > > !\\(x, $'$"$0.into_bytes()"') -00:03:03 v #4661 > > -00:03:03 v #4662 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:03 v #4663 > > │ ## python -00:03:03 v #4664 > > -00:03:03 v #4665 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:03 v #4666 > > │ ### encode_utf8 -00:03:03 v #4667 > > -00:03:03 v #4668 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:03 v #4669 > > inl encode_utf8 (s : string) : string = -00:03:03 v #4670 > > inl encoding = "utf-8" -00:03:03 v #4671 > > backend_switch { -00:03:03 v #4672 > > Fsharp = fun () => -00:03:03 v #4673 > > open python_operators -00:03:03 v #4674 > > !\\((s, encoding), $'"$0.encode($1)"') : string -00:03:03 v #4675 > > Python = fun () => -00:03:03 v #4676 > > $'!s.encode(!encoding)' : string -00:03:03 v #4677 > > } -00:03:03 v #4678 > > -00:03:03 v #4679 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:03 v #4680 > > │ ## sm' -00:03:03 v #4681 > > -00:03:03 v #4682 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:03 v #4683 > > │ ### contains -00:03:03 v #4684 > > -00:03:03 v #4685 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:03 v #4686 > > inl contains (value : string) (s : string) : bool = -00:03:03 v #4687 > > backend_switch { -00:03:03 v #4688 > > Fsharp = fun () => $'!s.Contains !value ' : bool -00:03:03 v #4689 > > Python = fun () => $'!value in !s ' : bool -00:03:03 v #4690 > > } -00:03:04 v #4691 > > -00:03:04 v #4692 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:04 v #4693 > > │ ### to_string result t u -00:03:04 v #4694 > > -00:03:04 v #4695 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:04 v #4696 > > instance to_string result t u = fun x => -00:03:04 v #4697 > > real -00:03:04 v #4698 > > open rust -00:03:04 v #4699 > > typecase (t * u) with -00:03:04 v #4700 > > | string * string => -00:03:04 v #4701 > > match x with -00:03:04 v #4702 > > | Ok x => x -00:03:04 v #4703 > > | Error x => $'"sm\'.to_string result / Error: " + !x + ""' : string -00:03:04 v #4704 > > | std_string * std_string => -00:03:04 v #4705 > > match x with -00:03:04 v #4706 > > | Ok x => from_std_string x -00:03:04 v #4707 > > | Error x => $'"sm\'.to_string result / Error: " + string !x + ""' : -00:03:04 v #4708 > > string -00:03:04 v #4709 > > | _ => obj_to_string `u x -00:03:04 v #4710 > > -00:03:04 v #4711 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:04 v #4712 > > │ ### format_exception -00:03:04 v #4713 > > -00:03:04 v #4714 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:04 v #4715 > > inl format_exception (ex : exn) : string = -00:03:04 v #4716 > > run_target function -00:03:04 v #4717 > > | Fsharp (Native) => fun () => $'$"{!ex.GetType ()}: {!ex.Message}"' -00:03:04 v #4718 > > | _ => fun () => ex |> format_debug -00:03:05 v #4719 > > -00:03:05 v #4720 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:05 v #4721 > > //// test -00:03:05 v #4722 > > ///! fsharp -00:03:05 v #4723 > > ///! cuda -00:03:05 v #4724 > > ///! rust -00:03:05 v #4725 > > ///! typescript -00:03:05 v #4726 > > ///! python -00:03:05 v #4727 > > -00:03:05 v #4728 > > fun () => failwith "test" -00:03:05 v #4729 > > |> _throws -00:03:05 v #4730 > > |> optionm.value -00:03:05 v #4731 > > |> sm'.format_exception -00:03:05 v #4732 > > |> _assert_eq (run_target function -00:03:05 v #4733 > > | Fsharp _ => fun () => join "System.Exception: test" -00:03:05 v #4734 > > | Cuda _ => fun () => "test" -00:03:05 v #4735 > > | Rust _ => fun () => "Exception { message: \"test\" }" -00:03:05 v #4736 > > | TypeScript _ => fun () => "Error: test" -00:03:05 v #4737 > > | Python _ => fun () => join "test" -00:03:05 v #4738 > > | _ => fun () => null () -00:03:05 v #4739 > > ) -00:03:08 v #4740 > > -00:03:08 v #4741 > > ── [ 3.27s - return value ] ──────────────────────────────────────────────────── -00:03:08 v #4742 > > │ .py output (Cuda): -00:03:08 v #4743 > > │ __assert_eq / actual: test / expected: test -00:03:08 v #4744 > > │ -00:03:08 v #4745 > > │ .rs output: -00:03:08 v #4746 > > │ __assert_eq / actual: "Exception { message: "test" }" -00:03:08 v #4747 > > expected: "Exception { message: "test" }" -00:03:08 v #4748 > > │ -00:03:08 v #4749 > > │ .ts output: -00:03:08 v #4750 > > │ __assert_eq / actual: Error: test / expected: Error: test -00:03:08 v #4751 > > │ -00:03:08 v #4752 > > │ .py output: -00:03:08 v #4753 > > │ __assert_eq / actual: test / expected: test -00:03:08 v #4754 > > │ -00:03:08 v #4755 > > │ -00:03:08 v #4756 > > -00:03:08 v #4757 > > ── [ 3.27s - stdout ] ────────────────────────────────────────────────────────── -00:03:08 v #4758 > > │ .fsx output: -00:03:08 v #4759 > > │ __assert_eq / actual: "System.Exception: test" / expected: -00:03:08 v #4760 > > "System.Exception: test" -00:03:08 v #4761 > > │ -00:03:08 v #4762 > > -00:03:08 v #4763 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:08 v #4764 > > │ ### range -00:03:08 v #4765 > > -00:03:08 v #4766 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:08 v #4767 > > inl range forall t. (start : am'.range t) (end : am'.range t) s = -00:03:08 v #4768 > > inl start, end = -00:03:08 v #4769 > > inl len () = -00:03:08 v #4770 > > s |> length' -00:03:08 v #4771 > > match start, end with -00:03:08 v #4772 > > | Start start, End fn => start, len |> fn -00:03:08 v #4773 > > | End start_fn, End end_fn => start_fn len, end_fn len -00:03:08 v #4774 > > s |> slice (start |> i32) ((end |> i32) - 1) -00:03:08 v #4775 > > -00:03:08 v #4776 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:08 v #4777 > > //// test -00:03:08 v #4778 > > ///! fsharp -00:03:08 v #4779 > > ///! cuda -00:03:08 v #4780 > > -00:03:08 v #4781 > > "abcde" -00:03:08 v #4782 > > |> range (am'.Start 1i32) (am'.End eval) -00:03:08 v #4783 > > |> _assert_eq "bcde" -00:03:08 v #4784 > > -00:03:08 v #4785 > > "abcde" -00:03:08 v #4786 > > |> range (am'.End fun x => x () - 4i32) (am'.End fun x => x () - 1) -00:03:08 v #4787 > > |> _assert_eq "bcd" -00:03:09 v #4788 > > -00:03:09 v #4789 > > ── [ 1.17s - return value ] ──────────────────────────────────────────────────── -00:03:09 v #4790 > > │ -00:03:09 v #4791 > > │ .py output (Cuda): -00:03:09 v #4792 > > │ __assert_eq / actual: bcde / expected: bcde -00:03:09 v #4793 > > │ __assert_eq / actual: bcd / expected: bcd -00:03:09 v #4794 > > │ -00:03:09 v #4795 > > │ -00:03:09 v #4796 > > -00:03:09 v #4797 > > ── [ 1.17s - stdout ] ────────────────────────────────────────────────────────── -00:03:09 v #4798 > > │ .fsx output: -00:03:09 v #4799 > > │ __assert_eq / actual: "bcde" / expected: "bcde" -00:03:09 v #4800 > > │ __assert_eq / actual: "bcd" / expected: "bcd" -00:03:09 v #4801 > > │ -00:03:09 v #4802 > > -00:03:09 v #4803 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:09 v #4804 > > │ ### concat_list -00:03:09 v #4805 > > -00:03:09 v #4806 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:09 v #4807 > > inl concat_list s list = -00:03:09 v #4808 > > list -00:03:09 v #4809 > > |> listm'.box -00:03:09 v #4810 > > |> seq.of_list' -00:03:09 v #4811 > > |> concat s -00:03:10 v #4812 > > -00:03:10 v #4813 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:10 v #4814 > > │ ### ellipsis_end -00:03:10 v #4815 > > -00:03:10 v #4816 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:10 v #4817 > > let ellipsis_end (max : i64) (s : string) = -00:03:10 v #4818 > > inl len = sm.length s -00:03:10 v #4819 > > if len <= max -00:03:10 v #4820 > > then s -00:03:10 v #4821 > > else -00:03:10 v #4822 > > inl half = f64 max / 2 -00:03:10 v #4823 > > inl start_half = half |> math.ceil |> i64 -00:03:10 v #4824 > > inl end_half = half |> math.floor |> i64 -00:03:10 v #4825 > > inl start = s |> slice 0 (start_half - 1) -00:03:10 v #4826 > > inl end = s |> slice (len - end_half) (len - 1) -00:03:10 v #4827 > > (a ;[[ start; "..."; end ]] : _ i32 _) -00:03:10 v #4828 > > |> seq.of_array -00:03:10 v #4829 > > |> concat "" -00:03:10 v #4830 > > -00:03:10 v #4831 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:10 v #4832 > > //// test -00:03:10 v #4833 > > -00:03:10 v #4834 > > "12345" -00:03:10 v #4835 > > |> ellipsis_end 2 -00:03:10 v #4836 > > |> _assert_eq "1...5" -00:03:10 v #4837 > > -00:03:10 v #4838 > > "12345" -00:03:10 v #4839 > > |> ellipsis_end 3 -00:03:10 v #4840 > > |> _assert_eq "12...5" -00:03:10 v #4841 > > -00:03:10 v #4842 > > "1234567" -00:03:10 v #4843 > > |> ellipsis_end 4 -00:03:10 v #4844 > > |> _assert_eq "12...67" -00:03:11 v #4845 > > -00:03:11 v #4846 > > ── [ 565.68ms - stdout ] ─────────────────────────────────────────────────────── -00:03:11 v #4847 > > │ __assert_eq / actual: "1...5" / expected: "1...5" -00:03:11 v #4848 > > │ __assert_eq / actual: "12...5" / expected: "12...5" -00:03:11 v #4849 > > │ __assert_eq / actual: "12...67" / expected: "12...67" -00:03:11 v #4850 > > │ -00:03:11 v #4851 > > -00:03:11 v #4852 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:11 v #4853 > > │ ### format_ellipsis -00:03:11 v #4854 > > -00:03:11 v #4855 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:11 v #4856 > > inl format_ellipsis s = -00:03:11 v #4857 > > s -00:03:11 v #4858 > > |> format_debug -00:03:11 v #4859 > > |> ellipsis_end 400 -00:03:11 v #4860 > > -00:03:11 v #4861 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:11 v #4862 > > │ ### replace_regex -00:03:11 v #4863 > > -00:03:11 v #4864 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:11 v #4865 > > let replace_regex (pattern : string) (replacement : string) (s : string) : -00:03:11 v #4866 > > string = -00:03:11 v #4867 > > run_target_args (fun () => s, pattern, replacement) function -00:03:11 v #4868 > > | Fsharp (Native) => fun s, pattern, replacement => -00:03:11 v #4869 > > $'System.Text.RegularExpressions.Regex.Replace (!s, !pattern, -00:03:11 v #4870 > > !replacement)' -00:03:11 v #4871 > > | Rust (Native) => fun s, pattern, replacement => -00:03:11 v #4872 > > inl regex = pattern |> new_regex |> resultm.unwrap' -00:03:11 v #4873 > > inl s = join s -00:03:11 v #4874 > > !\\((regex, s, replacement), $'$"$0.replace_all(&*$1, &*$2)"') -00:03:11 v #4875 > > |> cow_to_std_string -00:03:11 v #4876 > > |> from_std_string -00:03:11 v #4877 > > | _ => fun _ => null () -00:03:12 v #4878 > > -00:03:12 v #4879 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:12 v #4880 > > //// test -00:03:12 v #4881 > > ///! fsharp -00:03:12 v #4882 > > ///! rust -d regex -00:03:12 v #4883 > > -00:03:12 v #4884 > > " 123" -00:03:12 v #4885 > > |> replace_regex "\\s\\w2" "" -00:03:12 v #4886 > > |> _assert_eq "3" -00:03:15 v #4887 > > -00:03:15 v #4888 > > ── [ 2.79s - return value ] ──────────────────────────────────────────────────── -00:03:15 v #4889 > > │ .rs output (rust -d regex): -00:03:15 v #4890 > > │ __assert_eq / actual: "3" / expected: "3" -00:03:15 v #4891 > > │ -00:03:15 v #4892 > > │ -00:03:15 v #4893 > > -00:03:15 v #4894 > > ── [ 2.79s - stdout ] ────────────────────────────────────────────────────────── -00:03:15 v #4895 > > │ .fsx output: -00:03:15 v #4896 > > │ __assert_eq / actual: "3" / expected: "3" -00:03:15 v #4897 > > │ -00:03:15 v #4898 > > -00:03:15 v #4899 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:15 v #4900 > > //// test -00:03:15 v #4901 > > ///! rust -d regex -00:03:15 v #4902 > > -00:03:15 v #4903 > > " let main args =\n ()\n" -00:03:15 v #4904 > > |> replace_regex $'@@"(?P<a> *)(?P<b>let\\s+main\\s+.*?\\s*=)"' -00:03:15 v #4905 > > "$a[[<EntryPoint>]]\n$a$b" -00:03:15 v #4906 > > |> _assert_eq " [[<EntryPoint>]]\n let main args =\n ()\n" -00:03:17 v #4907 > > -00:03:17 v #4908 > > ── [ 2.74s - return value ] ──────────────────────────────────────────────────── -00:03:17 v #4909 > > │ __assert_eq / actual: " [<EntryPoint>] -00:03:17 v #4910 > > │ let main args = -00:03:17 v #4911 > > │ () -00:03:17 v #4912 > > │ " / expected: " [<EntryPoint>] -00:03:17 v #4913 > > │ let main args = -00:03:17 v #4914 > > │ () -00:03:17 v #4915 > > │ " -00:03:17 v #4916 > > │ -00:03:17 v #4917 > > -00:03:17 v #4918 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:17 v #4919 > > │ ## main -00:03:17 v #4920 > > -00:03:17 v #4921 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:17 v #4922 > > inl main () = -00:03:17 v #4923 > > $'let contains x = !contains x' : () -00:03:17 v #4924 > > $'let ends_with x = !ends_with x' : () -00:03:17 v #4925 > > $'let pad_left x = !pad_left x' : () -00:03:17 v #4926 > > $'let pad_right x = !pad_right x' : () -00:03:17 v #4927 > > $'let replace x = !replace x' : () -00:03:17 v #4928 > > $'let replace_regex x = !replace_regex x' : () -00:03:17 v #4929 > > inl slice (a : i32) (b : i32) c = slice a b c -00:03:17 v #4930 > > $'let slice x = !slice x' : () -00:03:17 v #4931 > > $'let split x = !split x' : () -00:03:17 v #4932 > > $'let split_string x = !split_string x' : () -00:03:17 v #4933 > > $'let starts_with x = !starts_with x' : () -00:03:17 v #4934 > > $'let substring x = !substring x' : () -00:03:17 v #4935 > > $'let to_lower x = !to_lower x' : () -00:03:17 v #4936 > > $'let to_upper x = !to_upper x' : () -00:03:17 v #4937 > > $'let trim x = !trim x' : () -00:03:17 v #4938 > > inl trim_end x = (a x : _ int _) |> am'.to_list' |> listm'.unbox |> trim_end -00:03:17 v #4939 > > $'let trim_end x = !trim_end x' : () -00:03:17 v #4940 > > inl trim_start x = (a x : _ int _) |> am'.to_list' |> listm'.unbox |> -00:03:17 v #4941 > > trim_start -00:03:17 v #4942 > > $'let trim_start x = !trim_start x' : () -00:03:17 v #4943 > > $'let ellipsis x = !ellipsis x' : () -00:03:17 v #4944 > > $'let ellipsis_end x = !ellipsis_end x' : () -00:03:17 v #4945 > > $'let format_exception x = !format_exception x' : () -00:03:17 v #4946 > > $'let concat_array x = !concat_array x' : () -00:03:17 v #4947 > > inl concat a (b : seq.seq' string) = concat a b -00:03:17 v #4948 > > $'let concat x = !concat x' : () -00:03:17 v #4949 > > $'let join\' x = !join' x' : () -00:03:17 v #4950 > > $'let to_char_array x = !to_char_array x' : () -00:03:18 v #4951 > > -00:03:18 v #4952 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:18 v #4953 > > │ ## rust -00:03:18 v #4954 > > -00:03:18 v #4955 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:18 v #4956 > > │ ### to_string std_string -00:03:18 v #4957 > > -00:03:18 v #4958 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:18 v #4959 > > open rust -00:03:18 v #4960 > > instance to_string std_string = from_std_string -00:03:19 v #4961 > 00:01:58 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 125417 } -00:03:19 v #4962 > 00:01:58 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/lib/spiral/sm'.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/lib/spiral/sm'.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:03:20 v #4963 > 00:01:59 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/lib/spiral/sm'.dib.ipynb to html -00:03:20 v #4964 > 00:01:59 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. -00:03:20 v #4965 > 00:01:59 v #7 ! validate(nb) -00:03:21 v #4966 > 00:02:00 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 -00:03:21 v #4967 > 00:02:00 v #9 ! return _pygments_highlight( -00:03:23 v #4968 > 00:02:02 v #10 ! [NbConvertApp] Writing 655973 bytes to c:\home\git\polyglot\lib\spiral\sm'.dib.html -00:03:23 v #4969 > 00:02:02 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 848 } -00:03:23 v #4970 > 00:02:02 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 848 } -00:03:23 v #4971 > 00:02:02 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/sm''.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/sm''.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:03:23 v #4972 > 00:02:02 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } -00:03:23 v #4973 > 00:02:02 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } -00:03:23 v #4974 > 00:02:02 d #16 spiral.run / dib / { exit_code = 0; result_length = 126324 } -00:03:23 d #4975 runtime.execute_with_options_async / { exit_code = 0; output_length = 135198 } -00:03:23 d #4 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path sm'.dib --retries 3 -00:03:23 d #4976 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path rust/rust.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path rust/rust.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } -00:03:23 v #4977 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "rust/rust.dib", "--retries", "3"])) } -00:03:23 v #4978 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/lib/spiral/rust/rust.dib", "--output-path", "c:/home/git/polyglot/lib/spiral/rust/rust.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/lib/spiral/rust/rust.dib" --output-path "c:/home/git/polyglot/lib/spiral/rust/rust.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } -00:03:25 v #4979 > > -00:03:25 v #4980 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:25 v #4981 > > │ # rust -00:03:28 v #4982 > > -00:03:28 v #4983 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:28 v #4984 > > //// test -00:03:28 v #4985 > > -00:03:28 v #4986 > > open testing -00:03:29 v #4987 > > -00:03:29 v #4988 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:29 v #4989 > > │ ## rust -00:03:29 v #4990 > > -00:03:29 v #4991 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:29 v #4992 > > │ ### any_base -00:03:29 v #4993 > > -00:03:29 v #4994 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:29 v #4995 > > type any_base = any -00:03:29 v #4996 > > -00:03:29 v #4997 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:29 v #4998 > > │ ### any -00:03:29 v #4999 > > -00:03:29 v #5000 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:29 v #5001 > > nominal any = -00:03:29 v #5002 > > `( -00:03:29 v #5003 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:03:29 v #5004 > > Fable.Core.Emit(\"core::any::Any\")>]]\ntype core_any_Any = class -00:03:29 v #5005 > > end\n#else\ntype core_any_Any = obj\n#endif\n" -00:03:29 v #5006 > > $'' : $'core_any_Any' -00:03:29 v #5007 > > ) -00:03:30 v #5008 > > -00:03:30 v #5009 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:30 v #5010 > > │ ### try -00:03:30 v #5011 > > -00:03:30 v #5012 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:30 v #5013 > > nominal try t = -00:03:30 v #5014 > > `( -00:03:30 v #5015 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:03:30 v #5016 > > Fable.Core.Emit(\"_\")>]]\n#endif\ntype core_ops_Try<'T> = class end" -00:03:30 v #5017 > > $'' : $'core_ops_Try<`t>' -00:03:30 v #5018 > > ) -00:03:30 v #5019 > > -00:03:30 v #5020 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:30 v #5021 > > │ ### cow -00:03:30 v #5022 > > -00:03:30 v #5023 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:30 v #5024 > > nominal cow t = -00:03:30 v #5025 > > `( -00:03:30 v #5026 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:03:30 v #5027 > > Fable.Core.Emit(\"std::borrow::Cow<$0>\")>]]\n#endif\ntype std_borrow_Cow<'T> = -00:03:30 v #5028 > > class end" -00:03:30 v #5029 > > $'' : $'std_borrow_Cow<`t>' -00:03:30 v #5030 > > ) -00:03:31 v #5031 > > -00:03:31 v #5032 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:31 v #5033 > > │ ### ref_cell -00:03:31 v #5034 > > -00:03:31 v #5035 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:31 v #5036 > > nominal ref_cell t = -00:03:31 v #5037 > > `( -00:03:31 v #5038 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:03:31 v #5039 > > Fable.Core.Emit(\"std::cell::RefCell<$0>\")>]]\n#endif\ntype -00:03:31 v #5040 > > std_cell_RefCell<'T> = class end" -00:03:31 v #5041 > > $'' : $'std_cell_RefCell<`t>' -00:03:31 v #5042 > > ) -00:03:31 v #5043 > > -00:03:31 v #5044 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:31 v #5045 > > │ ### cell_ref -00:03:31 v #5046 > > -00:03:31 v #5047 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:31 v #5048 > > nominal cell_ref t = -00:03:31 v #5049 > > `( -00:03:31 v #5050 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:03:31 v #5051 > > Fable.Core.Emit(\"std::cell::Ref<$0>\")>]]\n#endif\ntype std_cell_Ref<'T> = -00:03:31 v #5052 > > class end" -00:03:31 v #5053 > > $'' : $'std_cell_Ref<`t>' -00:03:31 v #5054 > > ) -00:03:31 v #5055 > > -00:03:31 v #5056 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:31 v #5057 > > │ ### rc -00:03:31 v #5058 > > -00:03:31 v #5059 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:31 v #5060 > > nominal rc t = -00:03:31 v #5061 > > `( -00:03:31 v #5062 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:03:31 v #5063 > > Fable.Core.Emit(\"std::rc::Rc<$0>\")>]]\n#endif\ntype std_rc_Rc<'T> = class end" -00:03:31 v #5064 > > $'' : $'std_rc_Rc<`t>' -00:03:31 v #5065 > > ) -00:03:32 v #5066 > > -00:03:32 v #5067 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:32 v #5068 > > │ ### lifetime_ref -00:03:32 v #5069 > > -00:03:32 v #5070 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:32 v #5071 > > nominal lifetime_ref (t : * -> *) u = -00:03:32 v #5072 > > `( -00:03:32 v #5073 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:03:32 v #5074 > > Fable.Core.Emit(\"$0\")>]]\n#endif\ntype LifetimeRef<'T> = class end" -00:03:32 v #5075 > > $'' : $'LifetimeRef<`(t u)>' -00:03:32 v #5076 > > ) -00:03:32 v #5077 > > -00:03:32 v #5078 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:32 v #5079 > > │ ### lifetime_join -00:03:32 v #5080 > > -00:03:32 v #5081 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:32 v #5082 > > nominal lifetime_join t u = -00:03:32 v #5083 > > `( -00:03:32 v #5084 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; Fable.Core.Emit(\"$0 + -00:03:32 v #5085 > > $1\")>]]\n#endif\ntype LifetimeJoin<'T, 'U> = class end" -00:03:32 v #5086 > > $'' : $'LifetimeJoin<`t, `u>' -00:03:32 v #5087 > > ) -00:03:33 v #5088 > > -00:03:33 v #5089 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:33 v #5090 > > │ ### lifetime -00:03:33 v #5091 > > -00:03:33 v #5092 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:33 v #5093 > > nominal lifetime t u = -00:03:33 v #5094 > > `( -00:03:33 v #5095 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; Fable.Core.Emit(\"$0 -00:03:33 v #5096 > > $1\")>]]\n#endif\ntype Lifetime<'T, 'U> = class end" -00:03:33 v #5097 > > $'' : $'Lifetime<`t, `u>' -00:03:33 v #5098 > > ) -00:03:33 v #5099 > > -00:03:33 v #5100 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:33 v #5101 > > │ ### static_lifetime -00:03:33 v #5102 > > -00:03:33 v #5103 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:33 v #5104 > > nominal static_lifetime = -00:03:33 v #5105 > > `( -00:03:33 v #5106 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:03:33 v #5107 > > Fable.Core.Emit(\"'static\")>]]\n#endif\ntype StaticLifetime = class end" -00:03:33 v #5108 > > $'' : $'StaticLifetime' -00:03:33 v #5109 > > ) -00:03:34 v #5110 > > -00:03:34 v #5111 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:34 v #5112 > > │ ### ref -00:03:34 v #5113 > > -00:03:34 v #5114 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:34 v #5115 > > nominal ref t = -00:03:34 v #5116 > > `( -00:03:34 v #5117 > > backend_switch `(()) `({}) { -00:03:34 v #5118 > > Fsharp = -00:03:34 v #5119 > > (fun () => -00:03:34 v #5120 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:03:34 v #5121 > > Fable.Core.Emit(\"&$0\")>]]\ntype Ref<'T> = class end\n#else\ntype Ref<'T> = -00:03:34 v #5122 > > 'T\n#endif\n" -00:03:34 v #5123 > > ) : () -> () -00:03:34 v #5124 > > } -00:03:34 v #5125 > > $'' : $'Ref<`t>' -00:03:34 v #5126 > > ) -00:03:34 v #5127 > > -00:03:34 v #5128 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:34 v #5129 > > │ ### static_ref -00:03:34 v #5130 > > -00:03:34 v #5131 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:34 v #5132 > > nominal static_ref t = ref (lifetime static_lifetime t) -00:03:34 v #5133 > > -00:03:34 v #5134 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:34 v #5135 > > │ ### weak_rc -00:03:34 v #5136 > > -00:03:34 v #5137 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:34 v #5138 > > nominal weak_rc t = -00:03:34 v #5139 > > `( -00:03:34 v #5140 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:03:34 v #5141 > > Fable.Core.Emit(\"std::rc::Weak<$0>\")>]]\n#endif\ntype std_rc_Weak<'T> = class -00:03:34 v #5142 > > end" -00:03:34 v #5143 > > $'' : $'std_rc_Weak<`t>' -00:03:34 v #5144 > > ) -00:03:35 v #5145 > > -00:03:35 v #5146 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:35 v #5147 > > │ ### box -00:03:35 v #5148 > > -00:03:35 v #5149 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:35 v #5150 > > nominal box t = -00:03:35 v #5151 > > `( -00:03:35 v #5152 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:03:35 v #5153 > > Fable.Core.Emit(\"Box<$0>\")>]]\n#endif\ntype Box<'T> = class end" -00:03:35 v #5154 > > $'' : $'Box<`t>' -00:03:35 v #5155 > > ) -00:03:35 v #5156 > > -00:03:35 v #5157 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:35 v #5158 > > │ ### mut_cell -00:03:35 v #5159 > > -00:03:35 v #5160 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:35 v #5161 > > nominal mut_cell t = -00:03:35 v #5162 > > `( -00:03:35 v #5163 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:03:35 v #5164 > > Fable.Core.Emit(\"MutCell<$0>\")>]]\n#endif\ntype MutCell<'T> = class end" -00:03:35 v #5165 > > $'' : $'MutCell<`t>' -00:03:35 v #5166 > > ) -00:03:36 v #5167 > > -00:03:36 v #5168 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:36 v #5169 > > │ ### pin -00:03:36 v #5170 > > -00:03:36 v #5171 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:36 v #5172 > > nominal pin t = -00:03:36 v #5173 > > `( -00:03:36 v #5174 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:03:36 v #5175 > > Fable.Core.Emit(\"std::pin::Pin<$0>\")>]]\n#endif\ntype std_pin_Pin<'T> = class -00:03:36 v #5176 > > end" -00:03:36 v #5177 > > $'' : $'std_pin_Pin<`t>' -00:03:36 v #5178 > > ) -00:03:36 v #5179 > > -00:03:36 v #5180 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:36 v #5181 > > │ ### dyn' -00:03:36 v #5182 > > -00:03:36 v #5183 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:36 v #5184 > > nominal dyn' t = -00:03:36 v #5185 > > `( -00:03:36 v #5186 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; Fable.Core.Emit(\"dyn -00:03:36 v #5187 > > $0\")>]]\n#endif\ntype Dyn<'T> = class end" -00:03:36 v #5188 > > $'' : $'Dyn<`t>' -00:03:36 v #5189 > > ) -00:03:37 v #5190 > > -00:03:37 v #5191 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:37 v #5192 > > │ ### fn' -00:03:37 v #5193 > > -00:03:37 v #5194 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:37 v #5195 > > nominal fn' t = -00:03:37 v #5196 > > `( -00:03:37 v #5197 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; Fable.Core.Emit(\"Fn() -00:03:37 v #5198 > > -> $0\")>]]\n#endif\ntype Fn<'T> = class end" -00:03:37 v #5199 > > $'' : $'Fn<`t>' -00:03:37 v #5200 > > ) -00:03:37 v #5201 > > -00:03:37 v #5202 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:37 v #5203 > > │ ### action_fn -00:03:37 v #5204 > > -00:03:37 v #5205 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:37 v #5206 > > nominal action_fn t = -00:03:37 v #5207 > > `( -00:03:37 v #5208 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:03:37 v #5209 > > Fable.Core.Emit(\"Fn($0)\")>]]\n#endif\ntype ActionFn<'T> = class end" -00:03:37 v #5210 > > $'' : $'ActionFn<`t>' -00:03:37 v #5211 > > ) -00:03:37 v #5212 > > -00:03:37 v #5213 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:37 v #5214 > > │ ### action_fn2 -00:03:37 v #5215 > > -00:03:37 v #5216 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:37 v #5217 > > nominal action_fn2 t u = -00:03:37 v #5218 > > `( -00:03:37 v #5219 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:03:37 v #5220 > > Fable.Core.Emit(\"Fn($0, $1)\")>]]\n#endif\ntype ActionFn2<'T, 'U> = class end" -00:03:37 v #5221 > > $'' : $'ActionFn2<`t, `u>' -00:03:37 v #5222 > > ) -00:03:38 v #5223 > > -00:03:38 v #5224 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:38 v #5225 > > │ ### fn_once -00:03:38 v #5226 > > -00:03:38 v #5227 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:38 v #5228 > > nominal fn_once t = -00:03:38 v #5229 > > `( -00:03:38 v #5230 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:03:38 v #5231 > > Fable.Core.Emit(\"FnOnce() -> $0\")>]]\n#endif\ntype FnOnce<'T> = class end" -00:03:38 v #5232 > > $'' : $'FnOnce<`t>' -00:03:38 v #5233 > > ) -00:03:38 v #5234 > > -00:03:38 v #5235 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:38 v #5236 > > │ ### fn_unit -00:03:38 v #5237 > > -00:03:38 v #5238 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:38 v #5239 > > nominal fn_unit = -00:03:38 v #5240 > > `( -00:03:38 v #5241 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:03:38 v #5242 > > Fable.Core.Emit(\"Fn()\")>]]\n#endif\ntype FnUnit = class end" -00:03:38 v #5243 > > $'' : $'FnUnit' -00:03:38 v #5244 > > ) -00:03:39 v #5245 > > -00:03:39 v #5246 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:39 v #5247 > > │ ### func0 -00:03:39 v #5248 > > -00:03:39 v #5249 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:39 v #5250 > > nominal func0 t = -00:03:39 v #5251 > > `( -00:03:39 v #5252 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:03:39 v #5253 > > Fable.Core.Emit(\"Func0<$0>\")>]]\n#endif\ntype Func0<'T> = class end" -00:03:39 v #5254 > > $'' : $'Func0<`t>' -00:03:39 v #5255 > > ) -00:03:39 v #5256 > > -00:03:39 v #5257 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:39 v #5258 > > │ ### func1 -00:03:39 v #5259 > > -00:03:39 v #5260 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:39 v #5261 > > nominal func1 t u = -00:03:39 v #5262 > > `( -00:03:39 v #5263 > > typecase t with -00:03:39 v #5264 > > | () => `func0 `u -00:03:39 v #5265 > > | _ => -00:03:39 v #5266 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:03:39 v #5267 > > Fable.Core.Emit(\"Func1<$0, $1>\")>]]\n#endif\ntype Func0<'T, 'U> = class end" -00:03:39 v #5268 > > $'' : $'Func0<`t, `u>' -00:03:39 v #5269 > > ) -00:03:40 v #5270 > > -00:03:40 v #5271 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:40 v #5272 > > │ ### impl -00:03:40 v #5273 > > -00:03:40 v #5274 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:40 v #5275 > > nominal impl t = -00:03:40 v #5276 > > `( -00:03:40 v #5277 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; Fable.Core.Emit(\"impl -00:03:40 v #5278 > > $0\")>]]\n#endif\ntype Impl<'T> = class end" -00:03:40 v #5279 > > $'' : $'Impl<`t>' -00:03:40 v #5280 > > ) -00:03:40 v #5281 > > -00:03:40 v #5282 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:40 v #5283 > > │ ### mut' -00:03:40 v #5284 > > -00:03:40 v #5285 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:40 v #5286 > > nominal mut' t = -00:03:40 v #5287 > > `( -00:03:40 v #5288 > > backend_switch `(()) `({}) { -00:03:40 v #5289 > > Fsharp = -00:03:40 v #5290 > > (fun () => -00:03:40 v #5291 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:03:40 v #5292 > > Fable.Core.Emit(\"mut $0\")>]]\n#endif\ntype Mut<'T> = class end" -00:03:40 v #5293 > > ) : () -> () -00:03:40 v #5294 > > } -00:03:40 v #5295 > > $'' : $'Mut<`t>' -00:03:40 v #5296 > > ) -00:03:40 v #5297 > > -00:03:40 v #5298 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:40 v #5299 > > │ ### ref_mut -00:03:40 v #5300 > > -00:03:40 v #5301 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:40 v #5302 > > nominal ref_mut t = -00:03:40 v #5303 > > `( -00:03:40 v #5304 > > backend_switch `(()) `({}) { -00:03:40 v #5305 > > Fsharp = -00:03:40 v #5306 > > (fun () => -00:03:40 v #5307 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:03:40 v #5308 > > Fable.Core.Emit(\"std::cell::RefMut<$0>\")>]]\n#endif\ntype std_cell_RefMut<'T> -00:03:40 v #5309 > > = class end" -00:03:40 v #5310 > > ) : () -> () -00:03:40 v #5311 > > } -00:03:40 v #5312 > > $'' : $'std_cell_RefMut<`t>' -00:03:40 v #5313 > > ) -00:03:41 v #5314 > > -00:03:41 v #5315 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:41 v #5316 > > │ ### send -00:03:41 v #5317 > > -00:03:41 v #5318 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:41 v #5319 > > nominal send t = -00:03:41 v #5320 > > `( -00:03:41 v #5321 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:03:41 v #5322 > > Fable.Core.Emit(\"Send\")>]]\n#endif\ntype Send<'T> = class end" -00:03:41 v #5323 > > $'' : lifetime_join t $'Send<`t>' -00:03:41 v #5324 > > ) -00:03:41 v #5325 > > -00:03:41 v #5326 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:41 v #5327 > > │ ### emit_expr -00:03:41 v #5328 > > -00:03:41 v #5329 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:41 v #5330 > > inl emit_expr forall a t. (args : a) (code : string) : t = -00:03:41 v #5331 > > $'Fable.Core.RustInterop.emitRustExpr !args !code ' -00:03:42 v #5332 > > -00:03:42 v #5333 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:42 v #5334 > > │ ### (~!\\) -00:03:42 v #5335 > > -00:03:42 v #5336 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:42 v #5337 > > inl (~!\) forall t. (code : string) : t = -00:03:42 v #5338 > > emit_expr () code -00:03:42 v #5339 > > -00:03:42 v #5340 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:42 v #5341 > > │ ### (~!\\\\) -00:03:42 v #5342 > > -00:03:42 v #5343 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:42 v #5344 > > inl (~!\\) forall t u. ((args : t), (code : string)) : u = -00:03:42 v #5345 > > emit_expr args code -00:03:43 v #5346 > > -00:03:43 v #5347 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:43 v #5348 > > │ ### ptr -00:03:43 v #5349 > > -00:03:43 v #5350 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:43 v #5351 > > nominal ptr t = -00:03:43 v #5352 > > `( -00:03:43 v #5353 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:03:43 v #5354 > > Fable.Core.Emit(\"*const $0\")>]]\n#endif\ntype Ptr<'T> = class end" -00:03:43 v #5355 > > $'' : $'Ptr<`t>' -00:03:43 v #5356 > > ) -00:03:43 v #5357 > > -00:03:43 v #5358 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:43 v #5359 > > │ ### ptr_read -00:03:43 v #5360 > > -00:03:43 v #5361 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:43 v #5362 > > inl ptr_read forall t. (x : ptr t) : t = -00:03:43 v #5363 > > !\\(x, $'"std::ptr::read($0)"') -00:03:43 v #5364 > > -00:03:43 v #5365 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:43 v #5366 > > │ ### u128 -00:03:43 v #5367 > > -00:03:43 v #5368 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:43 v #5369 > > nominal u128 = -00:03:43 v #5370 > > `( -00:03:43 v #5371 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:03:43 v #5372 > > Fable.Core.Emit(\"u128\")>]]\n#endif\ntype u128 = class end" -00:03:43 v #5373 > > $'' : $'u128' -00:03:43 v #5374 > > ) -00:03:44 v #5375 > > -00:03:44 v #5376 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:44 v #5377 > > inl u128 forall t. (x : t) : u128 = -00:03:44 v #5378 > > !\\(x, $'"$0 as u128"') -00:03:44 v #5379 > > -00:03:44 v #5380 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:44 v #5381 > > │ ### f64 -00:03:44 v #5382 > > -00:03:44 v #5383 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:44 v #5384 > > inl f64 forall t. (x : t) : f64 = -00:03:44 v #5385 > > !\\(x, $'"$0 as f64"') -00:03:45 v #5386 > > -00:03:45 v #5387 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:45 v #5388 > > │ ### unwrap_0 -00:03:45 v #5389 > > -00:03:45 v #5390 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:45 v #5391 > > inl unwrap_0 forall (t : * -> *) u. (x : t u) : u = -00:03:45 v #5392 > > !\\(x, $'"$0.0"') -00:03:45 v #5393 > > -00:03:45 v #5394 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:45 v #5395 > > │ ### unwrap_0_ref -00:03:45 v #5396 > > -00:03:45 v #5397 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:45 v #5398 > > inl unwrap_0_ref forall (t : * -> *) u. (x : ref (t u)) : ref u = -00:03:45 v #5399 > > !\\(x, $'"&$0.0"') -00:03:45 v #5400 > > -00:03:45 v #5401 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:45 v #5402 > > │ ### len -00:03:45 v #5403 > > -00:03:45 v #5404 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:45 v #5405 > > inl len forall t u {uint; int}. (x : t) : u = -00:03:45 v #5406 > > !\($'$"!x.len()"') -00:03:46 v #5407 > > -00:03:46 v #5408 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:46 v #5409 > > │ ### len' -00:03:46 v #5410 > > -00:03:46 v #5411 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:46 v #5412 > > inl len' forall t u {uint; int}. (x : t) : u = -00:03:46 v #5413 > > !\\(x, $'$"$0.len()"') -00:03:46 v #5414 > > -00:03:46 v #5415 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:46 v #5416 > > │ ### emit -00:03:46 v #5417 > > -00:03:46 v #5418 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:46 v #5419 > > inl emit forall t. (x : t) : t = -00:03:46 v #5420 > > !\\(x, $'"$0"') -00:03:47 v #5421 > > -00:03:47 v #5422 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:47 v #5423 > > │ ### emit' -00:03:47 v #5424 > > -00:03:47 v #5425 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:47 v #5426 > > inl emit' forall t. (x : t) : t = -00:03:47 v #5427 > > (!\\(x, $'$"true; let !x = $0"') : bool) |> ignore -00:03:47 v #5428 > > x -00:03:47 v #5429 > > -00:03:47 v #5430 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:47 v #5431 > > │ ### clone -00:03:47 v #5432 > > -00:03:47 v #5433 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:47 v #5434 > > inl clone forall t. (x : t) : t = -00:03:47 v #5435 > > !\\(x, $'"$0.clone()"') -00:03:48 v #5436 > > -00:03:48 v #5437 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:48 v #5438 > > │ ### dbg -00:03:48 v #5439 > > -00:03:48 v #5440 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:48 v #5441 > > inl dbg forall t. (x : t) : t = -00:03:48 v #5442 > > !\\(x, $'"dbg\!($0)"') -00:03:48 v #5443 > > -00:03:48 v #5444 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:48 v #5445 > > │ ### new_box -00:03:48 v #5446 > > -00:03:48 v #5447 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:48 v #5448 > > inl new_box forall t. (x : t) : box t = -00:03:48 v #5449 > > !\\(x, $'"Box::new($0)"') -00:03:48 v #5450 > > -00:03:48 v #5451 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:48 v #5452 > > │ ### new_rc -00:03:48 v #5453 > > -00:03:48 v #5454 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:48 v #5455 > > inl new_rc forall t. (x : t) : rc t = -00:03:48 v #5456 > > !\\(x, $'"std::rc::Rc::new($0)"') -00:03:49 v #5457 > > -00:03:49 v #5458 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:49 v #5459 > > │ ### rc_clone -00:03:49 v #5460 > > -00:03:49 v #5461 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:49 v #5462 > > inl rc_clone forall t. (x : rc t) : rc t = -00:03:49 v #5463 > > !\\(x, $'"std::rc::Rc::clone(&$0)"') -00:03:49 v #5464 > > -00:03:49 v #5465 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:49 v #5466 > > │ ### rc_unwrap_or_clone -00:03:49 v #5467 > > -00:03:49 v #5468 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:49 v #5469 > > inl rc_unwrap_or_clone forall t. (x : rc t) : t = -00:03:49 v #5470 > > !\\(x, $'"std::rc::Rc::unwrap_or_clone($0)"') -00:03:50 v #5471 > > -00:03:50 v #5472 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:50 v #5473 > > │ ### rc_downgrade -00:03:50 v #5474 > > -00:03:50 v #5475 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:50 v #5476 > > inl rc_downgrade forall t. (x : rc t) : weak_rc t = -00:03:50 v #5477 > > !\\(x, $'"std::rc::Rc::downgrade(&$0)"') -00:03:50 v #5478 > > -00:03:50 v #5479 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:50 v #5480 > > │ ### new_ref_cell -00:03:50 v #5481 > > -00:03:50 v #5482 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:50 v #5483 > > inl new_ref_cell forall t. (x : t) : ref_cell t = -00:03:50 v #5484 > > !\($'"std::cell::RefCell::new(!x)"') -00:03:50 v #5485 > > -00:03:50 v #5486 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:50 v #5487 > > │ ### ref_cell_borrow -00:03:50 v #5488 > > -00:03:50 v #5489 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:50 v #5490 > > inl ref_cell_borrow forall t. (x : rc (ref_cell t)) : cell_ref t = -00:03:50 v #5491 > > !\\(x, $'"std::cell::RefCell::borrow(&std::rc::Rc::clone(&$0))"') -00:03:51 v #5492 > > -00:03:51 v #5493 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:51 v #5494 > > │ ### ref_cell_borrow_mut -00:03:51 v #5495 > > -00:03:51 v #5496 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:51 v #5497 > > inl ref_cell_borrow_mut forall t. (x : rc (ref_cell t)) : mut' t = -00:03:51 v #5498 > > !\\(x, $'"std::cell::RefCell::borrow_mut(&std::rc::Rc::clone(&$0))"') -00:03:51 v #5499 > > -00:03:51 v #5500 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:51 v #5501 > > │ ### ref_leak -00:03:51 v #5502 > > -00:03:51 v #5503 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:51 v #5504 > > inl ref_leak forall t. (x : cell_ref t) : ref t = -00:03:51 v #5505 > > !\\(x, $'"std::cell::Ref::leak($0)"') -00:03:52 v #5506 > > -00:03:52 v #5507 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:52 v #5508 > > │ ### to_mut -00:03:52 v #5509 > > -00:03:52 v #5510 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:52 v #5511 > > inl to_mut forall t. (x : t) : () = -00:03:52 v #5512 > > (!\($'"true; // 1"') : bool) |> ignore -00:03:52 v #5513 > > !\($'"let mut !x = !x"') : () -00:03:52 v #5514 > > // (!\($'"true; !x"') : bool) |> ignore -00:03:52 v #5515 > > // !\($'"!x"') -00:03:52 v #5516 > > // inl result = !\($'"!x"') : mut' t -00:03:52 v #5517 > > // !\($'"!result"') -00:03:52 v #5518 > > // inl result = !\($'"*/ // a"') : mut' t -00:03:52 v #5519 > > // inl result = !\($'"!x"') : mut' t -00:03:52 v #5520 > > // result |> fun x => $'!x |> unbox // b' -00:03:52 v #5521 > > -00:03:52 v #5522 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:52 v #5523 > > │ ### to_ref -00:03:52 v #5524 > > -00:03:52 v #5525 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:52 v #5526 > > inl to_ref forall t. (x : t) : ref t = -00:03:52 v #5527 > > !\\(x, $'"&$0"') -00:03:52 v #5528 > > -00:03:52 v #5529 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:52 v #5530 > > │ ### to_ref_mut -00:03:52 v #5531 > > -00:03:52 v #5532 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:52 v #5533 > > inl to_ref_mut forall t. (x : t) : ref (mut' t) = -00:03:52 v #5534 > > x |> to_mut -00:03:52 v #5535 > > !\\(x, $'"&mut $0"') -00:03:53 v #5536 > > -00:03:53 v #5537 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:53 v #5538 > > │ ### to_ref_mut' -00:03:53 v #5539 > > -00:03:53 v #5540 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:53 v #5541 > > inl to_ref_mut' forall t. (x : ref_mut (ref (mut' t))) : ref (mut' t) = -00:03:53 v #5542 > > x |> to_mut -00:03:53 v #5543 > > !\\(x, $'"&mut $0"') -00:03:53 v #5544 > > -00:03:53 v #5545 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:53 v #5546 > > │ ### ref_cell_borrow_mut' -00:03:53 v #5547 > > -00:03:53 v #5548 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:53 v #5549 > > inl ref_cell_borrow_mut' forall t. (x : rc (ref_cell (ref (mut' t)))) : ref -00:03:53 v #5550 > > (mut' t) = -00:03:53 v #5551 > > inl x = x |> rc_clone -00:03:53 v #5552 > > inl x : ref_mut (ref (mut' t)) = !\\(x, -00:03:53 v #5553 > > $'"std::cell::RefCell::borrow_mut(&$0)"') -00:03:53 v #5554 > > x |> to_ref_mut' -00:03:54 v #5555 > > -00:03:54 v #5556 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:54 v #5557 > > │ ### ref_map -00:03:54 v #5558 > > -00:03:54 v #5559 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:54 v #5560 > > inl ref_map forall t u. (fn : t -> u) (x : ref t) : ref u = -00:03:54 v #5561 > > !\($'"!fn(!x)"') -00:03:54 v #5562 > > -00:03:54 v #5563 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:54 v #5564 > > │ ### ref_eval -00:03:54 v #5565 > > -00:03:54 v #5566 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:54 v #5567 > > inl ref_eval forall t u. (fn : t -> u) (ref : ref t) : u = -00:03:54 v #5568 > > !\\(fn, $'"$0(!ref.clone())"') -00:03:55 v #5569 > > -00:03:55 v #5570 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:55 v #5571 > > │ ### cow_as_ref -00:03:55 v #5572 > > -00:03:55 v #5573 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:55 v #5574 > > inl cow_as_ref forall t. (s : cow t) : ref t = -00:03:55 v #5575 > > !\\(s, $'"$0.as_ref()"') -00:03:55 v #5576 > > -00:03:55 v #5577 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:55 v #5578 > > │ ### from_mut -00:03:55 v #5579 > > -00:03:55 v #5580 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:55 v #5581 > > inl from_mut forall t. (x : mut' t) : t = -00:03:55 v #5582 > > !\\(x, $'"$0"') -00:03:55 v #5583 > > -00:03:55 v #5584 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:55 v #5585 > > │ ### box_fn -00:03:55 v #5586 > > -00:03:55 v #5587 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:55 v #5588 > > inl box_fn forall t. (x : () -> ()) : box t = -00:03:55 v #5589 > > inl x = join x -00:03:55 v #5590 > > !\($'"Box::new(move || !x())"') -00:03:56 v #5591 > > -00:03:56 v #5592 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:56 v #5593 > > │ ### box_pin -00:03:56 v #5594 > > -00:03:56 v #5595 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:56 v #5596 > > inl box_pin forall t. (x : t) : pin (box t) = -00:03:56 v #5597 > > !\\(x, $'"Box::pin($0)"') -00:03:56 v #5598 > > -00:03:56 v #5599 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:56 v #5600 > > │ ### deref -00:03:56 v #5601 > > -00:03:56 v #5602 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:56 v #5603 > > inl deref forall t. (ref : ref t) : t = -00:03:56 v #5604 > > !\\(ref, $'"*$0"') -00:03:57 v #5605 > > -00:03:57 v #5606 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:57 v #5607 > > │ ### deref_mut -00:03:57 v #5608 > > -00:03:57 v #5609 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:57 v #5610 > > inl deref_mut forall t. (x : ref (mut' t)) : t = -00:03:57 v #5611 > > !\\(x, $'"*$0"') -00:03:57 v #5612 > > -00:03:57 v #5613 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:57 v #5614 > > │ ### clone_deref -00:03:57 v #5615 > > -00:03:57 v #5616 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:57 v #5617 > > inl clone_deref forall t. (ref : ref t) : t = -00:03:57 v #5618 > > !\\(ref, $'"$0.clone()"') -00:03:58 v #5619 > > -00:03:58 v #5620 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:58 v #5621 > > │ ### from_ref -00:03:58 v #5622 > > -00:03:58 v #5623 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:58 v #5624 > > inl from_ref forall t. (ref : ref t) : t = -00:03:58 v #5625 > > !\($'"!ref"') -00:03:58 v #5626 > > -00:03:58 v #5627 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:58 v #5628 > > │ ### from_ref_mut -00:03:58 v #5629 > > -00:03:58 v #5630 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:58 v #5631 > > inl from_ref_mut forall t. (ref : ref (mut' t)) : t = -00:03:58 v #5632 > > !\($'"!ref"') -00:03:58 v #5633 > > -00:03:58 v #5634 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:58 v #5635 > > │ ### reref -00:03:58 v #5636 > > -00:03:58 v #5637 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:58 v #5638 > > inl reref forall t (u : * -> *). (x : ref (u t)) : ref t = -00:03:58 v #5639 > > !\($'$"&*!x"') -00:03:59 v #5640 > > -00:03:59 v #5641 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:59 v #5642 > > │ ### into -00:03:59 v #5643 > > -00:03:59 v #5644 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:59 v #5645 > > inl into forall t u. (x : t) : u = -00:03:59 v #5646 > > !\($'"!x.into()"') -00:03:59 v #5647 > > -00:03:59 v #5648 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:59 v #5649 > > │ ### ops_deref -00:03:59 v #5650 > > -00:03:59 v #5651 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:59 v #5652 > > inl ops_deref forall t. (ref : t) : t = -00:03:59 v #5653 > > !\\(ref, $'"core::ops::Deref::deref(&$0)"') -00:04:00 v #5654 > > -00:04:00 v #5655 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:04:00 v #5656 > > │ ### func0_eval -00:04:00 v #5657 > > -00:04:00 v #5658 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:04:00 v #5659 > > inl func0_eval forall t. (x : func0 t) : t = -00:04:00 v #5660 > > !\\(x, $'"$0()"') -00:04:00 v #5661 > > -00:04:00 v #5662 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:04:00 v #5663 > > │ ### func0_move -00:04:00 v #5664 > > -00:04:00 v #5665 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:04:00 v #5666 > > inl func0_move forall t. (fn : func0 t) : t = -00:04:00 v #5667 > > inl fn = join fn -00:04:00 v #5668 > > !\($'"(move || !fn())()"') -00:04:00 v #5669 > > -00:04:00 v #5670 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:04:00 v #5671 > > │ ### func1_move -00:04:01 v #5672 > > -00:04:01 v #5673 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:04:01 v #5674 > > inl func1_move forall t u. (x : t) (fn : func1 t u) : u = -00:04:01 v #5675 > > inl fn = join fn -00:04:01 v #5676 > > inl is_unit : bool = -00:04:01 v #5677 > > real -00:04:01 v #5678 > > typecase t with -00:04:01 v #5679 > > | () => true -00:04:01 v #5680 > > | _ => false -00:04:01 v #5681 > > inl result = -00:04:01 v #5682 > > if is_unit -00:04:01 v #5683 > > then !\($'"(move || !fn())()"') : u -00:04:01 v #5684 > > else -00:04:01 v #5685 > > $'let func1_move_x = !x //' : () -00:04:01 v #5686 > > inl func1_move_x : infer = $'func1_move_x' -00:04:01 v #5687 > > !\\(func1_move_x, $'"(move |x| !fn(x))($0)"') : u -00:04:01 v #5688 > > result -00:04:01 v #5689 > > -00:04:01 v #5690 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:04:01 v #5691 > > │ ### func0_from -00:04:01 v #5692 > > -00:04:01 v #5693 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:04:01 v #5694 > > inl func0_from forall t. (fn : () -> t) : func0 t = -00:04:01 v #5695 > > inl result' : unit = $'()' -00:04:01 v #5696 > > (!\($'$"true; let _func0_from_!result' = Func0::from(move || {{ //"') : -00:04:01 v #5697 > > bool) |> ignore -00:04:01 v #5698 > > inl is_unit : bool = -00:04:01 v #5699 > > real -00:04:01 v #5700 > > typecase t with -00:04:01 v #5701 > > | () => true -00:04:01 v #5702 > > | _ => false -00:04:01 v #5703 > > inl result = -00:04:01 v #5704 > > if is_unit |> not -00:04:01 v #5705 > > then fn () -00:04:01 v #5706 > > else -00:04:01 v #5707 > > (fn >> ignore) () -00:04:01 v #5708 > > // (!\($'$"true; // rust.func0_from"') : bool) |> ignore -00:04:01 v #5709 > > $'// rust.func0_from / is_unit' -00:04:01 v #5710 > > if is_unit -00:04:01 v #5711 > > then (!\($'$"true; /*"') : bool) |> ignore -00:04:01 v #5712 > > else (!\\(result, $'$"true; $0 /*"') : bool) |> ignore -00:04:01 v #5713 > > (!\($'$"*/ }}); //"') : bool) |> ignore -00:04:01 v #5714 > > !\($'$"_func0_from_!result'"') -00:04:01 v #5715 > > -00:04:01 v #5716 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:04:01 v #5717 > > │ ### func1_from -00:04:01 v #5718 > > -00:04:01 v #5719 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:04:01 v #5720 > > inl func1_from forall t u. (fn : t -> u) : func1 t u = -00:04:01 v #5721 > > inl result' : unit = $'()' -00:04:01 v #5722 > > inl is_unit : bool = -00:04:01 v #5723 > > real -00:04:01 v #5724 > > typecase u with -00:04:01 v #5725 > > | () => true -00:04:01 v #5726 > > | _ => false -00:04:01 v #5727 > > inl is_unit' : bool = -00:04:01 v #5728 > > real -00:04:01 v #5729 > > typecase t with -00:04:01 v #5730 > > | () => true -00:04:01 v #5731 > > | _ => false -00:04:01 v #5732 > > if is_unit -00:04:01 v #5733 > > then (!\($'$"true; let _func1_from_!result' = Func0::from(move || {{ //"') : -00:04:01 v #5734 > > bool) |> ignore -00:04:01 v #5735 > > else (!\($'$"true; let _func1_from_!result' = Func1::from(move |value| {{ -00:04:01 v #5736 > > //"') : bool) |> ignore -00:04:01 v #5737 > > -00:04:01 v #5738 > > inl result = -00:04:01 v #5739 > > if is_unit' -00:04:01 v #5740 > > then !\($'$"()"') -00:04:01 v #5741 > > else !\($'$"value"') -00:04:01 v #5742 > > |> fn -00:04:01 v #5743 > > -00:04:01 v #5744 > > if is_unit -00:04:01 v #5745 > > then (!\($'$"true; /*"') : bool) |> ignore -00:04:01 v #5746 > > else -00:04:01 v #5747 > > $'let func1_from_result = !result //' : () -00:04:01 v #5748 > > inl func1_from_result : infer = $'func1_from_result' -00:04:01 v #5749 > > (!\\(func1_from_result, $'$"true; $0 /*"') : bool) |> ignore -00:04:01 v #5750 > > (!\($'$"*/ }}); //"') : bool) |> ignore -00:04:01 v #5751 > > !\($'$"_func1_from_!result'"') -00:04:02 v #5752 > > -00:04:02 v #5753 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:04:02 v #5754 > > │ ### new_func0 -00:04:02 v #5755 > > -00:04:02 v #5756 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:04:02 v #5757 > > inl new_func0 forall t. (fn : () -> t) : func0 t = -00:04:02 v #5758 > > !\\(fn, $'"Func0::new(|| $0())"') -00:04:02 v #5759 > > -00:04:02 v #5760 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:04:02 v #5761 > > │ ### move -00:04:02 v #5762 > > -00:04:02 v #5763 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:04:02 v #5764 > > inl move forall t. (fn : () -> t) : func0 t = -00:04:02 v #5765 > > !\\(fn, $'"Func0::new(move || $0())"') -00:04:03 v #5766 > > -00:04:03 v #5767 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:04:03 v #5768 > > │ ### to_static_ref_unbox -00:04:03 v #5769 > > -00:04:03 v #5770 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:04:03 v #5771 > > inl to_static_ref_unbox forall t. (x : ref t) : static_ref t = -00:04:03 v #5772 > > x |> unbox -00:04:03 v #5773 > > -00:04:03 v #5774 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:04:03 v #5775 > > │ ### from_static_ref_unbox -00:04:03 v #5776 > > -00:04:03 v #5777 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:04:03 v #5778 > > inl from_static_ref_unbox forall t. (x : static_ref t) : ref t = -00:04:03 v #5779 > > x |> unbox -00:04:04 v #5780 > > -00:04:04 v #5781 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:04:04 v #5782 > > │ ### box_leak -00:04:04 v #5783 > > -00:04:04 v #5784 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:04:04 v #5785 > > inl box_leak forall t. (x : box t) : static_ref (mut' t) = -00:04:04 v #5786 > > !\\(x, $'"Box::leak($0)"') -00:04:04 v #5787 > > -00:04:04 v #5788 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:04:04 v #5789 > > │ ### drop -00:04:04 v #5790 > > -00:04:04 v #5791 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:04:04 v #5792 > > inl drop forall t. (x : t) : () = -00:04:04 v #5793 > > (!\\(x, $'"true; drop($0)"') : bool) |> ignore -00:04:04 v #5794 > > -00:04:04 v #5795 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:04:04 v #5796 > > │ ### break -00:04:04 v #5797 > > -00:04:04 v #5798 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:04:04 v #5799 > > inl break () : () = -00:04:04 v #5800 > > (!\($'"true; break"') : bool) |> ignore -00:04:05 v #5801 > > -00:04:05 v #5802 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:04:05 v #5803 > > │ ### fix_closure' -00:04:05 v #5804 > > -00:04:05 v #5805 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:04:05 v #5806 > > inl fix_closure' forall t. (depth : u8 * u8) (x : t) : string = -00:04:05 v #5807 > > inl rec loop text (acc : string) n : string = -00:04:05 v #5808 > > if n <= 0 -00:04:05 v #5809 > > then acc -00:04:05 v #5810 > > else loop text (acc +. text) (n - 1) -00:04:05 v #5811 > > inl a = depth |> fst |> loop "}" "" -00:04:05 v #5812 > > inl b = depth |> snd |> loop "{" "" -00:04:05 v #5813 > > inl is_unit : bool = -00:04:05 v #5814 > > real -00:04:05 v #5815 > > typecase t with -00:04:05 v #5816 > > | () => true -00:04:05 v #5817 > > | _ => false -00:04:05 v #5818 > > $'let x = !x //' : () -00:04:05 v #5819 > > inl x : infer = $'x' -00:04:05 v #5820 > > inl result' : unit = $'()' -00:04:05 v #5821 > > run_target_args (fun () => x) function -00:04:05 v #5822 > > | Rust _ => fun x => -00:04:05 v #5823 > > if is_unit -00:04:05 v #5824 > > then false -00:04:05 v #5825 > > else -00:04:05 v #5826 > > (!\\(x, $'$"true; let _fix_closure_!result' = $0"') : bool) |> -00:04:05 v #5827 > > ignore -00:04:05 v #5828 > > true -00:04:05 v #5829 > > | _ => fun x' => false -00:04:05 v #5830 > > |> ignore -00:04:05 v #5831 > > $'$"true; _fix_closure_!result' " + !a + "); " + !b + " -00:04:05 v #5832 > > rust.fix_closure\'"' -00:04:05 v #5833 > > -00:04:05 v #5834 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:04:05 v #5835 > > //// test -00:04:05 v #5836 > > //// print_code -00:04:05 v #5837 > > -00:04:05 v #5838 > > fix_closure' (3, 2) 0i32 -00:04:05 v #5839 > > |> _assert_eq "true; _fix_closure_v9 }}}); {{ // rust.fix_closure'" -00:04:06 v #5840 > > -00:04:06 v #5841 > > ── [ 1.02s - stdout ] ────────────────────────────────────────────────────────── -00:04:06 v #5842 > > │ let rec method1 (v0 : bool) : bool = -00:04:06 v #5843 > > │ v0 -00:04:06 v #5844 > > │ and closure0 (v0 : string) () : unit = -00:04:06 v #5845 > > │ let v1 : (string -> unit) = System.Console.WriteLine -00:04:06 v #5846 > > │ v1 v0 -00:04:06 v #5847 > > │ and method0 () : unit = -00:04:06 v #5848 > > │ let v0 : string = "" -00:04:06 v #5849 > > │ let v1 : string = "}" -00:04:06 v #5850 > > │ let v2 : string = v0 + v1 -00:04:06 v #5851 > > │ let v3 : string = v2 + v1 -00:04:06 v #5852 > > │ let v4 : string = v3 + v1 -00:04:06 v #5853 > > │ let v5 : string = "{" -00:04:06 v #5854 > > │ let v6 : string = v0 + v5 -00:04:06 v #5855 > > │ let v7 : string = v6 + v5 -00:04:06 v #5856 > > │ let x = 0 -00:04:06 v #5857 > > │ let v8 : _ = x -00:04:06 v #5858 > > │ let v9 : unit = () -00:04:06 v #5859 > > │ (* run_target_args' -00:04:06 v #5860 > > │ let v10 : unit = () -00:04:06 v #5861 > > │ run_target_args' *) -00:04:06 v #5862 > > │ -00:04:06 v #5863 > > │ #if FABLE_COMPILER || WASM || CONTRACT -00:04:06 v #5864 > > │ -00:04:06 v #5865 > > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT -00:04:06 v #5866 > > │ let v11 : string = $"true; let _fix_closure_v9 = $0" -00:04:06 v #5867 > > │ let v12 : bool = Fable.Core.RustInterop.emitRustExpr v8 -00:04:06 v #5868 > > v11 -00:04:06 v #5869 > > │ let _run_target_args'_v10 = true -00:04:06 v #5870 > > │ #endif -00:04:06 v #5871 > > │ #if FABLE_COMPILER_RUST && WASM -00:04:06 v #5872 > > │ let v13 : string = $"true; let _fix_closure_v9 = $0" -00:04:06 v #5873 > > │ let v14 : bool = Fable.Core.RustInterop.emitRustExpr v8 -00:04:06 v #5874 > > v13 -00:04:06 v #5875 > > │ let _run_target_args'_v10 = true -00:04:06 v #5876 > > │ #endif -00:04:06 v #5877 > > │ #if FABLE_COMPILER_RUST && CONTRACT -00:04:06 v #5878 > > │ let v15 : string = $"true; let _fix_closure_v9 = $0" -00:04:06 v #5879 > > │ let v16 : bool = Fable.Core.RustInterop.emitRustExpr v8 -00:04:06 v #5880 > > v15 -00:04:06 v #5881 > > │ let _run_target_args'_v10 = true -00:04:06 v #5882 > > │ #endif -00:04:06 v #5883 > > │ #if FABLE_COMPILER_TYPESCRIPT -00:04:06 v #5884 > > │ let _run_target_args'_v10 = false -00:04:06 v #5885 > > │ #endif -00:04:06 v #5886 > > │ #if FABLE_COMPILER_PYTHON -00:04:06 v #5887 > > │ let _run_target_args'_v10 = false -00:04:06 v #5888 > > │ #endif -00:04:06 v #5889 > > │ #if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && -00:04:06 v #5890 > > !FABLE_COMPILER_PYTHON -00:04:06 v #5891 > > │ let _run_target_args'_v10 = false -00:04:06 v #5892 > > │ #endif -00:04:06 v #5893 > > │ #else -00:04:06 v #5894 > > │ let _run_target_args'_v10 = false -00:04:06 v #5895 > > │ #endif -00:04:06 v #5896 > > │ let v17 : bool = _run_target_args'_v10 -00:04:06 v #5897 > > │ let v19 : string = $"true; _fix_closure_v9 " + v4 + "); " -00:04:06 v #5898 > > + v7 + " // rust.fix_closure'" -00:04:06 v #5899 > > │ let v20 : bool = v19 = "true; _fix_closure_v9 }}}); {{ -00:04:06 v #5900 > > rust.fix_closure'" -00:04:06 v #5901 > > │ let v22 : bool = -00:04:06 v #5902 > > │ if v20 then -00:04:06 v #5903 > > │ true -00:04:06 v #5904 > > │ else -00:04:06 v #5905 > > │ method1(v20) -00:04:06 v #5906 > > │ let v23 : string = "__assert_eq" -00:04:06 v #5907 > > │ let v24 : string = "true; _fix_closure_v9 }}}); {{ -00:04:06 v #5908 > > rust.fix_closure'" -00:04:06 v #5909 > > │ let v25 : string = $"{v23} / actual: %A{v19} / expected: -00:04:06 v #5910 > > %A{v24}" -00:04:06 v #5911 > > │ let v28 : unit = () -00:04:06 v #5912 > > │ let v29 : (unit -> unit) = closure0(v25) -00:04:06 v #5913 > > │ let v30 : unit = (fun () -> v29 (); v28) () -00:04:06 v #5914 > > │ let v32 : bool = v22 = false -00:04:06 v #5915 > > │ if v32 then -00:04:06 v #5916 > > │ failwith<unit> v25 -00:04:06 v #5917 > > │ method0() -00:04:06 v #5918 > > │ -00:04:06 v #5919 > > │ __assert_eq / actual: "true; _fix_closure_v9 }}}); {{ -00:04:06 v #5920 > > rust.fix_closure'" / expected: "true; _fix_closure_v9 }}}); {{ -00:04:06 v #5921 > > rust.fix_closure'" -00:04:06 v #5922 > > │ -00:04:06 v #5923 > > -00:04:06 v #5924 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:04:06 v #5925 > > //// test -00:04:06 v #5926 > > //// print_code -00:04:06 v #5927 > > -00:04:06 v #5928 > > fix_closure' (0, 0) () -00:04:06 v #5929 > > |> _assert_eq "true; _fix_closure_v1 ); // rust.fix_closure'" -00:04:07 v #5930 > > -00:04:07 v #5931 > > ── [ 390.88ms - stdout ] ─────────────────────────────────────────────────────── -00:04:07 v #5932 > > │ let rec method1 (v0 : bool) : bool = -00:04:07 v #5933 > > │ v0 -00:04:07 v #5934 > > │ and closure0 (v0 : string) () : unit = -00:04:07 v #5935 > > │ let v1 : (string -> unit) = System.Console.WriteLine -00:04:07 v #5936 > > │ v1 v0 -00:04:07 v #5937 > > │ and method0 () : unit = -00:04:07 v #5938 > > │ let x = () -00:04:07 v #5939 > > │ let v0 : _ = x -00:04:07 v #5940 > > │ let v1 : unit = () -00:04:07 v #5941 > > │ (* run_target_args' -00:04:07 v #5942 > > │ let v2 : unit = () -00:04:07 v #5943 > > │ run_target_args' *) -00:04:07 v #5944 > > │ -00:04:07 v #5945 > > │ #if FABLE_COMPILER || WASM || CONTRACT -00:04:07 v #5946 > > │ -00:04:07 v #5947 > > │ #if FABLE_COMPILER_RUST && !WASM && !CONTRACT -00:04:07 v #5948 > > │ let _run_target_args'_v2 = false -00:04:07 v #5949 > > │ #endif -00:04:07 v #5950 > > │ #if FABLE_COMPILER_RUST && WASM -00:04:07 v #5951 > > │ let _run_target_args'_v2 = false -00:04:07 v #5952 > > │ #endif -00:04:07 v #5953 > > │ #if FABLE_COMPILER_RUST && CONTRACT -00:04:07 v #5954 > > │ let _run_target_args'_v2 = false -00:04:07 v #5955 > > │ #endif -00:04:07 v #5956 > > │ #if FABLE_COMPILER_TYPESCRIPT -00:04:07 v #5957 > > │ let _run_target_args'_v2 = false -00:04:07 v #5958 > > │ #endif -00:04:07 v #5959 > > │ #if FABLE_COMPILER_PYTHON -00:04:07 v #5960 > > │ let _run_target_args'_v2 = false -00:04:07 v #5961 > > │ #endif -00:04:07 v #5962 > > │ #if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && -00:04:07 v #5963 > > !FABLE_COMPILER_PYTHON -00:04:07 v #5964 > > │ let _run_target_args'_v2 = false -00:04:07 v #5965 > > │ #endif -00:04:07 v #5966 > > │ #else -00:04:07 v #5967 > > │ let _run_target_args'_v2 = false -00:04:07 v #5968 > > │ #endif -00:04:07 v #5969 > > │ let v3 : bool = _run_target_args'_v2 -00:04:07 v #5970 > > │ let v5 : string = "" -00:04:07 v #5971 > > │ let v6 : string = $"true; _fix_closure_v1 " + v5 + "); " -00:04:07 v #5972 > > + v5 + " // rust.fix_closure'" -00:04:07 v #5973 > > │ let v7 : bool = v6 = "true; _fix_closure_v1 ); -00:04:07 v #5974 > > rust.fix_closure'" -00:04:07 v #5975 > > │ let v9 : bool = -00:04:07 v #5976 > > │ if v7 then -00:04:07 v #5977 > > │ true -00:04:07 v #5978 > > │ else -00:04:07 v #5979 > > │ method1(v7) -00:04:07 v #5980 > > │ let v10 : string = "__assert_eq" -00:04:07 v #5981 > > │ let v11 : string = "true; _fix_closure_v1 ); -00:04:07 v #5982 > > rust.fix_closure'" -00:04:07 v #5983 > > │ let v12 : string = $"{v10} / actual: %A{v6} / expected: -00:04:07 v #5984 > > %A{v11}" -00:04:07 v #5985 > > │ let v15 : unit = () -00:04:07 v #5986 > > │ let v16 : (unit -> unit) = closure0(v12) -00:04:07 v #5987 > > │ let v17 : unit = (fun () -> v16 (); v15) () -00:04:07 v #5988 > > │ let v19 : bool = v9 = false -00:04:07 v #5989 > > │ if v19 then -00:04:07 v #5990 > > │ failwith<unit> v12 -00:04:07 v #5991 > > │ method0() -00:04:07 v #5992 > > │ -00:04:07 v #5993 > > │ __assert_eq / actual: "true; _fix_closure_v1 ); -00:04:07 v #5994 > > rust.fix_closure'" / expected: "true; _fix_closure_v1 ); // rust.fix_closure'" -00:04:07 v #5995 > > │ -00:04:07 v #5996 > > -00:04:07 v #5997 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:04:07 v #5998 > > │ ### fix_closure -00:04:07 v #5999 > > -00:04:07 v #6000 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:04:07 v #6001 > > inl fix_closure depth x = -00:04:07 v #6002 > > inl code = fix_closure' depth x -00:04:07 v #6003 > > (!\code : bool) |> ignore -00:04:07 v #6004 > > -00:04:07 v #6005 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:04:07 v #6006 > > │ ### loop -00:04:07 v #6007 > > -00:04:07 v #6008 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:04:07 v #6009 > > inl loop (depth : i32) (fn : () -> ()) : () = -00:04:07 v #6010 > > (!\($'"true; loop { // rust.loop"') : bool) |> ignore -00:04:07 v #6011 > > fn () -00:04:07 v #6012 > > -00:04:07 v #6013 > > listm.init depth id -00:04:07 v #6014 > > |> listm.iter fun n => -00:04:07 v #6015 > > (!\($'"true; } // rust.loop"') : bool) |> ignore -00:04:07 v #6016 > > -00:04:07 v #6017 > > (!\($'"true; } // rust.loop"') : bool) |> ignore -00:04:07 v #6018 > > -00:04:07 v #6019 > > listm.init depth id -00:04:07 v #6020 > > |> listm.iter fun n => -00:04:07 v #6021 > > (!\($'"true; { // rust.loop"') : bool) |> ignore -00:04:08 v #6022 > > -00:04:08 v #6023 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:04:08 v #6024 > > │ ### capture -00:04:08 v #6025 > > -00:04:08 v #6026 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:04:08 v #6027 > > inl capture forall t. (fn : () -> t) : t = -00:04:08 v #6028 > > (!\($'"true; let _capture = (|| { //"') : bool) |> ignore -00:04:08 v #6029 > > (!\\(fn (), $'"true; $0 })()"') : bool) |> ignore -00:04:08 v #6030 > > !\($'"_capture"') -00:04:08 v #6031 > > -00:04:08 v #6032 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:04:08 v #6033 > > │ ### capture_move -00:04:08 v #6034 > > -00:04:08 v #6035 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:04:08 v #6036 > > inl capture_move forall t. (fn : () -> t) : t = -00:04:08 v #6037 > > (!\($'"true; let _capture_move = (move || { //"') : bool) |> ignore -00:04:08 v #6038 > > (!\\(fn (), $'"true; $0 })()"') : bool) |> ignore -00:04:08 v #6039 > > !\($'"_capture_move"') -00:04:08 v #6040 > > -00:04:08 v #6041 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:04:08 v #6042 > > │ ### type_emit -00:04:09 v #6043 > > -00:04:09 v #6044 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:04:09 v #6045 > > nominal type_emit t = -00:04:09 v #6046 > > `( -00:04:09 v #6047 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; Fable.Core.Emit(\"*/ $0 -00:04:09 v #6048 > > /*\")>]]\n#endif\ntype TypeEmit<'T> = class end" -00:04:09 v #6049 > > $'' : $'TypeEmit<`t>' -00:04:09 v #6050 > > ) -00:04:09 v #6051 > > -00:04:09 v #6052 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:04:09 v #6053 > > │ ### partial_eq_wrapper -00:04:09 v #6054 > > -00:04:09 v #6055 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:04:09 v #6056 > > nominal partial_eq_wrapper t = -00:04:09 v #6057 > > `( -00:04:09 v #6058 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:04:09 v #6059 > > Fable.Core.Emit(\"PartialEqWrapper<$0>\")>]]\n#endif\ntype PartialEqWrapper<'T> -00:04:09 v #6060 > > = class end" -00:04:09 v #6061 > > $'' : $'PartialEqWrapper<`t>' -00:04:09 v #6062 > > ) -00:04:09 v #6063 > > -00:04:09 v #6064 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:04:09 v #6065 > > │ ### new_partial_eq_wrapper -00:04:09 v #6066 > > -00:04:09 v #6067 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:04:09 v #6068 > > inl new_partial_eq_wrapper forall t. -00:04:09 v #6069 > > (eq_fn : ref (partial_eq_wrapper t) -> ref (partial_eq_wrapper t) -> bool) -00:04:09 v #6070 > > (x : t) -00:04:09 v #6071 > > : partial_eq_wrapper t -00:04:09 v #6072 > > = -00:04:09 v #6073 > > inl struct () = -00:04:09 v #6074 > > !\($'"} //"') : () -00:04:09 v #6075 > > -00:04:09 v #6076 > > !\($'"#[[derive( //"') : () -00:04:09 v #6077 > > !\($'" Debug, //"') : () -00:04:09 v #6078 > > !\($'" Clone, //"') : () -00:04:09 v #6079 > > !\($'")]] //"') : () -00:04:09 v #6080 > > !\($'"pub struct PartialEqWrapper<T>(T); /*"') : () -00:04:09 v #6081 > > -00:04:09 v #6082 > > !\($'"*/ impl PartialEq for PartialEqWrapper< /*"') : () -00:04:09 v #6083 > > (null () : type_emit t) |> ignore -00:04:09 v #6084 > > !\($'"*/ > { //"') : () -00:04:09 v #6085 > > -00:04:09 v #6086 > > !\($'"fn eq(&self, other: &Self) -> bool { //"') : () -00:04:09 v #6087 > > -00:04:09 v #6088 > > inl self : ref (partial_eq_wrapper t) = !\($'$"self"') -00:04:09 v #6089 > > inl other : ref (partial_eq_wrapper t) = !\($'$"other"') -00:04:09 v #6090 > > -00:04:09 v #6091 > > self -00:04:09 v #6092 > > |> eq_fn other -00:04:09 v #6093 > > |> fun x => !\($'$"!x //"') -00:04:09 v #6094 > > -00:04:09 v #6095 > > !\($'"} } } fn _main() { { { //"') : () -00:04:09 v #6096 > > -00:04:09 v #6097 > > $'let _!struct = true' : () -00:04:09 v #6098 > > -00:04:09 v #6099 > > !\\(x, $'"PartialEqWrapper($0)"') -00:04:10 v #6100 > > -00:04:10 v #6101 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:04:10 v #6102 > > │ ### clone_wrapper -00:04:10 v #6103 > > -00:04:10 v #6104 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:04:10 v #6105 > > nominal clone_wrapper t = -00:04:10 v #6106 > > `( -00:04:10 v #6107 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:04:10 v #6108 > > Fable.Core.Emit(\"CloneWrapper<$0>\")>]]\n#endif\ntype CloneWrapper<'T> = class -00:04:10 v #6109 > > end" -00:04:10 v #6110 > > $'' : $'CloneWrapper<`t>' -00:04:10 v #6111 > > ) -00:04:10 v #6112 > > -00:04:10 v #6113 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:04:10 v #6114 > > │ ### new_clone_wrapper -00:04:10 v #6115 > > -00:04:10 v #6116 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:04:10 v #6117 > > inl new_clone_wrapper forall t. -00:04:10 v #6118 > > (clone_fn : ref (clone_wrapper t) -> ref (clone_wrapper t)) -00:04:10 v #6119 > > (x : t) -00:04:10 v #6120 > > : clone_wrapper t -00:04:10 v #6121 > > = -00:04:10 v #6122 > > inl struct () = -00:04:10 v #6123 > > !\($'"} //"') : () -00:04:10 v #6124 > > -00:04:10 v #6125 > > !\($'"#[[derive( //"') : () -00:04:10 v #6126 > > !\($'" Debug, //"') : () -00:04:10 v #6127 > > !\($'")]] //"') : () -00:04:10 v #6128 > > !\($'"pub struct CloneWrapper<T>(T); /*"') : () -00:04:10 v #6129 > > -00:04:10 v #6130 > > !\($'"*/ impl Clone for CloneWrapper< /*"') : () -00:04:10 v #6131 > > (null () : type_emit t) |> ignore -00:04:10 v #6132 > > !\($'"*/ > { //"') : () -00:04:10 v #6133 > > -00:04:10 v #6134 > > !\($'"fn clone(&self) -> Self { //"') : () -00:04:10 v #6135 > > -00:04:10 v #6136 > > inl self : ref (clone_wrapper t) = !\($'$"self"') -00:04:10 v #6137 > > -00:04:10 v #6138 > > self -00:04:10 v #6139 > > |> clone_fn -00:04:10 v #6140 > > |> fun x => !\($'$"!x.clone() //"') -00:04:10 v #6141 > > -00:04:10 v #6142 > > !\($'"} } } fn _main() { { { //"') : () -00:04:10 v #6143 > > -00:04:10 v #6144 > > $'let _!struct = true' : () -00:04:10 v #6145 > > -00:04:10 v #6146 > > !\\(x, $'"CloneWrapper($0)"') -00:04:11 v #6147 > > -00:04:11 v #6148 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:04:11 v #6149 > > │ ### concat -00:04:11 v #6150 > > -00:04:11 v #6151 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:04:11 v #6152 > > inl concat forall (t : * -> *) u. (x : t (t u)) : t u = -00:04:11 v #6153 > > !\($'$"!x.concat()"') -00:04:11 v #6154 > 00:00:48 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 44552 } -00:04:11 v #6155 > 00:00:48 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/lib/spiral/rust/rust.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/lib/spiral/rust/rust.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:04:13 v #6156 > 00:00:49 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/lib/spiral/rust/rust.dib.ipynb to html -00:04:13 v #6157 > 00:00:49 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. -00:04:13 v #6158 > 00:00:49 v #7 ! validate(nb) -00:04:13 v #6159 > 00:00:50 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 -00:04:13 v #6160 > 00:00:50 v #9 ! return _pygments_highlight( -00:04:14 v #6161 > 00:00:51 v #10 ! [NbConvertApp] Writing 469258 bytes to c:\home\git\polyglot\lib\spiral\rust\rust.dib.html -00:04:14 v #6162 > 00:00:51 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 860 } -00:04:14 v #6163 > 00:00:51 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 860 } -00:04:14 v #6164 > 00:00:51 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/rust/rust.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/rust/rust.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:04:15 v #6165 > 00:00:51 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } -00:04:15 v #6166 > 00:00:51 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } -00:04:15 v #6167 > 00:00:51 d #16 spiral.run / dib / { exit_code = 0; result_length = 45471 } -00:04:15 d #6168 runtime.execute_with_options_async / { exit_code = 0; output_length = 50383 } -00:04:15 d #5 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path rust/rust.dib --retries 3 -00:04:15 d #6169 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path rust/testing.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path rust/testing.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } -00:04:15 v #6170 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "rust/testing.dib", "--retries", "3"])) } -00:04:15 v #6171 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/lib/spiral/rust/testing.dib", "--output-path", "c:/home/git/polyglot/lib/spiral/rust/testing.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/lib/spiral/rust/testing.dib" --output-path "c:/home/git/polyglot/lib/spiral/rust/testing.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } -00:04:16 v #6172 > > -00:04:16 v #6173 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:04:16 v #6174 > > │ # rust/testing -00:04:19 v #6175 > > -00:04:19 v #6176 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:04:19 v #6177 > > open rust.rust_operators -00:04:21 v #6178 > > -00:04:21 v #6179 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:04:21 v #6180 > > //// test -00:04:21 v #6181 > > -00:04:21 v #6182 > > open testing -00:04:21 v #6183 > > -00:04:21 v #6184 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:04:21 v #6185 > > │ ### run_tests' -00:04:21 v #6186 > > -00:04:21 v #6187 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:04:21 v #6188 > > inl run_tests' tests = -00:04:21 v #6189 > > (!\($'"true; () //"') : bool) |> ignore -00:04:21 v #6190 > > -00:04:21 v #6191 > > inl fields = reflection.get_record_fields tests -00:04:21 v #6192 > > -00:04:21 v #6193 > > fields -00:04:21 v #6194 > > |> listm.iter fun name, (fn : string -> ()) => -00:04:21 v #6195 > > !\($'"} /* /*"') -00:04:21 v #6196 > > (!\($'$"*/ #[[test]] fn " + !name + "() { //"') : bool) |> ignore -00:04:21 v #6197 > > fn name -00:04:21 v #6198 > > -00:04:21 v #6199 > > fields -00:04:21 v #6200 > > |> listm.iter fun _ => -00:04:21 v #6201 > > !\($'"{ //"') : () -00:04:21 v #6202 > > -00:04:21 v #6203 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:04:21 v #6204 > > //// test -00:04:21 v #6205 > > -00:04:21 v #6206 > > inl run test = -00:04:21 v #6207 > > if env.get_environment_variable "TEST" = "1" -00:04:21 v #6208 > > then () -00:04:21 v #6209 > > else -00:04:21 v #6210 > > runtime.execution_options fun x => { x with -00:04:21 v #6211 > > command = "cargo test -- --show-output" -00:04:21 v #6212 > > working_directory = file_system.get_source_directory () |> Some |> -00:04:21 v #6213 > > optionm'.box -00:04:21 v #6214 > > environment_variables = ;[[ "TEST", "1" ]] -00:04:21 v #6215 > > } -00:04:21 v #6216 > > |> runtime.execute_with_options -00:04:21 v #6217 > > |> fun exit_code, result => -00:04:21 v #6218 > > exit_code |> _assert_eq 0i32 -00:04:21 v #6219 > > result |> _assert sm'.contains "test result: ok. 1 passed; 0 failed; -00:04:21 v #6220 > > 0 ignored;" -00:04:21 v #6221 > > -00:04:21 v #6222 > > $'let tests () = !test ()' : () -00:04:22 v #6223 > > -00:04:22 v #6224 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:04:22 v #6225 > > //// test -00:04:22 v #6226 > > ///! rust -d encoding_rs encoding_rs_io -00:04:22 v #6227 > > -00:04:22 v #6228 > > fun () => -00:04:22 v #6229 > > run_tests' { -00:04:22 v #6230 > > a = _assert_eq "a" -00:04:22 v #6231 > > } -00:04:22 v #6232 > > |> run -00:04:32 v #6233 > > -00:04:32 v #6234 > > ── [ 10.32s - return value ] ─────────────────────────────────────────────────── -00:04:32 v #6235 > > │ 00:00:00 d #1 runtime.execute_with_options / { -00:04:32 v #6236 > > file_name = cargo; arguments = ["test", "--", "--show-output"]; options = { -00:04:32 v #6237 > > command = cargo test -- --show-output; cancellation_token = None; -00:04:32 v #6238 > > environment_variables = Array(MutCell([("TEST", "1")])); on_line = None; stdin = -00:04:32 v #6239 > > None; trace = true; working_directory = Some( -00:04:32 v #6240 > > │ -00:04:32 v #6241 > > "c:\home\git\polyglot\target\spiral\spiral\packages\Rust\1a30728c96af283f3088d5b -00:04:32 v #6242 > > 0961ac7b875ab085d14d60a7f53e51fb1eb694fb6", -00:04:32 v #6243 > > │ ) } } -00:04:32 v #6244 > > │ 00:00:00 v #2 ! Compiling -00:04:32 v #6245 > > spiral_1a30728c96af283f3088d5b0961ac7b875ab085d14d60a7f53e51fb1eb694fb6 v0.0.1 -00:04:32 v #6246 > > (C:\home\git\polyglot\target\spiral\spiral\packages\Rust\1a30728c96af283f3088d5b -00:04:32 v #6247 > > 0961ac7b875ab085d14d60a7f53e51fb1eb694fb6) -00:04:32 v #6248 > > │ 00:00:01 v #3 ! Finished `test` profile -00:04:32 v #6249 > > [unoptimized + debuginfo] target(s) in 1.04s -00:04:32 v #6250 > > │ 00:00:01 v #4 ! Running unittests spiral.rs -00:04:32 v #6251 > > (c:\home\git\polyglot\target\spiral\spiral\target\debug\deps\spiral_1a30728c96af -00:04:32 v #6252 > > 283f3088d5b0961ac7b875ab085d14d60a7f53e51fb1eb694fb6-1fe31595da3146ee.exe) -00:04:32 v #6253 > > │ 00:00:01 v #5 > -00:04:32 v #6254 > > │ 00:00:01 v #6 > running 1 test -00:04:32 v #6255 > > │ 00:00:01 v #7 > test module_d2cb9249::Spiral::a ... ok -00:04:32 v #6256 > > │ 00:00:01 v #8 > -00:04:32 v #6257 > > │ 00:00:01 v #9 > successes: -00:04:32 v #6258 > > │ 00:00:01 v #10 > -00:04:32 v #6259 > > │ 00:00:01 v #11 > ---- module_d2cb9249::Spiral::a stdout -00:04:32 v #6260 > > ---- -00:04:32 v #6261 > > │ 00:00:01 v #12 > __assert_eq / actual: "a" / expected: -00:04:32 v #6262 > > "a" -00:04:32 v #6263 > > │ 00:00:01 v #13 > -00:04:32 v #6264 > > │ 00:00:01 v #14 > -00:04:32 v #6265 > > │ 00:00:01 v #15 > successes: -00:04:32 v #6266 > > │ 00:00:01 v #16 > module_d2cb9249::Spiral::a -00:04:32 v #6267 > > │ 00:00:01 v #17 > -00:04:32 v #6268 > > │ 00:00:01 v #18 > test result: ok. 1 passed; 0 failed; 0 -00:04:32 v #6269 > > ignored; 0 measured; 0 filtered out; finished in 0.00s -00:04:32 v #6270 > > │ 00:00:01 v #19 > -00:04:32 v #6271 > > │ 00:00:01 v #20 runtime.execute_with_options / result -00:04:32 v #6272 > > { exit_code = 0; std_trace_length = 799 } -00:04:32 v #6273 > > │ __assert_eq / actual: 0 / expected: 0 -00:04:32 v #6274 > > │ __assert / actual: "test result: ok. 1 passed; 0 failed; 0 -00:04:32 v #6275 > > ignored;" / expected: " Compiling -00:04:32 v #6276 > > spiral_1a30728c96af283f3088d5b0961ac7b875ab085d14d60a7f53e51fb1eb694fb6 v0.0.1 -00:04:32 v #6277 > > (C:\home\git\polyglot\target\spiral\spiral\packages\Rust\1a30728c96af283f3088d5b -00:04:32 v #6278 > > 0961ac7b875ab085d14d60a7f53e51fb1eb694fb6) -00:04:32 v #6279 > > │ Finished `test` profile [unoptimized + debuginfo] -00:04:32 v #6280 > > target(s) in 1.04s -00:04:32 v #6281 > > │ Running unittests spiral.rs -00:04:32 v #6282 > > (c:\home\git\polyglot\target\spiral\spiral\target\debug\deps\spiral_1a30728c96af -00:04:32 v #6283 > > 283f3088d5b0961ac7b875ab085d14d60a7f53e51fb1eb694fb6-1fe31595da3146ee.exe) -00:04:32 v #6284 > > │ -00:04:32 v #6285 > > │ running 1 test -00:04:32 v #6286 > > │ test module_d2cb9249::Spiral::a ... ok -00:04:32 v #6287 > > │ -00:04:32 v #6288 > > │ successes: -00:04:32 v #6289 > > │ -00:04:32 v #6290 > > │ ---- module_d2cb9249::Spiral::a stdout ---- -00:04:32 v #6291 > > │ __assert_eq / actual: "a" / expected: "a" -00:04:32 v #6292 > > │ -00:04:32 v #6293 > > │ -00:04:32 v #6294 > > │ successes: -00:04:32 v #6295 > > │ module_d2cb9249::Spiral::a -00:04:32 v #6296 > > │ -00:04:32 v #6297 > > │ test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 -00:04:32 v #6298 > > filtered out; finished in 0.00s -00:04:32 v #6299 > > │ " -00:04:32 v #6300 > > │ -00:04:32 v #6301 > > -00:04:32 v #6302 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:04:32 v #6303 > > │ ### run_tests -00:04:32 v #6304 > > -00:04:32 v #6305 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:04:32 v #6306 > > inl run_tests tests : () = -00:04:32 v #6307 > > real -00:04:32 v #6308 > > inl tests = -00:04:32 v #6309 > > real_core.record_map -00:04:32 v #6310 > > fun { key value } => -00:04:32 v #6311 > > (fun _ => value ()) : string -> () -00:04:32 v #6312 > > tests -00:04:32 v #6313 > > run_tests' `(`tests) tests -00:04:33 v #6314 > > -00:04:33 v #6315 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:04:33 v #6316 > > //// test -00:04:33 v #6317 > > ///! rust -d encoding_rs encoding_rs_io -00:04:33 v #6318 > > -00:04:33 v #6319 > > fun () => -00:04:33 v #6320 > > run_tests { -00:04:33 v #6321 > > a = fun () => "a" |> _assert_eq "a" -00:04:33 v #6322 > > } -00:04:33 v #6323 > > |> run -00:04:41 v #6324 > > -00:04:41 v #6325 > > ── [ 8.22s - return value ] ──────────────────────────────────────────────────── -00:04:41 v #6326 > > │ 00:00:00 d #1 runtime.execute_with_options / { -00:04:41 v #6327 > > file_name = cargo; arguments = ["test", "--", "--show-output"]; options = { -00:04:41 v #6328 > > command = cargo test -- --show-output; cancellation_token = None; -00:04:41 v #6329 > > environment_variables = Array(MutCell([("TEST", "1")])); on_line = None; stdin = -00:04:41 v #6330 > > None; trace = true; working_directory = Some( -00:04:41 v #6331 > > │ -00:04:41 v #6332 > > "c:\home\git\polyglot\target\spiral\spiral\packages\Rust\1a30728c96af283f3088d5b -00:04:41 v #6333 > > 0961ac7b875ab085d14d60a7f53e51fb1eb694fb6", -00:04:41 v #6334 > > │ ) } } -00:04:41 v #6335 > > │ 00:00:00 v #2 ! Finished `test` profile -00:04:41 v #6336 > > [unoptimized + debuginfo] target(s) in 0.24s -00:04:41 v #6337 > > │ 00:00:00 v #3 ! Running unittests spiral.rs -00:04:41 v #6338 > > (c:\home\git\polyglot\target\spiral\spiral\target\debug\deps\spiral_1a30728c96af -00:04:41 v #6339 > > 283f3088d5b0961ac7b875ab085d14d60a7f53e51fb1eb694fb6-1fe31595da3146ee.exe) -00:04:41 v #6340 > > │ 00:00:00 v #4 > -00:04:41 v #6341 > > │ 00:00:00 v #5 > running 1 test -00:04:41 v #6342 > > │ 00:00:00 v #6 > test module_d2cb9249::Spiral::a ... ok -00:04:41 v #6343 > > │ 00:00:00 v #7 > -00:04:41 v #6344 > > │ 00:00:00 v #8 > successes: -00:04:41 v #6345 > > │ 00:00:00 v #9 > -00:04:41 v #6346 > > │ 00:00:00 v #10 > ---- module_d2cb9249::Spiral::a stdout -00:04:41 v #6347 > > ---- -00:04:41 v #6348 > > │ 00:00:00 v #11 > __assert_eq / actual: "a" / expected: -00:04:41 v #6349 > > "a" -00:04:41 v #6350 > > │ 00:00:00 v #12 > -00:04:41 v #6351 > > │ 00:00:00 v #13 > -00:04:41 v #6352 > > │ 00:00:00 v #14 > successes: -00:04:41 v #6353 > > │ 00:00:00 v #15 > module_d2cb9249::Spiral::a -00:04:41 v #6354 > > │ 00:00:00 v #16 > -00:04:41 v #6355 > > │ 00:00:00 v #17 > test result: ok. 1 passed; 0 failed; 0 -00:04:41 v #6356 > > ignored; 0 measured; 0 filtered out; finished in 0.00s -00:04:41 v #6357 > > │ 00:00:00 v #18 > -00:04:41 v #6358 > > │ 00:00:00 v #19 runtime.execute_with_options / result -00:04:41 v #6359 > > { exit_code = 0; std_trace_length = 574 } -00:04:41 v #6360 > > │ __assert_eq / actual: 0 / expected: 0 -00:04:41 v #6361 > > │ __assert / actual: "test result: ok. 1 passed; 0 failed; 0 -00:04:41 v #6362 > > ignored;" / expected: " Finished `test` profile [unoptimized + debuginfo] -00:04:41 v #6363 > > target(s) in 0.24s -00:04:41 v #6364 > > │ Running unittests spiral.rs -00:04:41 v #6365 > > (c:\home\git\polyglot\target\spiral\spiral\target\debug\deps\spiral_1a30728c96af -00:04:41 v #6366 > > 283f3088d5b0961ac7b875ab085d14d60a7f53e51fb1eb694fb6-1fe31595da3146ee.exe) -00:04:41 v #6367 > > │ -00:04:41 v #6368 > > │ running 1 test -00:04:41 v #6369 > > │ test module_d2cb9249::Spiral::a ... ok -00:04:41 v #6370 > > │ -00:04:41 v #6371 > > │ successes: -00:04:41 v #6372 > > │ -00:04:41 v #6373 > > │ ---- module_d2cb9249::Spiral::a stdout ---- -00:04:41 v #6374 > > │ __assert_eq / actual: "a" / expected: "a" -00:04:41 v #6375 > > │ -00:04:41 v #6376 > > │ -00:04:41 v #6377 > > │ successes: -00:04:41 v #6378 > > │ module_d2cb9249::Spiral::a -00:04:41 v #6379 > > │ -00:04:41 v #6380 > > │ test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 -00:04:41 v #6381 > > filtered out; finished in 0.00s -00:04:41 v #6382 > > │ " -00:04:41 v #6383 > > │ -00:04:41 v #6384 > > -00:04:41 v #6385 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:04:41 v #6386 > > │ ### run_tests_log -00:04:41 v #6387 > > -00:04:41 v #6388 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:04:41 v #6389 > > inl run_tests_log tests : () = -00:04:41 v #6390 > > real -00:04:41 v #6391 > > inl tests = -00:04:41 v #6392 > > real_core.record_map -00:04:41 v #6393 > > fun { key value } => -00:04:41 v #6394 > > (fun _ => value false) : () -> () -00:04:41 v #6395 > > tests -00:04:41 v #6396 > > run_tests `(`tests) tests -00:04:41 v #6397 > > -00:04:41 v #6398 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:04:41 v #6399 > > //// test -00:04:41 v #6400 > > ///! rust -d encoding_rs encoding_rs_io -00:04:41 v #6401 > > -00:04:41 v #6402 > > fun () => -00:04:41 v #6403 > > run_tests_log { -00:04:41 v #6404 > > a = _assert_eq false -00:04:41 v #6405 > > } -00:04:41 v #6406 > > |> run -00:04:52 v #6407 > > -00:04:52 v #6408 > > ── [ 10.55s - return value ] ─────────────────────────────────────────────────── -00:04:52 v #6409 > > │ 00:00:00 d #1 runtime.execute_with_options / { -00:04:52 v #6410 > > file_name = cargo; arguments = ["test", "--", "--show-output"]; options = { -00:04:52 v #6411 > > command = cargo test -- --show-output; cancellation_token = None; -00:04:52 v #6412 > > environment_variables = Array(MutCell([("TEST", "1")])); on_line = None; stdin = -00:04:52 v #6413 > > None; trace = true; working_directory = Some( -00:04:52 v #6414 > > │ -00:04:52 v #6415 > > "c:\home\git\polyglot\target\spiral\spiral\packages\Rust\25b4d5baab7c686873ad910 -00:04:52 v #6416 > > 31dc029cc4d8aa1250ab261324905f617dbe5c95d", -00:04:52 v #6417 > > │ ) } } -00:04:52 v #6418 > > │ 00:00:00 v #2 ! Compiling -00:04:52 v #6419 > > spiral_25b4d5baab7c686873ad91031dc029cc4d8aa1250ab261324905f617dbe5c95d v0.0.1 -00:04:52 v #6420 > > (C:\home\git\polyglot\target\spiral\spiral\packages\Rust\25b4d5baab7c686873ad910 -00:04:52 v #6421 > > 31dc029cc4d8aa1250ab261324905f617dbe5c95d) -00:04:52 v #6422 > > │ 00:00:01 v #3 ! Finished `test` profile -00:04:52 v #6423 > > [unoptimized + debuginfo] target(s) in 0.95s -00:04:52 v #6424 > > │ 00:00:01 v #4 ! Running unittests spiral.rs -00:04:52 v #6425 > > (c:\home\git\polyglot\target\spiral\spiral\target\debug\deps\spiral_25b4d5baab7c -00:04:52 v #6426 > > 686873ad91031dc029cc4d8aa1250ab261324905f617dbe5c95d-3413af39f2609aaa.exe) -00:04:52 v #6427 > > │ 00:00:01 v #5 > -00:04:52 v #6428 > > │ 00:00:01 v #6 > running 1 test -00:04:52 v #6429 > > │ 00:00:01 v #7 > test module_cf274238::Spiral::a ... ok -00:04:52 v #6430 > > │ 00:00:01 v #8 > -00:04:52 v #6431 > > │ 00:00:01 v #9 > successes: -00:04:52 v #6432 > > │ 00:00:01 v #10 > -00:04:52 v #6433 > > │ 00:00:01 v #11 > ---- module_cf274238::Spiral::a stdout -00:04:52 v #6434 > > ---- -00:04:52 v #6435 > > │ 00:00:01 v #12 > __assert_eq / actual: false -00:04:52 v #6436 > > expected: false -00:04:52 v #6437 > > │ 00:00:01 v #13 > -00:04:52 v #6438 > > │ 00:00:01 v #14 > -00:04:52 v #6439 > > │ 00:00:01 v #15 > successes: -00:04:52 v #6440 > > │ 00:00:01 v #16 > module_cf274238::Spiral::a -00:04:52 v #6441 > > │ 00:00:01 v #17 > -00:04:52 v #6442 > > │ 00:00:01 v #18 > test result: ok. 1 passed; 0 failed; 0 -00:04:52 v #6443 > > ignored; 0 measured; 0 filtered out; finished in 0.00s -00:04:52 v #6444 > > │ 00:00:01 v #19 > -00:04:52 v #6445 > > │ 00:00:01 v #20 runtime.execute_with_options / result -00:04:52 v #6446 > > { exit_code = 0; std_trace_length = 803 } -00:04:52 v #6447 > > │ __assert_eq / actual: 0 / expected: 0 -00:04:52 v #6448 > > │ __assert / actual: "test result: ok. 1 passed; 0 failed; 0 -00:04:52 v #6449 > > ignored;" / expected: " Compiling -00:04:52 v #6450 > > spiral_25b4d5baab7c686873ad91031dc029cc4d8aa1250ab261324905f617dbe5c95d v0.0.1 -00:04:52 v #6451 > > (C:\home\git\polyglot\target\spiral\spiral\packages\Rust\25b4d5baab7c686873ad910 -00:04:52 v #6452 > > 31dc029cc4d8aa1250ab261324905f617dbe5c95d) -00:04:52 v #6453 > > │ Finished `test` profile [unoptimized + debuginfo] -00:04:52 v #6454 > > target(s) in 0.95s -00:04:52 v #6455 > > │ Running unittests spiral.rs -00:04:52 v #6456 > > (c:\home\git\polyglot\target\spiral\spiral\target\debug\deps\spiral_25b4d5baab7c -00:04:52 v #6457 > > 686873ad91031dc029cc4d8aa1250ab261324905f617dbe5c95d-3413af39f2609aaa.exe) -00:04:52 v #6458 > > │ -00:04:52 v #6459 > > │ running 1 test -00:04:52 v #6460 > > │ test module_cf274238::Spiral::a ... ok -00:04:52 v #6461 > > │ -00:04:52 v #6462 > > │ successes: -00:04:52 v #6463 > > │ -00:04:52 v #6464 > > │ ---- module_cf274238::Spiral::a stdout ---- -00:04:52 v #6465 > > │ __assert_eq / actual: false / expected: false -00:04:52 v #6466 > > │ -00:04:52 v #6467 > > │ -00:04:52 v #6468 > > │ successes: -00:04:52 v #6469 > > │ module_cf274238::Spiral::a -00:04:52 v #6470 > > │ -00:04:52 v #6471 > > │ test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 -00:04:52 v #6472 > > filtered out; finished in 0.00s -00:04:52 v #6473 > > │ " -00:04:52 v #6474 > > │ -00:04:52 v #6475 > 00:00:36 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 13980 } -00:04:52 v #6476 > 00:00:36 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/lib/spiral/rust/testing.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/lib/spiral/rust/testing.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:04:53 v #6477 > 00:00:38 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/lib/spiral/rust/testing.dib.ipynb to html -00:04:53 v #6478 > 00:00:38 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. -00:04:53 v #6479 > 00:00:38 v #7 ! validate(nb) -00:04:54 v #6480 > 00:00:38 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 -00:04:54 v #6481 > 00:00:38 v #9 ! return _pygments_highlight( -00:04:54 v #6482 > 00:00:38 v #10 ! [NbConvertApp] Writing 296941 bytes to c:\home\git\polyglot\lib\spiral\rust\testing.dib.html -00:04:54 v #6483 > 00:00:39 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 866 } -00:04:54 v #6484 > 00:00:39 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 866 } -00:04:54 v #6485 > 00:00:39 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/rust/testing.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/rust/testing.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:04:54 v #6486 > 00:00:39 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } -00:04:54 v #6487 > 00:00:39 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } -00:04:54 v #6488 > 00:00:39 d #16 spiral.run / dib / { exit_code = 0; result_length = 14905 } -00:04:54 d #6489 runtime.execute_with_options_async / { exit_code = 0; output_length = 18100 } -00:04:54 d #6 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path rust/testing.dib --retries 3 -00:04:54 d #6490 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path rust/near.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path rust/near.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } -00:04:54 v #6491 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "rust/near.dib", "--retries", "3"])) } -00:04:54 v #6492 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/lib/spiral/rust/near.dib", "--output-path", "c:/home/git/polyglot/lib/spiral/rust/near.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/lib/spiral/rust/near.dib" --output-path "c:/home/git/polyglot/lib/spiral/rust/near.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } -00:04:56 v #6493 > > -00:04:56 v #6494 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:04:56 v #6495 > > │ # near -00:04:59 v #6496 > > -00:04:59 v #6497 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:04:59 v #6498 > > open rust -00:04:59 v #6499 > > open rust.rust_operators -00:05:00 v #6500 > > -00:05:00 v #6501 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:00 v #6502 > > //// test -00:05:00 v #6503 > > -00:05:00 v #6504 > > open testing -00:05:00 v #6505 > > -00:05:00 v #6506 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:00 v #6507 > > │ ## near -00:05:00 v #6508 > > -00:05:00 v #6509 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:00 v #6510 > > │ ### vector -00:05:00 v #6511 > > -00:05:00 v #6512 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:00 v #6513 > > nominal vector t = -00:05:00 v #6514 > > `( -00:05:00 v #6515 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:05:00 v #6516 > > Fable.Core.Emit(\"near_sdk::store::vec::Vector<$0>\")>]]\n#endif\ntype -00:05:00 v #6517 > > near_sdk_store_vec_Vector<'T> = class end" -00:05:00 v #6518 > > $'' : $'near_sdk_store_vec_Vector<`t>' -00:05:00 v #6519 > > ) -00:05:01 v #6520 > > -00:05:01 v #6521 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:01 v #6522 > > │ ### lookup_map -00:05:01 v #6523 > > -00:05:01 v #6524 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:01 v #6525 > > nominal lookup_map k v = -00:05:01 v #6526 > > `( -00:05:01 v #6527 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:05:01 v #6528 > > Fable.Core.Emit(\"near_sdk::store::LookupMap<$0, $1>\")>]]\n#endif\ntype -00:05:01 v #6529 > > near_sdk_store_LookupMap<'K, 'V> = class end" -00:05:01 v #6530 > > $'' : $'near_sdk_store_LookupMap<`k, `v>' -00:05:01 v #6531 > > ) -00:05:01 v #6532 > > -00:05:01 v #6533 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:01 v #6534 > > │ ### iterable_set -00:05:01 v #6535 > > -00:05:01 v #6536 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:01 v #6537 > > nominal iterable_set t = -00:05:01 v #6538 > > `( -00:05:01 v #6539 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:05:01 v #6540 > > Fable.Core.Emit(\"near_sdk::store::IterableSet<$0>\")>]]\n#endif\ntype -00:05:01 v #6541 > > near_sdk_store_IterableSet<'T> = class end" -00:05:01 v #6542 > > $'' : $'near_sdk_store_IterableSet<`t>' -00:05:01 v #6543 > > ) -00:05:02 v #6544 > > -00:05:02 v #6545 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:02 v #6546 > > │ ### account_id -00:05:02 v #6547 > > -00:05:02 v #6548 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:02 v #6549 > > nominal account_id = -00:05:02 v #6550 > > `( -00:05:02 v #6551 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:05:02 v #6552 > > Fable.Core.Emit(\"near_sdk::AccountId\")>]]\n#endif\ntype near_sdk_AccountId = -00:05:02 v #6553 > > class end" -00:05:02 v #6554 > > $'' : $'near_sdk_AccountId' -00:05:02 v #6555 > > ) -00:05:02 v #6556 > > -00:05:02 v #6557 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:02 v #6558 > > │ ### new_lookup_map -00:05:02 v #6559 > > -00:05:02 v #6560 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:02 v #6561 > > inl new_lookup_map prefix = -00:05:02 v #6562 > > !\($'"near_sdk::store::LookupMap::new(!prefix)"') -00:05:03 v #6563 > > -00:05:03 v #6564 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:03 v #6565 > > │ ### new_iterable_set -00:05:03 v #6566 > > -00:05:03 v #6567 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:03 v #6568 > > inl new_iterable_set prefix = -00:05:03 v #6569 > > !\($'"near_sdk::store::IterableSet::new(!prefix)"') -00:05:03 v #6570 > > -00:05:03 v #6571 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:03 v #6572 > > │ ### new_vector -00:05:03 v #6573 > > -00:05:03 v #6574 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:03 v #6575 > > inl new_vector prefix = -00:05:03 v #6576 > > !\\(prefix, $'"near_sdk::store::vec::Vector::new($0)"') -00:05:03 v #6577 > > -00:05:03 v #6578 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:03 v #6579 > > │ ### vector_extend -00:05:03 v #6580 > > -00:05:03 v #6581 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:03 v #6582 > > inl vector_extend forall t. (vec : am'.vec t) (vector : rust.ref (rust.mut' -00:05:03 v #6583 > > (vector t))) : () = -00:05:03 v #6584 > > (!\\(vec, $'"true; !vector.extend($0); //"') : bool) |> ignore -00:05:04 v #6585 > > -00:05:04 v #6586 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:04 v #6587 > > │ ### vector_to_vec -00:05:04 v #6588 > > -00:05:04 v #6589 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:04 v #6590 > > inl vector_to_vec forall (t : * -> *) u. (vector : t (vector u)) : am'.vec u = -00:05:04 v #6591 > > !\($'$"!vector.iter().map(|x| *x).collect::<Vec<_>>()"') -00:05:04 v #6592 > > -00:05:04 v #6593 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:04 v #6594 > > │ ### keccak512 -00:05:04 v #6595 > > -00:05:04 v #6596 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:04 v #6597 > > inl keccak512 (entropy : am'.vec u8) : am'.vec u8 = -00:05:04 v #6598 > > !\\(entropy, $'$"near_sdk::env::keccak512(&$0)"') -00:05:05 v #6599 > > -00:05:05 v #6600 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:05 v #6601 > > │ ### log -00:05:05 v #6602 > > -00:05:05 v #6603 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:05 v #6604 > > inl log text : () = -00:05:05 v #6605 > > (!\\(text, $'$"true; near_sdk::log\!(\\\"{{}}\\\", $0)"') : bool) |> ignore -00:05:05 v #6606 > > -00:05:05 v #6607 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:05 v #6608 > > │ ### panic_str -00:05:05 v #6609 > > -00:05:05 v #6610 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:05 v #6611 > > inl panic_str (text : string) : () = -00:05:05 v #6612 > > (!\\(text, $'$"true; near_sdk::env::panic_str(&*$0); //"') : bool) |> ignore -00:05:06 v #6613 > > -00:05:06 v #6614 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:06 v #6615 > > │ ### lookup_get -00:05:06 v #6616 > > -00:05:06 v #6617 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:06 v #6618 > > inl lookup_get forall k v. -00:05:06 v #6619 > > (key : k) -00:05:06 v #6620 > > (map : rust.ref (rust.mut' (lookup_map k v))) -00:05:06 v #6621 > > : optionm'.option' (rust.ref v) -00:05:06 v #6622 > > = -00:05:06 v #6623 > > !\\(key, $'$"!map.get(&$0)"') -00:05:06 v #6624 > > -00:05:06 v #6625 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:06 v #6626 > > │ ### lookup_insert -00:05:06 v #6627 > > -00:05:06 v #6628 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:06 v #6629 > > inl lookup_insert forall k v. -00:05:06 v #6630 > > (key : k) -00:05:06 v #6631 > > (value : v) -00:05:06 v #6632 > > (map : rust.ref (rust.mut' (lookup_map k v))) -00:05:06 v #6633 > > : () -00:05:06 v #6634 > > = -00:05:06 v #6635 > > (!\\((key, value), $'$"true; !map.insert(&$0, $1); //"') : bool) |> ignore -00:05:07 v #6636 > > -00:05:07 v #6637 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:07 v #6638 > > │ ### iterable_set_insert -00:05:07 v #6639 > > -00:05:07 v #6640 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:07 v #6641 > > inl iterable_set_insert forall t. -00:05:07 v #6642 > > (x : t) -00:05:07 v #6643 > > (set : rust.ref (rust.mut' (iterable_set t))) -00:05:07 v #6644 > > : bool -00:05:07 v #6645 > > = -00:05:07 v #6646 > > !\\(x, $'$"!set.insert($0)"') -00:05:07 v #6647 > > -00:05:07 v #6648 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:07 v #6649 > > │ ### iterable_set_remove -00:05:07 v #6650 > > -00:05:07 v #6651 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:07 v #6652 > > inl iterable_set_remove forall t. -00:05:07 v #6653 > > (x : rust.ref t) -00:05:07 v #6654 > > (set : rust.ref (rust.mut' (iterable_set t))) -00:05:07 v #6655 > > : bool -00:05:07 v #6656 > > = -00:05:07 v #6657 > > !\\(x, $'$"!set.remove($0)"') -00:05:07 v #6658 > > -00:05:07 v #6659 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:07 v #6660 > > │ ### iterable_set_contains -00:05:07 v #6661 > > -00:05:07 v #6662 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:07 v #6663 > > inl iterable_set_contains forall t. -00:05:07 v #6664 > > (x : rust.ref t) -00:05:07 v #6665 > > (set : rust.ref (rust.mut' (iterable_set t))) -00:05:07 v #6666 > > : bool -00:05:07 v #6667 > > = -00:05:07 v #6668 > > !\\(x, $'$"!set.contains($0)"') -00:05:08 v #6669 > > -00:05:08 v #6670 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:08 v #6671 > > │ ### near_token -00:05:08 v #6672 > > -00:05:08 v #6673 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:08 v #6674 > > nominal near_token = -00:05:08 v #6675 > > `( -00:05:08 v #6676 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:05:08 v #6677 > > Fable.Core.Emit(\"near_token::NearToken\")>]]\n#endif\ntype near_token_NearToken -00:05:08 v #6678 > > = class end" -00:05:08 v #6679 > > $'' : $'near_token_NearToken' -00:05:08 v #6680 > > ) -00:05:08 v #6681 > > -00:05:08 v #6682 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:08 v #6683 > > │ ### near_token_sdk -00:05:08 v #6684 > > -00:05:08 v #6685 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:08 v #6686 > > nominal near_token_sdk = -00:05:08 v #6687 > > `( -00:05:08 v #6688 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:05:08 v #6689 > > Fable.Core.Emit(\"near_sdk::NearToken\")>]]\n#endif\ntype near_sdk_NearToken = -00:05:08 v #6690 > > class end" -00:05:08 v #6691 > > $'' : $'near_sdk_NearToken' -00:05:08 v #6692 > > ) -00:05:09 v #6693 > > -00:05:09 v #6694 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:09 v #6695 > > │ ### random_seed -00:05:09 v #6696 > > -00:05:09 v #6697 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:09 v #6698 > > inl random_seed () : am'.vec u8 = -00:05:09 v #6699 > > !\($'$"near_sdk::env::random_seed()"') -00:05:09 v #6700 > > -00:05:09 v #6701 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:09 v #6702 > > │ ### block_timestamp -00:05:09 v #6703 > > -00:05:09 v #6704 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:09 v #6705 > > inl block_timestamp () : u64 = -00:05:09 v #6706 > > !\($'$"near_sdk::env::block_timestamp()"') -00:05:10 v #6707 > > -00:05:10 v #6708 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:10 v #6709 > > │ ### block_height -00:05:10 v #6710 > > -00:05:10 v #6711 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:10 v #6712 > > inl block_height () : u64 = -00:05:10 v #6713 > > !\($'$"near_sdk::env::block_height()"') -00:05:10 v #6714 > > -00:05:10 v #6715 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:10 v #6716 > > │ ### epoch_height -00:05:10 v #6717 > > -00:05:10 v #6718 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:10 v #6719 > > inl epoch_height () : u64 = -00:05:10 v #6720 > > !\($'$"near_sdk::env::epoch_height()"') -00:05:10 v #6721 > > -00:05:10 v #6722 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:10 v #6723 > > │ ### account_balance -00:05:10 v #6724 > > -00:05:10 v #6725 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:10 v #6726 > > inl account_balance () : near_token = -00:05:10 v #6727 > > !\($'$"near_sdk::env::account_balance()"') -00:05:11 v #6728 > > -00:05:11 v #6729 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:11 v #6730 > > │ ### predecessor_account_id -00:05:11 v #6731 > > -00:05:11 v #6732 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:11 v #6733 > > inl predecessor_account_id () : account_id = -00:05:11 v #6734 > > !\($'$"near_sdk::env::predecessor_account_id()"') -00:05:11 v #6735 > > -00:05:11 v #6736 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:11 v #6737 > > │ ### signer_account_id -00:05:11 v #6738 > > -00:05:11 v #6739 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:11 v #6740 > > inl signer_account_id () : account_id = -00:05:11 v #6741 > > !\($'$"near_sdk::env::signer_account_id()"') -00:05:12 v #6742 > > -00:05:12 v #6743 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:12 v #6744 > > │ ### as_yoctonear -00:05:12 v #6745 > > -00:05:12 v #6746 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:12 v #6747 > > inl as_yoctonear forall t. (gas : t) : rust.u128 = -00:05:12 v #6748 > > !\\(gas, $'"$0.as_yoctonear()"') -00:05:12 v #6749 > > -00:05:12 v #6750 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:12 v #6751 > > │ ### near_price_in_usd -00:05:12 v #6752 > > -00:05:12 v #6753 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:12 v #6754 > > inl near_price_in_usd () = -00:05:12 v #6755 > > 6.68f64 -00:05:13 v #6756 > > -00:05:13 v #6757 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:13 v #6758 > > │ ### gas_to_usd -00:05:13 v #6759 > > -00:05:13 v #6760 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:13 v #6761 > > inl gas_to_usd (gas : u64) = -00:05:13 v #6762 > > (gas |> f64) / 10_000_000_000_000_000 * near_price_in_usd () -00:05:13 v #6763 > > -00:05:13 v #6764 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:13 v #6765 > > │ ### tokens_to_usd -00:05:13 v #6766 > > -00:05:13 v #6767 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:13 v #6768 > > inl tokens_to_usd (tokens : rust.u128) = -00:05:13 v #6769 > > (tokens |> rust.f64) / 1_000_000_000_000_000_000_000_000 * near_price_in_usd -00:05:13 v #6770 > > () -00:05:13 v #6771 > 00:00:19 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 10734 } -00:05:13 v #6772 > 00:00:19 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/lib/spiral/rust/near.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/lib/spiral/rust/near.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:05:15 v #6773 > 00:00:20 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/lib/spiral/rust/near.dib.ipynb to html -00:05:15 v #6774 > 00:00:20 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. -00:05:15 v #6775 > 00:00:20 v #7 ! validate(nb) -00:05:15 v #6776 > 00:00:21 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 -00:05:15 v #6777 > 00:00:21 v #9 ! return _pygments_highlight( -00:05:16 v #6778 > 00:00:21 v #10 ! [NbConvertApp] Writing 322926 bytes to c:\home\git\polyglot\lib\spiral\rust\near.dib.html -00:05:16 v #6779 > 00:00:21 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 860 } -00:05:16 v #6780 > 00:00:21 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 860 } -00:05:16 v #6781 > 00:00:21 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/rust/near.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/rust/near.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:05:16 v #6782 > 00:00:21 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } -00:05:16 v #6783 > 00:00:21 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } -00:05:16 v #6784 > 00:00:21 d #16 spiral.run / dib / { exit_code = 0; result_length = 11653 } -00:05:16 d #6785 runtime.execute_with_options_async / { exit_code = 0; output_length = 14771 } -00:05:16 d #7 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path rust/near.dib --retries 3 -00:05:16 d #6786 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path rust/near_workspaces.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path rust/near_workspaces.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } -00:05:16 v #6787 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "rust/near_workspaces.dib", "--retries", "3"])) } -00:05:16 v #6788 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/lib/spiral/rust/near_workspaces.dib", "--output-path", "c:/home/git/polyglot/lib/spiral/rust/near_workspaces.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/lib/spiral/rust/near_workspaces.dib" --output-path "c:/home/git/polyglot/lib/spiral/rust/near_workspaces.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } -00:05:18 v #6789 > > -00:05:18 v #6790 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:18 v #6791 > > │ # near_workspaces -00:05:21 v #6792 > > -00:05:21 v #6793 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:21 v #6794 > > open rust -00:05:21 v #6795 > > open rust.rust_operators -00:05:22 v #6796 > > -00:05:22 v #6797 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:22 v #6798 > > //// test -00:05:22 v #6799 > > -00:05:22 v #6800 > > open testing -00:05:23 v #6801 > > -00:05:23 v #6802 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:23 v #6803 > > │ ## near -00:05:23 v #6804 > > -00:05:23 v #6805 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:23 v #6806 > > │ ### near_token_workspaces -00:05:23 v #6807 > > -00:05:23 v #6808 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:23 v #6809 > > nominal near_token_workspaces = -00:05:23 v #6810 > > `( -00:05:23 v #6811 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:05:23 v #6812 > > Fable.Core.Emit(\"near_workspaces::types::NearToken\")>]]\n#endif\ntype -00:05:23 v #6813 > > near_workspaces_types_NearToken = class end" -00:05:23 v #6814 > > $'' : $'near_workspaces_types_NearToken' -00:05:23 v #6815 > > ) -00:05:23 v #6816 > > -00:05:23 v #6817 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:23 v #6818 > > │ ### gas -00:05:23 v #6819 > > -00:05:23 v #6820 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:23 v #6821 > > nominal gas = -00:05:23 v #6822 > > `( -00:05:23 v #6823 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:05:23 v #6824 > > Fable.Core.Emit(\"near_workspaces::types::Gas\")>]]\n#endif\ntype -00:05:23 v #6825 > > near_workspaces_types_Gas = class end" -00:05:23 v #6826 > > $'' : $'near_workspaces_types_Gas' -00:05:23 v #6827 > > ) -00:05:23 v #6828 > > -00:05:23 v #6829 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:23 v #6830 > > │ ### near_workspaces_error -00:05:23 v #6831 > > -00:05:23 v #6832 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:23 v #6833 > > nominal near_workspaces_error = -00:05:23 v #6834 > > `( -00:05:23 v #6835 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:05:23 v #6836 > > Fable.Core.Emit(\"near_workspaces::error::Error\")>]]\n#endif\ntype -00:05:23 v #6837 > > near_workspaces_error_Error = class end" -00:05:23 v #6838 > > $'' : $'near_workspaces_error_Error' -00:05:23 v #6839 > > ) -00:05:24 v #6840 > > -00:05:24 v #6841 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:24 v #6842 > > │ ### sandbox -00:05:24 v #6843 > > -00:05:24 v #6844 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:24 v #6845 > > nominal sandbox = -00:05:24 v #6846 > > `( -00:05:24 v #6847 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:05:24 v #6848 > > Fable.Core.Emit(\"near_workspaces::network::Sandbox\")>]]\n#endif\ntype -00:05:24 v #6849 > > near_workspaces_network_Sandbox = class end" -00:05:24 v #6850 > > $'' : $'near_workspaces_network_Sandbox' -00:05:24 v #6851 > > ) -00:05:24 v #6852 > > -00:05:24 v #6853 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:24 v #6854 > > │ ### worker -00:05:24 v #6855 > > -00:05:24 v #6856 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:24 v #6857 > > nominal worker t = -00:05:24 v #6858 > > `( -00:05:24 v #6859 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:05:24 v #6860 > > Fable.Core.Emit(\"near_workspaces::Worker<$0>\")>]]\n#endif\ntype -00:05:24 v #6861 > > near_workspaces_Worker<'T> = class end" -00:05:24 v #6862 > > $'' : $'near_workspaces_Worker<`t>' -00:05:24 v #6863 > > ) -00:05:25 v #6864 > > -00:05:25 v #6865 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:25 v #6866 > > │ ### contract -00:05:25 v #6867 > > -00:05:25 v #6868 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:25 v #6869 > > nominal contract = -00:05:25 v #6870 > > `( -00:05:25 v #6871 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:05:25 v #6872 > > Fable.Core.Emit(\"near_workspaces::Contract\")>]]\n#endif\ntype -00:05:25 v #6873 > > near_workspaces_Contract = class end" -00:05:25 v #6874 > > $'' : $'near_workspaces_Contract' -00:05:25 v #6875 > > ) -00:05:25 v #6876 > > -00:05:25 v #6877 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:25 v #6878 > > │ ### call_transaction -00:05:25 v #6879 > > -00:05:25 v #6880 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:25 v #6881 > > nominal call_transaction = -00:05:25 v #6882 > > `( -00:05:25 v #6883 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:05:25 v #6884 > > Fable.Core.Emit(\"near_workspaces::operations::CallTransaction\")>]]\n#endif\nty -00:05:25 v #6885 > > pe near_workspaces_operations_CallTransaction = class end" -00:05:25 v #6886 > > $'' : $'near_workspaces_operations_CallTransaction' -00:05:25 v #6887 > > ) -00:05:25 v #6888 > > -00:05:25 v #6889 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:25 v #6890 > > │ ### execution_final_result -00:05:25 v #6891 > > -00:05:25 v #6892 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:25 v #6893 > > nominal execution_final_result = -00:05:25 v #6894 > > `( -00:05:25 v #6895 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:05:25 v #6896 > > Fable.Core.Emit(\"near_workspaces::result::ExecutionFinalResult\")>]]\n#endif\nt -00:05:25 v #6897 > > ype near_workspaces_result_ExecutionFinalResult = class end" -00:05:25 v #6898 > > $'' : $'near_workspaces_result_ExecutionFinalResult' -00:05:25 v #6899 > > ) -00:05:26 v #6900 > > -00:05:26 v #6901 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:26 v #6902 > > │ ### execution_result -00:05:26 v #6903 > > -00:05:26 v #6904 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:26 v #6905 > > nominal execution_result t = -00:05:26 v #6906 > > `( -00:05:26 v #6907 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:05:26 v #6908 > > Fable.Core.Emit(\"near_workspaces::result::ExecutionResult<$0>\")>]]\n#endif\nty -00:05:26 v #6909 > > pe near_workspaces_result_ExecutionResult<'T> = class end" -00:05:26 v #6910 > > $'' : $'near_workspaces_result_ExecutionResult<`t>' -00:05:26 v #6911 > > ) -00:05:26 v #6912 > > -00:05:26 v #6913 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:26 v #6914 > > │ ### execution_success -00:05:26 v #6915 > > -00:05:26 v #6916 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:26 v #6917 > > nominal execution_success = -00:05:26 v #6918 > > `( -00:05:26 v #6919 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:05:26 v #6920 > > Fable.Core.Emit(\"near_workspaces::result::ExecutionSuccess\")>]]\n#endif\ntype -00:05:26 v #6921 > > near_workspaces_result_ExecutionSuccess = class end" -00:05:26 v #6922 > > $'' : $'near_workspaces_result_ExecutionSuccess' -00:05:26 v #6923 > > ) -00:05:27 v #6924 > > -00:05:27 v #6925 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:27 v #6926 > > │ ### execution_failure -00:05:27 v #6927 > > -00:05:27 v #6928 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:27 v #6929 > > nominal execution_failure = -00:05:27 v #6930 > > `( -00:05:27 v #6931 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:05:27 v #6932 > > Fable.Core.Emit(\"near_workspaces::result::ExecutionFailure\")>]]\n#endif\ntype -00:05:27 v #6933 > > near_workspaces_result_ExecutionFailure = class end" -00:05:27 v #6934 > > $'' : $'near_workspaces_result_ExecutionFailure' -00:05:27 v #6935 > > ) -00:05:27 v #6936 > > -00:05:27 v #6937 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:27 v #6938 > > │ ### execution_outcome -00:05:27 v #6939 > > -00:05:27 v #6940 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:27 v #6941 > > nominal execution_outcome = -00:05:27 v #6942 > > `( -00:05:27 v #6943 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:05:27 v #6944 > > Fable.Core.Emit(\"near_workspaces::result::ExecutionOutcome\")>]]\n#endif\ntype -00:05:27 v #6945 > > near_workspaces_result_ExecutionOutcome = class end" -00:05:27 v #6946 > > $'' : $'near_workspaces_result_ExecutionOutcome' -00:05:27 v #6947 > > ) -00:05:28 v #6948 > > -00:05:28 v #6949 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:28 v #6950 > > │ ### sandbox_worker -00:05:28 v #6951 > > -00:05:28 v #6952 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:28 v #6953 > > inl sandbox_worker () : resultm.result' (worker sandbox) near_workspaces_error = -00:05:28 v #6954 > > !\($'"near_workspaces::sandbox().await"') -00:05:28 v #6955 > > -00:05:28 v #6956 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:28 v #6957 > > │ ### dev_deploy -00:05:28 v #6958 > > -00:05:28 v #6959 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:28 v #6960 > > inl dev_deploy -00:05:28 v #6961 > > (wasm : am'.vec u8) -00:05:28 v #6962 > > (worker : worker sandbox) -00:05:28 v #6963 > > : async.future_pin (resultm.result' contract near_workspaces_error) -00:05:28 v #6964 > > = -00:05:28 v #6965 > > inl worker = worker |> rust.emit -00:05:28 v #6966 > > !\\(wasm, $'"Box::pin(!worker.dev_deploy(&$0))"') -00:05:28 v #6967 > > -00:05:28 v #6968 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:28 v #6969 > > │ ### call -00:05:28 v #6970 > > -00:05:28 v #6971 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:28 v #6972 > > inl call (fn_name : string) (contract : contract) : call_transaction = -00:05:28 v #6973 > > !\\((contract, fn_name), $'"$0.call(&*$1)"') -00:05:29 v #6974 > > -00:05:29 v #6975 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:29 v #6976 > > │ ### logs -00:05:29 v #6977 > > -00:05:29 v #6978 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:29 v #6979 > > inl logs (result : execution_final_result) : am'.vec (rust.ref sm'.str) = -00:05:29 v #6980 > > !\($'"!result.logs()"') -00:05:29 v #6981 > > -00:05:29 v #6982 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:29 v #6983 > > │ ### into_result -00:05:29 v #6984 > > -00:05:29 v #6985 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:29 v #6986 > > inl into_result -00:05:29 v #6987 > > (result : execution_final_result) -00:05:29 v #6988 > > : resultm.result' execution_success execution_failure -00:05:29 v #6989 > > = -00:05:29 v #6990 > > !\\(result, $'"$0.into_result()"') -00:05:30 v #6991 > > -00:05:30 v #6992 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:30 v #6993 > > │ ### receipt_failures -00:05:30 v #6994 > > -00:05:30 v #6995 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:30 v #6996 > > inl receipt_failures (result : execution_final_result) : am'.vec (rust.ref -00:05:30 v #6997 > > execution_outcome) = -00:05:30 v #6998 > > inl result = join result -00:05:30 v #6999 > > !\($'"!result.receipt_failures()"') -00:05:30 v #7000 > > -00:05:30 v #7001 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:30 v #7002 > > │ ### receipt_outcomes -00:05:30 v #7003 > > -00:05:30 v #7004 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:30 v #7005 > > inl receipt_outcomes (result : execution_final_result) : am'.vec -00:05:30 v #7006 > > execution_outcome = -00:05:30 v #7007 > > inl result = join result -00:05:30 v #7008 > > inl result : rust.ref (am'.slice execution_outcome) = -00:05:30 v #7009 > > !\($'"!result.receipt_outcomes()"') -00:05:30 v #7010 > > result |> rust.into -00:05:31 v #7011 > > -00:05:31 v #7012 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:31 v #7013 > > │ ### json -00:05:31 v #7014 > > -00:05:31 v #7015 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:31 v #7016 > > inl json (result : execution_final_result) : resultm.result' sm'.std_string -00:05:31 v #7017 > > near_workspaces_error = -00:05:31 v #7018 > > !\\(result, $'"$0.json()"') -00:05:31 v #7019 > > -00:05:31 v #7020 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:31 v #7021 > > │ ### borsh -00:05:31 v #7022 > > -00:05:31 v #7023 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:31 v #7024 > > inl borsh (result : execution_final_result) : resultm.result' sm'.std_string -00:05:31 v #7025 > > near_workspaces_error = -00:05:31 v #7026 > > !\\(result, $'"$0.borsh()"') -00:05:31 v #7027 > > -00:05:31 v #7028 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:31 v #7029 > > │ ### total_gas_burnt -00:05:31 v #7030 > > -00:05:31 v #7031 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:31 v #7032 > > inl total_gas_burnt (result : execution_final_result) : gas = -00:05:31 v #7033 > > !\\(result, $'"$0.total_gas_burnt"') -00:05:32 v #7034 > > -00:05:32 v #7035 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:32 v #7036 > > │ ### as_gas -00:05:32 v #7037 > > -00:05:32 v #7038 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:32 v #7039 > > inl as_gas (gas : gas) : u64 = -00:05:32 v #7040 > > !\\(gas, $'"$0.as_gas()"') -00:05:32 v #7041 > > -00:05:32 v #7042 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:32 v #7043 > > │ ### outcomes -00:05:32 v #7044 > > -00:05:32 v #7045 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:32 v #7046 > > inl outcomes (result : execution_final_result) : am'.vec (rust.ref -00:05:32 v #7047 > > execution_outcome) = -00:05:32 v #7048 > > inl result = result |> rust.emit -00:05:32 v #7049 > > !\($'"!result.outcomes()"') -00:05:33 v #7050 > > -00:05:33 v #7051 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:33 v #7052 > > │ ### is_success -00:05:33 v #7053 > > -00:05:33 v #7054 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:33 v #7055 > > inl is_success (outcome : execution_outcome) : bool = -00:05:33 v #7056 > > !\\(outcome, $'"$0.is_success()"') -00:05:33 v #7057 > > -00:05:33 v #7058 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:33 v #7059 > > │ ### gas_burnt -00:05:33 v #7060 > > -00:05:33 v #7061 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:33 v #7062 > > inl gas_burnt (outcome : execution_outcome) : gas = -00:05:33 v #7063 > > !\\(outcome, $'"$0.gas_burnt"') -00:05:34 v #7064 > > -00:05:34 v #7065 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:34 v #7066 > > │ ### tokens_burnt -00:05:34 v #7067 > > -00:05:34 v #7068 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:34 v #7069 > > inl tokens_burnt (outcome : execution_outcome) : near_token_workspaces = -00:05:34 v #7070 > > !\\(outcome, $'"$0.tokens_burnt"') -00:05:34 v #7071 > > -00:05:34 v #7072 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:34 v #7073 > > │ ### transact -00:05:34 v #7074 > > -00:05:34 v #7075 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:34 v #7076 > > inl transact -00:05:34 v #7077 > > (call : call_transaction) -00:05:34 v #7078 > > : async.future_pin (resultm.result' execution_final_result -00:05:34 v #7079 > > near_workspaces_error) -00:05:34 v #7080 > > = -00:05:34 v #7081 > > !\($'"Box::pin(!call.transact())"') -00:05:35 v #7082 > > -00:05:35 v #7083 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:35 v #7084 > > │ ### gas -00:05:35 v #7085 > > -00:05:35 v #7086 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:35 v #7087 > > inl gas -00:05:35 v #7088 > > (gas : gas) -00:05:35 v #7089 > > (call : call_transaction) -00:05:35 v #7090 > > : call_transaction -00:05:35 v #7091 > > = -00:05:35 v #7092 > > !\($'"!call.gas(!gas)"') -00:05:35 v #7093 > > -00:05:35 v #7094 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:35 v #7095 > > │ ### from_tgas -00:05:35 v #7096 > > -00:05:35 v #7097 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:35 v #7098 > > inl from_tgas -00:05:35 v #7099 > > (tgas : i32) -00:05:35 v #7100 > > : gas -00:05:35 v #7101 > > = -00:05:35 v #7102 > > !\($'"near_workspaces::types::Gas::from_tgas(!tgas)"') -00:05:35 v #7103 > > -00:05:35 v #7104 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:35 v #7105 > > │ ### print_usd -00:05:35 v #7106 > > -00:05:35 v #7107 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:35 v #7108 > > inl print_usd retry (result : execution_final_result) = -00:05:35 v #7109 > > inl total_gas_burnt = result |> total_gas_burnt |> as_gas -00:05:35 v #7110 > > inl total_gas_burnt_usd = total_gas_burnt |> near.gas_to_usd -00:05:35 v #7111 > > -00:05:35 v #7112 > > trace Info -00:05:35 v #7113 > > fun () => "near_workspaces.print_usd" -00:05:35 v #7114 > > fun () => { retry total_gas_burnt_usd total_gas_burnt } -00:05:35 v #7115 > > -00:05:35 v #7116 > > result -00:05:35 v #7117 > > |> outcomes -00:05:35 v #7118 > > |> iter.into_iter -00:05:35 v #7119 > > |> iter.cloned -00:05:35 v #7120 > > |> iter.for_each fun outcome => -00:05:35 v #7121 > > inl is_success = outcome |> is_success -00:05:35 v #7122 > > -00:05:35 v #7123 > > inl gas_burnt = outcome |> gas_burnt |> as_gas -00:05:35 v #7124 > > inl gas_burnt_usd = gas_burnt |> near.gas_to_usd -00:05:35 v #7125 > > -00:05:35 v #7126 > > inl tokens_burnt = outcome |> tokens_burnt |> near.as_yoctonear -00:05:35 v #7127 > > inl tokens_burnt_usd = tokens_burnt |> near.tokens_to_usd -00:05:35 v #7128 > > -00:05:35 v #7129 > > trace Info -00:05:35 v #7130 > > fun () => "near_workspaces.print_usd / outcome" -00:05:35 v #7131 > > fun () => { is_success gas_burnt_usd tokens_burnt_usd gas_burnt -00:05:35 v #7132 > > tokens_burnt } -00:05:36 v #7133 > 00:00:19 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 13396 } -00:05:36 v #7134 > 00:00:19 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/lib/spiral/rust/near_workspaces.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/lib/spiral/rust/near_workspaces.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:05:37 v #7135 > 00:00:21 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/lib/spiral/rust/near_workspaces.dib.ipynb to html -00:05:37 v #7136 > 00:00:21 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. -00:05:37 v #7137 > 00:00:21 v #7 ! validate(nb) -00:05:38 v #7138 > 00:00:21 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 -00:05:38 v #7139 > 00:00:21 v #9 ! return _pygments_highlight( -00:05:38 v #7140 > 00:00:22 v #10 ! [NbConvertApp] Writing 329820 bytes to c:\home\git\polyglot\lib\spiral\rust\near_workspaces.dib.html -00:05:38 v #7141 > 00:00:22 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 882 } -00:05:38 v #7142 > 00:00:22 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 882 } -00:05:38 v #7143 > 00:00:22 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/rust/near_workspaces.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/rust/near_workspaces.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:05:39 v #7144 > 00:00:22 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } -00:05:39 v #7145 > 00:00:22 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } -00:05:39 v #7146 > 00:00:22 d #16 spiral.run / dib / { exit_code = 0; result_length = 14337 } -00:05:39 d #7147 runtime.execute_with_options_async / { exit_code = 0; output_length = 17686 } -00:05:39 d #8 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path rust/near_workspaces.dib --retries 3 -00:05:39 d #7148 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path testing.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path testing.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } -00:05:39 v #7149 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "testing.dib", "--retries", "3"])) } -00:05:39 v #7150 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/lib/spiral/testing.dib", "--output-path", "c:/home/git/polyglot/lib/spiral/testing.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/lib/spiral/testing.dib" --output-path "c:/home/git/polyglot/lib/spiral/testing.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } -00:05:40 v #7151 > > -00:05:40 v #7152 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:40 v #7153 > > │ # testing -00:05:40 v #7154 > > -00:05:40 v #7155 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:40 v #7156 > > │ ## testing -00:05:40 v #7157 > > -00:05:40 v #7158 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:40 v #7159 > > │ ### testing_trace -00:05:43 v #7160 > > -00:05:43 v #7161 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:43 v #7162 > > union testing_trace = -00:05:43 v #7163 > > | Console -00:05:43 v #7164 > > | Trace -00:05:43 v #7165 > > | TraceRaw -00:05:43 v #7166 > > | Silent -00:05:44 v #7167 > > -00:05:44 v #7168 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:44 v #7169 > > │ ### __expect -00:05:44 v #7170 > > -00:05:44 v #7171 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:44 v #7172 > > inl rec __expect fn trace' name b a = -00:05:44 v #7173 > > inl result = fn a b -00:05:44 v #7174 > > inl result = -00:05:44 v #7175 > > result || join result -00:05:44 v #7176 > > inl get_raw_text () = -00:05:44 v #7177 > > backend_switch { -00:05:44 v #7178 > > Fsharp = fun () => $'$"{!name} / actual: %A{!a} / expected: %A{!b}"' -00:05:44 v #7179 > > : string -00:05:44 v #7180 > > Python = fun () => $'f"{!name} / actual: {!a} / expected: {!b}"' : -00:05:44 v #7181 > > string -00:05:44 v #7182 > > } -00:05:44 v #7183 > > match trace' with -00:05:44 v #7184 > > | Console => -00:05:44 v #7185 > > inl text = get_raw_text () -00:05:44 v #7186 > > text |> console.write_line -00:05:44 v #7187 > > text -00:05:44 v #7188 > > | Trace => -00:05:44 v #7189 > > trace Info (fun () => name) fun () => { actual = a; expected = b } -00:05:44 v #7190 > > get_raw_text () -00:05:44 v #7191 > > | TraceRaw => -00:05:44 v #7192 > > inl text = get_raw_text () -00:05:44 v #7193 > > trace_raw Info fun () => text -00:05:44 v #7194 > > text -00:05:44 v #7195 > > | Silent => reflection.nameof { __expect } -00:05:44 v #7196 > > |> assert result -00:05:45 v #7197 > > -00:05:45 v #7198 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:45 v #7199 > > │ ### __assert_approx_eq -00:05:45 v #7200 > > -00:05:45 v #7201 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:45 v #7202 > > inl rec __assert_approx_eq trace e b a = -00:05:45 v #7203 > > __expect -00:05:45 v #7204 > > (fun a b => abs (b - a) < (e |> optionm.defaultWith 0.00000001)) -00:05:45 v #7205 > > trace -00:05:45 v #7206 > > (reflection.nameof { __assert_approx_eq }) -00:05:45 v #7207 > > b -00:05:45 v #7208 > > a -00:05:45 v #7209 > > -00:05:45 v #7210 > > inl _assert_approx_eq e b a = -00:05:45 v #7211 > > __assert_approx_eq Console e b a -00:05:45 v #7212 > > -00:05:45 v #7213 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:45 v #7214 > > //// test -00:05:45 v #7215 > > ///! fsharp -00:05:45 v #7216 > > ///! cuda -00:05:45 v #7217 > > ///! rust -00:05:45 v #7218 > > ///! typescript -00:05:45 v #7219 > > ///! python -00:05:45 v #7220 > > -00:05:45 v #7221 > > 12.345f64 -00:05:45 v #7222 > > |> _assert_approx_eq (Some 0.0001f64) 12.345f64 -00:05:49 v #7223 > > -00:05:49 v #7224 > > ── [ 3.97s - return value ] ──────────────────────────────────────────────────── -00:05:49 v #7225 > > │ .py output (Cuda): -00:05:49 v #7226 > > │ __assert_approx_eq / actual: 12.345 / expected: 12.345 -00:05:49 v #7227 > > │ -00:05:49 v #7228 > > │ .rs output: -00:05:49 v #7229 > > │ __assert_approx_eq / actual: 12.345 / expected: 12.345 -00:05:49 v #7230 > > │ -00:05:49 v #7231 > > │ .ts output: -00:05:49 v #7232 > > │ __assert_approx_eq / actual: 12.345 / expected: 12.345 -00:05:49 v #7233 > > │ -00:05:49 v #7234 > > │ .py output: -00:05:49 v #7235 > > │ __assert_approx_eq / actual: 12.345 / expected: 12.345 -00:05:49 v #7236 > > │ -00:05:49 v #7237 > > │ -00:05:49 v #7238 > > -00:05:49 v #7239 > > ── [ 3.97s - stdout ] ────────────────────────────────────────────────────────── -00:05:49 v #7240 > > │ .fsx output: -00:05:49 v #7241 > > │ __assert_approx_eq / actual: 12.345 / expected: 12.345 -00:05:49 v #7242 > > │ -00:05:49 v #7243 > > -00:05:49 v #7244 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:49 v #7245 > > //// test -00:05:49 v #7246 > > //// print_code -00:05:49 v #7247 > > -00:05:49 v #7248 > > 1f64 -00:05:49 v #7249 > > |> __assert_approx_eq Console (Some 3) 2 -00:05:50 v #7250 > > -00:05:50 v #7251 > > ── [ 462.17ms - stdout ] ─────────────────────────────────────────────────────── -00:05:50 v #7252 > > │ let rec closure0 (v0 : string) () : unit = -00:05:50 v #7253 > > │ let v1 : (string -> unit) = System.Console.WriteLine -00:05:50 v #7254 > > │ v1 v0 -00:05:50 v #7255 > > │ and method0 () : unit = -00:05:50 v #7256 > > │ let v0 : string = "__assert_approx_eq" -00:05:50 v #7257 > > │ let v1 : string = $"{v0} / actual: %A{1.0} / expected: -00:05:50 v #7258 > > %A{2.0}" -00:05:50 v #7259 > > │ let v4 : unit = () -00:05:50 v #7260 > > │ let v5 : (unit -> unit) = closure0(v1) -00:05:50 v #7261 > > │ let v6 : unit = (fun () -> v5 (); v4) () -00:05:50 v #7262 > > │ () -00:05:50 v #7263 > > │ method0() -00:05:50 v #7264 > > │ -00:05:50 v #7265 > > │ __assert_approx_eq / actual: 1.0 / expected: 2.0 -00:05:50 v #7266 > > │ -00:05:50 v #7267 > > -00:05:50 v #7268 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:50 v #7269 > > //// test -00:05:50 v #7270 > > //// print_code -00:05:50 v #7271 > > -00:05:50 v #7272 > > (dyn 1f64) -00:05:50 v #7273 > > |> _assert_approx_eq (Some 3) 2 -00:05:50 v #7274 > > -00:05:50 v #7275 > > ── [ 532.89ms - stdout ] ─────────────────────────────────────────────────────── -00:05:50 v #7276 > > │ let rec method1 (v0 : bool) : bool = -00:05:50 v #7277 > > │ v0 -00:05:50 v #7278 > > │ and closure0 (v0 : string) () : unit = -00:05:50 v #7279 > > │ let v1 : (string -> unit) = System.Console.WriteLine -00:05:50 v #7280 > > │ v1 v0 -00:05:50 v #7281 > > │ and method0 () : unit = -00:05:50 v #7282 > > │ let v0 : float = 1.0 -00:05:50 v #7283 > > │ let v1 : float = 2.0 - v0 -00:05:50 v #7284 > > │ let v2 : float = -v1 -00:05:50 v #7285 > > │ let v3 : bool = v1 >= v2 -00:05:50 v #7286 > > │ let v4 : float = -00:05:50 v #7287 > > │ if v3 then -00:05:50 v #7288 > > │ v1 -00:05:50 v #7289 > > │ else -00:05:50 v #7290 > > │ v2 -00:05:50 v #7291 > > │ let v5 : bool = v4 < 3.0 -00:05:50 v #7292 > > │ let v7 : bool = -00:05:50 v #7293 > > │ if v5 then -00:05:50 v #7294 > > │ true -00:05:50 v #7295 > > │ else -00:05:50 v #7296 > > │ method1(v5) -00:05:50 v #7297 > > │ let v8 : string = "__assert_approx_eq" -00:05:50 v #7298 > > │ let v9 : string = $"{v8} / actual: %A{v0} / expected: -00:05:50 v #7299 > > %A{2.0}" -00:05:50 v #7300 > > │ let v12 : unit = () -00:05:50 v #7301 > > │ let v13 : (unit -> unit) = closure0(v9) -00:05:50 v #7302 > > │ let v14 : unit = (fun () -> v13 (); v12) () -00:05:50 v #7303 > > │ let v16 : bool = v7 = false -00:05:50 v #7304 > > │ if v16 then -00:05:50 v #7305 > > │ failwith<unit> v9 -00:05:50 v #7306 > > │ method0() -00:05:50 v #7307 > > │ -00:05:50 v #7308 > > │ __assert_approx_eq / actual: 1.0 / expected: 2.0 -00:05:50 v #7309 > > │ -00:05:50 v #7310 > > -00:05:50 v #7311 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:50 v #7312 > > │ ### __assert_eq -00:05:50 v #7313 > > -00:05:50 v #7314 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:50 v #7315 > > inl rec __assert_eq trace b a = -00:05:50 v #7316 > > __expect (=) trace (reflection.nameof { __assert_eq }) b a -00:05:50 v #7317 > > -00:05:50 v #7318 > > inl _assert_eq b a = -00:05:50 v #7319 > > __assert_eq Console b a -00:05:51 v #7320 > > -00:05:51 v #7321 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:51 v #7322 > > │ ### __assert_eq' -00:05:51 v #7323 > > -00:05:51 v #7324 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:51 v #7325 > > inl rec __assert_eq' trace b a = -00:05:51 v #7326 > > __expect (=.) trace (reflection.nameof { __assert_eq' }) b a -00:05:51 v #7327 > > -00:05:51 v #7328 > > inl _assert_eq' b a = -00:05:51 v #7329 > > __assert_eq' Console b a -00:05:51 v #7330 > > -00:05:51 v #7331 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:51 v #7332 > > │ ### __assert_ne -00:05:51 v #7333 > > -00:05:51 v #7334 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:51 v #7335 > > inl rec __assert_ne trace b a = -00:05:51 v #7336 > > __expect (<>.) trace (reflection.nameof { __assert_ne }) b a -00:05:51 v #7337 > > -00:05:51 v #7338 > > inl _assert_ne b a = -00:05:51 v #7339 > > __assert_ne Console b a -00:05:52 v #7340 > > -00:05:52 v #7341 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:52 v #7342 > > │ ### __assert_gt -00:05:52 v #7343 > > -00:05:52 v #7344 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:52 v #7345 > > inl rec __assert_gt trace b a = -00:05:52 v #7346 > > __expect (>) trace (reflection.nameof { __assert_gt }) b a -00:05:52 v #7347 > > -00:05:52 v #7348 > > inl _assert_gt b a = -00:05:52 v #7349 > > __assert_gt Console b a -00:05:52 v #7350 > > -00:05:52 v #7351 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:52 v #7352 > > │ ### __assert_ge -00:05:52 v #7353 > > -00:05:52 v #7354 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:52 v #7355 > > inl rec __assert_ge trace b a = -00:05:52 v #7356 > > __expect (>=) trace (reflection.nameof { __assert_ge }) b a -00:05:52 v #7357 > > -00:05:52 v #7358 > > inl _assert_ge b a = -00:05:52 v #7359 > > __assert_ge Console b a -00:05:52 v #7360 > > -00:05:52 v #7361 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:52 v #7362 > > │ ### __assert_lt -00:05:52 v #7363 > > -00:05:52 v #7364 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:52 v #7365 > > inl rec __assert_lt trace b a = -00:05:52 v #7366 > > __expect (<) trace (reflection.nameof { __assert_lt }) b a -00:05:52 v #7367 > > -00:05:52 v #7368 > > inl _assert_lt b a = -00:05:52 v #7369 > > __assert_lt Console b a -00:05:53 v #7370 > > -00:05:53 v #7371 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:53 v #7372 > > │ ### __assert_le -00:05:53 v #7373 > > -00:05:53 v #7374 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:53 v #7375 > > inl rec __assert_le trace b a = -00:05:53 v #7376 > > __expect (<=) trace (reflection.nameof { __assert_le }) b a -00:05:53 v #7377 > > -00:05:53 v #7378 > > inl _assert_le b a = -00:05:53 v #7379 > > __assert_le Console b a -00:05:53 v #7380 > > -00:05:53 v #7381 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:53 v #7382 > > │ ### __assert -00:05:53 v #7383 > > -00:05:53 v #7384 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:53 v #7385 > > inl rec __assert fn trace b a = -00:05:53 v #7386 > > __expect fn trace (reflection.nameof { __assert }) a b -00:05:53 v #7387 > > -00:05:53 v #7388 > > inl _assert fn b a = -00:05:53 v #7389 > > __assert fn Console b a -00:05:54 v #7390 > > -00:05:54 v #7391 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:54 v #7392 > > │ ### __assert_between -00:05:54 v #7393 > > -00:05:54 v #7394 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:54 v #7395 > > inl rec __assert_between trace a b actual = -00:05:54 v #7396 > > inl assert_between actual (a, b) = -00:05:54 v #7397 > > __assert_ge Silent a actual -00:05:54 v #7398 > > __assert_le Silent b actual -00:05:54 v #7399 > > true -00:05:54 v #7400 > > __expect assert_between trace (reflection.nameof { __assert_between }) (a, -00:05:54 v #7401 > > b) actual -00:05:54 v #7402 > > -00:05:54 v #7403 > > inl _assert_between a b actual = -00:05:54 v #7404 > > __assert_between Console a b actual -00:05:54 v #7405 > > -00:05:54 v #7406 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:54 v #7407 > > │ ### _assert_fn -00:05:54 v #7408 > > -00:05:54 v #7409 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:54 v #7410 > > inl rec _assert_fn fn list = -00:05:54 v #7411 > > list -00:05:54 v #7412 > > |> listm.rev -00:05:54 v #7413 > > |> listm.map fun input, expected => join -00:05:54 v #7414 > > input -00:05:54 v #7415 > > |> fn -00:05:54 v #7416 > > |> resultm.get -00:05:54 v #7417 > > |> fun x => -00:05:54 v #7418 > > inl expected' = join expected -00:05:54 v #7419 > > inl name = reflection.nameof { _assert_fn } -00:05:54 v #7420 > > try -00:05:54 v #7421 > > fun () => -00:05:54 v #7422 > > console.write_line "" -00:05:54 v #7423 > > trace Verbose -00:05:54 v #7424 > > fun () => name -00:05:54 v #7425 > > fun () => { input } -00:05:54 v #7426 > > x -00:05:54 v #7427 > > |> sm'.format -00:05:54 v #7428 > > |> _assert_eq' (expected' |> sm'.format) -00:05:54 v #7429 > > true -00:05:54 v #7430 > > fun ex => -00:05:54 v #7431 > > trace Critical -00:05:54 v #7432 > > fun () => -00:05:54 v #7433 > > backend_switch { -00:05:54 v #7434 > > Fsharp = fun () => $'$"{!name} / error"' : -00:05:54 v #7435 > > string -00:05:54 v #7436 > > Python = fun () => $'f"{!name} / error"' : -00:05:54 v #7437 > > string -00:05:54 v #7438 > > } -00:05:54 v #7439 > > fun () => { ex expected } -00:05:54 v #7440 > > Some false -00:05:54 v #7441 > > |> optionm.value -00:05:54 v #7442 > > |> listm'.filter not -00:05:54 v #7443 > > |> function -00:05:54 v #7444 > > | [[]] => () -00:05:54 v #7445 > > | x => x |> sm'.format_debug |> failwith -00:05:55 v #7446 > > -00:05:55 v #7447 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:55 v #7448 > > │ ## fsharp -00:05:55 v #7449 > > -00:05:55 v #7450 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:55 v #7451 > > │ ### __assert_contains -00:05:55 v #7452 > > -00:05:55 v #7453 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:55 v #7454 > > inl rec __assert_contains forall t u. (trace : testing_trace) (b : t) (a : u) : -00:05:55 v #7455 > > () = -00:05:55 v #7456 > > __expect -00:05:55 v #7457 > > fun a b => -00:05:55 v #7458 > > a -00:05:55 v #7459 > > |> $'List.ofSeq' -00:05:55 v #7460 > > |> fun x => x : listm'.list' t -00:05:55 v #7461 > > |> $'List.tryFind' ((=) b) -00:05:55 v #7462 > > |> optionm'.unbox -00:05:55 v #7463 > > |> fun (x : option t) => x <> None -00:05:55 v #7464 > > trace -00:05:55 v #7465 > > // TODO: forall nameof (Cannot dyn a forall into a runtime var.) -00:05:55 v #7466 > > // Metavars that are not part of the enclosing function's signature are -00:05:55 v #7467 > > not allowed. They need to be values. -00:05:55 v #7468 > > // Got: {__assert_contains : testing_trace -> _ -> _ -> ()} -> string -00:05:55 v #7469 > > // (reflection.nameof { __assert_contains }) -00:05:55 v #7470 > > "__assert_contains" -00:05:55 v #7471 > > b -00:05:55 v #7472 > > a -00:05:55 v #7473 > > -00:05:55 v #7474 > > inl _assert_contains b a = -00:05:55 v #7475 > > __assert_contains Console b a -00:05:55 v #7476 > > -00:05:55 v #7477 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:55 v #7478 > > //// test -00:05:55 v #7479 > > -00:05:55 v #7480 > > ;[[ "a"; "b"; "c" ]] -00:05:55 v #7481 > > |> _assert_contains "b" -00:05:56 v #7482 > > -00:05:56 v #7483 > > ── [ 821.04ms - stdout ] ─────────────────────────────────────────────────────── -00:05:56 v #7484 > > │ __assert_contains / actual: [|"a"; "b"; "c"|] / expected: "b" -00:05:56 v #7485 > > │ -00:05:56 v #7486 > > -00:05:56 v #7487 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:56 v #7488 > > //// test -00:05:56 v #7489 > > -00:05:56 v #7490 > > "abcd" -00:05:56 v #7491 > > |> _assert_contains 'b' -00:05:56 v #7492 > > -00:05:56 v #7493 > > ── [ 498.83ms - stdout ] ─────────────────────────────────────────────────────── -00:05:56 v #7494 > > │ __assert_contains / actual: "abcd" / expected: 'b' -00:05:56 v #7495 > > │ -00:05:56 v #7496 > > -00:05:56 v #7497 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:56 v #7498 > > │ ### _throws -00:05:56 v #7499 > > -00:05:56 v #7500 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:56 v #7501 > > inl _throws (fn : () -> ()) : option exn = -00:05:56 v #7502 > > inl none = None : option exn -00:05:56 v #7503 > > inl some (s : exn) = Some s -00:05:56 v #7504 > > backend_switch { -00:05:56 v #7505 > > Fsharp = fun () => -00:05:56 v #7506 > > $'try !fn (); !none with ex -> ex |> !some ' : option exn -00:05:56 v #7507 > > Python = fun () => -00:05:56 v #7508 > > $'fn = !fn ' -00:05:56 v #7509 > > $'none = !none ' -00:05:56 v #7510 > > $'some = !some ' -00:05:56 v #7511 > > $'try: fn(); x = none ' -00:05:56 v #7512 > > $'except Exception as ex: x = some(ex)' -00:05:56 v #7513 > > $'x' : option exn -00:05:56 v #7514 > > } -00:05:57 v #7515 > > -00:05:57 v #7516 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:57 v #7517 > > │ ### print_and_return -00:05:57 v #7518 > > -00:05:57 v #7519 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:57 v #7520 > > inl rec print_and_return x = -00:05:57 v #7521 > > inl name = reflection.nameof { print_and_return } -00:05:57 v #7522 > > backend_switch { -00:05:57 v #7523 > > Fsharp = fun () => $'printfn $"{!name} / x: {!x}"' : () -00:05:57 v #7524 > > Python = fun () => $'print(f"{!name} / x: {!x}")' : () -00:05:57 v #7525 > > } -00:05:57 v #7526 > > x -00:05:57 v #7527 > 00:00:18 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 13445 } -00:05:57 v #7528 > 00:00:18 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/lib/spiral/testing.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/lib/spiral/testing.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:05:58 v #7529 > 00:00:19 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/lib/spiral/testing.dib.ipynb to html -00:05:58 v #7530 > 00:00:19 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. -00:05:58 v #7531 > 00:00:19 v #7 ! validate(nb) -00:05:59 v #7532 > 00:00:20 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 -00:05:59 v #7533 > 00:00:20 v #9 ! return _pygments_highlight( -00:05:59 v #7534 > 00:00:20 v #10 ! [NbConvertApp] Writing 321524 bytes to c:\home\git\polyglot\lib\spiral\testing.dib.html -00:05:59 v #7535 > 00:00:20 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 856 } -00:05:59 v #7536 > 00:00:20 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 856 } -00:05:59 v #7537 > 00:00:20 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/testing.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/testing.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:06:00 v #7538 > 00:00:21 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } -00:06:00 v #7539 > 00:00:21 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } -00:06:00 v #7540 > 00:00:21 d #16 spiral.run / dib / { exit_code = 0; result_length = 14360 } -00:06:00 d #7541 runtime.execute_with_options_async / { exit_code = 0; output_length = 17656 } -00:06:00 d #9 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path testing.dib --retries 3 -00:06:00 d #7542 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path guid.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path guid.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } -00:06:00 v #7543 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "guid.dib", "--retries", "3"])) } -00:06:00 v #7544 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/lib/spiral/guid.dib", "--output-path", "c:/home/git/polyglot/lib/spiral/guid.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/lib/spiral/guid.dib" --output-path "c:/home/git/polyglot/lib/spiral/guid.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } -00:06:02 v #7545 > > -00:06:02 v #7546 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:02 v #7547 > > │ # guid -00:06:05 v #7548 > > -00:06:05 v #7549 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:05 v #7550 > > //// test -00:06:05 v #7551 > > -00:06:05 v #7552 > > open testing -00:06:06 v #7553 > > -00:06:06 v #7554 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:06 v #7555 > > │ ## guid -00:06:06 v #7556 > > -00:06:06 v #7557 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:06 v #7558 > > │ ### guid -00:06:06 v #7559 > > -00:06:06 v #7560 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:06 v #7561 > > nominal guid_python = -00:06:06 v #7562 > > `( -00:06:06 v #7563 > > global "import uuid" -00:06:06 v #7564 > > $'' : $'uuid.UUID' -00:06:06 v #7565 > > ) -00:06:06 v #7566 > > type guid_switch = -00:06:06 v #7567 > > { -00:06:06 v #7568 > > Fsharp : $'System.Guid' -00:06:06 v #7569 > > Python : guid_python -00:06:06 v #7570 > > } -00:06:06 v #7571 > > nominal guid = $'backend_switch `(guid_switch)' -00:06:06 v #7572 > > -00:06:06 v #7573 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:06 v #7574 > > │ ### new_guid -00:06:06 v #7575 > > -00:06:06 v #7576 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:06 v #7577 > > inl new_guid (x : string) : guid = -00:06:06 v #7578 > > run_target_args (fun () => x) function -00:06:06 v #7579 > > | Rust (Contract) => fun _ => null () -00:06:06 v #7580 > > | _ => fun x => x |> convert -00:06:07 v #7581 > > -00:06:07 v #7582 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:07 v #7583 > > │ ### new_raw_guid -00:06:07 v #7584 > > -00:06:07 v #7585 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:07 v #7586 > > inl new_raw_guid () : guid = -00:06:07 v #7587 > > backend_switch { -00:06:07 v #7588 > > Fsharp = fun () => $'System.Guid.NewGuid' () : guid -00:06:07 v #7589 > > Python = fun () => $'uuid.uuid4()' : guid -00:06:07 v #7590 > > } -00:06:07 v #7591 > > -00:06:07 v #7592 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:07 v #7593 > > │ ### hash_guid -00:06:07 v #7594 > > -00:06:07 v #7595 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:07 v #7596 > > type hash_guid = guid -00:06:07 v #7597 > > -00:06:07 v #7598 > > let hash_guid (hash : string) : hash_guid = -00:06:07 v #7599 > > inl hash = hash |> sm'.pad_left 32i32 '0' -00:06:07 v #7600 > > run_target_args (fun () => hash) function -00:06:07 v #7601 > > | Rust (Contract) => fun _ => null () -00:06:07 v #7602 > > | _ => fun hash => -00:06:07 v #7603 > > inl a = hash |> sm'.range (am'.Start 0i32) (am'.End fun _ => 8) -00:06:07 v #7604 > > inl b = hash |> sm'.range (am'.Start 8i32) (am'.End fun _ => 12) -00:06:07 v #7605 > > inl c = hash |> sm'.range (am'.Start 12i32) (am'.End fun _ => 16) -00:06:07 v #7606 > > inl d = hash |> sm'.range (am'.Start 16i32) (am'.End fun _ => 20) -00:06:07 v #7607 > > inl e = hash |> sm'.range (am'.Start 20i32) (am'.End fun _ => 32) -00:06:07 v #7608 > > $'$"{!a}-{!b}-{!c}-{!d}-{!e}"' |> new_guid -00:06:07 v #7609 > > -00:06:07 v #7610 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:07 v #7611 > > //// test -00:06:07 v #7612 > > ///! fsharp -00:06:07 v #7613 > > ///! cuda -00:06:07 v #7614 > > ///! rust -00:06:07 v #7615 > > ///! typescript -00:06:07 v #7616 > > ///! python -00:06:07 v #7617 > > -00:06:07 v #7618 > > "" -00:06:07 v #7619 > > |> hash_guid -00:06:07 v #7620 > > |> _assert_eq' (new_guid "00000000-0000-0000-0000-000000000000") -00:06:07 v #7621 > > -00:06:07 v #7622 > > "123456789012345678901234567890123" -00:06:07 v #7623 > > |> hash_guid -00:06:07 v #7624 > > |> _assert_eq' (new_guid "12345678-9012-3456-7890-123456789012") -00:06:12 v #7625 > > -00:06:12 v #7626 > > ── [ 4.22s - return value ] ──────────────────────────────────────────────────── -00:06:12 v #7627 > > │ -00:06:12 v #7628 > > │ .py output (Cuda): -00:06:12 v #7629 > > │ __assert_eq' / actual: 00000000-0000-0000-0000-000000000000 -00:06:12 v #7630 > > expected: 00000000-0000-0000-0000-000000000000 -00:06:12 v #7631 > > │ __assert_eq' / actual: 12345678-9012-3456-7890-123456789012 -00:06:12 v #7632 > > expected: 12345678-9012-3456-7890-123456789012 -00:06:12 v #7633 > > │ -00:06:12 v #7634 > > │ -00:06:12 v #7635 > > │ .rs output: -00:06:12 v #7636 > > │ __assert_eq' / actual: -00:06:12 v #7637 > > Guid(00000000-0000-0000-0000-000000000000) / expected: -00:06:12 v #7638 > > Guid(00000000-0000-0000-0000-000000000000) -00:06:12 v #7639 > > │ __assert_eq' / actual: -00:06:12 v #7640 > > Guid(12345678-9012-3456-7890-123456789012) / expected: -00:06:12 v #7641 > > Guid(12345678-9012-3456-7890-123456789012) -00:06:12 v #7642 > > │ -00:06:12 v #7643 > > │ -00:06:12 v #7644 > > │ .ts output: -00:06:12 v #7645 > > │ __assert_eq' / actual: 00000000-0000-0000-0000-000000000000 -00:06:12 v #7646 > > expected: 00000000-0000-0000-0000-000000000000 -00:06:12 v #7647 > > │ __assert_eq' / actual: 12345678-9012-3456-7890-123456789012 -00:06:12 v #7648 > > expected: 12345678-9012-3456-7890-123456789012 -00:06:12 v #7649 > > │ -00:06:12 v #7650 > > │ -00:06:12 v #7651 > > │ .py output: -00:06:12 v #7652 > > │ __assert_eq' / actual: 00000000-0000-0000-0000-000000000000 -00:06:12 v #7653 > > expected: 00000000-0000-0000-0000-000000000000 -00:06:12 v #7654 > > │ __assert_eq' / actual: 12345678-9012-3456-7890-123456789012 -00:06:12 v #7655 > > expected: 12345678-9012-3456-7890-123456789012 -00:06:12 v #7656 > > │ -00:06:12 v #7657 > > │ -00:06:12 v #7658 > > │ -00:06:12 v #7659 > > -00:06:12 v #7660 > > ── [ 4.23s - stdout ] ────────────────────────────────────────────────────────── -00:06:12 v #7661 > > │ .fsx output: -00:06:12 v #7662 > > │ __assert_eq' / actual: 00000000-0000-0000-0000-000000000000 -00:06:12 v #7663 > > expected: 00000000-0000-0000-0000-000000000000 -00:06:12 v #7664 > > │ __assert_eq' / actual: 12345678-9012-3456-7890-123456789012 -00:06:12 v #7665 > > expected: 12345678-9012-3456-7890-123456789012 -00:06:12 v #7666 > > │ -00:06:12 v #7667 > > -00:06:12 v #7668 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:12 v #7669 > > │ ## main -00:06:12 v #7670 > > -00:06:12 v #7671 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:12 v #7672 > > inl main () = -00:06:12 v #7673 > > $'let new_guid x = !new_guid x' : () -00:06:12 v #7674 > > $'let hash_guid x = !hash_guid x' : () -00:06:12 v #7675 > > $'let new_raw_guid x = !new_raw_guid x' : () -00:06:12 v #7676 > 00:00:12 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 5027 } -00:06:12 v #7677 > 00:00:12 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/lib/spiral/guid.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/lib/spiral/guid.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:06:14 v #7678 > 00:00:13 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/lib/spiral/guid.dib.ipynb to html -00:06:14 v #7679 > 00:00:13 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. -00:06:14 v #7680 > 00:00:13 v #7 ! validate(nb) -00:06:14 v #7681 > 00:00:14 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 -00:06:14 v #7682 > 00:00:14 v #9 ! return _pygments_highlight( -00:06:14 v #7683 > 00:00:14 v #10 ! [NbConvertApp] Writing 287145 bytes to c:\home\git\polyglot\lib\spiral\guid.dib.html -00:06:15 v #7684 > 00:00:14 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 850 } -00:06:15 v #7685 > 00:00:14 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 850 } -00:06:15 v #7686 > 00:00:14 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/guid.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/guid.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:06:15 v #7687 > 00:00:15 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } -00:06:15 v #7688 > 00:00:15 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } -00:06:15 v #7689 > 00:00:15 d #16 spiral.run / dib / { exit_code = 0; result_length = 5936 } -00:06:15 d #7690 runtime.execute_with_options_async / { exit_code = 0; output_length = 8713 } -00:06:15 d #10 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path guid.dib --retries 3 -00:06:15 d #7691 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path async.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path async.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } -00:06:15 v #7692 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "async.dib", "--retries", "3"])) } -00:06:15 v #7693 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/lib/spiral/async.dib", "--output-path", "c:/home/git/polyglot/lib/spiral/async.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/lib/spiral/async.dib" --output-path "c:/home/git/polyglot/lib/spiral/async.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } -00:06:17 v #7694 > > -00:06:17 v #7695 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:17 v #7696 > > │ # async -00:06:20 v #7697 > > -00:06:20 v #7698 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:20 v #7699 > > //// test -00:06:20 v #7700 > > -00:06:20 v #7701 > > open testing -00:06:21 v #7702 > > -00:06:21 v #7703 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:21 v #7704 > > open rust -00:06:21 v #7705 > > open rust_operators -00:06:21 v #7706 > > -00:06:21 v #7707 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:21 v #7708 > > │ ### base_let' -00:06:21 v #7709 > > -00:06:21 v #7710 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:21 v #7711 > > inl base_let' x = -00:06:21 v #7712 > > let' x -00:06:22 v #7713 > > -00:06:22 v #7714 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:22 v #7715 > > │ ## rust -00:06:22 v #7716 > > -00:06:22 v #7717 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:22 v #7718 > > │ ### future -00:06:22 v #7719 > > -00:06:22 v #7720 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:22 v #7721 > > nominal future t = -00:06:22 v #7722 > > `( -00:06:22 v #7723 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:06:22 v #7724 > > Fable.Core.Emit(\"std::future::Future<Output = $0>\")>]]\n#endif\ntype -00:06:22 v #7725 > > std_future_Future<'T> = class end" -00:06:22 v #7726 > > $'' : $'std_future_Future<`t>' -00:06:22 v #7727 > > ) -00:06:22 v #7728 > > -00:06:22 v #7729 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:22 v #7730 > > │ ### future_pin -00:06:22 v #7731 > > -00:06:22 v #7732 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:22 v #7733 > > type future_pin t = rust.pin (rust.box (rust.dyn' (future t))) -00:06:22 v #7734 > > -00:06:22 v #7735 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:22 v #7736 > > │ ### future_pin_send -00:06:22 v #7737 > > -00:06:22 v #7738 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:22 v #7739 > > type future_pin_send t = rust.pin (rust.box (rust.send (rust.dyn' (future t)))) -00:06:23 v #7740 > > -00:06:23 v #7741 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:23 v #7742 > > │ ### block_on_tokio -00:06:23 v #7743 > > -00:06:23 v #7744 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:23 v #7745 > > inl block_on_tokio forall t. (fn : future_pin t) : t = -00:06:23 v #7746 > > inl runtime : infer = -00:06:23 v #7747 > > -00:06:23 v #7748 > > !\($'$"tokio::runtime::Builder::new_multi_thread().enable_all().build().unwrap() -00:06:23 v #7749 > > "') -00:06:23 v #7750 > > !\\(fn, $'"!runtime.handle().block_on($0)"') -00:06:23 v #7751 > > -00:06:23 v #7752 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:23 v #7753 > > │ ### block_on_futures_lite -00:06:23 v #7754 > > -00:06:23 v #7755 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:23 v #7756 > > inl block_on_futures_lite forall t. (fn : future_pin t) : t = -00:06:23 v #7757 > > !\\(fn, $'"futures_lite::future::block_on($0)"') -00:06:24 v #7758 > > -00:06:24 v #7759 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:24 v #7760 > > │ ### block_on_futures -00:06:24 v #7761 > > -00:06:24 v #7762 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:24 v #7763 > > inl block_on_futures forall t. (fn : future_pin t) : t = -00:06:24 v #7764 > > !\\(fn, $'"futures::executor::block_on($0)"') -00:06:24 v #7765 > > -00:06:24 v #7766 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:24 v #7767 > > │ ### block_on_async_std -00:06:24 v #7768 > > -00:06:24 v #7769 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:24 v #7770 > > inl block_on_async_std forall t. (fn : future_pin t) : t = -00:06:24 v #7771 > > !\\(fn, $'"async_std::task::block_on($0)"') -00:06:25 v #7772 > > -00:06:25 v #7773 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:25 v #7774 > > │ ### block_on_tokio_send -00:06:25 v #7775 > > -00:06:25 v #7776 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:25 v #7777 > > inl block_on_tokio_send forall t. (fn : future_pin_send t) : t = -00:06:25 v #7778 > > !\($'"tokio::runtime::block_on(!fn)"') -00:06:25 v #7779 > > -00:06:25 v #7780 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:25 v #7781 > > │ ### stream_ext_tokio -00:06:25 v #7782 > > -00:06:25 v #7783 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:25 v #7784 > > nominal stream_ext_tokio = -00:06:25 v #7785 > > `( -00:06:25 v #7786 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:06:25 v #7787 > > Fable.Core.Emit(\"tokio_stream::StreamExt\")>]]\n#endif\ntype -00:06:25 v #7788 > > tokio_stream_StreamExt = class end" -00:06:25 v #7789 > > $'' : $'tokio_stream_StreamExt' -00:06:25 v #7790 > > ) -00:06:25 v #7791 > > -00:06:25 v #7792 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:25 v #7793 > > │ ### join_handle_tokio -00:06:25 v #7794 > > -00:06:25 v #7795 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:25 v #7796 > > nominal join_handle_tokio t = -00:06:25 v #7797 > > `( -00:06:25 v #7798 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:06:25 v #7799 > > Fable.Core.Emit(\"tokio::task::JoinHandle<$0>\")>]]\n#endif\ntype -00:06:25 v #7800 > > tokio_task_JoinHandle<'T> = class end" -00:06:25 v #7801 > > $'' : $'tokio_task_JoinHandle<`t>' -00:06:25 v #7802 > > ) -00:06:26 v #7803 > > -00:06:26 v #7804 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:26 v #7805 > > │ ### stream_collect_tokio -00:06:26 v #7806 > > -00:06:26 v #7807 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:26 v #7808 > > inl stream_collect_tokio forall t u. -00:06:26 v #7809 > > (stream : t) -00:06:26 v #7810 > > : future_pin (am'.vec u) -00:06:26 v #7811 > > = -00:06:26 v #7812 > > !\($'"Box::pin(tokio_stream::StreamExt::collect(!stream))"') -00:06:26 v #7813 > > -00:06:26 v #7814 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:26 v #7815 > > │ ### stream_collect_futures -00:06:26 v #7816 > > -00:06:26 v #7817 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:26 v #7818 > > inl stream_collect_futures forall t u. -00:06:26 v #7819 > > (stream : t) -00:06:26 v #7820 > > : future_pin (am'.vec u) -00:06:26 v #7821 > > = -00:06:26 v #7822 > > !\($'"Box::pin(futures::stream::StreamExt::collect(!stream))"') -00:06:27 v #7823 > > -00:06:27 v #7824 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:27 v #7825 > > │ ### stream_next_tokio -00:06:27 v #7826 > > -00:06:27 v #7827 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:27 v #7828 > > inl stream_next_tokio forall t u. -00:06:27 v #7829 > > (stream : t) -00:06:27 v #7830 > > : future_pin (optionm'.option' u) -00:06:27 v #7831 > > = -00:06:27 v #7832 > > !\($'"let mut !stream = !stream"') -00:06:27 v #7833 > > !\($'"Box::pin(tokio_stream::StreamExt::next(&mut !stream))"') -00:06:27 v #7834 > > -00:06:27 v #7835 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:27 v #7836 > > │ ### stream_filter_map_tokio -00:06:27 v #7837 > > -00:06:27 v #7838 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:27 v #7839 > > inl stream_filter_map_tokio forall t u v. -00:06:27 v #7840 > > (fn : u -> optionm'.option' v) -00:06:27 v #7841 > > (stream : t) -00:06:27 v #7842 > > : infer' v -00:06:27 v #7843 > > = -00:06:27 v #7844 > > inl fn = join fn -00:06:27 v #7845 > > !\($'"tokio_stream::StreamExt::filter_map(!stream, |x| !fn(x))"') -00:06:27 v #7846 > > -00:06:27 v #7847 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:27 v #7848 > > │ ### stream_filter_map_futures -00:06:27 v #7849 > > -00:06:27 v #7850 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:27 v #7851 > > inl stream_filter_map_futures forall t u v. -00:06:27 v #7852 > > (fn : u -> optionm'.option' v) -00:06:27 v #7853 > > (stream : t) -00:06:27 v #7854 > > : infer' v -00:06:27 v #7855 > > = -00:06:27 v #7856 > > inl fn = join fn -00:06:27 v #7857 > > !\($'"futures::stream::StreamExt::filter_map(!stream, |x| async { !fn(x) -00:06:27 v #7858 > > })"') -00:06:28 v #7859 > > -00:06:28 v #7860 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:28 v #7861 > > │ ### spawn_tokio -00:06:28 v #7862 > > -00:06:28 v #7863 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:28 v #7864 > > inl spawn_tokio forall t. (fn : future_pin_send t) : join_handle_tokio t = -00:06:28 v #7865 > > !\($'"tokio::runtime::spawn(!fn)"') -00:06:28 v #7866 > > -00:06:28 v #7867 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:28 v #7868 > > │ ### try_join_all -00:06:28 v #7869 > > -00:06:28 v #7870 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:28 v #7871 > > nominal try_join_all t = -00:06:28 v #7872 > > `( -00:06:28 v #7873 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:06:28 v #7874 > > Fable.Core.Emit(\"futures::future::TryJoinAll<$0>\")>]]\n#endif\ntype -00:06:28 v #7875 > > futures_future_TryJoinAll<'T> = class end" -00:06:28 v #7876 > > $'' : $'futures_future_TryJoinAll<`t>' -00:06:28 v #7877 > > ) -00:06:28 v #7878 > > -00:06:28 v #7879 > > inl try_join_all forall t. (x : am'.vec (future_pin (resultm.result' t -00:06:28 v #7880 > > sm'.std_string))) : try_join_all (future_pin (resultm.result' t sm'.std_string)) -00:06:28 v #7881 > > = -00:06:28 v #7882 > > inl x = join x -00:06:28 v #7883 > > !\($'"futures::future::try_join_all(!x)"') -00:06:29 v #7884 > > -00:06:29 v #7885 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:29 v #7886 > > │ ### fuse_tokio -00:06:29 v #7887 > > -00:06:29 v #7888 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:29 v #7889 > > nominal fuse_tokio t = -00:06:29 v #7890 > > `( -00:06:29 v #7891 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:06:29 v #7892 > > Fable.Core.Emit(\"tokio::prelude::stream::Fuse<$0>\")>]]\n#endif\ntype -00:06:29 v #7893 > > tokio_prelude_stream_Fuse<'T> = class end" -00:06:29 v #7894 > > $'' : $'tokio_prelude_stream_Fuse<`t>' -00:06:29 v #7895 > > ) -00:06:29 v #7896 > > -00:06:29 v #7897 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:29 v #7898 > > │ ### fuse' -00:06:29 v #7899 > > -00:06:29 v #7900 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:29 v #7901 > > type fuse' t = fuse_tokio t -00:06:30 v #7902 > > -00:06:30 v #7903 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:30 v #7904 > > │ ### future_fuse -00:06:30 v #7905 > > -00:06:30 v #7906 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:30 v #7907 > > inl future_fuse forall t. (x : future_pin t) : fuse' (future_pin t) = -00:06:30 v #7908 > > !\($'"futures::future::FutureExt::fuse(!x)"') -00:06:30 v #7909 > > -00:06:30 v #7910 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:30 v #7911 > > │ ### join_all -00:06:30 v #7912 > > -00:06:30 v #7913 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:30 v #7914 > > nominal join_all t = -00:06:30 v #7915 > > `( -00:06:30 v #7916 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:06:30 v #7917 > > Fable.Core.Emit(\"futures::future::JoinAll<$0>\")>]]\n#endif\ntype -00:06:30 v #7918 > > futures_future_JoinAll<'T> = class end" -00:06:30 v #7919 > > $'' : $'futures_future_JoinAll<`t>' -00:06:30 v #7920 > > ) -00:06:30 v #7921 > > -00:06:30 v #7922 > > inl join_all forall t. (x : am'.vec (future_pin t)) : join_all (future_pin t) = -00:06:30 v #7923 > > inl x = join x -00:06:30 v #7924 > > !\($'"futures::future::join_all(!x)"') -00:06:30 v #7925 > > -00:06:30 v #7926 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:30 v #7927 > > │ ### join_all_send -00:06:30 v #7928 > > -00:06:30 v #7929 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:30 v #7930 > > inl join_all_send forall t. (x : am'.vec (future_pin_send t)) : join_all -00:06:30 v #7931 > > (future_pin_send t) = -00:06:30 v #7932 > > inl x = join x -00:06:30 v #7933 > > !\($'"futures::future::join_all(!x)"') -00:06:31 v #7934 > > -00:06:31 v #7935 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:31 v #7936 > > │ ### join_handle' -00:06:31 v #7937 > > -00:06:31 v #7938 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:31 v #7939 > > type join_handle' t = join_handle_tokio t -00:06:31 v #7940 > > -00:06:31 v #7941 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:31 v #7942 > > │ ### await_handle -00:06:31 v #7943 > > -00:06:31 v #7944 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:31 v #7945 > > inl await_handle forall t. (x : join_handle' t) : t = -00:06:31 v #7946 > > !\($'"!x.await"') -00:06:32 v #7947 > > -00:06:32 v #7948 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:32 v #7949 > > │ ### await_all -00:06:32 v #7950 > > -00:06:32 v #7951 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:32 v #7952 > > inl await_all forall t. (x : join_all (future_pin t)) : am'.vec t = -00:06:32 v #7953 > > !\($'"!x.await"') -00:06:32 v #7954 > > -00:06:32 v #7955 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:32 v #7956 > > │ ### await_all_send -00:06:32 v #7957 > > -00:06:32 v #7958 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:32 v #7959 > > inl await_all_send forall t. (x : join_all (future_pin_send t)) : am'.vec t = -00:06:32 v #7960 > > !\($'"!x.await"') -00:06:33 v #7961 > > -00:06:33 v #7962 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:33 v #7963 > > │ ### try_await_all -00:06:33 v #7964 > > -00:06:33 v #7965 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:33 v #7966 > > inl try_await_all forall t. (x : try_join_all (future_pin (resultm.result' t -00:06:33 v #7967 > > sm'.std_string))) : resultm.result' (am'.vec t) sm'.std_string = -00:06:33 v #7968 > > !\($'"!x.await"') -00:06:33 v #7969 > > -00:06:33 v #7970 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:33 v #7971 > > │ ### try_await_all_send -00:06:33 v #7972 > > -00:06:33 v #7973 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:33 v #7974 > > inl try_await_all_send forall t. (x : try_join_all (future_pin_send -00:06:33 v #7975 > > (resultm.result' t sm'.std_string))) : resultm.result' (am'.vec t) -00:06:33 v #7976 > > sm'.std_string = -00:06:33 v #7977 > > !\($'"!x.await"') -00:06:34 v #7978 > > -00:06:34 v #7979 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:34 v #7980 > > │ ### await -00:06:34 v #7981 > > -00:06:34 v #7982 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:34 v #7983 > > inl await forall t. (x : future_pin t) : t = -00:06:34 v #7984 > > !\($'"!x.await"') -00:06:34 v #7985 > > -00:06:34 v #7986 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:34 v #7987 > > │ ### await -00:06:34 v #7988 > > -00:06:34 v #7989 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:34 v #7990 > > inl await_send forall t. (x : future_pin_send t) : t = -00:06:34 v #7991 > > !\($'"!x.await"') -00:06:34 v #7992 > > -00:06:34 v #7993 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:34 v #7994 > > │ ### into_iter -00:06:34 v #7995 > > -00:06:34 v #7996 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:34 v #7997 > > nominal into_iter t = -00:06:34 v #7998 > > `( -00:06:34 v #7999 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:06:34 v #8000 > > Fable.Core.Emit(\"rayon::vec::IntoIter<$0>\")>]]\n#endif\ntype -00:06:34 v #8001 > > rayon_vec_IntoIter<'T> = class end" -00:06:34 v #8002 > > $'' : $'rayon_vec_IntoIter<`t>' -00:06:34 v #8003 > > ) -00:06:35 v #8004 > > -00:06:35 v #8005 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:35 v #8006 > > │ ### into_par_iter -00:06:35 v #8007 > > -00:06:35 v #8008 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:35 v #8009 > > inl into_par_iter forall t. (x : am'.vec t) : into_iter t = -00:06:35 v #8010 > > !\\(x, $'"rayon::iter::IntoParallelIterator::into_par_iter($0)"') -00:06:35 v #8011 > > -00:06:35 v #8012 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:35 v #8013 > > │ ### par_iter -00:06:35 v #8014 > > -00:06:35 v #8015 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:35 v #8016 > > inl par_iter forall t. (x : am'.vec t) : into_iter t = -00:06:35 v #8017 > > !\($'"rayon::iter::IntoParallelIterator::par_iter(!x)"') -00:06:36 v #8018 > > -00:06:36 v #8019 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:36 v #8020 > > │ ### iter_map -00:06:36 v #8021 > > -00:06:36 v #8022 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:36 v #8023 > > nominal iter_map t u = -00:06:36 v #8024 > > `( -00:06:36 v #8025 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:06:36 v #8026 > > Fable.Core.Emit(\"rayon::iter::Map<$0, _>\")>]]\n#endif\ntype rayon_iter_Map<'T> -00:06:36 v #8027 > > = class end" -00:06:36 v #8028 > > $'' : $'rayon_iter_Map<`t>' -00:06:36 v #8029 > > ) -00:06:36 v #8030 > > -00:06:36 v #8031 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:36 v #8032 > > │ ### par_map -00:06:36 v #8033 > > -00:06:36 v #8034 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:36 v #8035 > > inl par_map forall t u. (fn : t -> u) (ar : into_iter t) : iter_map (into_iter -00:06:36 v #8036 > > t) u = -00:06:36 v #8037 > > !\\((ar, fn), $'"rayon::iter::ParallelIterator::map($0, |x| $1(x))"') -00:06:37 v #8038 > > -00:06:37 v #8039 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:37 v #8040 > > │ ### par_collect -00:06:37 v #8041 > > -00:06:37 v #8042 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:37 v #8043 > > inl par_collect forall t u. (iter : iter_map (into_iter t) u) : am'.vec u = -00:06:37 v #8044 > > !\\(iter, $'"rayon::iter::ParallelIterator::collect($0)"') -00:06:37 v #8045 > > -00:06:37 v #8046 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:37 v #8047 > > │ ### try_join_all_iter -00:06:37 v #8048 > > -00:06:37 v #8049 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:37 v #8050 > > inl try_join_all_iter forall t. (x : am'.vec (future_pin_send (resultm.result' t -00:06:37 v #8051 > > sm'.std_string))) : try_join_all (future_pin_send (resultm.result' t -00:06:37 v #8052 > > sm'.std_string)) = -00:06:37 v #8053 > > inl x = join x -00:06:37 v #8054 > > !\($'"futures::future::try_join_all(!x)"') -00:06:37 v #8055 > > -00:06:37 v #8056 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:37 v #8057 > > │ ### future_init -00:06:37 v #8058 > > -00:06:37 v #8059 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:37 v #8060 > > inl future_init forall t. (move : bool) (x : () -> t) : infer' t = -00:06:37 v #8061 > > (!\($'"true; let __future_init = Box::pin(/*"') : bool) |> ignore -00:06:37 v #8062 > > if move -00:06:37 v #8063 > > then (!\($'"*/ async move { /*"') : bool) |> ignore -00:06:37 v #8064 > > else (!\($'"*/ async { /*"') : bool) |> ignore -00:06:37 v #8065 > > (!\($'"*/ //"') : bool) |> ignore -00:06:37 v #8066 > > -00:06:37 v #8067 > > inl x' = x () -00:06:37 v #8068 > > // inl x' = join x' -00:06:37 v #8069 > > -00:06:37 v #8070 > > inl depth = 1, 0 -00:06:37 v #8071 > > -00:06:37 v #8072 > > x' |> rust.fix_closure depth -00:06:37 v #8073 > > -00:06:37 v #8074 > > !\($'"__future_init"') -00:06:38 v #8075 > > -00:06:38 v #8076 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:38 v #8077 > > │ ### new_future -00:06:38 v #8078 > > -00:06:38 v #8079 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:38 v #8080 > > inl new_future forall t. (x : () -> t) : future_pin t = -00:06:38 v #8081 > > inl result = future_init false x -00:06:38 v #8082 > > !\($'"!result"') -00:06:38 v #8083 > > -00:06:38 v #8084 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:38 v #8085 > > │ ### new_future_move -00:06:38 v #8086 > > -00:06:38 v #8087 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:38 v #8088 > > inl new_future_move forall t. (x : () -> t) : future_pin t = -00:06:38 v #8089 > > inl result = future_init true x -00:06:38 v #8090 > > !\($'"!result"') -00:06:39 v #8091 > > -00:06:39 v #8092 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:39 v #8093 > > │ ### new_future_send -00:06:39 v #8094 > > -00:06:39 v #8095 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:39 v #8096 > > inl new_future_send forall t. (x : () -> t) : future_pin_send t = -00:06:39 v #8097 > > inl result = future_init false x -00:06:39 v #8098 > > !\($'"!result"') -00:06:39 v #8099 > > -00:06:39 v #8100 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:39 v #8101 > > │ ### new_future_move_send -00:06:39 v #8102 > > -00:06:39 v #8103 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:39 v #8104 > > inl new_future_move_send forall t. (x : () -> t) : future_pin_send t = -00:06:39 v #8105 > > inl result = future_init true x -00:06:39 v #8106 > > !\($'"!result"') -00:06:40 v #8107 > > -00:06:40 v #8108 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:40 v #8109 > > │ ## fsharp -00:06:40 v #8110 > > -00:06:40 v #8111 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:40 v #8112 > > │ ### async -00:06:40 v #8113 > > -00:06:40 v #8114 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:40 v #8115 > > nominal async_python t = -00:06:40 v #8116 > > `( -00:06:40 v #8117 > > backend_switch `(()) `({}) { -00:06:40 v #8118 > > Python = (fun () => global "import asyncio") : () -> () -00:06:40 v #8119 > > } -00:06:40 v #8120 > > $'' : $'any' -00:06:40 v #8121 > > ) -00:06:40 v #8122 > > type async_switch t = -00:06:40 v #8123 > > { -00:06:40 v #8124 > > Fsharp : $'Async<`t>' -00:06:40 v #8125 > > Python : async_python t -00:06:40 v #8126 > > } -00:06:40 v #8127 > > nominal async t = $'backend_switch `(async_switch t)' -00:06:40 v #8128 > > -00:06:40 v #8129 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:40 v #8130 > > │ ### task -00:06:40 v #8131 > > -00:06:40 v #8132 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:40 v #8133 > > nominal task t = -00:06:40 v #8134 > > `( -00:06:40 v #8135 > > typecase t with -00:06:40 v #8136 > > | () => $'' : $'System.Threading.Tasks.Task' -00:06:40 v #8137 > > | _ => $'' : $'System.Threading.Tasks.Task<`t>' -00:06:40 v #8138 > > ) -00:06:40 v #8139 > > -00:06:40 v #8140 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:40 v #8141 > > │ ### new_async_unit -00:06:40 v #8142 > > -00:06:40 v #8143 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:40 v #8144 > > inl new_async_unit forall t. (fn : () -> ()) : async t = -00:06:40 v #8145 > > join -00:06:40 v #8146 > > run_target_args' fn function -00:06:40 v #8147 > > | Fsharp _ -00:06:40 v #8148 > > // | Rust _ -00:06:40 v #8149 > > | TypeScript _ -00:06:40 v #8150 > > | Python _ => fun fn => -00:06:40 v #8151 > > fun () => -00:06:40 v #8152 > > $'async {' -00:06:40 v #8153 > > fun () => -00:06:40 v #8154 > > fn () -00:06:40 v #8155 > > real -00:06:40 v #8156 > > typecase t with -00:06:40 v #8157 > > | () => $'()' : () -00:06:40 v #8158 > > | _ => () -00:06:40 v #8159 > > |> indent -00:06:40 v #8160 > > $'}' : () -00:06:40 v #8161 > > |> base_let' -00:06:40 v #8162 > > | Cuda _ => fun fn => -00:06:40 v #8163 > > $'async def __new_async_unit__():' -00:06:40 v #8164 > > fun () => -00:06:40 v #8165 > > fn () -00:06:40 v #8166 > > $'""" new_async_unit' -00:06:40 v #8167 > > |> indent -00:06:40 v #8168 > > $'new_async_unit """' -00:06:40 v #8169 > > $'__new_async_unit__' -00:06:40 v #8170 > > | _ => fun _ => null () -00:06:41 v #8171 > > -00:06:41 v #8172 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:41 v #8173 > > │ ### new_async -00:06:41 v #8174 > > -00:06:41 v #8175 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:41 v #8176 > > inl new_async forall t. (fn : () -> t) : async t = -00:06:41 v #8177 > > new_async_unit (fn >> ignore) -00:06:41 v #8178 > > -00:06:41 v #8179 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:41 v #8180 > > │ ### new_task -00:06:41 v #8181 > > -00:06:41 v #8182 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:41 v #8183 > > inl new_task forall t. (fn : () -> t) : task t = -00:06:41 v #8184 > > run_target_args' fn function -00:06:41 v #8185 > > | Fsharp _ => fun fn => -00:06:41 v #8186 > > inl result : optionm'.option' (task t) = optionm'.none' () -00:06:41 v #8187 > > $'let mutable _new_task_!result = !result ' -00:06:41 v #8188 > > $'task {' -00:06:41 v #8189 > > fn () |> ignore -00:06:41 v #8190 > > $'}' -00:06:41 v #8191 > > $'|> fun x -> _new_task_!result <- Some x' -00:06:41 v #8192 > > $'match _new_task_!result with Some x -> x | None -> failwith -00:06:41 v #8193 > > "async.new_task / _new_task_!result=None"' -00:06:41 v #8194 > > | _ => fun _ => null () -00:06:42 v #8195 > > -00:06:42 v #8196 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:42 v #8197 > > │ ### await_task -00:06:42 v #8198 > > -00:06:42 v #8199 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:42 v #8200 > > inl await_task forall t. (a : task t) : async t = -00:06:42 v #8201 > > run_target function -00:06:42 v #8202 > > | Fsharp _ -00:06:42 v #8203 > > // | Rust _ -00:06:42 v #8204 > > | TypeScript _ -00:06:42 v #8205 > > | Python _ => fun () => -00:06:42 v #8206 > > a |> $'Async.AwaitTask' -00:06:42 v #8207 > > | _ => fun () => null () -00:06:42 v #8208 > > -00:06:42 v #8209 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:42 v #8210 > > │ ### ignore -00:06:42 v #8211 > > -00:06:42 v #8212 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:42 v #8213 > > inl ignore forall t. (a : async t) : async () = -00:06:42 v #8214 > > run_target function -00:06:42 v #8215 > > | Fsharp _ -00:06:42 v #8216 > > // | Rust _ -00:06:42 v #8217 > > | TypeScript _ -00:06:42 v #8218 > > | Python _ => fun () => -00:06:42 v #8219 > > a |> $'Async.Ignore' -00:06:42 v #8220 > > | _ => fun () => null () -00:06:42 v #8221 > > -00:06:42 v #8222 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:42 v #8223 > > │ ### run_synchronously -00:06:42 v #8224 > > -00:06:42 v #8225 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:42 v #8226 > > inl run_synchronously forall t. (a : async t) : t = -00:06:42 v #8227 > > run_target function -00:06:42 v #8228 > > | Fsharp _ -00:06:42 v #8229 > > // | Rust _ -00:06:42 v #8230 > > | Python _ => fun () => -00:06:42 v #8231 > > a |> $'Async.RunSynchronously' -00:06:42 v #8232 > > | Cuda (Native) => fun () => -00:06:42 v #8233 > > $'asyncio.run(!a())' -00:06:42 v #8234 > > | _ => fun () => null () -00:06:43 v #8235 > > -00:06:43 v #8236 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:43 v #8237 > > │ ### start -00:06:43 v #8238 > > -00:06:43 v #8239 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:43 v #8240 > > inl start (a : async ()) : () = -00:06:43 v #8241 > > run_target function -00:06:43 v #8242 > > | Fsharp _ -00:06:43 v #8243 > > | Rust _ -00:06:43 v #8244 > > | TypeScript _ -00:06:43 v #8245 > > | Python _ => fun () => -00:06:43 v #8246 > > a |> $'Async.Start' -00:06:43 v #8247 > > | _ => fun () => null () -00:06:43 v #8248 > > -00:06:43 v #8249 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:43 v #8250 > > │ ### start_child -00:06:43 v #8251 > > -00:06:43 v #8252 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:43 v #8253 > > inl start_child forall t. (a : async t) : async (async t) = -00:06:43 v #8254 > > run_target function -00:06:43 v #8255 > > | Fsharp _ -00:06:43 v #8256 > > | TypeScript _ -00:06:43 v #8257 > > | Python _ => fun () => -00:06:43 v #8258 > > a |> $'Async.StartChild' -00:06:43 v #8259 > > | _ => fun () => null () -00:06:44 v #8260 > > -00:06:44 v #8261 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:44 v #8262 > > │ ### start_child_timeout -00:06:44 v #8263 > > -00:06:44 v #8264 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:44 v #8265 > > inl start_child_timeout forall t. (timeout : i32) (a : async t) : async (async -00:06:44 v #8266 > > t) = -00:06:44 v #8267 > > run_target function -00:06:44 v #8268 > > | Fsharp _ -00:06:44 v #8269 > > | TypeScript _ -00:06:44 v #8270 > > | Python _ => fun () => -00:06:44 v #8271 > > $'Async.StartChild (!a, !timeout)' -00:06:44 v #8272 > > | _ => fun () => null () -00:06:44 v #8273 > > -00:06:44 v #8274 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:44 v #8275 > > │ ### start_immediate -00:06:44 v #8276 > > -00:06:44 v #8277 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:44 v #8278 > > inl start_immediate forall t. (a : async t) : () = -00:06:44 v #8279 > > run_target function -00:06:44 v #8280 > > | Fsharp _ -00:06:44 v #8281 > > // | Rust _ -00:06:44 v #8282 > > | TypeScript _ -00:06:44 v #8283 > > | Python _ => fun () => -00:06:44 v #8284 > > a |> $'Async.StartImmediate' -00:06:44 v #8285 > > | _ => fun () => null () -00:06:45 v #8286 > > -00:06:45 v #8287 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:45 v #8288 > > │ ### start_with_continuations -00:06:45 v #8289 > > -00:06:45 v #8290 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:45 v #8291 > > inl start_with_continuations forall t. (a : async t) : () = -00:06:45 v #8292 > > run_target_args' a function -00:06:45 v #8293 > > | Fsharp _ -00:06:45 v #8294 > > | Rust _ -00:06:45 v #8295 > > | TypeScript _ -00:06:45 v #8296 > > | Python _ => fun a => -00:06:45 v #8297 > > $'Async.StartWithContinuations (!a, ignore, ignore, ignore)' -00:06:45 v #8298 > > | _ => fun _ => null () -00:06:45 v #8299 > > -00:06:45 v #8300 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:45 v #8301 > > │ ### task_canceled_exception -00:06:45 v #8302 > > -00:06:45 v #8303 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:45 v #8304 > > nominal task_canceled_exception = -00:06:45 v #8305 > > $'System.Threading.Tasks.TaskCanceledException' -00:06:45 v #8306 > > -00:06:45 v #8307 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:45 v #8308 > > │ ### sleep -00:06:45 v #8309 > > -00:06:45 v #8310 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:45 v #8311 > > inl sleep (ms : i32) : async () = -00:06:45 v #8312 > > run_target function -00:06:45 v #8313 > > | Fsharp _ -00:06:45 v #8314 > > | Rust _ -00:06:45 v #8315 > > | TypeScript _ -00:06:45 v #8316 > > | Python _ => fun () => -00:06:45 v #8317 > > ms |> $'Async.Sleep' -00:06:45 v #8318 > > | Cuda _ => fun () => -00:06:45 v #8319 > > $'asyncio.sleep(!ms / 1000)' -00:06:45 v #8320 > > | _ => fun () => null () -00:06:46 v #8321 > > -00:06:46 v #8322 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:46 v #8323 > > │ ### do -00:06:46 v #8324 > > -00:06:46 v #8325 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:46 v #8326 > > inl do (a : async ()) : () = -00:06:46 v #8327 > > backend_switch { -00:06:46 v #8328 > > Fsharp = fun () => $'do\! !a ' : () -00:06:46 v #8329 > > Python = fun () => $'await !a ' : () -00:06:46 v #8330 > > } -00:06:46 v #8331 > > -00:06:46 v #8332 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:46 v #8333 > > │ ### let' -00:06:46 v #8334 > > -00:06:46 v #8335 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:46 v #8336 > > inl let' forall t. (a : async t) : t = -00:06:46 v #8337 > > $'let\! !a = !a ' -00:06:46 v #8338 > > $'!a ' -00:06:47 v #8339 > > -00:06:47 v #8340 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:47 v #8341 > > │ ### return_await -00:06:47 v #8342 > > -00:06:47 v #8343 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:47 v #8344 > > inl return_await forall t. (a : async t) : () = -00:06:47 v #8345 > > backend_switch { -00:06:47 v #8346 > > Fsharp = fun () => $'return\! !a ' : () -00:06:47 v #8347 > > Python = fun () => $'asyncio.run(!a())' : () -00:06:47 v #8348 > > } -00:06:47 v #8349 > > -00:06:47 v #8350 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:47 v #8351 > > │ ### return_await' -00:06:47 v #8352 > > -00:06:47 v #8353 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:47 v #8354 > > inl return_await' forall t. (a : async t) : t = -00:06:47 v #8355 > > backend_switch { -00:06:47 v #8356 > > Fsharp = fun () => $'return\! !a ' : () -00:06:47 v #8357 > > Python = fun () => $'await !a()' : () -00:06:47 v #8358 > > } -00:06:48 v #8359 > > -00:06:48 v #8360 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:48 v #8361 > > │ ### map -00:06:48 v #8362 > > -00:06:48 v #8363 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:48 v #8364 > > inl map forall t u. (fn : t -> u) (a : async t) : async u = -00:06:48 v #8365 > > fun () => -00:06:48 v #8366 > > inl x = a |> let' -00:06:48 v #8367 > > fn x |> return -00:06:48 v #8368 > > |> new_async_unit -00:06:48 v #8369 > > -00:06:48 v #8370 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:48 v #8371 > > │ ### catch' -00:06:48 v #8372 > > -00:06:48 v #8373 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:48 v #8374 > > inl catch' forall t e. (a : async t) : async (choice2' t e) = -00:06:48 v #8375 > > run_target function -00:06:48 v #8376 > > | Fsharp _ -00:06:48 v #8377 > > // | Rust _ -00:06:48 v #8378 > > | TypeScript _ -00:06:48 v #8379 > > | Python _ => fun () => -00:06:48 v #8380 > > a |> $'Async.Catch' -00:06:48 v #8381 > > | _ => fun () => null () -00:06:49 v #8382 > > -00:06:49 v #8383 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:49 v #8384 > > │ ### catch -00:06:49 v #8385 > > -00:06:49 v #8386 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:49 v #8387 > > inl catch forall t e. (a : async t) : async (result t e) = -00:06:49 v #8388 > > a -00:06:49 v #8389 > > |> catch' -00:06:49 v #8390 > > |> map choice2_unbox -00:06:49 v #8391 > > |> map function -00:06:49 v #8392 > > | C1of2 result => Ok result -00:06:49 v #8393 > > | C2of2 ex => Error ex -00:06:49 v #8394 > > -00:06:49 v #8395 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:49 v #8396 > > │ ### run_with_timeout_async -00:06:49 v #8397 > > -00:06:49 v #8398 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:49 v #8399 > > let run_with_timeout_async forall t. (timeout : i32) (fn : async t) : async -00:06:49 v #8400 > > (option t) = -00:06:49 v #8401 > > run_target_args (fun () => timeout, fn) function -00:06:49 v #8402 > > | Fsharp _ -00:06:49 v #8403 > > | Rust _ -00:06:49 v #8404 > > | TypeScript _ -00:06:49 v #8405 > > | Python _ => fun timeout, fn => -00:06:49 v #8406 > > fun () => -00:06:49 v #8407 > > fn -00:06:49 v #8408 > > |> start_child_timeout timeout -00:06:49 v #8409 > > |> let' -00:06:49 v #8410 > > |> catch -00:06:49 v #8411 > > |> map function -00:06:49 v #8412 > > | Ok result => Some result -00:06:49 v #8413 > > | Error ex when ex |> sm'.format_debug |> sm'.contains -00:06:49 v #8414 > > "System.TimeoutException" => -00:06:49 v #8415 > > trace Verbose -00:06:49 v #8416 > > fun () => "async.run_with_timeout_async" -00:06:49 v #8417 > > fun () => { timeout } -00:06:49 v #8418 > > None -00:06:49 v #8419 > > | Error (ex : exn) => -00:06:49 v #8420 > > trace Critical -00:06:49 v #8421 > > fun () => "async.run_with_timeout_async**" -00:06:49 v #8422 > > fun () => { timeout ex = ex |> sm'.format_exception -00:06:49 v #8423 > > } -00:06:49 v #8424 > > None -00:06:49 v #8425 > > |> return_await -00:06:49 v #8426 > > |> new_async_unit -00:06:49 v #8427 > > | _ => fun _ => null () -00:06:49 v #8428 > > -00:06:49 v #8429 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:49 v #8430 > > │ ### run_with_timeout -00:06:49 v #8431 > > -00:06:49 v #8432 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:49 v #8433 > > inl run_with_timeout timeout fn = -00:06:49 v #8434 > > fn -00:06:49 v #8435 > > |> run_with_timeout_async timeout -00:06:49 v #8436 > > |> run_synchronously -00:06:50 v #8437 > > -00:06:50 v #8438 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:50 v #8439 > > │ ### cancellation_token -00:06:50 v #8440 > > -00:06:50 v #8441 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:50 v #8442 > > inl cancellation_token () : async threading.cancellation_token = -00:06:50 v #8443 > > $'Async.CancellationToken' -00:06:50 v #8444 > > -00:06:50 v #8445 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:50 v #8446 > > inl default_cancellation_token () : threading.cancellation_token = -00:06:50 v #8447 > > $'Async.DefaultCancellationToken' -00:06:51 v #8448 > > -00:06:51 v #8449 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:51 v #8450 > > │ ### merge_cancellation_token_with_default_async -00:06:51 v #8451 > > -00:06:51 v #8452 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:51 v #8453 > > inl merge_cancellation_token_with_default_async -00:06:51 v #8454 > > (token : threading.cancellation_token) -00:06:51 v #8455 > > : async threading.cancellation_token -00:06:51 v #8456 > > = -00:06:51 v #8457 > > fun () => -00:06:51 v #8458 > > run_target function -00:06:51 v #8459 > > | Fsharp (Native) => fun () => -00:06:51 v #8460 > > inl ct = cancellation_token () |> let' -00:06:51 v #8461 > > inl dct = default_cancellation_token () -00:06:51 v #8462 > > inl cts = threading.create_linked_token_source ;[[ ct; dct; -00:06:51 v #8463 > > token ]] -00:06:51 v #8464 > > cts |> threading.cancellation_source_token |> return -00:06:51 v #8465 > > | _ => fun () => (null () : threading.cancellation_token) |> return -00:06:51 v #8466 > > |> new_async_unit -00:06:51 v #8467 > > -00:06:51 v #8468 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:51 v #8469 > > │ ### with_trace_level -00:06:51 v #8470 > > -00:06:51 v #8471 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:51 v #8472 > > inl with_trace_level forall t. level fn : _ t = new_async fun () => -00:06:51 v #8473 > > inl trace_state = get_trace_state_or_init None -00:06:51 v #8474 > > inl old_trace_level = *trace_state.level -00:06:51 v #8475 > > inl trace_level = trace_state.level -00:06:51 v #8476 > > try_finally -00:06:51 v #8477 > > fun () => -00:06:51 v #8478 > > trace_level <- level -00:06:51 v #8479 > > fn |> return_await -00:06:51 v #8480 > > fun () => -00:06:51 v #8481 > > trace_level <- old_trace_level -00:06:52 v #8482 > > -00:06:52 v #8483 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:52 v #8484 > > │ ### value_task -00:06:52 v #8485 > > -00:06:52 v #8486 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:52 v #8487 > > nominal value_task = $'System.Threading.Tasks.ValueTask' -00:06:52 v #8488 > > -00:06:52 v #8489 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:52 v #8490 > > │ ### value_task_as_task -00:06:52 v #8491 > > -00:06:52 v #8492 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:52 v #8493 > > inl value_task_as_task (task : value_task) : task () = -00:06:52 v #8494 > > run_target function -00:06:52 v #8495 > > | Fsharp (Native) => fun () => $'!task.AsTask' () -00:06:52 v #8496 > > | _ => fun () => null () -00:06:52 v #8497 > > -00:06:52 v #8498 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:52 v #8499 > > │ ### await_value_task_unit -00:06:52 v #8500 > > -00:06:52 v #8501 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:52 v #8502 > > inl await_value_task_unit (task : value_task) : async () = -00:06:52 v #8503 > > task |> value_task_as_task |> await_task -00:06:53 v #8504 > > -00:06:53 v #8505 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:53 v #8506 > > │ ## main -00:06:53 v #8507 > > -00:06:53 v #8508 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:06:53 v #8509 > > inl main () = -00:06:53 v #8510 > > $'let merge_cancellation_token_with_default_async x = -00:06:53 v #8511 > > !merge_cancellation_token_with_default_async x' : () -00:06:54 v #8512 > 00:00:39 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 31307 } -00:06:54 v #8513 > 00:00:39 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/lib/spiral/async.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/lib/spiral/async.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:06:55 v #8514 > 00:00:40 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/lib/spiral/async.dib.ipynb to html -00:06:55 v #8515 > 00:00:40 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. -00:06:55 v #8516 > 00:00:40 v #7 ! validate(nb) -00:06:56 v #8517 > 00:00:41 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 -00:06:56 v #8518 > 00:00:41 v #9 ! return _pygments_highlight( -00:06:57 v #8519 > 00:00:41 v #10 ! [NbConvertApp] Writing 422228 bytes to c:\home\git\polyglot\lib\spiral\async.dib.html -00:06:57 v #8520 > 00:00:42 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 852 } -00:06:57 v #8521 > 00:00:42 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 852 } -00:06:57 v #8522 > 00:00:42 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/async.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/async.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:06:57 v #8523 > 00:00:42 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } -00:06:57 v #8524 > 00:00:42 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } -00:06:57 v #8525 > 00:00:42 d #16 spiral.run / dib / { exit_code = 0; result_length = 32218 } -00:06:57 d #8526 runtime.execute_with_options_async / { exit_code = 0; output_length = 36380 } -00:06:57 d #11 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path async.dib --retries 3 -00:06:57 d #8527 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path runtime.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path runtime.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } -00:06:57 v #8528 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "runtime.dib", "--retries", "3"])) } -00:06:57 v #8529 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/lib/spiral/runtime.dib", "--output-path", "c:/home/git/polyglot/lib/spiral/runtime.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/lib/spiral/runtime.dib" --output-path "c:/home/git/polyglot/lib/spiral/runtime.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } -00:06:59 v #8530 > > -00:06:59 v #8531 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:06:59 v #8532 > > │ # runtime -00:07:02 v #8533 > > -00:07:02 v #8534 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:02 v #8535 > > open rust -00:07:02 v #8536 > > open rust_operators -00:07:02 v #8537 > > open sm'_operators -00:07:03 v #8538 > > -00:07:03 v #8539 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:03 v #8540 > > //// test -00:07:03 v #8541 > > -00:07:03 v #8542 > > open testing -00:07:03 v #8543 > > open file_system_operators -00:07:04 v #8544 > > -00:07:04 v #8545 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:04 v #8546 > > │ ## runtime -00:07:04 v #8547 > > -00:07:04 v #8548 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:04 v #8549 > > │ ### split_args -00:07:04 v #8550 > > -00:07:04 v #8551 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:04 v #8552 > > let split_args (args : string) : result (array_base string) string = -00:07:04 v #8553 > > open parsing -00:07:04 v #8554 > > inl esc = [[ '\\'; '`' ]] -00:07:04 v #8555 > > inl quotes = [[ '"' ]] -00:07:04 v #8556 > > inl special = esc ++ quotes -00:07:04 v #8557 > > inl p_esc_char c = -00:07:04 v #8558 > > p_char c >>. any_char () |>> fun c' => $c +. $c' -00:07:04 v #8559 > > inl p_word = special |> none_of |>> sm'.obj_to_string -00:07:04 v #8560 > > inl p_plain = special ++ [[ ' ' ]] |> none_of |> many1_chars -00:07:04 v #8561 > > inl p_text = p_word |> many1_strings -00:07:04 v #8562 > > inl p_esc = esc |> listm.map p_esc_char |> choice -00:07:04 v #8563 > > inl p_quoted = (p_word <|> p_esc) |> many |>> sm'.concat_list "" -00:07:04 v #8564 > > inl p_quoted_all = p_quoted |> between (p_char '"') (p_char '"') -00:07:04 v #8565 > > inl p_esc_root = p_esc >>% "" >>. (p_word |> many) |>> sm'.concat_list "" -00:07:04 v #8566 > > inl p_content = p_plain <|> p_quoted_all <|> p_esc_root -00:07:04 v #8567 > > inl p_args = spaces1 () |> sep_by p_content -00:07:04 v #8568 > > args -00:07:04 v #8569 > > |> parse p_args -00:07:04 v #8570 > > |> resultm.map (fst >> listm'.box >> listm'.to_array') -00:07:04 v #8571 > > -00:07:04 v #8572 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:04 v #8573 > > //// test -00:07:04 v #8574 > > ///! fsharp -00:07:04 v #8575 > > ///! cuda -00:07:04 v #8576 > > ///! rust -00:07:04 v #8577 > > ///! typescript -00:07:04 v #8578 > > ///! python -00:07:04 v #8579 > > -00:07:04 v #8580 > > [[ -00:07:04 v #8581 > > "a b c", -00:07:04 v #8582 > > ;[[ "a"; "b"; "c" ]] -00:07:04 v #8583 > > -00:07:04 v #8584 > > "e f \"g h\" i", -00:07:04 v #8585 > > ;[[ "e"; "f"; "g h"; "i" ]] -00:07:04 v #8586 > > -00:07:04 v #8587 > > "\"j k\" \"l\" \"m\"", -00:07:04 v #8588 > > ;[[ "j k"; "l"; "m" ]] -00:07:04 v #8589 > > -00:07:04 v #8590 > > "s -t \"u \`\"v\`\" w\"", -00:07:04 v #8591 > > ;[[ "s"; "-t"; "u \`\"v\`\" w" ]] -00:07:04 v #8592 > > -00:07:04 v #8593 > > "n -o \"p \\\"q\\\" r\"", -00:07:04 v #8594 > > ;[[ "n"; "-o"; "p \\\"q\\\" r" ]] -00:07:04 v #8595 > > -00:07:04 v #8596 > > "r -s \"t \\\"u\\\"\"", -00:07:04 v #8597 > > ;[[ "r"; "-s"; "t \\\"u\\\"" ]] -00:07:04 v #8598 > > -00:07:04 v #8599 > > $'"x -y \\\"$z -a \'(b=\\\\\\"c-id=)[[a-fA-F0-9]]{8}\', { \`$_[[1]] + \`$d++ -00:07:04 v #8600 > > }\\\""', -00:07:04 v #8601 > > ;[[ "x"; "-y"; "$z -a '(b=\\\"c-id=)[[a-fA-F0-9]]{8}', { `$_[[1]] + `$d++ }" -00:07:04 v #8602 > > ]] -00:07:04 v #8603 > > -00:07:04 v #8604 > > "e -f \"$g -h '(i=`\"j-id=)[[a-fA-F0-9]]{8}', { `$_[[1]] + `$k++ }\"", -00:07:04 v #8605 > > ;[[ "e"; "-f"; "$g -h '(i=`\"j-id=)[[a-fA-F0-9]]{8}', { `$_[[1]] + `$k++ }" -00:07:04 v #8606 > > ]] -00:07:04 v #8607 > > -00:07:04 v #8608 > > $'"--l \\\\\\"\'\'\' m \'\'\'\\\\\\" "', -00:07:04 v #8609 > > ;[[ "--l"; "''' m '''" ]] -00:07:04 v #8610 > > -00:07:04 v #8611 > > $'"n --o --p q --r \\\"s:/t u/v.w\\\" --x \\\"y:/z.a\\\" --b c.d -00:07:04 v #8612 > > \\\"\\\\e{f-g}\\\" h.i \\\"j (k)\\\""', -00:07:04 v #8613 > > ;[[ "n"; "--o"; "--p"; "q"; "--r"; "s:/t u/v.w"; "--x"; "y:/z.a"; "--b"; -00:07:04 v #8614 > > "c.d"; "\\e{f-g}"; "h.i"; "j (k)" ]] -00:07:04 v #8615 > > -00:07:04 v #8616 > > $'"l \\\"m n:\\\\o.p\\\""', -00:07:04 v #8617 > > ;[[ "l"; "m n:\\o.p" ]] -00:07:04 v #8618 > > ]] -00:07:04 v #8619 > > |> _assert_fn split_args -00:07:12 v #8620 > > -00:07:12 v #8621 > > ── [ 7.77s - return value ] ──────────────────────────────────────────────────── -00:07:12 v #8622 > > │ -00:07:12 v #8623 > > │ .py output (Cuda): -00:07:12 v #8624 > > │ -00:07:12 v #8625 > > │ 00:00:00 v #1 _assert_fn / { input = a b c } -00:07:12 v #8626 > > │ __assert_eq' / actual: ['a' 'b' 'c'] / expected: ['a' 'b' -00:07:12 v #8627 > > 'c'] -00:07:12 v #8628 > > │ -00:07:12 v #8629 > > │ 00:00:00 v #2 _assert_fn / { input = e f "g h" i } -00:07:12 v #8630 > > │ __assert_eq' / actual: ['e' 'f' 'g h' 'i'] / expected: ['e' -00:07:12 v #8631 > > 'f' 'g h' 'i'] -00:07:12 v #8632 > > │ -00:07:12 v #8633 > > │ 00:00:00 v #3 _assert_fn / { input = "j k" "l" "m" } -00:07:12 v #8634 > > │ __assert_eq' / actual: ['j k' 'l' 'm'] / expected: ['j k' 'l' -00:07:12 v #8635 > > 'm'] -00:07:12 v #8636 > > │ -00:07:12 v #8637 > > │ 00:00:00 v #4 _assert_fn / { input = s -t "u `"v`" w" } -00:07:12 v #8638 > > │ __assert_eq' / actual: ['s' '-t' 'u `"v`" w'] / expected: -00:07:12 v #8639 > > ['s' '-t' 'u `"v`" w'] -00:07:12 v #8640 > > │ -00:07:12 v #8641 > > │ 00:00:00 v #5 _assert_fn / { input = n -o "p \"q\" r" } -00:07:12 v #8642 > > │ __assert_eq' / actual: ['n' '-o' 'p \\"q\\" r'] / expected: -00:07:12 v #8643 > > ['n' '-o' 'p \\"q\\" r'] -00:07:12 v #8644 > > │ -00:07:12 v #8645 > > │ 00:00:00 v #6 _assert_fn / { input = r -s "t \"u\"" } -00:07:12 v #8646 > > │ __assert_eq' / actual: ['r' '-s' 't \\"u\\"'] / expected: -00:07:12 v #8647 > > ['r' '-s' 't \\"u\\"'] -00:07:12 v #8648 > > │ -00:07:12 v #8649 > > │ 00:00:00 v #7 _assert_fn / { input = x -y "$z -a -00:07:12 v #8650 > > '(b=\"c-id=)[a-fA-F0-9]{8}', { `$_[1] + `$d++ }" } -00:07:12 v #8651 > > │ __assert_eq' / actual: ['x' '-y' '$z -a -00:07:12 v #8652 > > \'(b=\\"c-id=)[a-fA-F0-9]{8}\', { `$_[1] + `$d++ }'] / expected: ['x' '-y' '$z -00:07:12 v #8653 > > -a \'(b=\\"c-id=)[a-fA-F0-9]{8}\', { `$_[1] + `$d++ }'] -00:07:12 v #8654 > > │ -00:07:12 v #8655 > > │ 00:00:00 v #8 _assert_fn / { input = e -f "$g -h -00:07:12 v #8656 > > '(i=`"j-id=)[a-fA-F0-9]{8}', { `$_[1] + `$k++ }" } -00:07:12 v #8657 > > │ __assert_eq' / actual: ['e' '-f' '$g -h -00:07:12 v #8658 > > \'(i=`"j-id=)[a-fA-F0-9]{8}\', { `$_[1] + `$k++ }'] / expected: ['e' '-f' '$g -h -00:07:12 v #8659 > > \'(i=`"j-id=)[a-fA-F0-9]{8}\', { `$_[1] + `$k++ }'] -00:07:12 v #8660 > > │ -00:07:12 v #8661 > > │ 00:00:00 v #9 _assert_fn / { input = --l \"''' m '''\" -00:07:12 v #8662 > > } -00:07:12 v #8663 > > │ __assert_eq' / a...t_fn / { input = n -o "p \"q\" r" } -00:07:12 v #8664 > > │ __assert_eq' / actual: ['n', '-o', 'p \\"q\\" r'] / expected: -00:07:12 v #8665 > > ['n', '-o', 'p \\"q\\" r'] -00:07:12 v #8666 > > │ -00:07:12 v #8667 > > │ 00:00:00 v #6 _assert_fn / { input = r -s "t \"u\"" } -00:07:12 v #8668 > > │ __assert_eq' / actual: ['r', '-s', 't \\"u\\"'] / expected: -00:07:12 v #8669 > > ['r', '-s', 't \\"u\\"'] -00:07:12 v #8670 > > │ -00:07:12 v #8671 > > │ 00:00:00 v #7 _assert_fn / { input = x -y "$z -a -00:07:12 v #8672 > > '(b=\"c-id=)[a-fA-F0-9]{8}', { `$_[1] + `$d++ }" } -00:07:12 v #8673 > > │ __assert_eq' / actual: ['x', '-y', '$z -a -00:07:12 v #8674 > > \'(b=\\"c-id=)[a-fA-F0-9]{8}\', { `$_[1] + `$d++ }'] / expected: ['x', '-y', '$z -00:07:12 v #8675 > > -a \'(b=\\"c-id=)[a-fA-F0-9]{8}\', { `$_[1] + `$d++ }'] -00:07:12 v #8676 > > │ -00:07:12 v #8677 > > │ 00:00:00 v #8 _assert_fn / { input = e -f "$g -h -00:07:12 v #8678 > > '(i=`"j-id=)[a-fA-F0-9]{8}', { `$_[1] + `$k++ }" } -00:07:12 v #8679 > > │ __assert_eq' / actual: ['e', '-f', '$g -h -00:07:12 v #8680 > > \'(i=`"j-id=)[a-fA-F0-9]{8}\', { `$_[1] + `$k++ }'] / expected: ['e', '-f', '$g -00:07:12 v #8681 > > -h \'(i=`"j-id=)[a-fA-F0-9]{8}\', { `$_[1] + `$k++ }'] -00:07:12 v #8682 > > │ -00:07:12 v #8683 > > │ 00:00:00 v #9 _assert_fn / { input = --l \"''' m '''\" -00:07:12 v #8684 > > } -00:07:12 v #8685 > > │ __assert_eq' / actual: ['--l', "''' m '''"] / expected: -00:07:12 v #8686 > > ['--l', "''' m '''"] -00:07:12 v #8687 > > │ -00:07:12 v #8688 > > │ 00:00:00 v #10 _assert_fn / { input = n --o --p q --r -00:07:12 v #8689 > > "s:/t u/v.w" --x "y:/z.a" --b c.d "\e{f-g}" h.i "j (k)" } -00:07:12 v #8690 > > │ __assert_eq' / actual: ['n', '--o', '--p', 'q', '--r', 's:/t -00:07:12 v #8691 > > u/v.w', '--x', 'y:/z.a', '--b', 'c.d', '\\e{f-g}', 'h.i', 'j (k)'] / expected: -00:07:12 v #8692 > > ['n', '--o', '--p', 'q', '--r', 's:/t u/v.w', '--x', 'y:/z.a', '--b', 'c.d', -00:07:12 v #8693 > > '\\e{f-g}', 'h.i', 'j (k)'] -00:07:12 v #8694 > > │ -00:07:12 v #8695 > > │ 00:00:00 v #11 _assert_fn / { input = l "m n:\o.p" } -00:07:12 v #8696 > > │ __assert_eq' / actual: ['l', 'm n:\\o.p'] / expected: ['l', -00:07:12 v #8697 > > 'm n:\\o.p'] -00:07:12 v #8698 > > │ -00:07:12 v #8699 > > │ -00:07:12 v #8700 > > │ -00:07:12 v #8701 > > -00:07:12 v #8702 > > ── [ 7.78s - stdout ] ────────────────────────────────────────────────────────── -00:07:12 v #8703 > > │ .fsx output: -00:07:12 v #8704 > > │ -00:07:12 v #8705 > > │ 00:00:00 v #1 _assert_fn / { input = a b c } -00:07:12 v #8706 > > │ __assert_eq' / actual: "[|"a"; "b"; "c"|]" / expected: -00:07:12 v #8707 > > "[|"a"; "b"; "c"|]" -00:07:12 v #8708 > > │ -00:07:12 v #8709 > > │ 00:00:00 v #2 _assert_fn / { input = e f "g h" i } -00:07:12 v #8710 > > │ __assert_eq' / actual: "[|"e"; "f"; "g h"; "i"|]" / expected: -00:07:12 v #8711 > > "[|"e"; "f"; "g h"; "i"|]" -00:07:12 v #8712 > > │ -00:07:12 v #8713 > > │ 00:00:00 v #3 _assert_fn / { input = "j k" "l" "m" } -00:07:12 v #8714 > > │ __assert_eq' / actual: "[|"j k"; "l"; "m"|]" / expected: -00:07:12 v #8715 > > "[|"j k"; "l"; "m"|]" -00:07:12 v #8716 > > │ -00:07:12 v #8717 > > │ 00:00:00 v #4 _assert_fn / { input = s -t "u `"v`" w" } -00:07:12 v #8718 > > │ __assert_eq' / actual: "[|"s"; "-t"; "u `"v`" w"|]" -00:07:12 v #8719 > > expected: "[|"s"; "-t"; "u `"v`" w"|]" -00:07:12 v #8720 > > │ -00:07:12 v #8721 > > │ 00:00:00 v #5 _assert_fn / { input = n -o "p \"q\" r" } -00:07:12 v #8722 > > │ __assert_eq' / actual: "[|"n"; "-o"; "p \"q\" r"|]" -00:07:12 v #8723 > > expected: "[|"n"; "-o"; "p \"q\" r"|]" -00:07:12 v #8724 > > │ -00:07:12 v #8725 > > │ 00:00:00 v #6 _assert_fn / { input = r -s "t \"u\"" } -00:07:12 v #8726 > > │ __assert_eq' / actual: "[|"r"; "-s"; "t \"u\""|]" / expected: -00:07:12 v #8727 > > "[|"r"; "-s"; "t \"u\""|]" -00:07:12 v #8728 > > │ -00:07:12 v #8729 > > │ 00:00:00 v #7 _assert_fn / { input = x -y "$z -a -00:07:12 v #8730 > > '(b=\"c-id=)[a-fA-F0-9]{8}', { `$_[1] + `$d++ }" } -00:07:12 v #8731 > > │ __assert_eq' / actual: "[|"x"; "-y"; "$z -a -00:07:12 v #8732 > > '(b=\"c-id=)[a-fA-F0-9]{8}', { `$_[1] + `$d++ }"|]" / expected: "[|"x"; "-y"; -00:07:12 v #8733 > > "$z -a '(b=\"c-id=)[a-fA-F0-9]{8}', { `$_[1] + `$d++ }"|]" -00:07:12 v #8734 > > │ -00:07:12 v #8735 > > │ 00:00:00 v #8 _assert_fn / { input = e -f "$g -h -00:07:12 v #8736 > > '(i=`"j-id=)[a-fA-F0-9]{8}', { `$_[1] + `$k++ }" } -00:07:12 v #8737 > > │ __assert_eq' / actual: "[|"e"; "-f"; "$g -h -00:07:12 v #8738 > > '(i=`"j-id=)[a-fA-F0-9]{8}', { `$_[1] + `$k++ }"|]" / expected: "[|"e"; "-f"; -00:07:12 v #8739 > > "$g -h '(i=`"j-id=)[a-fA-F0-9]{8}', { `$_[1] + `$k++ }"|]" -00:07:12 v #8740 > > │ -00:07:12 v #8741 > > │ 00:00:00 v #9 _assert_fn / { input = --l \"''' m '''\" -00:07:12 v #8742 > > } -00:07:12 v #8743 > > │ __assert_eq' / actual: "[|"--l"; "''' m '''"|]" / expected: -00:07:12 v #8744 > > "[|"--l"; "''' m '''"|]" -00:07:12 v #8745 > > │ -00:07:12 v #8746 > > │ 00:00:00 v #10 _assert_fn / { input = n --o --p q --r -00:07:12 v #8747 > > "s:/t u/v.w" --x "y:/z.a" --b c.d "\e{f-g}" h.i "j (k)" } -00:07:12 v #8748 > > │ __assert_eq' / actual: "[|"n"; "--o"; "--p"; "q"; "--r"; -00:07:12 v #8749 > > "s:/t u/v.w"; "--x"; "y:/z.a"; "--b"; "c.d"; -00:07:12 v #8750 > > │ "\e{f-g}"; "h.i"; "j (k)"|]" / expected: "[|"n"; "--o"; -00:07:12 v #8751 > > "--p"; "q"; "--r"; "s:/t u/v.w"; "--x"; "y:/z.a"; "--b"; "c.d"; -00:07:12 v #8752 > > │ "\e{f-g}"; "h.i"; "j (k)"|]" -00:07:12 v #8753 > > │ -00:07:12 v #8754 > > │ 00:00:00 v #11 _assert_fn / { input = l "m n:\o.p" } -00:07:12 v #8755 > > │ __assert_eq' / actual: "[|"l"; "m n:\o.p"|]" / expected: -00:07:12 v #8756 > > "[|"l"; "m n:\o.p"|]" -00:07:12 v #8757 > > │ -00:07:12 v #8758 > > -00:07:12 v #8759 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:12 v #8760 > > │ ### split_command -00:07:12 v #8761 > > -00:07:12 v #8762 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:12 v #8763 > > let split_command (command : string) : result (string * option string) string = -00:07:12 v #8764 > > open parsing -00:07:12 v #8765 > > inl quotes = [[ '"'; '\'' ]] -00:07:12 v #8766 > > inl p_quoted_char = quotes |> listm.map p_char |> choice -00:07:12 v #8767 > > inl normalize = function '\\' => '/' | c => c -00:07:12 v #8768 > > inl p_quoted = quotes |> none_of |>> normalize |> many_chars |> between -00:07:12 v #8769 > > p_quoted_char p_quoted_char -00:07:12 v #8770 > > inl p_unquoted = quotes ++ [[ ' ' ]] |> none_of |>> normalize |> many1_chars -00:07:12 v #8771 > > inl p_path = p_quoted <|> p_unquoted <|> eof () >>% "" .>> spaces () -00:07:12 v #8772 > > inl p_args = p_char ' ' |> opt >>. (any_char () |> many1_chars) -00:07:12 v #8773 > > inl p_command = p_path .>>. (p_args |> opt) -00:07:12 v #8774 > > command -00:07:12 v #8775 > > |> parse p_command -00:07:12 v #8776 > > |> resultm.map fst -00:07:12 v #8777 > > -00:07:12 v #8778 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:12 v #8779 > > //// test -00:07:12 v #8780 > > ///! fsharp -00:07:12 v #8781 > > ///! cuda -00:07:12 v #8782 > > ///! rust -00:07:12 v #8783 > > ///! typescript -00:07:12 v #8784 > > ///! python -00:07:12 v #8785 > > -00:07:12 v #8786 > > [[ -00:07:12 v #8787 > > "", -00:07:12 v #8788 > > ("", None) -00:07:12 v #8789 > > -00:07:12 v #8790 > > "/a/b/c", -00:07:12 v #8791 > > ("/a/b/c", None) -00:07:12 v #8792 > > -00:07:12 v #8793 > > "d e.f", -00:07:12 v #8794 > > ("d", Some "e.f") -00:07:12 v #8795 > > -00:07:12 v #8796 > > "..\\..\\g.h i.j k.l", -00:07:12 v #8797 > > ("../../g.h", Some "i.j k.l") -00:07:12 v #8798 > > -00:07:12 v #8799 > > "m:\\n\\o.p \"q.r s.t\"", -00:07:12 v #8800 > > ("m:/n/o.p", Some "\"q.r s.t\"") -00:07:12 v #8801 > > -00:07:12 v #8802 > > "\"..\\..\\u v\\w.x\" \"y z.a\" b.c", -00:07:12 v #8803 > > ("../../u v/w.x", Some "\"y z.a\" b.c") -00:07:12 v #8804 > > -00:07:12 v #8805 > > "\"..\\..\\d e.f\" -g \\\\\"h i\\\\\"", -00:07:12 v #8806 > > ("../../d e.f", Some "-g \\\\\"h i\\\\\"") -00:07:12 v #8807 > > -00:07:12 v #8808 > > "..\\..\\j k.l -m \\\\\"n o\\\\\"", -00:07:12 v #8809 > > ("../../j", Some "k.l -m \\\\\"n o\\\\\"") -00:07:12 v #8810 > > ]] -00:07:12 v #8811 > > |> _assert_fn split_command -00:07:18 v #8812 > > -00:07:18 v #8813 > > ── [ 5.78s - return value ] ──────────────────────────────────────────────────── -00:07:18 v #8814 > > │ -00:07:18 v #8815 > > │ .py output (Cuda): -00:07:18 v #8816 > > │ -00:07:18 v #8817 > > │ 00:00:00 v #1 _assert_fn / { input = } -00:07:18 v #8818 > > │ __assert_eq' / actual: , US1_1() / expected: , US1_1() -00:07:18 v #8819 > > │ -00:07:18 v #8820 > > │ 00:00:00 v #2 _assert_fn / { input = /a/b/c } -00:07:18 v #8821 > > │ __assert_eq' / actual: /a/b/c, US1_1() / expected: /a/b/c, -00:07:18 v #8822 > > US1_1() -00:07:18 v #8823 > > │ -00:07:18 v #8824 > > │ 00:00:00 v #3 _assert_fn / { input = d e.f } -00:07:18 v #8825 > > │ __assert_eq' / actual: d, US1_0(v0='e.f') / expected: d, -00:07:18 v #8826 > > US1_0(v0='e.f') -00:07:18 v #8827 > > │ -00:07:18 v #8828 > > │ 00:00:00 v #4 _assert_fn / { input = ..\..\g.h i.j k.l } -00:07:18 v #8829 > > │ __assert_eq' / actual: ../../g.h, US1_0(v0='i.j k.l') -00:07:18 v #8830 > > expected: ../../g.h, US1_0(v0='i.j k.l') -00:07:18 v #8831 > > │ -00:07:18 v #8832 > > │ 00:00:00 v #5 _assert_fn / { input = m:\n\o.p "q.r s.t" -00:07:18 v #8833 > > } -00:07:18 v #8834 > > │ __assert_eq' / actual: m:/n/o.p, US1_0(v0='"q.r s.t"') -00:07:18 v #8835 > > expected: m:/n/o.p, US1_0(v0='"q.r s.t"') -00:07:18 v #8836 > > │ -00:07:18 v #8837 > > │ 00:00:00 v #6 _assert_fn / { input = "..\..\u v\w.x" "y -00:07:18 v #8838 > > z.a" b.c } -00:07:18 v #8839 > > │ __assert_eq' / actual: ../../u v/w.x, US1_0(v0='"y z.a" b.c') -00:07:18 v #8840 > > / expected: ../../u v/w.x, US1_0(v0='"y z.a" b.c') -00:07:18 v #8841 > > │ -00:07:18 v #8842 > > │ 00:00:00 v #7 _assert_fn / { input = "..\..\d e.f" -g -00:07:18 v #8843 > > \\"h i\\" } -00:07:18 v #8844 > > │ __assert_eq' / actual: ../../d e.f, US1_0(v0='-g \\\\"h -00:07:18 v #8845 > > i\\\\"') / expected: ../../d e.f, US1_0(v0='-g \\\\"h i\\\\"') -00:07:18 v #8846 > > │ -00:07:18 v #8847 > > │ 00:00:00 v #8 _assert_fn / { input = ..\..\j k.l -m \\"n -00:07:18 v #8848 > > o\\" } -00:07:18 v #8849 > > │ __assert_eq' / actual: ../../j, US1_0(v0='k.l -m \\\\"n -00:07:18 v #8850 > > o\\\\"') / expected: ../../j, US1_0(v0='k.l -m \\\\"n o\\\\"') -00:07:18 v #8851 > > │ -00:07:18 v #8852 > > │ -00:07:18 v #8853 > > │ .rs output: -00:07:18 v #8854 > > │ -00:07:18 v #8855 > > │ 00:00:00 v #1 _assert_fn / { input = } -00:07:18 v #8856 > > │ __assert_eq' / actual: ", US1_1" / expected: ", US1_1" -00:07:18 v #8857 > > │ -00:07:18 v #8858 > > │ 00:00:00 v #2 _assert_fn / { input = /a/b/c } -00:07:18 v #8859 > > │ __assert_eq' / actual: "/a/b/c, US1_1...eq' / actual: ../../d -00:07:18 v #8860 > > e.f, US1_0 (-g \\"h i\\") / expected: ../../d e.f, US1_0 (-g \\"h i\\") -00:07:18 v #8861 > > │ -00:07:18 v #8862 > > │ 00:00:00 v #8 _assert_fn / { input = ..\..\j k.l -m \\"n -00:07:18 v #8863 > > o\\" } -00:07:18 v #8864 > > │ __assert_eq' / actual: ../../j, US1_0 (k.l -m \\"n o\\") -00:07:18 v #8865 > > expected: ../../j, US1_0 (k.l -m \\"n o\\") -00:07:18 v #8866 > > │ -00:07:18 v #8867 > > │ -00:07:18 v #8868 > > │ .py output: -00:07:18 v #8869 > > │ -00:07:18 v #8870 > > │ 00:00:00 v #1 _assert_fn / { input = } -00:07:18 v #8871 > > │ __assert_eq' / actual: , US1_1 / expected: , US1_1 -00:07:18 v #8872 > > │ -00:07:18 v #8873 > > │ 00:00:00 v #2 _assert_fn / { input = /a/b/c } -00:07:18 v #8874 > > │ __assert_eq' / actual: /a/b/c, US1_1 / expected: /a/b/c, -00:07:18 v #8875 > > US1_1 -00:07:18 v #8876 > > │ -00:07:18 v #8877 > > │ 00:00:00 v #3 _assert_fn / { input = d e.f } -00:07:18 v #8878 > > │ __assert_eq' / actual: d, US1_0 "e.f" / expected: d, US1_0 -00:07:18 v #8879 > > "e.f" -00:07:18 v #8880 > > │ -00:07:18 v #8881 > > │ 00:00:00 v #4 _assert_fn / { input = ..\..\g.h i.j k.l } -00:07:18 v #8882 > > │ __assert_eq' / actual: ../../g.h, US1_0 ("i.j k.l") -00:07:18 v #8883 > > expected: ../../g.h, US1_0 ("i.j k.l") -00:07:18 v #8884 > > │ -00:07:18 v #8885 > > │ 00:00:00 v #5 _assert_fn / { input = m:\n\o.p "q.r s.t" -00:07:18 v #8886 > > } -00:07:18 v #8887 > > │ __assert_eq' / actual: m:/n/o.p, US1_0 (""q.r s.t"") -00:07:18 v #8888 > > expected: m:/n/o.p, US1_0 (""q.r s.t"") -00:07:18 v #8889 > > │ -00:07:18 v #8890 > > │ 00:00:00 v #6 _assert_fn / { input = "..\..\u v\w.x" "y -00:07:18 v #8891 > > z.a" b.c } -00:07:18 v #8892 > > │ __assert_eq' / actual: ../../u v/w.x, US1_0 (""y z.a" b.c") -00:07:18 v #8893 > > expected: ../../u v/w.x, US1_0 (""y z.a" b.c") -00:07:18 v #8894 > > │ -00:07:18 v #8895 > > │ 00:00:00 v #7 _assert_fn / { input = "..\..\d e.f" -g -00:07:18 v #8896 > > \\"h i\\" } -00:07:18 v #8897 > > │ __assert_eq' / actual: ../../d e.f, US1_0 ("-g \\"h i\\"") -00:07:18 v #8898 > > expected: ../../d e.f, US1_0 ("-g \\"h i\\"") -00:07:18 v #8899 > > │ -00:07:18 v #8900 > > │ 00:00:00 v #8 _assert_fn / { input = ..\..\j k.l -m \\"n -00:07:18 v #8901 > > o\\" } -00:07:18 v #8902 > > │ __assert_eq' / actual: ../../j, US1_0 ("k.l -m \\"n o\\"") -00:07:18 v #8903 > > expected: ../../j, US1_0 ("k.l -m \\"n o\\"") -00:07:18 v #8904 > > │ -00:07:18 v #8905 > > │ -00:07:18 v #8906 > > │ -00:07:18 v #8907 > > -00:07:18 v #8908 > > ── [ 5.78s - stdout ] ────────────────────────────────────────────────────────── -00:07:18 v #8909 > > │ .fsx output: -00:07:18 v #8910 > > │ -00:07:18 v #8911 > > │ 00:00:00 v #1 _assert_fn / { input = } -00:07:18 v #8912 > > │ __assert_eq' / actual: ", US1_1" / expected: ", US1_1" -00:07:18 v #8913 > > │ -00:07:18 v #8914 > > │ 00:00:00 v #2 _assert_fn / { input = /a/b/c } -00:07:18 v #8915 > > │ __assert_eq' / actual: "/a/b/c, US1_1" / expected: "/a/b/c, -00:07:18 v #8916 > > US1_1" -00:07:18 v #8917 > > │ -00:07:18 v #8918 > > │ 00:00:00 v #3 _assert_fn / { input = d e.f } -00:07:18 v #8919 > > │ __assert_eq' / actual: "d, US1_0 "e.f"" / expected: "d, US1_0 -00:07:18 v #8920 > > "e.f"" -00:07:18 v #8921 > > │ -00:07:18 v #8922 > > │ 00:00:00 v #4 _assert_fn / { input = ..\..\g.h i.j k.l } -00:07:18 v #8923 > > │ __assert_eq' / actual: "../../g.h, US1_0 "i.j k.l"" -00:07:18 v #8924 > > expected: "../../g.h, US1_0 "i.j k.l"" -00:07:18 v #8925 > > │ -00:07:18 v #8926 > > │ 00:00:00 v #5 _assert_fn / { input = m:\n\o.p "q.r s.t" -00:07:18 v #8927 > > } -00:07:18 v #8928 > > │ __assert_eq' / actual: "m:/n/o.p, US1_0 ""q.r s.t""" -00:07:18 v #8929 > > expected: "m:/n/o.p, US1_0 ""q.r s.t""" -00:07:18 v #8930 > > │ -00:07:18 v #8931 > > │ 00:00:00 v #6 _assert_fn / { input = "..\..\u v\w.x" "y -00:07:18 v #8932 > > z.a" b.c } -00:07:18 v #8933 > > │ __assert_eq' / actual: "../../u v/w.x, US1_0 ""y z.a" b.c"" -00:07:18 v #8934 > > expected: "../../u v/w.x, US1_0 ""y z.a" b.c"" -00:07:18 v #8935 > > │ -00:07:18 v #8936 > > │ 00:00:00 v #7 _assert_fn / { input = "..\..\d e.f" -g -00:07:18 v #8937 > > \\"h i\\" } -00:07:18 v #8938 > > │ __assert_eq' / actual: "../../d e.f, US1_0 "-g \\"h i\\""" -00:07:18 v #8939 > > expected: "../../d e.f, US1_0 "-g \\"h i\\""" -00:07:18 v #8940 > > │ -00:07:18 v #8941 > > │ 00:00:00 v #8 _assert_fn / { input = ..\..\j k.l -m \\"n -00:07:18 v #8942 > > o\\" } -00:07:18 v #8943 > > │ __assert_eq' / actual: "../../j, US1_0 "k.l -m \\"n o\\""" -00:07:18 v #8944 > > expected: "../../j, US1_0 "k.l -m \\"n o\\""" -00:07:18 v #8945 > > │ -00:07:18 v #8946 > > -00:07:18 v #8947 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:18 v #8948 > > │ ### execution_line -00:07:18 v #8949 > > -00:07:18 v #8950 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:18 v #8951 > > type execution_line = -00:07:18 v #8952 > > { -00:07:18 v #8953 > > process_id : int -00:07:18 v #8954 > > line : string -00:07:18 v #8955 > > error : bool -00:07:18 v #8956 > > } -00:07:18 v #8957 > > -00:07:18 v #8958 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:18 v #8959 > > │ ## rust -00:07:18 v #8960 > > -00:07:18 v #8961 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:18 v #8962 > > │ ### process_child -00:07:18 v #8963 > > -00:07:18 v #8964 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:18 v #8965 > > nominal process_child = -00:07:18 v #8966 > > `( -00:07:18 v #8967 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:07:18 v #8968 > > Fable.Core.Emit(\"std::process::Child\")>]]\n#endif\ntype std_process_Child = -00:07:18 v #8969 > > class end" -00:07:18 v #8970 > > $'' : $'std_process_Child' -00:07:18 v #8971 > > ) -00:07:19 v #8972 > > -00:07:19 v #8973 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:19 v #8974 > > │ ### process_child_stdin -00:07:19 v #8975 > > -00:07:19 v #8976 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:19 v #8977 > > nominal process_child_stdin = -00:07:19 v #8978 > > `( -00:07:19 v #8979 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:07:19 v #8980 > > Fable.Core.Emit(\"std::process::ChildStdin\")>]]\n#endif\ntype -00:07:19 v #8981 > > std_process_ChildStdin = class end" -00:07:19 v #8982 > > $'' : $'std_process_ChildStdin' -00:07:19 v #8983 > > ) -00:07:19 v #8984 > > -00:07:19 v #8985 > > inl process_child_stdin -00:07:19 v #8986 > > (child : rust.ref (rust.mut' process_child)) -00:07:19 v #8987 > > : rust.ref (rust.mut' (optionm'.option' process_child_stdin)) -00:07:19 v #8988 > > = -00:07:19 v #8989 > > !\\(child, $'"&mut $0.stdin"') -00:07:19 v #8990 > > -00:07:19 v #8991 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:19 v #8992 > > │ ## runtime -00:07:19 v #8993 > > -00:07:19 v #8994 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:19 v #8995 > > │ ### execution_options -00:07:19 v #8996 > > -00:07:19 v #8997 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:19 v #8998 > > type execution_options = -00:07:19 v #8999 > > { -00:07:19 v #9000 > > command : string -00:07:19 v #9001 > > cancellation_token : optionm'.option' threading.cancellation_token -00:07:19 v #9002 > > environment_variables : array_base (string * string) -00:07:19 v #9003 > > on_line : optionm'.option' (execution_line -> async.async ()) -00:07:19 v #9004 > > stdin : optionm'.option' (threading.arc (threading.mutex -00:07:19 v #9005 > > process_child_stdin) -> ()) -00:07:19 v #9006 > > trace : bool -00:07:19 v #9007 > > working_directory : optionm'.option' string -00:07:19 v #9008 > > } -00:07:19 v #9009 > > -00:07:19 v #9010 > > inl execution_options (fn : execution_options -> execution_options) : -00:07:19 v #9011 > > execution_options = -00:07:19 v #9012 > > { -00:07:19 v #9013 > > command = "" -00:07:19 v #9014 > > cancellation_token = None |> optionm'.box -00:07:19 v #9015 > > environment_variables = ;[[]] -00:07:19 v #9016 > > on_line = None |> optionm'.box -00:07:19 v #9017 > > stdin = None |> optionm'.box -00:07:19 v #9018 > > trace = true -00:07:19 v #9019 > > working_directory = None |> optionm'.box -00:07:19 v #9020 > > } -00:07:19 v #9021 > > |> fn -00:07:20 v #9022 > > -00:07:20 v #9023 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:20 v #9024 > > │ ## rust -00:07:20 v #9025 > > -00:07:20 v #9026 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:20 v #9027 > > │ ### process_child_stderr -00:07:20 v #9028 > > -00:07:20 v #9029 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:20 v #9030 > > nominal process_child_stderr = -00:07:20 v #9031 > > `( -00:07:20 v #9032 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:07:20 v #9033 > > Fable.Core.Emit(\"std::process::ChildStderr\")>]]\n#endif\ntype -00:07:20 v #9034 > > std_process_ChildStderr = class end" -00:07:20 v #9035 > > $'' : $'std_process_ChildStderr' -00:07:20 v #9036 > > ) -00:07:20 v #9037 > > -00:07:20 v #9038 > > inl process_child_stderr -00:07:20 v #9039 > > (child : rust.ref (rust.mut' process_child)) -00:07:20 v #9040 > > : rust.ref (rust.mut' (optionm'.option' process_child_stderr)) -00:07:20 v #9041 > > = -00:07:20 v #9042 > > !\\(child, $'"&mut $0.stderr"') -00:07:20 v #9043 > > -00:07:20 v #9044 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:20 v #9045 > > │ ### process_child_stdout -00:07:20 v #9046 > > -00:07:20 v #9047 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:20 v #9048 > > nominal process_child_stdout = -00:07:20 v #9049 > > `( -00:07:20 v #9050 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:07:20 v #9051 > > Fable.Core.Emit(\"std::process::ChildStdout\")>]]\n#endif\ntype -00:07:20 v #9052 > > std_process_ChildStdout = class end" -00:07:20 v #9053 > > $'' : $'std_process_ChildStdout' -00:07:20 v #9054 > > ) -00:07:20 v #9055 > > -00:07:20 v #9056 > > inl process_child_stdout -00:07:20 v #9057 > > (child : rust.ref (rust.mut' process_child)) -00:07:20 v #9058 > > : rust.ref (rust.mut' (optionm'.option' process_child_stdout)) -00:07:20 v #9059 > > = -00:07:20 v #9060 > > !\\(child, $'"&mut $0.stdout"') -00:07:20 v #9061 > > -00:07:20 v #9062 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:20 v #9063 > > │ ### process_command -00:07:20 v #9064 > > -00:07:20 v #9065 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:20 v #9066 > > nominal process_command = -00:07:20 v #9067 > > `( -00:07:20 v #9068 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:07:20 v #9069 > > Fable.Core.Emit(\"std::process::Command\")>]]\n#endif\ntype std_process_Command -00:07:20 v #9070 > > = class end" -00:07:20 v #9071 > > $'' : $'std_process_Command' -00:07:20 v #9072 > > ) -00:07:21 v #9073 > > -00:07:21 v #9074 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:21 v #9075 > > │ ### process_stdio -00:07:21 v #9076 > > -00:07:21 v #9077 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:21 v #9078 > > nominal process_stdio = -00:07:21 v #9079 > > `( -00:07:21 v #9080 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:07:21 v #9081 > > Fable.Core.Emit(\"std::process::Stdio\")>]]\n#endif\ntype std_process_Stdio = -00:07:21 v #9082 > > class end" -00:07:21 v #9083 > > $'' : $'std_process_Stdio' -00:07:21 v #9084 > > ) -00:07:21 v #9085 > > -00:07:21 v #9086 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:21 v #9087 > > │ ### process_output -00:07:21 v #9088 > > -00:07:21 v #9089 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:21 v #9090 > > nominal process_output = -00:07:21 v #9091 > > `( -00:07:21 v #9092 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:07:21 v #9093 > > Fable.Core.Emit(\"std::process::Output\")>]]\n#endif\ntype std_process_Output = -00:07:21 v #9094 > > class end" -00:07:21 v #9095 > > $'' : $'std_process_Output' -00:07:21 v #9096 > > ) -00:07:22 v #9097 > > -00:07:22 v #9098 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:22 v #9099 > > │ ### process_exit_status -00:07:22 v #9100 > > -00:07:22 v #9101 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:22 v #9102 > > nominal process_exit_status = -00:07:22 v #9103 > > `( -00:07:22 v #9104 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:07:22 v #9105 > > Fable.Core.Emit(\"std::process::ExitStatus\")>]]\n#endif\ntype -00:07:22 v #9106 > > std_process_ExitStatus = class end" -00:07:22 v #9107 > > $'' : $'std_process_ExitStatus' -00:07:22 v #9108 > > ) -00:07:22 v #9109 > > -00:07:22 v #9110 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:22 v #9111 > > │ ### process_output_status -00:07:22 v #9112 > > -00:07:22 v #9113 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:22 v #9114 > > inl process_output_status (output : process_output) : process_exit_status = -00:07:22 v #9115 > > !\\(output, $'"$0.status"') -00:07:23 v #9116 > > -00:07:23 v #9117 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:23 v #9118 > > │ ### process_exit_status_code -00:07:23 v #9119 > > -00:07:23 v #9120 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:23 v #9121 > > inl process_exit_status_code (status : process_exit_status) : optionm'.option' -00:07:23 v #9122 > > i32 = -00:07:23 v #9123 > > !\\(status, $'"$0.code()"') -00:07:23 v #9124 > > -00:07:23 v #9125 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:23 v #9126 > > │ ### stdin_write_all -00:07:23 v #9127 > > -00:07:23 v #9128 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:23 v #9129 > > inl stdin_write_all (stdin : threading.mutex_guard process_child_stdin) (text : -00:07:23 v #9130 > > string) : () = -00:07:23 v #9131 > > inl stream = text |> sm'.as_bytes -00:07:23 v #9132 > > inl stdin = join stdin -00:07:23 v #9133 > > (!\($'"true; let mut !stdin = !stdin"') : bool) |> ignore -00:07:23 v #9134 > > (!\\(stdin, $'"true; std::io::Write::write_all(&mut *$0, -00:07:23 v #9135 > > !stream).unwrap()"') : bool) |> ignore -00:07:23 v #9136 > > -00:07:23 v #9137 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:23 v #9138 > > │ ### stdin_flush -00:07:23 v #9139 > > -00:07:23 v #9140 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:23 v #9141 > > inl stdin_flush (stdin : threading.mutex_guard process_child_stdin) : () = -00:07:23 v #9142 > > inl stdin = join stdin -00:07:23 v #9143 > > (!\($'"true; let mut !stdin = !stdin"') : bool) |> ignore -00:07:23 v #9144 > > (!\\(stdin, $'"true; std::io::Write::flush(&mut *$0).unwrap()"') : bool) |> -00:07:23 v #9145 > > ignore -00:07:24 v #9146 > > -00:07:24 v #9147 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:24 v #9148 > > │ ### new_process_command -00:07:24 v #9149 > > -00:07:24 v #9150 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:24 v #9151 > > inl new_process_command (file_name : string) : process_command = -00:07:24 v #9152 > > !\\(file_name, $'"std::process::Command::new(&*$0)"') -00:07:24 v #9153 > > -00:07:24 v #9154 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:24 v #9155 > > │ ### process_stdio_piped -00:07:24 v #9156 > > -00:07:24 v #9157 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:24 v #9158 > > inl process_stdio_piped () : process_stdio = -00:07:24 v #9159 > > !\($'"std::process::Stdio::piped()"') -00:07:25 v #9160 > > -00:07:25 v #9161 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:25 v #9162 > > │ ### process_command_args -00:07:25 v #9163 > > -00:07:25 v #9164 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:25 v #9165 > > inl process_command_args (args : am'.vec sm'.std_string) (c : process_command) : -00:07:25 v #9166 > > process_command = -00:07:25 v #9167 > > (!\($'"true; let mut !c = !c"') : bool) |> ignore -00:07:25 v #9168 > > (!\\(args, $'"true; std::process::Command::args(&mut !c, &*$0)"') : bool) |> -00:07:25 v #9169 > > ignore -00:07:25 v #9170 > > c |> rust.emit -00:07:25 v #9171 > > -00:07:25 v #9172 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:25 v #9173 > > │ ### process_command_stdout -00:07:25 v #9174 > > -00:07:25 v #9175 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:25 v #9176 > > inl process_command_stdout (stdio : process_stdio) (c : process_command) : -00:07:25 v #9177 > > process_command = -00:07:25 v #9178 > > (!\($'"true; let mut !c = !c"') : bool) |> ignore -00:07:25 v #9179 > > (!\($'"true; std::process::Command::stdout(&mut !c, -00:07:25 v #9180 > > std::process::Stdio::piped())"') : bool) |> ignore -00:07:25 v #9181 > > c |> rust.emit -00:07:26 v #9182 > > -00:07:26 v #9183 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:26 v #9184 > > │ ### process_command_stderr -00:07:26 v #9185 > > -00:07:26 v #9186 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:26 v #9187 > > inl process_command_stderr (stdio : process_stdio) (c : process_command) : -00:07:26 v #9188 > > process_command = -00:07:26 v #9189 > > (!\($'"true; let mut !c = !c"') : bool) |> ignore -00:07:26 v #9190 > > (!\($'"true; std::process::Command::stderr(&mut !c, -00:07:26 v #9191 > > std::process::Stdio::piped())"') : bool) |> ignore -00:07:26 v #9192 > > c |> rust.emit -00:07:26 v #9193 > > -00:07:26 v #9194 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:26 v #9195 > > │ ### process_command_stdin -00:07:26 v #9196 > > -00:07:26 v #9197 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:26 v #9198 > > inl process_command_stdin (stdio : process_stdio) (c : process_command) : -00:07:26 v #9199 > > process_command = -00:07:26 v #9200 > > (!\($'"true; let mut !c = !c"') : bool) |> ignore -00:07:26 v #9201 > > (!\($'"true; std::process::Command::stdin(&mut !c, -00:07:26 v #9202 > > std::process::Stdio::piped())"') : bool) |> ignore -00:07:26 v #9203 > > c |> rust.emit -00:07:26 v #9204 > > -00:07:26 v #9205 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:26 v #9206 > > │ ### process_command_current_dir -00:07:26 v #9207 > > -00:07:26 v #9208 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:26 v #9209 > > inl process_command_current_dir (dir : string) (c : process_command) : -00:07:26 v #9210 > > process_command = -00:07:26 v #9211 > > (!\($'"true; let mut !c = !c"') : bool) |> ignore -00:07:26 v #9212 > > (!\\(dir, $'"true; std::process::Command::current_dir(&mut !c, &*$0)"') : -00:07:26 v #9213 > > bool) |> ignore -00:07:26 v #9214 > > !\($'$"!c"') -00:07:27 v #9215 > > -00:07:27 v #9216 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:27 v #9217 > > │ ### process_command_env -00:07:27 v #9218 > > -00:07:27 v #9219 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:27 v #9220 > > inl process_command_env (key : string) (value : string) (c : process_command) : -00:07:27 v #9221 > > process_command = -00:07:27 v #9222 > > (!\($'"true; let mut !c = !c"') : bool) |> ignore -00:07:27 v #9223 > > (!\\((key, value), $'"true; std::process::Command::env(&mut !c, &*$0, -00:07:27 v #9224 > > &*$1)"') : bool) |> ignore -00:07:27 v #9225 > > c |> rust.emit -00:07:27 v #9226 > > -00:07:27 v #9227 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:27 v #9228 > > │ ### process_command_spawn -00:07:27 v #9229 > > -00:07:27 v #9230 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:27 v #9231 > > inl process_command_spawn -00:07:27 v #9232 > > (c : process_command) -00:07:27 v #9233 > > : resultm.result' process_child stream.io_error -00:07:27 v #9234 > > = -00:07:27 v #9235 > > (!\($'"true; let mut !c = !c"') : bool) |> ignore -00:07:27 v #9236 > > !\($'"std::process::Command::spawn(&mut !c)"') -00:07:28 v #9237 > > -00:07:28 v #9238 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:28 v #9239 > > │ ### child_wait_with_output -00:07:28 v #9240 > > -00:07:28 v #9241 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:28 v #9242 > > inl child_wait_with_output -00:07:28 v #9243 > > (child : process_child) -00:07:28 v #9244 > > : resultm.result' process_output stream.io_error -00:07:28 v #9245 > > = -00:07:28 v #9246 > > !\\(child, $'"$0.wait_with_output()"') -00:07:28 v #9247 > > -00:07:28 v #9248 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:28 v #9249 > > │ ### stdio_line -00:07:28 v #9250 > > -00:07:28 v #9251 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:28 v #9252 > > inl stdio_line -00:07:28 v #9253 > > (stdio : result () ()) -00:07:28 v #9254 > > (trace' : bool) -00:07:28 v #9255 > > (channel_sender : threading.arc (threading.mutex (threading.channel_sender -00:07:28 v #9256 > > sm'.std_string))) -00:07:28 v #9257 > > (line : resultm.result' sm'.std_string stream.io_error) -00:07:28 v #9258 > > : resultm.result' () sm'.std_string -00:07:28 v #9259 > > = -00:07:28 v #9260 > > inl highlight text = -00:07:28 v #9261 > > $'$"\\u001b[[4;7m{!text}\\u001b[[0m"' -00:07:28 v #9262 > > inl line = -00:07:28 v #9263 > > match -00:07:28 v #9264 > > line -00:07:28 v #9265 > > |> resultm.map_error' sm'.format' -00:07:28 v #9266 > > |> resultm.unbox' -00:07:28 v #9267 > > with -00:07:28 v #9268 > > | Ok line => -00:07:28 v #9269 > > inl line = -00:07:28 v #9270 > > line -00:07:28 v #9271 > > |> sm'.from_std_string -00:07:28 v #9272 > > // |> sm'.as_bytes -00:07:28 v #9273 > > // |> am'.slice_to_vec -00:07:28 v #9274 > > |> sm'.encoding_encode' (sm'.encoding_utf8' ()) -00:07:28 v #9275 > > |> rust.cow_as_ref -00:07:28 v #9276 > > |> sm'.str_from_utf8 -00:07:28 v #9277 > > // |> sm'.utf8_decode -00:07:28 v #9278 > > |> resultm.unwrap' -00:07:28 v #9279 > > |> sm'.ref_to_std_string -00:07:28 v #9280 > > // String::from_utf8_lossy(line.as_bytes()).into() -00:07:28 v #9281 > > inl line_log = line |> sm'.from_std_string -00:07:28 v #9282 > > inl text = -00:07:28 v #9283 > > match stdio with -00:07:28 v #9284 > > | Ok () => $'$"> {!line_log}"' -00:07:28 v #9285 > > | Error () => $'$"\! {!line_log}"' -00:07:28 v #9286 > > if trace' -00:07:28 v #9287 > > then trace Verbose (fun () => text) id -00:07:28 v #9288 > > else text |> console.write_line -00:07:28 v #9289 > > match stdio with -00:07:28 v #9290 > > | Ok () => line -00:07:28 v #9291 > > | Error () => line |> highlight |> sm'.to_std_string -00:07:28 v #9292 > > | Error e => -00:07:28 v #9293 > > trace Critical -00:07:28 v #9294 > > fun () => "runtime.stdio_line" -00:07:28 v #9295 > > fun () => { trace' e } -00:07:28 v #9296 > > e |> highlight |> sm'.to_std_string -00:07:28 v #9297 > > channel_sender -00:07:28 v #9298 > > |> threading.arc_mutex_lock -00:07:28 v #9299 > > |> resultm.unwrap' -00:07:28 v #9300 > > |> threading.mutex_guard_ref -00:07:28 v #9301 > > |> threading.channel_send line -00:07:28 v #9302 > > |> resultm.map_error' sm'.format' -00:07:29 v #9303 > > -00:07:29 v #9304 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:29 v #9305 > > │ ### command -00:07:29 v #9306 > > -00:07:29 v #9307 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:29 v #9308 > > nominal command = -00:07:29 v #9309 > > `( -00:07:29 v #9310 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:07:29 v #9311 > > Fable.Core.Emit(\"clap::Command\")>]]\n#endif\ntype clap_Command = class end" -00:07:29 v #9312 > > $'' : $'clap_Command' -00:07:29 v #9313 > > ) -00:07:29 v #9314 > > -00:07:29 v #9315 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:29 v #9316 > > │ ### new_command -00:07:29 v #9317 > > -00:07:29 v #9318 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:29 v #9319 > > inl new_command (s : rust.static_ref sm'.str) : command = -00:07:29 v #9320 > > !\\(s, $'"clap::Command::new($0)"') -00:07:30 v #9321 > > -00:07:30 v #9322 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:30 v #9323 > > //// test -00:07:30 v #9324 > > ///! rust -d clap -00:07:30 v #9325 > > -00:07:30 v #9326 > > ##"command" -00:07:30 v #9327 > > |> new_command -00:07:30 v #9328 > > |> sm'.format_pretty -00:07:30 v #9329 > > |> _assert sm'.contains "\"command\"" -00:07:32 v #9330 > > -00:07:32 v #9331 > > ── [ 2.67s - return value ] ──────────────────────────────────────────────────── -00:07:32 v #9332 > > │ __assert / actual: ""command"" / expected: "Command { -00:07:32 v #9333 > > │ name: "command", -00:07:32 v #9334 > > │ long_flag: None, -00:07:32 v #9335 > > │ short_flag: None, -00:07:32 v #9336 > > │ display_name: None, -00:07:32 v #9337 > > │ bin_name: None, -00:07:32 v #9338 > > │ author: None, -00:07:32 v #9339 > > │ version: None, -00:07:32 v #9340 > > │ long_version: None, -00:07:32 v #9341 > > │ about: None, -00:07:32 v #9342 > > │ long_about: None, -00:07:32 v #9343 > > │ before_help: None, -00:07:32 v #9344 > > │ before_long_help: None, -00:07:32 v #9345 > > │ after_help: None, -00:07:32 v #9346 > > │ after_long_help: None, -00:07:32 v #9347 > > │ aliases: [], -00:07:32 v #9348 > > │ short_flag_aliases: [], -00:07:32 v #9349 > > │ long_flag_aliases: [], -00:07:32 v #9350 > > │ usage_str: None, -00:07:32 v #9351 > > │ usage_name: None, -00:07:32 v #9352 > > │ help_str: None, -00:07:32 v #9353 > > │ disp_ord: None, -00:07:32 v #9354 > > │ template: None, -00:07:32 v #9355 > > │ settings: AppFlags( -00:07:32 v #9356 > > │ 0, -00:07:32 v #9357 > > │ ), -00:07:32 v #9358 > > │ g_settings: AppFlags( -00:07:32 v #9359 > > │ 0, -00:07:32 v #9360 > > │ ), -00:07:32 v #9361 > > │ args: MKeyMap { -00:07:32 v #9362 > > │ args: [], -00:07:32 v #9363 > > │ keys: [], -00:07:32 v #9364 > > │ }, -00:07:32 v #9365 > > │ subcommands: [], -00:07:32 v #9366 > > │ groups: [], -00:07:32 v #9367 > > │ current_help_heading: None, -00:07:32 v #9368 > > │ current_disp_ord: Some( -00:07:32 v #9369 > > │ 0, -00:07:32 v #9370 > > │ ), -00:07:32 v #9371 > > │ subcommand_value_name: None, -00:07:32 v #9372 > > │ subcommand_heading: None, -00:07:32 v #9373 > > │ external_value_parser: None, -00:07:32 v #9374 > > │ long_help_exists: false, -00:07:32 v #9375 > > │ deferred: None, -00:07:32 v #9376 > > │ app_ext: Extensions { -00:07:32 v #9377 > > │ extensions: FlatMap { -00:07:32 v #9378 > > │ keys: [], -00:07:32 v #9379 > > │ values: [], -00:07:32 v #9380 > > │ }, -00:07:32 v #9381 > > │ }, -00:07:32 v #9382 > > │ }" -00:07:32 v #9383 > > │ -00:07:32 v #9384 > > -00:07:32 v #9385 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:32 v #9386 > > │ ### arg -00:07:32 v #9387 > > -00:07:32 v #9388 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:32 v #9389 > > nominal arg = -00:07:32 v #9390 > > `( -00:07:32 v #9391 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:07:32 v #9392 > > Fable.Core.Emit(\"clap::Arg\")>]]\n#endif\ntype clap_Arg = class end" -00:07:32 v #9393 > > $'' : $'clap_Arg' -00:07:32 v #9394 > > ) -00:07:33 v #9395 > > -00:07:33 v #9396 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:33 v #9397 > > │ ### new_arg -00:07:33 v #9398 > > -00:07:33 v #9399 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:33 v #9400 > > inl new_arg (s : rust.static_ref sm'.str) : arg = -00:07:33 v #9401 > > !\\(s, $'"clap::Arg::new($0)"') -00:07:33 v #9402 > > -00:07:33 v #9403 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:33 v #9404 > > //// test -00:07:33 v #9405 > > ///! rust -d clap -00:07:33 v #9406 > > -00:07:33 v #9407 > > ##"arg" -00:07:33 v #9408 > > |> new_arg -00:07:33 v #9409 > > |> sm'.format_pretty -00:07:33 v #9410 > > |> _assert sm'.contains "\"arg\"" -00:07:35 v #9411 > > -00:07:35 v #9412 > > ── [ 2.32s - return value ] ──────────────────────────────────────────────────── -00:07:35 v #9413 > > │ __assert / actual: ""arg"" / expected: "Arg { -00:07:35 v #9414 > > │ id: "arg", -00:07:35 v #9415 > > │ help: None, -00:07:35 v #9416 > > │ long_help: None, -00:07:35 v #9417 > > │ action: None, -00:07:35 v #9418 > > │ value_parser: None, -00:07:35 v #9419 > > │ blacklist: [], -00:07:35 v #9420 > > │ settings: ArgFlags( -00:07:35 v #9421 > > │ 0, -00:07:35 v #9422 > > │ ), -00:07:35 v #9423 > > │ overrides: [], -00:07:35 v #9424 > > │ groups: [], -00:07:35 v #9425 > > │ requires: [], -00:07:35 v #9426 > > │ r_ifs: [], -00:07:35 v #9427 > > │ r_unless: [], -00:07:35 v #9428 > > │ short: None, -00:07:35 v #9429 > > │ long: None, -00:07:35 v #9430 > > │ aliases: [], -00:07:35 v #9431 > > │ short_aliases: [], -00:07:35 v #9432 > > │ disp_ord: None, -00:07:35 v #9433 > > │ val_names: [], -00:07:35 v #9434 > > │ num_vals: None, -00:07:35 v #9435 > > │ val_delim: None, -00:07:35 v #9436 > > │ default_vals: [], -00:07:35 v #9437 > > │ default_vals_ifs: [], -00:07:35 v #9438 > > │ terminator: None, -00:07:35 v #9439 > > │ index: None, -00:07:35 v #9440 > > │ help_heading: None, -00:07:35 v #9441 > > │ default_missing_vals: [], -00:07:35 v #9442 > > │ ext: Extensions { -00:07:35 v #9443 > > │ extensions: FlatMap { -00:07:35 v #9444 > > │ keys: [], -00:07:35 v #9445 > > │ values: [], -00:07:35 v #9446 > > │ }, -00:07:35 v #9447 > > │ }, -00:07:35 v #9448 > > │ }" -00:07:35 v #9449 > > │ -00:07:35 v #9450 > > -00:07:35 v #9451 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:35 v #9452 > > │ ### command_arg -00:07:35 v #9453 > > -00:07:35 v #9454 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:35 v #9455 > > inl command_arg (arg : arg) (command : command) : command = -00:07:35 v #9456 > > !\\((command, arg), $'"clap::Command::arg($0, $1)"') -00:07:36 v #9457 > > -00:07:36 v #9458 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:36 v #9459 > > │ ### arg_required -00:07:36 v #9460 > > -00:07:36 v #9461 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:36 v #9462 > > inl arg_required (value : bool) (arg : arg) : arg = -00:07:36 v #9463 > > !\\((arg, value), $'"$0.required($1)"') -00:07:36 v #9464 > > -00:07:36 v #9465 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:36 v #9466 > > │ ### arg_require_equals -00:07:36 v #9467 > > -00:07:36 v #9468 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:36 v #9469 > > inl arg_require_equals (value : bool) (arg : arg) : arg = -00:07:36 v #9470 > > !\\((arg, value), $'"$0.require_equals($1)"') -00:07:37 v #9471 > > -00:07:37 v #9472 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:37 v #9473 > > │ ### arg_default_value -00:07:37 v #9474 > > -00:07:37 v #9475 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:37 v #9476 > > inl arg_default_value (value : string) (arg : arg) : arg = -00:07:37 v #9477 > > inl value = #value -00:07:37 v #9478 > > !\\((arg, value), $'"$0.default_value($1)"') -00:07:37 v #9479 > > -00:07:37 v #9480 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:37 v #9481 > > │ ### arg_default_missing_value -00:07:37 v #9482 > > -00:07:37 v #9483 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:37 v #9484 > > inl arg_default_missing_value (value : string) (arg : arg) : arg = -00:07:37 v #9485 > > inl value = #value -00:07:37 v #9486 > > !\\((arg, value), $'"$0.default_missing_value($1)"') -00:07:38 v #9487 > > -00:07:38 v #9488 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:38 v #9489 > > │ ### arg_overrides_with -00:07:38 v #9490 > > -00:07:38 v #9491 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:38 v #9492 > > inl arg_overrides_with (value : string) (arg : arg) : arg = -00:07:38 v #9493 > > inl value = #value -00:07:38 v #9494 > > !\\((arg, value), $'"$0.overrides_with($1)"') -00:07:38 v #9495 > > -00:07:38 v #9496 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:38 v #9497 > > │ ### arg_short -00:07:38 v #9498 > > -00:07:38 v #9499 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:38 v #9500 > > inl arg_short (value : char) (arg : arg) : arg = -00:07:38 v #9501 > > !\\((arg, value), $'"$0.short($1)"') -00:07:38 v #9502 > > -00:07:38 v #9503 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:38 v #9504 > > │ ### arg_long -00:07:38 v #9505 > > -00:07:38 v #9506 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:38 v #9507 > > inl arg_long (value : rust.static_ref sm'.str) (arg : arg) : arg = -00:07:38 v #9508 > > !\\((arg, value), $'"$0.long($1)"') -00:07:39 v #9509 > > -00:07:39 v #9510 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:39 v #9511 > > │ ### arg_value_names -00:07:39 v #9512 > > -00:07:39 v #9513 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:39 v #9514 > > inl arg_value_names (values : array_base (rust.static_ref sm'.str)) (arg : arg) -00:07:39 v #9515 > > : arg = -00:07:39 v #9516 > > inl values = values |> am'.to_vec -00:07:39 v #9517 > > !\\((arg, values), $'"$0.value_names($1)"') -00:07:39 v #9518 > > -00:07:39 v #9519 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:39 v #9520 > > │ ### arg_num_args -00:07:39 v #9521 > > -00:07:39 v #9522 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:39 v #9523 > > inl arg_num_args (value : i32) (arg : arg) : arg = -00:07:39 v #9524 > > !\\((arg, value), $'"$0.num_args($1)"') -00:07:40 v #9525 > > -00:07:40 v #9526 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:40 v #9527 > > │ ### value_range -00:07:40 v #9528 > > -00:07:40 v #9529 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:40 v #9530 > > nominal value_range = -00:07:40 v #9531 > > `( -00:07:40 v #9532 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:07:40 v #9533 > > Fable.Core.Emit(\"clap::builder::ValueRange\")>]]\n#endif\ntype -00:07:40 v #9534 > > clap_builder_ValueRange = class end" -00:07:40 v #9535 > > $'' : $'clap_builder_ValueRange' -00:07:40 v #9536 > > ) -00:07:40 v #9537 > > -00:07:40 v #9538 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:40 v #9539 > > │ ### new_value_range -00:07:40 v #9540 > > -00:07:40 v #9541 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:40 v #9542 > > inl new_value_range forall t. inclusive (start : _ t) (end : _ t) : value_range -00:07:40 v #9543 > > = -00:07:40 v #9544 > > inl len () = -00:07:40 v #9545 > > 0i32 |> convert -00:07:40 v #9546 > > inl start, end = -00:07:40 v #9547 > > open am' -00:07:40 v #9548 > > match start, end with -00:07:40 v #9549 > > | Start start, End fn => -00:07:40 v #9550 > > start, len |> fn -00:07:40 v #9551 > > | End start_fn, End end_fn => -00:07:40 v #9552 > > start_fn len, end_fn len -00:07:40 v #9553 > > inl inclusive = -00:07:40 v #9554 > > if inclusive -00:07:40 v #9555 > > then "=" -00:07:40 v #9556 > > else "" -00:07:40 v #9557 > > match start, end with -00:07:40 v #9558 > > | start, end when end =. len () => !\\(start, -00:07:40 v #9559 > > $'"clap::builder::ValueRange::new($0..)"') -00:07:40 v #9560 > > | start, end => !\\((start, end), $'"clap::builder::ValueRange::new($0.." + -00:07:40 v #9561 > > !inclusive + "$1)"') -00:07:41 v #9562 > > -00:07:41 v #9563 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:41 v #9564 > > │ ### arg_num_args_range -00:07:41 v #9565 > > -00:07:41 v #9566 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:41 v #9567 > > inl arg_num_args_range (value : value_range) (arg : arg) : arg = -00:07:41 v #9568 > > !\\((arg, value), $'"$0.num_args($1)"') -00:07:41 v #9569 > > -00:07:41 v #9570 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:41 v #9571 > > │ ### arg_value_name -00:07:41 v #9572 > > -00:07:41 v #9573 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:41 v #9574 > > inl arg_value_name (value : string) (arg : arg) : arg = -00:07:41 v #9575 > > inl value = value |> sm'.as_str -00:07:41 v #9576 > > !\\((arg, value), $'"$0.value_name($1)"') -00:07:42 v #9577 > > -00:07:42 v #9578 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:42 v #9579 > > │ ### value_parser -00:07:42 v #9580 > > -00:07:42 v #9581 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:42 v #9582 > > nominal value_parser = -00:07:42 v #9583 > > `( -00:07:42 v #9584 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:07:42 v #9585 > > Fable.Core.Emit(\"clap::builder::ValueParser\")>]]\n#endif\ntype -00:07:42 v #9586 > > clap_builder_ValueParser = class end" -00:07:42 v #9587 > > $'' : $'clap_builder_ValueParser' -00:07:42 v #9588 > > ) -00:07:42 v #9589 > > -00:07:42 v #9590 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:42 v #9591 > > │ ### possible_value -00:07:42 v #9592 > > -00:07:42 v #9593 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:42 v #9594 > > nominal possible_value = -00:07:42 v #9595 > > `( -00:07:42 v #9596 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:07:42 v #9597 > > Fable.Core.Emit(\"clap::builder::PossibleValue\")>]]\n#endif\ntype -00:07:42 v #9598 > > clap_builder_PossibleValue = class end" -00:07:42 v #9599 > > $'' : $'clap_builder_PossibleValue' -00:07:42 v #9600 > > ) -00:07:42 v #9601 > > -00:07:42 v #9602 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:42 v #9603 > > │ ### new_possible_value -00:07:42 v #9604 > > -00:07:42 v #9605 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:42 v #9606 > > inl new_possible_value forall t. (x : t) : possible_value = -00:07:42 v #9607 > > !\\(x, $'"clap::builder::PossibleValue::new(&**$0)"') -00:07:43 v #9608 > > -00:07:43 v #9609 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:43 v #9610 > > │ ### value_parser_path_buf -00:07:43 v #9611 > > -00:07:43 v #9612 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:43 v #9613 > > inl value_parser_path_buf () : value_parser = -00:07:43 v #9614 > > !\($'"clap::value_parser\!(std::path::PathBuf)"') -00:07:43 v #9615 > > -00:07:43 v #9616 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:43 v #9617 > > │ ### value_parser_expr -00:07:43 v #9618 > > -00:07:43 v #9619 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:43 v #9620 > > inl value_parser_expr (expr : string) : value_parser = -00:07:43 v #9621 > > !\($'"clap::value_parser\!(" + !expr + ").into()"') -00:07:44 v #9622 > > -00:07:44 v #9623 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:44 v #9624 > > │ ### arg_value_parser -00:07:44 v #9625 > > -00:07:44 v #9626 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:44 v #9627 > > inl arg_value_parser (values : value_parser) (arg : arg) : arg = -00:07:44 v #9628 > > !\\((arg, values), $'"$0.value_parser($1)"') -00:07:44 v #9629 > > -00:07:44 v #9630 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:44 v #9631 > > │ ### arg_action -00:07:44 v #9632 > > -00:07:44 v #9633 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:44 v #9634 > > nominal arg_action' = -00:07:44 v #9635 > > `( -00:07:44 v #9636 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:07:44 v #9637 > > Fable.Core.Emit(\"clap::ArgAction\")>]]\n#endif\ntype clap_ArgAction = class -00:07:44 v #9638 > > end" -00:07:44 v #9639 > > $'' : $'clap_ArgAction' -00:07:44 v #9640 > > ) -00:07:44 v #9641 > > -00:07:44 v #9642 > > union arg_action = -00:07:44 v #9643 > > | Set -00:07:44 v #9644 > > | Append -00:07:44 v #9645 > > | SetTrue -00:07:44 v #9646 > > | SetFalse -00:07:44 v #9647 > > | Count -00:07:44 v #9648 > > | Help -00:07:44 v #9649 > > | HelpShort -00:07:44 v #9650 > > | HelpLong -00:07:44 v #9651 > > | Version -00:07:44 v #9652 > > -00:07:44 v #9653 > > inl arg_action = function -00:07:44 v #9654 > > | Set => !\($'"clap::ArgAction::Set"') : arg_action' -00:07:44 v #9655 > > | Append => !\($'"clap::ArgAction::Append"') : arg_action' -00:07:44 v #9656 > > | SetTrue => !\($'"clap::ArgAction::SetTrue"') : arg_action' -00:07:44 v #9657 > > | SetFalse => !\($'"clap::ArgAction::SetFalse"') : arg_action' -00:07:44 v #9658 > > | Count => !\($'"clap::ArgAction::Count"') : arg_action' -00:07:44 v #9659 > > | Help => !\($'"clap::ArgAction::Help"') : arg_action' -00:07:44 v #9660 > > | HelpShort => !\($'"clap::ArgAction::HelpShort"') : arg_action' -00:07:44 v #9661 > > | HelpLong => !\($'"clap::ArgAction::HelpLong"') : arg_action' -00:07:44 v #9662 > > | Version => !\($'"clap::ArgAction::Version"') : arg_action' -00:07:44 v #9663 > > -00:07:44 v #9664 > > inl arg_action (value : arg_action) (arg : arg) : arg = -00:07:44 v #9665 > > inl value = value |> arg_action -00:07:44 v #9666 > > !\\((arg, value), $'"$0.action($1)"') -00:07:45 v #9667 > > -00:07:45 v #9668 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:45 v #9669 > > │ ### arg_index -00:07:45 v #9670 > > -00:07:45 v #9671 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:45 v #9672 > > inl arg_index (value : i32) (arg : arg) : arg = -00:07:45 v #9673 > > !\\((arg, value), $'"$0.index($1)"') -00:07:45 v #9674 > > -00:07:45 v #9675 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:45 v #9676 > > │ ### arg_matches -00:07:45 v #9677 > > -00:07:45 v #9678 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:45 v #9679 > > nominal arg_matches = -00:07:45 v #9680 > > `( -00:07:45 v #9681 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:07:45 v #9682 > > Fable.Core.Emit(\"clap::ArgMatches\")>]]\n#endif\ntype clap_ArgMatches = class -00:07:45 v #9683 > > end" -00:07:45 v #9684 > > $'' : $'clap_ArgMatches' -00:07:45 v #9685 > > ) -00:07:46 v #9686 > > -00:07:46 v #9687 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:46 v #9688 > > │ ### command_get_matches -00:07:46 v #9689 > > -00:07:46 v #9690 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:46 v #9691 > > inl command_get_matches (command : command) : arg_matches = -00:07:46 v #9692 > > !\\(command, $'"clap::Command::get_matches($0)"') -00:07:46 v #9693 > > -00:07:46 v #9694 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:46 v #9695 > > │ ### command_get_matches_from -00:07:46 v #9696 > > -00:07:46 v #9697 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:46 v #9698 > > inl command_get_matches_from (args : array_base string) (command : command) : -00:07:46 v #9699 > > arg_matches = -00:07:46 v #9700 > > inl args = args |> am'.to_vec |> am'.vec_map sm'.to_std_string -00:07:46 v #9701 > > !\\(command, $'"clap::Command::get_matches_from($0, !args)"') -00:07:46 v #9702 > > -00:07:46 v #9703 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:46 v #9704 > > │ ### command_args_override_self -00:07:46 v #9705 > > -00:07:46 v #9706 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:46 v #9707 > > inl command_args_override_self (yes : bool) (command : command) : command = -00:07:46 v #9708 > > !\\(command, $'"clap::Command::args_override_self($0, !yes)"') -00:07:47 v #9709 > > -00:07:47 v #9710 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:47 v #9711 > > │ ### command_init_arg -00:07:47 v #9712 > > -00:07:47 v #9713 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:47 v #9714 > > inl command_init_arg (long, short) fn command = -00:07:47 v #9715 > > command -00:07:47 v #9716 > > |> command_arg ( -00:07:47 v #9717 > > ##long -00:07:47 v #9718 > > |> new_arg -00:07:47 v #9719 > > |> arg_short short -00:07:47 v #9720 > > |> arg_long ##long -00:07:47 v #9721 > > |> fn -00:07:47 v #9722 > > ) -00:07:47 v #9723 > > -00:07:47 v #9724 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:47 v #9725 > > │ ### matches_get_one -00:07:47 v #9726 > > -00:07:47 v #9727 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:47 v #9728 > > inl matches_get_one forall t. (x : string) (matches : arg_matches) : -00:07:47 v #9729 > > optionm'.option' t = -00:07:47 v #9730 > > inl x = join x -00:07:47 v #9731 > > inl x = x |> sm'.as_str -00:07:47 v #9732 > > !\\((matches, x), $'"clap::ArgMatches::get_one(&$0, $1).cloned()"') -00:07:48 v #9733 > > -00:07:48 v #9734 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:48 v #9735 > > │ ### matches_get_flag -00:07:48 v #9736 > > -00:07:48 v #9737 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:48 v #9738 > > inl matches_get_flag (x : string) (matches : arg_matches) : bool = -00:07:48 v #9739 > > inl x = join x -00:07:48 v #9740 > > inl x = x |> sm'.as_str -00:07:48 v #9741 > > !\\((matches, x), $'"clap::ArgMatches::get_flag(&$0, $1)"') -00:07:48 v #9742 > > -00:07:48 v #9743 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:48 v #9744 > > │ ### matches_get_many -00:07:48 v #9745 > > -00:07:48 v #9746 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:48 v #9747 > > inl matches_get_many forall t. (x : string) (matches : arg_matches) : -00:07:48 v #9748 > > optionm'.option' (am'.vec t) = -00:07:48 v #9749 > > inl x = join x -00:07:48 v #9750 > > inl x = x |> sm'.as_str -00:07:48 v #9751 > > !\\((matches, x), $'"clap::ArgMatches::get_many(&$0, $1).map(|x| -00:07:48 v #9752 > > x.cloned().into_iter().collect())"') -00:07:49 v #9753 > > -00:07:49 v #9754 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:49 v #9755 > > │ ### matches_get_occurrences -00:07:49 v #9756 > > -00:07:49 v #9757 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:49 v #9758 > > inl matches_get_occurrences (x : string) (matches : arg_matches) : -00:07:49 v #9759 > > optionm'.option' (array_base sm'.std_string) = -00:07:49 v #9760 > > inl x = join x -00:07:49 v #9761 > > inl x = x |> sm'.as_str -00:07:49 v #9762 > > !\($'"clap::ArgMatches::get_occurrences(&!matches, !x).cloned()"') -00:07:49 v #9763 > > -00:07:49 v #9764 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:49 v #9765 > > │ ### matches_subcommand -00:07:49 v #9766 > > -00:07:49 v #9767 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:49 v #9768 > > inl matches_subcommand (matches : arg_matches) : optionm'.option' -00:07:49 v #9769 > > (sm'.std_string * arg_matches) = -00:07:49 v #9770 > > !\\((matches, sm'.ref_to_std_string), -00:07:49 v #9771 > > $'"clap::ArgMatches::subcommand(Box::leak(Box::new($0))).map(|(a, b)| ($1(a), -00:07:49 v #9772 > > b.clone()))"') -00:07:50 v #9773 > > -00:07:50 v #9774 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:50 v #9775 > > │ ### matches_values_of -00:07:50 v #9776 > > -00:07:50 v #9777 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:50 v #9778 > > inl matches_values_of (x : string) (matches : arg_matches) : array_base -00:07:50 v #9779 > > sm'.std_string = -00:07:50 v #9780 > > !\\((matches, x), $'"clap::ArgMatches::values_of($0, &*$1)"') -00:07:50 v #9781 > > -00:07:50 v #9782 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:50 v #9783 > > │ ### command_subcommand_required -00:07:50 v #9784 > > -00:07:50 v #9785 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:50 v #9786 > > inl command_subcommand_required (value : bool) (command : command) : command = -00:07:50 v #9787 > > !\\(command, $'"clap::Command::subcommand_required($0, !value)"') -00:07:50 v #9788 > > -00:07:50 v #9789 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:50 v #9790 > > │ ### command_subcommand -00:07:50 v #9791 > > -00:07:50 v #9792 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:50 v #9793 > > inl command_subcommand (subcommand : command) (command : command) : command = -00:07:50 v #9794 > > !\\(command, $'"clap::Command::subcommand($0, !subcommand)"') -00:07:51 v #9795 > > -00:07:51 v #9796 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:51 v #9797 > > │ ### value_parser_possible_values -00:07:51 v #9798 > > -00:07:51 v #9799 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:51 v #9800 > > inl value_parser_possible_values (values : array_base string) : value_parser = -00:07:51 v #9801 > > inl values = -00:07:51 v #9802 > > values -00:07:51 v #9803 > > |> am'.to_vec -00:07:51 v #9804 > > |> am'.vec_map (sm'.to_std_string >> rust.new_box >> rust.box_leak >> -00:07:51 v #9805 > > new_possible_value) -00:07:51 v #9806 > > !\\(values, -00:07:51 v #9807 > > $'"Into::<clap::builder::ValueParser>::into(clap::builder::PossibleValuesParser: -00:07:51 v #9808 > > :new($0))"') -00:07:51 v #9809 > > -00:07:51 v #9810 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:51 v #9811 > > │ ### arg_union -00:07:51 v #9812 > > -00:07:51 v #9813 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:51 v #9814 > > inl arg_union forall union_type. (fn : union_type -> ()) (arg : arg) : arg = -00:07:51 v #9815 > > arg -00:07:51 v #9816 > > |> arg_value_parser ( -00:07:51 v #9817 > > real reflection.get_union_fields_untag `union_type () -00:07:51 v #9818 > > |> fun x => x : _ (string * union_type) -00:07:51 v #9819 > > |> listm.map fst -00:07:51 v #9820 > > |> listm'.box -00:07:51 v #9821 > > |> listm'.to_array' -00:07:51 v #9822 > > |> value_parser_possible_values -00:07:51 v #9823 > > ) -00:07:52 v #9824 > > -00:07:52 v #9825 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:52 v #9826 > > //// test -00:07:52 v #9827 > > ///! rust -d clap -00:07:52 v #9828 > > -00:07:52 v #9829 > > ##"command" -00:07:52 v #9830 > > |> new_command -00:07:52 v #9831 > > |> command_init_arg ("trace-level", 't') ( -00:07:52 v #9832 > > real arg_union `trace_level ignore -00:07:52 v #9833 > > ) -00:07:52 v #9834 > > |> command_get_matches_from ;[[ "_"; "--trace-level"; "Critical" ]] -00:07:52 v #9835 > > |> matches_get_one "trace-level" -00:07:52 v #9836 > > |> optionm'.unwrap -00:07:52 v #9837 > > |> sm'.from_std_string -00:07:52 v #9838 > > |> reflection.union_try_pick -00:07:52 v #9839 > > |> optionm.value -00:07:52 v #9840 > > |> _assert_eq Critical -00:07:55 v #9841 > > -00:07:55 v #9842 > > ── [ 2.80s - return value ] ──────────────────────────────────────────────────── -00:07:55 v #9843 > > │ __assert_eq / actual: US1_4 / expected: US1_4 -00:07:55 v #9844 > > │ -00:07:55 v #9845 > > -00:07:55 v #9846 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:55 v #9847 > > │ ### command_debug_assert -00:07:55 v #9848 > > -00:07:55 v #9849 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:55 v #9850 > > inl command_debug_assert (command : command) : () = -00:07:55 v #9851 > > !\\(command, $'"clap::Command::debug_assert($0)"') -00:07:55 v #9852 > > -00:07:55 v #9853 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:55 v #9854 > > │ ## fsharp -00:07:55 v #9855 > > -00:07:55 v #9856 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:55 v #9857 > > │ ### process -00:07:55 v #9858 > > -00:07:55 v #9859 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:55 v #9860 > > nominal process = $'System.Diagnostics.Process' -00:07:55 v #9861 > > -00:07:55 v #9862 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:55 v #9863 > > │ ### process_start_info -00:07:55 v #9864 > > -00:07:55 v #9865 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:55 v #9866 > > nominal process_start_info = $'System.Diagnostics.ProcessStartInfo' -00:07:56 v #9867 > > -00:07:56 v #9868 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:56 v #9869 > > │ ### data_received_event_args -00:07:56 v #9870 > > -00:07:56 v #9871 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:56 v #9872 > > nominal data_received_event_args = $'System.Diagnostics.DataReceivedEventArgs' -00:07:56 v #9873 > > -00:07:56 v #9874 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:56 v #9875 > > │ ### new_process -00:07:56 v #9876 > > -00:07:56 v #9877 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:56 v #9878 > > inl new_process (process_start_info : process_start_info) : process = -00:07:56 v #9879 > > $'new `process (StartInfo = !process_start_info)' -00:07:57 v #9880 > > -00:07:57 v #9881 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:57 v #9882 > > │ ### process_start -00:07:57 v #9883 > > -00:07:57 v #9884 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:57 v #9885 > > inl process_start (process : process) : bool = -00:07:57 v #9886 > > $'!process.Start' () -00:07:57 v #9887 > > -00:07:57 v #9888 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:57 v #9889 > > │ ### process_exit_code -00:07:57 v #9890 > > -00:07:57 v #9891 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:57 v #9892 > > inl process_exit_code (process : process) : i32 = -00:07:57 v #9893 > > run_target function -00:07:57 v #9894 > > | Fsharp (Native) => fun () => $'!process.ExitCode' -00:07:57 v #9895 > > | _ => fun () => null () -00:07:58 v #9896 > > -00:07:58 v #9897 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:58 v #9898 > > │ ### process_id -00:07:58 v #9899 > > -00:07:58 v #9900 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:58 v #9901 > > let process_id (process : process) : i32 = -00:07:58 v #9902 > > run_target function -00:07:58 v #9903 > > | Fsharp (Native) => fun () => process |> $'_.Id' -00:07:58 v #9904 > > | _ => fun () => null () -00:07:58 v #9905 > > -00:07:58 v #9906 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:58 v #9907 > > │ ### process_has_exited -00:07:58 v #9908 > > -00:07:58 v #9909 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:58 v #9910 > > let process_has_exited (process : process) : bool = -00:07:58 v #9911 > > run_target function -00:07:58 v #9912 > > | Fsharp (Native) => fun () => process |> $'_.HasExited' -00:07:58 v #9913 > > | _ => fun () => null () -00:07:59 v #9914 > > -00:07:59 v #9915 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:59 v #9916 > > │ ### process_kill -00:07:59 v #9917 > > -00:07:59 v #9918 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:59 v #9919 > > let process_kill (process : process) : () = -00:07:59 v #9920 > > run_target function -00:07:59 v #9921 > > | Fsharp (Native) => fun () => process |> $'_.Kill()' -00:07:59 v #9922 > > | _ => fun () => () -00:07:59 v #9923 > > -00:07:59 v #9924 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:59 v #9925 > > │ ### process_begin_error_read_line -00:07:59 v #9926 > > -00:07:59 v #9927 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:59 v #9928 > > inl process_begin_error_read_line (process : process) : () = -00:07:59 v #9929 > > process |> $'_.BeginErrorReadLine()' -00:07:59 v #9930 > > -00:07:59 v #9931 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:07:59 v #9932 > > │ ### process_begin_output_read_line -00:07:59 v #9933 > > -00:07:59 v #9934 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:07:59 v #9935 > > inl process_begin_output_read_line (process : process) : () = -00:07:59 v #9936 > > process |> $'_.BeginOutputReadLine()' -00:08:00 v #9937 > > -00:08:00 v #9938 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:08:00 v #9939 > > │ ### process_add_output_data_received -00:08:00 v #9940 > > -00:08:00 v #9941 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:08:00 v #9942 > > inl process_add_output_data_received fn (process : process) : () = -00:08:00 v #9943 > > $'!process.OutputDataReceived.Add !fn ' -00:08:00 v #9944 > > -00:08:00 v #9945 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:08:00 v #9946 > > │ ### process_add_error_data_received -00:08:00 v #9947 > > -00:08:00 v #9948 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:08:00 v #9949 > > inl process_add_error_data_received fn (process : process) : () = -00:08:00 v #9950 > > $'!process.ErrorDataReceived.Add !fn ' -00:08:01 v #9951 > > -00:08:01 v #9952 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:08:01 v #9953 > > │ ### process_wait_for_exit_async -00:08:01 v #9954 > > -00:08:01 v #9955 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:08:01 v #9956 > > inl process_wait_for_exit_async (ct : threading.cancellation_token) (process : -00:08:01 v #9957 > > process) : async.task () = -00:08:01 v #9958 > > run_target function -00:08:01 v #9959 > > | Fsharp (Native) => fun () => $'!process.WaitForExitAsync !ct ' -00:08:01 v #9960 > > | _ => fun () => null () -00:08:01 v #9961 > > -00:08:01 v #9962 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:08:01 v #9963 > > │ ### event_data -00:08:01 v #9964 > > -00:08:01 v #9965 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:08:01 v #9966 > > let event_data (e : data_received_event_args) : string = -00:08:01 v #9967 > > run_target function -00:08:01 v #9968 > > | Fsharp (Native) => fun () => e |> $'_.Data' -00:08:01 v #9969 > > | _ => fun () => null () -00:08:02 v #9970 > > -00:08:02 v #9971 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:08:02 v #9972 > > │ ### execute_with_options_async -00:08:02 v #9973 > > -00:08:02 v #9974 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:08:02 v #9975 > > let execute_with_options_async (options : execution_options) : _ (int * string) -00:08:02 v #9976 > > = -00:08:02 v #9977 > > fun () => -00:08:02 v #9978 > > run_target_args (fun () => options) function -00:08:02 v #9979 > > | Fsharp (Native) => fun options => -00:08:02 v #9980 > > inl file_name, arguments = options.command |> split_command |> -00:08:02 v #9981 > > resultm.get -00:08:02 v #9982 > > inl working_directory = -00:08:02 v #9983 > > options.working_directory |> optionm'.unbox |> -00:08:02 v #9984 > > optionm'.default_value "" -00:08:02 v #9985 > > trace Debug -00:08:02 v #9986 > > fun () => "runtime.execute_with_options_async" -00:08:02 v #9987 > > fun () => { file_name arguments options } -00:08:02 v #9988 > > inl utf8 = sm'.encoding_utf8 () -00:08:02 v #9989 > > inl arguments = arguments |> optionm'.default_value "" -00:08:02 v #9990 > > $'let start_info = System.Diagnostics.ProcessStartInfo (' -00:08:02 v #9991 > > $' Arguments = !arguments,' -00:08:02 v #9992 > > $' StandardOutputEncoding = !utf8,' -00:08:02 v #9993 > > $' WorkingDirectory = !working_directory,' -00:08:02 v #9994 > > $' FileName = !file_name,' -00:08:02 v #9995 > > $' CreateNoWindow = true,' -00:08:02 v #9996 > > $' RedirectStandardError = true,' -00:08:02 v #9997 > > $' RedirectStandardOutput = true,' -00:08:02 v #9998 > > $' UseShellExecute = false' -00:08:02 v #9999 > > $')' -00:08:02 v #10000 > > inl start_info : process_start_info = $'start_info' -00:08:02 v #10001 > > inl environment_variables = join options.environment_variables -00:08:02 v #10002 > > (a environment_variables : _ i32 _) -00:08:02 v #10003 > > |> am.iter fun key, value => -00:08:02 v #10004 > > $'!start_info.EnvironmentVariables.[[!key]] <- !value ' -00:08:02 v #10005 > > inl proc = start_info |> new_process |> use -00:08:02 v #10006 > > inl output : _ string = threading.new_concurrent_stack () -00:08:02 v #10007 > > let event error (e : data_received_event_args) = -00:08:02 v #10008 > > fun () => -00:08:02 v #10009 > > inl data = e |> event_data -00:08:02 v #10010 > > if data <> null () then -00:08:02 v #10011 > > match options.on_line |> optionm'.unbox with -00:08:02 v #10012 > > | Some on_line => -00:08:02 v #10013 > > on_line { -00:08:02 v #10014 > > process_id = proc |> process_id -00:08:02 v #10015 > > line = data -00:08:02 v #10016 > > error = error -00:08:02 v #10017 > > } -00:08:02 v #10018 > > |> async.do -00:08:02 v #10019 > > | None => () -00:08:02 v #10020 > > inl text = -00:08:02 v #10021 > > if error -00:08:02 v #10022 > > then $'$"\! {!data}"' -00:08:02 v #10023 > > else $'$"> {!data}"' -00:08:02 v #10024 > > if options.trace -00:08:02 v #10025 > > then trace Verbose (fun () => text) id -00:08:02 v #10026 > > else text |> console.write_line -00:08:02 v #10027 > > inl l = if error then $'"\\u001b[[7;4m"' else "" -00:08:02 v #10028 > > inl r = if error then $'"\\u001b[[0m"' else "" -00:08:02 v #10029 > > output |> threading.concurrent_stack_push -00:08:02 v #10030 > > $'$"{!l}{!data}{!r}"' -00:08:02 v #10031 > > |> async.new_async -00:08:02 v #10032 > > proc |> process_add_output_data_received (event false >> -00:08:02 v #10033 > > async.start_immediate) -00:08:02 v #10034 > > proc |> process_add_error_data_received (event true >> -00:08:02 v #10035 > > async.start_immediate) -00:08:02 v #10036 > > if proc |> process_start |> not -00:08:02 v #10037 > > then failwith $'$"runtime.execute_with_options_async -00:08:02 v #10038 > > process_start error"' -00:08:02 v #10039 > > proc |> process_begin_error_read_line -00:08:02 v #10040 > > proc |> process_begin_output_read_line -00:08:02 v #10041 > > inl ct = -00:08:02 v #10042 > > options.cancellation_token -00:08:02 v #10043 > > |> optionm'.unbox -00:08:02 v #10044 > > |> optionm'.default_with threading.token_none -00:08:02 v #10045 > > |> async.merge_cancellation_token_with_default_async -00:08:02 v #10046 > > |> async.let' -00:08:02 v #10047 > > ct |> threading.token_register fun () => -00:08:02 v #10048 > > if proc |> process_has_exited |> not -00:08:02 v #10049 > > then proc |> process_kill -00:08:02 v #10050 > > |> use -00:08:02 v #10051 > > |> ignore -00:08:02 v #10052 > > inl exit_code : i32 = -00:08:02 v #10053 > > fun () => -00:08:02 v #10054 > > try_unit -00:08:02 v #10055 > > fun () => -00:08:02 v #10056 > > proc -00:08:02 v #10057 > > |> process_wait_for_exit_async ct -00:08:02 v #10058 > > |> async.await_task -00:08:02 v #10059 > > |> async.do -00:08:02 v #10060 > > proc |> process_exit_code |> return -00:08:02 v #10061 > > fun ex => -00:08:02 v #10062 > > // with :? -00:08:02 v #10063 > > System.Threading.Tasks.TaskCanceledException as ex => -00:08:02 v #10064 > > inl ex = ex () -00:08:02 v #10065 > > inl ex' = ex |> sm'.format_exception -00:08:02 v #10066 > > output |> threading.concurrent_stack_push ex' -00:08:02 v #10067 > > inl ex : async.task_canceled_exception = ex |> -00:08:02 v #10068 > > unbox -00:08:02 v #10069 > > trace Warning -00:08:02 v #10070 > > fun () => -00:08:02 v #10071 > > "runtime.execute_with_options_async / WaitForExitAsync" -00:08:02 v #10072 > > fun () => { ex } -00:08:02 v #10073 > > (limit.min : i32) |> return -00:08:02 v #10074 > > |> async.new_async_unit -00:08:02 v #10075 > > |> async.let' -00:08:02 v #10076 > > inl output = -00:08:02 v #10077 > > output -00:08:02 v #10078 > > |> seq.cast' -00:08:02 v #10079 > > |> seq.rev'' -00:08:02 v #10080 > > |> fun x => x : seq.seq' string -00:08:02 v #10081 > > |> sm'.concat "\n" -00:08:02 v #10082 > > trace Debug -00:08:02 v #10083 > > fun () => "runtime.execute_with_options_async" -00:08:02 v #10084 > > fun () => { exit_code output_length = output |> sm'.length : -00:08:02 v #10085 > > i32 } -00:08:02 v #10086 > > (exit_code, output) |> return -00:08:02 v #10087 > > | _ => fun _ => -00:08:02 v #10088 > > global "#if FABLE_COMPILER\n[[<CompilationRepresentation -00:08:02 v #10089 > > (CompilationRepresentationFlags.ModuleSuffix)>]]\nmodule System =\n module -00:08:02 v #10090 > > Diagnostics =\n type Process = bool\n type DataReceivedEventArgs = -00:08:02 v #10091 > > bool\n#endif" -00:08:02 v #10092 > > (null () : int * string) |> return -00:08:02 v #10093 > > |> async.new_async_unit -00:08:02 v #10094 > > -00:08:02 v #10095 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:08:02 v #10096 > > │ ### execute_async -00:08:02 v #10097 > > -00:08:02 v #10098 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:08:02 v #10099 > > let execute_async command = -00:08:02 v #10100 > > execution_options fun x => { x with -00:08:02 v #10101 > > command = command -00:08:02 v #10102 > > } -00:08:02 v #10103 > > |> execute_with_options_async -00:08:03 v #10104 > > -00:08:03 v #10105 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:08:03 v #10106 > > //// test -00:08:03 v #10107 > > -00:08:03 v #10108 > > inl content = "╭─[[ 你好,世界!こんにちは世界! ]]─╮" -00:08:03 v #10109 > > fun () => -00:08:03 v #10110 > > inl file_name = "test.txt" -00:08:03 v #10111 > > inl temp_dir, disposable = -00:08:03 v #10112 > > (file_name, content) -00:08:03 v #10113 > > |> sm'.format_debug -00:08:03 v #10114 > > |> crypto.hash_text -00:08:03 v #10115 > > |> file_system.create_temp_dir' -00:08:03 v #10116 > > disposable |> use |> ignore -00:08:03 v #10117 > > -00:08:03 v #10118 > > inl path = temp_dir </> file_name -00:08:03 v #10119 > > -00:08:03 v #10120 > > inl exit_code, result = execute_async $'\@$"pwsh -c ""Get-Content -00:08:03 v #10121 > > {!path}"""' |> async.let' -00:08:03 v #10122 > > exit_code |> join _assert_eq 1 -00:08:03 v #10123 > > result |> _assert sm'.contains "not exist" -00:08:03 v #10124 > > -00:08:03 v #10125 > > content |> file_system.write_all_text_async path |> async.do -00:08:03 v #10126 > > -00:08:03 v #10127 > > execution_options fun x => { x with -00:08:03 v #10128 > > command = $'\@$"cat ""{!file_name}"""' -00:08:03 v #10129 > > working_directory = Some temp_dir |> optionm'.box -00:08:03 v #10130 > > } -00:08:03 v #10131 > > |> execute_with_options_async -00:08:03 v #10132 > > |> async.let' -00:08:03 v #10133 > > |> ignore -00:08:03 v #10134 > > -00:08:03 v #10135 > > execution_options fun x => { x with -00:08:03 v #10136 > > command = $'\@$"pwsh -c ""[[System.Console]]::OutputEncoding = -00:08:03 v #10137 > > [[System.Text.Encoding]]::UTF8; Get-Content {!file_name}"""' -00:08:03 v #10138 > > working_directory = Some temp_dir |> optionm'.box -00:08:03 v #10139 > > } -00:08:03 v #10140 > > |> execute_with_options_async -00:08:03 v #10141 > > |> async.return_await -00:08:03 v #10142 > > |> async.new_async_unit -00:08:03 v #10143 > > |> async.run_with_timeout 10000 -00:08:03 v #10144 > > |> function -00:08:03 v #10145 > > | Some (exit_code, output) => -00:08:03 v #10146 > > exit_code |> join _assert_eq 0i32 -00:08:03 v #10147 > > output |> join _assert_eq content -00:08:03 v #10148 > > true -00:08:03 v #10149 > > | _ => false -00:08:03 v #10150 > > |> _assert_eq true -00:08:15 v #10151 > > -00:08:15 v #10152 > > ── [ 12.35s - stdout ] ───────────────────────────────────────────────────────── -00:08:15 v #10153 > > │ 00:00:00 d #1 runtime.execute_with_options_async / { -00:08:15 v #10154 > > file_name = pwsh; arguments = US2_0 -00:08:15 v #10155 > > │ "-c "Get-Content -00:08:15 v #10156 > > C:\Users\i574n\AppData\Local\Temp\!create_temp_path_\dotnet-repl\76793606-813b-8 -00:08:15 v #10157 > > 8ad-7791-7ce2871edce9\test.txt""; options = { command = pwsh -c "Get-Content -00:08:15 v #10158 > > C:\Users\i574n\AppData\Local\Temp\!create_temp_path_\dotnet-repl\76793606-813b-8 -00:08:15 v #10159 > > 8ad-7791-7ce2871edce9\test.txt"; cancellation_token = None; -00:08:15 v #10160 > > environment_variables = [||]; on_line = None; stdin = None; trace = true; -00:08:15 v #10161 > > working_directory = None } } -00:08:15 v #10162 > > │ 00:00:00 v #2 ! Get-Content: Cannot find path -00:08:15 v #10163 > > 'C:\Users\i574n\AppData\Local\Temp\!create_temp_path_\dotnet-repl\76793606-813b- -00:08:15 v #10164 > > 88ad-7791-7ce2871edce9\test.txt' because it does not exist. -00:08:15 v #10165 > > │ 00:00:00 d #3 runtime.execute_with_options_async / { -00:08:15 v #10166 > > exit_code = 1; output_length = 197 } -00:08:15 v #10167 > > │ __assert_eq / actual: 1 / expected: 1 -00:08:15 v #10168 > > │ __assert / actual: "not exist" / expected: -00:08:15 v #10169 > > "Get-Content: Cannot find path -00:08:15 v #10170 > > 'C:\Users\i574n\AppData\Local\Temp\!create_temp_path_\dotnet-repl\76793606-813b- -00:08:15 v #10171 > > 88ad-7791-7ce2871edce9\test.txt' because it does not exist." -00:08:15 v #10172 > > │ 00:00:00 d #4 runtime.execute_with_options_async / { -00:08:15 v #10173 > > file_name = cat; arguments = US2_0 ""test.txt""; options = { command = cat -00:08:15 v #10174 > > "test.txt"; cancellation_token = None; environment_variables = [||]; on_line = -00:08:15 v #10175 > > None; stdin = None; trace = true; working_directory = Some -00:08:15 v #10176 > > │ -00:08:15 v #10177 > > "C:\Users\i574n\AppData\Local\Temp\!create_temp_path_\dotnet-repl\76793606-813b- -00:08:15 v #10178 > > 88ad-7791-7ce2871edce9" } } -00:08:15 v #10179 > > │ 00:00:00 v #5 > ╭─[ 你好,世界!こんにちは世界! ]─╮ -00:08:15 v #10180 > > │ 00:00:00 d #6 runtime.execute_with_options_async / { -00:08:15 v #10181 > > exit_code = 0; output_length = 22 } -00:08:15 v #10182 > > │ 00:00:00 d #7 runtime.execute_with_options_async / { -00:08:15 v #10183 > > file_name = pwsh; arguments = US2_0 -00:08:15 v #10184 > > │ "-c "[System.Console]::OutputEncoding = -00:08:15 v #10185 > > [System.Text.Encoding]::UTF8; Get-Content test.txt""; options = { command = pwsh -00:08:15 v #10186 > > -c "[System.Console]::OutputEncoding = [System.Text.Encoding]::UTF8; Get-Content -00:08:15 v #10187 > > test.txt"; cancellation_token = None; environment_variables = [||]; on_line = -00:08:15 v #10188 > > None; stdin = None; trace = true; working_directory = Some -00:08:15 v #10189 > > │ -00:08:15 v #10190 > > "C:\Users\i574n\AppData\Local\Temp\!create_temp_path_\dotnet-repl\76793606-813b- -00:08:15 v #10191 > > 88ad-7791-7ce2871edce9" } } -00:08:15 v #10192 > > │ 00:00:00 v #8 > ╭─[ 你好,世界!こんにちは世界! ]─╮ -00:08:15 v #10193 > > │ 00:00:00 d #9 runtime.execute_with_options_async / { -00:08:15 v #10194 > > exit_code = 0; output_length = 22 } -00:08:15 v #10195 > > │ __assert_eq / actual: 0 / expected: 0 -00:08:15 v #10196 > > │ __assert_eq / actual: "╭─[ 你好,世界!こんにちは世界! ]─╮" -00:08:15 v #10197 > > / expected: "╭─[ 你好,世界!こんにちは世界! ]─╮" -00:08:15 v #10198 > > │ __assert_eq / actual: true / expected: true -00:08:15 v #10199 > > │ -00:08:15 v #10200 > > -00:08:15 v #10201 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:08:15 v #10202 > > //// test -00:08:15 v #10203 > > -00:08:15 v #10204 > > fun () => -00:08:15 v #10205 > > inl file_name = "test.txt" -00:08:15 v #10206 > > inl text = "0" -00:08:15 v #10207 > > -00:08:15 v #10208 > > inl temp_dir, disposable = -00:08:15 v #10209 > > (file_name, text) -00:08:15 v #10210 > > |> sm'.format_debug -00:08:15 v #10211 > > |> crypto.hash_text -00:08:15 v #10212 > > |> file_system.create_temp_dir' -00:08:15 v #10213 > > disposable |> use |> ignore -00:08:15 v #10214 > > inl path = temp_dir </> file_name -00:08:15 v #10215 > > text |> file_system.write_all_text_async path |> async.do -00:08:15 v #10216 > > -00:08:15 v #10217 > > inl cts = threading.new_cancellation_token_source () -00:08:15 v #10218 > > trace Debug (fun () => "1") id -00:08:15 v #10219 > > inl result = -00:08:15 v #10220 > > execution_options fun x => { x with -00:08:15 v #10221 > > command = $'\@$"pwsh -c ""Get-Content {!path}"""' -00:08:15 v #10222 > > cancellation_token = cts |> threading.cancellation_source_token |> -00:08:15 v #10223 > > Some |> optionm'.box -00:08:15 v #10224 > > } -00:08:15 v #10225 > > |> execute_with_options_async -00:08:15 v #10226 > > |> async.start_child -00:08:15 v #10227 > > |> async.let' -00:08:15 v #10228 > > trace Debug (fun () => "2") id -00:08:15 v #10229 > > async.sleep 100 |> async.do -00:08:15 v #10230 > > trace Debug (fun () => "3") id -00:08:15 v #10231 > > cts |> threading.cancellation_source_cancel -00:08:15 v #10232 > > trace Debug (fun () => "4") id -00:08:15 v #10233 > > inl exit_code, output = result |> async.let' -00:08:15 v #10234 > > trace Debug (fun () => "5") id -00:08:15 v #10235 > > (exit_code, output) |> return -00:08:15 v #10236 > > |> async.new_async_unit -00:08:15 v #10237 > > |> async.run_with_timeout 10000 -00:08:15 v #10238 > > |> function -00:08:15 v #10239 > > | Some (exit_code, output) => -00:08:15 v #10240 > > exit_code |> _assert_eq -2147483648i32 -00:08:15 v #10241 > > output |> _assert_eq (join -00:08:15 v #10242 > > "System.Threading.Tasks.TaskCanceledException: A task was canceled.") -00:08:15 v #10243 > > true -00:08:15 v #10244 > > | _ => false -00:08:15 v #10245 > > |> _assert_eq true -00:08:27 v #10246 > > -00:08:27 v #10247 > > ── [ 12.32s - stdout ] ───────────────────────────────────────────────────────── -00:08:27 v #10248 > > │ 00:00:00 d #1 1 -00:08:27 v #10249 > > │ 00:00:00 d #2 2 -00:08:27 v #10250 > > │ 00:00:00 d #3 runtime.execute_with_options_async / { -00:08:27 v #10251 > > file_name = pwsh; arguments = US2_0 -00:08:27 v #10252 > > │ "-c "Get-Content -00:08:27 v #10253 > > C:\Users\i574n\AppData\Local\Temp\!create_temp_path_\dotnet-repl\613830ed-016e-d -00:08:27 v #10254 > > 959-8d21-02dc1c63c252\test.txt""; options = { command = pwsh -c "Get-Content -00:08:27 v #10255 > > C:\Users\i574n\AppData\Local\Temp\!create_temp_path_\dotnet-repl\613830ed-016e-d -00:08:27 v #10256 > > 959-8d21-02dc1c63c252\test.txt"; cancellation_token = Some -00:08:27 v #10257 > > System.Threading.CancellationToken; environment_variables = [||]; on_line = -00:08:27 v #10258 > > None; stdin = None; trace = true; working_directory = None } } -00:08:27 v #10259 > > │ 00:00:00 d #4 3 -00:08:27 v #10260 > > │ 00:00:00 d #5 4 -00:08:27 v #10261 > > │ 00:00:00 w #6 runtime.execute_with_options_async -00:08:27 v #10262 > > WaitForExitAsync / { ex = System.Threading.Tasks.TaskCanceledException: A task -00:08:27 v #10263 > > was canceled. } -00:08:27 v #10264 > > │ 00:00:00 d #7 runtime.execute_with_options_async / { -00:08:27 v #10265 > > exit_code = -2147483648; output_length = 66 } -00:08:27 v #10266 > > │ 00:00:00 d #8 5 -00:08:27 v #10267 > > │ __assert_eq / actual: -2147483648 / expected: -2147483648 -00:08:27 v #10268 > > │ __assert_eq / actual: -00:08:27 v #10269 > > "System.Threading.Tasks.TaskCanceledException: A task was canceled." / expected: -00:08:27 v #10270 > > "System.Threading.Tasks.TaskCanceledException: A task was canceled." -00:08:27 v #10271 > > │ __assert_eq / actual: true / expected: true -00:08:27 v #10272 > > │ -00:08:27 v #10273 > > -00:08:27 v #10274 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:08:27 v #10275 > > │ ### current_process_kill -00:08:27 v #10276 > > -00:08:27 v #10277 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:08:27 v #10278 > > let current_process_kill () = -00:08:27 v #10279 > > run_target function -00:08:27 v #10280 > > | Fsharp (Native) => fun () => -00:08:27 v #10281 > > inl fn () = -00:08:27 v #10282 > > run_target function -00:08:27 v #10283 > > | Fsharp (Native) => fun () => -00:08:27 v #10284 > > trace Warning (fun () => "runtime.current_process_kill -00:08:27 v #10285 > > exiting... 3") id -00:08:27 v #10286 > > $'System.Threading.Thread.Sleep 300' -00:08:27 v #10287 > > trace Warning (fun () => "runtime.current_process_kill -00:08:27 v #10288 > > exiting... 2") id -00:08:27 v #10289 > > $'System.Console.Out.Flush ()' -00:08:27 v #10290 > > $'System.Threading.Thread.Sleep 60' -00:08:27 v #10291 > > trace Warning (fun () => "runtime.current_process_kill -00:08:27 v #10292 > > exiting... 1") id -00:08:27 v #10293 > > $'System.Diagnostics.Process.GetCurrentProcess().Kill -00:08:27 v #10294 > > ()' : () -00:08:27 v #10295 > > | _ => fun () => () -00:08:27 v #10296 > > inl thread : threading.thread = $'new System.Threading.Thread (!fn)' -00:08:27 v #10297 > > thread |> $'_.Start()' : () -00:08:27 v #10298 > > | _ => fun () => () -00:08:28 v #10299 > > -00:08:28 v #10300 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:08:28 v #10301 > > │ ### gc_collect -00:08:28 v #10302 > > -00:08:28 v #10303 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:08:28 v #10304 > > inl gc_collect () = -00:08:28 v #10305 > > run_target function -00:08:28 v #10306 > > | Fsharp _ => fun () => $'System.GC.Collect' () : () -00:08:28 v #10307 > > | Python _ => fun () => -00:08:28 v #10308 > > backend_switch { -00:08:28 v #10309 > > Python = fun () => global "import gc" -00:08:28 v #10310 > > } -00:08:28 v #10311 > > ($'gc.collect()' : int) |> ignore -00:08:28 v #10312 > > | _ => fun () => () -00:08:28 v #10313 > > -00:08:28 v #10314 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:08:28 v #10315 > > │ ## runtime -00:08:28 v #10316 > > -00:08:28 v #10317 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:08:28 v #10318 > > │ ### execute_with_options -00:08:28 v #10319 > > -00:08:28 v #10320 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:08:28 v #10321 > > let execute_with_options (options : execution_options) : i32 * string = -00:08:28 v #10322 > > run_target_args' options function -00:08:28 v #10323 > > | Fsharp (Native) => fun options => -00:08:28 v #10324 > > options |> execute_with_options_async |> async.run_synchronously -00:08:28 v #10325 > > | Rust (Native) => fun options => -00:08:28 v #10326 > > inl command = join options.command -00:08:28 v #10327 > > inl file_name, arguments = command |> split_command |> resultm.get -00:08:28 v #10328 > > inl arguments = -00:08:28 v #10329 > > arguments -00:08:28 v #10330 > > |> optionm'.default_value "" -00:08:28 v #10331 > > |> split_args -00:08:28 v #10332 > > |> resultm.get -00:08:28 v #10333 > > |> am'.to_vec -00:08:28 v #10334 > > |> am'.vec_map sm'.to_std_string -00:08:28 v #10335 > > trace Debug -00:08:28 v #10336 > > fun () => "runtime.execute_with_options" -00:08:28 v #10337 > > fun () => { file_name arguments = arguments |> sm'.format_debug; -00:08:28 v #10338 > > options } -00:08:28 v #10339 > > fun () => -00:08:28 v #10340 > > fun () => -00:08:28 v #10341 > > // inl new_command_mutex (command : rust.ref (rust.mut' -00:08:28 v #10342 > > process_command)) : threading.arc (threading.mutex process_command) = -00:08:28 v #10343 > > // () -00:08:28 v #10344 > > file_name -00:08:28 v #10345 > > |> new_process_command -00:08:28 v #10346 > > |> process_command_args arguments -00:08:28 v #10347 > > |> process_command_stdout (process_stdio_piped ()) -00:08:28 v #10348 > > |> process_command_stderr (process_stdio_piped ()) -00:08:28 v #10349 > > |> process_command_stdin (process_stdio_piped ()) -00:08:28 v #10350 > > // |> new_command_mutex -00:08:28 v #10351 > > |> fun command => -00:08:28 v #10352 > > match options.working_directory |> optionm'.unbox with -00:08:28 v #10353 > > | Some working_directory => -00:08:28 v #10354 > > command -00:08:28 v #10355 > > |> process_command_current_dir working_directory -00:08:28 v #10356 > > | None => -00:08:28 v #10357 > > !\($'$"!command"') -00:08:28 v #10358 > > // |> rust.emit -00:08:28 v #10359 > > |> fun command => -00:08:28 v #10360 > > match options.environment_variables with -00:08:28 v #10361 > > | ;[[]] => command -00:08:28 v #10362 > > | vars => -00:08:28 v #10363 > > (command, vars |> am'.to_vec) -00:08:28 v #10364 > > ||> am'.vec_fold' fun command (key, value) => -00:08:28 v #10365 > > command |> process_command_env key value -00:08:28 v #10366 > > |> process_command_spawn -00:08:28 v #10367 > > |> resultm.map_error' sm'.format' -00:08:28 v #10368 > > |> resultm.map' (optionm'.some' >> (join id) >> -00:08:28 v #10369 > > threading.new_arc_mutex) -00:08:28 v #10370 > > |> resultm.unbox' -00:08:28 v #10371 > > |> function -00:08:28 v #10372 > > | Ok child => -00:08:28 v #10373 > > inl stdout = -00:08:28 v #10374 > > fun () => -00:08:28 v #10375 > > child -00:08:28 v #10376 > > |> threading.arc_mutex_lock -00:08:28 v #10377 > > |> resultm.unwrap' -00:08:28 v #10378 > > |> threading.mutex_guard_ref_mut -00:08:28 v #10379 > > |> optionm'.as_mut -00:08:28 v #10380 > > |> optionm'.unwrap -00:08:28 v #10381 > > |> process_child_stdout -00:08:28 v #10382 > > |> optionm'.take_ref_mut -00:08:28 v #10383 > > |> optionm'.unwrap -00:08:28 v #10384 > > |> rust.capture -00:08:28 v #10385 > > inl stderr = -00:08:28 v #10386 > > fun () => -00:08:28 v #10387 > > child -00:08:28 v #10388 > > |> threading.arc_mutex_lock -00:08:28 v #10389 > > |> resultm.unwrap' -00:08:28 v #10390 > > |> threading.mutex_guard_ref_mut -00:08:28 v #10391 > > |> optionm'.as_mut -00:08:28 v #10392 > > |> optionm'.unwrap -00:08:28 v #10393 > > |> process_child_stderr -00:08:28 v #10394 > > |> optionm'.take_ref_mut -00:08:28 v #10395 > > |> optionm'.unwrap -00:08:28 v #10396 > > |> rust.capture -00:08:28 v #10397 > > inl stdin = -00:08:28 v #10398 > > fun () => -00:08:28 v #10399 > > child -00:08:28 v #10400 > > |> threading.arc_mutex_lock -00:08:28 v #10401 > > |> resultm.unwrap' -00:08:28 v #10402 > > |> threading.mutex_guard_ref_mut -00:08:28 v #10403 > > |> optionm'.as_mut -00:08:28 v #10404 > > |> optionm'.unwrap -00:08:28 v #10405 > > |> process_child_stdin -00:08:28 v #10406 > > |> optionm'.take_ref_mut -00:08:28 v #10407 > > |> optionm'.unwrap -00:08:28 v #10408 > > |> optionm'.some' -00:08:28 v #10409 > > |> join id -00:08:28 v #10410 > > |> threading.new_arc_mutex -00:08:28 v #10411 > > |> rust.capture -00:08:28 v #10412 > > inl channel_sender, channel_receiver = -00:08:28 v #10413 > > threading.new_channel () -00:08:28 v #10414 > > inl channel_sender'' = channel_sender |> (join id) -00:08:28 v #10415 > > |> threading.new_arc_mutex -00:08:28 v #10416 > > inl channel_sender' = channel_sender |> (join id) |> -00:08:28 v #10417 > > threading.new_arc_mutex -00:08:28 v #10418 > > inl channel_receiver' = channel_receiver |> (join -00:08:28 v #10419 > > id) |> threading.new_arc_mutex -00:08:28 v #10420 > > inl stdout_handle = -00:08:28 v #10421 > > fun () => -00:08:28 v #10422 > > stdout -00:08:28 v #10423 > > |> stream.decode_reader_bytes_build -00:08:28 v #10424 > > |> stream.new_buf_reader -00:08:28 v #10425 > > |> stream.buf_read_lines -00:08:28 v #10426 > > |> iter.try_for_each fun lines => -00:08:28 v #10427 > > inl channel_sender'' = channel_sender'' -00:08:28 v #10428 > > |> rust.clone -00:08:28 v #10429 > > lines -00:08:28 v #10430 > > |> stdio_line (Ok ()) options.trace -00:08:28 v #10431 > > channel_sender'' -00:08:28 v #10432 > > |> resultm.to_try -00:08:28 v #10433 > > |> threading.spawn (1, 0) 1 -00:08:28 v #10434 > > inl stderr_handle = -00:08:28 v #10435 > > fun () => -00:08:28 v #10436 > > stderr -00:08:28 v #10437 > > |> stream.decode_reader_bytes_build -00:08:28 v #10438 > > |> stream.new_buf_reader -00:08:28 v #10439 > > |> stream.buf_read_lines -00:08:28 v #10440 > > |> iter.try_for_each fun lines => -00:08:28 v #10441 > > inl channel_sender' = channel_sender' |> -00:08:28 v #10442 > > rust.clone -00:08:28 v #10443 > > lines -00:08:28 v #10444 > > |> stdio_line (Error ()) options.trace -00:08:28 v #10445 > > channel_sender' -00:08:28 v #10446 > > |> resultm.to_try -00:08:28 v #10447 > > |> threading.spawn (1, 0) 1 -00:08:28 v #10448 > > match options.stdin |> optionm'.unbox with -00:08:28 v #10449 > > | Some stdin' => -00:08:28 v #10450 > > stdin -00:08:28 v #10451 > > |> threading.arc_mutex_lock -00:08:28 v #10452 > > |> resultm.unwrap' -00:08:28 v #10453 > > |> threading.mutex_guard_ref_mut -00:08:28 v #10454 > > |> optionm'.take_ref_mut -00:08:28 v #10455 > > |> optionm'.map' threading.new_arc_mutex -00:08:28 v #10456 > > |> optionm'.unbox -00:08:28 v #10457 > > |> function -00:08:28 v #10458 > > | Some stdin => -00:08:28 v #10459 > > stdin |> stdin' -00:08:28 v #10460 > > stdin -00:08:28 v #10461 > > |> threading.arc_mutex_lock -00:08:28 v #10462 > > |> resultm.unwrap' -00:08:28 v #10463 > > |> stdin_flush -00:08:28 v #10464 > > | None => () -00:08:28 v #10465 > > | None => () -00:08:28 v #10466 > > inl output = -00:08:28 v #10467 > > child -00:08:28 v #10468 > > |> threading.arc_mutex_lock -00:08:28 v #10469 > > |> resultm.unwrap' -00:08:28 v #10470 > > |> threading.mutex_guard_ref_mut -00:08:28 v #10471 > > |> optionm'.take_ref_mut -00:08:28 v #10472 > > |> optionm'.unwrap -00:08:28 v #10473 > > |> child_wait_with_output -00:08:28 v #10474 > > |> resultm.map_error' sm'.format' -00:08:28 v #10475 > > [[ stdout_handle; stderr_handle ]] -00:08:28 v #10476 > > |> am'.new_vec -00:08:28 v #10477 > > |> am'.vec_for_each' (threading.join' >> -00:08:28 v #10478 > > resultm.unwrap' >> resultm.unwrap') -00:08:28 v #10479 > > match output |> resultm.unbox with -00:08:28 v #10480 > > | Ok output => -00:08:28 v #10481 > > inl exit_code = -00:08:28 v #10482 > > output -00:08:28 v #10483 > > |> process_output_status -00:08:28 v #10484 > > |> process_exit_status_code -00:08:28 v #10485 > > |> optionm'.unbox -00:08:28 v #10486 > > match exit_code with -00:08:28 v #10487 > > | Some exit_code => exit_code, None, Some -00:08:28 v #10488 > > channel_receiver' -00:08:28 v #10489 > > | None => -00:08:28 v #10490 > > -1, -00:08:28 v #10491 > > ("runtime.execute_with_options -00:08:28 v #10492 > > exit_code=None" |> sm'.to_std_string |> Some), -00:08:28 v #10493 > > Some channel_receiver' -00:08:28 v #10494 > > | Error error => -00:08:28 v #10495 > > trace Critical -00:08:28 v #10496 > > fun () => "runtime.execute_with_options -00:08:28 v #10497 > > output error" -00:08:28 v #10498 > > fun () => { error } -00:08:28 v #10499 > > -2i32, error |> Some, None -00:08:28 v #10500 > > | Error error => -00:08:28 v #10501 > > trace Critical -00:08:28 v #10502 > > fun () => "runtime.execute_with_options / child -00:08:28 v #10503 > > error" -00:08:28 v #10504 > > fun () => { error } -00:08:28 v #10505 > > -1i32, error |> Some, None -00:08:28 v #10506 > > |> function -00:08:28 v #10507 > > | exit_code, std_trace, channel_receiver => -00:08:28 v #10508 > > inl std_trace = -00:08:28 v #10509 > > channel_receiver -00:08:28 v #10510 > > |> optionm'.box -00:08:28 v #10511 > > |> optionm'.map' fun channel_receiver => -00:08:28 v #10512 > > channel_receiver -00:08:28 v #10513 > > |> threading.arc_mutex_lock -00:08:28 v #10514 > > |> resultm.unwrap' -00:08:28 v #10515 > > |> iter.iter -00:08:28 v #10516 > > |> iter_collect'' -00:08:28 v #10517 > > |> am'.vec_map sm'.from_std_string -00:08:28 v #10518 > > |> am'.from_vec -00:08:28 v #10519 > > |> fun x => x : _ i32 _ -00:08:28 v #10520 > > |> seq.of_array -00:08:28 v #10521 > > |> sm'.concat "\n" -00:08:28 v #10522 > > |> optionm'.default_value' ( -00:08:28 v #10523 > > std_trace -00:08:28 v #10524 > > |> optionm.map sm'.from_std_string -00:08:28 v #10525 > > |> optionm'.default_value "" -00:08:28 v #10526 > > ) -00:08:28 v #10527 > > trace Verbose -00:08:28 v #10528 > > fun () => "runtime.execute_with_options -00:08:28 v #10529 > > result" -00:08:28 v #10530 > > fun () => { exit_code std_trace_length = -00:08:28 v #10531 > > std_trace |> sm'.length : i32 } -00:08:28 v #10532 > > new_pair exit_code std_trace -00:08:28 v #10533 > > |> capture -00:08:28 v #10534 > > // |> async.new_future_move -00:08:28 v #10535 > > // |> async.block_on -00:08:28 v #10536 > > |> fun x => x () -00:08:28 v #10537 > > |> from_pair -00:08:28 v #10538 > > | _ => fun _ => null () -00:08:29 v #10539 > > -00:08:29 v #10540 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:08:29 v #10541 > > │ #### execute -00:08:29 v #10542 > > -00:08:29 v #10543 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:08:29 v #10544 > > let execute command = -00:08:29 v #10545 > > execution_options fun x => { x with -00:08:29 v #10546 > > command = command -00:08:29 v #10547 > > } -00:08:29 v #10548 > > |> execute_with_options -00:08:29 v #10549 > > -00:08:29 v #10550 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:08:29 v #10551 > > │ #### tests -00:08:29 v #10552 > > -00:08:29 v #10553 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:08:29 v #10554 > > //// test -00:08:29 v #10555 > > ///! rust -d chrono encoding_rs encoding_rs_io regex sha2 -00:08:29 v #10556 > > -00:08:29 v #10557 > > inl content = "╭─[[ 你好,世界!こんにちは世界! ]]─╮" -00:08:29 v #10558 > > -00:08:29 v #10559 > > inl file_name = join "test.txt" -00:08:29 v #10560 > > inl temp_dir, disposable = -00:08:29 v #10561 > > (file_name, content) -00:08:29 v #10562 > > |> sm'.format_debug -00:08:29 v #10563 > > |> crypto.hash_text -00:08:29 v #10564 > > |> file_system.create_temp_dir' -00:08:29 v #10565 > > disposable |> use |> ignore -00:08:29 v #10566 > > inl path = temp_dir </> file_name |> file_system.normalize_path -00:08:29 v #10567 > > inl exit_code, result = -00:08:29 v #10568 > > execute $'\@$"pwsh -c ""[[IO.File]]::ReadAllText(\'{!path}\')"""' -00:08:29 v #10569 > > exit_code |> _assert_eq 1 -00:08:29 v #10570 > > result |> _assert sm'.contains "not find file" -00:08:29 v #10571 > > -00:08:29 v #10572 > > content |> file_system.write_all_text path -00:08:29 v #10573 > > -00:08:29 v #10574 > > execution_options fun x => { x with -00:08:29 v #10575 > > command = $'\@$"cat ""{!file_name}"""' -00:08:29 v #10576 > > working_directory = Some temp_dir |> optionm'.box -00:08:29 v #10577 > > } -00:08:29 v #10578 > > |> execute_with_options -00:08:29 v #10579 > > |> ignore -00:08:29 v #10580 > > -00:08:29 v #10581 > > inl exit_code, output = -00:08:29 v #10582 > > execution_options fun x => { x with -00:08:29 v #10583 > > command = $'\@$"pwsh -c ""[[System.Console]]::OutputEncoding = -00:08:29 v #10584 > > [[System.Text.Encoding]]::UTF8; [[IO.File]]::ReadAllText(\'{!file_name}\')"""' -00:08:29 v #10585 > > working_directory = Some temp_dir |> optionm'.box -00:08:29 v #10586 > > } -00:08:29 v #10587 > > |> execute_with_options -00:08:29 v #10588 > > -00:08:29 v #10589 > > exit_code |> _assert_eq 0i32 -00:08:29 v #10590 > > output |> _assert_eq content -00:08:46 v #10591 > > -00:08:46 v #10592 > > ── [ 16.85s - return value ] ─────────────────────────────────────────────────── -00:08:46 v #10593 > > │ 00:00:00 v #1 file_system.create_dir / { dir = -00:08:46 v #10594 > > C:\Users\i574n\AppData\Local\Temp\!create_temp_path_\spiral_be65b13b22921c395dd0 -00:08:46 v #10595 > > 1a2bf5805c9661bc9365b15f6bbfed726c904f4dd548\9242780b-ce0e-9155-5e07-f6ee5667aa1 -00:08:46 v #10596 > > 6 } -00:08:46 v #10597 > > │ 00:00:00 d #2 runtime.execute_with_options / { -00:08:46 v #10598 > > file_name = pwsh; arguments = ["-c", -00:08:46 v #10599 > > "[IO.File]::ReadAllText('c:/Users/i574n/AppData/Local/Temp/!create_temp_path_/sp -00:08:46 v #10600 > > iral_be65b13b22921c395dd01a2bf5805c9661bc9365b15f6bbfed726c904f4dd548/9242780b-c -00:08:46 v #10601 > > e0e-9155-5e07-f6ee5667aa16/test.txt')"]; options = { command = pwsh -c -00:08:46 v #10602 > > "[IO.File]::ReadAllText('c:/Users/i574n/AppData/Local/Temp/!create_temp_path_/sp -00:08:46 v #10603 > > iral_be65b13b22921c395dd01a2bf5805c9661bc9365b15f6bbfed726c904f4dd548/9242780b-c -00:08:46 v #10604 > > e0e-9155-5e07-f6ee5667aa16/test.txt')"; cancellation_token = None; -00:08:46 v #10605 > > environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace -00:08:46 v #10606 > > = true; working_directory = None } } -00:08:46 v #10607 > > │ 00:00:00 v #3 ! MethodInvocationException: -00:08:46 v #10608 > > Exception calling "ReadAllText" with "1" argument(s): "Could not find file -00:08:46 v #10609 > > 'c:\Users\i574n\AppData\Local\Temp\!create_temp_path_\spiral_be65b13b22921c395dd -00:08:46 v #10610 > > 01a2bf5805c9661bc9365b15f6bbfed726c904f4dd548\9242780b-ce0e-9155-5e07-f6ee5667aa -00:08:46 v #10611 > > 16\test.txt'." -00:08:46 v #10612 > > │ 00:00:00 v #4 runtime.execute_with_options / result / { -00:08:46 v #10613 > > exit_code = 1; std_trace_length = 304 } -00:08:46 v #10614 > > │ __assert_eq / actual: 1 / expected: 1 -00:08:46 v #10615 > > │ __assert / actual: "not find file" / expected: -00:08:46 v #10616 > > "MethodInvocationException: Exception calling "ReadAllText" with -00:08:46 v #10617 > > "1" argument...execute_with_options / { file_name = cat; arguments = -00:08:46 v #10618 > > ["test.txt"]; options = { command = cat "test.txt"; cancellation_token = None; -00:08:46 v #10619 > > environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace -00:08:46 v #10620 > > = true; working_directory = Some( -00:08:46 v #10621 > > │ -00:08:46 v #10622 > > "C:\Users\i574n\AppData\Local\Temp\!create_temp_path_\spiral_be65b13b22921c395dd -00:08:46 v #10623 > > 01a2bf5805c9661bc9365b15f6bbfed726c904f4dd548\9242780b-ce0e-9155-5e07-f6ee5667aa -00:08:46 v #10624 > > 16", -00:08:46 v #10625 > > │ ) } } -00:08:46 v #10626 > > │ 00:00:01 v #6 > ╭─[ 你好,世界!こんにちは世界! ]─╮ -00:08:46 v #10627 > > │ 00:00:01 v #7 runtime.execute_with_options / result / { -00:08:46 v #10628 > > exit_code = 0; std_trace_length = 22 } -00:08:46 v #10629 > > │ 00:00:01 d #8 runtime.execute_with_options / { -00:08:46 v #10630 > > file_name = pwsh; arguments = ["-c", "[System.Console]::OutputEncoding = -00:08:46 v #10631 > > [System.Text.Encoding]::UTF8; [IO.File]::ReadAllText('test.txt')"]; options = { -00:08:46 v #10632 > > command = pwsh -c "[System.Console]::OutputEncoding = -00:08:46 v #10633 > > [System.Text.Encoding]::UTF8; [IO.File]::ReadAllText('test.txt')"; -00:08:46 v #10634 > > cancellation_token = None; environment_variables = Array(MutCell([])); on_line = -00:08:46 v #10635 > > None; stdin = None; trace = true; working_directory = Some( -00:08:46 v #10636 > > │ -00:08:46 v #10637 > > "C:\Users\i574n\AppData\Local\Temp\!create_temp_path_\spiral_be65b13b22921c395dd -00:08:46 v #10638 > > 01a2bf5805c9661bc9365b15f6bbfed726c904f4dd548\9242780b-ce0e-9155-5e07-f6ee5667aa -00:08:46 v #10639 > > 16", -00:08:46 v #10640 > > │ ) } } -00:08:46 v #10641 > > │ 00:00:02 v #9 > ╭─[ 你好,世界!こんにちは世界! ]─╮ -00:08:46 v #10642 > > │ 00:00:02 v #10 runtime.execute_with_options / result -00:08:46 v #10643 > > { exit_code = 0; std_trace_length = 22 } -00:08:46 v #10644 > > │ __assert_eq / actual: 0 / expected: 0 -00:08:46 v #10645 > > │ __assert_eq / actual: "╭─[ 你好,世界!こんにちは世界! ]─╮" -00:08:46 v #10646 > > / expected: "╭─[ 你好,世界!こんにちは世界! ]─╮" -00:08:46 v #10647 > > │ -00:08:46 v #10648 > > -00:08:46 v #10649 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:08:46 v #10650 > > │ ### execute_retry -00:08:46 v #10651 > > -00:08:46 v #10652 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:08:46 v #10653 > > let execute_retry retries options = -00:08:46 v #10654 > > fun () => -00:08:46 v #10655 > > inl exit_code, result = options |> execute_with_options -00:08:46 v #10656 > > if exit_code = 0 -00:08:46 v #10657 > > then Ok (exit_code, result) -00:08:46 v #10658 > > else Error (exit_code, result) -00:08:46 v #10659 > > |> retry_fn' retries -00:08:47 v #10660 > > -00:08:47 v #10661 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:08:47 v #10662 > > │ ## main -00:08:47 v #10663 > > -00:08:47 v #10664 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:08:47 v #10665 > > inl main () = -00:08:47 v #10666 > > init_trace_state None -00:08:47 v #10667 > > $'let current_process_kill () = !current_process_kill ()' : () -00:08:47 v #10668 > > $'let execute_async x = !execute_async x' : () -00:08:47 v #10669 > > $'let execute_with_options_async x = !execute_with_options_async x' : () -00:08:47 v #10670 > > inl execution_options fn = -00:08:47 v #10671 > > execution_options fun x => -00:08:47 v #10672 > > x -00:08:47 v #10673 > > |> heap -00:08:47 v #10674 > > |> fn -00:08:47 v #10675 > > |> fun x => !x -00:08:47 v #10676 > > $'let execution_options x = !execution_options x' : () -00:08:47 v #10677 > > inl split_args x = x |> split_args |> resultm.box -00:08:47 v #10678 > > $'let split_args x = !split_args x' : () -00:08:53 v #10679 > 00:01:55 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 92738 } -00:08:53 v #10680 > 00:01:55 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/lib/spiral/runtime.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/lib/spiral/runtime.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:08:54 v #10681 > 00:01:56 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/lib/spiral/runtime.dib.ipynb to html -00:08:54 v #10682 > 00:01:56 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. -00:08:54 v #10683 > 00:01:56 v #7 ! validate(nb) -00:08:54 v #10684 > 00:01:57 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 -00:08:54 v #10685 > 00:01:57 v #9 ! return _pygments_highlight( -00:08:56 v #10686 > 00:01:58 v #10 ! [NbConvertApp] Writing 593007 bytes to c:\home\git\polyglot\lib\spiral\runtime.dib.html -00:08:56 v #10687 > 00:01:58 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 856 } -00:08:56 v #10688 > 00:01:58 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 856 } -00:08:56 v #10689 > 00:01:58 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/runtime.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/runtime.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:08:57 v #10690 > 00:01:59 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } -00:08:57 v #10691 > 00:01:59 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } -00:08:57 v #10692 > 00:01:59 d #16 spiral.run / dib / { exit_code = 0; result_length = 93653 } -00:08:57 d #10693 runtime.execute_with_options_async / { exit_code = 0; output_length = 100495 } -00:08:57 d #12 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path runtime.dib --retries 3 -00:08:57 d #10694 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path trace.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path trace.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } -00:08:57 v #10695 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "trace.dib", "--retries", "3"])) } -00:08:57 v #10696 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/lib/spiral/trace.dib", "--output-path", "c:/home/git/polyglot/lib/spiral/trace.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/lib/spiral/trace.dib" --output-path "c:/home/git/polyglot/lib/spiral/trace.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } -00:08:58 v #10697 > > -00:08:58 v #10698 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:08:58 v #10699 > > │ # trace -00:09:01 v #10700 > > -00:09:01 v #10701 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:09:01 v #10702 > > //// test -00:09:01 v #10703 > > -00:09:01 v #10704 > > open testing -00:09:02 v #10705 > > -00:09:02 v #10706 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:09:02 v #10707 > > │ ## trace -00:09:02 v #10708 > > -00:09:02 v #10709 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:09:02 v #10710 > > │ ### trace_level -00:09:02 v #10711 > > -00:09:02 v #10712 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:09:02 v #10713 > > union trace_level = -00:09:02 v #10714 > > | Verbose -00:09:02 v #10715 > > | Debug -00:09:02 v #10716 > > | Info -00:09:02 v #10717 > > | Warning -00:09:02 v #10718 > > | Critical -00:09:03 v #10719 > > -00:09:03 v #10720 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:09:03 v #10721 > > │ ### read_state -00:09:03 v #10722 > > -00:09:03 v #10723 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:09:03 v #10724 > > inl read_state () = -00:09:03 v #10725 > > run_target function -00:09:03 v #10726 > > | Rust (Wasm) => fun () => -00:09:03 v #10727 > > { -00:09:03 v #10728 > > trace_level = None -00:09:03 v #10729 > > repl_start = None -00:09:03 v #10730 > > } -00:09:03 v #10731 > > | Rust (Contract) => fun () => -00:09:03 v #10732 > > { -00:09:03 v #10733 > > trace_level = None -00:09:03 v #10734 > > repl_start = -00:09:03 v #10735 > > open rust.rust_operators -00:09:03 v #10736 > > inl automation = env.get_environment_variable_comptime -00:09:03 v #10737 > > "AUTOMATION" -00:09:03 v #10738 > > if automation <>. "True" -00:09:03 v #10739 > > then None -00:09:03 v #10740 > > else -00:09:03 v #10741 > > inl timestamp : u64 = -00:09:03 v #10742 > > !\($'$"near_sdk::env::block_timestamp()"') -00:09:03 v #10743 > > timestamp |> i64 |> Some -00:09:03 v #10744 > > } -00:09:03 v #10745 > > | _ => fun () => -00:09:03 v #10746 > > join -00:09:03 v #10747 > > { -00:09:03 v #10748 > > trace_level = -00:09:03 v #10749 > > "TRACE_LEVEL" -00:09:03 v #10750 > > |> env.get_environment_variable -00:09:03 v #10751 > > |> reflection.union_try_pick -00:09:03 v #10752 > > repl_start = -00:09:03 v #10753 > > inl automation = env.get_environment_variable -00:09:03 v #10754 > > "AUTOMATION" -00:09:03 v #10755 > > if automation <>. "True" -00:09:03 v #10756 > > then None -00:09:03 v #10757 > > else -00:09:03 v #10758 > > date_time.now () -00:09:03 v #10759 > > |> date_time.ticks -00:09:03 v #10760 > > |> fun (date_time.timestamp x) => x |> convert -00:09:03 v #10761 > > |> Some -00:09:03 v #10762 > > } -00:09:03 v #10763 > > -00:09:03 v #10764 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:09:03 v #10765 > > │ ### trace_state -00:09:03 v #10766 > > -00:09:03 v #10767 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:09:03 v #10768 > > type trace_state = -00:09:03 v #10769 > > { -00:09:03 v #10770 > > count : mut i64 -00:09:03 v #10771 > > trace_file : mut (string -> ()) -00:09:03 v #10772 > > enabled : mut bool -00:09:03 v #10773 > > acc : mut string -00:09:03 v #10774 > > level : mut trace_level -00:09:03 v #10775 > > repl_start : optionm'.option' i64 -00:09:03 v #10776 > > } -00:09:04 v #10777 > > -00:09:04 v #10778 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:09:04 v #10779 > > │ ### new_trace_state -00:09:04 v #10780 > > -00:09:04 v #10781 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:09:04 v #10782 > > let new_trace_state trace_level' = -00:09:04 v #10783 > > inl { repl_start trace_level } = read_state () -00:09:04 v #10784 > > { -00:09:04 v #10785 > > count = mut 1i64 -00:09:04 v #10786 > > trace_file = mut ignore -00:09:04 v #10787 > > enabled = mut true -00:09:04 v #10788 > > acc = mut "" -00:09:04 v #10789 > > level = trace_level |> optionm'.default_value trace_level' |> mut -00:09:04 v #10790 > > repl_start = repl_start |> optionm'.box -00:09:04 v #10791 > > } : trace_state -00:09:04 v #10792 > > -00:09:04 v #10793 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:09:04 v #10794 > > │ ### init_trace_state -00:09:04 v #10795 > > -00:09:04 v #10796 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:09:04 v #10797 > > inl init_trace_state trace_level : () = -00:09:04 v #10798 > > inl trace_level = trace_level |> optionm'.default_value Verbose -00:09:04 v #10799 > > backend_switch { -00:09:04 v #10800 > > Fsharp = fun () => -00:09:04 v #10801 > > backend_switch { -00:09:04 v #10802 > > Fsharp = fun () => -00:09:04 v #10803 > > global "module TraceState = let mutable trace_state = None" -00:09:04 v #10804 > > } -00:09:04 v #10805 > > fun () => -00:09:04 v #10806 > > if $'TraceState.trace_state.IsNone' then -00:09:04 v #10807 > > inl trace_state = new_trace_state trace_level |> -00:09:04 v #10808 > > optionm'.some' -00:09:04 v #10809 > > $'TraceState.trace_state <- !trace_state ' : () -00:09:04 v #10810 > > |> exec_unit -00:09:04 v #10811 > > Python = fun () => -00:09:04 v #10812 > > global "class TraceState: trace_state = None" -00:09:04 v #10813 > > $'if TraceState.trace_state is None: TraceState.trace_state = -00:09:04 v #10814 > > !new_trace_state(!trace_level)' : () -00:09:04 v #10815 > > } -00:09:05 v #10816 > > -00:09:05 v #10817 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:09:05 v #10818 > > │ ### get_trace_state_or_init -00:09:05 v #10819 > > -00:09:05 v #10820 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:09:05 v #10821 > > inl get_trace_state_or_init trace_level : trace_state = -00:09:05 v #10822 > > init_trace_state trace_level -00:09:05 v #10823 > > backend_switch { -00:09:05 v #10824 > > Fsharp = fun () => -00:09:05 v #10825 > > $'TraceState.trace_state.Value' : trace_state -00:09:05 v #10826 > > Python = fun () => -00:09:05 v #10827 > > $'TraceState.trace_state' : trace_state -00:09:05 v #10828 > > } -00:09:05 v #10829 > > -00:09:05 v #10830 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:09:05 v #10831 > > │ ### test_trace_level -00:09:05 v #10832 > > -00:09:05 v #10833 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:09:05 v #10834 > > let test_trace_level level : bool = -00:09:05 v #10835 > > inl state = get_trace_state_or_init None -00:09:05 v #10836 > > inl level' = *state.level -00:09:05 v #10837 > > if *state.enabled |> not -00:09:05 v #10838 > > then false -00:09:05 v #10839 > > else -00:09:05 v #10840 > > inl level : i32 = real real_core.union_tag level -00:09:05 v #10841 > > inl level' : i32 = real real_core.union_tag level' -00:09:05 v #10842 > > level >= level' -00:09:05 v #10843 > > -00:09:05 v #10844 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:09:05 v #10845 > > //// test -00:09:05 v #10846 > > ///! fsharp -00:09:05 v #10847 > > ///! cuda -00:09:05 v #10848 > > ///! rust -00:09:05 v #10849 > > ///! typescript -00:09:05 v #10850 > > ///! python -00:09:05 v #10851 > > -00:09:05 v #10852 > > test_trace_level Critical |> _assert_eq true -00:09:05 v #10853 > > test_trace_level Verbose |> _assert_eq true -00:09:05 v #10854 > > -00:09:05 v #10855 > > inl level = get_trace_state_or_init None .level -00:09:05 v #10856 > > level <- Debug -00:09:05 v #10857 > > test_trace_level Verbose |> _assert_eq false -00:09:05 v #10858 > > level <- Verbose -00:09:05 v #10859 > > test_trace_level Verbose |> _assert_eq true -00:09:10 v #10860 > > -00:09:10 v #10861 > > ── [ 4.94s - return value ] ──────────────────────────────────────────────────── -00:09:10 v #10862 > > │ -00:09:10 v #10863 > > │ .py output (Cuda): -00:09:10 v #10864 > > │ __assert_eq / actual: True / expected: True -00:09:10 v #10865 > > │ __assert_eq / actual: True / expected: True -00:09:10 v #10866 > > │ __assert_eq / actual: False / expected: False -00:09:10 v #10867 > > │ __assert_eq / actual: True / expected: True -00:09:10 v #10868 > > │ -00:09:10 v #10869 > > │ -00:09:10 v #10870 > > │ .rs output: -00:09:10 v #10871 > > │ __assert_eq / actual: true / expected: true -00:09:10 v #10872 > > │ __assert_eq / actual: true / expected: true -00:09:10 v #10873 > > │ __assert_eq / actual: false / expected: false -00:09:10 v #10874 > > │ __assert_eq / actual: true / expected: true -00:09:10 v #10875 > > │ -00:09:10 v #10876 > > │ -00:09:10 v #10877 > > │ .ts output: -00:09:10 v #10878 > > │ __assert_eq / actual: true / expected: true -00:09:10 v #10879 > > │ __assert_eq / actual: true / expected: true -00:09:10 v #10880 > > │ __assert_eq / actual: false / expected: false -00:09:10 v #10881 > > │ __assert_eq / actual: true / expected: true -00:09:10 v #10882 > > │ -00:09:10 v #10883 > > │ -00:09:10 v #10884 > > │ .py output: -00:09:10 v #10885 > > │ __assert_eq / actual: true / expected: true -00:09:10 v #10886 > > │ __assert_eq / actual: true / expected: true -00:09:10 v #10887 > > │ __assert_eq / actual: false / expected: false -00:09:10 v #10888 > > │ __assert_eq / actual: true / expected: true -00:09:10 v #10889 > > │ -00:09:10 v #10890 > > │ -00:09:10 v #10891 > > │ -00:09:10 v #10892 > > -00:09:10 v #10893 > > ── [ 4.95s - stdout ] ────────────────────────────────────────────────────────── -00:09:10 v #10894 > > │ .fsx output: -00:09:10 v #10895 > > │ __assert_eq / actual: true / expected: true -00:09:10 v #10896 > > │ __assert_eq / actual: true / expected: true -00:09:10 v #10897 > > │ __assert_eq / actual: false / expected: false -00:09:10 v #10898 > > │ __assert_eq / actual: true / expected: true -00:09:10 v #10899 > > │ -00:09:10 v #10900 > > -00:09:10 v #10901 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:09:10 v #10902 > > │ ### trace_raw -00:09:10 v #10903 > > -00:09:10 v #10904 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:09:10 v #10905 > > inl trace_raw level fn = -00:09:10 v #10906 > > fun () => -00:09:10 v #10907 > > if level |> test_trace_level then -00:09:10 v #10908 > > inl text = fn () -00:09:10 v #10909 > > join -00:09:10 v #10910 > > inl ({ count acc } & trace_state) = get_trace_state_or_init None -00:09:10 v #10911 > > fun () => -00:09:10 v #10912 > > count <- *count + 1 -00:09:10 v #10913 > > |> exec_unit -00:09:10 v #10914 > > open rust -00:09:10 v #10915 > > open rust.rust_operators -00:09:10 v #10916 > > run_target_args (fun () => text, console.write_line) function -00:09:10 v #10917 > > | Rust (Contract) => fun text, _ => -00:09:10 v #10918 > > inl new_acc = -00:09:10 v #10919 > > if *acc = "" -00:09:10 v #10920 > > then text -00:09:10 v #10921 > > elif text = "" -00:09:10 v #10922 > > then *acc -00:09:10 v #10923 > > else *acc +. "\n" +. text -00:09:10 v #10924 > > -00:09:10 v #10925 > > inl chunks = -00:09:10 v #10926 > > new_acc -00:09:10 v #10927 > > |> sm'.as_str -00:09:10 v #10928 > > |> sm'.chars -00:09:10 v #10929 > > |> rust.from_mut -00:09:10 v #10930 > > |> iter_collect -00:09:10 v #10931 > > |> am'.vec_chunks 15000 -00:09:10 v #10932 > > |> am'.vec_map sm'.from_iter -00:09:10 v #10933 > > -00:09:10 v #10934 > > inl chunks_len = chunks |> am'.vec_len |> i32 -00:09:10 v #10935 > > -00:09:10 v #10936 > > if text <>. "" && chunks_len <= 1 -00:09:10 v #10937 > > then acc <- new_acc -00:09:10 v #10938 > > else -00:09:10 v #10939 > > acc <- "" -00:09:10 v #10940 > > chunks -00:09:10 v #10941 > > |> am'.vec_for_each''' near.log -00:09:10 v #10942 > > | Rust _ => fun text, _ => -00:09:10 v #10943 > > !\\(text, $'\@"println\!(""{}"", $0)"') -00:09:10 v #10944 > > | _ => fun text, write_line => -00:09:10 v #10945 > > text |> write_line -00:09:10 v #10946 > > text |> *trace_state.trace_file -00:09:10 v #10947 > > |> exec_unit -00:09:11 v #10948 > > -00:09:11 v #10949 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:09:11 v #10950 > > │ ### trace -00:09:11 v #10951 > > -00:09:11 v #10952 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:09:11 v #10953 > > inl trace (level : trace_level) (text_fn : () -> string) (locals : () -> _) = -00:09:11 v #10954 > > fun () => -00:09:11 v #10955 > > inl trace_state = get_trace_state_or_init None -00:09:11 v #10956 > > inl time = -00:09:11 v #10957 > > join -00:09:11 v #10958 > > run_target fun target => -00:09:11 v #10959 > > match target with -00:09:11 v #10960 > > | Rust (Contract) => fun () => -00:09:11 v #10961 > > open rust.rust_operators -00:09:11 v #10962 > > open rust -00:09:11 v #10963 > > inl timestamp = near.block_timestamp () -00:09:11 v #10964 > > inl timestamp = -00:09:11 v #10965 > > match trace_state.repl_start |> optionm'.unbox with -00:09:11 v #10966 > > | Some repl_start => timestamp - u64 repl_start -00:09:11 v #10967 > > | None => timestamp -00:09:11 v #10968 > > inl timestamp_s = timestamp / 1_000_000_000 -00:09:11 v #10969 > > inl s = timestamp_s % 60 -00:09:11 v #10970 > > inl m = (timestamp_s / 60) % 60 -00:09:11 v #10971 > > inl h = (timestamp_s / 3600) % 24 -00:09:11 v #10972 > > inl str : sm'.std_string = -00:09:11 v #10973 > > !\\((h, m, s), -00:09:11 v #10974 > > $'$"format\!(\\\"{{:02}}:{{:02}}:{{:02}}\\\", $0, $1, $2)"') -00:09:11 v #10975 > > str |> sm'.from_std_string -00:09:11 v #10976 > > | _ => fun () => -00:09:11 v #10977 > > match trace_state.repl_start |> optionm'.unbox with -00:09:11 v #10978 > > | Some repl_start => -00:09:11 v #10979 > > inl t = -00:09:11 v #10980 > > date_time.now () -00:09:11 v #10981 > > |> date_time.ticks -00:09:11 v #10982 > > |> fun (date_time.timestamp x) => x |> convert -00:09:11 v #10983 > > |> flip (-) repl_start -00:09:11 v #10984 > > |> date_time.time_span -00:09:11 v #10985 > > date_time.date_time_milliseconds -00:09:11 v #10986 > > 1i32 1i32 1i32 -00:09:11 v #10987 > > (t |> date_time.hours) -00:09:11 v #10988 > > (t |> date_time.minutes) -00:09:11 v #10989 > > (t |> date_time.seconds) -00:09:11 v #10990 > > (t |> date_time.milliseconds) -00:09:11 v #10991 > > | None => date_time.now () -00:09:11 v #10992 > > |> date_time.format ( -00:09:11 v #10993 > > backend_switch { -00:09:11 v #10994 > > Fsharp = fun () => -00:09:11 v #10995 > > match target with -00:09:11 v #10996 > > | Rust _ => join "hh:mm:ss" -00:09:11 v #10997 > > | _ => join "HH:mm:ss" -00:09:11 v #10998 > > Python = fun () => "%H:%M:%S" -00:09:11 v #10999 > > } -00:09:11 v #11000 > > ) -00:09:11 v #11001 > > inl level_str = -00:09:11 v #11002 > > join -00:09:11 v #11003 > > inl level_str = -00:09:11 v #11004 > > level -00:09:11 v #11005 > > |> reflection.union_to_string -00:09:11 v #11006 > > |> sm'.to_lower -00:09:11 v #11007 > > |> sm'.index 0i32 -00:09:11 v #11008 > > |> sm'.format -00:09:11 v #11009 > > run_target function -00:09:11 v #11010 > > | Rust _ => fun () => -00:09:11 v #11011 > > open rust -00:09:11 v #11012 > > open rust.rust_operators -00:09:11 v #11013 > > inl color : rust.ref sm'.str = -00:09:11 v #11014 > > match level with -00:09:11 v #11015 > > | Verbose => -00:09:11 v #11016 > > !\($'"inline_colorization::color_bright_black"') -00:09:11 v #11017 > > | Debug => -00:09:11 v #11018 > > !\($'"inline_colorization::color_bright_blue"') -00:09:11 v #11019 > > | Info => -00:09:11 v #11020 > > !\($'"inline_colorization::color_bright_green"') -00:09:11 v #11021 > > | Warning => !\($'"inline_colorization::color_yellow"') -00:09:11 v #11022 > > | Critical => -00:09:11 v #11023 > > !\($'"inline_colorization::color_bright_red"') -00:09:11 v #11024 > > inl level_str = level_str |> sm'.as_str -00:09:11 v #11025 > > inl color_reset : rust.ref sm'.str = -00:09:11 v #11026 > > !\($'"inline_colorization::color_reset"') -00:09:11 v #11027 > > !\\((color, level_str, color_reset), -00:09:11 v #11028 > > $'$"format\!(\\\"{{}}{{}}{{}}\\\", $0, $1, $2)"') -00:09:11 v #11029 > > |> sm'.from_std_string -00:09:11 v #11030 > > | _ => fun () => -00:09:11 v #11031 > > inl color = -00:09:11 v #11032 > > match level with -00:09:11 v #11033 > > | Verbose => $'"\\u001b[[90m"' -00:09:11 v #11034 > > | Debug => $'"\\u001b[[94m"' -00:09:11 v #11035 > > | Info => $'"\\u001b[[92m"' -00:09:11 v #11036 > > | Warning => $'"\\u001b[[93m"' -00:09:11 v #11037 > > | Critical => $'"\\u001b[[91m"' -00:09:11 v #11038 > > inl color_reset = join $'"\\u001b[[0m"' -00:09:11 v #11039 > > color +. level_str +. color_reset -00:09:11 v #11040 > > inl text = text_fn () -00:09:11 v #11041 > > if text = "" -00:09:11 v #11042 > > then "" -00:09:11 v #11043 > > else -00:09:11 v #11044 > > inl locals = locals () -00:09:11 v #11045 > > join -00:09:11 v #11046 > > inl locals = locals |> sm'.format -00:09:11 v #11047 > > inl count = *trace_state.count -00:09:11 v #11048 > > backend_switch { -00:09:11 v #11049 > > Fsharp = fun () => $'$"{!time} {!level_str} #{!count} -00:09:11 v #11050 > > %s{!text} / {!locals}"' : string -00:09:11 v #11051 > > Python = fun () => $'f"{!time} {!level_str} #{!count} -00:09:11 v #11052 > > {!text} / {!locals}"' : string -00:09:11 v #11053 > > } -00:09:11 v #11054 > > |> fun x => -00:09:11 v #11055 > > join -00:09:11 v #11056 > > x -00:09:11 v #11057 > > |> sm'.trim_start [[]] -00:09:11 v #11058 > > |> sm'.trim_end [[ ' '; '/' ]] -00:09:11 v #11059 > > |> trace_raw level -00:09:11 v #11060 > > -00:09:11 v #11061 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:09:11 v #11062 > > //// test -00:09:11 v #11063 > > ///! fsharp -00:09:11 v #11064 > > ///! cuda -00:09:11 v #11065 > > ///! rust -00:09:11 v #11066 > > ///! typescript -00:09:11 v #11067 > > ///! python -00:09:11 v #11068 > > -00:09:11 v #11069 > > trace Debug (fun () => "test1") id -00:09:11 v #11070 > > trace Debug (fun () => "test2") id -00:09:11 v #11071 > > get_trace_state_or_init None .count -00:09:11 v #11072 > > |> fun x => *x -00:09:11 v #11073 > > |> _assert_eq 3 -00:09:15 v #11074 > > -00:09:15 v #11075 > > ── [ 3.96s - return value ] ──────────────────────────────────────────────────── -00:09:15 v #11076 > > │ -00:09:15 v #11077 > > │ .py output (Cuda): -00:09:15 v #11078 > > │ 00:00:00 d #1 test1 -00:09:15 v #11079 > > │ 00:00:00 d #2 test2 -00:09:15 v #11080 > > │ __assert_eq / actual: 3 / expected: 3 -00:09:15 v #11081 > > │ -00:09:15 v #11082 > > │ -00:09:15 v #11083 > > │ .rs output: -00:09:15 v #11084 > > │ 00:00:00 d #1 test1 -00:09:15 v #11085 > > │ 00:00:00 d #2 test2 -00:09:15 v #11086 > > │ __assert_eq / actual: 3 / expected: 3 -00:09:15 v #11087 > > │ -00:09:15 v #11088 > > │ -00:09:15 v #11089 > > │ .ts output: -00:09:15 v #11090 > > │ 00:00:00 d #1 test1 -00:09:15 v #11091 > > │ 00:00:00 d #2 test2 -00:09:15 v #11092 > > │ __assert_eq / actual: 3 / expected: 3 -00:09:15 v #11093 > > │ -00:09:15 v #11094 > > │ -00:09:15 v #11095 > > │ .py output: -00:09:15 v #11096 > > │ 00:00:00 d #1 test1 -00:09:15 v #11097 > > │ 00:00:00 d #2 test2 -00:09:15 v #11098 > > │ __assert_eq / actual: 3 / expected: 3 -00:09:15 v #11099 > > │ -00:09:15 v #11100 > > │ -00:09:15 v #11101 > > │ -00:09:15 v #11102 > > -00:09:15 v #11103 > > ── [ 3.96s - stdout ] ────────────────────────────────────────────────────────── -00:09:15 v #11104 > > │ .fsx output: -00:09:15 v #11105 > > │ 00:00:00 d #1 test1 -00:09:15 v #11106 > > │ 00:00:00 d #2 test2 -00:09:15 v #11107 > > │ __assert_eq / actual: 3L / expected: 3L -00:09:15 v #11108 > > │ -00:09:15 v #11109 > > -00:09:15 v #11110 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:09:15 v #11111 > > │ ## main -00:09:15 v #11112 > > -00:09:15 v #11113 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:09:15 v #11114 > > inl main () = -00:09:15 v #11115 > > init_trace_state None -00:09:15 v #11116 > > inl trace level text_fn (locals : () -> string) = trace level text_fn locals -00:09:15 v #11117 > > $'let trace x = !trace x' : () -00:09:16 v #11118 > 00:00:19 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 16617 } -00:09:16 v #11119 > 00:00:19 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/lib/spiral/trace.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/lib/spiral/trace.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:09:17 v #11120 > 00:00:20 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/lib/spiral/trace.dib.ipynb to html -00:09:17 v #11121 > 00:00:20 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. -00:09:17 v #11122 > 00:00:20 v #7 ! validate(nb) -00:09:18 v #11123 > 00:00:21 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 -00:09:18 v #11124 > 00:00:21 v #9 ! return _pygments_highlight( -00:09:18 v #11125 > 00:00:21 v #10 ! [NbConvertApp] Writing 324967 bytes to c:\home\git\polyglot\lib\spiral\trace.dib.html -00:09:18 v #11126 > 00:00:21 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 852 } -00:09:18 v #11127 > 00:00:21 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 852 } -00:09:18 v #11128 > 00:00:21 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/trace.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/trace.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:09:19 v #11129 > 00:00:22 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } -00:09:19 v #11130 > 00:00:22 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } -00:09:19 v #11131 > 00:00:22 d #16 spiral.run / dib / { exit_code = 0; result_length = 17528 } -00:09:19 d #11132 runtime.execute_with_options_async / { exit_code = 0; output_length = 20896 } -00:09:19 d #13 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path trace.dib --retries 3 -00:09:19 d #11133 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path am'.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path am'.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } -00:09:19 v #11134 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "am'.dib", "--retries", "3"])) } -00:09:19 v #11135 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/lib/spiral/am'.dib", "--output-path", "c:/home/git/polyglot/lib/spiral/am'.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/lib/spiral/am'.dib" --output-path "c:/home/git/polyglot/lib/spiral/am'.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } -00:09:20 v #11136 > > -00:09:20 v #11137 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:09:20 v #11138 > > │ # am' -00:09:23 v #11139 > > -00:09:23 v #11140 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:09:23 v #11141 > > //// test -00:09:23 v #11142 > > -00:09:23 v #11143 > > open testing -00:09:25 v #11144 > > -00:09:25 v #11145 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:09:25 v #11146 > > open rust -00:09:25 v #11147 > > open rust_operators -00:09:25 v #11148 > > -00:09:25 v #11149 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:09:25 v #11150 > > │ ## am' -00:09:25 v #11151 > > -00:09:25 v #11152 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:09:25 v #11153 > > │ ### length -00:09:25 v #11154 > > -00:09:25 v #11155 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:09:25 v #11156 > > inl length forall dim {int} el. (a : a dim el) : dim = -00:09:25 v #11157 > > a |> length -00:09:25 v #11158 > > -00:09:25 v #11159 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:09:25 v #11160 > > │ ### index -00:09:25 v #11161 > > -00:09:25 v #11162 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:09:25 v #11163 > > inl index forall dim {int} el. (i : dim) (a : a dim el) : el = -00:09:25 v #11164 > > backend_switch { -00:09:25 v #11165 > > Fsharp = fun () => index a i -00:09:25 v #11166 > > Python = fun () => $'!a[[!i]]' : el -00:09:25 v #11167 > > } -00:09:26 v #11168 > > -00:09:26 v #11169 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:09:26 v #11170 > > │ ### index_base -00:09:26 v #11171 > > -00:09:26 v #11172 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:09:26 v #11173 > > inl index_base forall el. (i : int) (ar : array_base el) : el = -00:09:26 v #11174 > > ar |> a |> index i -00:09:26 v #11175 > > -00:09:26 v #11176 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:09:26 v #11177 > > │ ### base -00:09:26 v #11178 > > -00:09:26 v #11179 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:09:26 v #11180 > > inl base forall dim {int} el. ((a a) : a dim el) : array_base el = -00:09:26 v #11181 > > a -00:09:27 v #11182 > > -00:09:27 v #11183 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:09:27 v #11184 > > │ ### base' -00:09:27 v #11185 > > -00:09:27 v #11186 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:09:27 v #11187 > > inl base' forall el. ((a a) : a int el) : array_base el = -00:09:27 v #11188 > > a -00:09:27 v #11189 > > -00:09:27 v #11190 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:09:27 v #11191 > > │ ### generic_equable -00:09:27 v #11192 > > -00:09:27 v #11193 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:09:27 v #11194 > > inl generic_equable x1 x2 = -00:09:27 v #11195 > > if length x1 <>.. length x2 -00:09:27 v #11196 > > then false -00:09:27 v #11197 > > else -00:09:27 v #11198 > > let rec loop i = -00:09:27 v #11199 > > if i < length x1 -00:09:27 v #11200 > > then index i x1 = index i x2 && loop (i + 1) -00:09:27 v #11201 > > else true -00:09:27 v #11202 > > loop 0 -00:09:28 v #11203 > > -00:09:28 v #11204 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:09:28 v #11205 > > │ ### equable -00:09:28 v #11206 > > -00:09:28 v #11207 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:09:28 v #11208 > > instance equable a dim {number; int} t = generic_equable -00:09:28 v #11209 > > -00:09:28 v #11210 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:09:28 v #11211 > > │ ### append -00:09:28 v #11212 > > -00:09:28 v #11213 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:09:28 v #11214 > > instance append a dim {int; number} t = am.append -00:09:28 v #11215 > > -00:09:28 v #11216 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:09:28 v #11217 > > //// test -00:09:28 v #11218 > > ///! fsharp -00:09:28 v #11219 > > ///! cuda -00:09:28 v #11220 > > ///! rust -00:09:28 v #11221 > > ///! typescript -00:09:28 v #11222 > > ///! python -00:09:28 v #11223 > > -00:09:28 v #11224 > > a' ;[[ -1i64; 0 ]] ++ a' ;[[ 1; 2 ]] -00:09:28 v #11225 > > |> _assert_eq (a' ;[[ -1; 0; 1; 2 ]]) -00:09:33 v #11226 > > -00:09:33 v #11227 > > ── [ 4.90s - return value ] ──────────────────────────────────────────────────── -00:09:33 v #11228 > > │ .py output (Cuda): -00:09:33 v #11229 > > │ __assert_eq / actual: [-1 0 1 2] / expected: [-1 0 1 2] -00:09:33 v #11230 > > │ -00:09:33 v #11231 > > │ .rs output: -00:09:33 v #11232 > > │ __assert_eq / actual: Array(MutCell([-1, 0, 1, 2])) -00:09:33 v #11233 > > expected: Array(MutCell([-1, 0, 1, 2])) -00:09:33 v #11234 > > │ -00:09:33 v #11235 > > │ .ts output: -00:09:33 v #11236 > > │ __assert_eq / actual: -1,0,1,2 / expected: -1,0,1,2 -00:09:33 v #11237 > > │ -00:09:33 v #11238 > > │ .py output: -00:09:33 v #11239 > > │ __assert_eq / actual: [-1, 0, 1, 2] / expected: array('q', -00:09:33 v #11240 > > [-1, 0, 1, 2]) -00:09:33 v #11241 > > │ -00:09:33 v #11242 > > │ -00:09:33 v #11243 > > -00:09:33 v #11244 > > ── [ 4.91s - stdout ] ────────────────────────────────────────────────────────── -00:09:33 v #11245 > > │ .fsx output: -00:09:33 v #11246 > > │ __assert_eq / actual: [|-1L; 0L; 1L; 2L|] / expected: [|-1L; -00:09:33 v #11247 > > 0L; 1L; 2L|] -00:09:33 v #11248 > > │ -00:09:33 v #11249 > > -00:09:33 v #11250 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:09:33 v #11251 > > │ ### map_base -00:09:33 v #11252 > > -00:09:33 v #11253 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:09:33 v #11254 > > inl map_base forall t u. (fn : t -> u) (x : array_base t) : array_base u = -00:09:33 v #11255 > > a x -00:09:33 v #11256 > > |> am.map fn -00:09:33 v #11257 > > |> fun (a x : _ int _) => x -00:09:34 v #11258 > > -00:09:34 v #11259 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:09:34 v #11260 > > │ ### collect -00:09:34 v #11261 > > -00:09:34 v #11262 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:09:34 v #11263 > > inl collect forall t r. (fn : t -> a int r) (items : a int t) : a int r = -00:09:34 v #11264 > > items -00:09:34 v #11265 > > |> am.map fn -00:09:34 v #11266 > > |> am.fold (++) (a ;[[]]) -00:09:34 v #11267 > > -00:09:34 v #11268 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:09:34 v #11269 > > │ ### init -00:09:34 v #11270 > > -00:09:34 v #11271 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:09:34 v #11272 > > inl init n : array_base _ = -00:09:34 v #11273 > > am.init n id -00:09:34 v #11274 > > |> fun (a x : _ int _) => x -00:09:35 v #11275 > > -00:09:35 v #11276 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:09:35 v #11277 > > │ ### choose -00:09:35 v #11278 > > -00:09:35 v #11279 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:09:35 v #11280 > > inl choose f l = -00:09:35 v #11281 > > (l, [[]]) -00:09:35 v #11282 > > ||> am.foldBack fun x acc => -00:09:35 v #11283 > > match f x with -00:09:35 v #11284 > > | Some y => y :: acc -00:09:35 v #11285 > > | None => acc -00:09:35 v #11286 > > |> listm.toArray -00:09:35 v #11287 > > -00:09:35 v #11288 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:09:35 v #11289 > > //// test -00:09:35 v #11290 > > ///! fsharp -00:09:35 v #11291 > > ///! cuda -00:09:35 v #11292 > > ////! rust // v0.get_mut()[[v2.get().clone() as usize]] = match -00:09:35 v #11293 > > v1.get().clone().as_ref() { ^ expected `i32`, found `usize` -00:09:35 v #11294 > > ///! typescript -00:09:35 v #11295 > > ///! python -00:09:35 v #11296 > > -00:09:35 v #11297 > > 10 -00:09:35 v #11298 > > |> init -00:09:35 v #11299 > > |> fun x => a x : _ int _ -00:09:35 v #11300 > > |> choose (fun x => if x % 2 = 0 then Some x else None) -00:09:35 v #11301 > > |> _assert_eq (a' ;[[ 0; 2; 4; 6; 8 ]]) -00:09:37 v #11302 > > -00:09:37 v #11303 > > ── [ 2.46s - return value ] ──────────────────────────────────────────────────── -00:09:37 v #11304 > > │ .py output (Cuda): -00:09:37 v #11305 > > │ __assert_eq / actual: [0 2 4 6 8] / expected: [0 2 4 6 8] -00:09:37 v #11306 > > │ -00:09:37 v #11307 > > │ .ts output: -00:09:37 v #11308 > > │ __assert_eq / actual: 0,2,4,6,8 / expected: 0,2,4,6,8 -00:09:37 v #11309 > > │ -00:09:37 v #11310 > > │ .py output: -00:09:37 v #11311 > > │ __assert_eq / actual: [0, 2, 4, 6, 8] / expected: array('l', -00:09:37 v #11312 > > [0, 2, 4, 6, 8]) -00:09:37 v #11313 > > │ -00:09:37 v #11314 > > │ -00:09:37 v #11315 > > -00:09:37 v #11316 > > ── [ 2.46s - stdout ] ────────────────────────────────────────────────────────── -00:09:37 v #11317 > > │ .fsx output: -00:09:37 v #11318 > > │ __assert_eq / actual: [|0; 2; 4; 6; 8|] / expected: [|0; 2; -00:09:37 v #11319 > > 4; 6; 8|] -00:09:37 v #11320 > > │ -00:09:37 v #11321 > > -00:09:37 v #11322 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:09:37 v #11323 > > │ ### sum -00:09:37 v #11324 > > -00:09:37 v #11325 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:09:37 v #11326 > > inl sum a = -00:09:37 v #11327 > > a |> am.fold (+) 0 -00:09:38 v #11328 > > -00:09:38 v #11329 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:09:38 v #11330 > > //// test -00:09:38 v #11331 > > ///! fsharp -00:09:38 v #11332 > > ///! cuda -00:09:38 v #11333 > > ///! rust -00:09:38 v #11334 > > ///! typescript -00:09:38 v #11335 > > ///! python -00:09:38 v #11336 > > -00:09:38 v #11337 > > 10 -00:09:38 v #11338 > > |> init -00:09:38 v #11339 > > |> fun x => a x : _ int _ -00:09:38 v #11340 > > |> sum -00:09:38 v #11341 > > |> _assert_eq 45 -00:09:41 v #11342 > > -00:09:41 v #11343 > > ── [ 3.34s - return value ] ──────────────────────────────────────────────────── -00:09:41 v #11344 > > │ .py output (Cuda): -00:09:41 v #11345 > > │ __assert_eq / actual: 45 / expected: 45 -00:09:41 v #11346 > > │ -00:09:41 v #11347 > > │ .rs output: -00:09:41 v #11348 > > │ __assert_eq / actual: 45 / expected: 45 -00:09:41 v #11349 > > │ -00:09:41 v #11350 > > │ .ts output: -00:09:41 v #11351 > > │ __assert_eq / actual: 45 / expected: 45 -00:09:41 v #11352 > > │ -00:09:41 v #11353 > > │ .py output: -00:09:41 v #11354 > > │ __assert_eq / actual: 45 / expected: 45 -00:09:41 v #11355 > > │ -00:09:41 v #11356 > > │ -00:09:41 v #11357 > > -00:09:41 v #11358 > > ── [ 3.34s - stdout ] ────────────────────────────────────────────────────────── -00:09:41 v #11359 > > │ .fsx output: -00:09:41 v #11360 > > │ __assert_eq / actual: 45 / expected: 45 -00:09:41 v #11361 > > │ -00:09:41 v #11362 > > -00:09:41 v #11363 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:09:41 v #11364 > > │ ### init_series -00:09:41 v #11365 > > -00:09:41 v #11366 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:09:41 v #11367 > > inl init_series start end inc : array_base _ = -00:09:41 v #11368 > > inl total = conv ((end - start) / inc) + 1 -00:09:41 v #11369 > > am.init total (conv >> (*) inc >> (+) start) -00:09:41 v #11370 > > |> fun (a x : _ int _) => x -00:09:42 v #11371 > > -00:09:42 v #11372 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:09:42 v #11373 > > //// test -00:09:42 v #11374 > > ///! fsharp -00:09:42 v #11375 > > ///! cuda -00:09:42 v #11376 > > ///! rust -00:09:42 v #11377 > > ///! typescript -00:09:42 v #11378 > > ///! python -00:09:42 v #11379 > > -00:09:42 v #11380 > > init_series 0i32 6 2 -00:09:42 v #11381 > > |> a -00:09:42 v #11382 > > |> fun x => x : _ int _ -00:09:42 v #11383 > > |> _assert_eq (a ;[[ 0i32; 2; 4; 6 ]]) -00:09:45 v #11384 > > -00:09:45 v #11385 > > ── [ 3.46s - return value ] ──────────────────────────────────────────────────── -00:09:45 v #11386 > > │ .py output (Cuda): -00:09:45 v #11387 > > │ __assert_eq / actual: [0 2 4 6] / expected: [0 2 4 6] -00:09:45 v #11388 > > │ -00:09:45 v #11389 > > │ .rs output: -00:09:45 v #11390 > > │ __assert_eq / actual: Array(MutCell([0, 2, 4, 6])) -00:09:45 v #11391 > > expected: Array(MutCell([0, 2, 4, 6])) -00:09:45 v #11392 > > │ -00:09:45 v #11393 > > │ .ts output: -00:09:45 v #11394 > > │ __assert_eq / actual: 0,2,4,6 / expected: 0,2,4,6 -00:09:45 v #11395 > > │ -00:09:45 v #11396 > > │ .py output: -00:09:45 v #11397 > > │ __assert_eq / actual: [0, 2, 4, 6] / expected: array('l', [0, -00:09:45 v #11398 > > 2, 4, 6]) -00:09:45 v #11399 > > │ -00:09:45 v #11400 > > │ -00:09:45 v #11401 > > -00:09:45 v #11402 > > ── [ 3.47s - stdout ] ────────────────────────────────────────────────────────── -00:09:45 v #11403 > > │ .fsx output: -00:09:45 v #11404 > > │ __assert_eq / actual: [|0; 2; 4; 6|] / expected: [|0; 2; 4; -00:09:45 v #11405 > > 6|] -00:09:45 v #11406 > > │ -00:09:45 v #11407 > > -00:09:45 v #11408 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:09:45 v #11409 > > │ ### head -00:09:45 v #11410 > > -00:09:45 v #11411 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:09:45 v #11412 > > inl head (ar : a _ _) = -00:09:45 v #11413 > > if var_is ar || length ar > 0 -00:09:45 v #11414 > > then ar |> index 0 -00:09:45 v #11415 > > else error_type "The length of the array should be greater than 0." -00:09:46 v #11416 > > -00:09:46 v #11417 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:09:46 v #11418 > > │ ### last -00:09:46 v #11419 > > -00:09:46 v #11420 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:09:46 v #11421 > > inl last (ar : a _ _) = -00:09:46 v #11422 > > inl len = length ar -00:09:46 v #11423 > > if var_is ar || len > 0 -00:09:46 v #11424 > > then ar |> index (len - 1) -00:09:46 v #11425 > > else error_type "The length of the array should be greater than 0." -00:09:46 v #11426 > > -00:09:46 v #11427 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:09:46 v #11428 > > //// test -00:09:46 v #11429 > > ///! fsharp -00:09:46 v #11430 > > ///! cuda -00:09:46 v #11431 > > ///! rust -00:09:46 v #11432 > > ///! typescript -00:09:46 v #11433 > > ///! python -00:09:46 v #11434 > > -00:09:46 v #11435 > > 10 -00:09:46 v #11436 > > |> init -00:09:46 v #11437 > > |> fun x => a x : _ int _ -00:09:46 v #11438 > > |> last -00:09:46 v #11439 > > |> _assert_eq 9 -00:09:49 v #11440 > > -00:09:49 v #11441 > > ── [ 3.14s - return value ] ──────────────────────────────────────────────────── -00:09:49 v #11442 > > │ .py output (Cuda): -00:09:49 v #11443 > > │ __assert_eq / actual: 9 / expected: 9 -00:09:49 v #11444 > > │ -00:09:49 v #11445 > > │ .rs output: -00:09:49 v #11446 > > │ __assert_eq / actual: 9 / expected: 9 -00:09:49 v #11447 > > │ -00:09:49 v #11448 > > │ .ts output: -00:09:49 v #11449 > > │ __assert_eq / actual: 9 / expected: 9 -00:09:49 v #11450 > > │ -00:09:49 v #11451 > > │ .py output: -00:09:49 v #11452 > > │ __assert_eq / actual: 9 / expected: 9 -00:09:49 v #11453 > > │ -00:09:49 v #11454 > > │ -00:09:49 v #11455 > > -00:09:49 v #11456 > > ── [ 3.14s - stdout ] ────────────────────────────────────────────────────────── -00:09:49 v #11457 > > │ .fsx output: -00:09:49 v #11458 > > │ __assert_eq / actual: 9 / expected: 9 -00:09:49 v #11459 > > │ -00:09:49 v #11460 > > -00:09:49 v #11461 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:09:49 v #11462 > > │ ### try_pick -00:09:49 v #11463 > > -00:09:49 v #11464 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:09:49 v #11465 > > inl try_pick forall t u. (fn : t -> option u) (array : a _ t) : option u = -00:09:49 v #11466 > > (array, None) -00:09:49 v #11467 > > ||> am.foldBack fun x acc => -00:09:49 v #11468 > > match acc with -00:09:49 v #11469 > > | Some _ => acc -00:09:49 v #11470 > > | None => x |> fn -00:09:50 v #11471 > > -00:09:50 v #11472 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:09:50 v #11473 > > //// test -00:09:50 v #11474 > > ///! fsharp -00:09:50 v #11475 > > ///! cuda -00:09:50 v #11476 > > ////! rust // match &v23 { Spiral_builder::US0::US0_0(x) => x.clone(), _ => -00:09:50 v #11477 > > unreachable!(), } == 5_i32 -00:09:50 v #11478 > > ///! typescript -00:09:50 v #11479 > > ///! python -00:09:50 v #11480 > > -00:09:50 v #11481 > > 10 -00:09:50 v #11482 > > |> init -00:09:50 v #11483 > > |> fun x => a x : _ int _ -00:09:50 v #11484 > > |> try_pick (fun x => if x = 5i32 then Some x else None) -00:09:50 v #11485 > > |> _assert_eq (Some 5i32) -00:09:52 v #11486 > > -00:09:52 v #11487 > > ── [ 2.08s - return value ] ──────────────────────────────────────────────────── -00:09:52 v #11488 > > │ .py output (Cuda): -00:09:52 v #11489 > > │ __assert_eq / actual: US0_0(v0=5) / expected: US0_0(v0=5) -00:09:52 v #11490 > > │ -00:09:52 v #11491 > > │ .ts output: -00:09:52 v #11492 > > │ __assert_eq / actual: US0_0 5 / expected: US0_0 5 -00:09:52 v #11493 > > │ -00:09:52 v #11494 > > │ .py output: -00:09:52 v #11495 > > │ __assert_eq / actual: US0_0 5 / expected: US0_0 5 -00:09:52 v #11496 > > │ -00:09:52 v #11497 > > │ -00:09:52 v #11498 > > -00:09:52 v #11499 > > ── [ 2.08s - stdout ] ────────────────────────────────────────────────────────── -00:09:52 v #11500 > > │ .fsx output: -00:09:52 v #11501 > > │ __assert_eq / actual: US0_0 5 / expected: US0_0 5 -00:09:52 v #11502 > > │ -00:09:52 v #11503 > > -00:09:52 v #11504 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:09:52 v #11505 > > │ ### indexed -00:09:52 v #11506 > > -00:09:52 v #11507 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:09:52 v #11508 > > inl indexed forall t u {number}. (ar : array_base t) : array_base (u * t) = -00:09:52 v #11509 > > ((0, a ;[[]]), (a ar : _ int _)) -00:09:52 v #11510 > > ||> am.fold fun (i, acc) x => -00:09:52 v #11511 > > i + 1, acc ++ a ;[[i, x]] -00:09:52 v #11512 > > |> snd -00:09:52 v #11513 > > |> fun (a x : _ int _) => x -00:09:52 v #11514 > > -00:09:52 v #11515 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:09:52 v #11516 > > //// test -00:09:52 v #11517 > > ///! fsharp -00:09:52 v #11518 > > ////! cuda // Only stack allocated primitive types (i8,i16,i32,i64 and -00:09:52 v #11519 > > u8,u16,u32,u64 and f32,f64 and bool) are allowed in CuPy arrays. -00:09:52 v #11520 > > ///! rust -00:09:52 v #11521 > > ///! typescript -00:09:52 v #11522 > > ///! python -00:09:52 v #11523 > > -00:09:52 v #11524 > > am.init 3i32 ((*) 2) -00:09:52 v #11525 > > |> fun (a x : _ int _) => x -00:09:52 v #11526 > > |> indexed -00:09:52 v #11527 > > |> _assert_eq' ;[[0i32, 0; 1, 2; 2, 4]] -00:09:55 v #11528 > > -00:09:55 v #11529 > > ── [ 2.76s - return value ] ──────────────────────────────────────────────────── -00:09:55 v #11530 > > │ .rs output: -00:09:55 v #11531 > > │ __assert_eq' / actual: Array(MutCell([(0, 0), (1, 2), (2, -00:09:55 v #11532 > > 4)])) / expected: Array(MutCell([(0, 0), (1, 2), (2, 4)])) -00:09:55 v #11533 > > │ -00:09:55 v #11534 > > │ .ts output: -00:09:55 v #11535 > > │ __assert_eq' / actual: 0,0,1,2,2,4 / expected: 0,0,1,2,2,4 -00:09:55 v #11536 > > │ -00:09:55 v #11537 > > │ .py output: -00:09:55 v #11538 > > │ __assert_eq' / actual: [(0, 0), (1, 2), (2, 4)] / expected: -00:09:55 v #11539 > > [(0, 0), (1, 2), (2, 4)] -00:09:55 v #11540 > > │ -00:09:55 v #11541 > > │ -00:09:55 v #11542 > > -00:09:55 v #11543 > > ── [ 2.76s - stdout ] ────────────────────────────────────────────────────────── -00:09:55 v #11544 > > │ .fsx output: -00:09:55 v #11545 > > │ __assert_eq' / actual: [|struct (0, 0); struct (1, 2); struct -00:09:55 v #11546 > > (2, 4)|] / expected: [|struct (0, 0); struct (1, 2); struct (2, 4)|] -00:09:55 v #11547 > > │ -00:09:55 v #11548 > > -00:09:55 v #11549 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:09:55 v #11550 > > │ ### slice -00:09:55 v #11551 > > -00:09:55 v #11552 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:09:55 v #11553 > > inl slice forall dim {int; number} el. from nearTo s : a dim el = -00:09:55 v #11554 > > am.slice { from nearTo } s -00:09:55 v #11555 > > -00:09:55 v #11556 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:09:55 v #11557 > > //// test -00:09:55 v #11558 > > ///! fsharp -00:09:55 v #11559 > > ///! cuda -00:09:55 v #11560 > > ///! rust -00:09:55 v #11561 > > ///! typescript -00:09:55 v #11562 > > ///! python -00:09:55 v #11563 > > -00:09:55 v #11564 > > inl x : _ i32 _ = a ;[[ 1i32; 2; 3 ]] -00:09:55 v #11565 > > x |> slice 0 0 |> _assert_eq (a ;[[]]) -00:09:55 v #11566 > > x |> slice 0 1 |> _assert_eq (a ;[[ 1 ]]) -00:09:55 v #11567 > > x |> slice 1 1 |> _assert_eq (a ;[[]]) -00:09:55 v #11568 > > x |> slice 1 2 |> _assert_eq (a ;[[ 2 ]]) -00:09:55 v #11569 > > x |> slice 2 2 |> _assert_eq (a ;[[]]) -00:09:55 v #11570 > > x |> slice 0 2 |> _assert_eq (a ;[[ 1; 2 ]]) -00:09:59 v #11571 > > -00:09:59 v #11572 > > ── [ 3.31s - return value ] ──────────────────────────────────────────────────── -00:09:59 v #11573 > > │ -00:09:59 v #11574 > > │ .py output (Cuda): -00:09:59 v #11575 > > │ __assert_eq / actual: [] / expected: [] -00:09:59 v #11576 > > │ __assert_eq / actual: [1] / expected: [1] -00:09:59 v #11577 > > │ __assert_eq / actual: [] / expected: [] -00:09:59 v #11578 > > │ __assert_eq / actual: [2] / expected: [2] -00:09:59 v #11579 > > │ __assert_eq / actual: [] / expected: [] -00:09:59 v #11580 > > │ __assert_eq / actual: [1 2] / expected: [1 2] -00:09:59 v #11581 > > │ -00:09:59 v #11582 > > │ -00:09:59 v #11583 > > │ .rs output: -00:09:59 v #11584 > > │ __assert_eq / actual: Array(MutCell([])) / expected: -00:09:59 v #11585 > > Array(MutCell([])) -00:09:59 v #11586 > > │ __assert_eq / actual: Array(MutCell([1])) / expected: -00:09:59 v #11587 > > Array(MutCell([1])) -00:09:59 v #11588 > > │ __assert_eq / actual: Array(MutCell([])) / expected: -00:09:59 v #11589 > > Array(MutCell([])) -00:09:59 v #11590 > > │ __assert_eq / actual: Array(MutCell([2])) / expected: -00:09:59 v #11591 > > Array(MutCell([2])) -00:09:59 v #11592 > > │ __assert_eq / actual: Array(MutCell([])) / expected: -00:09:59 v #11593 > > Array(MutCell([])) -00:09:59 v #11594 > > │ __assert_eq / actual: Array(MutCell([1, 2])) / expected: -00:09:59 v #11595 > > Array(MutCell([1, 2])) -00:09:59 v #11596 > > │ -00:09:59 v #11597 > > │ -00:09:59 v #11598 > > │ .ts output: -00:09:59 v #11599 > > │ __assert_eq / actual: / expected: -00:09:59 v #11600 > > │ __assert_eq / actual: 1 / expected: 1 -00:09:59 v #11601 > > │ __assert_eq / actual: / expected: -00:09:59 v #11602 > > │ __assert_eq / actual: 2 / expected: 2 -00:09:59 v #11603 > > │ __assert_eq / actual: / expected: -00:09:59 v #11604 > > │ __assert_eq / actual: 1,2 / expected: 1,2 -00:09:59 v #11605 > > │ -00:09:59 v #11606 > > │ -00:09:59 v #11607 > > │ .py output: -00:09:59 v #11608 > > │ __assert_eq / actual: [] / expected: array('l') -00:09:59 v #11609 > > │ __assert_eq / actual: [1] / expected: array('l', [1]) -00:09:59 v #11610 > > │ __assert_eq / actual: [] / expected: array('l') -00:09:59 v #11611 > > │ __assert_eq / actual: [2] / expected: array('l', [2]) -00:09:59 v #11612 > > │ __assert_eq / actual: [] / expected: array('l') -00:09:59 v #11613 > > │ __assert_eq / actual: [1, 2] / expected: array('l', [1, 2]) -00:09:59 v #11614 > > │ -00:09:59 v #11615 > > │ -00:09:59 v #11616 > > │ -00:09:59 v #11617 > > -00:09:59 v #11618 > > ── [ 3.31s - stdout ] ────────────────────────────────────────────────────────── -00:09:59 v #11619 > > │ .fsx output: -00:09:59 v #11620 > > │ __assert_eq / actual: [||] / expected: [||] -00:09:59 v #11621 > > │ __assert_eq / actual: [|1|] / expected: [|1|] -00:09:59 v #11622 > > │ __assert_eq / actual: [||] / expected: [||] -00:09:59 v #11623 > > │ __assert_eq / actual: [|2|] / expected: [|2|] -00:09:59 v #11624 > > │ __assert_eq / actual: [||] / expected: [||] -00:09:59 v #11625 > > │ __assert_eq / actual: [|1; 2|] / expected: [|1; 2|] -00:09:59 v #11626 > > │ -00:09:59 v #11627 > > -00:09:59 v #11628 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:09:59 v #11629 > > │ ### range -00:09:59 v #11630 > > -00:09:59 v #11631 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:09:59 v #11632 > > union range dim = -00:09:59 v #11633 > > | Start : dim -00:09:59 v #11634 > > | End : (() -> dim) -> dim -00:09:59 v #11635 > > -00:09:59 v #11636 > > inl range start end s = -00:09:59 v #11637 > > inl start, end = -00:09:59 v #11638 > > inl len () = -00:09:59 v #11639 > > s |> length |> conv -00:09:59 v #11640 > > match start, end with -00:09:59 v #11641 > > | Start start, End fn => -00:09:59 v #11642 > > start, fn len -00:09:59 v #11643 > > | End start_fn, End end_fn => -00:09:59 v #11644 > > start_fn len, end_fn len -00:09:59 v #11645 > > s |> slice (start |> unbox) (end |> unbox) -00:09:59 v #11646 > > -00:09:59 v #11647 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:09:59 v #11648 > > │ ## rust -00:09:59 v #11649 > > -00:09:59 v #11650 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:09:59 v #11651 > > │ ### vec -00:09:59 v #11652 > > -00:09:59 v #11653 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:09:59 v #11654 > > nominal vec t = -00:09:59 v #11655 > > `( -00:09:59 v #11656 > > backend_switch `(()) `({}) { -00:09:59 v #11657 > > Fsharp = -00:09:59 v #11658 > > (fun () => -00:09:59 v #11659 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:09:59 v #11660 > > Fable.Core.Emit(\"Vec<$0>\")>]]\n#endif\ntype Vec<'T> = class end" -00:09:59 v #11661 > > ) : () -> () -00:09:59 v #11662 > > } -00:09:59 v #11663 > > $'' : $'Vec<`t>' -00:09:59 v #11664 > > ) -00:09:59 v #11665 > > -00:09:59 v #11666 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:09:59 v #11667 > > │ ### from_vec -00:09:59 v #11668 > > -00:09:59 v #11669 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:09:59 v #11670 > > inl from_vec forall dim el. (vec : vec el) : a dim el = -00:09:59 v #11671 > > !\\(vec, $'"fable_library_rust::NativeArray_::array_from($0.clone())"') -00:10:00 v #11672 > > -00:10:00 v #11673 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:10:00 v #11674 > > │ ### from_vec_base -00:10:00 v #11675 > > -00:10:00 v #11676 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:10:00 v #11677 > > inl from_vec_base forall el. (vec : vec el) : array_base el = -00:10:00 v #11678 > > !\\(vec, $'"fable_library_rust::NativeArray_::array_from($0.clone())"') -00:10:00 v #11679 > > -00:10:00 v #11680 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:10:00 v #11681 > > │ ### to_vec -00:10:00 v #11682 > > -00:10:00 v #11683 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:10:00 v #11684 > > inl to_vec forall t. (ab : array_base t) : vec t = -00:10:00 v #11685 > > !\\(ab, $'"$0.to_vec()"') -00:10:01 v #11686 > > -00:10:01 v #11687 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:10:01 v #11688 > > │ ### to_vec' -00:10:01 v #11689 > > -00:10:01 v #11690 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:10:01 v #11691 > > inl to_vec' forall (t : * -> * -> *) u v. (x : t u v) : vec u = -00:10:01 v #11692 > > !\($'$"!x.to_vec()"') -00:10:01 v #11693 > > -00:10:01 v #11694 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:10:01 v #11695 > > │ ### to_vec'' -00:10:01 v #11696 > > -00:10:01 v #11697 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:10:01 v #11698 > > inl to_vec'' forall (t : * -> *) (u : * -> *) v. (x : t (u v)) : vec v = -00:10:01 v #11699 > > !\($'$"!x.to_vec()"') -00:10:02 v #11700 > > -00:10:02 v #11701 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:10:02 v #11702 > > │ ### to_vec''' -00:10:02 v #11703 > > -00:10:02 v #11704 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:10:02 v #11705 > > inl to_vec''' forall t. (ab : array_base t) : vec t = -00:10:02 v #11706 > > !\\(ab, $'"to_vec($0)"') -00:10:02 v #11707 > > -00:10:02 v #11708 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:10:02 v #11709 > > │ ### vec_push -00:10:02 v #11710 > > -00:10:02 v #11711 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:10:02 v #11712 > > inl vec_push forall el. (el : el) (vec : vec el) : vec el = -00:10:02 v #11713 > > inl el = join el -00:10:02 v #11714 > > inl vec = join vec -00:10:02 v #11715 > > (!\($'"true; let mut !vec = !vec"') : bool) |> ignore -00:10:02 v #11716 > > // inl vec = vec |> rust.to_mut -00:10:02 v #11717 > > (!\($'"true; !vec.push(!el)"') : bool) |> ignore -00:10:02 v #11718 > > !\($'"!vec"') -00:10:02 v #11719 > > -00:10:02 v #11720 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:10:02 v #11721 > > │ ### vec_reverse -00:10:02 v #11722 > > -00:10:02 v #11723 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:10:02 v #11724 > > inl vec_reverse forall el. (vec : vec el) : vec el = -00:10:02 v #11725 > > inl vec = join vec -00:10:02 v #11726 > > (!\($'"true; let mut !vec = !vec"') : bool) |> ignore -00:10:02 v #11727 > > (!\($'"true; !vec.reverse()"') : bool) |> ignore -00:10:02 v #11728 > > !\($'"!vec"') -00:10:03 v #11729 > > -00:10:03 v #11730 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:10:03 v #11731 > > │ ### vec_retain -00:10:03 v #11732 > > -00:10:03 v #11733 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:10:03 v #11734 > > inl vec_retain forall el. (fn : el -> bool) (vec : vec el) : vec el = -00:10:03 v #11735 > > inl vec = join vec -00:10:03 v #11736 > > inl fn = join fn -00:10:03 v #11737 > > (!\($'"true; let mut !vec = !vec"') : bool) |> ignore -00:10:03 v #11738 > > // inl vec = vec |> rust.to_mut -00:10:03 v #11739 > > (!\($'"true; !vec.retain(|x| !fn(x.clone()))"') : bool) |> ignore -00:10:03 v #11740 > > !\($'"!vec"') -00:10:03 v #11741 > > -00:10:03 v #11742 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:10:03 v #11743 > > │ ### vec_sort_by_key -00:10:03 v #11744 > > -00:10:03 v #11745 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:10:03 v #11746 > > inl vec_sort_by_key forall el t. (fn : el -> t) (vec : vec el) : vec el = -00:10:03 v #11747 > > inl vec = join vec -00:10:03 v #11748 > > inl fn = join fn -00:10:03 v #11749 > > (!\($'"true; let mut !vec = !vec"') : bool) |> ignore -00:10:03 v #11750 > > // inl vec = vec |> rust.to_mut -00:10:03 v #11751 > > (!\($'"true; !vec.sort_by_key(|x| !fn(x.clone()))"') : bool) |> ignore -00:10:03 v #11752 > > !\($'"!vec"') -00:10:04 v #11753 > > -00:10:04 v #11754 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:10:04 v #11755 > > │ ### vec_extend -00:10:04 v #11756 > > -00:10:04 v #11757 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:10:04 v #11758 > > inl vec_extend forall el. (el : vec el) (vec : vec el) : vec el = -00:10:04 v #11759 > > inl el = join el -00:10:04 v #11760 > > inl vec = join vec -00:10:04 v #11761 > > (!\($'"true; let mut !vec = !vec"') : bool) |> ignore -00:10:04 v #11762 > > // inl vec = vec |> rust.to_mut -00:10:04 v #11763 > > (!\($'"true; !vec.extend(!el)"') : bool) |> ignore -00:10:04 v #11764 > > !\($'"!vec"') -00:10:04 v #11765 > > -00:10:04 v #11766 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:10:04 v #11767 > > │ ### vec_mapi -00:10:04 v #11768 > > -00:10:04 v #11769 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:10:04 v #11770 > > inl vec_mapi forall dim t u. (fn : dim -> t -> u) (ar : vec t) : vec u = -00:10:04 v #11771 > > inl fn = join fn -00:10:04 v #11772 > > inl ar = join ar -00:10:04 v #11773 > > !\($'"!ar.iter().enumerate().map(|(i, x)| -00:10:04 v #11774 > > !fn(i.try_into().unwrap())(x.clone())).collect::<Vec<_>>()"') -00:10:05 v #11775 > > -00:10:05 v #11776 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:10:05 v #11777 > > │ ### vec_map -00:10:05 v #11778 > > -00:10:05 v #11779 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:10:05 v #11780 > > inl vec_map forall t u. (fn : t -> u) (ar : vec t) : vec u = -00:10:05 v #11781 > > (!\\(ar, $'"true; let _vec_map : Vec<_> = $0.into_iter().map(|x| { //"') : -00:10:05 v #11782 > > bool) |> ignore -00:10:05 v #11783 > > inl result = fn !\($'"x"') -00:10:05 v #11784 > > inl is_unit = -00:10:05 v #11785 > > real -00:10:05 v #11786 > > typecase u with -00:10:05 v #11787 > > | () => true -00:10:05 v #11788 > > | _ => false -00:10:05 v #11789 > > if is_unit -00:10:05 v #11790 > > then (!\($'"true; }}).collect::<Vec<_>>()"') : bool) |> ignore -00:10:05 v #11791 > > else (!\\(result, $'"true; $0 }).collect::<Vec<_>>()"') : bool) |> ignore -00:10:05 v #11792 > > !\($'"_vec_map"') -00:10:05 v #11793 > > -00:10:05 v #11794 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:10:05 v #11795 > > │ ### vec_map' -00:10:05 v #11796 > > -00:10:05 v #11797 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:10:05 v #11798 > > inl vec_map' forall t u. (fn : t -> u) (ar : vec t) : vec u = -00:10:05 v #11799 > > inl fn = fn |> rust.func1_from -00:10:05 v #11800 > > inl fn x = -00:10:05 v #11801 > > fn |> rust.func1_move x -00:10:05 v #11802 > > !\\((ar, fn), $'"$0.into_iter().map(|x| -00:10:05 v #11803 > > $1(x.clone())).collect::<Vec<_>>()"') -00:10:05 v #11804 > > -00:10:05 v #11805 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:10:05 v #11806 > > │ ### vec_fold' -00:10:05 v #11807 > > -00:10:05 v #11808 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:10:05 v #11809 > > inl vec_fold' forall t u. (fn : u -> t -> u) (init : u) (ar : vec t) : u = -00:10:05 v #11810 > > (!\\(ar, $'"true; let _vec_fold_ = $0.into_iter().fold(!init, |acc, x| { -00:10:05 v #11811 > > //"') : bool) |> ignore -00:10:05 v #11812 > > (!\\(fn !\($'"acc"') !\($'"x"'), $'"true; $0 })"') : bool) |> ignore -00:10:05 v #11813 > > !\($'"_vec_fold_"') -00:10:06 v #11814 > > -00:10:06 v #11815 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:10:06 v #11816 > > │ ### vec_for_each -00:10:06 v #11817 > > -00:10:06 v #11818 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:10:06 v #11819 > > inl vec_for_each forall t. (fn : t -> ()) (ar : vec t) : () = -00:10:06 v #11820 > > (!\\((ar, fn), $'"true; $0.iter().for_each(|x| { $1(x.clone()); }); //"') : -00:10:06 v #11821 > > bool) |> ignore -00:10:06 v #11822 > > -00:10:06 v #11823 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:10:06 v #11824 > > │ ### vec_for_each' -00:10:06 v #11825 > > -00:10:06 v #11826 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:10:06 v #11827 > > inl vec_for_each' forall t. (fn : t -> ()) (ar : vec t) : () = -00:10:06 v #11828 > > (!\\(ar, $'"true; $0.into_iter().for_each(|x| { //"') : bool) |> ignore -00:10:06 v #11829 > > (!\\(fn !\($'"x"'), $'$"true"') : bool) |> ignore -00:10:06 v #11830 > > (!\($'"true; }}); { //"') : bool) |> ignore -00:10:07 v #11831 > > -00:10:07 v #11832 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:10:07 v #11833 > > │ ### vec_for_each'' -00:10:07 v #11834 > > -00:10:07 v #11835 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:10:07 v #11836 > > inl vec_for_each'' forall t. (fn : t -> ()) (ar : vec t) : () = -00:10:07 v #11837 > > (!\\(ar, $'"true; $0.into_iter().for_each(|x| { //"') : bool) |> ignore -00:10:07 v #11838 > > (!\\(fn !\($'"x"'), $'$"true"') : bool) |> ignore -00:10:07 v #11839 > > (!\($'"true; }}); //"') : bool) |> ignore -00:10:07 v #11840 > > -00:10:07 v #11841 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:10:07 v #11842 > > │ ### vec_for_each''' -00:10:07 v #11843 > > -00:10:07 v #11844 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:10:07 v #11845 > > inl vec_for_each''' forall t. (fn : t -> ()) (ar : vec t) : () = -00:10:07 v #11846 > > (!\\(ar, $'"true; $0.into_iter().for_each(|x| { //"') : bool) |> ignore -00:10:07 v #11847 > > (!\\(fn !\($'"x"'), $'$"true"') : bool) |> ignore -00:10:07 v #11848 > > (!\($'"true; }); //"') : bool) |> ignore -00:10:08 v #11849 > > -00:10:08 v #11850 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:10:08 v #11851 > > │ ### vec_filter -00:10:08 v #11852 > > -00:10:08 v #11853 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:10:08 v #11854 > > inl vec_filter forall t. (fn : t -> bool) (ar : vec t) : vec t = -00:10:08 v #11855 > > inl fn = join fn -00:10:08 v #11856 > > inl ar = join ar -00:10:08 v #11857 > > !\($'"!ar.into_iter().filter(|x| -00:10:08 v #11858 > > !fn(x.clone().clone())).collect::<Vec<_>>()"') -00:10:08 v #11859 > > -00:10:08 v #11860 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:10:08 v #11861 > > │ ### vec_len -00:10:08 v #11862 > > -00:10:08 v #11863 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:10:08 v #11864 > > inl vec_len forall t. (vec : vec t) : unativeint = -00:10:08 v #11865 > > !\\(vec, $'"$0.len()"') -00:10:09 v #11866 > > -00:10:09 v #11867 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:10:09 v #11868 > > │ ### vec_chunks -00:10:09 v #11869 > > -00:10:09 v #11870 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:10:09 v #11871 > > inl vec_chunks forall t. (n : i32) (vec : vec t) : vec (vec t) = -00:10:09 v #11872 > > !\\(vec, $'"$0.chunks(!n).map(|x| x.into_iter().map(|x| -00:10:09 v #11873 > > x.clone()).collect::<Vec<_>>()).collect::<Vec<_>>()"') -00:10:09 v #11874 > > -00:10:09 v #11875 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:10:09 v #11876 > > │ ### slice -00:10:09 v #11877 > > -00:10:09 v #11878 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:10:09 v #11879 > > nominal slice t = -00:10:09 v #11880 > > `( -00:10:09 v #11881 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:10:09 v #11882 > > Fable.Core.Emit(\"[[$0]]\")>]]\n#endif\ntype Slice<'T> = class end" -00:10:09 v #11883 > > $'' : $'Slice<`t>' -00:10:09 v #11884 > > ) -00:10:09 v #11885 > > -00:10:09 v #11886 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:10:09 v #11887 > > │ ### slice' -00:10:09 v #11888 > > -00:10:09 v #11889 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:10:09 v #11890 > > nominal slice' el dim = -00:10:09 v #11891 > > `( -00:10:09 v #11892 > > backend_switch `(()) `({}) { -00:10:09 v #11893 > > Fsharp = -00:10:09 v #11894 > > (fun () => -00:10:09 v #11895 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:10:09 v #11896 > > Fable.Core.Emit(\"_\")>]]\n#endif\ntype Slice'<'T> = class end" -00:10:09 v #11897 > > ) : () -> () -00:10:09 v #11898 > > } -00:10:09 v #11899 > > $'' : $'Slice\'<`el>' -00:10:09 v #11900 > > ) -00:10:10 v #11901 > > -00:10:10 v #11902 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:10:10 v #11903 > > │ ### slice'' -00:10:10 v #11904 > > -00:10:10 v #11905 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:10:10 v #11906 > > nominal slice'' el dim = -00:10:10 v #11907 > > `( -00:10:10 v #11908 > > backend_switch `(()) `({}) { -00:10:10 v #11909 > > Fsharp = -00:10:10 v #11910 > > (fun () => -00:10:10 v #11911 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:10:10 v #11912 > > Fable.Core.Emit(\"[[$0; 10]]\")>]]\n#endif\ntype Slice'_<'T> = class end" -00:10:10 v #11913 > > ) : () -> () -00:10:10 v #11914 > > } -00:10:10 v #11915 > > $'' : $'Slice\'_<`el>' -00:10:10 v #11916 > > ) -00:10:10 v #11917 > > -00:10:10 v #11918 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:10:10 v #11919 > > │ ### slice_singleton -00:10:10 v #11920 > > -00:10:10 v #11921 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:10:10 v #11922 > > inl slice_singleton forall dim el. (x : option el) : slice' el dim = -00:10:10 v #11923 > > match x with -00:10:10 v #11924 > > | Some x => !\($'"[[!x]]"') -00:10:10 v #11925 > > | None => -00:10:10 v #11926 > > !\($'"[[\\\"\\\".to_string()]]"') : slice' el dim -00:10:10 v #11927 > > // emit_expr `(()) `(slice' el dim) () ($'"[[@dim]]"' : string) : -00:10:10 v #11928 > > slice' el 10 -00:10:10 v #11929 > > // !\( : string) : slice' el i32 // !\($'"[[]]"') -00:10:11 v #11930 > > -00:10:11 v #11931 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:10:11 v #11932 > > │ ### slice_length -00:10:11 v #11933 > > -00:10:11 v #11934 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:10:11 v #11935 > > inl slice_length forall t dim. (x : slice' t dim) : unativeint = -00:10:11 v #11936 > > !\($'"!x.len()"') -00:10:11 v #11937 > > -00:10:11 v #11938 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:10:11 v #11939 > > │ ### slice_range -00:10:11 v #11940 > > -00:10:11 v #11941 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:10:11 v #11942 > > inl slice_range forall t dim. (start : range t) (end : range t) (s : slice' t -00:10:11 v #11943 > > dim) : rust.ref (slice' t dim) = -00:10:11 v #11944 > > inl len () = -00:10:11 v #11945 > > s |> slice_length -00:10:11 v #11946 > > inl start, (end : unativeint) = -00:10:11 v #11947 > > match start, end with -00:10:11 v #11948 > > | Start start, End fn => start, (len >> convert) |> fn |> convert -00:10:11 v #11949 > > | End start_fn, End end_fn => (len >> convert) |> start_fn, (len >> -00:10:11 v #11950 > > convert) |> end_fn |> convert -00:10:11 v #11951 > > match start, end with -00:10:11 v #11952 > > | start, end when unbox end =. len () => !\($'"&!s[[!start..]]"') -00:10:11 v #11953 > > | start, end => !\\((start, end), $'"&!s[[$0..$1]]"') -00:10:11 v #11954 > > -00:10:11 v #11955 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:10:11 v #11956 > > │ ### new_slice -00:10:11 v #11957 > > -00:10:11 v #11958 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:10:11 v #11959 > > inl new_slice forall el dim. (el : el) : slice' el dim = -00:10:11 v #11960 > > !\\(el, $'"[[$0; @dim]]"') -00:10:12 v #11961 > > -00:10:12 v #11962 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:10:12 v #11963 > > │ ### as_slice -00:10:12 v #11964 > > -00:10:12 v #11965 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:10:12 v #11966 > > inl as_slice forall t. (x : array_base t) : rust.ref (slice t) = -00:10:12 v #11967 > > inl x = x |> to_vec -00:10:12 v #11968 > > !\($'"!x.as_slice()"') -00:10:12 v #11969 > > -00:10:12 v #11970 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:10:12 v #11971 > > │ ### slice_to_vec -00:10:12 v #11972 > > -00:10:12 v #11973 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:10:12 v #11974 > > inl slice_to_vec forall t. (slice : rust.ref (slice t)) : vec t = -00:10:12 v #11975 > > !\\(slice, $'"$0.iter().map(|x| *x).collect::<Vec<_>>()"') -00:10:13 v #11976 > > -00:10:13 v #11977 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:10:13 v #11978 > > │ ### to_le_bytes -00:10:13 v #11979 > > -00:10:13 v #11980 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:10:13 v #11981 > > inl to_le_bytes forall t. (x : t) : slice' u8 8 = -00:10:13 v #11982 > > !\($'$"!x.to_le_bytes()"') -00:10:13 v #11983 > > -00:10:13 v #11984 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:10:13 v #11985 > > │ ### as_bytes -00:10:13 v #11986 > > -00:10:13 v #11987 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:10:13 v #11988 > > inl as_bytes forall t. (x : t) : rust.ref (slice u8) = -00:10:13 v #11989 > > !\($'$"!x.as_bytes()"') -00:10:14 v #11990 > > -00:10:14 v #11991 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:10:14 v #11992 > > │ ### any -00:10:14 v #11993 > > -00:10:14 v #11994 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:10:14 v #11995 > > inl any forall t. (fn : t -> bool) (source : array_base t) : bool = -00:10:14 v #11996 > > !\($'"!source.any(|x| !fn(x))"') -00:10:14 v #11997 > > -00:10:14 v #11998 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:10:14 v #11999 > > │ ### iter_collect vec -00:10:14 v #12000 > > -00:10:14 v #12001 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:10:14 v #12002 > > instance iter_collect vec = fun (iter : into_iterator u) => -00:10:14 v #12003 > > !\\(iter, $'"$0.collect::<Vec<_>>()"') -00:10:14 v #12004 > > -00:10:14 v #12005 > > instance iter_collect'' vec = fun (iter : into_iterator (t (u v))) => -00:10:14 v #12006 > > !\\(iter, $'"$0.collect::<Vec<_>>()"') -00:10:14 v #12007 > > -00:10:14 v #12008 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:10:14 v #12009 > > │ ### new_vec -00:10:14 v #12010 > > -00:10:14 v #12011 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:10:14 v #12012 > > inl new_vec forall t. (items : list t) : vec t = -00:10:14 v #12013 > > inl items = -00:10:14 v #12014 > > (items, ("", 0i32)) -00:10:14 v #12015 > > ||> listm.foldBack fun (x : t) (acc, i) => -00:10:14 v #12016 > > $'"!x"' +. (if i = 0 then "" else ", ") +. acc, i + 1 -00:10:14 v #12017 > > |> fst -00:10:14 v #12018 > > !\($'"vec\![[" + !items + "]]"') -00:10:15 v #12019 > > -00:10:15 v #12020 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:10:15 v #12021 > > //// test -00:10:15 v #12022 > > ///! rust -00:10:15 v #12023 > > -00:10:15 v #12024 > > [[ 0i32; 1 ]] -00:10:15 v #12025 > > |> new_vec -00:10:15 v #12026 > > |> sm'.format_debug' -00:10:15 v #12027 > > |> sm'.from_std_string -00:10:15 v #12028 > > |> _assert_eq "[[0, 1]]" -00:10:17 v #12029 > > -00:10:17 v #12030 > > ── [ 2.48s - return value ] ──────────────────────────────────────────────────── -00:10:17 v #12031 > > │ __assert_eq / actual: "[0, 1]" / expected: "[0, 1]" -00:10:17 v #12032 > > │ -00:10:17 v #12033 > > -00:10:17 v #12034 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:10:17 v #12035 > > │ ## fsharp -00:10:17 v #12036 > > -00:10:17 v #12037 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:10:17 v #12038 > > │ ### average -00:10:17 v #12039 > > -00:10:17 v #12040 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:10:17 v #12041 > > inl average forall el {number}. (a : a _ el) : el = -00:10:17 v #12042 > > $'!a |> Array.average' -00:10:18 v #12043 > > -00:10:18 v #12044 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:10:18 v #12045 > > │ ### distinct -00:10:18 v #12046 > > -00:10:18 v #12047 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:10:18 v #12048 > > inl distinct forall dim el. (a : a dim el) : a dim el = -00:10:18 v #12049 > > $'!a |> Array.distinct' -00:10:18 v #12050 > > -00:10:18 v #12051 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:10:18 v #12052 > > │ ### skip -00:10:18 v #12053 > > -00:10:18 v #12054 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:10:18 v #12055 > > inl skip forall dim el. (n : dim) (a : a dim el) : a dim el = -00:10:18 v #12056 > > $'!a |> Array.skip !n ' -00:10:19 v #12057 > > -00:10:19 v #12058 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:10:19 v #12059 > > │ ### skip_while -00:10:19 v #12060 > > -00:10:19 v #12061 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:10:19 v #12062 > > inl skip_while forall dim el. (fn : el -> bool) (a : a dim el) : a dim el = -00:10:19 v #12063 > > $'!a |> Array.skipWhile !fn ' -00:10:19 v #12064 > > -00:10:19 v #12065 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:10:19 v #12066 > > │ ### to_list_base' -00:10:19 v #12067 > > -00:10:19 v #12068 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:10:19 v #12069 > > inl to_list_base' forall t. (items : array_base t) : listm'.list' t = -00:10:19 v #12070 > > backend_switch { -00:10:19 v #12071 > > Fsharp = fun () => $'!items |> Array.toList' : listm'.list' t -00:10:19 v #12072 > > Python = fun () => items |> to : listm'.list' t -00:10:19 v #12073 > > } -00:10:20 v #12074 > > -00:10:20 v #12075 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:10:20 v #12076 > > │ ### to_list' -00:10:20 v #12077 > > -00:10:20 v #12078 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:10:20 v #12079 > > inl to_list' forall dim {int} t. (items : a dim t) : listm'.list' t = -00:10:20 v #12080 > > items |> base |> to_list_base' -00:10:20 v #12081 > > -00:10:20 v #12082 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:10:20 v #12083 > > //// test -00:10:20 v #12084 > > ///! fsharp -00:10:20 v #12085 > > ///! cuda -00:10:20 v #12086 > > ///! rust -00:10:20 v #12087 > > ///! typescript -00:10:20 v #12088 > > ///! python -00:10:20 v #12089 > > -00:10:20 v #12090 > > a' ;[[ -3i32; 6 ]] -00:10:20 v #12091 > > |> to_list' -00:10:20 v #12092 > > |> listm'.unbox -00:10:20 v #12093 > > |> _assert_eq [[ -3; 6 ]] -00:10:23 v #12094 > > -00:10:23 v #12095 > > ── [ 3.18s - return value ] ──────────────────────────────────────────────────── -00:10:23 v #12096 > > │ .py output (Cuda): -00:10:23 v #12097 > > │ __assert_eq / actual: UH0_1(v0=np.int32(-3), -00:10:23 v #12098 > > v1=UH0_1(v0=np.int32(6), v1=UH0_0())) / expected: UH0_1(v0=-3, v1=UH0_1(v0=6, -00:10:23 v #12099 > > v1=UH0_0())) -00:10:23 v #12100 > > │ -00:10:23 v #12101 > > │ .rs output: -00:10:23 v #12102 > > │ __assert_eq / actual: UH0_1(-3, UH0_1(6, UH0_0)) / expected: -00:10:23 v #12103 > > UH0_1(-3, UH0_1(6, UH0_0)) -00:10:23 v #12104 > > │ -00:10:23 v #12105 > > │ .ts output: -00:10:23 v #12106 > > │ __assert_eq / actual: UH0_1 (-3, UH0_1 (6, UH0_0)) -00:10:23 v #12107 > > expected: UH0_1 (-3, UH0_1 (6, UH0_0)) -00:10:23 v #12108 > > │ -00:10:23 v #12109 > > │ .py output: -00:10:23 v #12110 > > │ __assert_eq / actual: UH0_1 (-3, UH0_1 (6, UH0_0)) -00:10:23 v #12111 > > expected: UH0_1 (-3, UH0_1 (6, UH0_0)) -00:10:23 v #12112 > > │ -00:10:23 v #12113 > > │ -00:10:23 v #12114 > > -00:10:23 v #12115 > > ── [ 3.18s - stdout ] ────────────────────────────────────────────────────────── -00:10:23 v #12116 > > │ .fsx output: -00:10:23 v #12117 > > │ __assert_eq / actual: UH0_1 (-3, UH0_1 (6, UH0_0)) -00:10:23 v #12118 > > expected: UH0_1 (-3, UH0_1 (6, UH0_0)) -00:10:23 v #12119 > > │ -00:10:23 v #12120 > > -00:10:23 v #12121 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:10:23 v #12122 > > │ ### vec_collect -00:10:23 v #12123 > > -00:10:23 v #12124 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:10:23 v #12125 > > inl vec_collect fn vec = -00:10:23 v #12126 > > ((;[[]] |> to_vec), ((vec |> from_vec : _ int _) |> to_list' |> -00:10:23 v #12127 > > listm'.unbox)) -00:10:23 v #12128 > > ||> listm.fold fun acc x => -00:10:23 v #12129 > > acc |> vec_extend (fn x) -00:10:24 v #12130 > > -00:10:24 v #12131 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:10:24 v #12132 > > │ ### vec_collect_option -00:10:24 v #12133 > > -00:10:24 v #12134 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:10:24 v #12135 > > inl vec_collect_option vec = -00:10:24 v #12136 > > ((;[[]] |> to_vec |> Ok), ((vec |> from_vec : _ int _) |> am.toList)) -00:10:24 v #12137 > > ||> listm.fold fun acc x => -00:10:24 v #12138 > > x -00:10:24 v #12139 > > |> resultm.unbox -00:10:24 v #12140 > > |> fun x => -00:10:24 v #12141 > > match acc, x |> resultm.map optionm'.unbox with -00:10:24 v #12142 > > | Ok acc, Ok (Some x) => acc |> vec_extend x |> Ok -00:10:24 v #12143 > > | _, Error error => error |> Error -00:10:24 v #12144 > > | _ => acc -00:10:24 v #12145 > > -00:10:24 v #12146 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:10:24 v #12147 > > │ ### vec_collect_into -00:10:24 v #12148 > > -00:10:24 v #12149 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:10:24 v #12150 > > inl vec_collect_into forall (c : * -> * -> *) t e. -00:10:24 v #12151 > > (x : vec (c t e)) -00:10:24 v #12152 > > : c (vec t) e -00:10:24 v #12153 > > = -00:10:24 v #12154 > > !\($'"!x.into_iter().collect()"') -00:10:24 v #12155 > > -00:10:24 v #12156 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:10:24 v #12157 > > │ ### parallel_map -00:10:24 v #12158 > > -00:10:24 v #12159 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:10:24 v #12160 > > inl parallel_map forall dim el el'. (fn : el -> el') (a : a dim el) : a dim el' -00:10:24 v #12161 > > = -00:10:24 v #12162 > > $'!a |> Array.Parallel.map !fn ' -00:10:25 v #12163 > > -00:10:25 v #12164 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:10:25 v #12165 > > │ ### map' -00:10:25 v #12166 > > -00:10:25 v #12167 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:10:25 v #12168 > > inl map' forall dim el el'. (fn : el -> el') (a : a dim el) : a dim el' = -00:10:25 v #12169 > > $'!a |> Array.map !fn ' -00:10:25 v #12170 > > -00:10:25 v #12171 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:10:25 v #12172 > > │ ### sort_by -00:10:25 v #12173 > > -00:10:25 v #12174 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:10:25 v #12175 > > inl sort_by forall dim el. (fn : el -> _) (a : a dim el) : a dim el = -00:10:25 v #12176 > > $'!a |> Array.sortBy !fn ' -00:10:26 v #12177 > > -00:10:26 v #12178 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:10:26 v #12179 > > │ ### sort -00:10:26 v #12180 > > -00:10:26 v #12181 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:10:26 v #12182 > > inl sort forall dim el. (a : a dim el) : a dim el = -00:10:26 v #12183 > > $'!a |> Array.sort' -00:10:26 v #12184 > > -00:10:26 v #12185 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:10:26 v #12186 > > │ ### sort_descending -00:10:26 v #12187 > > -00:10:26 v #12188 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:10:26 v #12189 > > inl sort_descending forall dim el. (a : a dim el) : a dim el = -00:10:26 v #12190 > > $'!a |> Array.sortDescending' -00:10:27 v #12191 > > -00:10:27 v #12192 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:10:27 v #12193 > > │ ### transpose -00:10:27 v #12194 > > -00:10:27 v #12195 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:10:27 v #12196 > > inl transpose forall el. (a : array_base (array_base el)) : array_base -00:10:27 v #12197 > > (array_base el) = -00:10:27 v #12198 > > $'!a |> Array.transpose' -00:10:27 v #12199 > > -00:10:27 v #12200 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:10:27 v #12201 > > │ ### try_item -00:10:27 v #12202 > > -00:10:27 v #12203 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:10:27 v #12204 > > inl try_item forall dim el. (i : i32) (a : a dim el) : option el = -00:10:27 v #12205 > > $'!a |> Array.tryItem !i ' |> optionm'.unbox -00:10:28 v #12206 > 00:01:08 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 41020 } -00:10:28 v #12207 > 00:01:08 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/lib/spiral/am'.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/lib/spiral/am'.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:10:29 v #12208 > 00:01:10 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/lib/spiral/am'.dib.ipynb to html -00:10:29 v #12209 > 00:01:10 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. -00:10:29 v #12210 > 00:01:10 v #7 ! validate(nb) -00:10:30 v #12211 > 00:01:11 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 -00:10:30 v #12212 > 00:01:11 v #9 ! return _pygments_highlight( -00:10:31 v #12213 > 00:01:12 v #10 ! [NbConvertApp] Writing 455098 bytes to c:\home\git\polyglot\lib\spiral\am'.dib.html -00:10:31 v #12214 > 00:01:12 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 848 } -00:10:31 v #12215 > 00:01:12 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 848 } -00:10:31 v #12216 > 00:01:12 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/am''.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/am''.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:10:31 v #12217 > 00:01:12 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } -00:10:31 v #12218 > 00:01:12 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } -00:10:31 v #12219 > 00:01:12 d #16 spiral.run / dib / { exit_code = 0; result_length = 41927 } -00:10:31 d #12220 runtime.execute_with_options_async / { exit_code = 0; output_length = 46577 } -00:10:31 d #14 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path am'.dib --retries 3 -00:10:31 d #12221 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path crypto.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path crypto.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } -00:10:31 v #12222 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "crypto.dib", "--retries", "3"])) } -00:10:31 v #12223 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/lib/spiral/crypto.dib", "--output-path", "c:/home/git/polyglot/lib/spiral/crypto.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/lib/spiral/crypto.dib" --output-path "c:/home/git/polyglot/lib/spiral/crypto.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } -00:10:33 v #12224 > > -00:10:33 v #12225 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:10:33 v #12226 > > │ # crypto -00:10:37 v #12227 > > -00:10:37 v #12228 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:10:37 v #12229 > > open rust -00:10:37 v #12230 > > open rust_operators -00:10:38 v #12231 > > -00:10:38 v #12232 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:10:38 v #12233 > > //// test -00:10:38 v #12234 > > -00:10:38 v #12235 > > open testing -00:10:38 v #12236 > > open file_system_operators -00:10:38 v #12237 > > -00:10:38 v #12238 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:10:38 v #12239 > > │ ## fsharp -00:10:38 v #12240 > > -00:10:38 v #12241 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:10:38 v #12242 > > │ ### sha256 -00:10:38 v #12243 > > -00:10:38 v #12244 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:10:38 v #12245 > > nominal sha256 = $'System.Security.Cryptography.SHA256' -00:10:38 v #12246 > > -00:10:38 v #12247 > > inl sha256 () : sha256 = -00:10:38 v #12248 > > $'`sha256.Create' () -00:10:39 v #12249 > > -00:10:39 v #12250 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:10:39 v #12251 > > │ ### sha256_compute_hash -00:10:39 v #12252 > > -00:10:39 v #12253 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:10:39 v #12254 > > inl sha256_compute_hash (x : sha256) (data : a i32 u8) : a i32 u8 = -00:10:39 v #12255 > > data |> $'!x.ComputeHash' -00:10:39 v #12256 > > -00:10:39 v #12257 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:10:39 v #12258 > > │ ## rust -00:10:39 v #12259 > > -00:10:39 v #12260 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:10:39 v #12261 > > │ ### get_file_hash' -00:10:39 v #12262 > > -00:10:39 v #12263 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:10:39 v #12264 > > inl get_file_hash' (path : string) : result string string = -00:10:39 v #12265 > > inl path = path |> file_system.normalize_path -00:10:39 v #12266 > > inl exit_code, result = -00:10:39 v #12267 > > runtime.execution_options fun x => { x with -00:10:39 v #12268 > > command = $'$"pwsh -c \\\"(Get-FileHash \'{!path}\' -Algorithm -00:10:39 v #12269 > > SHA256).Hash\\\""' -00:10:39 v #12270 > > } -00:10:39 v #12271 > > |> runtime.execute_with_options -00:10:39 v #12272 > > if exit_code = 0 -00:10:39 v #12273 > > then result |> sm'.to_lower |> Ok -00:10:39 v #12274 > > else result |> Error -00:10:40 v #12275 > > -00:10:40 v #12276 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:10:40 v #12277 > > //// test -00:10:40 v #12278 > > -00:10:40 v #12279 > > inl file_name = "test.txt" -00:10:40 v #12280 > > inl text = "\n" -00:10:40 v #12281 > > -00:10:40 v #12282 > > inl temp_dir, disposable = -00:10:40 v #12283 > > (file_name, text) -00:10:40 v #12284 > > |> sm'.format_debug -00:10:40 v #12285 > > |> crypto.hash_text -00:10:40 v #12286 > > |> file_system.create_temp_dir' -00:10:40 v #12287 > > disposable |> use |> ignore -00:10:40 v #12288 > > inl path = temp_dir </> file_name -00:10:40 v #12289 > > text |> file_system.write_all_text_async path |> async.run_synchronously -00:10:40 v #12290 > > path -00:10:40 v #12291 > > |> get_file_hash' -00:10:40 v #12292 > > |> resultm.get -00:10:40 v #12293 > > |> _assert_eq "01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b" -00:11:00 v #12294 > > -00:11:00 v #12295 > > ── [ 20.28s - stdout ] ───────────────────────────────────────────────────────── -00:11:00 v #12296 > > │ 00:00:00 d #1 runtime.execute_with_options_async / { -00:11:00 v #12297 > > file_name = pwsh; arguments = US2_0 -00:11:00 v #12298 > > │ "-c "(Get-FileHash -00:11:00 v #12299 > > 'c:/Users/i574n/AppData/Local/Temp/!create_temp_path_/dotnet-repl/9ca8b18d-ee77- -00:11:00 v #12300 > > 4684-ad12-21e1354945fc/test.txt' -Algorithm SHA256).Hash""; options = { command -00:11:00 v #12301 > > = pwsh -c "(Get-FileHash -00:11:00 v #12302 > > 'c:/Users/i574n/AppData/Local/Temp/!create_temp_path_/dotnet-repl/9ca8b18d-ee77- -00:11:00 v #12303 > > 4684-ad12-21e1354945fc/test.txt' -Algorithm SHA256).Hash"; cancellation_token = -00:11:00 v #12304 > > None; environment_variables = [||]; on_line = None; stdin = None; trace = true; -00:11:00 v #12305 > > working_directory = None } } -00:11:00 v #12306 > > │ 00:00:00 v #2 > -00:11:00 v #12307 > > 01BA4719C80B6FE911B091A7C05124B64EEECE964E09C058EF8F9805DACA546B -00:11:00 v #12308 > > │ 00:00:00 d #3 runtime.execute_with_options_async / { -00:11:00 v #12309 > > exit_code = 0; output_length = 64 } -00:11:00 v #12310 > > │ __assert_eq / actual: -00:11:00 v #12311 > > "01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b" / expected: -00:11:00 v #12312 > > "01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b" -00:11:00 v #12313 > > │ -00:11:00 v #12314 > > -00:11:00 v #12315 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:11:00 v #12316 > > //// test -00:11:00 v #12317 > > ///! rust -d chrono encoding_rs encoding_rs_io regex sha2 -00:11:00 v #12318 > > -00:11:00 v #12319 > > inl file_name = "test.txt" -00:11:00 v #12320 > > inl text = "\n" -00:11:00 v #12321 > > -00:11:00 v #12322 > > inl temp_dir, disposable = -00:11:00 v #12323 > > (file_name, text) -00:11:00 v #12324 > > |> sm'.format_debug -00:11:00 v #12325 > > |> crypto.hash_text -00:11:00 v #12326 > > |> file_system.create_temp_dir' -00:11:00 v #12327 > > disposable |> use |> ignore -00:11:00 v #12328 > > inl path = temp_dir </> file_name -00:11:00 v #12329 > > text |> file_system.write_all_text path -00:11:00 v #12330 > > path -00:11:00 v #12331 > > |> get_file_hash' -00:11:00 v #12332 > > |> resultm.get -00:11:00 v #12333 > > |> _assert_eq "01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b" -00:11:16 v #12334 > > -00:11:16 v #12335 > > ── [ 15.69s - return value ] ─────────────────────────────────────────────────── -00:11:16 v #12336 > > │ 00:00:00 v #1 file_system.create_dir / { dir = -00:11:16 v #12337 > > C:\Users\i574n\AppData\Local\Temp\!create_temp_path_\spiral_74b91319e11820925624 -00:11:16 v #12338 > > 8c7c9ae633b87a4c94db060b586c15b6314b5a8ade8f\ba0aa16a-6c5a-be3f-b526-70110c680e3 -00:11:16 v #12339 > > 6 } -00:11:16 v #12340 > > │ 00:00:00 d #2 runtime.execute_with_options / { -00:11:16 v #12341 > > file_name = pwsh; arguments = ["-c", "(Get-FileHash -00:11:16 v #12342 > > 'c:/Users/i574n/AppData/Local/Temp/!create_temp_path_/spiral_74b91319e1182092562 -00:11:16 v #12343 > > 48c7c9ae633b87a4c94db060b586c15b6314b5a8ade8f/ba0aa16a-6c5a-be3f-b526-70110c680e -00:11:16 v #12344 > > 36/test.txt' -Algorithm SHA256).Hash"]; options = { command = pwsh -c -00:11:16 v #12345 > > "(Get-FileHash -00:11:16 v #12346 > > 'c:/Users/i574n/AppData/Local/Temp/!create_temp_path_/spiral_74b91319e1182092562 -00:11:16 v #12347 > > 48c7c9ae633b87a4c94db060b586c15b6314b5a8ade8f/ba0aa16a-6c5a-be3f-b526-70110c680e -00:11:16 v #12348 > > 36/test.txt' -Algorithm SHA256).Hash"; cancellation_token = None; -00:11:16 v #12349 > > environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace -00:11:16 v #12350 > > = true; working_directory = None } } -00:11:16 v #12351 > > │ 00:00:00 v #3 > -00:11:16 v #12352 > > 01BA4719C80B6FE911B091A7C05124B64EEECE964E09C058EF8F9805DACA546B -00:11:16 v #12353 > > │ 00:00:00 v #4 runtime.execute_with_options / result / { -00:11:16 v #12354 > > exit_code = 0; std_trace_length = 64 } -00:11:16 v #12355 > > │ __assert_eq / actual: -00:11:16 v #12356 > > "01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b" / expected: -00:11:16 v #12357 > > "01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b" -00:11:16 v #12358 > > │ -00:11:16 v #12359 > > -00:11:16 v #12360 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:11:16 v #12361 > > │ ### sha256' -00:11:16 v #12362 > > -00:11:16 v #12363 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:11:16 v #12364 > > nominal sha256' = -00:11:16 v #12365 > > `( -00:11:16 v #12366 > > backend_switch `(()) `({}) { -00:11:16 v #12367 > > Fsharp = -00:11:16 v #12368 > > (fun () => -00:11:16 v #12369 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:11:16 v #12370 > > Fable.Core.Emit(\"sha2::Sha256\")>]]\n#endif\ntype sha2_Sha256 = class end" -00:11:16 v #12371 > > ) : () -> () -00:11:16 v #12372 > > } -00:11:16 v #12373 > > $'' : $'sha2_Sha256' -00:11:16 v #12374 > > ) -00:11:16 v #12375 > > -00:11:16 v #12376 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:11:16 v #12377 > > │ ### new_sha256 -00:11:16 v #12378 > > -00:11:16 v #12379 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:11:16 v #12380 > > inl new_sha256 () : sha256' = -00:11:16 v #12381 > > !\($'"let result : sha2::Sha256 = sha2::Digest::new()"') -00:11:16 v #12382 > > !\($'"result"') -00:11:16 v #12383 > > -00:11:16 v #12384 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:11:16 v #12385 > > │ ### hasher_update -00:11:16 v #12386 > > -00:11:16 v #12387 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:11:16 v #12388 > > inl hasher_update forall el dim. (slice : rust.ref (am'.slice' el dim)) (hasher -00:11:16 v #12389 > > : sha256') : () = -00:11:16 v #12390 > > !\($'"sha2::Digest::update(&mut !hasher, !slice)"') -00:11:17 v #12391 > > -00:11:17 v #12392 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:11:17 v #12393 > > │ ### hasher_finalize -00:11:17 v #12394 > > -00:11:17 v #12395 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:11:17 v #12396 > > inl hasher_finalize (hasher : sha256') : rust.ref (am'.slice u8) = -00:11:17 v #12397 > > !\($'"&sha2::Digest::finalize(!hasher)"') -00:11:17 v #12398 > > -00:11:17 v #12399 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:11:17 v #12400 > > │ ### hash_read -00:11:17 v #12401 > > -00:11:17 v #12402 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:11:17 v #12403 > > inl hash_read data : resultm.result' string stream.io_error = -00:11:17 v #12404 > > inl reader = data |> stream.new_buf_reader -00:11:17 v #12405 > > (!\($'"true; let mut !reader = !reader"') : bool) |> ignore -00:11:17 v #12406 > > inl hasher = new_sha256 () -00:11:17 v #12407 > > (!\($'"true; let mut !hasher = !hasher"') : bool) |> ignore -00:11:17 v #12408 > > -00:11:17 v #12409 > > real -00:11:17 v #12410 > > inl size = 1024 -00:11:17 v #12411 > > inl zero = convert `i32 `unativeint 0 -00:11:17 v #12412 > > inl buffer = am'.new_slice `u8 `@size 0u8 -00:11:17 v #12413 > > -00:11:17 v #12414 > > rust.loop 2 fun () => -00:11:17 v #12415 > > inl count = stream.buf_reader_read `u8 `@size buffer reader -00:11:17 v #12416 > > inl count = resultm.unwrap' `unativeint `(stream.io_error) count -00:11:17 v #12417 > > -00:11:17 v #12418 > > if (=.) `unativeint count zero then rust.break () -00:11:17 v #12419 > > -00:11:17 v #12420 > > hasher_update `u8 `@size -00:11:17 v #12421 > > ( -00:11:17 v #12422 > > am'.slice_range `u8 `@size -00:11:17 v #12423 > > (am'.Start `unativeint zero) -00:11:17 v #12424 > > (am'.End `unativeint ((fun _ => count) : (() -> -00:11:17 v #12425 > > unativeint) -> unativeint)) -00:11:17 v #12426 > > buffer -00:11:17 v #12427 > > ) -00:11:17 v #12428 > > hasher -00:11:17 v #12429 > > -00:11:17 v #12430 > > hasher -00:11:17 v #12431 > > |> hasher_finalize -00:11:17 v #12432 > > |> am'.slice_to_vec -00:11:17 v #12433 > > |> am'.vec_map (sm'.format_hex' >> sm'.from_std_string) -00:11:17 v #12434 > > |> am'.from_vec -00:11:17 v #12435 > > |> fun x => x : _ i32 _ -00:11:17 v #12436 > > |> seq.of_array' -00:11:17 v #12437 > > |> sm'.concat (join "") -00:11:17 v #12438 > > |> Ok -00:11:17 v #12439 > > |> resultm.box -00:11:18 v #12440 > > -00:11:18 v #12441 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:11:18 v #12442 > > │ ### get_file_hash -00:11:18 v #12443 > > -00:11:18 v #12444 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:11:18 v #12445 > > inl get_file_hash (path : string) = -00:11:18 v #12446 > > inl path = path |> file_system.normalize_path -00:11:18 v #12447 > > inl file = path |> file_system.file_open |> resultm.unwrap' -00:11:18 v #12448 > > inl reader = file |> stream.new_buf_reader -00:11:18 v #12449 > > reader -00:11:18 v #12450 > > |> hash_read -00:11:18 v #12451 > > -00:11:18 v #12452 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:11:18 v #12453 > > //// test -00:11:18 v #12454 > > ///! rust -d chrono regex sha2 -00:11:18 v #12455 > > -00:11:18 v #12456 > > inl file_name = join "test.txt" -00:11:18 v #12457 > > inl text = "\n" -00:11:18 v #12458 > > -00:11:18 v #12459 > > inl temp_dir, disposable = -00:11:18 v #12460 > > (file_name, text) -00:11:18 v #12461 > > |> sm'.format_debug -00:11:18 v #12462 > > |> crypto.hash_text -00:11:18 v #12463 > > |> file_system.create_temp_dir' -00:11:18 v #12464 > > disposable |> use |> ignore -00:11:18 v #12465 > > -00:11:18 v #12466 > > inl path = temp_dir </> file_name -00:11:18 v #12467 > > text |> file_system.write_all_text path -00:11:18 v #12468 > > -00:11:18 v #12469 > > path -00:11:18 v #12470 > > |> get_file_hash -00:11:18 v #12471 > > |> resultm.unwrap' -00:11:18 v #12472 > > |> _assert_eq "01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b" -00:11:23 v #12473 > > -00:11:23 v #12474 > > ── [ 4.98s - return value ] ──────────────────────────────────────────────────── -00:11:23 v #12475 > > │ 00:00:00 v #1 file_system.create_dir / { dir = -00:11:23 v #12476 > > C:\Users\i574n\AppData\Local\Temp\!create_temp_path_\spiral_a9d9a18aec418e75cebe -00:11:23 v #12477 > > 209c4a621daeb61749222aedd3f4711e35b71e0e5586\ba0aa16a-6c5a-be3f-b526-70110c680e3 -00:11:23 v #12478 > > 6 } -00:11:23 v #12479 > > │ __assert_eq / actual: -00:11:23 v #12480 > > "01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b" / expected: -00:11:23 v #12481 > > "01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b" -00:11:23 v #12482 > > │ -00:11:23 v #12483 > > -00:11:23 v #12484 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:11:23 v #12485 > > //// test -00:11:23 v #12486 > > ///! rust -d chrono regex sha2 -00:11:23 v #12487 > > -00:11:23 v #12488 > > inl file_name = join "test.txt" -00:11:23 v #12489 > > inl text = "" -00:11:23 v #12490 > > -00:11:23 v #12491 > > inl temp_dir, disposable = -00:11:23 v #12492 > > (file_name, text) -00:11:23 v #12493 > > |> sm'.format_debug -00:11:23 v #12494 > > |> crypto.hash_text -00:11:23 v #12495 > > |> file_system.create_temp_dir' -00:11:23 v #12496 > > disposable |> use |> ignore -00:11:23 v #12497 > > -00:11:23 v #12498 > > inl path = temp_dir </> file_name -00:11:23 v #12499 > > text |> file_system.write_all_text path -00:11:23 v #12500 > > path -00:11:23 v #12501 > > |> get_file_hash -00:11:23 v #12502 > > |> resultm.unwrap' -00:11:23 v #12503 > > |> _assert_eq "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" -00:11:28 v #12504 > > -00:11:28 v #12505 > > ── [ 4.89s - return value ] ──────────────────────────────────────────────────── -00:11:28 v #12506 > > │ 00:00:00 v #1 file_system.create_dir / { dir = -00:11:28 v #12507 > > C:\Users\i574n\AppData\Local\Temp\!create_temp_path_\spiral_a62b55035f767ed63e7b -00:11:28 v #12508 > > ef5adceb5c7cdb8c50b99a31b3988e06d97b97ed6de0\c0e26dac-4cb1-4b09-be07-ff616700f05 -00:11:28 v #12509 > > 6 } -00:11:28 v #12510 > > │ __assert_eq / actual: -00:11:28 v #12511 > > "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" / expected: -00:11:28 v #12512 > > "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" -00:11:28 v #12513 > > │ -00:11:28 v #12514 > > -00:11:28 v #12515 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:11:28 v #12516 > > │ ## typescript -00:11:28 v #12517 > > -00:11:28 v #12518 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:11:28 v #12519 > > │ ### create_hash -00:11:28 v #12520 > > -00:11:28 v #12521 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:11:28 v #12522 > > inl create_hash (x : string) : any = -00:11:28 v #12523 > > open typescript_operators -00:11:28 v #12524 > > global "type ICryptoCreateHash = abstract createHash: x: string -> obj" -00:11:28 v #12525 > > inl crypto : $'ICryptoCreateHash' = typescript.import_all "crypto" -00:11:28 v #12526 > > !\\(x, $'"!crypto.createHash($0)"') -00:11:29 v #12527 > > -00:11:29 v #12528 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:11:29 v #12529 > > │ ### hash_update -00:11:29 v #12530 > > -00:11:29 v #12531 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:11:29 v #12532 > > inl hash_update (s : string) (x : any) : any = -00:11:29 v #12533 > > open typescript_operators -00:11:29 v #12534 > > !\\((x, s), $'"$0.update($1, \'utf8\')"') -00:11:29 v #12535 > > -00:11:29 v #12536 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:11:29 v #12537 > > │ ### hash_digest -00:11:29 v #12538 > > -00:11:29 v #12539 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:11:29 v #12540 > > inl hash_digest (s : string) (x : any) : string = -00:11:29 v #12541 > > open typescript_operators -00:11:29 v #12542 > > !\\((x, s), $'"$0.digest($1)"') -00:11:29 v #12543 > > -00:11:29 v #12544 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:11:29 v #12545 > > │ ## python -00:11:29 v #12546 > > -00:11:29 v #12547 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:11:29 v #12548 > > │ ### py_sha256 -00:11:29 v #12549 > > -00:11:29 v #12550 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:11:29 v #12551 > > nominal py_sha256 = any -00:11:30 v #12552 > > -00:11:30 v #12553 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:11:30 v #12554 > > │ ### hashlib_sha256 -00:11:30 v #12555 > > -00:11:30 v #12556 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:11:30 v #12557 > > inl hashlib_sha256 () : py_sha256 = -00:11:30 v #12558 > > backend_switch { -00:11:30 v #12559 > > Fsharp = fun () => -00:11:30 v #12560 > > open python_operators -00:11:30 v #12561 > > global "type IHashlibSha256 = abstract sha256: x: unit -> obj" -00:11:30 v #12562 > > inl hashlib : $'IHashlibSha256' = python.import_all "hashlib" -00:11:30 v #12563 > > !\($'"!hashlib.sha256()"') : py_sha256 -00:11:30 v #12564 > > Python = fun () => -00:11:30 v #12565 > > global "import hashlib" -00:11:30 v #12566 > > $'hashlib.sha256()' : py_sha256 -00:11:30 v #12567 > > } -00:11:30 v #12568 > > -00:11:30 v #12569 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:11:30 v #12570 > > │ ### sha256_update -00:11:30 v #12571 > > -00:11:30 v #12572 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:11:30 v #12573 > > inl sha256_update (x : string) (sha256 : py_sha256) : py_sha256 = -00:11:30 v #12574 > > backend_switch { -00:11:30 v #12575 > > Fsharp = fun () => -00:11:30 v #12576 > > open python_operators -00:11:30 v #12577 > > !\\(x, $'"!sha256.update($0)"') : () -00:11:30 v #12578 > > Python = fun () => -00:11:30 v #12579 > > $'!sha256.update(!x)' : () -00:11:30 v #12580 > > } -00:11:30 v #12581 > > sha256 -00:11:31 v #12582 > > -00:11:31 v #12583 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:11:31 v #12584 > > │ ### sha256_hexdigest -00:11:31 v #12585 > > -00:11:31 v #12586 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:11:31 v #12587 > > inl sha256_hexdigest (sha256 : py_sha256) : string = -00:11:31 v #12588 > > backend_switch { -00:11:31 v #12589 > > Fsharp = fun () => -00:11:31 v #12590 > > open python_operators -00:11:31 v #12591 > > !\($'"!sha256.hexdigest()"') : string -00:11:31 v #12592 > > Python = fun () => -00:11:31 v #12593 > > $'!sha256.hexdigest()' : string -00:11:31 v #12594 > > } -00:11:31 v #12595 > > -00:11:31 v #12596 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:11:31 v #12597 > > │ ## crypto -00:11:31 v #12598 > > -00:11:31 v #12599 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:11:31 v #12600 > > │ ### hash_text -00:11:31 v #12601 > > -00:11:31 v #12602 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:11:31 v #12603 > > let hash_text (~input : string) = -00:11:31 v #12604 > > run_target function -00:11:31 v #12605 > > | Fsharp (Native) => fun () => -00:11:31 v #12606 > > inl sha256 = sha256 () |> use -00:11:31 v #12607 > > input -00:11:31 v #12608 > > |> sm'.utf8_get_bytes -00:11:31 v #12609 > > |> sha256_compute_hash sha256 -00:11:31 v #12610 > > |> am.map (sm'.byte_to_string "x2") -00:11:31 v #12611 > > |> seq.of_array' -00:11:31 v #12612 > > |> sm'.concat (join "") -00:11:31 v #12613 > > | TypeScript (Native) => fun () => -00:11:31 v #12614 > > create_hash "sha256" -00:11:31 v #12615 > > |> hash_update input -00:11:31 v #12616 > > |> hash_digest "hex" -00:11:31 v #12617 > > | Rust (Native) => fun () => -00:11:31 v #12618 > > input -00:11:31 v #12619 > > |> sm'.utf8_get_bytes -00:11:31 v #12620 > > |> fun (a x) => x -00:11:31 v #12621 > > |> am'.to_vec -00:11:31 v #12622 > > |> stream.new_cursor -00:11:31 v #12623 > > |> hash_read -00:11:31 v #12624 > > |> resultm.unwrap' -00:11:31 v #12625 > > | Python (Native) | Cuda (Native) => fun () => -00:11:31 v #12626 > > hashlib_sha256 () -00:11:31 v #12627 > > |> sha256_update (input |> sm'.encode_utf8) -00:11:31 v #12628 > > |> sha256_hexdigest -00:11:31 v #12629 > > | _ => fun () => null () -00:11:32 v #12630 > > -00:11:32 v #12631 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:11:32 v #12632 > > //// test -00:11:32 v #12633 > > ///! fsharp -00:11:32 v #12634 > > ///! cuda -00:11:32 v #12635 > > ///! rust -d sha2 -00:11:32 v #12636 > > ///! typescript -00:11:32 v #12637 > > ///! python -00:11:32 v #12638 > > -00:11:32 v #12639 > > "\n" -00:11:32 v #12640 > > |> hash_text -00:11:32 v #12641 > > |> _assert_eq "01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b" -00:11:32 v #12642 > > -00:11:32 v #12643 > > "" -00:11:32 v #12644 > > |> hash_text -00:11:32 v #12645 > > |> _assert_eq "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" -00:11:35 v #12646 > > -00:11:35 v #12647 > > ── [ 3.58s - return value ] ──────────────────────────────────────────────────── -00:11:35 v #12648 > > │ -00:11:35 v #12649 > > │ .py output (Cuda): -00:11:35 v #12650 > > │ __assert_eq / actual: -00:11:35 v #12651 > > 01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b / expected: -00:11:35 v #12652 > > 01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b -00:11:35 v #12653 > > │ __assert_eq / actual: -00:11:35 v #12654 > > e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 / expected: -00:11:35 v #12655 > > e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 -00:11:35 v #12656 > > │ -00:11:35 v #12657 > > │ -00:11:35 v #12658 > > │ .rs output (rust -d sha2): -00:11:35 v #12659 > > │ __assert_eq / actual: -00:11:35 v #12660 > > "01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b" / expected: -00:11:35 v #12661 > > "01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b" -00:11:35 v #12662 > > │ __assert_eq / actual: -00:11:35 v #12663 > > "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" / expected: -00:11:35 v #12664 > > "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" -00:11:35 v #12665 > > │ -00:11:35 v #12666 > > │ -00:11:35 v #12667 > > │ .ts output: -00:11:35 v #12668 > > │ __assert_eq / actual: -00:11:35 v #12669 > > 01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b / expected: -00:11:35 v #12670 > > 01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b -00:11:35 v #12671 > > │ __assert_eq / actual: -00:11:35 v #12672 > > e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 / expected: -00:11:35 v #12673 > > e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 -00:11:35 v #12674 > > │ -00:11:35 v #12675 > > │ -00:11:35 v #12676 > > │ .py output: -00:11:35 v #12677 > > │ __assert_eq / actual: -00:11:35 v #12678 > > 01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b / expected: -00:11:35 v #12679 > > 01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b -00:11:35 v #12680 > > │ __assert_eq / actual: -00:11:35 v #12681 > > e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 / expected: -00:11:35 v #12682 > > e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 -00:11:35 v #12683 > > │ -00:11:35 v #12684 > > │ -00:11:35 v #12685 > > │ -00:11:35 v #12686 > > -00:11:35 v #12687 > > ── [ 3.58s - stdout ] ────────────────────────────────────────────────────────── -00:11:35 v #12688 > > │ .fsx output: -00:11:35 v #12689 > > │ __assert_eq / actual: -00:11:35 v #12690 > > "01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b" / expected: -00:11:35 v #12691 > > "01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b" -00:11:35 v #12692 > > │ __assert_eq / actual: -00:11:35 v #12693 > > "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" / expected: -00:11:35 v #12694 > > "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" -00:11:35 v #12695 > > │ -00:11:35 v #12696 > > -00:11:35 v #12697 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:11:35 v #12698 > > │ ### hash_to_port -00:11:35 v #12699 > > -00:11:35 v #12700 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:11:35 v #12701 > > inl hash_to_port (text : string) : u16 = -00:11:35 v #12702 > > inl first_letter_code = text |> sm'.index 0i32 |> sm'.convert_to_utf32 -00:11:35 v #12703 > > inl hash_part = text |> sm'.slice 0i32 7 -00:11:35 v #12704 > > inl combined_value = convert_i32_base 16 hash_part + first_letter_code |> -00:11:35 v #12705 > > u16 -00:11:35 v #12706 > > trace Verbose -00:11:35 v #12707 > > fun () => "crypto.hash_to_port" -00:11:35 v #12708 > > fun () => { first_letter_code hash_part combined_value } -00:11:35 v #12709 > > combined_value % 48128 + 1024 -00:11:36 v #12710 > > -00:11:36 v #12711 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:11:36 v #12712 > > //// test -00:11:36 v #12713 > > ///! fsharp -00:11:36 v #12714 > > ///! cuda -00:11:36 v #12715 > > ///! rust -d sha2 -00:11:36 v #12716 > > ///! typescript -00:11:36 v #12717 > > ///! python -00:11:36 v #12718 > > -00:11:36 v #12719 > > "\n" -00:11:36 v #12720 > > |> hash_text -00:11:36 v #12721 > > |> hash_to_port -00:11:36 v #12722 > > |> _assert_eq 19273 -00:11:40 v #12723 > > -00:11:40 v #12724 > > ── [ 4.12s - return value ] ──────────────────────────────────────────────────── -00:11:40 v #12725 > > │ -00:11:40 v #12726 > > │ .py output (Cuda): -00:11:40 v #12727 > > │ 00:00:00 v #1 crypto.hash_to_port / { first_letter_code -00:11:40 v #12728 > > = 48; hash_part = 01ba4719; combined_value = 18249 } -00:11:40 v #12729 > > │ __assert_eq / actual: 19273 / expected: 19273 -00:11:40 v #12730 > > │ -00:11:40 v #12731 > > │ -00:11:40 v #12732 > > │ .rs output (rust -d sha2): -00:11:40 v #12733 > > │ 00:00:00 v #1 crypto.hash_to_port / { first_letter_code -00:11:40 v #12734 > > = 48; hash_part = 01ba4719; combined_value = 18249 } -00:11:40 v #12735 > > │ __assert_eq / actual: 19273 / expected: 19273 -00:11:40 v #12736 > > │ -00:11:40 v #12737 > > │ -00:11:40 v #12738 > > │ .ts output: -00:11:40 v #12739 > > │ 00:00:00 v #1 crypto.hash_to_port / { first_letter_code -00:11:40 v #12740 > > = 48; hash_part = 01ba4719; combined_value = 18249 } -00:11:40 v #12741 > > │ __assert_eq / actual: 19273 / expected: 19273 -00:11:40 v #12742 > > │ -00:11:40 v #12743 > > │ -00:11:40 v #12744 > > │ .py output: -00:11:40 v #12745 > > │ 00:00:00 v #1 crypto.hash_to_port / { first_letter_code -00:11:40 v #12746 > > = 48; hash_part = 01ba4719; combined_value = 18249 } -00:11:40 v #12747 > > │ __assert_eq / actual: 19273 / expected: 19273 -00:11:40 v #12748 > > │ -00:11:40 v #12749 > > │ -00:11:40 v #12750 > > │ -00:11:40 v #12751 > > -00:11:40 v #12752 > > ── [ 4.12s - stdout ] ────────────────────────────────────────────────────────── -00:11:40 v #12753 > > │ .fsx output: -00:11:40 v #12754 > > │ 00:00:00 v #1 crypto.hash_to_port / { first_letter_code -00:11:40 v #12755 > > = 48; hash_part = 01ba4719; combined_value = 18249 } -00:11:40 v #12756 > > │ __assert_eq / actual: 19273us / expected: 19273us -00:11:40 v #12757 > > │ -00:11:40 v #12758 > > -00:11:40 v #12759 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:11:40 v #12760 > > │ ## main -00:11:40 v #12761 > > -00:11:40 v #12762 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:11:40 v #12763 > > inl main () = -00:11:40 v #12764 > > $'let hash_text x = !hash_text x' : () -00:11:40 v #12765 > > $'let hash_to_port x = !hash_to_port x' : () -00:11:41 v #12766 > 00:01:09 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 21243 } -00:11:41 v #12767 > 00:01:09 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/lib/spiral/crypto.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/lib/spiral/crypto.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:11:42 v #12768 > 00:01:10 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/lib/spiral/crypto.dib.ipynb to html -00:11:42 v #12769 > 00:01:10 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. -00:11:42 v #12770 > 00:01:10 v #7 ! validate(nb) -00:11:42 v #12771 > 00:01:11 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 -00:11:42 v #12772 > 00:01:11 v #9 ! return _pygments_highlight( -00:11:43 v #12773 > 00:01:11 v #10 ! [NbConvertApp] Writing 341555 bytes to c:\home\git\polyglot\lib\spiral\crypto.dib.html -00:11:43 v #12774 > 00:01:11 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 854 } -00:11:43 v #12775 > 00:01:11 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 854 } -00:11:43 v #12776 > 00:01:11 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/crypto.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/crypto.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:11:43 v #12777 > 00:01:12 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } -00:11:43 v #12778 > 00:01:12 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } -00:11:43 v #12779 > 00:01:12 d #16 spiral.run / dib / { exit_code = 0; result_length = 22156 } -00:11:43 d #12780 runtime.execute_with_options_async / { exit_code = 0; output_length = 25775 } -00:11:43 d #15 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path crypto.dib --retries 3 -00:11:43 d #12781 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path common.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path common.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } -00:11:43 v #12782 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "common.dib", "--retries", "3"])) } -00:11:43 v #12783 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/lib/spiral/common.dib", "--output-path", "c:/home/git/polyglot/lib/spiral/common.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/lib/spiral/common.dib" --output-path "c:/home/git/polyglot/lib/spiral/common.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } -00:11:45 v #12784 > > -00:11:45 v #12785 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:11:45 v #12786 > > │ # common -00:11:48 v #12787 > > -00:11:48 v #12788 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:11:48 v #12789 > > //// test -00:11:48 v #12790 > > -00:11:48 v #12791 > > open testing -00:11:49 v #12792 > > -00:11:49 v #12793 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:11:49 v #12794 > > │ ## common -00:11:49 v #12795 > > -00:11:49 v #12796 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:11:49 v #12797 > > │ ### retry_fn' -00:11:49 v #12798 > > -00:11:49 v #12799 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:11:49 v #12800 > > inl retry_fn' retries fn = -00:11:49 v #12801 > > let rec loop retry = -00:11:49 v #12802 > > inl is_error, result = -00:11:49 v #12803 > > match fn () with -00:11:49 v #12804 > > | Ok x => false, x -00:11:49 v #12805 > > | Error x => true, x -00:11:49 v #12806 > > if not is_error || retry >= retries -00:11:49 v #12807 > > then result -00:11:49 v #12808 > > else -00:11:49 v #12809 > > trace Debug -00:11:49 v #12810 > > fun () => "common.retry_fn\' / loop" -00:11:49 v #12811 > > fun () => { is_error retry = $'$"{!retry}/{!retries}"' : string; -00:11:49 v #12812 > > result } -00:11:49 v #12813 > > loop (retry + 1) -00:11:49 v #12814 > > loop 1 -00:11:50 v #12815 > > -00:11:50 v #12816 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:11:50 v #12817 > > │ ## fsharp -00:11:50 v #12818 > > -00:11:50 v #12819 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:11:50 v #12820 > > │ ### upcast -00:11:50 v #12821 > > -00:11:50 v #12822 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:11:50 v #12823 > > inl upcast forall t u. (x : t) : u = -00:11:50 v #12824 > > $'!x :> `u ' -00:11:50 v #12825 > > -00:11:50 v #12826 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:11:50 v #12827 > > │ ### downcast -00:11:50 v #12828 > > -00:11:50 v #12829 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:11:50 v #12830 > > inl downcast forall t u. (x : t) : u = -00:11:50 v #12831 > > $'!x :?> `u ' -00:11:51 v #12832 > > -00:11:51 v #12833 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:11:51 v #12834 > > │ ### random -00:11:51 v #12835 > > -00:11:51 v #12836 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:11:51 v #12837 > > nominal random = $'System.Random' -00:11:51 v #12838 > > -00:11:51 v #12839 > > inl random () : random = -00:11:51 v #12840 > > $'`random ' () -00:11:51 v #12841 > > -00:11:51 v #12842 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:11:51 v #12843 > > │ ### random_next -00:11:51 v #12844 > > -00:11:51 v #12845 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:11:51 v #12846 > > inl random_next (min : i32) (max : i32) (random : random) : i32 = -00:11:51 v #12847 > > $'!random.Next (!min, !max)' -00:11:51 v #12848 > > -00:11:51 v #12849 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:11:51 v #12850 > > │ ### disposable -00:11:51 v #12851 > > -00:11:51 v #12852 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:11:51 v #12853 > > nominal disposable t = $"backend_switch `({ Fsharp : $'System.IDisposable'; -00:11:51 v #12854 > > Python : $'object' })" -00:11:52 v #12855 > > -00:11:52 v #12856 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:11:52 v #12857 > > │ ### dispose -00:11:52 v #12858 > > -00:11:52 v #12859 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:11:52 v #12860 > > inl dispose (disposable : disposable _) : () = -00:11:52 v #12861 > > backend_switch { -00:11:52 v #12862 > > Fsharp = fun () => disposable |> $'_.Dispose()' : () -00:11:52 v #12863 > > Python = fun () => $'!disposable.__exit__(None, None, None)' : () -00:11:52 v #12864 > > } -00:11:52 v #12865 > > -00:11:52 v #12866 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:11:52 v #12867 > > │ ### yield -00:11:52 v #12868 > > -00:11:52 v #12869 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:11:52 v #12870 > > inl yield forall t. (x : t) : () = -00:11:52 v #12871 > > $'yield !x ' -00:11:53 v #12872 > > -00:11:53 v #12873 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:11:53 v #12874 > > │ ### return -00:11:53 v #12875 > > -00:11:53 v #12876 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:11:53 v #12877 > > inl return forall t. (x : t) : () = -00:11:53 v #12878 > > $'return !x ' -00:11:53 v #12879 > > -00:11:53 v #12880 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:11:53 v #12881 > > │ ### return' -00:11:53 v #12882 > > -00:11:53 v #12883 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:11:53 v #12884 > > inl return' forall t. (x : t) : t = -00:11:53 v #12885 > > $'return !x ' -00:11:54 v #12886 > > -00:11:54 v #12887 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:11:54 v #12888 > > │ ### retry_fn -00:11:54 v #12889 > > -00:11:54 v #12890 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:11:54 v #12891 > > inl retry_fn forall t. retries (fn : () -> t) : option t = -00:11:54 v #12892 > > let rec loop retry = -00:11:54 v #12893 > > try -00:11:54 v #12894 > > fun () => -00:11:54 v #12895 > > if retry < retries -00:11:54 v #12896 > > then fn () |> Some -00:11:54 v #12897 > > else None -00:11:54 v #12898 > > fun ex => -00:11:54 v #12899 > > trace Warning -00:11:54 v #12900 > > fun () => "common.retry_fn" -00:11:54 v #12901 > > fun () => { retry ex } -00:11:54 v #12902 > > None -00:11:54 v #12903 > > |> function -00:11:54 v #12904 > > | Some x => x -00:11:54 v #12905 > > | None => loop (retry + 1) -00:11:54 v #12906 > > loop 0 -00:11:54 v #12907 > > -00:11:54 v #12908 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:11:54 v #12909 > > //// test -00:11:54 v #12910 > > ///! fsharp -00:11:54 v #12911 > > ///! cuda -00:11:54 v #12912 > > ///! rust -00:11:54 v #12913 > > ///! typescript -00:11:54 v #12914 > > ///! python -00:11:54 v #12915 > > -00:11:54 v #12916 > > inl retry_fn_test = mut 0i32 -00:11:54 v #12917 > > fun () => -00:11:54 v #12918 > > retry_fn_test <- *retry_fn_test + 1 -00:11:54 v #12919 > > *retry_fn_test -00:11:54 v #12920 > > |> retry_fn 3i32 -00:11:54 v #12921 > > |> _assert_eq' (Some 1i32) -00:11:59 v #12922 > > -00:11:59 v #12923 > > ── [ 5.46s - return value ] ──────────────────────────────────────────────────── -00:11:59 v #12924 > > │ .py output (Cuda): -00:11:59 v #12925 > > │ __assert_eq' / actual: US0_0(v0=1) / expected: US0_0(v0=1) -00:11:59 v #12926 > > │ -00:11:59 v #12927 > > │ .rs output: -00:11:59 v #12928 > > │ __assert_eq' / actual: US0_0(1) / expected: US0_0(1) -00:11:59 v #12929 > > │ -00:11:59 v #12930 > > │ .ts output: -00:11:59 v #12931 > > │ __assert_eq' / actual: US0_0 1 / expected: US0_0 1 -00:11:59 v #12932 > > │ -00:11:59 v #12933 > > │ .py output: -00:11:59 v #12934 > > │ __assert_eq' / actual: US0_0 1 / expected: US0_0 1 -00:11:59 v #12935 > > │ -00:11:59 v #12936 > > │ -00:11:59 v #12937 > > -00:11:59 v #12938 > > ── [ 5.47s - stdout ] ────────────────────────────────────────────────────────── -00:11:59 v #12939 > > │ .fsx output: -00:11:59 v #12940 > > │ __assert_eq' / actual: US0_0 1 / expected: US0_0 1 -00:11:59 v #12941 > > │ -00:11:59 v #12942 > > -00:11:59 v #12943 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:11:59 v #12944 > > //// test -00:11:59 v #12945 > > ///! fsharp -00:11:59 v #12946 > > ////! cuda // v3 = $"retry: {v0} / ex: %A{v1} / {v2 ()}" -00:11:59 v #12947 > > ///! rust -00:11:59 v #12948 > > ///! typescript -00:11:59 v #12949 > > ///! python -00:11:59 v #12950 > > -00:11:59 v #12951 > > inl retry_fn_test = mut 0i32 -00:11:59 v #12952 > > fun () => -00:11:59 v #12953 > > if *retry_fn_test >= 2 -00:11:59 v #12954 > > then *retry_fn_test -00:11:59 v #12955 > > else -00:11:59 v #12956 > > retry_fn_test <- *retry_fn_test + 1 -00:11:59 v #12957 > > failwith "test" -00:11:59 v #12958 > > |> retry_fn 3i32 -00:11:59 v #12959 > > |> _assert_eq' (Some 2i32) -00:12:03 v #12960 > > -00:12:03 v #12961 > > ── [ 3.25s - return value ] ──────────────────────────────────────────────────── -00:12:03 v #12962 > > │ -00:12:03 v #12963 > > │ .rs output: -00:12:03 v #12964 > > │ 00:00:00 w #1 common.retry_fn / { retry = 0; ex = -00:12:03 v #12965 > > Exception { -00:12:03 v #12966 > > │ message: "test", -00:12:03 v #12967 > > │ } } -00:12:03 v #12968 > > │ 00:00:00 w #2 common.retry_fn / { retry = 1; ex = -00:12:03 v #12969 > > Exception { -00:12:03 v #12970 > > │ message: "test", -00:12:03 v #12971 > > │ } } -00:12:03 v #12972 > > │ __assert_eq' / actual: US0_0(2) / expected: US0_0(2) -00:12:03 v #12973 > > │ -00:12:03 v #12974 > > │ -00:12:03 v #12975 > > │ .ts output: -00:12:03 v #12976 > > │ 00:00:00 w #1 common.retry_fn / { retry = 0; ex = Error: -00:12:03 v #12977 > > test } -00:12:03 v #12978 > > │ 00:00:00 w #2 common.retry_fn / { retry = 1; ex = Error: -00:12:03 v #12979 > > test } -00:12:03 v #12980 > > │ __assert_eq' / actual: US0_0 2 / expected: US0_0 2 -00:12:03 v #12981 > > │ -00:12:03 v #12982 > > │ -00:12:03 v #12983 > > │ .py output: -00:12:03 v #12984 > > │ 00:00:00 w #1 common.retry_fn / { retry = 0; ex = test } -00:12:03 v #12985 > > │ 00:00:00 w #2 common.retry_fn / { retry = 1; ex = test } -00:12:03 v #12986 > > │ __assert_eq' / actual: US0_0 2 / expected: US0_0 2 -00:12:03 v #12987 > > │ -00:12:03 v #12988 > > │ -00:12:03 v #12989 > > │ -00:12:03 v #12990 > > -00:12:03 v #12991 > > ── [ 3.25s - stdout ] ────────────────────────────────────────────────────────── -00:12:03 v #12992 > > │ .fsx output: -00:12:03 v #12993 > > │ 00:00:00 w #1 common.retry_fn / { retry = 0; ex = -00:12:03 v #12994 > > System.Exception: test -00:12:03 v #12995 > > │ at FSI_0017.closure1(Mut0 v0, Int32 v1, Unit unitVar2) -00:12:03 v #12996 > > │ at FSI_0017.method1(Mut0 v0, Int32 v1) } -00:12:03 v #12997 > > │ 00:00:00 w #2 common.retry_fn / { retry = 1; ex = -00:12:03 v #12998 > > System.Exception: test -00:12:03 v #12999 > > │ at FSI_0017.closure1(Mut0 v0, Int32 v1, Unit unitVar2) -00:12:03 v #13000 > > │ at FSI_0017.method1(Mut0 v0, Int32 v1) } -00:12:03 v #13001 > > │ __assert_eq' / actual: US0_0 2 / expected: US0_0 2 -00:12:03 v #13002 > > │ -00:12:03 v #13003 > > -00:12:03 v #13004 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:12:03 v #13005 > > │ ## common -00:12:03 v #13006 > > -00:12:03 v #13007 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:12:03 v #13008 > > │ ### random' -00:12:03 v #13009 > > -00:12:03 v #13010 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:12:03 v #13011 > > inl random' forall t. (min : t) (max : t) : t = -00:12:03 v #13012 > > run_target function -00:12:03 v #13013 > > | Rust (Contract) => fun () => -00:12:03 v #13014 > > failwith "common.random' / target=Rust(Contract)" -00:12:03 v #13015 > > | Rust _ => fun () => -00:12:03 v #13016 > > open rust.rust_operators -00:12:03 v #13017 > > !\\((min, max), $'"rand::Rng::gen_range(&mut rand::thread_rng(), -00:12:03 v #13018 > > $0..$1)"') -00:12:03 v #13019 > > | _ => fun () => -00:12:03 v #13020 > > random () |> random_next (i32 min) (i32 max) |> convert -00:12:03 v #13021 > > -00:12:03 v #13022 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:12:03 v #13023 > > │ ### new_disposable -00:12:03 v #13024 > > -00:12:03 v #13025 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:12:03 v #13026 > > inl new_disposable (fn : () -> ()) : disposable _ = -00:12:03 v #13027 > > run_target function -00:12:03 v #13028 > > | Rust _ => fun () => -00:12:03 v #13029 > > global "type Disposable (f : unit -> unit) = interface -00:12:03 v #13030 > > System.IDisposable with member _.Dispose () = f ()" -00:12:03 v #13031 > > inl fn = join fn -00:12:03 v #13032 > > $'new Disposable (fun () -> Fable.Core.RustInterop.emitRustExpr !fn -00:12:03 v #13033 > > "$0()" )' -00:12:03 v #13034 > > | Fsharp _ | TypeScript _ | Python _ => fun () => -00:12:03 v #13035 > > inl fn = join fn -00:12:03 v #13036 > > $'{ new System.IDisposable with member _.Dispose () = !fn () }' -00:12:03 v #13037 > > | Cuda _ => fun () => -00:12:03 v #13038 > > $'class Disposable:' -00:12:03 v #13039 > > $' def __init__(self, fn):' -00:12:03 v #13040 > > $' self.fn = fn' -00:12:03 v #13041 > > $' def __exit__(self, exc_type, exc_value, traceback):' -00:12:03 v #13042 > > $' self.fn()' -00:12:03 v #13043 > > $' return False' -00:12:03 v #13044 > > $'Disposable(!fn)' -00:12:03 v #13045 > > | _ => fun () => null () -00:12:04 v #13046 > > -00:12:04 v #13047 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:12:04 v #13048 > > //// test -00:12:04 v #13049 > > ///! fsharp -00:12:04 v #13050 > > ///! cuda -00:12:04 v #13051 > > ///! rust -00:12:04 v #13052 > > ///! typescript -00:12:04 v #13053 > > ///! python -00:12:04 v #13054 > > -00:12:04 v #13055 > > inl new_disposable_test = mut 0i32 -00:12:04 v #13056 > > new_disposable fun () => new_disposable_test <- *new_disposable_test + 1 -00:12:04 v #13057 > > |> fun x => x : disposable () -00:12:04 v #13058 > > |> dispose -00:12:04 v #13059 > > *new_disposable_test |> _assert_eq 1 -00:12:07 v #13060 > > -00:12:07 v #13061 > > ── [ 3.48s - return value ] ──────────────────────────────────────────────────── -00:12:07 v #13062 > > │ .py output (Cuda): -00:12:07 v #13063 > > │ __assert_eq / actual: 1 / expected: 1 -00:12:07 v #13064 > > │ -00:12:07 v #13065 > > │ .rs output: -00:12:07 v #13066 > > │ __assert_eq / actual: 1 / expected: 1 -00:12:07 v #13067 > > │ -00:12:07 v #13068 > > │ .ts output: -00:12:07 v #13069 > > │ __assert_eq / actual: 1 / expected: 1 -00:12:07 v #13070 > > │ -00:12:07 v #13071 > > │ .py output: -00:12:07 v #13072 > > │ __assert_eq / actual: 1 / expected: 1 -00:12:07 v #13073 > > │ -00:12:07 v #13074 > > │ -00:12:07 v #13075 > > -00:12:07 v #13076 > > ── [ 3.48s - stdout ] ────────────────────────────────────────────────────────── -00:12:07 v #13077 > > │ .fsx output: -00:12:07 v #13078 > > │ __assert_eq / actual: 1 / expected: 1 -00:12:07 v #13079 > > │ -00:12:07 v #13080 > > -00:12:07 v #13081 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:12:07 v #13082 > > //// test -00:12:07 v #13083 > > -00:12:07 v #13084 > > inl new_disposable_test = mut 0i32 -00:12:07 v #13085 > > fun () => -00:12:07 v #13086 > > new_disposable fun () => new_disposable_test <- *new_disposable_test + 1 -00:12:07 v #13087 > > |> fun x => x : disposable () -00:12:07 v #13088 > > |> use -00:12:07 v #13089 > > |> ignore -00:12:07 v #13090 > > |> return -00:12:07 v #13091 > > |> async.new_task -00:12:07 v #13092 > > |> async.await_task -00:12:07 v #13093 > > |> async.run_synchronously -00:12:07 v #13094 > > *new_disposable_test |> _assert_eq 1 -00:12:08 v #13095 > > -00:12:08 v #13096 > > ── [ 560.63ms - stdout ] ─────────────────────────────────────────────────────── -00:12:08 v #13097 > > │ __assert_eq / actual: 1 / expected: 1 -00:12:08 v #13098 > > │ -00:12:08 v #13099 > > -00:12:08 v #13100 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:12:08 v #13101 > > //// test -00:12:08 v #13102 > > -00:12:08 v #13103 > > inl new_disposable_test = mut 0i32 -00:12:08 v #13104 > > fun () => -00:12:08 v #13105 > > new_disposable fun () => new_disposable_test <- *new_disposable_test + 1 -00:12:08 v #13106 > > |> fun x => x : disposable () -00:12:08 v #13107 > > |> use -00:12:08 v #13108 > > |> ignore -00:12:08 v #13109 > > |> return -00:12:08 v #13110 > > |> async.new_async -00:12:08 v #13111 > > |> async.run_synchronously -00:12:08 v #13112 > > *new_disposable_test |> _assert_eq 1 -00:12:08 v #13113 > > -00:12:08 v #13114 > > ── [ 587.74ms - stdout ] ─────────────────────────────────────────────────────── -00:12:08 v #13115 > > │ __assert_eq / actual: 1 / expected: 1 -00:12:08 v #13116 > > │ -00:12:08 v #13117 > > -00:12:08 v #13118 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:12:08 v #13119 > > //// test -00:12:08 v #13120 > > -00:12:08 v #13121 > > inl new_disposable_test = mut 0i32 -00:12:08 v #13122 > > fun () => -00:12:08 v #13123 > > new_disposable fun () => new_disposable_test <- *new_disposable_test + 1 -00:12:08 v #13124 > > |> fun x => x : disposable () -00:12:08 v #13125 > > |> ignore -00:12:08 v #13126 > > |> return -00:12:08 v #13127 > > |> async.new_async -00:12:08 v #13128 > > |> async.run_synchronously -00:12:08 v #13129 > > *new_disposable_test |> _assert_eq 0 -00:12:09 v #13130 > > -00:12:09 v #13131 > > ── [ 588.41ms - stdout ] ─────────────────────────────────────────────────────── -00:12:09 v #13132 > > │ __assert_eq / actual: 0 / expected: 0 -00:12:09 v #13133 > > │ -00:12:09 v #13134 > > -00:12:09 v #13135 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:12:09 v #13136 > > │ ## main -00:12:09 v #13137 > > -00:12:09 v #13138 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:12:09 v #13139 > > inl main () = -00:12:09 v #13140 > > init_trace_state None -00:12:09 v #13141 > > inl new_disposable x : _ () = new_disposable x -00:12:09 v #13142 > > $'let new_disposable x = !new_disposable x' : () -00:12:09 v #13143 > > inl retry_fn (r : i32) (x : () -> _) : optionm'.option' () = retry_fn r x |> -00:12:09 v #13144 > > optionm'.box -00:12:09 v #13145 > > $'let retry_fn x = !retry_fn x' : () -00:12:09 v #13146 > > inl memoize (fn : () -> ()) : () -> () = memoize fn -00:12:09 v #13147 > > $'let memoize x = !memoize x' : () -00:12:10 v #13148 > 00:00:26 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 13103 } -00:12:10 v #13149 > 00:00:26 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/lib/spiral/common.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/lib/spiral/common.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:12:11 v #13150 > 00:00:27 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/lib/spiral/common.dib.ipynb to html -00:12:11 v #13151 > 00:00:27 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. -00:12:11 v #13152 > 00:00:27 v #7 ! validate(nb) -00:12:11 v #13153 > 00:00:28 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 -00:12:11 v #13154 > 00:00:28 v #9 ! return _pygments_highlight( -00:12:12 v #13155 > 00:00:28 v #10 ! [NbConvertApp] Writing 318867 bytes to c:\home\git\polyglot\lib\spiral\common.dib.html -00:12:12 v #13156 > 00:00:28 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 854 } -00:12:12 v #13157 > 00:00:28 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 854 } -00:12:12 v #13158 > 00:00:28 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/common.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/common.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:12:12 v #13159 > 00:00:28 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } -00:12:12 v #13160 > 00:00:28 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } -00:12:12 v #13161 > 00:00:28 d #16 spiral.run / dib / { exit_code = 0; result_length = 14016 } -00:12:12 d #13162 runtime.execute_with_options_async / { exit_code = 0; output_length = 17279 } -00:12:12 d #16 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path common.dib --retries 3 -00:12:12 d #13163 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path resultm.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path resultm.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } -00:12:12 v #13164 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "resultm.dib", "--retries", "3"])) } -00:12:12 v #13165 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/lib/spiral/resultm.dib", "--output-path", "c:/home/git/polyglot/lib/spiral/resultm.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/lib/spiral/resultm.dib" --output-path "c:/home/git/polyglot/lib/spiral/resultm.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } -00:12:14 v #13166 > > -00:12:14 v #13167 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:12:14 v #13168 > > │ # resultm -00:12:17 v #13169 > > -00:12:17 v #13170 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:12:17 v #13171 > > open rust -00:12:17 v #13172 > > open rust_operators -00:12:18 v #13173 > > -00:12:18 v #13174 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:12:18 v #13175 > > //// test -00:12:18 v #13176 > > -00:12:18 v #13177 > > open testing -00:12:18 v #13178 > > -00:12:18 v #13179 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:12:18 v #13180 > > │ ## resultm -00:12:18 v #13181 > > -00:12:18 v #13182 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:12:18 v #13183 > > │ ### from_option_error -00:12:18 v #13184 > > -00:12:18 v #13185 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:12:18 v #13186 > > inl from_option_error error opt = -00:12:18 v #13187 > > match opt with -00:12:18 v #13188 > > | Some x => Ok x -00:12:18 v #13189 > > | None => Error error -00:12:19 v #13190 > > -00:12:19 v #13191 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:12:19 v #13192 > > │ ### from_option -00:12:19 v #13193 > > -00:12:19 v #13194 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:12:19 v #13195 > > inl from_option opt = -00:12:19 v #13196 > > opt |> from_option_error "resultm.from_option / Option does not have a -00:12:19 v #13197 > > value." -00:12:19 v #13198 > > -00:12:19 v #13199 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:12:19 v #13200 > > │ ### flatten_option -00:12:19 v #13201 > > -00:12:19 v #13202 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:12:19 v #13203 > > inl flatten_option forall t u. (x : option (result (option t) u)) : result -00:12:19 v #13204 > > (option t) u = -00:12:19 v #13205 > > match x with -00:12:19 v #13206 > > | Some (Error x) => Error x -00:12:19 v #13207 > > | Some (Ok (Some x)) => Ok (Some x) -00:12:19 v #13208 > > | _ => Ok None -00:12:20 v #13209 > > -00:12:20 v #13210 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:12:20 v #13211 > > │ ### flatten -00:12:20 v #13212 > > -00:12:20 v #13213 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:12:20 v #13214 > > inl flatten forall t u. (x : result (result t u) u) : result t u = -00:12:20 v #13215 > > match x with -00:12:20 v #13216 > > | Ok x => x -00:12:20 v #13217 > > | Error x => Error x -00:12:20 v #13218 > > -00:12:20 v #13219 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:12:20 v #13220 > > │ ### get -00:12:20 v #13221 > > -00:12:20 v #13222 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:12:20 v #13223 > > inl get forall t e. (source : result t e) : t = -00:12:20 v #13224 > > match source with -00:12:20 v #13225 > > | Ok x => x -00:12:20 v #13226 > > | Error x => -00:12:20 v #13227 > > backend_switch { -00:12:20 v #13228 > > Fsharp = fun () => $'$"resultm.get / Result value was Error: {!x}"' -00:12:20 v #13229 > > : string -00:12:20 v #13230 > > Python = fun () => $'f"resultm.get / Result value was Error: {!x}"' -00:12:20 v #13231 > > : string -00:12:20 v #13232 > > } -00:12:20 v #13233 > > |> failwith -00:12:21 v #13234 > > -00:12:21 v #13235 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:12:21 v #13236 > > │ ### map -00:12:21 v #13237 > > -00:12:21 v #13238 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:12:21 v #13239 > > inl map forall t e u. (fn : t -> u) (source : result t e) : result u e = -00:12:21 v #13240 > > match source with -00:12:21 v #13241 > > | Ok x => x |> fn |> Ok -00:12:21 v #13242 > > | Error x => Error x -00:12:21 v #13243 > > -00:12:21 v #13244 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:12:21 v #13245 > > │ ### map_error -00:12:21 v #13246 > > -00:12:21 v #13247 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:12:21 v #13248 > > inl map_error forall t e u. (fn : e -> u) (source : result t e) : result t u = -00:12:21 v #13249 > > match source with -00:12:21 v #13250 > > | Ok x => Ok x -00:12:21 v #13251 > > | Error x => x |> fn |> Error -00:12:21 v #13252 > > -00:12:21 v #13253 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:12:21 v #13254 > > │ ### unwrap_err -00:12:21 v #13255 > > -00:12:21 v #13256 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:12:21 v #13257 > > inl unwrap_err forall t u. (x : result t u) : u = -00:12:21 v #13258 > > match x with -00:12:21 v #13259 > > | Ok x => -00:12:21 v #13260 > > backend_switch { -00:12:21 v #13261 > > Fsharp = fun () => $'$"resultm.unwrap_err / x: {!x}"' : string -00:12:21 v #13262 > > Python = fun () => $'f"resultm.unwrap_err / x: {!x}"' : string -00:12:21 v #13263 > > } -00:12:21 v #13264 > > |> failwith -00:12:21 v #13265 > > | Error x => x -00:12:22 v #13266 > > -00:12:22 v #13267 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:12:22 v #13268 > > │ ### ok -00:12:22 v #13269 > > -00:12:22 v #13270 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:12:22 v #13271 > > inl ok forall t. (x : result t _) : option t = -00:12:22 v #13272 > > match x with -00:12:22 v #13273 > > | Ok x => Some x -00:12:22 v #13274 > > | Error _ => None -00:12:22 v #13275 > > -00:12:22 v #13276 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:12:22 v #13277 > > │ ## fsharp -00:12:22 v #13278 > > -00:12:22 v #13279 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:12:22 v #13280 > > │ ### result' -00:12:22 v #13281 > > -00:12:22 v #13282 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:12:22 v #13283 > > nominal result' t u = $'Result<`t, `u>' -00:12:23 v #13284 > > -00:12:23 v #13285 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:12:23 v #13286 > > │ ### unbox -00:12:23 v #13287 > > -00:12:23 v #13288 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:12:23 v #13289 > > inl unbox forall t u. (x : result' t u) : result t u = -00:12:23 v #13290 > > inl ok x : result t u = Ok x -00:12:23 v #13291 > > inl error x : result t u = Error x -00:12:23 v #13292 > > inl ok = join ok -00:12:23 v #13293 > > inl error = join error -00:12:23 v #13294 > > real -00:12:23 v #13295 > > typecase t with -00:12:23 v #13296 > > | () => $'match !x with Ok () -> !ok () | Error x -> !error x' : result -00:12:23 v #13297 > > t u -00:12:23 v #13298 > > | _ => $'match !x with Ok x -> !ok x | Error x -> !error x' : result t u -00:12:23 v #13299 > > -00:12:23 v #13300 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:12:23 v #13301 > > │ ### box -00:12:23 v #13302 > > -00:12:23 v #13303 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:12:23 v #13304 > > inl box forall t u. (x : result t u) : result' t u = -00:12:23 v #13305 > > match x with -00:12:23 v #13306 > > | Ok x => $'Ok !x ' -00:12:23 v #13307 > > | Error err => $'Error !err ' -00:12:24 v #13308 > > -00:12:24 v #13309 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:12:24 v #13310 > > │ ## rust -00:12:24 v #13311 > > -00:12:24 v #13312 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:12:24 v #13313 > > │ ### anyhow_result -00:12:24 v #13314 > > -00:12:24 v #13315 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:12:24 v #13316 > > nominal anyhow_result t = -00:12:24 v #13317 > > `( -00:12:24 v #13318 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:12:24 v #13319 > > Fable.Core.Emit(\"anyhow::Result<$0>\")>]]\n#endif\ntype anyhow_Result<'T> = -00:12:24 v #13320 > > class end" -00:12:24 v #13321 > > $'' : $'anyhow_Result<`t>' -00:12:24 v #13322 > > ) -00:12:24 v #13323 > > -00:12:24 v #13324 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:12:24 v #13325 > > │ ### anyhow_error -00:12:24 v #13326 > > -00:12:24 v #13327 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:12:24 v #13328 > > nominal anyhow_error = -00:12:24 v #13329 > > `( -00:12:24 v #13330 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:12:24 v #13331 > > Fable.Core.Emit(\"anyhow::Error\")>]]\n#endif\ntype anyhow_Error = class end" -00:12:24 v #13332 > > $'' : $'anyhow_Error' -00:12:24 v #13333 > > ) -00:12:24 v #13334 > > -00:12:24 v #13335 > > inl anyhow_error error = -00:12:24 v #13336 > > !\\(error, $'"anyhow::anyhow\!($0)"') -00:12:24 v #13337 > > -00:12:24 v #13338 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:12:24 v #13339 > > │ ### try' -00:12:24 v #13340 > > -00:12:24 v #13341 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:12:24 v #13342 > > inl try' forall t u. (x : result' t u) : t = -00:12:24 v #13343 > > inl is_unit = -00:12:24 v #13344 > > real -00:12:24 v #13345 > > typecase t with -00:12:24 v #13346 > > | () => true -00:12:24 v #13347 > > | _ => false -00:12:24 v #13348 > > if is_unit -00:12:24 v #13349 > > then (!\\(x, $'"true; $0?"') : bool) |> fun _ => $'' -00:12:24 v #13350 > > else !\\(x, $'"$0?"') -00:12:25 v #13351 > > -00:12:25 v #13352 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:12:25 v #13353 > > │ ### to_try -00:12:25 v #13354 > > -00:12:25 v #13355 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:12:25 v #13356 > > inl to_try forall t u. (x : result' t u) : rust.try t = -00:12:25 v #13357 > > !\\(x, $'"$0"') -00:12:25 v #13358 > > -00:12:25 v #13359 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:12:25 v #13360 > > │ ### unwrap' -00:12:25 v #13361 > > -00:12:25 v #13362 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:12:25 v #13363 > > inl unwrap' forall t u. (x : result' t u) : t = -00:12:25 v #13364 > > run_target function -00:12:25 v #13365 > > | Rust _ => fun () => !\\(x, $'"$0.unwrap()"') -00:12:25 v #13366 > > | _ => fun () => $'match !x with Ok x -> x | Error e -> failwith -00:12:25 v #13367 > > $"resultm.unwrap\' / e: {e}"' -00:12:26 v #13368 > > -00:12:26 v #13369 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:12:26 v #13370 > > │ ### unwrap_err' -00:12:26 v #13371 > > -00:12:26 v #13372 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:12:26 v #13373 > > inl unwrap_err' forall t u. (x : result' t u) : u = -00:12:26 v #13374 > > $'match !x with Ok x -> failwith $"resultm.unwrap_err\' / x: %A{x}" | Error -00:12:26 v #13375 > > x -> x' -00:12:26 v #13376 > > -00:12:26 v #13377 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:12:26 v #13378 > > │ ### unbox' -00:12:26 v #13379 > > -00:12:26 v #13380 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:12:26 v #13381 > > inl unbox' forall t u. (x : result' t u) : result t u = -00:12:26 v #13382 > > inl ok x : result t u = Ok x -00:12:26 v #13383 > > inl ok = join ok -00:12:26 v #13384 > > inl error x : result t u = Error x -00:12:26 v #13385 > > inl error = join error -00:12:26 v #13386 > > real -00:12:26 v #13387 > > typecase t with -00:12:26 v #13388 > > | () => -00:12:26 v #13389 > > (~!\\) -00:12:26 v #13390 > > `((result' t u -> result t u) * (result' t u -> result t u)) -00:12:26 v #13391 > > `(result t u) -00:12:26 v #13392 > > ((ok, error, x), ($'"match $2 { Ok(()) => $0(()), Err(e) => -00:12:26 v #13393 > > $1(e) }"' : string)) -00:12:26 v #13394 > > | _ => -00:12:26 v #13395 > > (~!\\) -00:12:26 v #13396 > > `((result' t u -> result t u) * (result' t u -> result t u)) -00:12:26 v #13397 > > `(result t u) -00:12:26 v #13398 > > ((ok, error, x), ($'"match $2 { Ok(x) => $0(x), Err(e) => $1(e) -00:12:26 v #13399 > > }"' : string)) -00:12:27 v #13400 > > -00:12:27 v #13401 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:12:27 v #13402 > > │ ### map' -00:12:27 v #13403 > > -00:12:27 v #13404 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:12:27 v #13405 > > inl map' forall t e u. (fn : t -> u) (source : result' t e) : result' u e = -00:12:27 v #13406 > > (!\\(source, $'"true; let _result_map_ = $0.map(|x| { //"') : bool) |> -00:12:27 v #13407 > > ignore -00:12:27 v #13408 > > (!\\(fn !\($'"x"'), $'"true; $0 })"') : bool) |> ignore -00:12:27 v #13409 > > !\($'"_result_map_"') -00:12:27 v #13410 > > -00:12:27 v #13411 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:12:27 v #13412 > > │ ### map'' -00:12:27 v #13413 > > -00:12:27 v #13414 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:12:27 v #13415 > > inl map'' forall t e u. (fn : t -> u) (source : result' t e) : result' u e = -00:12:27 v #13416 > > inl fn = join fn -00:12:27 v #13417 > > inl source = join source -00:12:27 v #13418 > > !\($'"!source.map(|x| !fn(x))"') -00:12:28 v #13419 > > -00:12:28 v #13420 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:12:28 v #13421 > > │ ### map_error' -00:12:28 v #13422 > > -00:12:28 v #13423 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:12:28 v #13424 > > inl map_error' forall t e u. (fn : e -> u) (source : result' t e) : result' t u -00:12:28 v #13425 > > = -00:12:28 v #13426 > > inl fn = join fn -00:12:28 v #13427 > > run_target_args (fun () => fn) function -00:12:28 v #13428 > > | Rust _ => fun fn => -00:12:28 v #13429 > > !\\((source, fn), $'"$0.map_err(|x| $1(x))"') -00:12:28 v #13430 > > | _ => fun fn => -00:12:28 v #13431 > > $'match !source with Ok x -> Ok x | Error x -> Error (!fn x)' : -00:12:28 v #13432 > > result' t u -00:12:28 v #13433 > > -00:12:28 v #13434 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:12:28 v #13435 > > │ ### map_error'' -00:12:28 v #13436 > > -00:12:28 v #13437 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:12:28 v #13438 > > inl map_error'' forall t e u. (fn : e -> u) (source : result' t e) : result' t u -00:12:28 v #13439 > > = -00:12:28 v #13440 > > (!\\(source, $'"true; let _result_map_error__ = $0.map_err(|x| { //"') : -00:12:28 v #13441 > > bool) |> ignore -00:12:28 v #13442 > > (!\\(fn !\($'"x"'), $'"true; $0 })"') : bool) |> ignore -00:12:28 v #13443 > > !\($'"_result_map_error__"') -00:12:28 v #13444 > > -00:12:28 v #13445 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:12:28 v #13446 > > │ ### option_ok_or -00:12:28 v #13447 > > -00:12:28 v #13448 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:12:28 v #13449 > > inl option_ok_or forall t e. (e : e) (source : optionm'.option' t) : result' t e -00:12:28 v #13450 > > = -00:12:28 v #13451 > > !\\(source, $'"$0.ok_or(!e)"') -00:12:29 v #13452 > > -00:12:29 v #13453 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:12:29 v #13454 > > │ ### unwrap_or_else -00:12:29 v #13455 > > -00:12:29 v #13456 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:12:29 v #13457 > > inl unwrap_or_else forall t e u. (fn : e -> u) (source : result' t e) : u = -00:12:29 v #13458 > > (!\\(source, $'"true; let _result_unwrap_or_else = $0.unwrap_or_else(|x| { -00:12:29 v #13459 > > //"') : bool) |> ignore -00:12:29 v #13460 > > (!\\(fn !\($'"x"'), $'"true; $0 })"') : bool) |> ignore -00:12:29 v #13461 > > !\($'"_result_unwrap_or_else"') -00:12:29 v #13462 > > -00:12:29 v #13463 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:12:29 v #13464 > > │ ### map_or_else -00:12:29 v #13465 > > -00:12:29 v #13466 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:12:29 v #13467 > > inl map_or_else forall t e u v. (fn : e -> v) (fn2 : u -> v) (source : result' t -00:12:29 v #13468 > > e) : v = -00:12:29 v #13469 > > (!\\(source, $'"true; let _result_map_or_else = $0.map_or_else(|x| { //"') : -00:12:29 v #13470 > > bool) |> ignore -00:12:29 v #13471 > > (!\\(fn !\($'"x"'), $'"true; $0 }, |x| { //"') : bool) |> ignore -00:12:29 v #13472 > > (!\\(fn2 !\($'"x"'), $'"true; $0 })"') : bool) |> ignore -00:12:29 v #13473 > > !\($'"_result_map_or_else"') -00:12:30 v #13474 > > -00:12:30 v #13475 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:12:30 v #13476 > > │ ### as_ref -00:12:30 v #13477 > > -00:12:30 v #13478 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:12:30 v #13479 > > inl as_ref forall t e. (source : result' t e) : result' (rust.ref t) (rust.ref -00:12:30 v #13480 > > e) = -00:12:30 v #13481 > > !\($'"!source.as_ref()"') -00:12:30 v #13482 > > -00:12:30 v #13483 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:12:30 v #13484 > > │ ### as_ref' -00:12:30 v #13485 > > -00:12:30 v #13486 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:12:30 v #13487 > > inl as_ref' forall t e. (source : rust.ref (result' t e)) : result' (rust.ref t) -00:12:30 v #13488 > > (rust.ref e) = -00:12:30 v #13489 > > !\($'"!source.as_ref()"') -00:12:31 v #13490 > > -00:12:31 v #13491 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:12:31 v #13492 > > │ ### unwrap_or' -00:12:31 v #13493 > > -00:12:31 v #13494 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:12:31 v #13495 > > inl unwrap_or' forall t u. (default : t) (x : result' t u) : t = -00:12:31 v #13496 > > !\\((x, default), $'"$0.unwrap_or($1)"') -00:12:31 v #13497 > > -00:12:31 v #13498 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:12:31 v #13499 > > │ ### expect -00:12:31 v #13500 > > -00:12:31 v #13501 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:12:31 v #13502 > > inl expect forall t u. (error : rust.ref string) (x : result' t u) : t = -00:12:31 v #13503 > > !\($'"!x.expect(&!error)"') -00:12:31 v #13504 > > -00:12:31 v #13505 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:12:31 v #13506 > > │ ### is_err -00:12:31 v #13507 > > -00:12:31 v #13508 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:12:31 v #13509 > > inl is_err forall t u. (x : result' t u) : bool = -00:12:31 v #13510 > > run_target function -00:12:31 v #13511 > > | Rust _ => fun () => !\\(x, $'"$0.is_err()"') -00:12:31 v #13512 > > | _ => fun () => true -00:12:32 v #13513 > > -00:12:32 v #13514 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:12:32 v #13515 > > │ ### ok' -00:12:32 v #13516 > > -00:12:32 v #13517 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:12:32 v #13518 > > inl ok' forall t. (x : result' t _) : optionm'.option' t = -00:12:32 v #13519 > > run_target function -00:12:32 v #13520 > > | Rust _ => fun () => !\\(x, $'"$0.ok()"') -00:12:32 v #13521 > > | _ => fun () => $'match !x with Ok x -> Some x | Error _ -> None' -00:12:32 v #13522 > > -00:12:32 v #13523 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:12:32 v #13524 > > │ ### err -00:12:32 v #13525 > > -00:12:32 v #13526 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:12:32 v #13527 > > inl err forall t u. (x : u) : result' t u = -00:12:32 v #13528 > > run_target function -00:12:32 v #13529 > > | Rust _ => fun () => !\\(x, $'"Err($0)"') -00:12:32 v #13530 > > | _ => fun () => $'!x |> Error' -00:12:33 v #13531 > > -00:12:33 v #13532 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:12:33 v #13533 > > │ ### ok'' -00:12:33 v #13534 > > -00:12:33 v #13535 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:12:33 v #13536 > > inl ok'' forall t u. (x : t) : result' t u = -00:12:33 v #13537 > > run_target function -00:12:33 v #13538 > > | Rust _ => fun () => !\\(x, $'"Ok($0)"') -00:12:33 v #13539 > > | _ => fun () => $'!x |> Ok' -00:12:33 v #13540 > > -00:12:33 v #13541 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:12:33 v #13542 > > │ ### transpose -00:12:33 v #13543 > > -00:12:33 v #13544 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:12:33 v #13545 > > inl transpose forall t u. (x : optionm'.option' (result' t u)) : result' -00:12:33 v #13546 > > (optionm'.option' t) u = -00:12:33 v #13547 > > !\\(x, $'"$0.transpose()"') -00:12:34 v #13548 > > -00:12:34 v #13549 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:12:34 v #13550 > > │ ### rc_try_unwrap -00:12:34 v #13551 > > -00:12:34 v #13552 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:12:34 v #13553 > > inl rc_try_unwrap forall t. (x : rust.rc t) : result' t (rust.rc t) = -00:12:34 v #13554 > > !\\(x, $'"std::rc::Rc::try_unwrap($0)"') -00:12:34 v #13555 > > -00:12:34 v #13556 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:12:34 v #13557 > > //// test -00:12:34 v #13558 > > ///! rust -00:12:34 v #13559 > > -00:12:34 v #13560 > > rust.new_rc true -00:12:34 v #13561 > > |> rc_try_unwrap -00:12:34 v #13562 > > |> unbox -00:12:34 v #13563 > > |> _assert_eq (Ok true) -00:12:36 v #13564 > > -00:12:36 v #13565 > > ── [ 2.37s - return value ] ──────────────────────────────────────────────────── -00:12:36 v #13566 > > │ __assert_eq / actual: US0_0(true) / expected: US0_0(true) -00:12:36 v #13567 > > │ -00:12:37 v #13568 > 00:00:24 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 15468 } -00:12:37 v #13569 > 00:00:24 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/lib/spiral/resultm.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/lib/spiral/resultm.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:12:38 v #13570 > 00:00:25 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/lib/spiral/resultm.dib.ipynb to html -00:12:38 v #13571 > 00:00:25 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. -00:12:38 v #13572 > 00:00:25 v #7 ! validate(nb) -00:12:38 v #13573 > 00:00:26 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 -00:12:38 v #13574 > 00:00:26 v #9 ! return _pygments_highlight( -00:12:39 v #13575 > 00:00:26 v #10 ! [NbConvertApp] Writing 352020 bytes to c:\home\git\polyglot\lib\spiral\resultm.dib.html -00:12:39 v #13576 > 00:00:26 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 856 } -00:12:39 v #13577 > 00:00:26 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 856 } -00:12:39 v #13578 > 00:00:26 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/resultm.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/resultm.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:12:39 v #13579 > 00:00:27 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } -00:12:39 v #13580 > 00:00:27 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } -00:12:39 v #13581 > 00:00:27 d #16 spiral.run / dib / { exit_code = 0; result_length = 16383 } -00:12:39 d #13582 runtime.execute_with_options_async / { exit_code = 0; output_length = 19731 } -00:12:39 d #17 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path resultm.dib --retries 3 -00:12:39 d #13583 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path console.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path console.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } -00:12:39 v #13584 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "console.dib", "--retries", "3"])) } -00:12:39 v #13585 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/lib/spiral/console.dib", "--output-path", "c:/home/git/polyglot/lib/spiral/console.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/lib/spiral/console.dib" --output-path "c:/home/git/polyglot/lib/spiral/console.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } -00:12:41 v #13586 > > -00:12:41 v #13587 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:12:41 v #13588 > > │ # console -00:12:44 v #13589 > > -00:12:44 v #13590 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:12:44 v #13591 > > //// test -00:12:44 v #13592 > > -00:12:44 v #13593 > > open testing -00:12:45 v #13594 > > -00:12:45 v #13595 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:12:45 v #13596 > > │ ## fsharp -00:12:45 v #13597 > > -00:12:45 v #13598 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:12:45 v #13599 > > │ ### console_color -00:12:45 v #13600 > > -00:12:45 v #13601 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:12:45 v #13602 > > nominal console_color = $'System.ConsoleColor' -00:12:46 v #13603 > > -00:12:46 v #13604 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:12:46 v #13605 > > │ ### reset_color -00:12:46 v #13606 > > -00:12:46 v #13607 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:12:46 v #13608 > > inl reset_color () : () = -00:12:46 v #13609 > > run_target function -00:12:46 v #13610 > > | Fsharp => fun () => $'System.Console.ResetColor ()' -00:12:46 v #13611 > > | _ => fun () => () -00:12:46 v #13612 > > -00:12:46 v #13613 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:12:46 v #13614 > > │ ### set_foreground_color -00:12:46 v #13615 > > -00:12:46 v #13616 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:12:46 v #13617 > > inl set_foreground_color (color : console_color) : () = -00:12:46 v #13618 > > run_target function -00:12:46 v #13619 > > | Fsharp => fun () => $'System.Console.ForegroundColor <- !color ' -00:12:46 v #13620 > > | _ => fun () => () -00:12:46 v #13621 > > -00:12:46 v #13622 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:12:46 v #13623 > > │ ## console -00:12:46 v #13624 > > -00:12:46 v #13625 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:12:46 v #13626 > > │ ### write_line -00:12:46 v #13627 > > -00:12:46 v #13628 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:12:46 v #13629 > > inl write_line obj : () = -00:12:46 v #13630 > > backend_switch { -00:12:46 v #13631 > > Fsharp = fun () => -00:12:46 v #13632 > > fun () => obj |> $'System.Console.WriteLine' -00:12:46 v #13633 > > |> exec_unit -00:12:46 v #13634 > > Python = fun () => $'print(!obj)' : () -00:12:46 v #13635 > > } -00:12:47 v #13636 > > -00:12:47 v #13637 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:12:47 v #13638 > > │ ### write -00:12:47 v #13639 > > -00:12:47 v #13640 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:12:47 v #13641 > > inl write forall t. (x : t) : () = -00:12:47 v #13642 > > inl s = x |> sm'.format -00:12:47 v #13643 > > backend_switch { -00:12:47 v #13644 > > Python = fun () => $'print(!s, end="")' : () -00:12:47 v #13645 > > Fsharp = fun () => $'!s |> System.Console.Write' : () -00:12:47 v #13646 > > } -00:12:47 v #13647 > > -00:12:47 v #13648 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:12:47 v #13649 > > │ ### write_ln -00:12:47 v #13650 > > -00:12:47 v #13651 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:12:47 v #13652 > > inl write_ln l : () = -00:12:47 v #13653 > > write l -00:12:47 v #13654 > > backend_switch { -00:12:47 v #13655 > > Cuda = fun () => $'printf("\\n")' : () -00:12:47 v #13656 > > Python = fun () => $"print()" : () -00:12:47 v #13657 > > Fsharp = fun () => write_line () : () -00:12:47 v #13658 > > } -00:12:48 v #13659 > 00:00:08 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 2669 } -00:12:48 v #13660 > 00:00:08 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/lib/spiral/console.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/lib/spiral/console.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:12:49 v #13661 > 00:00:09 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/lib/spiral/console.dib.ipynb to html -00:12:49 v #13662 > 00:00:09 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. -00:12:49 v #13663 > 00:00:09 v #7 ! validate(nb) -00:12:50 v #13664 > 00:00:10 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 -00:12:50 v #13665 > 00:00:10 v #9 ! return _pygments_highlight( -00:12:50 v #13666 > 00:00:10 v #10 ! [NbConvertApp] Writing 283391 bytes to c:\home\git\polyglot\lib\spiral\console.dib.html -00:12:50 v #13667 > 00:00:10 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 856 } -00:12:50 v #13668 > 00:00:10 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 856 } -00:12:50 v #13669 > 00:00:10 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/console.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/console.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:12:50 v #13670 > 00:00:10 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } -00:12:50 v #13671 > 00:00:10 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } -00:12:50 v #13672 > 00:00:10 d #16 spiral.run / dib / { exit_code = 0; result_length = 3584 } -00:12:50 d #13673 runtime.execute_with_options_async / { exit_code = 0; output_length = 6272 } -00:12:50 d #18 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path console.dib --retries 3 -00:12:50 d #13674 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path base.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path base.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } -00:12:50 v #13675 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "base.dib", "--retries", "3"])) } -00:12:50 v #13676 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/lib/spiral/base.dib", "--output-path", "c:/home/git/polyglot/lib/spiral/base.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/lib/spiral/base.dib" --output-path "c:/home/git/polyglot/lib/spiral/base.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } -00:12:52 v #13677 > > -00:12:52 v #13678 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:12:52 v #13679 > > │ # base -00:12:55 v #13680 > > -00:12:55 v #13681 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:12:55 v #13682 > > //// test -00:12:55 v #13683 > > -00:12:55 v #13684 > > open testing -00:12:56 v #13685 > > -00:12:56 v #13686 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:12:56 v #13687 > > │ ## execution -00:12:56 v #13688 > > -00:12:56 v #13689 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:12:56 v #13690 > > │ ### emit -00:12:56 v #13691 > > -00:12:56 v #13692 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:12:56 v #13693 > > inl emit forall t. (x : t) : t = -00:12:56 v #13694 > > $'!x ' -00:12:56 v #13695 > > -00:12:56 v #13696 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:12:56 v #13697 > > │ ### emit_unit -00:12:56 v #13698 > > -00:12:56 v #13699 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:12:56 v #13700 > > inl emit_unit forall t. (x : t) : () = -00:12:56 v #13701 > > $'!x ' -00:12:57 v #13702 > > -00:12:57 v #13703 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:12:57 v #13704 > > │ ### use -00:12:57 v #13705 > > -00:12:57 v #13706 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:12:57 v #13707 > > inl use forall t. (x : t) : t = -00:12:57 v #13708 > > $'use !x = !x ' : () -00:12:57 v #13709 > > $'!x ' -00:12:57 v #13710 > > -00:12:57 v #13711 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:12:57 v #13712 > > │ ## type -00:12:57 v #13713 > > -00:12:57 v #13714 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:12:57 v #13715 > > │ ### unit -00:12:57 v #13716 > > -00:12:57 v #13717 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:12:57 v #13718 > > nominal unit = $'unit' -00:12:58 v #13719 > > -00:12:58 v #13720 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:12:58 v #13721 > > │ ## target -00:12:58 v #13722 > > -00:12:58 v #13723 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:12:58 v #13724 > > │ ### backend_switch -00:12:58 v #13725 > > -00:12:58 v #13726 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:12:58 v #13727 > > inl backend_switch forall t. x : t = -00:12:58 v #13728 > > real -00:12:58 v #13729 > > inl backend key : t = -00:12:58 v #13730 > > inl s = real_core.string_lit_to_symbol key -00:12:58 v #13731 > > real_core.record_type_try_find `(`x) s -00:12:58 v #13732 > > (forall v'. => (x s) ()) -00:12:58 v #13733 > > (fun () => $'' : t) -00:12:58 v #13734 > > !!!!BackendSwitch ( -00:12:58 v #13735 > > ("Fsharp", backend "Fsharp"), -00:12:58 v #13736 > > ("Python", backend "Python"), -00:12:58 v #13737 > > ("Cuda", backend "Cuda") -00:12:58 v #13738 > > ) -00:12:58 v #13739 > > -00:12:58 v #13740 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:12:58 v #13741 > > │ ### target_runtime -00:12:58 v #13742 > > -00:12:58 v #13743 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:12:58 v #13744 > > union target_runtime = -00:12:58 v #13745 > > | Native -00:12:58 v #13746 > > | Wasm -00:12:58 v #13747 > > | Contract -00:12:59 v #13748 > > -00:12:59 v #13749 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:12:59 v #13750 > > │ ### target -00:12:59 v #13751 > > -00:12:59 v #13752 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:12:59 v #13753 > > union target = -00:12:59 v #13754 > > | Fsharp : target_runtime -00:12:59 v #13755 > > | Cuda : target_runtime -00:12:59 v #13756 > > | Rust : target_runtime -00:12:59 v #13757 > > | TypeScript : target_runtime -00:12:59 v #13758 > > | Python : target_runtime -00:12:59 v #13759 > > -00:12:59 v #13760 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:12:59 v #13761 > > │ ### run_target_args' -00:12:59 v #13762 > > -00:12:59 v #13763 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:12:59 v #13764 > > inl run_target_args' forall t u. (args : u) (fn : target -> (u -> t)) : t = -00:12:59 v #13765 > > backend_switch { -00:12:59 v #13766 > > Fsharp = fun () => -00:12:59 v #13767 > > inl is_unit : bool = -00:12:59 v #13768 > > real -00:12:59 v #13769 > > typecase t with -00:12:59 v #13770 > > | () => true -00:12:59 v #13771 > > | _ => false -00:12:59 v #13772 > > $'(* run_target_args\'' -00:12:59 v #13773 > > inl result = $'()' : unit -00:12:59 v #13774 > > $'run_target_args\' *)' -00:12:59 v #13775 > > inl emit_result x : () = -00:12:59 v #13776 > > if is_unit |> not -00:12:59 v #13777 > > then $'let _run_target_args\'_!result = !x ' -00:12:59 v #13778 > > $'\n#if FABLE_COMPILER || WASM || CONTRACT' -00:12:59 v #13779 > > $'\n#if FABLE_COMPILER_RUST && \!WASM && \!CONTRACT' -00:12:59 v #13780 > > inl target = Rust Native -00:12:59 v #13781 > > fn target args |> emit_result -00:12:59 v #13782 > > $'#endif\n#if FABLE_COMPILER_RUST && WASM' -00:12:59 v #13783 > > inl target = Rust Wasm -00:12:59 v #13784 > > fn target args |> emit_result -00:12:59 v #13785 > > $'#endif\n#if FABLE_COMPILER_RUST && CONTRACT' -00:12:59 v #13786 > > inl target = Rust Contract -00:12:59 v #13787 > > fn target args |> emit_result -00:12:59 v #13788 > > $'#endif\n#if FABLE_COMPILER_TYPESCRIPT' -00:12:59 v #13789 > > inl target = TypeScript Native -00:12:59 v #13790 > > fn target args |> emit_result -00:12:59 v #13791 > > $'#endif\n#if FABLE_COMPILER_PYTHON' -00:12:59 v #13792 > > inl target = Python Native -00:12:59 v #13793 > > fn target args |> emit_result -00:12:59 v #13794 > > $'#endif\n#if \!FABLE_COMPILER_RUST && \!FABLE_COMPILER_TYPESCRIPT -00:12:59 v #13795 > > && \!FABLE_COMPILER_PYTHON' -00:12:59 v #13796 > > inl target = Fsharp Wasm -00:12:59 v #13797 > > fn target args |> emit_result -00:12:59 v #13798 > > $'#endif\n#else' -00:12:59 v #13799 > > inl target = Fsharp Native -00:12:59 v #13800 > > fn target args |> emit_result -00:12:59 v #13801 > > $'#endif' -00:12:59 v #13802 > > if is_unit -00:12:59 v #13803 > > then $'// run_target_args\' is_unit' -00:12:59 v #13804 > > else $'_run_target_args\'_!result ' : t -00:12:59 v #13805 > > Python = fun () => -00:12:59 v #13806 > > inl target = Cuda Native -00:12:59 v #13807 > > fn target args -00:12:59 v #13808 > > } -00:12:59 v #13809 > > -00:12:59 v #13810 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:12:59 v #13811 > > │ ### run_target_args -00:12:59 v #13812 > > -00:12:59 v #13813 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:12:59 v #13814 > > inl run_target_args forall t u. (args : () -> u) (fn : target -> (u -> t)) : t = -00:12:59 v #13815 > > inl args = args () |> dyn -00:12:59 v #13816 > > fn |> run_target_args' args -00:13:00 v #13817 > > -00:13:00 v #13818 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:13:00 v #13819 > > │ ### run_target -00:13:00 v #13820 > > -00:13:00 v #13821 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:13:00 v #13822 > > inl run_target forall t. (fn : target -> (() -> t)) : t = -00:13:00 v #13823 > > run_target_args id fn -00:13:00 v #13824 > > -00:13:00 v #13825 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:13:00 v #13826 > > //// test -00:13:00 v #13827 > > ///! fsharp -00:13:00 v #13828 > > ///! cuda -00:13:00 v #13829 > > ///! rust -00:13:00 v #13830 > > ///! typescript -00:13:00 v #13831 > > ///! python -00:13:00 v #13832 > > -00:13:00 v #13833 > > run_target function -00:13:00 v #13834 > > | Fsharp (Native) => fun () => $'1uy' -00:13:00 v #13835 > > | Cuda (Native) => fun () => $'1' -00:13:00 v #13836 > > | Rust (Native) => fun () => $'1uy' -00:13:00 v #13837 > > | TypeScript (Native) => fun () => $'1uy' -00:13:00 v #13838 > > | Python (Native) => fun () => $'1uy' -00:13:00 v #13839 > > | _ => fun () => $'2uy' -00:13:00 v #13840 > > |> _assert_eq 1u8 -00:13:04 v #13841 > > -00:13:04 v #13842 > > ── [ 3.85s - return value ] ──────────────────────────────────────────────────── -00:13:04 v #13843 > > │ .py output (Cuda): -00:13:04 v #13844 > > │ __assert_eq / actual: 1 / expected: 1 -00:13:04 v #13845 > > │ -00:13:04 v #13846 > > │ .rs output: -00:13:04 v #13847 > > │ __assert_eq / actual: 1 / expected: 1 -00:13:04 v #13848 > > │ -00:13:04 v #13849 > > │ .ts output: -00:13:04 v #13850 > > │ __assert_eq / actual: 1 / expected: 1 -00:13:04 v #13851 > > │ -00:13:04 v #13852 > > │ .py output: -00:13:04 v #13853 > > │ __assert_eq / actual: 1 / expected: 1 -00:13:04 v #13854 > > │ -00:13:04 v #13855 > > │ -00:13:04 v #13856 > > -00:13:04 v #13857 > > ── [ 3.86s - stdout ] ────────────────────────────────────────────────────────── -00:13:04 v #13858 > > │ .fsx output: -00:13:04 v #13859 > > │ __assert_eq / actual: 1uy / expected: 1uy -00:13:04 v #13860 > > │ -00:13:04 v #13861 > > -00:13:04 v #13862 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:13:04 v #13863 > > │ ## function -00:13:04 v #13864 > > -00:13:04 v #13865 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:13:04 v #13866 > > │ ### eval -00:13:04 v #13867 > > -00:13:04 v #13868 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:13:04 v #13869 > > inl eval fn = -00:13:04 v #13870 > > fn () -00:13:04 v #13871 > > -00:13:04 v #13872 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:13:04 v #13873 > > │ ### flip -00:13:04 v #13874 > > -00:13:04 v #13875 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:13:04 v #13876 > > inl flip fn a b = -00:13:04 v #13877 > > fn b a -00:13:05 v #13878 > > -00:13:05 v #13879 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:13:05 v #13880 > > │ ### do -00:13:05 v #13881 > > -00:13:05 v #13882 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:13:05 v #13883 > > inl do (body : () -> ()) : () = -00:13:05 v #13884 > > !!!!Do (body()) -00:13:05 v #13885 > > -00:13:05 v #13886 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:13:05 v #13887 > > │ ### indent -00:13:05 v #13888 > > -00:13:05 v #13889 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:13:05 v #13890 > > inl indent (body : () -> ()) : () = -00:13:05 v #13891 > > backend_switch { -00:13:05 v #13892 > > Fsharp = fun () => -00:13:05 v #13893 > > inl body () = -00:13:05 v #13894 > > body () -00:13:05 v #13895 > > $'(* indent' : () -00:13:05 v #13896 > > !!!!Indent (body()) -00:13:05 v #13897 > > $'indent *)' : () -00:13:05 v #13898 > > Python = fun () => -00:13:05 v #13899 > > !!!!Indent (body()) -00:13:05 v #13900 > > () -00:13:05 v #13901 > > } -00:13:06 v #13902 > > -00:13:06 v #13903 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:13:06 v #13904 > > │ ### let' -00:13:06 v #13905 > > -00:13:06 v #13906 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:13:06 v #13907 > > inl let' fn = -00:13:06 v #13908 > > inl result : unit = -00:13:06 v #13909 > > backend_switch { -00:13:06 v #13910 > > Fsharp = fun () => -00:13:06 v #13911 > > $'()' : unit -00:13:06 v #13912 > > Python = fun () => -00:13:06 v #13913 > > $'None' : unit -00:13:06 v #13914 > > } -00:13:06 v #13915 > > backend_switch { -00:13:06 v #13916 > > Fsharp = fun () => -00:13:06 v #13917 > > $'let _let\'_!result =' : () -00:13:06 v #13918 > > fn |> indent -00:13:06 v #13919 > > Python = fun () => -00:13:06 v #13920 > > $'def _let\'_!result():' : () -00:13:06 v #13921 > > fn |> indent -00:13:06 v #13922 > > } -00:13:06 v #13923 > > $'_let\'_!result ' -00:13:06 v #13924 > > -00:13:06 v #13925 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:13:06 v #13926 > > │ ### exec_unit -00:13:06 v #13927 > > -00:13:06 v #13928 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:13:06 v #13929 > > inl exec_unit (fn : () -> ()) : () = -00:13:06 v #13930 > > backend_switch { -00:13:06 v #13931 > > Fsharp = fun () => -00:13:06 v #13932 > > inl unit = $'()' : $'unit' -00:13:06 v #13933 > > ($'(fun () -> !fn (); !unit) ()' : $'unit') |> ignore -00:13:06 v #13934 > > Python = fun () => fn () -00:13:06 v #13935 > > } -00:13:07 v #13936 > > -00:13:07 v #13937 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:13:07 v #13938 > > │ ### lazy -00:13:07 v #13939 > > -00:13:07 v #13940 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:13:07 v #13941 > > nominal lazy t = $'Lazy<`t>' -00:13:07 v #13942 > > -00:13:07 v #13943 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:13:07 v #13944 > > │ ### memoize -00:13:07 v #13945 > > -00:13:07 v #13946 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:13:07 v #13947 > > nominal lazy t = $'Lazy<`t>' -00:13:07 v #13948 > > -00:13:07 v #13949 > > inl memoize forall t. (fn : () -> t) : () -> t = -00:13:07 v #13950 > > inl fn = join fn -00:13:07 v #13951 > > backend_switch { -00:13:07 v #13952 > > Fsharp = fun () => -00:13:07 v #13953 > > inl result : lazy t = $'lazy !fn ()' -00:13:07 v #13954 > > fun () => $'!result.Value' : t -00:13:07 v #13955 > > Python = fun () => -00:13:07 v #13956 > > inl result = mut None -00:13:07 v #13957 > > inl computed = mut false -00:13:07 v #13958 > > fun () => -00:13:07 v #13959 > > if *computed -00:13:07 v #13960 > > then *result -00:13:07 v #13961 > > else -00:13:07 v #13962 > > result <- fn () |> Some -00:13:07 v #13963 > > computed <- true -00:13:07 v #13964 > > *result -00:13:07 v #13965 > > |> optionm.value -00:13:07 v #13966 > > } -00:13:07 v #13967 > > -00:13:07 v #13968 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:13:07 v #13969 > > //// test -00:13:07 v #13970 > > ///! fsharp -00:13:07 v #13971 > > ///! cuda -00:13:07 v #13972 > > ///! rust -00:13:07 v #13973 > > ///! typescript -00:13:07 v #13974 > > ///! python -00:13:07 v #13975 > > -00:13:07 v #13976 > > inl count = mut 0i32 -00:13:07 v #13977 > > inl add = -00:13:07 v #13978 > > fun () => -00:13:07 v #13979 > > count <- *count + 1 -00:13:07 v #13980 > > count -00:13:07 v #13981 > > |> memoize -00:13:07 v #13982 > > -00:13:07 v #13983 > > add () |> ignore -00:13:07 v #13984 > > add () |> ignore -00:13:07 v #13985 > > add () |> ignore -00:13:07 v #13986 > > -00:13:07 v #13987 > > *count -00:13:07 v #13988 > > |> _assert_eq 1 -00:13:11 v #13989 > > -00:13:11 v #13990 > > ── [ 3.74s - return value ] ──────────────────────────────────────────────────── -00:13:11 v #13991 > > │ .py output (Cuda): -00:13:11 v #13992 > > │ __assert_eq / actual: 1 / expected: 1 -00:13:11 v #13993 > > │ -00:13:11 v #13994 > > │ .rs output: -00:13:11 v #13995 > > │ __assert_eq / actual: 1 / expected: 1 -00:13:11 v #13996 > > │ -00:13:11 v #13997 > > │ .ts output: -00:13:11 v #13998 > > │ __assert_eq / actual: 1 / expected: 1 -00:13:11 v #13999 > > │ -00:13:11 v #14000 > > │ .py output: -00:13:11 v #14001 > > │ __assert_eq / actual: 1 / expected: 1 -00:13:11 v #14002 > > │ -00:13:11 v #14003 > > │ -00:13:11 v #14004 > > -00:13:11 v #14005 > > ── [ 3.74s - stdout ] ────────────────────────────────────────────────────────── -00:13:11 v #14006 > > │ .fsx output: -00:13:11 v #14007 > > │ __assert_eq / actual: 1 / expected: 1 -00:13:11 v #14008 > > │ -00:13:11 v #14009 > > -00:13:11 v #14010 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:13:11 v #14011 > > │ ### capture -00:13:11 v #14012 > > -00:13:11 v #14013 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:13:11 v #14014 > > inl capture forall t. (fn : () -> t) : t = -00:13:11 v #14015 > > backend_switch { -00:13:11 v #14016 > > Fsharp = fun () => -00:13:11 v #14017 > > inl result = dyn true -00:13:11 v #14018 > > $'let mutable _capture_!result : `t option = None ' -00:13:11 v #14019 > > $'(' -00:13:11 v #14020 > > $'(fun () ->' -00:13:11 v #14021 > > $'(fun () ->' -00:13:11 v #14022 > > fn () |> emit_unit -00:13:11 v #14023 > > $')' -00:13:11 v #14024 > > $'|> fun x -> x ()' -00:13:11 v #14025 > > $') () )' -00:13:11 v #14026 > > $'|> fun x -> _capture_!result <- Some x' -00:13:11 v #14027 > > $'match _capture_!result with Some x -> x | None -> failwith -00:13:11 v #14028 > > "base.capture / _capture_!result=None"' : t -00:13:11 v #14029 > > Python = fun () => -00:13:11 v #14030 > > fn () -00:13:11 v #14031 > > } -00:13:12 v #14032 > > -00:13:12 v #14033 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:13:12 v #14034 > > │ ### yield_from -00:13:12 v #14035 > > -00:13:12 v #14036 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:13:12 v #14037 > > inl yield_from forall (t : * -> *) u. (a : t u) : () = -00:13:12 v #14038 > > backend_switch { -00:13:12 v #14039 > > Fsharp = fun () => $'yield\! !a ' : () -00:13:12 v #14040 > > Python = fun () => $'asyncio.run(!a())' : () -00:13:12 v #14041 > > } -00:13:12 v #14042 > > -00:13:12 v #14043 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:13:12 v #14044 > > │ ### join_body -00:13:12 v #14045 > > -00:13:12 v #14046 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:13:12 v #14047 > > inl join_body body acc x = -00:13:12 v #14048 > > if var_is x |> not -00:13:12 v #14049 > > then body acc x -00:13:12 v #14050 > > else -00:13:12 v #14051 > > inl acc = dyn acc -00:13:12 v #14052 > > join body acc x -00:13:12 v #14053 > > -00:13:12 v #14054 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:13:12 v #14055 > > //// test -00:13:12 v #14056 > > -00:13:12 v #14057 > > inl rec fold_list f s = function -00:13:12 v #14058 > > | Cons (x, x') => fold_list f (f s x) x' -00:13:12 v #14059 > > | Nil => s -00:13:13 v #14060 > > -00:13:13 v #14061 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:13:13 v #14062 > > //// test -00:13:13 v #14063 > > ///! fsharp -00:13:13 v #14064 > > ///! cuda -00:13:13 v #14065 > > ///! rust -00:13:13 v #14066 > > ///! typescript -00:13:13 v #14067 > > ///! python -00:13:13 v #14068 > > //// print_code -00:13:13 v #14069 > > -00:13:13 v #14070 > > [[ 5i32; 4; join 3; 2; 1 ]] -00:13:13 v #14071 > > |> fold_list (+) 0 -00:13:13 v #14072 > > |> _assert_eq 15 -00:13:16 v #14073 > > -00:13:16 v #14074 > > ── [ 2.98s - return value ] ──────────────────────────────────────────────────── -00:13:16 v #14075 > > │ .py output (Cuda): -00:13:16 v #14076 > > │ __assert_eq / actual: 15 / expected: 15 -00:13:16 v #14077 > > │ -00:13:16 v #14078 > > │ .rs output: -00:13:16 v #14079 > > │ __assert_eq / actual: 15 / expected: 15 -00:13:16 v #14080 > > │ -00:13:16 v #14081 > > │ .ts output: -00:13:16 v #14082 > > │ __assert_eq / actual: 15 / expected: 15 -00:13:16 v #14083 > > │ -00:13:16 v #14084 > > │ .py output: -00:13:16 v #14085 > > │ __assert_eq / actual: 15 / expected: 15 -00:13:16 v #14086 > > │ -00:13:16 v #14087 > > │ -00:13:16 v #14088 > > │ -00:13:16 v #14089 > > │ -00:13:16 v #14090 > > -00:13:16 v #14091 > > ── [ 2.98s - stdout ] ────────────────────────────────────────────────────────── -00:13:16 v #14092 > > │ .fsx: -00:13:16 v #14093 > > │ let rec method1 () : int32 = -00:13:16 v #14094 > > │ 3 -00:13:16 v #14095 > > │ and method2 (v0 : bool) : bool = -00:13:16 v #14096 > > │ v0 -00:13:16 v #14097 > > │ and closure0 (v0 : string) () : unit = -00:13:16 v #14098 > > │ let v1 : (string -> unit) = System.Console.WriteLine -00:13:16 v #14099 > > │ v1 v0 -00:13:16 v #14100 > > │ and method0 () : unit = -00:13:16 v #14101 > > │ let v0 : int32 = method1() -00:13:16 v #14102 > > │ let v1 : int32 = 9 + v0 -00:13:16 v #14103 > > │ let v2 : int32 = v1 + 2 -00:13:16 v #14104 > > │ let v3 : int32 = v2 + 1 -00:13:16 v #14105 > > │ let v4 : bool = v3 = 15 -00:13:16 v #14106 > > │ let v6 : bool = -00:13:16 v #14107 > > │ if v4 then -00:13:16 v #14108 > > │ true -00:13:16 v #14109 > > │ else -00:13:16 v #14110 > > │ method2(v4) -00:13:16 v #14111 > > │ let v7 : string = "__assert_eq" -00:13:16 v #14112 > > │ let v8 : string = $"{v7} / actual: %A{v3} / expected: -00:13:16 v #14113 > > %A{15}" -00:13:16 v #14114 > > │ let v11 : unit = () -00:13:16 v #14115 > > │ let v12 : (unit -> unit) = closure0(v8) -00:13:16 v #14116 > > │ let v13 : unit = (fun () -> v12 (); v11) () -00:13:16 v #14117 > > │ let v15 : bool = v6 = false -00:13:16 v #14118 > > │ if v15 then -00:13:16 v #14119 > > │ failwith<unit> v8 -00:13:16 v #14120 > > │ method0() -00:13:16 v #14121 > > │ -00:13:16 v #14122 > > │ -00:13:16 v #14123 > > │ .rs: -00:13:16 v #14124 > > │ #![allow(dead_code)] -00:13:16 v #14125 > > │ #![allow(non_camel_case_types)] -00:13:16 v #14126 > > │ #![allow(non_snake_case)] -00:13:16 v #14127 > > │ #![allow(non_upper_case_globals)] -00:13:16 v #14128 > > │ #![allow(unreachable_code)] -00:13:16 v #14129 > > │ #![allow(unused_attributes)] -00:13:16 v #14130 > > │ #![allow(unused_imports)] -00:13:16 v #14131 > > │ #![allow(unused_macros)] -00:13:16 v #14132 > > │ #![allow(unused_parens)] -00:13:16 v #14133 > > │ #![allow(unused_variables)] -00:13:16 v #14134 > > │ #![allow(unused_assignments)] -00:13:16 v #14135 > > │ mod module_503290fb { -00:13:16 v #14136 > > │ pub mod Spiral { -00:13:16 v #14137 > > │ use super::*; -00:13:16 v #14138 > > │ use fable_library_rust::Native_::on_startup; -00:13:16 v #14139 > > │ use fable_library_rust::String_::printfn; -00:13:16 v #14140 > > │ use fable_library_rust::String_::sprintf; -00:13:16 v #14141 > > │ use fable_library_rust::String_::string; -00:13:16 v #14142 > > │ pub fn method1() -> i32 { -00:13:16 v #14143 > > │ 3_i32 -00:13:16 v #14144 > > │ } -00:13:16 v #14145 > > │ pub fn method2(v0: bool) -> bool { -00:13:16 v #14146 > > │ v0 -00:13:16 v #14147 > > │ } -00:13:16 v #14148 > > │ pub fn closure0(v0: string, unitVar: ()) { -00:13:16 v #14149 > > │ printfn!("{0}", v0); -00:13:16 v #14150 > > │ } -00:13:16 v #14151 > > │ pub fn method0() { -00:13:16 v #14152 > > │ let v3: i32 = ((9_i32 + (Spiral::method1())) + -00:13:16 v #14153 > > 2_i32) + 1_i32; -00:13:16 v #14154 > > │ let v4: bool = (v3) == 15_i32; -00:13:16 v #14155 > > │ let v6: bool = if v4 { true } else { -00:13:16 v #14156 > > Spiral::method2(v4) }; -00:13:16 v #14157 > > │ let v8: string = sprintf!( -00:13:16 v #14158 > > │ "{} / actual: {:?} / expected: {:?}", -00:13:16 v #14159 > > │ string("__assert_eq"), -00:13:16 v #14160 > > │ v3, -00:13:16 v #14161 > > │ 15_i32 -00:13:16 v #14162 > > │ ); -00:13:16 v #14163 > > │ let v13: () = { -00:13:16 v #14164 > > │ Spiral::closure0(v8.clone(), ()); -00:13:16 v #14165 > > │ () -00:13:16 v #14166 > > │ }; -00:13:16 v #14167 > > │ if (v6) == false { -00:13:16 v #14168 > > │ panic!("{}", v8,); -00:13:16 v #14169 > > │ } -00:13:16 v #14170 > > │ } -00:13:16 v #14171 > > │ // on_startup!(Spiral::method0()); -00:13:16 v #14172 > > │ } -00:13:16 v #14173 > > │ } -00:13:16 v #14174 > > │ pub use module_503290fb::*; -00:13:16 v #14175 > > │ -00:13:16 v #14176 > > │ pub fn main() -> Result<(), String> { -00:13:16 v #14177 > > │ Ok(Spiral::method0()) -00:13:16 v #14178 > > │ } -00:13:16 v #14179 > > │ -00:13:16 v #14180 > > │ .ts: -00:13:16 v #14181 > > │ import { int32 } from -00:13:16 v #14182 > > "./fable_modules/fable-library-ts.5.0.0-alpha.2/Int32.js"; -00:13:16 v #14183 > > │ import { interpolate, toText } from -00:13:16 v #14184 > > "./fable_modules/fable-library-ts.5.0.0-alpha.2/String.js"; -00:13:16 v #14185 > > │ -00:13:16 v #14186 > > │ export function method1(): int32 { -00:13:16 v #14187 > > │ return 3; -00:13:16 v #14188 > > │ } -00:13:16 v #14189 > > │ -00:13:16 v #14190 > > │ export function method2(v0: boolean): boolean { -00:13:16 v #14191 > > │ return v0; -00:13:16 v #14192 > > │ } -00:13:16 v #14193 > > │ -00:13:16 v #14194 > > │ export function closure0(v0: string, unitVar: void): void { -00:13:16 v #14195 > > │ console.log(v0); -00:13:16 v #14196 > > │ } -00:13:16 v #14197 > > │ -00:13:16 v #14198 > > │ export function method0(): void { -00:13:16 v #14199 > > │ const v3: int32 = (((9 + method1()) + 2) + 1) | 0; -00:13:16 v #14200 > > │ const v4: boolean = v3 === 15; -00:13:16 v #14201 > > │ const v6: boolean = v4 ? true : method2(v4); -00:13:16 v #14202 > > │ const v8: string = toText(interpolate("%P() / actual: -00:13:16 v #14203 > > %A%P() / expected: %A%P()", ["__assert_eq", v3, 15])); -00:13:16 v #14204 > > │ let v13: any; -00:13:16 v #14205 > > │ closure0(v8, undefined); -00:13:16 v #14206 > > │ v13 = undefined; -00:13:16 v #14207 > > │ if (v6 === false) { -00:13:16 v #14208 > > │ throw new Error(v8); -00:13:16 v #14209 > > │ } -00:13:16 v #14210 > > │ } -00:13:16 v #14211 > > │ -00:13:16 v #14212 > > │ method0(); -00:13:16 v #14213 > > │ -00:13:16 v #14214 > > │ -00:13:16 v #14215 > > │ -00:13:16 v #14216 > > │ // spiral.process_typescript -00:13:16 v #14217 > > │ -00:13:16 v #14218 > > │ .py: -00:13:16 v #14219 > > │ from fable_modules.fable_library.string_ import (to_text, -00:13:16 v #14220 > > interpolate) -00:13:16 v #14221 > > │ -00:13:16 v #14222 > > │ def method1(__unit: None=None) -> int: -00:13:16 v #14223 > > │ return 3 -00:13:16 v #14224 > > │ -00:13:16 v #14225 > > │ -00:13:16 v #14226 > > │ def method2(v0: bool) -> bool: -00:13:16 v #14227 > > │ return v0 -00:13:16 v #14228 > > │ -00:13:16 v #14229 > > │ -00:13:16 v #14230 > > │ def closure0(v0: str, unit_var: None) -> None: -00:13:16 v #14231 > > │ print(v0) -00:13:16 v #14232 > > │ -00:13:16 v #14233 > > │ -00:13:16 v #14234 > > │ def method0(__unit: None=None) -> None: -00:13:16 v #14235 > > │ v3: int = (((9 + method1()) + 2) + 1) or 0 -00:13:16 v #14236 > > │ v4: bool = v3 == 15 -00:13:16 v #14237 > > │ v6: bool = True if v4 else method2(v4) -00:13:16 v #14238 > > │ v8: str = to_text(interpolate("%P() / actual: %A%P() -00:13:16 v #14239 > > expected: %A%P()", ["__assert_eq", v3, 15])) -00:13:16 v #14240 > > │ v13: None -00:13:16 v #14241 > > │ closure0(v8, None) -00:13:16 v #14242 > > │ v13 = None -00:13:16 v #14243 > > │ if v6 == False: -00:13:16 v #14244 > > │ raise Exception(v8) -00:13:16 v #14245 > > │ -00:13:16 v #14246 > > │ -00:13:16 v #14247 > > │ -00:13:16 v #14248 > > │ method0() -00:13:16 v #14249 > > │ -00:13:16 v #14250 > > │ -00:13:16 v #14251 > > │ -00:13:16 v #14252 > > │ # spiral.process_python -00:13:16 v #14253 > > │ -00:13:16 v #14254 > > │ .py (Cuda): -00:13:16 v #14255 > > │ kernel = r""" -00:13:16 v #14256 > > │ """ -00:13:16 v #14257 > > │ class static_array(): -00:13:16 v #14258 > > │ def __init__(self, length): -00:13:16 v #14259 > > │ self.ptr = [] -00:13:16 v #14260 > > │ for _ in range(length): -00:13:16 v #14261 > > │ self.ptr.append(None) -00:13:16 v #14262 > > │ -00:13:16 v #14263 > > │ def __getitem__(self, index): -00:13:16 v #14264 > > │ assert 0 <= index < len(self.ptr), "The get index -00:13:16 v #14265 > > needs to be in range." -00:13:16 v #14266 > > │ return self.ptr[index] -00:13:16 v #14267 > > │ -00:13:16 v #14268 > > │ def __setitem__(self, index, value): -00:13:16 v #14269 > > │ assert 0 <= index < len(self.ptr), "The set index -00:13:16 v #14270 > > needs to be in range." -00:13:16 v #14271 > > │ self.ptr[index] = value -00:13:16 v #14272 > > │ -00:13:16 v #14273 > > │ class static_array_list(static_array): -00:13:16 v #14274 > > │ def __init__(self, length): -00:13:16 v #14275 > > │ super().__init__(length) -00:13:16 v #14276 > > │ self.length = 0 -00:13:16 v #14277 > > │ -00:13:16 v #14278 > > │ def __getitem__(self, index): -00:13:16 v #14279 > > │ assert 0 <= index < self.length, "The get index needs -00:13:16 v #14280 > > to be in range." -00:13:16 v #14281 > > │ return self.ptr[index] -00:13:16 v #14282 > > │ -00:13:16 v #14283 > > │ def __setitem__(self, index, value): -00:13:16 v #14284 > > │ assert 0 <= index < self.length, "The set index needs -00:13:16 v #14285 > > to be in range." -00:13:16 v #14286 > > │ self.ptr[index] = value -00:13:16 v #14287 > > │ -00:13:16 v #14288 > > │ def push(self,value): -00:13:16 v #14289 > > │ assert (self.length < len(self.ptr)), "The length -00:13:16 v #14290 > > before pushing has to be less than the maximum length of the array." -00:13:16 v #14291 > > │ self.ptr[self.length] = value -00:13:16 v #14292 > > │ self.length += 1 -00:13:16 v #14293 > > │ -00:13:16 v #14294 > > │ def pop(self): -00:13:16 v #14295 > > │ assert (0 < self.length), "The length before popping -00:13:16 v #14296 > > has to be greater than 0." -00:13:16 v #14297 > > │ self.length -= 1 -00:13:16 v #14298 > > │ return self.ptr[self.length] -00:13:16 v #14299 > > │ -00:13:16 v #14300 > > │ def unsafe_set_length(self,i): -00:13:16 v #14301 > > │ assert 0 <= i <= len(self.ptr), "The new length has -00:13:16 v #14302 > > to be in range." -00:13:16 v #14303 > > │ self.length = i -00:13:16 v #14304 > > │ -00:13:16 v #14305 > > │ class dynamic_array(static_array): -00:13:16 v #14306 > > │ pass -00:13:16 v #14307 > > │ -00:13:16 v #14308 > > │ class dynamic_array_list(static_array_list): -00:13:16 v #14309 > > │ def length_(self): return self.length -00:13:16 v #14310 > > │ -00:13:16 v #14311 > > │ import cupy as cp -00:13:16 v #14312 > > │ import numpy as np -00:13:16 v #14313 > > │ from dataclasses import dataclass -00:13:16 v #14314 > > │ from typing import NamedTuple, Union, Callable, Tuple -00:13:16 v #14315 > > │ i8 = int; i16 = int; i32 = int; i64 = int; u8 = int; u16 = -00:13:16 v #14316 > > int; u32 = int; u64 = int; f32 = float; f64 = float; char = str; string = str -00:13:16 v #14317 > > │ cuda = False -00:13:16 v #14318 > > │ -00:13:16 v #14319 > > │ def method1() -> i32: -00:13:16 v #14320 > > │ return 3 -00:13:16 v #14321 > > │ def method2(v0 : bool) -> bool: -00:13:16 v #14322 > > │ return v0 -00:13:16 v #14323 > > │ def method0() -> None: -00:13:16 v #14324 > > │ v0 = method1() -00:13:16 v #14325 > > │ v1 = 9 + v0 -00:13:16 v #14326 > > │ del v0 -00:13:16 v #14327 > > │ v2 = v1 + 2 -00:13:16 v #14328 > > │ del v1 -00:13:16 v #14329 > > │ v3 = v2 + 1 -00:13:16 v #14330 > > │ del v2 -00:13:16 v #14331 > > │ v4 = v3 == 15 -00:13:16 v #14332 > > │ if v4: -00:13:16 v #14333 > > │ v6 = True -00:13:16 v #14334 > > │ else: -00:13:16 v #14335 > > │ v6 = method2(v4) -00:13:16 v #14336 > > │ del v4 -00:13:16 v #14337 > > │ v9 = "__assert_eq" -00:13:16 v #14338 > > │ v10 = f"{v9} / actual: {v3} / expected: {15}" -00:13:16 v #14339 > > │ del v3, v9 -00:13:16 v #14340 > > │ print(v10) -00:13:16 v #14341 > > │ v16 = v6 == False -00:13:16 v #14342 > > │ del v6 -00:13:16 v #14343 > > │ if v16: -00:13:16 v #14344 > > │ del v16 -00:13:16 v #14345 > > │ raise Exception(v10) -00:13:16 v #14346 > > │ else: -00:13:16 v #14347 > > │ del v10, v16 -00:13:16 v #14348 > > │ return -00:13:16 v #14349 > > │ def main_body(): -00:13:16 v #14350 > > │ return method0() -00:13:16 v #14351 > > │ -00:13:16 v #14352 > > │ def main(): -00:13:16 v #14353 > > │ r = main_body() -00:13:16 v #14354 > > │ if cuda: cp.cuda.get_current_stream().synchronize() # -00:13:16 v #14355 > > This line is here so the `__trap()` calls on the kernel aren't missed. -00:13:16 v #14356 > > │ return r -00:13:16 v #14357 > > │ -00:13:16 v #14358 > > │ if __name__ == '__main__': result = main(); None if result is -00:13:16 v #14359 > > None else print(result) -00:13:16 v #14360 > > │ -00:13:16 v #14361 > > │ .fsx output: -00:13:16 v #14362 > > │ __assert_eq / actual: 15 / expected: 15 -00:13:16 v #14363 > > │ -00:13:16 v #14364 > > -00:13:16 v #14365 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:13:16 v #14366 > > //// test -00:13:16 v #14367 > > ///! fsharp -00:13:16 v #14368 > > ///! cuda -00:13:16 v #14369 > > ///! rust -00:13:16 v #14370 > > ///! typescript -00:13:16 v #14371 > > ///! python -00:13:16 v #14372 > > //// print_code -00:13:16 v #14373 > > -00:13:16 v #14374 > > [[ 5i32; 4; join 3; 2; 1 ]] -00:13:16 v #14375 > > |> fold_list (join_body (+)) 0 -00:13:16 v #14376 > > |> _assert_eq 15 -00:13:19 v #14377 > > -00:13:19 v #14378 > > ── [ 3.10s - return value ] ──────────────────────────────────────────────────── -00:13:19 v #14379 > > │ .py output (Cuda): -00:13:19 v #14380 > > │ __assert_eq / actual: 15 / expected: 15 -00:13:19 v #14381 > > │ -00:13:19 v #14382 > > │ .rs output: -00:13:19 v #14383 > > │ __assert_eq / actual: 15 / expected: 15 -00:13:19 v #14384 > > │ -00:13:19 v #14385 > > │ .ts output: -00:13:19 v #14386 > > │ __assert_eq / actual: 15 / expected: 15 -00:13:19 v #14387 > > │ -00:13:19 v #14388 > > │ .py output: -00:13:19 v #14389 > > │ __assert_eq / actual: 15 / expected: 15 -00:13:19 v #14390 > > │ -00:13:19 v #14391 > > │ -00:13:19 v #14392 > > │ -00:13:19 v #14393 > > │ -00:13:19 v #14394 > > -00:13:19 v #14395 > > ── [ 3.10s - stdout ] ────────────────────────────────────────────────────────── -00:13:19 v #14396 > > │ .fsx: -00:13:19 v #14397 > > │ let rec method1 () : int32 = -00:13:19 v #14398 > > │ 3 -00:13:19 v #14399 > > │ and method2 (v0 : int32, v1 : int32) : int32 = -00:13:19 v #14400 > > │ let v2 : int32 = v1 + v0 -00:13:19 v #14401 > > │ v2 -00:13:19 v #14402 > > │ and method3 (v0 : bool) : bool = -00:13:19 v #14403 > > │ v0 -00:13:19 v #14404 > > │ and closure0 (v0 : string) () : unit = -00:13:19 v #14405 > > │ let v1 : (string -> unit) = System.Console.WriteLine -00:13:19 v #14406 > > │ v1 v0 -00:13:19 v #14407 > > │ and method0 () : unit = -00:13:19 v #14408 > > │ let v0 : int32 = method1() -00:13:19 v #14409 > > │ let v1 : int32 = 9 -00:13:19 v #14410 > > │ let v2 : int32 = method2(v0, v1) -00:13:19 v #14411 > > │ let v3 : int32 = v2 + 2 -00:13:19 v #14412 > > │ let v4 : int32 = v3 + 1 -00:13:19 v #14413 > > │ let v5 : bool = v4 = 15 -00:13:19 v #14414 > > │ let v7 : bool = -00:13:19 v #14415 > > │ if v5 then -00:13:19 v #14416 > > │ true -00:13:19 v #14417 > > │ else -00:13:19 v #14418 > > │ method3(v5) -00:13:19 v #14419 > > │ let v8 : string = "__assert_eq" -00:13:19 v #14420 > > │ let v9 : string = $"{v8} / actual: %A{v4} / expected: -00:13:19 v #14421 > > %A{15}" -00:13:19 v #14422 > > │ let v12 : unit = () -00:13:19 v #14423 > > │ let v13 : (unit -> unit) = closure0(v9) -00:13:19 v #14424 > > │ let v14 : unit = (fun () -> v13 (); v12) () -00:13:19 v #14425 > > │ let v16 : bool = v7 = false -00:13:19 v #14426 > > │ if v16 then -00:13:19 v #14427 > > │ failwith<unit> v9 -00:13:19 v #14428 > > │ method0() -00:13:19 v #14429 > > │ -00:13:19 v #14430 > > │ -00:13:19 v #14431 > > │ .rs: -00:13:19 v #14432 > > │ #![allow(dead_code)] -00:13:19 v #14433 > > │ #![allow(non_camel_case_types)] -00:13:19 v #14434 > > │ #![allow(non_snake_case)] -00:13:19 v #14435 > > │ #![allow(non_upper_case_globals)] -00:13:19 v #14436 > > │ #![allow(unreachable_code)] -00:13:19 v #14437 > > │ #![allow(unused_attributes)] -00:13:19 v #14438 > > │ #![allow(unused_imports)] -00:13:19 v #14439 > > │ #![allow(unused_macros)] -00:13:19 v #14440 > > │ #![allow(unused_parens)] -00:13:19 v #14441 > > │ #![allow(unused_variables)] -00:13:19 v #14442 > > │ #![allow(unused_assignments)] -00:13:19 v #14443 > > │ mod module_c1fa73ed { -00:13:19 v #14444 > > │ pub mod Spiral { -00:13:19 v #14445 > > │ use super::*; -00:13:19 v #14446 > > │ use fable_library_rust::Native_::on_startup; -00:13:19 v #14447 > > │ use fable_library_rust::String_::printfn; -00:13:19 v #14448 > > │ use fable_library_rust::String_::sprintf; -00:13:19 v #14449 > > │ use fable_library_rust::String_::string; -00:13:19 v #14450 > > │ pub fn method1() -> i32 { -00:13:19 v #14451 > > │ 3_i32 -00:13:19 v #14452 > > │ } -00:13:19 v #14453 > > │ pub fn method2(v0: i32, v1: i32) -> i32 { -00:13:19 v #14454 > > │ (v1) + (v0) -00:13:19 v #14455 > > │ } -00:13:19 v #14456 > > │ pub fn method3(v0: bool) -> bool { -00:13:19 v #14457 > > │ v0 -00:13:19 v #14458 > > │ } -00:13:19 v #14459 > > │ pub fn closure0(v0: string, unitVar: ()) { -00:13:19 v #14460 > > │ printfn!("{0}", v0); -00:13:19 v #14461 > > │ } -00:13:19 v #14462 > > │ pub fn method0() { -00:13:19 v #14463 > > │ let v4: i32 = -00:13:19 v #14464 > > ((Spiral::method2(Spiral::method1(), 9_i32)) + 2_i32) + 1_i32; -00:13:19 v #14465 > > │ let v5: bool = (v4) == 15_i32; -00:13:19 v #14466 > > │ let v7: bool = if v5 { true } else { -00:13:19 v #14467 > > Spiral::method3(v5) }; -00:13:19 v #14468 > > │ let v9: string = sprintf!( -00:13:19 v #14469 > > │ "{} / actual: {:?} / expected: {:?}", -00:13:19 v #14470 > > │ string("__assert_eq"), -00:13:19 v #14471 > > │ v4, -00:13:19 v #14472 > > │ 15_i32 -00:13:19 v #14473 > > │ ); -00:13:19 v #14474 > > │ let v14: () = { -00:13:19 v #14475 > > │ Spiral::closure0(v9.clone(), ()); -00:13:19 v #14476 > > │ () -00:13:19 v #14477 > > │ }; -00:13:19 v #14478 > > │ if (v7) == false { -00:13:19 v #14479 > > │ panic!("{}", v9,); -00:13:19 v #14480 > > │ } -00:13:19 v #14481 > > │ } -00:13:19 v #14482 > > │ // on_startup!(Spiral::method0()); -00:13:19 v #14483 > > │ } -00:13:19 v #14484 > > │ } -00:13:19 v #14485 > > │ pub use module_c1fa73ed::*; -00:13:19 v #14486 > > │ -00:13:19 v #14487 > > │ pub fn main() -> Result<(), String> { -00:13:19 v #14488 > > │ Ok(Spiral::method0()) -00:13:19 v #14489 > > │ } -00:13:19 v #14490 > > │ -00:13:19 v #14491 > > │ .ts: -00:13:19 v #14492 > > │ import { int32 } from -00:13:19 v #14493 > > "./fable_modules/fable-library-ts.5.0.0-alpha.2/Int32.js"; -00:13:19 v #14494 > > │ import { interpolate, toText } from -00:13:19 v #14495 > > "./fable_modules/fable-library-ts.5.0.0-alpha.2/String.js"; -00:13:19 v #14496 > > │ -00:13:19 v #14497 > > │ export function method1(): int32 { -00:13:19 v #14498 > > │ return 3; -00:13:19 v #14499 > > │ } -00:13:19 v #14500 > > │ -00:13:19 v #14501 > > │ export function method2(v0: int32, v1: int32): int32 { -00:13:19 v #14502 > > │ return v1 + v0; -00:13:19 v #14503 > > │ } -00:13:19 v #14504 > > │ -00:13:19 v #14505 > > │ export function method3(v0: boolean): boolean { -00:13:19 v #14506 > > │ return v0; -00:13:19 v #14507 > > │ } -00:13:19 v #14508 > > │ -00:13:19 v #14509 > > │ export function closure0(v0: string, unitVar: void): void { -00:13:19 v #14510 > > │ console.log(v0); -00:13:19 v #14511 > > │ } -00:13:19 v #14512 > > │ -00:13:19 v #14513 > > │ export function method0(): void { -00:13:19 v #14514 > > │ const v4: int32 = ((method2(method1(), 9) + 2) + 1) | 0; -00:13:19 v #14515 > > │ const v5: boolean = v4 === 15; -00:13:19 v #14516 > > │ const v7: boolean = v5 ? true : method3(v5); -00:13:19 v #14517 > > │ const v9: string = toText(interpolate("%P() / actual: -00:13:19 v #14518 > > %A%P() / expected: %A%P()", ["__assert_eq", v4, 15])); -00:13:19 v #14519 > > │ let v14: any; -00:13:19 v #14520 > > │ closure0(v9, undefined); -00:13:19 v #14521 > > │ v14 = undefined; -00:13:19 v #14522 > > │ if (v7 === false) { -00:13:19 v #14523 > > │ throw new Error(v9); -00:13:19 v #14524 > > │ } -00:13:19 v #14525 > > │ } -00:13:19 v #14526 > > │ -00:13:19 v #14527 > > │ method0(); -00:13:19 v #14528 > > │ -00:13:19 v #14529 > > │ -00:13:19 v #14530 > > │ -00:13:19 v #14531 > > │ // spiral.process_typescript -00:13:19 v #14532 > > │ -00:13:19 v #14533 > > │ .py: -00:13:19 v #14534 > > │ from fable_modules.fable_library.string_ import (to_text, -00:13:19 v #14535 > > interpolate) -00:13:19 v #14536 > > │ -00:13:19 v #14537 > > │ def method1(__unit: None=None) -> int: -00:13:19 v #14538 > > │ return 3 -00:13:19 v #14539 > > │ -00:13:19 v #14540 > > │ -00:13:19 v #14541 > > │ def method2(v0: int, v1: int) -> int: -00:13:19 v #14542 > > │ return v1 + v0 -00:13:19 v #14543 > > │ -00:13:19 v #14544 > > │ -00:13:19 v #14545 > > │ def method3(v0: bool) -> bool: -00:13:19 v #14546 > > │ return v0 -00:13:19 v #14547 > > │ -00:13:19 v #14548 > > │ -00:13:19 v #14549 > > │ def closure0(v0: str, unit_var: None) -> None: -00:13:19 v #14550 > > │ print(v0) -00:13:19 v #14551 > > │ -00:13:19 v #14552 > > │ -00:13:19 v #14553 > > │ def method0(__unit: None=None) -> None: -00:13:19 v #14554 > > │ v4: int = ((method2(method1(), 9) + 2) + 1) or 0 -00:13:19 v #14555 > > │ v5: bool = v4 == 15 -00:13:19 v #14556 > > │ v7: bool = True if v5 else method3(v5) -00:13:19 v #14557 > > │ v9: str = to_text(interpolate("%P() / actual: %A%P() -00:13:19 v #14558 > > expected: %A%P()", ["__assert_eq", v4, 15])) -00:13:19 v #14559 > > │ v14: None -00:13:19 v #14560 > > │ closure0(v9, None) -00:13:19 v #14561 > > │ v14 = None -00:13:19 v #14562 > > │ if v7 == False: -00:13:19 v #14563 > > │ raise Exception(v9) -00:13:19 v #14564 > > │ -00:13:19 v #14565 > > │ -00:13:19 v #14566 > > │ -00:13:19 v #14567 > > │ method0() -00:13:19 v #14568 > > │ -00:13:19 v #14569 > > │ -00:13:19 v #14570 > > │ -00:13:19 v #14571 > > │ # spiral.process_python -00:13:19 v #14572 > > │ -00:13:19 v #14573 > > │ .py (Cuda): -00:13:19 v #14574 > > │ kernel = r""" -00:13:19 v #14575 > > │ """ -00:13:19 v #14576 > > │ class static_array(): -00:13:19 v #14577 > > │ def __init__(self, length): -00:13:19 v #14578 > > │ self.ptr = [] -00:13:19 v #14579 > > │ for _ in range(length): -00:13:19 v #14580 > > │ self.ptr.append(None) -00:13:19 v #14581 > > │ -00:13:19 v #14582 > > │ def __getitem__(self, index): -00:13:19 v #14583 > > │ assert 0 <= index < len(self.ptr), "The get index -00:13:19 v #14584 > > needs to be in range." -00:13:19 v #14585 > > │ return self.ptr[index] -00:13:19 v #14586 > > │ -00:13:19 v #14587 > > │ def __setitem__(self, index, value): -00:13:19 v #14588 > > │ assert 0 <= index < len(self.ptr), "The set index -00:13:19 v #14589 > > needs to be in range." -00:13:19 v #14590 > > │ self.ptr[index] = value -00:13:19 v #14591 > > │ -00:13:19 v #14592 > > │ class static_array_list(static_array): -00:13:19 v #14593 > > │ def __init__(self, length): -00:13:19 v #14594 > > │ super().__init__(length) -00:13:19 v #14595 > > │ self.length = 0 -00:13:19 v #14596 > > │ -00:13:19 v #14597 > > │ def __getitem__(self, index): -00:13:19 v #14598 > > │ assert 0 <= index < self.length, "The get index needs -00:13:19 v #14599 > > to be in range." -00:13:19 v #14600 > > │ return self.ptr[index] -00:13:19 v #14601 > > │ -00:13:19 v #14602 > > │ def __setitem__(self, index, value): -00:13:19 v #14603 > > │ assert 0 <= index < self.length, "The set index needs -00:13:19 v #14604 > > to be in range." -00:13:19 v #14605 > > │ self.ptr[index] = value -00:13:19 v #14606 > > │ -00:13:19 v #14607 > > │ def push(self,value): -00:13:19 v #14608 > > │ assert (self.length < len(self.ptr)), "The length -00:13:19 v #14609 > > before pushing has to be less than the maximum length of the array." -00:13:19 v #14610 > > │ self.ptr[self.length] = value -00:13:19 v #14611 > > │ self.length += 1 -00:13:19 v #14612 > > │ -00:13:19 v #14613 > > │ def pop(self): -00:13:19 v #14614 > > │ assert (0 < self.length), "The length before popping -00:13:19 v #14615 > > has to be greater than 0." -00:13:19 v #14616 > > │ self.length -= 1 -00:13:19 v #14617 > > │ return self.ptr[self.length] -00:13:19 v #14618 > > │ -00:13:19 v #14619 > > │ def unsafe_set_length(self,i): -00:13:19 v #14620 > > │ assert 0 <= i <= len(self.ptr), "The new length has -00:13:19 v #14621 > > to be in range." -00:13:19 v #14622 > > │ self.length = i -00:13:19 v #14623 > > │ -00:13:19 v #14624 > > │ class dynamic_array(static_array): -00:13:19 v #14625 > > │ pass -00:13:19 v #14626 > > │ -00:13:19 v #14627 > > │ class dynamic_array_list(static_array_list): -00:13:19 v #14628 > > │ def length_(self): return self.length -00:13:19 v #14629 > > │ -00:13:19 v #14630 > > │ import cupy as cp -00:13:19 v #14631 > > │ import numpy as np -00:13:19 v #14632 > > │ from dataclasses import dataclass -00:13:19 v #14633 > > │ from typing import NamedTuple, Union, Callable, Tuple -00:13:19 v #14634 > > │ i8 = int; i16 = int; i32 = int; i64 = int; u8 = int; u16 = -00:13:19 v #14635 > > int; u32 = int; u64 = int; f32 = float; f64 = float; char = str; string = str -00:13:19 v #14636 > > │ cuda = False -00:13:19 v #14637 > > │ -00:13:19 v #14638 > > │ def method1() -> i32: -00:13:19 v #14639 > > │ return 3 -00:13:19 v #14640 > > │ def method2(v0 : i32, v1 : i32) -> i32: -00:13:19 v #14641 > > │ v2 = v1 + v0 -00:13:19 v #14642 > > │ del v0, v1 -00:13:19 v #14643 > > │ return v2 -00:13:19 v #14644 > > │ def method3(v0 : bool) -> bool: -00:13:19 v #14645 > > │ return v0 -00:13:19 v #14646 > > │ def method0() -> None: -00:13:19 v #14647 > > │ v0 = method1() -00:13:19 v #14648 > > │ v1 = 9 -00:13:19 v #14649 > > │ v2 = method2(v0, v1) -00:13:19 v #14650 > > │ del v0, v1 -00:13:19 v #14651 > > │ v3 = v2 + 2 -00:13:19 v #14652 > > │ del v2 -00:13:19 v #14653 > > │ v4 = v3 + 1 -00:13:19 v #14654 > > │ del v3 -00:13:19 v #14655 > > │ v5 = v4 == 15 -00:13:19 v #14656 > > │ if v5: -00:13:19 v #14657 > > │ v7 = True -00:13:19 v #14658 > > │ else: -00:13:19 v #14659 > > │ v7 = method3(v5) -00:13:19 v #14660 > > │ del v5 -00:13:19 v #14661 > > │ v10 = "__assert_eq" -00:13:19 v #14662 > > │ v11 = f"{v10} / actual: {v4} / expected: {15}" -00:13:19 v #14663 > > │ del v4, v10 -00:13:19 v #14664 > > │ print(v11) -00:13:19 v #14665 > > │ v17 = v7 == False -00:13:19 v #14666 > > │ del v7 -00:13:19 v #14667 > > │ if v17: -00:13:19 v #14668 > > │ del v17 -00:13:19 v #14669 > > │ raise Exception(v11) -00:13:19 v #14670 > > │ else: -00:13:19 v #14671 > > │ del v11, v17 -00:13:19 v #14672 > > │ return -00:13:19 v #14673 > > │ def main_body(): -00:13:19 v #14674 > > │ return method0() -00:13:19 v #14675 > > │ -00:13:19 v #14676 > > │ def main(): -00:13:19 v #14677 > > │ r = main_body() -00:13:19 v #14678 > > │ if cuda: cp.cuda.get_current_stream().synchronize() # -00:13:19 v #14679 > > This line is here so the `__trap()` calls on the kernel aren't missed. -00:13:19 v #14680 > > │ return r -00:13:19 v #14681 > > │ -00:13:19 v #14682 > > │ if __name__ == '__main__': result = main(); None if result is -00:13:19 v #14683 > > None else print(result) -00:13:19 v #14684 > > │ -00:13:19 v #14685 > > │ .fsx output: -00:13:19 v #14686 > > │ __assert_eq / actual: 15 / expected: 15 -00:13:19 v #14687 > > │ -00:13:19 v #14688 > > -00:13:19 v #14689 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:13:19 v #14690 > > │ ### join_body_unit -00:13:19 v #14691 > > -00:13:19 v #14692 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:13:19 v #14693 > > inl join_body_unit body d x = -00:13:19 v #14694 > > if var_is d |> not -00:13:19 v #14695 > > then body x -00:13:19 v #14696 > > else -00:13:19 v #14697 > > inl x = dyn x -00:13:19 v #14698 > > join body x -00:13:19 v #14699 > > -00:13:19 v #14700 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:13:19 v #14701 > > //// test -00:13:19 v #14702 > > ///! fsharp -00:13:19 v #14703 > > ///! cuda -00:13:19 v #14704 > > ///! rust -00:13:19 v #14705 > > ///! typescript -00:13:19 v #14706 > > ///! python -00:13:19 v #14707 > > //// print_code -00:13:19 v #14708 > > -00:13:19 v #14709 > > [[ 5i32; 4; join 3; 2; 1 ]] -00:13:19 v #14710 > > |> fold_list (fun acc n => join_body_unit ((+) acc) n n) 0 -00:13:19 v #14711 > > |> _assert_eq 15 -00:13:22 v #14712 > > -00:13:22 v #14713 > > ── [ 3.07s - return value ] ──────────────────────────────────────────────────── -00:13:22 v #14714 > > │ .py output (Cuda): -00:13:22 v #14715 > > │ __assert_eq / actual: 15 / expected: 15 -00:13:22 v #14716 > > │ -00:13:22 v #14717 > > │ .rs output: -00:13:22 v #14718 > > │ __assert_eq / actual: 15 / expected: 15 -00:13:22 v #14719 > > │ -00:13:22 v #14720 > > │ .ts output: -00:13:22 v #14721 > > │ __assert_eq / actual: 15 / expected: 15 -00:13:22 v #14722 > > │ -00:13:22 v #14723 > > │ .py output: -00:13:22 v #14724 > > │ __assert_eq / actual: 15 / expected: 15 -00:13:22 v #14725 > > │ -00:13:22 v #14726 > > │ -00:13:22 v #14727 > > │ -00:13:22 v #14728 > > │ -00:13:22 v #14729 > > -00:13:22 v #14730 > > ── [ 3.07s - stdout ] ────────────────────────────────────────────────────────── -00:13:22 v #14731 > > │ .fsx: -00:13:22 v #14732 > > │ let rec method1 () : int32 = -00:13:22 v #14733 > > │ 3 -00:13:22 v #14734 > > │ and method2 (v0 : int32) : int32 = -00:13:22 v #14735 > > │ let v1 : int32 = 9 + v0 -00:13:22 v #14736 > > │ v1 -00:13:22 v #14737 > > │ and method3 (v0 : bool) : bool = -00:13:22 v #14738 > > │ v0 -00:13:22 v #14739 > > │ and closure0 (v0 : string) () : unit = -00:13:22 v #14740 > > │ let v1 : (string -> unit) = System.Console.WriteLine -00:13:22 v #14741 > > │ v1 v0 -00:13:22 v #14742 > > │ and method0 () : unit = -00:13:22 v #14743 > > │ let v0 : int32 = method1() -00:13:22 v #14744 > > │ let v1 : int32 = method2(v0) -00:13:22 v #14745 > > │ let v2 : int32 = v1 + 2 -00:13:22 v #14746 > > │ let v3 : int32 = v2 + 1 -00:13:22 v #14747 > > │ let v4 : bool = v3 = 15 -00:13:22 v #14748 > > │ let v6 : bool = -00:13:22 v #14749 > > │ if v4 then -00:13:22 v #14750 > > │ true -00:13:22 v #14751 > > │ else -00:13:22 v #14752 > > │ method3(v4) -00:13:22 v #14753 > > │ let v7 : string = "__assert_eq" -00:13:22 v #14754 > > │ let v8 : string = $"{v7} / actual: %A{v3} / expected: -00:13:22 v #14755 > > %A{15}" -00:13:22 v #14756 > > │ let v11 : unit = () -00:13:22 v #14757 > > │ let v12 : (unit -> unit) = closure0(v8) -00:13:22 v #14758 > > │ let v13 : unit = (fun () -> v12 (); v11) () -00:13:22 v #14759 > > │ let v15 : bool = v6 = false -00:13:22 v #14760 > > │ if v15 then -00:13:22 v #14761 > > │ failwith<unit> v8 -00:13:22 v #14762 > > │ method0() -00:13:22 v #14763 > > │ -00:13:22 v #14764 > > │ -00:13:22 v #14765 > > │ .rs: -00:13:22 v #14766 > > │ #![allow(dead_code)] -00:13:22 v #14767 > > │ #![allow(non_camel_case_types)] -00:13:22 v #14768 > > │ #![allow(non_snake_case)] -00:13:22 v #14769 > > │ #![allow(non_upper_case_globals)] -00:13:22 v #14770 > > │ #![allow(unreachable_code)] -00:13:22 v #14771 > > │ #![allow(unused_attributes)] -00:13:22 v #14772 > > │ #![allow(unused_imports)] -00:13:22 v #14773 > > │ #![allow(unused_macros)] -00:13:22 v #14774 > > │ #![allow(unused_parens)] -00:13:22 v #14775 > > │ #![allow(unused_variables)] -00:13:22 v #14776 > > │ #![allow(unused_assignments)] -00:13:22 v #14777 > > │ mod module_74712c29 { -00:13:22 v #14778 > > │ pub mod Spiral { -00:13:22 v #14779 > > │ use super::*; -00:13:22 v #14780 > > │ use fable_library_rust::Native_::on_startup; -00:13:22 v #14781 > > │ use fable_library_rust::String_::printfn; -00:13:22 v #14782 > > │ use fable_library_rust::String_::sprintf; -00:13:22 v #14783 > > │ use fable_library_rust::String_::string; -00:13:22 v #14784 > > │ pub fn method1() -> i32 { -00:13:22 v #14785 > > │ 3_i32 -00:13:22 v #14786 > > │ } -00:13:22 v #14787 > > │ pub fn method2(v0: i32) -> i32 { -00:13:22 v #14788 > > │ 9_i32 + (v0) -00:13:22 v #14789 > > │ } -00:13:22 v #14790 > > │ pub fn method3(v0: bool) -> bool { -00:13:22 v #14791 > > │ v0 -00:13:22 v #14792 > > │ } -00:13:22 v #14793 > > │ pub fn closure0(v0: string, unitVar: ()) { -00:13:22 v #14794 > > │ printfn!("{0}", v0); -00:13:22 v #14795 > > │ } -00:13:22 v #14796 > > │ pub fn method0() { -00:13:22 v #14797 > > │ let v3: i32 = -00:13:22 v #14798 > > ((Spiral::method2(Spiral::method1())) + 2_i32) + 1_i32; -00:13:22 v #14799 > > │ let v4: bool = (v3) == 15_i32; -00:13:22 v #14800 > > │ let v6: bool = if v4 { true } else { -00:13:22 v #14801 > > Spiral::method3(v4) }; -00:13:22 v #14802 > > │ let v8: string = sprintf!( -00:13:22 v #14803 > > │ "{} / actual: {:?} / expected: {:?}", -00:13:22 v #14804 > > │ string("__assert_eq"), -00:13:22 v #14805 > > │ v3, -00:13:22 v #14806 > > │ 15_i32 -00:13:22 v #14807 > > │ ); -00:13:22 v #14808 > > │ let v13: () = { -00:13:22 v #14809 > > │ Spiral::closure0(v8.clone(), ()); -00:13:22 v #14810 > > │ () -00:13:22 v #14811 > > │ }; -00:13:22 v #14812 > > │ if (v6) == false { -00:13:22 v #14813 > > │ panic!("{}", v8,); -00:13:22 v #14814 > > │ } -00:13:22 v #14815 > > │ } -00:13:22 v #14816 > > │ // on_startup!(Spiral::method0()); -00:13:22 v #14817 > > │ } -00:13:22 v #14818 > > │ } -00:13:22 v #14819 > > │ pub use module_74712c29::*; -00:13:22 v #14820 > > │ -00:13:22 v #14821 > > │ pub fn main() -> Result<(), String> { -00:13:22 v #14822 > > │ Ok(Spiral::method0()) -00:13:22 v #14823 > > │ } -00:13:22 v #14824 > > │ -00:13:22 v #14825 > > │ .ts: -00:13:22 v #14826 > > │ import { int32 } from -00:13:22 v #14827 > > "./fable_modules/fable-library-ts.5.0.0-alpha.2/Int32.js"; -00:13:22 v #14828 > > │ import { interpolate, toText } from -00:13:22 v #14829 > > "./fable_modules/fable-library-ts.5.0.0-alpha.2/String.js"; -00:13:22 v #14830 > > │ -00:13:22 v #14831 > > │ export function method1(): int32 { -00:13:22 v #14832 > > │ return 3; -00:13:22 v #14833 > > │ } -00:13:22 v #14834 > > │ -00:13:22 v #14835 > > │ export function method2(v0: int32): int32 { -00:13:22 v #14836 > > │ return 9 + v0; -00:13:22 v #14837 > > │ } -00:13:22 v #14838 > > │ -00:13:22 v #14839 > > │ export function method3(v0: boolean): boolean { -00:13:22 v #14840 > > │ return v0; -00:13:22 v #14841 > > │ } -00:13:22 v #14842 > > │ -00:13:22 v #14843 > > │ export function closure0(v0: string, unitVar: void): void { -00:13:22 v #14844 > > │ console.log(v0); -00:13:22 v #14845 > > │ } -00:13:22 v #14846 > > │ -00:13:22 v #14847 > > │ export function method0(): void { -00:13:22 v #14848 > > │ const v3: int32 = ((method2(method1()) + 2) + 1) | 0; -00:13:22 v #14849 > > │ const v4: boolean = v3 === 15; -00:13:22 v #14850 > > │ const v6: boolean = v4 ? true : method3(v4); -00:13:22 v #14851 > > │ const v8: string = toText(interpolate("%P() / actual: -00:13:22 v #14852 > > %A%P() / expected: %A%P()", ["__assert_eq", v3, 15])); -00:13:22 v #14853 > > │ let v13: any; -00:13:22 v #14854 > > │ closure0(v8, undefined); -00:13:22 v #14855 > > │ v13 = undefined; -00:13:22 v #14856 > > │ if (v6 === false) { -00:13:22 v #14857 > > │ throw new Error(v8); -00:13:22 v #14858 > > │ } -00:13:22 v #14859 > > │ } -00:13:22 v #14860 > > │ -00:13:22 v #14861 > > │ method0(); -00:13:22 v #14862 > > │ -00:13:22 v #14863 > > │ -00:13:22 v #14864 > > │ -00:13:22 v #14865 > > │ // spiral.process_typescript -00:13:22 v #14866 > > │ -00:13:22 v #14867 > > │ .py: -00:13:22 v #14868 > > │ from fable_modules.fable_library.string_ import (to_text, -00:13:22 v #14869 > > interpolate) -00:13:22 v #14870 > > │ -00:13:22 v #14871 > > │ def method1(__unit: None=None) -> int: -00:13:22 v #14872 > > │ return 3 -00:13:22 v #14873 > > │ -00:13:22 v #14874 > > │ -00:13:22 v #14875 > > │ def method2(v0: int) -> int: -00:13:22 v #14876 > > │ return 9 + v0 -00:13:22 v #14877 > > │ -00:13:22 v #14878 > > │ -00:13:22 v #14879 > > │ def method3(v0: bool) -> bool: -00:13:22 v #14880 > > │ return v0 -00:13:22 v #14881 > > │ -00:13:22 v #14882 > > │ -00:13:22 v #14883 > > │ def closure0(v0: str, unit_var: None) -> None: -00:13:22 v #14884 > > │ print(v0) -00:13:22 v #14885 > > │ -00:13:22 v #14886 > > │ -00:13:22 v #14887 > > │ def method0(__unit: None=None) -> None: -00:13:22 v #14888 > > │ v3: int = ((method2(method1()) + 2) + 1) or 0 -00:13:22 v #14889 > > │ v4: bool = v3 == 15 -00:13:22 v #14890 > > │ v6: bool = True if v4 else method3(v4) -00:13:22 v #14891 > > │ v8: str = to_text(interpolate("%P() / actual: %A%P() -00:13:22 v #14892 > > expected: %A%P()", ["__assert_eq", v3, 15])) -00:13:22 v #14893 > > │ v13: None -00:13:22 v #14894 > > │ closure0(v8, None) -00:13:22 v #14895 > > │ v13 = None -00:13:22 v #14896 > > │ if v6 == False: -00:13:22 v #14897 > > │ raise Exception(v8) -00:13:22 v #14898 > > │ -00:13:22 v #14899 > > │ -00:13:22 v #14900 > > │ -00:13:22 v #14901 > > │ method0() -00:13:22 v #14902 > > │ -00:13:22 v #14903 > > │ -00:13:22 v #14904 > > │ -00:13:22 v #14905 > > │ # spiral.process_python -00:13:22 v #14906 > > │ -00:13:22 v #14907 > > │ .py (Cuda): -00:13:22 v #14908 > > │ kernel = r""" -00:13:22 v #14909 > > │ """ -00:13:22 v #14910 > > │ class static_array(): -00:13:22 v #14911 > > │ def __init__(self, length): -00:13:22 v #14912 > > │ self.ptr = [] -00:13:22 v #14913 > > │ for _ in range(length): -00:13:22 v #14914 > > │ self.ptr.append(None) -00:13:22 v #14915 > > │ -00:13:22 v #14916 > > │ def __getitem__(self, index): -00:13:22 v #14917 > > │ assert 0 <= index < len(self.ptr), "The get index -00:13:22 v #14918 > > needs to be in range." -00:13:22 v #14919 > > │ return self.ptr[index] -00:13:22 v #14920 > > │ -00:13:22 v #14921 > > │ def __setitem__(self, index, value): -00:13:22 v #14922 > > │ assert 0 <= index < len(self.ptr), "The set index -00:13:22 v #14923 > > needs to be in range." -00:13:22 v #14924 > > │ self.ptr[index] = value -00:13:22 v #14925 > > │ -00:13:22 v #14926 > > │ class static_array_list(static_array): -00:13:22 v #14927 > > │ def __init__(self, length): -00:13:22 v #14928 > > │ super().__init__(length) -00:13:22 v #14929 > > │ self.length = 0 -00:13:22 v #14930 > > │ -00:13:22 v #14931 > > │ def __getitem__(self, index): -00:13:22 v #14932 > > │ assert 0 <= index < self.length, "The get index needs -00:13:22 v #14933 > > to be in range." -00:13:22 v #14934 > > │ return self.ptr[index] -00:13:22 v #14935 > > │ -00:13:22 v #14936 > > │ def __setitem__(self, index, value): -00:13:22 v #14937 > > │ assert 0 <= index < self.length, "The set index needs -00:13:22 v #14938 > > to be in range." -00:13:22 v #14939 > > │ self.ptr[index] = value -00:13:22 v #14940 > > │ -00:13:22 v #14941 > > │ def push(self,value): -00:13:22 v #14942 > > │ assert (self.length < len(self.ptr)), "The length -00:13:22 v #14943 > > before pushing has to be less than the maximum length of the array." -00:13:22 v #14944 > > │ self.ptr[self.length] = value -00:13:22 v #14945 > > │ self.length += 1 -00:13:22 v #14946 > > │ -00:13:22 v #14947 > > │ def pop(self): -00:13:22 v #14948 > > │ assert (0 < self.length), "The length before popping -00:13:22 v #14949 > > has to be greater than 0." -00:13:22 v #14950 > > │ self.length -= 1 -00:13:22 v #14951 > > │ return self.ptr[self.length] -00:13:22 v #14952 > > │ -00:13:22 v #14953 > > │ def unsafe_set_length(self,i): -00:13:22 v #14954 > > │ assert 0 <= i <= len(self.ptr), "The new length has -00:13:22 v #14955 > > to be in range." -00:13:22 v #14956 > > │ self.length = i -00:13:22 v #14957 > > │ -00:13:22 v #14958 > > │ class dynamic_array(static_array): -00:13:22 v #14959 > > │ pass -00:13:22 v #14960 > > │ -00:13:22 v #14961 > > │ class dynamic_array_list(static_array_list): -00:13:22 v #14962 > > │ def length_(self): return self.length -00:13:22 v #14963 > > │ -00:13:22 v #14964 > > │ import cupy as cp -00:13:22 v #14965 > > │ import numpy as np -00:13:22 v #14966 > > │ from dataclasses import dataclass -00:13:22 v #14967 > > │ from typing import NamedTuple, Union, Callable, Tuple -00:13:22 v #14968 > > │ i8 = int; i16 = int; i32 = int; i64 = int; u8 = int; u16 = -00:13:22 v #14969 > > int; u32 = int; u64 = int; f32 = float; f64 = float; char = str; string = str -00:13:22 v #14970 > > │ cuda = False -00:13:22 v #14971 > > │ -00:13:22 v #14972 > > │ def method1() -> i32: -00:13:22 v #14973 > > │ return 3 -00:13:22 v #14974 > > │ def method2(v0 : i32) -> i32: -00:13:22 v #14975 > > │ v1 = 9 + v0 -00:13:22 v #14976 > > │ del v0 -00:13:22 v #14977 > > │ return v1 -00:13:22 v #14978 > > │ def method3(v0 : bool) -> bool: -00:13:22 v #14979 > > │ return v0 -00:13:22 v #14980 > > │ def method0() -> None: -00:13:22 v #14981 > > │ v0 = method1() -00:13:22 v #14982 > > │ v1 = method2(v0) -00:13:22 v #14983 > > │ del v0 -00:13:22 v #14984 > > │ v2 = v1 + 2 -00:13:22 v #14985 > > │ del v1 -00:13:22 v #14986 > > │ v3 = v2 + 1 -00:13:22 v #14987 > > │ del v2 -00:13:22 v #14988 > > │ v4 = v3 == 15 -00:13:22 v #14989 > > │ if v4: -00:13:22 v #14990 > > │ v6 = True -00:13:22 v #14991 > > │ else: -00:13:22 v #14992 > > │ v6 = method3(v4) -00:13:22 v #14993 > > │ del v4 -00:13:22 v #14994 > > │ v9 = "__assert_eq" -00:13:22 v #14995 > > │ v10 = f"{v9} / actual: {v3} / expected: {15}" -00:13:22 v #14996 > > │ del v3, v9 -00:13:22 v #14997 > > │ print(v10) -00:13:22 v #14998 > > │ v16 = v6 == False -00:13:22 v #14999 > > │ del v6 -00:13:22 v #15000 > > │ if v16: -00:13:22 v #15001 > > │ del v16 -00:13:22 v #15002 > > │ raise Exception(v10) -00:13:22 v #15003 > > │ else: -00:13:22 v #15004 > > │ del v10, v16 -00:13:22 v #15005 > > │ return -00:13:22 v #15006 > > │ def main_body(): -00:13:22 v #15007 > > │ return method0() -00:13:22 v #15008 > > │ -00:13:22 v #15009 > > │ def main(): -00:13:22 v #15010 > > │ r = main_body() -00:13:22 v #15011 > > │ if cuda: cp.cuda.get_current_stream().synchronize() # -00:13:22 v #15012 > > This line is here so the `__trap()` calls on the kernel aren't missed. -00:13:22 v #15013 > > │ return r -00:13:22 v #15014 > > │ -00:13:22 v #15015 > > │ if __name__ == '__main__': result = main(); None if result is -00:13:22 v #15016 > > None else print(result) -00:13:22 v #15017 > > │ -00:13:22 v #15018 > > │ .fsx output: -00:13:22 v #15019 > > │ __assert_eq / actual: 15 / expected: 15 -00:13:22 v #15020 > > │ -00:13:22 v #15021 > > -00:13:22 v #15022 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:13:22 v #15023 > > │ ## arithmetic -00:13:22 v #15024 > > -00:13:22 v #15025 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:13:22 v #15026 > > │ ### (+.) -00:13:22 v #15027 > > -00:13:22 v #15028 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:13:22 v #15029 > > inl (+.) forall t. (a : t) (b : t) : t = -00:13:22 v #15030 > > $'!a + !b ' -00:13:23 v #15031 > > -00:13:23 v #15032 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:13:23 v #15033 > > //// test -00:13:23 v #15034 > > ///! fsharp -00:13:23 v #15035 > > ///! cuda -00:13:23 v #15036 > > ///! rust -00:13:23 v #15037 > > ///! typescript -00:13:23 v #15038 > > ///! python -00:13:23 v #15039 > > -00:13:23 v #15040 > > ($'3' : i32) +. ($'-6' : i32) -00:13:23 v #15041 > > |> _assert_eq -3i32 -00:13:26 v #15042 > > -00:13:26 v #15043 > > ── [ 3.06s - return value ] ──────────────────────────────────────────────────── -00:13:26 v #15044 > > │ .py output (Cuda): -00:13:26 v #15045 > > │ __assert_eq / actual: -3 / expected: -3 -00:13:26 v #15046 > > │ -00:13:26 v #15047 > > │ .rs output: -00:13:26 v #15048 > > │ __assert_eq / actual: -3 / expected: -3 -00:13:26 v #15049 > > │ -00:13:26 v #15050 > > │ .ts output: -00:13:26 v #15051 > > │ __assert_eq / actual: -3 / expected: -3 -00:13:26 v #15052 > > │ -00:13:26 v #15053 > > │ .py output: -00:13:26 v #15054 > > │ __assert_eq / actual: -3 / expected: -3 -00:13:26 v #15055 > > │ -00:13:26 v #15056 > > │ -00:13:26 v #15057 > > -00:13:26 v #15058 > > ── [ 3.06s - stdout ] ────────────────────────────────────────────────────────── -00:13:26 v #15059 > > │ .fsx output: -00:13:26 v #15060 > > │ __assert_eq / actual: -3 / expected: -3 -00:13:26 v #15061 > > │ -00:13:26 v #15062 > > -00:13:26 v #15063 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:13:26 v #15064 > > │ ### (-.) -00:13:26 v #15065 > > -00:13:26 v #15066 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:13:26 v #15067 > > inl (-.) forall t. (a : t) (b : t) : t = -00:13:26 v #15068 > > $'!a - !b ' -00:13:26 v #15069 > > -00:13:26 v #15070 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:13:26 v #15071 > > //// test -00:13:26 v #15072 > > ///! fsharp -00:13:26 v #15073 > > ///! cuda -00:13:26 v #15074 > > ///! rust -00:13:26 v #15075 > > ///! typescript -00:13:26 v #15076 > > ///! python -00:13:26 v #15077 > > -00:13:26 v #15078 > > ($'3' : i32) -. ($'6' : i32) -00:13:26 v #15079 > > |> _assert_eq -3i32 -00:13:30 v #15080 > > -00:13:30 v #15081 > > ── [ 3.23s - return value ] ──────────────────────────────────────────────────── -00:13:30 v #15082 > > │ .py output (Cuda): -00:13:30 v #15083 > > │ __assert_eq / actual: -3 / expected: -3 -00:13:30 v #15084 > > │ -00:13:30 v #15085 > > │ .rs output: -00:13:30 v #15086 > > │ __assert_eq / actual: -3 / expected: -3 -00:13:30 v #15087 > > │ -00:13:30 v #15088 > > │ .ts output: -00:13:30 v #15089 > > │ __assert_eq / actual: -3 / expected: -3 -00:13:30 v #15090 > > │ -00:13:30 v #15091 > > │ .py output: -00:13:30 v #15092 > > │ __assert_eq / actual: -3 / expected: -3 -00:13:30 v #15093 > > │ -00:13:30 v #15094 > > │ -00:13:30 v #15095 > > -00:13:30 v #15096 > > ── [ 3.23s - stdout ] ────────────────────────────────────────────────────────── -00:13:30 v #15097 > > │ .fsx output: -00:13:30 v #15098 > > │ __assert_eq / actual: -3 / expected: -3 -00:13:30 v #15099 > > │ -00:13:30 v #15100 > > -00:13:30 v #15101 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:13:30 v #15102 > > │ ### (*.) -00:13:30 v #15103 > > -00:13:30 v #15104 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:13:30 v #15105 > > inl (*.) forall t. (a : t) (b : t) : t = -00:13:30 v #15106 > > $'!a * !b ' -00:13:30 v #15107 > > -00:13:30 v #15108 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:13:30 v #15109 > > //// test -00:13:30 v #15110 > > ///! fsharp -00:13:30 v #15111 > > ///! cuda -00:13:30 v #15112 > > ///! rust -00:13:30 v #15113 > > ///! typescript -00:13:30 v #15114 > > ///! python -00:13:30 v #15115 > > -00:13:30 v #15116 > > ($'3' : i32) *. ($'-1' : i32) -00:13:30 v #15117 > > |> _assert_eq -3i32 -00:13:33 v #15118 > > -00:13:33 v #15119 > > ── [ 3.07s - return value ] ──────────────────────────────────────────────────── -00:13:33 v #15120 > > │ .py output (Cuda): -00:13:33 v #15121 > > │ __assert_eq / actual: -3 / expected: -3 -00:13:33 v #15122 > > │ -00:13:33 v #15123 > > │ .rs output: -00:13:33 v #15124 > > │ __assert_eq / actual: -3 / expected: -3 -00:13:33 v #15125 > > │ -00:13:33 v #15126 > > │ .ts output: -00:13:33 v #15127 > > │ __assert_eq / actual: -3 / expected: -3 -00:13:33 v #15128 > > │ -00:13:33 v #15129 > > │ .py output: -00:13:33 v #15130 > > │ __assert_eq / actual: -3 / expected: -3 -00:13:33 v #15131 > > │ -00:13:33 v #15132 > > │ -00:13:33 v #15133 > > -00:13:33 v #15134 > > ── [ 3.07s - stdout ] ────────────────────────────────────────────────────────── -00:13:33 v #15135 > > │ .fsx output: -00:13:33 v #15136 > > │ __assert_eq / actual: -3 / expected: -3 -00:13:33 v #15137 > > │ -00:13:33 v #15138 > > -00:13:33 v #15139 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:13:33 v #15140 > > │ ### (/.) -00:13:33 v #15141 > > -00:13:33 v #15142 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:13:33 v #15143 > > inl (/.) forall t. (a : t) (b : t) : t = -00:13:33 v #15144 > > $'!a / !b ' -00:13:33 v #15145 > > -00:13:33 v #15146 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:13:33 v #15147 > > //// test -00:13:33 v #15148 > > ///! fsharp -00:13:33 v #15149 > > ///! cuda -00:13:33 v #15150 > > ///! rust -00:13:33 v #15151 > > ///! typescript -00:13:33 v #15152 > > ///! python -00:13:33 v #15153 > > -00:13:33 v #15154 > > ($'-3' : i32) /. ($'1' : i32) -00:13:33 v #15155 > > |> _assert_eq -3i32 -00:13:37 v #15156 > > -00:13:37 v #15157 > > ── [ 3.22s - return value ] ──────────────────────────────────────────────────── -00:13:37 v #15158 > > │ .py output (Cuda): -00:13:37 v #15159 > > │ __assert_eq / actual: -3.0 / expected: -3 -00:13:37 v #15160 > > │ -00:13:37 v #15161 > > │ .rs output: -00:13:37 v #15162 > > │ __assert_eq / actual: -3 / expected: -3 -00:13:37 v #15163 > > │ -00:13:37 v #15164 > > │ .ts output: -00:13:37 v #15165 > > │ __assert_eq / actual: -3 / expected: -3 -00:13:37 v #15166 > > │ -00:13:37 v #15167 > > │ .py output: -00:13:37 v #15168 > > │ __assert_eq / actual: -3 / expected: -3 -00:13:37 v #15169 > > │ -00:13:37 v #15170 > > │ -00:13:37 v #15171 > > -00:13:37 v #15172 > > ── [ 3.22s - stdout ] ────────────────────────────────────────────────────────── -00:13:37 v #15173 > > │ .fsx output: -00:13:37 v #15174 > > │ __assert_eq / actual: -3 / expected: -3 -00:13:37 v #15175 > > │ -00:13:37 v #15176 > > -00:13:37 v #15177 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:13:37 v #15178 > > │ ## comparison -00:13:37 v #15179 > > -00:13:37 v #15180 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:13:37 v #15181 > > │ ### (=.) -00:13:37 v #15182 > > -00:13:37 v #15183 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:13:37 v #15184 > > inl (=.) forall t. (a : t) (b : t) : bool = -00:13:37 v #15185 > > backend_switch { -00:13:37 v #15186 > > Fsharp = fun () => $'!a = !b ' : bool -00:13:37 v #15187 > > Python = fun () => $'!a == !b ' : bool -00:13:37 v #15188 > > } -00:13:37 v #15189 > > -00:13:37 v #15190 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:13:37 v #15191 > > //// test -00:13:37 v #15192 > > ///! fsharp -00:13:37 v #15193 > > ///! cuda -00:13:37 v #15194 > > ///! rust -00:13:37 v #15195 > > ///! typescript -00:13:37 v #15196 > > ///! python -00:13:37 v #15197 > > -00:13:37 v #15198 > > ($'-3' : i32) =. ($'-3' : i32) -00:13:37 v #15199 > > |> _assert_eq true -00:13:40 v #15200 > > -00:13:40 v #15201 > > ── [ 3.17s - return value ] ──────────────────────────────────────────────────── -00:13:40 v #15202 > > │ .py output (Cuda): -00:13:40 v #15203 > > │ __assert_eq / actual: True / expected: True -00:13:40 v #15204 > > │ -00:13:40 v #15205 > > │ .rs output: -00:13:40 v #15206 > > │ __assert_eq / actual: true / expected: true -00:13:40 v #15207 > > │ -00:13:40 v #15208 > > │ .ts output: -00:13:40 v #15209 > > │ __assert_eq / actual: true / expected: true -00:13:40 v #15210 > > │ -00:13:40 v #15211 > > │ .py output: -00:13:40 v #15212 > > │ __assert_eq / actual: true / expected: true -00:13:40 v #15213 > > │ -00:13:40 v #15214 > > │ -00:13:40 v #15215 > > -00:13:40 v #15216 > > ── [ 3.17s - stdout ] ────────────────────────────────────────────────────────── -00:13:40 v #15217 > > │ .fsx output: -00:13:40 v #15218 > > │ __assert_eq / actual: true / expected: true -00:13:40 v #15219 > > │ -00:13:40 v #15220 > > -00:13:40 v #15221 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:13:40 v #15222 > > │ ### (<>.) -00:13:40 v #15223 > > -00:13:40 v #15224 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:13:40 v #15225 > > inl (<>.) forall t. (a : t) (b : t) : bool = -00:13:40 v #15226 > > backend_switch { -00:13:40 v #15227 > > Fsharp = fun () => $'!a <> !b ' : bool -00:13:40 v #15228 > > Python = fun () => $'!a \!= !b ' : bool -00:13:40 v #15229 > > } -00:13:41 v #15230 > > -00:13:41 v #15231 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:13:41 v #15232 > > //// test -00:13:41 v #15233 > > ///! fsharp -00:13:41 v #15234 > > ///! cuda -00:13:41 v #15235 > > ///! rust -00:13:41 v #15236 > > ///! typescript -00:13:41 v #15237 > > ///! python -00:13:41 v #15238 > > -00:13:41 v #15239 > > ($'-3' : i32) <>. ($'3' : i32) -00:13:41 v #15240 > > |> _assert_eq true -00:13:44 v #15241 > > -00:13:44 v #15242 > > ── [ 3.09s - return value ] ──────────────────────────────────────────────────── -00:13:44 v #15243 > > │ .py output (Cuda): -00:13:44 v #15244 > > │ __assert_eq / actual: True / expected: True -00:13:44 v #15245 > > │ -00:13:44 v #15246 > > │ .rs output: -00:13:44 v #15247 > > │ __assert_eq / actual: true / expected: true -00:13:44 v #15248 > > │ -00:13:44 v #15249 > > │ .ts output: -00:13:44 v #15250 > > │ __assert_eq / actual: true / expected: true -00:13:44 v #15251 > > │ -00:13:44 v #15252 > > │ .py output: -00:13:44 v #15253 > > │ __assert_eq / actual: true / expected: true -00:13:44 v #15254 > > │ -00:13:44 v #15255 > > │ -00:13:44 v #15256 > > -00:13:44 v #15257 > > ── [ 3.09s - stdout ] ────────────────────────────────────────────────────────── -00:13:44 v #15258 > > │ .fsx output: -00:13:44 v #15259 > > │ __assert_eq / actual: true / expected: true -00:13:44 v #15260 > > │ -00:13:44 v #15261 > > -00:13:44 v #15262 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:13:44 v #15263 > > │ ### (<>..) -00:13:44 v #15264 > > -00:13:44 v #15265 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:13:44 v #15266 > > inl (<>..) a b = -00:13:44 v #15267 > > fun () => a = b -00:13:44 v #15268 > > |> dyn -00:13:44 v #15269 > > |> eval -00:13:44 v #15270 > > |> not -00:13:44 v #15271 > > -00:13:44 v #15272 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:13:44 v #15273 > > //// test -00:13:44 v #15274 > > ///! fsharp -00:13:44 v #15275 > > ///! cuda -00:13:44 v #15276 > > ///! rust -00:13:44 v #15277 > > ///! typescript -00:13:44 v #15278 > > ///! python -00:13:44 v #15279 > > -00:13:44 v #15280 > > ($'-3' : i32) <>.. ($'3' : i32) -00:13:44 v #15281 > > |> _assert_eq true -00:13:47 v #15282 > > -00:13:47 v #15283 > > ── [ 3.11s - return value ] ──────────────────────────────────────────────────── -00:13:47 v #15284 > > │ .py output (Cuda): -00:13:47 v #15285 > > │ __assert_eq / actual: True / expected: True -00:13:47 v #15286 > > │ -00:13:47 v #15287 > > │ .rs output: -00:13:47 v #15288 > > │ __assert_eq / actual: true / expected: true -00:13:47 v #15289 > > │ -00:13:47 v #15290 > > │ .ts output: -00:13:47 v #15291 > > │ __assert_eq / actual: true / expected: true -00:13:47 v #15292 > > │ -00:13:47 v #15293 > > │ .py output: -00:13:47 v #15294 > > │ __assert_eq / actual: true / expected: true -00:13:47 v #15295 > > │ -00:13:47 v #15296 > > │ -00:13:47 v #15297 > > -00:13:47 v #15298 > > ── [ 3.11s - stdout ] ────────────────────────────────────────────────────────── -00:13:47 v #15299 > > │ .fsx output: -00:13:47 v #15300 > > │ __assert_eq / actual: true / expected: true -00:13:47 v #15301 > > │ -00:13:47 v #15302 > > -00:13:47 v #15303 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:13:47 v #15304 > > │ ## composition -00:13:47 v #15305 > > -00:13:47 v #15306 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:13:47 v #15307 > > │ ### append -00:13:47 v #15308 > > -00:13:47 v #15309 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:13:47 v #15310 > > prototype append t : t -> t -> t -00:13:48 v #15311 > > -00:13:48 v #15312 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:13:48 v #15313 > > │ ### (++) -00:13:48 v #15314 > > -00:13:48 v #15315 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:13:48 v #15316 > > inl (++) a b = -00:13:48 v #15317 > > b |> append a -00:13:48 v #15318 > > -00:13:48 v #15319 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:13:48 v #15320 > > │ ## pair -00:13:48 v #15321 > > -00:13:48 v #15322 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:13:48 v #15323 > > │ ### pair -00:13:48 v #15324 > > -00:13:48 v #15325 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:13:48 v #15326 > > nominal pair a b = $'(`a * `b)' -00:13:48 v #15327 > > -00:13:48 v #15328 > > inl pair x y = -00:13:48 v #15329 > > x, y -00:13:49 v #15330 > > -00:13:49 v #15331 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:13:49 v #15332 > > //// test -00:13:49 v #15333 > > ///! fsharp -00:13:49 v #15334 > > ///! cuda -00:13:49 v #15335 > > ///! rust -00:13:49 v #15336 > > ///! typescript -00:13:49 v #15337 > > ///! python -00:13:49 v #15338 > > -00:13:49 v #15339 > > pair 1i32 2i32 -00:13:49 v #15340 > > |> _assert_eq (1, 2) -00:13:52 v #15341 > > -00:13:52 v #15342 > > ── [ 3.10s - return value ] ──────────────────────────────────────────────────── -00:13:52 v #15343 > > │ .py output (Cuda): -00:13:52 v #15344 > > │ __assert_eq / actual: (1, 2) / expected: (1, 2) -00:13:52 v #15345 > > │ -00:13:52 v #15346 > > │ .rs output: -00:13:52 v #15347 > > │ __assert_eq / actual: (1, 2) / expected: (1, 2) -00:13:52 v #15348 > > │ -00:13:52 v #15349 > > │ .ts output: -00:13:52 v #15350 > > │ __assert_eq / actual: 1,2 / expected: 1,2 -00:13:52 v #15351 > > │ -00:13:52 v #15352 > > │ .py output: -00:13:52 v #15353 > > │ __assert_eq / actual: (1, 2) / expected: (1, 2) -00:13:52 v #15354 > > │ -00:13:52 v #15355 > > │ -00:13:52 v #15356 > > -00:13:52 v #15357 > > ── [ 3.10s - stdout ] ────────────────────────────────────────────────────────── -00:13:52 v #15358 > > │ .fsx output: -00:13:52 v #15359 > > │ __assert_eq / actual: struct (1, 2) / expected: struct (1, 2) -00:13:52 v #15360 > > │ -00:13:52 v #15361 > > -00:13:52 v #15362 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:13:52 v #15363 > > │ ### new_pair -00:13:52 v #15364 > > -00:13:52 v #15365 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:13:52 v #15366 > > inl new_pair forall a b. (a : a) (b : b) : pair a b = -00:13:52 v #15367 > > $'!a, !b ' -00:13:52 v #15368 > > -00:13:52 v #15369 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:13:52 v #15370 > > │ ### from_pair -00:13:52 v #15371 > > -00:13:52 v #15372 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:13:52 v #15373 > > inl from_pair forall a b. (pair : pair a b) : a * b = -00:13:52 v #15374 > > backend_switch { -00:13:52 v #15375 > > Fsharp = fun () => -00:13:52 v #15376 > > $'let (a, b) = !pair ' -00:13:52 v #15377 > > ($'a' : a), ($'b' : b) -00:13:52 v #15378 > > Python = fun () => -00:13:52 v #15379 > > $'a, b = !pair ' -00:13:52 v #15380 > > ($'a' : a), ($'b' : b) -00:13:52 v #15381 > > } -00:13:52 v #15382 > > -00:13:52 v #15383 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:13:52 v #15384 > > //// test -00:13:52 v #15385 > > ///! fsharp -00:13:52 v #15386 > > ///! cuda -00:13:52 v #15387 > > ///! rust -00:13:52 v #15388 > > ///! typescript -00:13:52 v #15389 > > ///! python -00:13:52 v #15390 > > -00:13:52 v #15391 > > new_pair "a" (new_pair 1i32 "b") -00:13:52 v #15392 > > |> from_pair -00:13:52 v #15393 > > |> _assert_eq' ("a", (new_pair 1i32 "b")) -00:13:56 v #15394 > > -00:13:56 v #15395 > > ── [ 3.22s - return value ] ──────────────────────────────────────────────────── -00:13:56 v #15396 > > │ .py output (Cuda): -00:13:56 v #15397 > > │ __assert_eq' / actual: ('a', (1, 'b')) / expected: ('a', (1, -00:13:56 v #15398 > > 'b')) -00:13:56 v #15399 > > │ -00:13:56 v #15400 > > │ .rs output: -00:13:56 v #15401 > > │ __assert_eq' / actual: ("a", (1, "b")) / expected: ("a", (1, -00:13:56 v #15402 > > "b")) -00:13:56 v #15403 > > │ -00:13:56 v #15404 > > │ .ts output: -00:13:56 v #15405 > > │ __assert_eq' / actual: a,1,b / expected: a,1,b -00:13:56 v #15406 > > │ -00:13:56 v #15407 > > │ .py output: -00:13:56 v #15408 > > │ __assert_eq' / actual: ('a', (1, 'b')) / expected: ('a', (1, -00:13:56 v #15409 > > 'b')) -00:13:56 v #15410 > > │ -00:13:56 v #15411 > > │ -00:13:56 v #15412 > > -00:13:56 v #15413 > > ── [ 3.22s - stdout ] ────────────────────────────────────────────────────────── -00:13:56 v #15414 > > │ .fsx output: -00:13:56 v #15415 > > │ __assert_eq' / actual: struct ("a", (1, "b")) / expected: -00:13:56 v #15416 > > struct ("a", (1, "b")) -00:13:56 v #15417 > > │ -00:13:56 v #15418 > > -00:13:56 v #15419 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:13:56 v #15420 > > │ ## application -00:13:56 v #15421 > > -00:13:56 v #15422 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:13:56 v #15423 > > │ ### (||>) -00:13:56 v #15424 > > -00:13:56 v #15425 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:13:56 v #15426 > > inl (||>) (arg1, arg2) fn = -00:13:56 v #15427 > > arg2 |> fn arg1 -00:13:56 v #15428 > > -00:13:56 v #15429 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:13:56 v #15430 > > │ ### (||>) -00:13:56 v #15431 > > -00:13:56 v #15432 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:13:56 v #15433 > > //// test -00:13:56 v #15434 > > ///! fsharp -00:13:56 v #15435 > > ///! cuda -00:13:56 v #15436 > > ///! rust -00:13:56 v #15437 > > ///! typescript -00:13:56 v #15438 > > ///! python -00:13:56 v #15439 > > -00:13:56 v #15440 > > (3i32, 2i32) -00:13:56 v #15441 > > ||> fun a b => a - b -00:13:56 v #15442 > > |> _assert_eq 1 -00:13:59 v #15443 > > -00:13:59 v #15444 > > ── [ 3.11s - return value ] ──────────────────────────────────────────────────── -00:13:59 v #15445 > > │ .py output (Cuda): -00:13:59 v #15446 > > │ __assert_eq / actual: 1 / expected: 1 -00:13:59 v #15447 > > │ -00:13:59 v #15448 > > │ .rs output: -00:13:59 v #15449 > > │ __assert_eq / actual: 1 / expected: 1 -00:13:59 v #15450 > > │ -00:13:59 v #15451 > > │ .ts output: -00:13:59 v #15452 > > │ __assert_eq / actual: 1 / expected: 1 -00:13:59 v #15453 > > │ -00:13:59 v #15454 > > │ .py output: -00:13:59 v #15455 > > │ __assert_eq / actual: 1 / expected: 1 -00:13:59 v #15456 > > │ -00:13:59 v #15457 > > │ -00:13:59 v #15458 > > -00:13:59 v #15459 > > ── [ 3.11s - stdout ] ────────────────────────────────────────────────────────── -00:13:59 v #15460 > > │ .fsx output: -00:13:59 v #15461 > > │ __assert_eq / actual: 1 / expected: 1 -00:13:59 v #15462 > > │ -00:13:59 v #15463 > > -00:13:59 v #15464 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:13:59 v #15465 > > //// test -00:13:59 v #15466 > > ///! fsharp -00:13:59 v #15467 > > ///! cuda -00:13:59 v #15468 > > ///! rust -00:13:59 v #15469 > > ///! typescript -00:13:59 v #15470 > > ///! python -00:13:59 v #15471 > > -00:13:59 v #15472 > > (1i32, 2i32) -00:13:59 v #15473 > > ||> flip pair -00:13:59 v #15474 > > |> _assert_eq (2, 1) -00:14:02 v #15475 > > -00:14:02 v #15476 > > ── [ 3.25s - return value ] ──────────────────────────────────────────────────── -00:14:02 v #15477 > > │ .py output (Cuda): -00:14:02 v #15478 > > │ __assert_eq / actual: (2, 1) / expected: (2, 1) -00:14:02 v #15479 > > │ -00:14:02 v #15480 > > │ .rs output: -00:14:02 v #15481 > > │ __assert_eq / actual: (2, 1) / expected: (2, 1) -00:14:02 v #15482 > > │ -00:14:02 v #15483 > > │ .ts output: -00:14:02 v #15484 > > │ __assert_eq / actual: 2,1 / expected: 2,1 -00:14:02 v #15485 > > │ -00:14:02 v #15486 > > │ .py output: -00:14:02 v #15487 > > │ __assert_eq / actual: (2, 1) / expected: (2, 1) -00:14:02 v #15488 > > │ -00:14:02 v #15489 > > │ -00:14:02 v #15490 > > -00:14:02 v #15491 > > ── [ 3.25s - stdout ] ────────────────────────────────────────────────────────── -00:14:03 v #15492 > > │ .fsx output: -00:14:03 v #15493 > > │ __assert_eq / actual: struct (2, 1) / expected: struct (2, 1) -00:14:03 v #15494 > > │ -00:14:03 v #15495 > > -00:14:03 v #15496 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:14:03 v #15497 > > │ ### fix_condition -00:14:03 v #15498 > > -00:14:03 v #15499 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:03 v #15500 > > inl fix_condition x a b = -00:14:03 v #15501 > > if x () -00:14:03 v #15502 > > then a () |> fun x => $'(* fix_condition then' : () -00:14:03 v #15503 > > else -00:14:03 v #15504 > > $'fix_condition then *) else' : () -00:14:03 v #15505 > > b () |> fun x => $'(* fix_condition else' : () -00:14:03 v #15506 > > |> fun x => $'fix_condition else *)' : () -00:14:03 v #15507 > > -00:14:03 v #15508 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:14:03 v #15509 > > │ ## type -00:14:03 v #15510 > > -00:14:03 v #15511 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:14:03 v #15512 > > │ ### infer -00:14:03 v #15513 > > -00:14:03 v #15514 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:03 v #15515 > > nominal infer = $'_' -00:14:03 v #15516 > > -00:14:03 v #15517 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:14:03 v #15518 > > │ ### infer' -00:14:03 v #15519 > > -00:14:03 v #15520 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:03 v #15521 > > nominal infer' t = $'_' -00:14:04 v #15522 > > -00:14:04 v #15523 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:14:04 v #15524 > > │ ### any -00:14:04 v #15525 > > -00:14:04 v #15526 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:04 v #15527 > > nominal any = $'obj' -00:14:04 v #15528 > > -00:14:04 v #15529 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:14:04 v #15530 > > │ ### null -00:14:04 v #15531 > > -00:14:04 v #15532 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:04 v #15533 > > inl null forall t. () : t = -00:14:04 v #15534 > > backend_switch { -00:14:04 v #15535 > > Fsharp = fun () => $'null |> unbox<`t>' : t -00:14:04 v #15536 > > Python = fun () => $'None' : t -00:14:04 v #15537 > > } -00:14:05 v #15538 > > -00:14:05 v #15539 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:14:05 v #15540 > > │ ### defaultof -00:14:05 v #15541 > > -00:14:05 v #15542 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:05 v #15543 > > inl defaultof forall t. () : t = -00:14:05 v #15544 > > $'Unchecked.defaultof<`t>' -00:14:05 v #15545 > > -00:14:05 v #15546 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:14:05 v #15547 > > │ ### choice2' -00:14:05 v #15548 > > -00:14:05 v #15549 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:05 v #15550 > > nominal choice2' a b = $'Choice<`a, `b>' -00:14:05 v #15551 > > -00:14:05 v #15552 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:14:05 v #15553 > > │ ### choice2_unbox -00:14:05 v #15554 > > -00:14:05 v #15555 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:05 v #15556 > > inl choice2_unbox forall t1 t2. (choice : choice2' t1 t2) : choice2 t1 t2 = -00:14:05 v #15557 > > run_target_args (fun () => choice) function -00:14:05 v #15558 > > | Fsharp _ => fun choice => -00:14:05 v #15559 > > inl c1of2 (x : t1) : _ _ t2 = C1of2 x -00:14:05 v #15560 > > inl c2of2 (x : t2) : _ t1 _ = C2of2 x -00:14:05 v #15561 > > inl c1of2 = join c1of2 -00:14:05 v #15562 > > inl c2of2 = join c2of2 -00:14:05 v #15563 > > $'match !choice with Choice1Of2 x -> !c1of2 x | Choice2Of2 x -> -00:14:05 v #15564 > > !c2of2 x' -00:14:05 v #15565 > > | _ => fun _ => null () -00:14:06 v #15566 > > -00:14:06 v #15567 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:14:06 v #15568 > > │ ## ref -00:14:06 v #15569 > > -00:14:06 v #15570 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:14:06 v #15571 > > │ ### ref -00:14:06 v #15572 > > -00:14:06 v #15573 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:06 v #15574 > > nominal ref t = $'`t ref' -00:14:06 v #15575 > > -00:14:06 v #15576 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:14:06 v #15577 > > │ ### new_ref -00:14:06 v #15578 > > -00:14:06 v #15579 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:06 v #15580 > > inl new_ref forall t. (x : t) : ref t = -00:14:06 v #15581 > > $'ref !x ' -00:14:07 v #15582 > > -00:14:07 v #15583 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:14:07 v #15584 > > │ ### ref_value -00:14:07 v #15585 > > -00:14:07 v #15586 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:07 v #15587 > > inl ref_value forall t. (x : ref t) : t = -00:14:07 v #15588 > > $'!x.Value' -00:14:07 v #15589 > > -00:14:07 v #15590 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:14:07 v #15591 > > │ ### ref_set_value -00:14:07 v #15592 > > -00:14:07 v #15593 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:07 v #15594 > > inl ref_set_value forall t. (value : t) (ref : ref t) : ref t = -00:14:07 v #15595 > > $'!ref.Value <- !value ' -00:14:07 v #15596 > > ref -00:14:08 v #15597 > > -00:14:08 v #15598 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:14:08 v #15599 > > │ ## convert -00:14:08 v #15600 > > -00:14:08 v #15601 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:14:08 v #15602 > > │ ### to -00:14:08 v #15603 > > -00:14:08 v #15604 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:08 v #15605 > > inl to forall t u. (x : t) : u = -00:14:08 v #15606 > > $'!x ' : u -00:14:08 v #15607 > > -00:14:08 v #15608 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:14:08 v #15609 > > │ ### convert -00:14:08 v #15610 > > -00:14:08 v #15611 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:08 v #15612 > > inl convert forall t u. (x : t) : u = -00:14:08 v #15613 > > backend_switch { -00:14:08 v #15614 > > Fsharp = fun () => $'!x |> `u ' : u -00:14:08 v #15615 > > Python = fun () => $'`u(!x)' : u -00:14:08 v #15616 > > } -00:14:09 v #15617 > > -00:14:09 v #15618 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:14:09 v #15619 > > │ ### unbox -00:14:09 v #15620 > > -00:14:09 v #15621 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:09 v #15622 > > inl unbox forall t u. (x : t) : u = -00:14:09 v #15623 > > backend_switch { -00:14:09 v #15624 > > Fsharp = fun () => $'!x |> unbox<`u>' : u -00:14:09 v #15625 > > Python = fun () => x |> to : u -00:14:09 v #15626 > > } -00:14:09 v #15627 > > -00:14:09 v #15628 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:14:09 v #15629 > > │ ### u8 -00:14:09 v #15630 > > -00:14:09 v #15631 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:09 v #15632 > > inl u8 forall t. (x : t) : u8 = -00:14:09 v #15633 > > backend_switch { -00:14:09 v #15634 > > Fsharp = fun () => x |> $'uint8' : u8 -00:14:09 v #15635 > > Python = fun () => x |> to : u8 -00:14:09 v #15636 > > } -00:14:09 v #15637 > > -00:14:09 v #15638 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:14:09 v #15639 > > │ ### u16 -00:14:09 v #15640 > > -00:14:09 v #15641 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:09 v #15642 > > inl u16 forall t. (x : t) : u16 = -00:14:09 v #15643 > > backend_switch { -00:14:09 v #15644 > > Fsharp = fun () => x |> $'uint16' : u16 -00:14:09 v #15645 > > Python = fun () => $'!x & 0xFFFF' : u16 -00:14:09 v #15646 > > } -00:14:10 v #15647 > > -00:14:10 v #15648 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:14:10 v #15649 > > │ ### u64 -00:14:10 v #15650 > > -00:14:10 v #15651 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:10 v #15652 > > inl u64 forall t. (x : t) : u64 = -00:14:10 v #15653 > > backend_switch { -00:14:10 v #15654 > > Fsharp = fun () => x |> $'uint64' : u64 -00:14:10 v #15655 > > Python = fun () => x |> to : u64 -00:14:10 v #15656 > > } -00:14:10 v #15657 > > -00:14:10 v #15658 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:14:10 v #15659 > > │ ### i32 -00:14:10 v #15660 > > -00:14:10 v #15661 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:10 v #15662 > > inl i32 forall t. (x : t) : i32 = -00:14:10 v #15663 > > backend_switch { -00:14:10 v #15664 > > Fsharp = fun () => x |> convert : i32 -00:14:10 v #15665 > > Python = fun () => x |> convert : i32 -00:14:10 v #15666 > > } -00:14:11 v #15667 > > -00:14:11 v #15668 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:14:11 v #15669 > > │ ### i64 -00:14:11 v #15670 > > -00:14:11 v #15671 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:11 v #15672 > > inl i64 forall t. (x : t) : i64 = -00:14:11 v #15673 > > backend_switch { -00:14:11 v #15674 > > Fsharp = fun () => x |> $'int64' : i64 -00:14:11 v #15675 > > Python = fun () => x |> to : i64 -00:14:11 v #15676 > > } -00:14:11 v #15677 > > -00:14:11 v #15678 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:14:11 v #15679 > > │ ### f32 -00:14:11 v #15680 > > -00:14:11 v #15681 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:11 v #15682 > > inl f32 forall t. (x : t) : f32 = -00:14:11 v #15683 > > backend_switch { -00:14:11 v #15684 > > Fsharp = fun () => x |> $'float32' : f32 -00:14:11 v #15685 > > Python = fun () => x |> to : f32 -00:14:11 v #15686 > > } -00:14:12 v #15687 > > -00:14:12 v #15688 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:14:12 v #15689 > > │ ### f64 -00:14:12 v #15690 > > -00:14:12 v #15691 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:12 v #15692 > > inl f64 forall t. (x : t) : f64 = -00:14:12 v #15693 > > backend_switch { -00:14:12 v #15694 > > Fsharp = fun () => x |> $'float' : f64 -00:14:12 v #15695 > > Python = fun () => x |> to : f64 -00:14:12 v #15696 > > } -00:14:12 v #15697 > > -00:14:12 v #15698 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:14:12 v #15699 > > │ ### unativeint -00:14:12 v #15700 > > -00:14:12 v #15701 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:12 v #15702 > > nominal unativeint = $'unativeint' -00:14:12 v #15703 > > -00:14:12 v #15704 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:14:12 v #15705 > > │ ### convert_i32 -00:14:12 v #15706 > > -00:14:12 v #15707 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:12 v #15708 > > inl convert_i32 forall t. (x : t) : i32 = -00:14:12 v #15709 > > backend_switch { -00:14:12 v #15710 > > Fsharp = fun () => x |> $'System.Convert.ToInt32' : i32 -00:14:12 v #15711 > > Python = fun () => x |> to : i32 -00:14:12 v #15712 > > } -00:14:13 v #15713 > > -00:14:13 v #15714 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:14:13 v #15715 > > │ ### convert_i32_base -00:14:13 v #15716 > > -00:14:13 v #15717 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:13 v #15718 > > inl convert_i32_base forall t. (base : i32) (x : t) : i32 = -00:14:13 v #15719 > > backend_switch { -00:14:13 v #15720 > > Fsharp = fun () => $'System.Convert.ToInt32 (!x, !base)' : i32 -00:14:13 v #15721 > > Python = fun () => $'int (!x, !base)' : i32 -00:14:13 v #15722 > > } -00:14:13 v #15723 > > -00:14:13 v #15724 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:14:13 v #15725 > > │ ### (:>) -00:14:13 v #15726 > > -00:14:13 v #15727 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:13 v #15728 > > prototype (~:>) r : forall t. t -> r -00:14:14 v #15729 > > -00:14:14 v #15730 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:14:14 v #15731 > > │ ### to_any -00:14:14 v #15732 > > -00:14:14 v #15733 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:14 v #15734 > > inl to_any forall t. (obj : t) : any = -00:14:14 v #15735 > > obj |> to -00:14:15 v #15736 > > -00:14:15 v #15737 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:14:15 v #15738 > > │ ### (~:>) any -00:14:15 v #15739 > > -00:14:15 v #15740 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:15 v #15741 > > instance (~:>) any = to_any -00:14:15 v #15742 > > -00:14:15 v #15743 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:14:15 v #15744 > > │ ## error -00:14:15 v #15745 > > -00:14:15 v #15746 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:14:15 v #15747 > > │ ### exn -00:14:15 v #15748 > > -00:14:15 v #15749 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:15 v #15750 > > nominal exn = $"backend_switch `({ Fsharp : $'exn'; Python : $'BaseException' -00:14:15 v #15751 > > })" -00:14:15 v #15752 > > -00:14:15 v #15753 > > inl exn x = -00:14:15 v #15754 > > x |> $'`exn ' -00:14:15 v #15755 > > -00:14:15 v #15756 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:14:15 v #15757 > > │ ### try -00:14:15 v #15758 > > -00:14:15 v #15759 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:15 v #15760 > > inl try forall t. (fn : () -> t) (ex_fn : exn -> option t) : option t = -00:14:15 v #15761 > > inl some x : option t = Some x -00:14:15 v #15762 > > inl some = dyn some -00:14:15 v #15763 > > inl fn = dyn fn -00:14:15 v #15764 > > inl ex_fn = dyn ex_fn -00:14:15 v #15765 > > backend_switch { -00:14:15 v #15766 > > Fsharp = fun () => -00:14:15 v #15767 > > $'let result = ref !(None : option t)' -00:14:15 v #15768 > > $'try' -00:14:15 v #15769 > > $' result.Value <- !fn () |> !some ' -00:14:15 v #15770 > > $'with ex ->' -00:14:15 v #15771 > > $' result.Value <- !ex_fn ex ' -00:14:15 v #15772 > > $'result.Value' : option t -00:14:15 v #15773 > > Python = fun () => -00:14:15 v #15774 > > $'result = !(None : option t)' -00:14:15 v #15775 > > inl fn = dyn fn -00:14:15 v #15776 > > inl ex_fn = dyn ex_fn -00:14:15 v #15777 > > $'try:' -00:14:15 v #15778 > > $' result = !some(!fn())\n \'\'\'' -00:14:15 v #15779 > > $'\'\'\'' -00:14:15 v #15780 > > $'except Exception as e:' -00:14:15 v #15781 > > $' result = !ex_fn(e)' -00:14:15 v #15782 > > $'result' : option t -00:14:15 v #15783 > > } -00:14:16 v #15784 > > -00:14:16 v #15785 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:16 v #15786 > > //// test -00:14:16 v #15787 > > ///! fsharp -00:14:16 v #15788 > > ///! cuda -00:14:16 v #15789 > > ///! rust -00:14:16 v #15790 > > ///! typescript -00:14:16 v #15791 > > ///! python -00:14:16 v #15792 > > -00:14:16 v #15793 > > try -00:14:16 v #15794 > > fun () => a ;[[ 0i32 ]] |> am'.index 1i32 |> sm'.format -00:14:16 v #15795 > > (fun ex => $'!ex ' |> sm'.format_exception |> Some) -00:14:16 v #15796 > > |> optionm.value -00:14:16 v #15797 > > |> _assert_eq (run_target function -00:14:16 v #15798 > > | Fsharp => fun () => join "System.IndexOutOfRangeException: Index was -00:14:16 v #15799 > > outside the bounds of the array." -00:14:16 v #15800 > > | Cuda => fun () => "index 1 is out of bounds for axis 0 with size 1" -00:14:16 v #15801 > > | Rust => fun () => "Exception { message: \"index out of bounds: the len is -00:14:16 v #15802 > > 1 but the index is 1\" }" -00:14:16 v #15803 > > | TypeScript => fun () => "Error: Index was outside the bounds of the -00:14:16 v #15804 > > array.\\nParameter name: index" -00:14:16 v #15805 > > | Python => fun () => "array index out of range" -00:14:16 v #15806 > > ) -00:14:21 v #15807 > > -00:14:21 v #15808 > > ── [ 5.18s - return value ] ──────────────────────────────────────────────────── -00:14:21 v #15809 > > │ .py output (Cuda): -00:14:21 v #15810 > > │ __assert_eq / actual: index 1 is out of bounds for axis 0 -00:14:21 v #15811 > > with size 1 / expected: index 1 is out of bounds for axis 0 with size 1 -00:14:21 v #15812 > > │ -00:14:21 v #15813 > > │ .rs output: -00:14:21 v #15814 > > │ __assert_eq / actual: "Exception { message: "index out of -00:14:21 v #15815 > > bounds: the len is 1 but the index is 1" }" / expected: "Exception { message: -00:14:21 v #15816 > > "index out of bounds: the len is 1 but the index is 1" }" -00:14:21 v #15817 > > │ -00:14:21 v #15818 > > │ .ts output: -00:14:21 v #15819 > > │ __assert_eq / actual: Error: Index was outside the bounds of -00:14:21 v #15820 > > the array.\nParameter name: index / expected: Error: Index was outside the -00:14:21 v #15821 > > bounds of the array.\nParameter name: index -00:14:21 v #15822 > > │ -00:14:21 v #15823 > > │ .py output: -00:14:21 v #15824 > > │ __assert_eq / actual: array index out of range / expected: -00:14:21 v #15825 > > array index out of range -00:14:21 v #15826 > > │ -00:14:21 v #15827 > > │ -00:14:21 v #15828 > > -00:14:21 v #15829 > > ── [ 5.18s - stdout ] ────────────────────────────────────────────────────────── -00:14:21 v #15830 > > │ .fsx output: -00:14:21 v #15831 > > │ __assert_eq / actual: "System.IndexOutOfRangeException: Index -00:14:21 v #15832 > > was outside the bounds of the array." / expected: -00:14:21 v #15833 > > "System.IndexOutOfRangeException: Index was outside the bounds of the array." -00:14:21 v #15834 > > │ -00:14:21 v #15835 > > -00:14:21 v #15836 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:14:21 v #15837 > > │ ### try_unit -00:14:21 v #15838 > > -00:14:21 v #15839 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:21 v #15840 > > inl try_unit forall t. (fn : () -> ()) (ex_fn : (() -> exn) -> ()) : t = -00:14:21 v #15841 > > backend_switch { -00:14:21 v #15842 > > Fsharp = fun () => $'try' : () -00:14:21 v #15843 > > Python = fun () => $'try:' : () -00:14:21 v #15844 > > } -00:14:21 v #15845 > > fn |> indent -00:14:21 v #15846 > > backend_switch { -00:14:21 v #15847 > > Fsharp = fun () => $'with ex ->' : () -00:14:21 v #15848 > > Python = fun () => $'except Exception as ex:' : () -00:14:21 v #15849 > > } -00:14:21 v #15850 > > fun () => -00:14:21 v #15851 > > inl ex = $'ex' -00:14:21 v #15852 > > inl ex () = -00:14:21 v #15853 > > ex -00:14:21 v #15854 > > ex_fn ex -00:14:21 v #15855 > > |> indent -00:14:21 v #15856 > > backend_switch { -00:14:21 v #15857 > > Fsharp = fun () => -00:14:21 v #15858 > > $'(* try_unit' -00:14:21 v #15859 > > $'try_unit *)' : t -00:14:21 v #15860 > > Python = fun () => $'' : t -00:14:21 v #15861 > > } -00:14:22 v #15862 > > -00:14:22 v #15863 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:14:22 v #15864 > > │ ### try_unit' -00:14:22 v #15865 > > -00:14:22 v #15866 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:22 v #15867 > > inl try_unit' forall t. (ex_fn : (() -> exn) -> ()) (fn : () -> ()) : t = -00:14:22 v #15868 > > try_unit fn ex_fn -00:14:22 v #15869 > > -00:14:22 v #15870 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:14:22 v #15871 > > │ ### try_finally -00:14:22 v #15872 > > -00:14:22 v #15873 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:22 v #15874 > > inl try_finally forall t. (fn : () -> ()) (finally : () -> ()) : t = -00:14:22 v #15875 > > backend_switch { -00:14:22 v #15876 > > Fsharp = fun () => $'try' : () -00:14:22 v #15877 > > Python = fun () => $'try:' : () -00:14:22 v #15878 > > } -00:14:22 v #15879 > > fn |> indent -00:14:22 v #15880 > > backend_switch { -00:14:22 v #15881 > > Fsharp = fun () => $'finally' : () -00:14:22 v #15882 > > Python = fun () => $'finally:' : () -00:14:22 v #15883 > > } -00:14:22 v #15884 > > finally |> indent -00:14:22 v #15885 > > backend_switch { -00:14:22 v #15886 > > Fsharp = fun () => -00:14:22 v #15887 > > $'(* try_finally' -00:14:22 v #15888 > > $'try_finally *)' -00:14:22 v #15889 > > () -00:14:22 v #15890 > > Python = fun () => () -00:14:22 v #15891 > > } -00:14:22 v #15892 > 00:01:32 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 85413 } -00:14:22 v #15893 > 00:01:32 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/lib/spiral/base.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/lib/spiral/base.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:14:24 v #15894 > 00:01:33 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/lib/spiral/base.dib.ipynb to html -00:14:24 v #15895 > 00:01:33 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. -00:14:24 v #15896 > 00:01:33 v #7 ! validate(nb) -00:14:25 v #15897 > 00:01:34 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 -00:14:25 v #15898 > 00:01:34 v #9 ! return _pygments_highlight( -00:14:26 v #15899 > 00:01:35 v #10 ! [NbConvertApp] Writing 479846 bytes to c:\home\git\polyglot\lib\spiral\base.dib.html -00:14:26 v #15900 > 00:01:35 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 850 } -00:14:26 v #15901 > 00:01:35 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 850 } -00:14:26 v #15902 > 00:01:35 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/base.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/base.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:14:26 v #15903 > 00:01:36 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } -00:14:26 v #15904 > 00:01:36 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } -00:14:27 v #15905 > 00:01:36 d #16 spiral.run / dib / { exit_code = 0; result_length = 86322 } -00:14:27 d #15906 runtime.execute_with_options_async / { exit_code = 0; output_length = 93269 } -00:14:26 d #19 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path base.dib --retries 3 -00:14:27 d #15907 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path date_time.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path date_time.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } -00:14:27 v #15908 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "date_time.dib", "--retries", "3"])) } -00:14:27 v #15909 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/lib/spiral/date_time.dib", "--output-path", "c:/home/git/polyglot/lib/spiral/date_time.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/lib/spiral/date_time.dib" --output-path "c:/home/git/polyglot/lib/spiral/date_time.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } -00:14:28 v #15910 > > -00:14:28 v #15911 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:14:28 v #15912 > > │ # date_time -00:14:32 v #15913 > > -00:14:32 v #15914 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:32 v #15915 > > open rust.rust_operators -00:14:32 v #15916 > > open sm'_operators -00:14:33 v #15917 > > -00:14:33 v #15918 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:33 v #15919 > > //// test -00:14:33 v #15920 > > -00:14:33 v #15921 > > open testing -00:14:34 v #15922 > > -00:14:34 v #15923 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:14:34 v #15924 > > │ ## date_time -00:14:34 v #15925 > > -00:14:34 v #15926 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:14:34 v #15927 > > │ ### timestamp -00:14:34 v #15928 > > -00:14:34 v #15929 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:34 v #15930 > > nominal timestamp_python = -00:14:34 v #15931 > > `( -00:14:34 v #15932 > > backend_switch `(()) `({}) { -00:14:34 v #15933 > > Python = (fun () => global "import datetime") : () -> () -00:14:34 v #15934 > > } -00:14:34 v #15935 > > $'' : i64 -00:14:34 v #15936 > > ) -00:14:34 v #15937 > > type timestamp_switch = -00:14:34 v #15938 > > { -00:14:34 v #15939 > > Fsharp : i64 -00:14:34 v #15940 > > Python : timestamp_python -00:14:34 v #15941 > > } -00:14:34 v #15942 > > nominal timestamp = $'backend_switch `(timestamp_switch)' -00:14:34 v #15943 > > -00:14:34 v #15944 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:14:34 v #15945 > > │ ### timestamp_guid -00:14:34 v #15946 > > -00:14:34 v #15947 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:34 v #15948 > > type timestamp_guid = guid.guid -00:14:35 v #15949 > > -00:14:35 v #15950 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:14:35 v #15951 > > │ ### date_time_guid -00:14:35 v #15952 > > -00:14:35 v #15953 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:35 v #15954 > > type date_time_guid = guid.guid -00:14:35 v #15955 > > -00:14:35 v #15956 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:14:35 v #15957 > > │ ### test_guid -00:14:35 v #15958 > > -00:14:35 v #15959 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:35 v #15960 > > //// test -00:14:35 v #15961 > > -00:14:35 v #15962 > > inl test_guid () = -00:14:35 v #15963 > > "6543210F-EDCB-A987-6543-210FEDCBA987" |> guid.new_guid -00:14:36 v #15964 > > -00:14:36 v #15965 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:14:36 v #15966 > > │ ## fsharp -00:14:36 v #15967 > > -00:14:36 v #15968 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:14:36 v #15969 > > │ ### date_time -00:14:36 v #15970 > > -00:14:36 v #15971 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:36 v #15972 > > nominal date_time_python = -00:14:36 v #15973 > > `( -00:14:36 v #15974 > > backend_switch `(()) `({}) { -00:14:36 v #15975 > > Python = (fun () => global "import datetime") : () -> () -00:14:36 v #15976 > > } -00:14:36 v #15977 > > $'' : $'datetime.datetime' -00:14:36 v #15978 > > ) -00:14:36 v #15979 > > type date_time_switch = -00:14:36 v #15980 > > { -00:14:36 v #15981 > > Fsharp : $'System.DateTime' -00:14:36 v #15982 > > Python : date_time_python -00:14:36 v #15983 > > } -00:14:36 v #15984 > > nominal date_time = $'backend_switch `(date_time_switch)' -00:14:36 v #15985 > > -00:14:36 v #15986 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:14:36 v #15987 > > │ ### year -00:14:36 v #15988 > > -00:14:36 v #15989 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:36 v #15990 > > inl year (date_time : date_time) : i32 = -00:14:36 v #15991 > > backend_switch { -00:14:36 v #15992 > > Fsharp = fun () => date_time |> $'_.Year' : i32 -00:14:36 v #15993 > > Python = fun () => $'!date_time.year' : i32 -00:14:36 v #15994 > > } -00:14:36 v #15995 > > -00:14:36 v #15996 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:14:36 v #15997 > > │ ### format -00:14:36 v #15998 > > -00:14:36 v #15999 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:36 v #16000 > > inl format (format : string) (date_time : date_time) : string = -00:14:36 v #16001 > > backend_switch { -00:14:36 v #16002 > > Fsharp = fun () => -00:14:36 v #16003 > > inl format = -00:14:36 v #16004 > > if format = "" -00:14:36 v #16005 > > then "M-d-y hh:mm:ss tt" -00:14:36 v #16006 > > else format -00:14:36 v #16007 > > $'!date_time.ToString' format : string -00:14:36 v #16008 > > Python = fun () => -00:14:36 v #16009 > > inl date_time = join date_time -00:14:36 v #16010 > > if format <> "" -00:14:36 v #16011 > > then $'!date_time.strftime(!format)' : string -00:14:36 v #16012 > > elif year date_time < 1000 -00:14:36 v #16013 > > then $'\'{dt.month}-{dt.day}-{dt.year} {dt:%I}:{dt:%M}:{dt:%S} -00:14:36 v #16014 > > {dt:%p}\'.format(dt=!date_time)' : string -00:14:36 v #16015 > > else $'\'{dt.month}-{dt.day}-{dt:%y} {dt:%I}:{dt:%M}:{dt:%S} -00:14:36 v #16016 > > {dt:%p}\'.format(dt=!date_time)' : string -00:14:36 v #16017 > > } -00:14:37 v #16018 > > -00:14:37 v #16019 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:14:37 v #16020 > > │ ### format_iso8601 -00:14:37 v #16021 > > -00:14:37 v #16022 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:37 v #16023 > > inl format_iso8601 (date_time : date_time) : string = -00:14:37 v #16024 > > backend_switch { -00:14:37 v #16025 > > Fsharp = fun () => date_time |> format "yyyy-MM-ddTHH-mm-ss.fff" : -00:14:37 v #16026 > > string -00:14:37 v #16027 > > Python = fun () => date_time |> format "%Y-%m-%dT%H-%M-%S.%f" : string -00:14:37 v #16028 > > } -00:14:37 v #16029 > > -00:14:37 v #16030 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:14:37 v #16031 > > │ ### min_value -00:14:37 v #16032 > > -00:14:37 v #16033 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:37 v #16034 > > inl min_value () : date_time = -00:14:37 v #16035 > > backend_switch { -00:14:37 v #16036 > > Fsharp = fun () => $'System.DateTime.MinValue' : date_time -00:14:37 v #16037 > > Python = fun () => $'datetime.datetime.min' : date_time -00:14:37 v #16038 > > } -00:14:38 v #16039 > > -00:14:38 v #16040 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:38 v #16041 > > //// test -00:14:38 v #16042 > > ///! fsharp -00:14:38 v #16043 > > ///! cuda -00:14:38 v #16044 > > -00:14:38 v #16045 > > min_value () -00:14:38 v #16046 > > |> format "" -00:14:38 v #16047 > > |> _assert_eq "1-1-1 12:00:00 AM" -00:14:40 v #16048 > > -00:14:40 v #16049 > > ── [ 2.29s - return value ] ──────────────────────────────────────────────────── -00:14:40 v #16050 > > │ .py output (Cuda): -00:14:40 v #16051 > > │ __assert_eq / actual: 1-1-1 12:00:00 AM / expected: 1-1-1 -00:14:40 v #16052 > > 12:00:00 AM -00:14:40 v #16053 > > │ -00:14:40 v #16054 > > │ -00:14:40 v #16055 > > -00:14:40 v #16056 > > ── [ 2.30s - stdout ] ────────────────────────────────────────────────────────── -00:14:40 v #16057 > > │ .fsx output: -00:14:40 v #16058 > > │ __assert_eq / actual: "1-1-1 12:00:00 AM" / expected: "1-1-1 -00:14:40 v #16059 > > 12:00:00 AM" -00:14:40 v #16060 > > │ -00:14:40 v #16061 > > -00:14:40 v #16062 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:14:40 v #16063 > > │ ### max_value -00:14:40 v #16064 > > -00:14:40 v #16065 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:40 v #16066 > > inl max_value () : date_time = -00:14:40 v #16067 > > backend_switch { -00:14:40 v #16068 > > Fsharp = fun () => $'System.DateTime.MaxValue' : date_time -00:14:40 v #16069 > > Python = fun () => $'datetime.datetime.max' : date_time -00:14:40 v #16070 > > } -00:14:40 v #16071 > > -00:14:40 v #16072 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:40 v #16073 > > //// test -00:14:40 v #16074 > > ///! fsharp -00:14:40 v #16075 > > ///! cuda -00:14:40 v #16076 > > -00:14:40 v #16077 > > max_value () -00:14:40 v #16078 > > |> format "" -00:14:40 v #16079 > > |> _assert_eq "12-31-99 11:59:59 PM" -00:14:42 v #16080 > > -00:14:42 v #16081 > > ── [ 1.22s - return value ] ──────────────────────────────────────────────────── -00:14:42 v #16082 > > │ .py output (Cuda): -00:14:42 v #16083 > > │ __assert_eq / actual: 12-31-99 11:59:59 PM / expected: -00:14:42 v #16084 > > 12-31-99 11:59:59 PM -00:14:42 v #16085 > > │ -00:14:42 v #16086 > > │ -00:14:42 v #16087 > > -00:14:42 v #16088 > > ── [ 1.22s - stdout ] ────────────────────────────────────────────────────────── -00:14:42 v #16089 > > │ .fsx output: -00:14:42 v #16090 > > │ __assert_eq / actual: "12-31-99 11:59:59 PM" / expected: -00:14:42 v #16091 > > "12-31-99 11:59:59 PM" -00:14:42 v #16092 > > │ -00:14:42 v #16093 > > -00:14:42 v #16094 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:14:42 v #16095 > > │ ### unix_epoch -00:14:42 v #16096 > > -00:14:42 v #16097 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:42 v #16098 > > inl unix_epoch () : date_time = -00:14:42 v #16099 > > backend_switch { -00:14:42 v #16100 > > Fsharp = fun () => $'System.DateTime.UnixEpoch' : date_time -00:14:42 v #16101 > > Python = fun () => $'datetime.datetime(1970, 1, 1)' : date_time -00:14:42 v #16102 > > } -00:14:42 v #16103 > > -00:14:42 v #16104 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:42 v #16105 > > //// test -00:14:42 v #16106 > > ///! fsharp -00:14:42 v #16107 > > ///! cuda -00:14:42 v #16108 > > -00:14:42 v #16109 > > unix_epoch () -00:14:42 v #16110 > > |> format "" -00:14:42 v #16111 > > |> _assert_eq "1-1-70 12:00:00 AM" -00:14:43 v #16112 > > -00:14:43 v #16113 > > ── [ 1.16s - return value ] ──────────────────────────────────────────────────── -00:14:43 v #16114 > > │ .py output (Cuda): -00:14:43 v #16115 > > │ __assert_eq / actual: 1-1-70 12:00:00 AM / expected: 1-1-70 -00:14:43 v #16116 > > 12:00:00 AM -00:14:43 v #16117 > > │ -00:14:43 v #16118 > > │ -00:14:43 v #16119 > > -00:14:43 v #16120 > > ── [ 1.16s - stdout ] ────────────────────────────────────────────────────────── -00:14:43 v #16121 > > │ .fsx output: -00:14:43 v #16122 > > │ __assert_eq / actual: "1-1-70 12:00:00 AM" / expected: -00:14:43 v #16123 > > "1-1-70 12:00:00 AM" -00:14:43 v #16124 > > │ -00:14:43 v #16125 > > -00:14:43 v #16126 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:14:43 v #16127 > > │ ### date_time_milliseconds -00:14:43 v #16128 > > -00:14:43 v #16129 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:43 v #16130 > > inl date_time_milliseconds -00:14:43 v #16131 > > (year : int) (month : int) (day : int) (hour : int) (minute : int) (second : -00:14:43 v #16132 > > int) (millisecond : int) -00:14:43 v #16133 > > : date_time -00:14:43 v #16134 > > = -00:14:43 v #16135 > > backend_switch { -00:14:43 v #16136 > > Fsharp = fun () => -00:14:43 v #16137 > > $'System.DateTime (!year, !month, !day, !hour, !minute, !second, -00:14:43 v #16138 > > !millisecond)' : date_time -00:14:43 v #16139 > > Python = fun () => -00:14:43 v #16140 > > $'datetime.datetime(!year, !month, !day, !hour, !minute, !second, -00:14:43 v #16141 > > !millisecond)' : date_time -00:14:43 v #16142 > > } -00:14:44 v #16143 > > -00:14:44 v #16144 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:44 v #16145 > > //// test -00:14:44 v #16146 > > ///! fsharp -00:14:44 v #16147 > > ///! cuda -00:14:44 v #16148 > > -00:14:44 v #16149 > > date_time_milliseconds 1970 1 1 0 0 0 0 -00:14:44 v #16150 > > |> format "" -00:14:44 v #16151 > > |> _assert_eq "1-1-70 12:00:00 AM" -00:14:45 v #16152 > > -00:14:45 v #16153 > > ── [ 1.17s - return value ] ──────────────────────────────────────────────────── -00:14:45 v #16154 > > │ .py output (Cuda): -00:14:45 v #16155 > > │ __assert_eq / actual: 1-1-70 12:00:00 AM / expected: 1-1-70 -00:14:45 v #16156 > > 12:00:00 AM -00:14:45 v #16157 > > │ -00:14:45 v #16158 > > │ -00:14:45 v #16159 > > -00:14:45 v #16160 > > ── [ 1.18s - stdout ] ────────────────────────────────────────────────────────── -00:14:45 v #16161 > > │ .fsx output: -00:14:45 v #16162 > > │ __assert_eq / actual: "1-1-70 12:00:00 AM" / expected: -00:14:45 v #16163 > > "1-1-70 12:00:00 AM" -00:14:45 v #16164 > > │ -00:14:45 v #16165 > > -00:14:45 v #16166 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:14:45 v #16167 > > │ ### date_time_utc -00:14:45 v #16168 > > -00:14:45 v #16169 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:45 v #16170 > > inl date_time_utc -00:14:45 v #16171 > > (year : int) (month : int) (day : int) (hour : int) (minute : int) (second : -00:14:45 v #16172 > > int) -00:14:45 v #16173 > > : date_time -00:14:45 v #16174 > > = -00:14:45 v #16175 > > backend_switch { -00:14:45 v #16176 > > Fsharp = fun () => -00:14:45 v #16177 > > $'System.DateTime (!year, !month, !day, !hour, !minute, !second, -00:14:45 v #16178 > > System.DateTimeKind.Utc)' : date_time -00:14:45 v #16179 > > Python = fun () => -00:14:45 v #16180 > > $'datetime.datetime(!year, !month, !day, !hour, !minute, !second, -00:14:45 v #16181 > > tzinfo=datetime.timezone.utc)' : date_time -00:14:45 v #16182 > > } -00:14:45 v #16183 > > -00:14:45 v #16184 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:45 v #16185 > > //// test -00:14:45 v #16186 > > ///! fsharp -00:14:45 v #16187 > > ///! cuda -00:14:45 v #16188 > > -00:14:45 v #16189 > > date_time_utc 1970 1 1 0 0 0 -00:14:45 v #16190 > > |> format "" -00:14:45 v #16191 > > |> _assert_eq "1-1-70 12:00:00 AM" -00:14:47 v #16192 > > -00:14:47 v #16193 > > ── [ 1.24s - return value ] ──────────────────────────────────────────────────── -00:14:47 v #16194 > > │ .py output (Cuda): -00:14:47 v #16195 > > │ __assert_eq / actual: 1-1-70 12:00:00 AM / expected: 1-1-70 -00:14:47 v #16196 > > 12:00:00 AM -00:14:47 v #16197 > > │ -00:14:47 v #16198 > > │ -00:14:47 v #16199 > > -00:14:47 v #16200 > > ── [ 1.25s - stdout ] ────────────────────────────────────────────────────────── -00:14:47 v #16201 > > │ .fsx output: -00:14:47 v #16202 > > │ __assert_eq / actual: "1-1-70 12:00:00 AM" / expected: -00:14:47 v #16203 > > "1-1-70 12:00:00 AM" -00:14:47 v #16204 > > │ -00:14:47 v #16205 > > -00:14:47 v #16206 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:14:47 v #16207 > > │ ### date_time_kind -00:14:47 v #16208 > > -00:14:47 v #16209 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:47 v #16210 > > union date_time_kind = -00:14:47 v #16211 > > | Unspecified -00:14:47 v #16212 > > | Utc -00:14:47 v #16213 > > | Local -00:14:47 v #16214 > > -00:14:47 v #16215 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:14:47 v #16216 > > │ ### specify_date_kind -00:14:47 v #16217 > > -00:14:47 v #16218 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:47 v #16219 > > inl specify_date_kind (kind : date_time_kind) (date_time : date_time) : -00:14:47 v #16220 > > date_time = -00:14:47 v #16221 > > backend_switch { -00:14:47 v #16222 > > Fsharp = fun () => -00:14:47 v #16223 > > inl kind : $'System.DateTimeKind' = -00:14:47 v #16224 > > match kind with -00:14:47 v #16225 > > | Unspecified => $'System.DateTimeKind.Unspecified' -00:14:47 v #16226 > > | Utc => $'System.DateTimeKind.Utc' -00:14:47 v #16227 > > | Local => $'System.DateTimeKind.Local' -00:14:47 v #16228 > > $'System.DateTime.SpecifyKind (!date_time, !kind)' : date_time -00:14:47 v #16229 > > Python = fun () => $'!date_time.replace(tzinfo=None)' : date_time -00:14:47 v #16230 > > } -00:14:47 v #16231 > > -00:14:47 v #16232 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:14:47 v #16233 > > │ ### to_universal_time -00:14:47 v #16234 > > -00:14:47 v #16235 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:47 v #16236 > > inl to_universal_time (date_time : date_time) : date_time = -00:14:47 v #16237 > > backend_switch { -00:14:47 v #16238 > > Fsharp = fun () => date_time |> $'_.ToUniversalTime()' : date_time -00:14:47 v #16239 > > Python = fun () => $'!date_time.replace(tzinfo=datetime.timezone.utc)' : -00:14:47 v #16240 > > date_time -00:14:47 v #16241 > > } -00:14:48 v #16242 > > -00:14:48 v #16243 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:48 v #16244 > > //// test -00:14:48 v #16245 > > ///! fsharp -00:14:48 v #16246 > > ///! cuda -00:14:48 v #16247 > > -00:14:48 v #16248 > > date_time_milliseconds 1970 1 1 0 0 0 0 -00:14:48 v #16249 > > |> specify_date_kind Utc -00:14:48 v #16250 > > |> to_universal_time -00:14:48 v #16251 > > |> format "" -00:14:48 v #16252 > > |> _assert_eq "1-1-70 12:00:00 AM" -00:14:49 v #16253 > > -00:14:49 v #16254 > > ── [ 1.17s - return value ] ──────────────────────────────────────────────────── -00:14:49 v #16255 > > │ .py output (Cuda): -00:14:49 v #16256 > > │ __assert_eq / actual: 1-1-70 12:00:00 AM / expected: 1-1-70 -00:14:49 v #16257 > > 12:00:00 AM -00:14:49 v #16258 > > │ -00:14:49 v #16259 > > │ -00:14:49 v #16260 > > -00:14:49 v #16261 > > ── [ 1.17s - stdout ] ────────────────────────────────────────────────────────── -00:14:49 v #16262 > > │ .fsx output: -00:14:49 v #16263 > > │ __assert_eq / actual: "1-1-70 12:00:00 AM" / expected: -00:14:49 v #16264 > > "1-1-70 12:00:00 AM" -00:14:49 v #16265 > > │ -00:14:49 v #16266 > > -00:14:49 v #16267 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:49 v #16268 > > //// test -00:14:49 v #16269 > > ///! fsharp -00:14:49 v #16270 > > ///! cuda -00:14:49 v #16271 > > -00:14:49 v #16272 > > date_time_utc 1970 1 1 0 0 0 -00:14:49 v #16273 > > |> specify_date_kind Utc -00:14:49 v #16274 > > |> format "" -00:14:49 v #16275 > > |> _assert_eq "1-1-70 12:00:00 AM" -00:14:50 v #16276 > > -00:14:50 v #16277 > > ── [ 1.19s - return value ] ──────────────────────────────────────────────────── -00:14:50 v #16278 > > │ .py output (Cuda): -00:14:50 v #16279 > > │ __assert_eq / actual: 1-1-70 12:00:00 AM / expected: 1-1-70 -00:14:50 v #16280 > > 12:00:00 AM -00:14:50 v #16281 > > │ -00:14:50 v #16282 > > │ -00:14:50 v #16283 > > -00:14:50 v #16284 > > ── [ 1.19s - stdout ] ────────────────────────────────────────────────────────── -00:14:50 v #16285 > > │ .fsx output: -00:14:50 v #16286 > > │ __assert_eq / actual: "1-1-70 12:00:00 AM" / expected: -00:14:50 v #16287 > > "1-1-70 12:00:00 AM" -00:14:50 v #16288 > > │ -00:14:50 v #16289 > > -00:14:50 v #16290 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:50 v #16291 > > //// test -00:14:50 v #16292 > > ///! fsharp -00:14:50 v #16293 > > ///! cuda -00:14:50 v #16294 > > -00:14:50 v #16295 > > date_time_utc 1970 1 1 0 0 0 -00:14:50 v #16296 > > |> specify_date_kind Local -00:14:50 v #16297 > > |> format "" -00:14:50 v #16298 > > |> _assert_eq "1-1-70 12:00:00 AM" -00:14:51 v #16299 > > -00:14:51 v #16300 > > ── [ 1.20s - return value ] ──────────────────────────────────────────────────── -00:14:51 v #16301 > > │ .py output (Cuda): -00:14:51 v #16302 > > │ __assert_eq / actual: 1-1-70 12:00:00 AM / expected: 1-1-70 -00:14:51 v #16303 > > 12:00:00 AM -00:14:51 v #16304 > > │ -00:14:51 v #16305 > > │ -00:14:51 v #16306 > > -00:14:51 v #16307 > > ── [ 1.20s - stdout ] ────────────────────────────────────────────────────────── -00:14:51 v #16308 > > │ .fsx output: -00:14:51 v #16309 > > │ __assert_eq / actual: "1-1-70 12:00:00 AM" / expected: -00:14:51 v #16310 > > "1-1-70 12:00:00 AM" -00:14:51 v #16311 > > │ -00:14:51 v #16312 > > -00:14:51 v #16313 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:51 v #16314 > > //// test -00:14:51 v #16315 > > ///! fsharp -00:14:51 v #16316 > > ///! cuda -00:14:51 v #16317 > > -00:14:51 v #16318 > > date_time_utc 1970 1 1 0 0 0 -00:14:51 v #16319 > > |> specify_date_kind Unspecified -00:14:51 v #16320 > > |> format "" -00:14:51 v #16321 > > |> _assert_eq "1-1-70 12:00:00 AM" -00:14:53 v #16322 > > -00:14:53 v #16323 > > ── [ 1.16s - return value ] ──────────────────────────────────────────────────── -00:14:53 v #16324 > > │ .py output (Cuda): -00:14:53 v #16325 > > │ __assert_eq / actual: 1-1-70 12:00:00 AM / expected: 1-1-70 -00:14:53 v #16326 > > 12:00:00 AM -00:14:53 v #16327 > > │ -00:14:53 v #16328 > > │ -00:14:53 v #16329 > > -00:14:53 v #16330 > > ── [ 1.16s - stdout ] ────────────────────────────────────────────────────────── -00:14:53 v #16331 > > │ .fsx output: -00:14:53 v #16332 > > │ __assert_eq / actual: "1-1-70 12:00:00 AM" / expected: -00:14:53 v #16333 > > "1-1-70 12:00:00 AM" -00:14:53 v #16334 > > │ -00:14:53 v #16335 > > -00:14:53 v #16336 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:14:53 v #16337 > > │ ### time_span -00:14:53 v #16338 > > -00:14:53 v #16339 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:53 v #16340 > > nominal time_span_python = -00:14:53 v #16341 > > `( -00:14:53 v #16342 > > backend_switch `(()) `({}) { -00:14:53 v #16343 > > Python = (fun () => global "import datetime") : () -> () -00:14:53 v #16344 > > } -00:14:53 v #16345 > > $'' : $'datetime.timedelta' -00:14:53 v #16346 > > ) -00:14:53 v #16347 > > type time_span_switch = -00:14:53 v #16348 > > { -00:14:53 v #16349 > > Fsharp : $'System.TimeSpan' -00:14:53 v #16350 > > Python : time_span_python -00:14:53 v #16351 > > } -00:14:53 v #16352 > > nominal time_span = $'backend_switch `(time_span_switch)' -00:14:53 v #16353 > > -00:14:53 v #16354 > > inl time_span x : time_span = -00:14:53 v #16355 > > backend_switch { -00:14:53 v #16356 > > Fsharp = fun () => x |> convert : time_span -00:14:53 v #16357 > > Python = fun () => $'datetime.timedelta(!x)' : time_span -00:14:53 v #16358 > > } -00:14:53 v #16359 > > -00:14:53 v #16360 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:14:53 v #16361 > > │ ### new_time_span -00:14:53 v #16362 > > -00:14:53 v #16363 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:53 v #16364 > > inl new_time_span (a : date_time) (b : date_time) : time_span = -00:14:53 v #16365 > > $'!b - !a ' -00:14:53 v #16366 > > -00:14:53 v #16367 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:14:53 v #16368 > > │ ### total_seconds -00:14:53 v #16369 > > -00:14:53 v #16370 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:53 v #16371 > > inl total_seconds (time_span : time_span) : f64 = -00:14:53 v #16372 > > backend_switch { -00:14:53 v #16373 > > Fsharp = fun () => time_span |> $'_.TotalSeconds' : f64 -00:14:53 v #16374 > > Python = fun () => $'!time_span.total_seconds()' : f64 -00:14:53 v #16375 > > } -00:14:54 v #16376 > > -00:14:54 v #16377 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:14:54 v #16378 > > │ ### ticks -00:14:54 v #16379 > > -00:14:54 v #16380 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:54 v #16381 > > inl ticks (date_time : date_time) : timestamp = -00:14:54 v #16382 > > backend_switch { -00:14:54 v #16383 > > Fsharp = fun () => -00:14:54 v #16384 > > run_target function -00:14:54 v #16385 > > | Rust (Contract) => fun () => null () -00:14:54 v #16386 > > | _ => fun () => date_time |> $'_.Ticks' -00:14:54 v #16387 > > : timestamp -00:14:54 v #16388 > > Python = fun () => -00:14:54 v #16389 > > date_time |> new_time_span (min_value ()) |> total_seconds |> ((*) -00:14:54 v #16390 > > 10000000) |> convert : timestamp -00:14:54 v #16391 > > } -00:14:54 v #16392 > > -00:14:54 v #16393 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:54 v #16394 > > //// test -00:14:54 v #16395 > > ///! fsharp -00:14:54 v #16396 > > ///! cuda -00:14:54 v #16397 > > ///! rust -00:14:54 v #16398 > > -00:14:54 v #16399 > > unix_epoch () -00:14:54 v #16400 > > |> ticks -00:14:54 v #16401 > > |> _assert_eq' (621355968000000000i64 |> convert) -00:14:59 v #16402 > > -00:14:59 v #16403 > > ── [ 5.01s - return value ] ──────────────────────────────────────────────────── -00:14:59 v #16404 > > │ .py output (Cuda): -00:14:59 v #16405 > > │ __assert_eq' / actual: 621355968000000000 / expected: -00:14:59 v #16406 > > 621355968000000000 -00:14:59 v #16407 > > │ -00:14:59 v #16408 > > │ .rs output: -00:14:59 v #16409 > > │ __assert_eq' / actual: 621355968000000000 / expected: -00:14:59 v #16410 > > 621355968000000000 -00:14:59 v #16411 > > │ -00:14:59 v #16412 > > │ -00:14:59 v #16413 > > -00:14:59 v #16414 > > ── [ 5.01s - stdout ] ────────────────────────────────────────────────────────── -00:14:59 v #16415 > > │ .fsx output: -00:14:59 v #16416 > > │ __assert_eq' / actual: 621355968000000000L / expected: -00:14:59 v #16417 > > 621355968000000000L -00:14:59 v #16418 > > │ -00:14:59 v #16419 > > -00:14:59 v #16420 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:14:59 v #16421 > > │ ### time_span_format -00:14:59 v #16422 > > -00:14:59 v #16423 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:14:59 v #16424 > > inl time_span_format (format : string) (time_span : time_span) : string = -00:14:59 v #16425 > > run_target function -00:14:59 v #16426 > > | TypeScript _ -00:14:59 v #16427 > > | Python _ => fun () => -00:14:59 v #16428 > > $'!time_span.ToString ("c", -00:14:59 v #16429 > > System.Globalization.CultureInfo.InvariantCulture)' -00:14:59 v #16430 > > | _ => fun () => -00:14:59 v #16431 > > backend_switch { -00:14:59 v #16432 > > Fsharp = fun () => $'!time_span.ToString !format ' : string -00:14:59 v #16433 > > Python = fun () => $'!time_span ' : string -00:14:59 v #16434 > > } -00:15:00 v #16435 > > -00:15:00 v #16436 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:15:00 v #16437 > > │ ### hours -00:15:00 v #16438 > > -00:15:00 v #16439 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:15:00 v #16440 > > inl hours (time_span : time_span) : i32 = -00:15:00 v #16441 > > backend_switch { -00:15:00 v #16442 > > Fsharp = fun () => time_span |> $'_.Hours' : i32 -00:15:00 v #16443 > > Python = fun () => $'!time_span.seconds // 3600' : i32 -00:15:00 v #16444 > > } -00:15:00 v #16445 > > -00:15:00 v #16446 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:15:00 v #16447 > > //// test -00:15:00 v #16448 > > ///! fsharp -00:15:00 v #16449 > > ///! cuda -00:15:00 v #16450 > > ///! rust -00:15:00 v #16451 > > ///! typescript -00:15:00 v #16452 > > ///! python -00:15:00 v #16453 > > -00:15:00 v #16454 > > (join date_time_milliseconds 2002 2 2 20 22 24 26) -00:15:00 v #16455 > > |> new_time_span (date_time_milliseconds 2001 1 1 10 11 12 13) -00:15:00 v #16456 > > |> hours -00:15:00 v #16457 > > |> _assert_eq 10 -00:15:04 v #16458 > > -00:15:04 v #16459 > > ── [ 3.89s - return value ] ──────────────────────────────────────────────────── -00:15:04 v #16460 > > │ .py output (Cuda): -00:15:04 v #16461 > > │ __assert_eq / actual: 10 / expected: 10 -00:15:04 v #16462 > > │ -00:15:04 v #16463 > > │ .rs output: -00:15:04 v #16464 > > │ __assert_eq / actual: 10 / expected: 10 -00:15:04 v #16465 > > │ -00:15:04 v #16466 > > │ .ts output: -00:15:04 v #16467 > > │ __assert_eq / actual: 10 / expected: 10 -00:15:04 v #16468 > > │ -00:15:04 v #16469 > > │ .py output: -00:15:04 v #16470 > > │ __assert_eq / actual: 10 / expected: 10 -00:15:04 v #16471 > > │ -00:15:04 v #16472 > > │ -00:15:04 v #16473 > > -00:15:04 v #16474 > > ── [ 3.89s - stdout ] ────────────────────────────────────────────────────────── -00:15:04 v #16475 > > │ .fsx output: -00:15:04 v #16476 > > │ __assert_eq / actual: 10 / expected: 10 -00:15:04 v #16477 > > │ -00:15:04 v #16478 > > -00:15:04 v #16479 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:15:04 v #16480 > > │ ### minutes -00:15:04 v #16481 > > -00:15:04 v #16482 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:15:04 v #16483 > > inl minutes (time_span : time_span) : i32 = -00:15:04 v #16484 > > backend_switch { -00:15:04 v #16485 > > Fsharp = fun () => time_span |> $'_.Minutes' : i32 -00:15:04 v #16486 > > Python = fun () => $'(!time_span.seconds // 60) % 60' : i32 -00:15:04 v #16487 > > } -00:15:04 v #16488 > > -00:15:04 v #16489 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:15:04 v #16490 > > //// test -00:15:04 v #16491 > > ///! fsharp -00:15:04 v #16492 > > ///! cuda -00:15:04 v #16493 > > ///! rust -00:15:04 v #16494 > > ///! typescript -00:15:04 v #16495 > > ///! python -00:15:04 v #16496 > > -00:15:04 v #16497 > > (join date_time_milliseconds 2002 2 2 20 22 24 26) -00:15:04 v #16498 > > |> new_time_span (date_time_milliseconds 2001 1 1 10 11 12 13) -00:15:04 v #16499 > > |> minutes -00:15:04 v #16500 > > |> _assert_eq 11 -00:15:08 v #16501 > > -00:15:08 v #16502 > > ── [ 3.17s - return value ] ──────────────────────────────────────────────────── -00:15:08 v #16503 > > │ .py output (Cuda): -00:15:08 v #16504 > > │ __assert_eq / actual: 11 / expected: 11 -00:15:08 v #16505 > > │ -00:15:08 v #16506 > > │ .rs output: -00:15:08 v #16507 > > │ __assert_eq / actual: 11 / expected: 11 -00:15:08 v #16508 > > │ -00:15:08 v #16509 > > │ .ts output: -00:15:08 v #16510 > > │ __assert_eq / actual: 11 / expected: 11 -00:15:08 v #16511 > > │ -00:15:08 v #16512 > > │ .py output: -00:15:08 v #16513 > > │ __assert_eq / actual: 11 / expected: 11 -00:15:08 v #16514 > > │ -00:15:08 v #16515 > > │ -00:15:08 v #16516 > > -00:15:08 v #16517 > > ── [ 3.17s - stdout ] ────────────────────────────────────────────────────────── -00:15:08 v #16518 > > │ .fsx output: -00:15:08 v #16519 > > │ __assert_eq / actual: 11 / expected: 11 -00:15:08 v #16520 > > │ -00:15:08 v #16521 > > -00:15:08 v #16522 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:15:08 v #16523 > > │ ### seconds -00:15:08 v #16524 > > -00:15:08 v #16525 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:15:08 v #16526 > > inl seconds (time_span : time_span) : i32 = -00:15:08 v #16527 > > backend_switch { -00:15:08 v #16528 > > Fsharp = fun () => time_span |> $'_.Seconds' : i32 -00:15:08 v #16529 > > Python = fun () => $'!time_span.seconds % 60' : i32 -00:15:08 v #16530 > > } -00:15:08 v #16531 > > -00:15:08 v #16532 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:15:08 v #16533 > > //// test -00:15:08 v #16534 > > ///! fsharp -00:15:08 v #16535 > > ///! cuda -00:15:08 v #16536 > > ///! rust -00:15:08 v #16537 > > ///! typescript -00:15:08 v #16538 > > ///! python -00:15:08 v #16539 > > -00:15:08 v #16540 > > (join date_time_milliseconds 2002 2 2 20 22 24 26) -00:15:08 v #16541 > > |> new_time_span (date_time_milliseconds 2001 1 1 10 11 12 13) -00:15:08 v #16542 > > |> seconds -00:15:08 v #16543 > > |> _assert_eq 12 -00:15:11 v #16544 > > -00:15:11 v #16545 > > ── [ 3.14s - return value ] ──────────────────────────────────────────────────── -00:15:11 v #16546 > > │ .py output (Cuda): -00:15:11 v #16547 > > │ __assert_eq / actual: 12 / expected: 12 -00:15:11 v #16548 > > │ -00:15:11 v #16549 > > │ .rs output: -00:15:11 v #16550 > > │ __assert_eq / actual: 12 / expected: 12 -00:15:11 v #16551 > > │ -00:15:11 v #16552 > > │ .ts output: -00:15:11 v #16553 > > │ __assert_eq / actual: 12 / expected: 12 -00:15:11 v #16554 > > │ -00:15:11 v #16555 > > │ .py output: -00:15:11 v #16556 > > │ __assert_eq / actual: 12 / expected: 12 -00:15:11 v #16557 > > │ -00:15:11 v #16558 > > │ -00:15:11 v #16559 > > -00:15:11 v #16560 > > ── [ 3.14s - stdout ] ────────────────────────────────────────────────────────── -00:15:11 v #16561 > > │ .fsx output: -00:15:11 v #16562 > > │ __assert_eq / actual: 12 / expected: 12 -00:15:11 v #16563 > > │ -00:15:11 v #16564 > > -00:15:11 v #16565 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:15:11 v #16566 > > │ ### milliseconds -00:15:11 v #16567 > > -00:15:11 v #16568 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:15:11 v #16569 > > inl milliseconds (time_span : time_span) : i32 = -00:15:11 v #16570 > > backend_switch { -00:15:11 v #16571 > > Fsharp = fun () => time_span |> $'_.Milliseconds' : i32 -00:15:11 v #16572 > > Python = fun () => $'!time_span.microseconds' : i32 -00:15:11 v #16573 > > } -00:15:12 v #16574 > > -00:15:12 v #16575 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:15:12 v #16576 > > //// test -00:15:12 v #16577 > > ///! fsharp -00:15:12 v #16578 > > ///! cuda -00:15:12 v #16579 > > ///! rust -00:15:12 v #16580 > > ///! typescript -00:15:12 v #16581 > > ///! python -00:15:12 v #16582 > > -00:15:12 v #16583 > > (join date_time_milliseconds 2002 2 2 20 22 24 26) -00:15:12 v #16584 > > |> new_time_span (date_time_milliseconds 2001 1 1 10 11 12 13) -00:15:12 v #16585 > > |> milliseconds -00:15:12 v #16586 > > |> _assert_eq 13 -00:15:15 v #16587 > > -00:15:15 v #16588 > > ── [ 3.14s - return value ] ──────────────────────────────────────────────────── -00:15:15 v #16589 > > │ .py output (Cuda): -00:15:15 v #16590 > > │ __assert_eq / actual: 13 / expected: 13 -00:15:15 v #16591 > > │ -00:15:15 v #16592 > > │ .rs output: -00:15:15 v #16593 > > │ __assert_eq / actual: 13 / expected: 13 -00:15:15 v #16594 > > │ -00:15:15 v #16595 > > │ .ts output: -00:15:15 v #16596 > > │ __assert_eq / actual: 13 / expected: 13 -00:15:15 v #16597 > > │ -00:15:15 v #16598 > > │ .py output: -00:15:15 v #16599 > > │ __assert_eq / actual: 13 / expected: 13 -00:15:15 v #16600 > > │ -00:15:15 v #16601 > > │ -00:15:15 v #16602 > > -00:15:15 v #16603 > > ── [ 3.14s - stdout ] ────────────────────────────────────────────────────────── -00:15:15 v #16604 > > │ .fsx output: -00:15:15 v #16605 > > │ __assert_eq / actual: 13 / expected: 13 -00:15:15 v #16606 > > │ -00:15:15 v #16607 > > -00:15:15 v #16608 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:15:15 v #16609 > > │ ### time_zone_info -00:15:15 v #16610 > > -00:15:15 v #16611 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:15:15 v #16612 > > nominal time_zone_info = $'System.TimeZoneInfo' -00:15:15 v #16613 > > -00:15:15 v #16614 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:15:15 v #16615 > > │ ### add_days -00:15:15 v #16616 > > -00:15:15 v #16617 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:15:15 v #16618 > > inl add_days (days : i32) (date_time : date_time) : date_time = -00:15:15 v #16619 > > $'!date_time.AddDays' days -00:15:16 v #16620 > > -00:15:16 v #16621 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:15:16 v #16622 > > │ ### now -00:15:16 v #16623 > > -00:15:16 v #16624 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:15:16 v #16625 > > inl now () : date_time = -00:15:16 v #16626 > > backend_switch { -00:15:16 v #16627 > > Fsharp = fun () => -00:15:16 v #16628 > > run_target function -00:15:16 v #16629 > > | Rust (Contract) => fun () => null () -00:15:16 v #16630 > > | _ => fun () => $'System.DateTime.Now' -00:15:16 v #16631 > > : date_time -00:15:16 v #16632 > > Python = fun () => $'datetime.datetime.now()' : date_time -00:15:16 v #16633 > > } -00:15:16 v #16634 > > -00:15:16 v #16635 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:15:16 v #16636 > > │ ### utc_now -00:15:16 v #16637 > > -00:15:16 v #16638 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:15:16 v #16639 > > inl utc_now () : date_time = -00:15:16 v #16640 > > backend_switch { -00:15:16 v #16641 > > Fsharp = fun () => $'System.DateTime.UtcNow' : date_time -00:15:16 v #16642 > > Python = fun () => $'datetime.datetime.utcnow()' : date_time -00:15:16 v #16643 > > } -00:15:16 v #16644 > > -00:15:16 v #16645 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:15:16 v #16646 > > │ ### stopwatch -00:15:16 v #16647 > > -00:15:16 v #16648 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:15:16 v #16649 > > nominal stopwatch_python = -00:15:16 v #16650 > > `( -00:15:16 v #16651 > > global "import timeit" -00:15:16 v #16652 > > $'' : $'timeit.default_timer' -00:15:16 v #16653 > > ) -00:15:16 v #16654 > > type stopwatch_switch = -00:15:16 v #16655 > > { -00:15:16 v #16656 > > Fsharp : $'System.Diagnostics.Stopwatch' -00:15:16 v #16657 > > Python : stopwatch_python -00:15:16 v #16658 > > } -00:15:16 v #16659 > > nominal stopwatch = $'backend_switch `(stopwatch_switch)' -00:15:16 v #16660 > > -00:15:16 v #16661 > > inl stopwatch () : stopwatch = -00:15:16 v #16662 > > backend_switch { -00:15:16 v #16663 > > Fsharp = fun () => () |> convert : stopwatch -00:15:16 v #16664 > > Python = fun () => $'`stopwatch ' : stopwatch -00:15:16 v #16665 > > } -00:15:17 v #16666 > > -00:15:17 v #16667 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:15:17 v #16668 > > inl stopwatch_elapsed_milliseconds (stopwatch : stopwatch) : i64 = -00:15:17 v #16669 > > $'!stopwatch.ElapsedMilliseconds' -00:15:17 v #16670 > > -00:15:17 v #16671 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:15:17 v #16672 > > inl stopwatch_start (stopwatch : stopwatch) : () = -00:15:17 v #16673 > > $'!stopwatch.Start' () -00:15:18 v #16674 > > -00:15:18 v #16675 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:15:18 v #16676 > > │ ## rust -00:15:18 v #16677 > > -00:15:18 v #16678 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:15:18 v #16679 > > │ ### duration -00:15:18 v #16680 > > -00:15:18 v #16681 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:15:18 v #16682 > > nominal duration = -00:15:18 v #16683 > > `( -00:15:18 v #16684 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:15:18 v #16685 > > Fable.Core.Emit(\"std::time::Duration\")>]]\n#endif\ntype std_time_Duration = -00:15:18 v #16686 > > class end" -00:15:18 v #16687 > > $'' : $'std_time_Duration' -00:15:18 v #16688 > > ) -00:15:18 v #16689 > > -00:15:18 v #16690 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:15:18 v #16691 > > │ ### date_time' -00:15:18 v #16692 > > -00:15:18 v #16693 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:15:18 v #16694 > > nominal date_time' t = -00:15:18 v #16695 > > `( -00:15:18 v #16696 > > backend_switch `(()) `({}) { -00:15:18 v #16697 > > Fsharp = (fun () => global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:15:18 v #16698 > > Fable.Core.Emit(\"chrono::DateTime<$0>\")>]]\n#endif\ntype chrono_DateTime<'T> = -00:15:18 v #16699 > > class end") : () -> () -00:15:18 v #16700 > > } -00:15:18 v #16701 > > $'' : $'chrono_DateTime<`t>' -00:15:18 v #16702 > > ) -00:15:19 v #16703 > > -00:15:19 v #16704 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:15:19 v #16705 > > │ ### local -00:15:19 v #16706 > > -00:15:19 v #16707 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:15:19 v #16708 > > nominal local = -00:15:19 v #16709 > > `( -00:15:19 v #16710 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:15:19 v #16711 > > Fable.Core.Emit(\"chrono::Local\")>]]\n#endif\ntype chrono_Local = class end" -00:15:19 v #16712 > > $'' : $'chrono_Local' -00:15:19 v #16713 > > ) -00:15:19 v #16714 > > -00:15:19 v #16715 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:15:19 v #16716 > > │ ### naive_date_time -00:15:19 v #16717 > > -00:15:19 v #16718 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:15:19 v #16719 > > nominal naive_date_time = -00:15:19 v #16720 > > `( -00:15:19 v #16721 > > backend_switch `(()) `({}) { -00:15:19 v #16722 > > Fsharp = (fun () => global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:15:19 v #16723 > > Fable.Core.Emit(\"chrono::NaiveDateTime\")>]]\n#endif\ntype chrono_NaiveDateTime -00:15:19 v #16724 > > = class end") : () -> () -00:15:19 v #16725 > > } -00:15:19 v #16726 > > $'' : $'chrono_NaiveDateTime' -00:15:19 v #16727 > > ) -00:15:19 v #16728 > > -00:15:19 v #16729 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:15:19 v #16730 > > │ ## utc -00:15:19 v #16731 > > -00:15:19 v #16732 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:15:19 v #16733 > > nominal utc = -00:15:19 v #16734 > > `( -00:15:19 v #16735 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:15:19 v #16736 > > Fable.Core.Emit(\"chrono::Utc\")>]]\n#endif\ntype chrono_Utc = class end" -00:15:19 v #16737 > > $'' : $'chrono_Utc' -00:15:19 v #16738 > > ) -00:15:20 v #16739 > > -00:15:20 v #16740 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:15:20 v #16741 > > │ ### naive_utc -00:15:20 v #16742 > > -00:15:20 v #16743 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:15:20 v #16744 > > inl naive_utc (date_time : date_time' utc) : naive_date_time = -00:15:20 v #16745 > > !\\(date_time, $'"$0.naive_utc()"') -00:15:20 v #16746 > > -00:15:20 v #16747 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:15:20 v #16748 > > │ ### to_local -00:15:20 v #16749 > > -00:15:20 v #16750 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:15:20 v #16751 > > inl to_local (date_time : date_time' utc) : date_time' local = -00:15:20 v #16752 > > inl naive_date_time = date_time |> naive_utc -00:15:20 v #16753 > > !\\(naive_date_time, -00:15:20 v #16754 > > $'"chrono::offset::TimeZone::from_utc_datetime(&chrono::Local, &$0)"') -00:15:21 v #16755 > > -00:15:21 v #16756 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:15:21 v #16757 > > │ ### from_timestamp_micros -00:15:21 v #16758 > > -00:15:21 v #16759 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:15:21 v #16760 > > inl from_timestamp_micros forall t {number; int}. (timestamp : t) : option -00:15:21 v #16761 > > (date_time' utc) = -00:15:21 v #16762 > > inl result : optionm'.option' (date_time' utc) = -00:15:21 v #16763 > > !\\(timestamp, $'"chrono::DateTime::from_timestamp_micros($0)"') -00:15:21 v #16764 > > result |> optionm'.unbox -00:15:21 v #16765 > > -00:15:21 v #16766 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:15:21 v #16767 > > │ ### format' -00:15:21 v #16768 > > -00:15:21 v #16769 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:15:21 v #16770 > > inl format' (format : string) (date_time : date_time' utc) : sm'.std_string = -00:15:21 v #16771 > > !\\((date_time, #format), $'"$0.format($1).to_string()"') -00:15:22 v #16772 > > -00:15:22 v #16773 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:15:22 v #16774 > > │ ### format'' -00:15:22 v #16775 > > -00:15:22 v #16776 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:15:22 v #16777 > > inl format'' (format : string) (date_time : date_time' _) : sm'.std_string = -00:15:22 v #16778 > > !\\((date_time, #format), $'"$0.format($1).to_string()"') -00:15:22 v #16779 > > -00:15:22 v #16780 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:15:22 v #16781 > > │ ### format_timestamp -00:15:22 v #16782 > > -00:15:22 v #16783 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:15:22 v #16784 > > inl format_timestamp forall t {number; int}. (timestamp : t) = -00:15:22 v #16785 > > inl timestamp = join timestamp -00:15:22 v #16786 > > (timestamp / 1000) -00:15:22 v #16787 > > |> from_timestamp_micros -00:15:22 v #16788 > > |> optionm.map fun x => -00:15:22 v #16789 > > x -00:15:22 v #16790 > > |> to_local -00:15:22 v #16791 > > |> format'' "%Y-%m-%d %H:%M:%S" -00:15:22 v #16792 > > |> sm'.from_std_string -00:15:22 v #16793 > > |> resultm.from_option -00:15:22 v #16794 > > -00:15:22 v #16795 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:15:22 v #16796 > > │ ### duration_from_millis -00:15:22 v #16797 > > -00:15:22 v #16798 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:15:22 v #16799 > > inl duration_from_millis (ms : u64) : duration = -00:15:22 v #16800 > > inl ms = join ms -00:15:22 v #16801 > > !\($'"std::time::Duration::from_millis(!ms)"') -00:15:23 v #16802 > > -00:15:23 v #16803 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:15:23 v #16804 > > │ ## date_time -00:15:23 v #16805 > > -00:15:23 v #16806 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:15:23 v #16807 > > │ ### time_zone_local -00:15:23 v #16808 > > -00:15:23 v #16809 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:15:23 v #16810 > > inl time_zone_local () : time_zone_info = -00:15:23 v #16811 > > run_target function -00:15:23 v #16812 > > | Fsharp _ => fun () => -00:15:23 v #16813 > > $'System.TimeZoneInfo.Local' -00:15:23 v #16814 > > | Rust (Native) => fun () => -00:15:23 v #16815 > > open rust.rust_operators -00:15:23 v #16816 > > -00:15:23 v #16817 > > !\($'"std::sync::Arc::new(chrono::FixedOffset::local_minus_utc(chrono::Local::no -00:15:23 v #16818 > > w().offset()) as i64)"') -00:15:23 v #16819 > > | _ => fun () => null () -00:15:23 v #16820 > > -00:15:23 v #16821 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:15:23 v #16822 > > │ ### get_utc_offset -00:15:23 v #16823 > > -00:15:23 v #16824 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:15:23 v #16825 > > inl get_utc_offset (time_zone_info : time_zone_info) (date_time : date_time) : -00:15:23 v #16826 > > time_span = -00:15:23 v #16827 > > run_target function -00:15:23 v #16828 > > | Fsharp _ => fun () => date_time |> $'_.GetUtcOffset' (time_zone_local -00:15:23 v #16829 > > ()) -00:15:23 v #16830 > > | Rust (Native | Wasm) => fun () => -00:15:23 v #16831 > > open rust.rust_operators -00:15:23 v #16832 > > inl ticks = date_time |> ticks -00:15:23 v #16833 > > // inl ticks = ticks |> rust.rust.emit -00:15:23 v #16834 > > (!\\((date_time, ticks), -00:15:23 v #16835 > > $'"chrono::FixedOffset::local_minus_utc(&chrono::DateTime::timezone(&chrono::Dat -00:15:23 v #16836 > > eTime::fixed_offset(&chrono::DateTime::from_timestamp_nanos($1))))"') : i32) -00:15:23 v #16837 > > |> convert -00:15:23 v #16838 > > | target => fun () => -00:15:23 v #16839 > > backend_switch { -00:15:23 v #16840 > > Fsharp = fun () => failwith $'$"date_time.get_utc_offset -00:15:23 v #16841 > > target: {!target}"' : time_span -00:15:23 v #16842 > > Python = fun () => $'!date_time.utcoffset()' : time_span -00:15:23 v #16843 > > } -00:15:24 v #16844 > > -00:15:24 v #16845 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:15:24 v #16846 > > │ ### date_time_guid_from_date_time -00:15:24 v #16847 > > -00:15:24 v #16848 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:15:24 v #16849 > > let date_time_guid_from_date_time (guid' : guid.guid) (date_time : date_time) = -00:15:24 v #16850 > > inl create prefix time_zone : date_time_guid = -00:15:24 v #16851 > > inl guid_range = -00:15:24 v #16852 > > guid' -00:15:24 v #16853 > > |> sm'.obj_to_string -00:15:24 v #16854 > > |> sm'.range -00:15:24 v #16855 > > (am'.Start ((prefix |> sm'.length |> fun x => x : i32) + -00:15:24 v #16856 > > (time_zone |> sm'.length))) -00:15:24 v #16857 > > (am'.End eval) -00:15:24 v #16858 > > ($'$"{!prefix}{!time_zone}{!guid_range}"' : string) |> guid.new_guid -00:15:24 v #16859 > > run_target function -00:15:24 v #16860 > > | Rust (Contract) => fun () => null () -00:15:24 v #16861 > > | Rust (Native | Wasm) => fun () => -00:15:24 v #16862 > > inl epoch = -00:15:24 v #16863 > > unix_epoch () -00:15:24 v #16864 > > |> to_universal_time -00:15:24 v #16865 > > inl date_time = -00:15:24 v #16866 > > date_time -00:15:24 v #16867 > > |> specify_date_kind Local -00:15:24 v #16868 > > |> to_universal_time -00:15:24 v #16869 > > inl unixticks = -00:15:24 v #16870 > > match date_time |> ticks, epoch |> ticks with -00:15:24 v #16871 > > | timestamp date_time, timestamp epoch => convert date_time - -00:15:24 v #16872 > > convert epoch : i64 -00:15:24 v #16873 > > inl prefix = -00:15:24 v #16874 > > unixticks / 10 -00:15:24 v #16875 > > |> from_timestamp_micros -00:15:24 v #16876 > > |> optionm.map ( -00:15:24 v #16877 > > to_local -00:15:24 v #16878 > > >> format'' "%Y%m%d-%H%M-%S%f" -00:15:24 v #16879 > > >> sm'.from_std_string -00:15:24 v #16880 > > >> fun s => $'$"{!s.[[0..17]]}-{!s.[[18..21]]}-{!s.[[22]]}"' -00:15:24 v #16881 > > ) -00:15:24 v #16882 > > |> optionm'.default_value "" -00:15:24 v #16883 > > inl time_zone = date_time |> get_utc_offset (time_zone_local ()) -00:15:24 v #16884 > > inl time_zone_signal = if hours time_zone > 0 then 1u8 else 0 -00:15:24 v #16885 > > inl time_zone_value = time_zone |> time_span_format (join "hh:mm") -00:15:24 v #16886 > > inl time_zone = -00:15:24 v #16887 > > $'$"{!time_zone_signal}{!time_zone_value.[[0..1]]}{!time_zone_value.[[3..4]]}"' -00:15:24 v #16888 > > create prefix time_zone -00:15:24 v #16889 > > | target => fun () => -00:15:24 v #16890 > > inl prefix = date_time |> format (join "yyyyMMdd-HHmm-ssff-ffff-f") -00:15:24 v #16891 > > inl time_zone = date_time |> get_utc_offset (time_zone_local ()) -00:15:24 v #16892 > > inl time_zone_signal = if hours time_zone > 0 then 1u8 else 0 -00:15:24 v #16893 > > inl time_zone_value = time_zone |> time_span_format (join "hhmm") -00:15:24 v #16894 > > inl time_zone = $'$"{!time_zone_signal}{!time_zone_value}"' -00:15:24 v #16895 > > create prefix time_zone -00:15:24 v #16896 > > -00:15:24 v #16897 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:15:24 v #16898 > > //// test -00:15:24 v #16899 > > ///! fsharp -00:15:24 v #16900 > > ////! cuda -00:15:24 v #16901 > > ///! rust -d chrono -00:15:24 v #16902 > > -00:15:24 v #16903 > > inl suffix = test_guid () |> sm'.obj_to_string |> sm'.range (am'.End fun x => x -00:15:24 v #16904 > > () - 6i32) (am'.End eval) -00:15:24 v #16905 > > unix_epoch () -00:15:24 v #16906 > > |> specify_date_kind Utc -00:15:24 v #16907 > > |> to_universal_time -00:15:24 v #16908 > > |> date_time_guid_from_date_time (test_guid ()) -00:15:24 v #16909 > > |> sm'.obj_to_string -00:15:24 v #16910 > > |> fun s => s |> _assert_eq' $'$"{!(s |> sm'.slice 0i32 29)}{!suffix}"' -00:15:28 v #16911 > > -00:15:28 v #16912 > > ── [ 4.39s - return value ] ──────────────────────────────────────────────────── -00:15:28 v #16913 > > │ .rs output (rust -d chrono): -00:15:28 v #16914 > > │ __assert_eq' / actual: "19700101-0000-0000-0000-000000cba987" -00:15:28 v #16915 > > / expected: "19700101-0000-0000-0000-000000cba987" -00:15:28 v #16916 > > │ -00:15:28 v #16917 > > │ -00:15:28 v #16918 > > -00:15:28 v #16919 > > ── [ 4.39s - stdout ] ────────────────────────────────────────────────────────── -00:15:28 v #16920 > > │ .fsx output: -00:15:28 v #16921 > > │ __assert_eq' / actual: "19700101-0000-0000-0000-000300cba987" -00:15:28 v #16922 > > / expected: "19700101-0000-0000-0000-000300cba987" -00:15:28 v #16923 > > │ -00:15:28 v #16924 > > -00:15:28 v #16925 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:15:28 v #16926 > > //// test -00:15:28 v #16927 > > ///! fsharp -00:15:28 v #16928 > > ///! rust -d chrono -00:15:28 v #16929 > > -00:15:28 v #16930 > > inl suffix = test_guid () |> sm'.obj_to_string |> sm'.range (am'.End fun x => x -00:15:28 v #16931 > > () - 6i32) (am'.End eval) -00:15:28 v #16932 > > min_value () -00:15:28 v #16933 > > |> specify_date_kind Local -00:15:28 v #16934 > > |> date_time_guid_from_date_time (test_guid ()) -00:15:28 v #16935 > > |> sm'.obj_to_string -00:15:28 v #16936 > > |> fun s => s |> _assert_eq' $'$"00010101-0000-0000-0000-0{!(s |> sm'.slice -00:15:28 v #16937 > > 25i32 29)}{!suffix}"' -00:15:33 v #16938 > > -00:15:33 v #16939 > > ── [ 4.06s - return value ] ──────────────────────────────────────────────────── -00:15:33 v #16940 > > │ .rs output (rust -d chrono): -00:15:33 v #16941 > > │ __assert_eq' / actual: "00010101-0000-0000-0000-000000cba987" -00:15:33 v #16942 > > / expected: "00010101-0000-0000-0000-000000cba987" -00:15:33 v #16943 > > │ -00:15:33 v #16944 > > │ -00:15:33 v #16945 > > -00:15:33 v #16946 > > ── [ 4.06s - stdout ] ────────────────────────────────────────────────────────── -00:15:33 v #16947 > > │ .fsx output: -00:15:33 v #16948 > > │ __assert_eq' / actual: "00010101-0000-0000-0000-000300cba987" -00:15:33 v #16949 > > / expected: "00010101-0000-0000-0000-000300cba987" -00:15:33 v #16950 > > │ -00:15:33 v #16951 > > -00:15:33 v #16952 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:15:33 v #16953 > > //// test -00:15:33 v #16954 > > ///! fsharp -00:15:33 v #16955 > > -00:15:33 v #16956 > > inl suffix = test_guid () |> sm'.obj_to_string |> sm'.range (am'.End fun x => x -00:15:33 v #16957 > > () - 6i32) (am'.End eval) -00:15:33 v #16958 > > max_value () -00:15:33 v #16959 > > |> specify_date_kind Utc -00:15:33 v #16960 > > |> add_days -1 -00:15:33 v #16961 > > |> date_time_guid_from_date_time (test_guid ()) -00:15:33 v #16962 > > |> sm'.obj_to_string -00:15:33 v #16963 > > |> fun s => s |> _assert_eq $'$"99991230-2359-5999-9999-9{!(s |> sm'.slice 25i32 -00:15:33 v #16964 > > 29)}{!suffix}"' -00:15:33 v #16965 > > -00:15:33 v #16966 > > ── [ 676.46ms - stdout ] ─────────────────────────────────────────────────────── -00:15:33 v #16967 > > │ __assert_eq / actual: "99991230-2359-5999-9999-900300cba987" -00:15:33 v #16968 > > / expected: "99991230-2359-5999-9999-900300cba987" -00:15:33 v #16969 > > │ -00:15:33 v #16970 > > -00:15:33 v #16971 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:15:33 v #16972 > > //// test -00:15:33 v #16973 > > ///! rust -d chrono -00:15:33 v #16974 > > -00:15:33 v #16975 > > inl suffix = test_guid () |> sm'.obj_to_string |> sm'.range (am'.End fun x => x -00:15:33 v #16976 > > () - 6i32) (am'.End eval) -00:15:33 v #16977 > > max_value () -00:15:33 v #16978 > > |> specify_date_kind Utc -00:15:33 v #16979 > > |> add_days -1 -00:15:33 v #16980 > > |> date_time_guid_from_date_time (test_guid ()) -00:15:33 v #16981 > > |> sm'.obj_to_string -00:15:33 v #16982 > > |> fun s => s |> _assert_eq $'$"99991230-2359-5999-9999-0{!(s |> sm'.slice 25i32 -00:15:33 v #16983 > > 29)}{!suffix}"' -00:15:36 v #16984 > > -00:15:36 v #16985 > > ── [ 2.50s - return value ] ──────────────────────────────────────────────────── -00:15:36 v #16986 > > │ __assert_eq / actual: "99991230-2359-5999-9999-000000cba987" -00:15:36 v #16987 > > / expected: "99991230-2359-5999-9999-000000cba987" -00:15:36 v #16988 > > │ -00:15:36 v #16989 > > -00:15:36 v #16990 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:15:36 v #16991 > > //// test -00:15:36 v #16992 > > ///! fsharp -00:15:36 v #16993 > > ///! rust -d chrono -00:15:36 v #16994 > > -00:15:36 v #16995 > > inl suffix = test_guid () |> sm'.obj_to_string |> sm'.range (am'.End fun x => x -00:15:36 v #16996 > > () - 6i32) (am'.End eval) -00:15:36 v #16997 > > unix_epoch () -00:15:36 v #16998 > > |> specify_date_kind Utc -00:15:36 v #16999 > > |> add_days 1 -00:15:36 v #17000 > > |> date_time_guid_from_date_time (test_guid ()) -00:15:36 v #17001 > > |> sm'.obj_to_string -00:15:36 v #17002 > > |> fun s => s |> _assert_eq $'$"19700102-0000-0000-0000-0{!(s |> sm'.slice 25i32 -00:15:36 v #17003 > > 29)}{!suffix}"' -00:15:38 v #17004 > > -00:15:38 v #17005 > > ── [ 2.76s - return value ] ──────────────────────────────────────────────────── -00:15:38 v #17006 > > │ .rs output (rust -d chrono): -00:15:38 v #17007 > > │ __assert_eq / actual: "19700102-0000-0000-0000-000000cba987" -00:15:38 v #17008 > > / expected: "19700102-0000-0000-0000-000000cba987" -00:15:38 v #17009 > > │ -00:15:38 v #17010 > > │ -00:15:38 v #17011 > > -00:15:38 v #17012 > > ── [ 2.76s - stdout ] ────────────────────────────────────────────────────────── -00:15:38 v #17013 > > │ .fsx output: -00:15:38 v #17014 > > │ __assert_eq / actual: "19700102-0000-0000-0000-000300cba987" -00:15:38 v #17015 > > / expected: "19700102-0000-0000-0000-000300cba987" -00:15:38 v #17016 > > │ -00:15:38 v #17017 > > -00:15:38 v #17018 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:15:38 v #17019 > > │ ### date_time_from_guid -00:15:38 v #17020 > > -00:15:38 v #17021 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:15:38 v #17022 > > inl date_time_from_guid (date_time_guid : date_time_guid) = -00:15:38 v #17023 > > inl date_time_guid = date_time_guid |> sm'.obj_to_string -00:15:38 v #17024 > > inl sm_replace = sm'.replace "-" "" -00:15:38 v #17025 > > run_target_args (fun () => sm_replace) function -00:15:38 v #17026 > > | (Rust _ | TypeScript _) => fun sm_replace => -00:15:38 v #17027 > > $'System.DateTime.Parse (!date_time_guid.[[..24]] |> !sm_replace)' : -00:15:38 v #17028 > > date_time -00:15:38 v #17029 > > | _ => fun sm_replace => $'System.DateTime.ParseExact -00:15:38 v #17030 > > (!date_time_guid.[[..24]] |> !sm_replace, "yyyyMMddHHmmssfffffff", null)' : -00:15:38 v #17031 > > date_time -00:15:39 v #17032 > > -00:15:39 v #17033 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:15:39 v #17034 > > //// test -00:15:39 v #17035 > > -00:15:39 v #17036 > > date_time_from_guid (guid.new_guid "00010101-0000-0000-0000-0a9876543210") -00:15:39 v #17037 > > |> _assert_eq' (min_value ()) -00:15:39 v #17038 > > -00:15:39 v #17039 > > ── [ 466.15ms - stdout ] ─────────────────────────────────────────────────────── -00:15:39 v #17040 > > │ __assert_eq' / actual: 0001-01-01 12:00:00 AM / expected: -00:15:39 v #17041 > > 0001-01-01 12:00:00 AM -00:15:39 v #17042 > > │ -00:15:39 v #17043 > > -00:15:39 v #17044 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:15:39 v #17045 > > //// test -00:15:39 v #17046 > > -00:15:39 v #17047 > > date_time_from_guid (guid.new_guid $'$"99991231-2359-5999-9999-9{(!test_guid () -00:15:39 v #17048 > > |> string).[[^10..]]}"') -00:15:39 v #17049 > > |> _assert_eq' (max_value ()) -00:15:40 v #17050 > > -00:15:40 v #17051 > > ── [ 458.78ms - stdout ] ─────────────────────────────────────────────────────── -00:15:40 v #17052 > > │ __assert_eq' / actual: 9999-12-31 11:59:59 PM / expected: -00:15:40 v #17053 > > 9999-12-31 11:59:59 PM -00:15:40 v #17054 > > │ -00:15:40 v #17055 > > -00:15:40 v #17056 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:15:40 v #17057 > > //// test -00:15:40 v #17058 > > -00:15:40 v #17059 > > date_time_from_guid (guid.new_guid $'$"19700101-0000-0000-0000-0{(!test_guid () -00:15:40 v #17060 > > |> string).[[^10..]]}"') -00:15:40 v #17061 > > |> _assert_eq' $'System.DateTime.UnixEpoch' -00:15:40 v #17062 > > -00:15:40 v #17063 > > ── [ 451.98ms - stdout ] ─────────────────────────────────────────────────────── -00:15:40 v #17064 > > │ __assert_eq' / actual: 1970-01-01 12:00:00 AM / expected: -00:15:40 v #17065 > > 1970-01-01 12:00:00 AM -00:15:40 v #17066 > > │ -00:15:40 v #17067 > > -00:15:40 v #17068 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:15:40 v #17069 > > │ ### timestamp_guid_from_timestamp -00:15:40 v #17070 > > -00:15:40 v #17071 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:15:40 v #17072 > > inl timestamp_guid_from_timestamp (guid : guid.guid) (timestamp : timestamp) : -00:15:40 v #17073 > > timestamp_guid = -00:15:40 v #17074 > > inl guid = guid |> sm'.obj_to_string -00:15:40 v #17075 > > inl timestamp = timestamp |> sm'.obj_to_string |> sm'.pad_left 18i32 '0' -00:15:40 v #17076 > > $'`timestamp_guid -00:15:40 v #17077 > > $"{!timestamp.[[0..7]]}-{!timestamp.[[8..11]]}-{!timestamp.[[12..15]]}-{!timesta -00:15:40 v #17078 > > mp.[[16..17]]}{!guid.[[21..]]}"' -00:15:41 v #17079 > > -00:15:41 v #17080 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:15:41 v #17081 > > //// test -00:15:41 v #17082 > > -00:15:41 v #17083 > > timestamp_guid_from_timestamp (test_guid ()) (0i64 |> convert |> timestamp) -00:15:41 v #17084 > > |> _assert_eq' (guid.new_guid "00000000-0000-0000-0043-210fedcba987") -00:15:41 v #17085 > > -00:15:41 v #17086 > > ── [ 458.31ms - stdout ] ─────────────────────────────────────────────────────── -00:15:41 v #17087 > > │ __assert_eq' / actual: 00000000-0000-0000-0043-210fedcba987 -00:15:41 v #17088 > > expected: 00000000-0000-0000-0043-210fedcba987 -00:15:41 v #17089 > > │ -00:15:41 v #17090 > > -00:15:41 v #17091 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:15:41 v #17092 > > //// test -00:15:41 v #17093 > > -00:15:41 v #17094 > > timestamp_guid_from_timestamp (test_guid ()) (999999999999999999i64 |> convert -00:15:41 v #17095 > > |> timestamp) -00:15:41 v #17096 > > |> _assert_eq' (guid.new_guid $'$"99999999-9999-9999-9943-2{(!test_guid () |> -00:15:41 v #17097 > > string).[[^10..]]}"') -00:15:42 v #17098 > > -00:15:42 v #17099 > > ── [ 463.56ms - stdout ] ─────────────────────────────────────────────────────── -00:15:42 v #17100 > > │ __assert_eq' / actual: 99999999-9999-9999-9943-210fedcba987 -00:15:42 v #17101 > > expected: 99999999-9999-9999-9943-210fedcba987 -00:15:42 v #17102 > > │ -00:15:42 v #17103 > > -00:15:42 v #17104 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:15:42 v #17105 > > │ ### timestamp_from_guid -00:15:42 v #17106 > > -00:15:42 v #17107 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:15:42 v #17108 > > inl timestamp_from_guid (guid : date_time_guid) : timestamp = -00:15:42 v #17109 > > inl guid = guid |> sm'.obj_to_string -00:15:42 v #17110 > > $'`i64 -00:15:42 v #17111 > > $"{!guid.[[0..7]]}{!guid.[[9..12]]}{!guid.[[14..17]]}{!guid.[[19..20]]}"' -00:15:42 v #17112 > > -00:15:42 v #17113 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:15:42 v #17114 > > //// test -00:15:42 v #17115 > > -00:15:42 v #17116 > > timestamp_from_guid (guid.new_guid "00000000-0000-0000-00dc-ba9876543210") -00:15:42 v #17117 > > |> _assert_eq' (0i64 |> convert |> timestamp) -00:15:43 v #17118 > > -00:15:43 v #17119 > > ── [ 465.72ms - stdout ] ─────────────────────────────────────────────────────── -00:15:43 v #17120 > > │ __assert_eq' / actual: 0L / expected: 0L -00:15:43 v #17121 > > │ -00:15:43 v #17122 > > -00:15:43 v #17123 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:15:43 v #17124 > > //// test -00:15:43 v #17125 > > -00:15:43 v #17126 > > timestamp_from_guid (guid.new_guid $'$"99999999-9999-9999-99{(!test_guid () |> -00:15:43 v #17127 > > string).[[^14..]]}"') -00:15:43 v #17128 > > |> _assert_eq' (999999999999999999i64 |> convert |> timestamp) -00:15:43 v #17129 > > -00:15:43 v #17130 > > ── [ 452.29ms - stdout ] ─────────────────────────────────────────────────────── -00:15:43 v #17131 > > │ __assert_eq' / actual: 999999999999999999L / expected: -00:15:43 v #17132 > > 999999999999999999L -00:15:43 v #17133 > > │ -00:15:43 v #17134 > > -00:15:43 v #17135 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:15:43 v #17136 > > │ ### new_guid_from_date_time -00:15:43 v #17137 > > -00:15:43 v #17138 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:15:43 v #17139 > > inl new_guid_from_date_time (date_time : date_time) = -00:15:43 v #17140 > > inl guid = guid.new_raw_guid () -00:15:43 v #17141 > > date_time_guid_from_date_time guid date_time -00:15:44 v #17142 > > -00:15:44 v #17143 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:15:44 v #17144 > > //// test -00:15:44 v #17145 > > -00:15:44 v #17146 > > utc_now () -00:15:44 v #17147 > > |> new_guid_from_date_time -00:15:44 v #17148 > > |> date_time_from_guid -00:15:44 v #17149 > > |> fun date_time => new_time_span date_time (utc_now ()) |> total_seconds |> i32 -00:15:44 v #17150 > > |> _assert_eq 0 -00:15:44 v #17151 > > -00:15:44 v #17152 > > ── [ 788.81ms - stdout ] ─────────────────────────────────────────────────────── -00:15:44 v #17153 > > │ __assert_eq / actual: 0 / expected: 0 -00:15:44 v #17154 > > │ -00:15:44 v #17155 > > -00:15:44 v #17156 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:15:44 v #17157 > > │ ### new_guid_from_timestamp -00:15:44 v #17158 > > -00:15:44 v #17159 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:15:44 v #17160 > > inl new_guid_from_timestamp (timestamp : timestamp) = -00:15:44 v #17161 > > inl guid = guid.new_raw_guid () -00:15:44 v #17162 > > timestamp_guid_from_timestamp guid timestamp -00:15:45 v #17163 > > -00:15:45 v #17164 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:15:45 v #17165 > > //// test -00:15:45 v #17166 > > -00:15:45 v #17167 > > utc_now () -00:15:45 v #17168 > > |> ticks -00:15:45 v #17169 > > |> new_guid_from_timestamp -00:15:45 v #17170 > > |> timestamp_from_guid -00:15:45 v #17171 > > |> fun (timestamp t) => (convert t - (utc_now () |> ticks |> fun (timestamp x) -00:15:45 v #17172 > > => convert x)) / 100000i64 -00:15:45 v #17173 > > |> _assert_eq 0i64 -00:15:45 v #17174 > > -00:15:45 v #17175 > > ── [ 466.05ms - stdout ] ─────────────────────────────────────────────────────── -00:15:45 v #17176 > > │ __assert_eq / actual: 0L / expected: 0L -00:15:45 v #17177 > > │ -00:15:45 v #17178 > > -00:15:45 v #17179 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:15:45 v #17180 > > │ ## main -00:15:45 v #17181 > > -00:15:45 v #17182 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:15:45 v #17183 > > inl main () = -00:15:45 v #17184 > > $'let date_time_guid_from_date_time x = !date_time_guid_from_date_time x' : -00:15:45 v #17185 > > () -00:15:45 v #17186 > > $'let date_time_from_guid x = !date_time_from_guid x' : () -00:15:45 v #17187 > > $'let timestamp_guid_from_timestamp x = !timestamp_guid_from_timestamp x' : -00:15:45 v #17188 > > () -00:15:45 v #17189 > > $'let timestamp_from_guid x = !timestamp_from_guid x' : () -00:15:45 v #17190 > > $'let new_guid_from_date_time x = !new_guid_from_date_time x' : () -00:15:45 v #17191 > > $'let new_guid_from_timestamp x = !new_guid_from_timestamp x' : () -00:15:45 v #17192 > > $'let format x = !format x' : () -00:15:45 v #17193 > > $'let format_iso8601 x = !format_iso8601 x' : () -00:15:46 v #17194 > 00:01:19 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 47494 } -00:15:46 v #17195 > 00:01:19 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/lib/spiral/date_time.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/lib/spiral/date_time.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:15:48 v #17196 > 00:01:21 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/lib/spiral/date_time.dib.ipynb to html -00:15:48 v #17197 > 00:01:21 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. -00:15:48 v #17198 > 00:01:21 v #7 ! validate(nb) -00:15:48 v #17199 > 00:01:21 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 -00:15:48 v #17200 > 00:01:21 v #9 ! return _pygments_highlight( -00:15:49 v #17201 > 00:01:22 v #10 ! [NbConvertApp] Writing 452325 bytes to c:\home\git\polyglot\lib\spiral\date_time.dib.html -00:15:49 v #17202 > 00:01:22 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 860 } -00:15:49 v #17203 > 00:01:22 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 860 } -00:15:49 v #17204 > 00:01:22 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/date_time.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/date_time.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:15:50 v #17205 > 00:01:23 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } -00:15:50 v #17206 > 00:01:23 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } -00:15:50 v #17207 > 00:01:23 d #16 spiral.run / dib / { exit_code = 0; result_length = 48413 } -00:15:50 d #17208 runtime.execute_with_options_async / { exit_code = 0; output_length = 53543 } -00:15:50 d #20 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path date_time.dib --retries 3 -00:15:50 d #17209 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path math.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path math.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } -00:15:50 v #17210 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "math.dib", "--retries", "3"])) } -00:15:50 v #17211 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/lib/spiral/math.dib", "--output-path", "c:/home/git/polyglot/lib/spiral/math.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/lib/spiral/math.dib" --output-path "c:/home/git/polyglot/lib/spiral/math.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } -00:15:52 v #17212 > > -00:15:52 v #17213 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:15:52 v #17214 > > │ # math -00:15:55 v #17215 > > -00:15:55 v #17216 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:15:55 v #17217 > > //// test -00:15:55 v #17218 > > -00:15:55 v #17219 > > open testing -00:15:56 v #17220 > > -00:15:56 v #17221 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:15:56 v #17222 > > │ ## math -00:15:56 v #17223 > > -00:15:56 v #17224 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:15:56 v #17225 > > │ ### e -00:15:56 v #17226 > > -00:15:56 v #17227 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:15:56 v #17228 > > inl e () = -00:15:56 v #17229 > > exp 1f64 -00:15:57 v #17230 > > -00:15:57 v #17231 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:15:57 v #17232 > > │ ## square -00:15:57 v #17233 > > -00:15:57 v #17234 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:15:57 v #17235 > > inl square x = -00:15:57 v #17236 > > x ** 2 -00:15:57 v #17237 > > -00:15:57 v #17238 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:15:57 v #17239 > > //// test -00:15:57 v #17240 > > -00:15:57 v #17241 > > 5f64 -00:15:57 v #17242 > > |> sqrt -00:15:57 v #17243 > > |> square -00:15:57 v #17244 > > |> _assert_approx_eq None 5 -00:15:58 v #17245 > > -00:15:58 v #17246 > > ── [ 1.06s - stdout ] ────────────────────────────────────────────────────────── -00:15:58 v #17247 > > │ __assert_approx_eq / actual: 5.0 / expected: 5.0 -00:15:58 v #17248 > > │ -00:15:58 v #17249 > > -00:15:58 v #17250 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:15:58 v #17251 > > //// test -00:15:58 v #17252 > > -00:15:58 v #17253 > > e () |> square -00:15:58 v #17254 > > |> _assert_approx_eq None 7.3890560989306495 -00:15:59 v #17255 > > -00:15:59 v #17256 > > ── [ 431.83ms - stdout ] ─────────────────────────────────────────────────────── -00:15:59 v #17257 > > │ __assert_approx_eq / actual: 7.389056099 / expected: -00:15:59 v #17258 > > 7.389056099 -00:15:59 v #17259 > > │ -00:15:59 v #17260 > > -00:15:59 v #17261 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:15:59 v #17262 > > //// test -00:15:59 v #17263 > > -00:15:59 v #17264 > > 2 * 2 / 0.4f64 |> sqrt -00:15:59 v #17265 > > |> _assert_approx_eq None 3.1622776601683795 -00:15:59 v #17266 > > -00:15:59 v #17267 > > ── [ 435.45ms - stdout ] ─────────────────────────────────────────────────────── -00:15:59 v #17268 > > │ __assert_approx_eq / actual: 3.16227766 / expected: -00:15:59 v #17269 > > 3.16227766 -00:15:59 v #17270 > > │ -00:15:59 v #17271 > > -00:15:59 v #17272 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:15:59 v #17273 > > //// test -00:15:59 v #17274 > > -00:15:59 v #17275 > > 2f64 / 3 -00:15:59 v #17276 > > |> _assert_approx_eq None 0.6666666666666666 -00:16:00 v #17277 > > -00:16:00 v #17278 > > ── [ 482.88ms - stdout ] ─────────────────────────────────────────────────────── -00:16:00 v #17279 > > │ __assert_approx_eq / actual: 0.6666666667 / expected: -00:16:00 v #17280 > > 0.6666666667 -00:16:00 v #17281 > > │ -00:16:00 v #17282 > > -00:16:00 v #17283 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:00 v #17284 > > //// test -00:16:00 v #17285 > > -00:16:00 v #17286 > > 2f64 |> log -00:16:00 v #17287 > > |> _assert_approx_eq None 0.6931471805599453 -00:16:00 v #17288 > > -00:16:00 v #17289 > > ── [ 451.97ms - stdout ] ─────────────────────────────────────────────────────── -00:16:00 v #17290 > > │ __assert_approx_eq / actual: 0.6931471806 / expected: -00:16:00 v #17291 > > 0.6931471806 -00:16:00 v #17292 > > │ -00:16:00 v #17293 > > -00:16:00 v #17294 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:00 v #17295 > > //// test -00:16:00 v #17296 > > -00:16:00 v #17297 > > pi -00:16:00 v #17298 > > |> _assert_approx_eq None 3.141592653589793f64 -00:16:01 v #17299 > > -00:16:01 v #17300 > > ── [ 421.69ms - stdout ] ─────────────────────────────────────────────────────── -00:16:01 v #17301 > > │ __assert_approx_eq / actual: 3.141592654 / expected: -00:16:01 v #17302 > > 3.141592654 -00:16:01 v #17303 > > │ -00:16:01 v #17304 > > -00:16:01 v #17305 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:01 v #17306 > > //// test -00:16:01 v #17307 > > -00:16:01 v #17308 > > pi |> cos -00:16:01 v #17309 > > |> _assert_eq -1f64 -00:16:01 v #17310 > > -00:16:01 v #17311 > > ── [ 440.24ms - stdout ] ─────────────────────────────────────────────────────── -00:16:01 v #17312 > > │ __assert_eq / actual: -1.0 / expected: -1.0 -00:16:01 v #17313 > > │ -00:16:01 v #17314 > > -00:16:01 v #17315 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:01 v #17316 > > //// test -00:16:01 v #17317 > > -00:16:01 v #17318 > > pi -00:16:01 v #17319 > > |> cos -00:16:01 v #17320 > > |> fun n => n / 2f64 -00:16:01 v #17321 > > |> _assert_approx_eq None -0.5 -00:16:01 v #17322 > > -00:16:01 v #17323 > > ── [ 430.60ms - stdout ] ─────────────────────────────────────────────────────── -00:16:01 v #17324 > > │ __assert_approx_eq / actual: -0.5 / expected: -0.5 -00:16:01 v #17325 > > │ -00:16:01 v #17326 > > -00:16:01 v #17327 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:01 v #17328 > > //// test -00:16:01 v #17329 > > -00:16:01 v #17330 > > pi / 2 |> cos -00:16:01 v #17331 > > |> _assert_approx_eq None 0.00000000000000006123233995736766f64 -00:16:02 v #17332 > > -00:16:02 v #17333 > > ── [ 456.86ms - stdout ] ─────────────────────────────────────────────────────── -00:16:02 v #17334 > > │ __assert_approx_eq / actual: 6.123233996e-17 / expected: -00:16:02 v #17335 > > 6.123233996e-17 -00:16:02 v #17336 > > │ -00:16:02 v #17337 > > -00:16:02 v #17338 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:16:02 v #17339 > > │ ## fsharp -00:16:02 v #17340 > > -00:16:02 v #17341 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:16:02 v #17342 > > │ ### atan2 -00:16:02 v #17343 > > -00:16:02 v #17344 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:02 v #17345 > > inl atan2 (y : f64) (x : f64) : f64 = -00:16:02 v #17346 > > $'System.Math.Atan2 (!y, !x)' -00:16:02 v #17347 > > -00:16:02 v #17348 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:02 v #17349 > > //// test -00:16:02 v #17350 > > -00:16:02 v #17351 > > 0 |> atan2 1 -00:16:02 v #17352 > > |> _assert_eq 1.5707963267948966 -00:16:03 v #17353 > > -00:16:03 v #17354 > > ── [ 558.68ms - stdout ] ─────────────────────────────────────────────────────── -00:16:03 v #17355 > > │ __assert_eq / actual: 1.570796327 / expected: 1.570796327 -00:16:03 v #17356 > > │ -00:16:03 v #17357 > > -00:16:03 v #17358 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:16:03 v #17359 > > │ ## floor -00:16:03 v #17360 > > -00:16:03 v #17361 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:03 v #17362 > > inl floor forall t {float}. (n : t) : t = -00:16:03 v #17363 > > n |> $'floor' -00:16:03 v #17364 > > -00:16:03 v #17365 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:03 v #17366 > > //// test -00:16:03 v #17367 > > -00:16:03 v #17368 > > 0.6 |> floor -00:16:03 v #17369 > > |> _assert_eq 0f64 -00:16:04 v #17370 > > -00:16:04 v #17371 > > ── [ 496.26ms - stdout ] ─────────────────────────────────────────────────────── -00:16:04 v #17372 > > │ __assert_eq / actual: 0.0 / expected: 0.0 -00:16:04 v #17373 > > │ -00:16:04 v #17374 > > -00:16:04 v #17375 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:16:04 v #17376 > > │ ## ceil -00:16:04 v #17377 > > -00:16:04 v #17378 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:04 v #17379 > > inl ceil forall t {float}. (n : t) : t = -00:16:04 v #17380 > > n |> $'ceil' -00:16:04 v #17381 > > -00:16:04 v #17382 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:04 v #17383 > > //// test -00:16:04 v #17384 > > -00:16:04 v #17385 > > 0.6 |> ceil -00:16:04 v #17386 > > |> _assert_eq 1f64 -00:16:05 v #17387 > > -00:16:05 v #17388 > > ── [ 473.40ms - stdout ] ─────────────────────────────────────────────────────── -00:16:05 v #17389 > > │ __assert_eq / actual: 1.0 / expected: 1.0 -00:16:05 v #17390 > > │ -00:16:05 v #17391 > > -00:16:05 v #17392 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:16:05 v #17393 > > │ ## round -00:16:05 v #17394 > > -00:16:05 v #17395 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:05 v #17396 > > inl round forall t {float}. (n : t) : t = -00:16:05 v #17397 > > n |> $'round' -00:16:05 v #17398 > > -00:16:05 v #17399 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:05 v #17400 > > //// test -00:16:05 v #17401 > > -00:16:05 v #17402 > > 0.5 |> round -00:16:05 v #17403 > > |> _assert_eq 0f64 -00:16:05 v #17404 > > -00:16:05 v #17405 > > 1.5 |> round -00:16:05 v #17406 > > |> _assert_eq 2f64 -00:16:05 v #17407 > > -00:16:05 v #17408 > > 2.5 |> round -00:16:05 v #17409 > > |> _assert_eq 2f64 -00:16:05 v #17410 > > -00:16:05 v #17411 > > 3.5 |> round -00:16:05 v #17412 > > |> _assert_eq 4f64 -00:16:06 v #17413 > > -00:16:06 v #17414 > > ── [ 446.02ms - stdout ] ─────────────────────────────────────────────────────── -00:16:06 v #17415 > > │ __assert_eq / actual: 0.0 / expected: 0.0 -00:16:06 v #17416 > > │ __assert_eq / actual: 2.0 / expected: 2.0 -00:16:06 v #17417 > > │ __assert_eq / actual: 2.0 / expected: 2.0 -00:16:06 v #17418 > > │ __assert_eq / actual: 4.0 / expected: 4.0 -00:16:06 v #17419 > > │ -00:16:06 v #17420 > > -00:16:06 v #17421 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:16:06 v #17422 > > │ ## log_base -00:16:06 v #17423 > > -00:16:06 v #17424 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:06 v #17425 > > inl log_base (new_base : f64) (a : f64) : f64 = -00:16:06 v #17426 > > $'System.Math.Log (!a, !new_base)' -00:16:06 v #17427 > > -00:16:06 v #17428 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:06 v #17429 > > //// test -00:16:06 v #17430 > > -00:16:06 v #17431 > > 100 |> log_base 10 -00:16:06 v #17432 > > |> _assert_eq 2 -00:16:06 v #17433 > > -00:16:06 v #17434 > > ── [ 491.62ms - stdout ] ─────────────────────────────────────────────────────── -00:16:06 v #17435 > > │ __assert_eq / actual: 2.0 / expected: 2.0 -00:16:06 v #17436 > > │ -00:16:06 v #17437 > > -00:16:06 v #17438 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:16:06 v #17439 > > │ ## round -00:16:06 v #17440 > > -00:16:06 v #17441 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:06 v #17442 > > inl round forall t {float}. (x : t) : t = -00:16:06 v #17443 > > x |> $'round' -00:16:07 v #17444 > > -00:16:07 v #17445 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:07 v #17446 > > //// test -00:16:07 v #17447 > > -00:16:07 v #17448 > > 0.5 |> round -00:16:07 v #17449 > > |> _assert_eq 0f64 -00:16:07 v #17450 > > -00:16:07 v #17451 > > ── [ 407.34ms - stdout ] ─────────────────────────────────────────────────────── -00:16:07 v #17452 > > │ __assert_eq / actual: 0.0 / expected: 0.0 -00:16:07 v #17453 > > │ -00:16:07 v #17454 > > -00:16:07 v #17455 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:07 v #17456 > > //// test -00:16:07 v #17457 > > -00:16:07 v #17458 > > 0.6 |> round -00:16:07 v #17459 > > |> _assert_eq 1f64 -00:16:08 v #17460 > > -00:16:08 v #17461 > > ── [ 446.66ms - stdout ] ─────────────────────────────────────────────────────── -00:16:08 v #17462 > > │ __assert_eq / actual: 1.0 / expected: 1.0 -00:16:08 v #17463 > > │ -00:16:08 v #17464 > 00:00:18 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 7939 } -00:16:08 v #17465 > 00:00:18 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/lib/spiral/math.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/lib/spiral/math.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:16:09 v #17466 > 00:00:19 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/lib/spiral/math.dib.ipynb to html -00:16:09 v #17467 > 00:00:19 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. -00:16:09 v #17468 > 00:00:19 v #7 ! validate(nb) -00:16:10 v #17469 > 00:00:19 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 -00:16:10 v #17470 > 00:00:19 v #9 ! return _pygments_highlight( -00:16:10 v #17471 > 00:00:20 v #10 ! [NbConvertApp] Writing 304842 bytes to c:\home\git\polyglot\lib\spiral\math.dib.html -00:16:10 v #17472 > 00:00:20 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 850 } -00:16:10 v #17473 > 00:00:20 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 850 } -00:16:10 v #17474 > 00:00:20 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/math.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/math.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:16:11 v #17475 > 00:00:20 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } -00:16:11 v #17476 > 00:00:20 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } -00:16:11 v #17477 > 00:00:20 d #16 spiral.run / dib / { exit_code = 0; result_length = 8848 } -00:16:11 d #17478 runtime.execute_with_options_async / { exit_code = 0; output_length = 11867 } -00:16:10 d #21 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path math.dib --retries 3 -00:16:11 d #17479 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path mapm.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path mapm.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } -00:16:11 v #17480 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "mapm.dib", "--retries", "3"])) } -00:16:11 v #17481 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/lib/spiral/mapm.dib", "--output-path", "c:/home/git/polyglot/lib/spiral/mapm.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/lib/spiral/mapm.dib" --output-path "c:/home/git/polyglot/lib/spiral/mapm.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } -00:16:12 v #17482 > > -00:16:12 v #17483 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:16:12 v #17484 > > │ # mapm -00:16:16 v #17485 > > -00:16:16 v #17486 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:16 v #17487 > > open rust.rust_operators -00:16:17 v #17488 > > -00:16:17 v #17489 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:16:17 v #17490 > > │ ## rust -00:16:17 v #17491 > > -00:16:17 v #17492 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:16:17 v #17493 > > │ ### hash_map -00:16:17 v #17494 > > -00:16:17 v #17495 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:17 v #17496 > > nominal hash_map k v = -00:16:17 v #17497 > > `( -00:16:17 v #17498 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:16:17 v #17499 > > Fable.Core.Emit(\"std::collections::HashMap<$0, $1>\")>]]\n#endif\ntype -00:16:17 v #17500 > > std_collections_HashMap<'K, 'V> = class end" -00:16:17 v #17501 > > $'' : $'std_collections_HashMap<`k, `v>' -00:16:17 v #17502 > > ) -00:16:17 v #17503 > > -00:16:17 v #17504 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:16:17 v #17505 > > │ ### b_tree_map -00:16:17 v #17506 > > -00:16:17 v #17507 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:17 v #17508 > > nominal b_tree_map k v = -00:16:17 v #17509 > > `( -00:16:17 v #17510 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:16:17 v #17511 > > Fable.Core.Emit(\"std::collections::BTreeMap<$0, $1>\")>]]\n#endif\ntype -00:16:17 v #17512 > > std_collections_BTreeMap<'K, 'V> = class end" -00:16:17 v #17513 > > $'' : $'std_collections_BTreeMap<`k, `v>' -00:16:17 v #17514 > > ) -00:16:17 v #17515 > > -00:16:17 v #17516 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:16:17 v #17517 > > │ ### new_hash_map -00:16:17 v #17518 > > -00:16:17 v #17519 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:17 v #17520 > > inl new_hash_map () : hash_map _ _ = -00:16:17 v #17521 > > !\($'"std::collections::HashMap::new()"') -00:16:18 v #17522 > > -00:16:18 v #17523 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:16:18 v #17524 > > │ ### new_b_tree_map -00:16:18 v #17525 > > -00:16:18 v #17526 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:18 v #17527 > > inl new_b_tree_map () : b_tree_map _ _ = -00:16:18 v #17528 > > !\($'"std::collections::BTreeMap::new()"') -00:16:18 v #17529 > > -00:16:18 v #17530 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:16:18 v #17531 > > │ ### get -00:16:18 v #17532 > > -00:16:18 v #17533 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:18 v #17534 > > inl get forall k v. (key : k) (map : hash_map k v) : optionm'.option' v = -00:16:18 v #17535 > > inl key = join key -00:16:18 v #17536 > > !\\(map, $'"std::collections::HashMap::get(&$0, &!key).map(|x| -00:16:18 v #17537 > > x).cloned()"') -00:16:19 v #17538 > > -00:16:19 v #17539 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:16:19 v #17540 > > │ ### insert -00:16:19 v #17541 > > -00:16:19 v #17542 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:19 v #17543 > > inl insert forall k v. (key : k) (value : v) (map : hash_map k v) : -00:16:19 v #17544 > > optionm'.option' v = -00:16:19 v #17545 > > inl key = join key -00:16:19 v #17546 > > !\($'"let mut !map = !map"') -00:16:19 v #17547 > > !\($'"std::collections::HashMap::insert(&mut !map, !key, !value)"') -00:16:19 v #17548 > > -00:16:19 v #17549 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:16:19 v #17550 > > │ ### map' -00:16:19 v #17551 > > -00:16:19 v #17552 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:19 v #17553 > > inl map' forall k v w. (fn : v -> w) (map : hash_map k v) : hash_map k w = -00:16:19 v #17554 > > !\\((map, fn), $'"$0.into_iter().map(|(k, v)| (k, $1(v))).collect()"') -00:16:20 v #17555 > > -00:16:20 v #17556 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:16:20 v #17557 > > │ ### hash_map_count -00:16:20 v #17558 > > -00:16:20 v #17559 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:20 v #17560 > > inl hash_map_count forall k v. (map : hash_map k v) : i32 = -00:16:20 v #17561 > > !\\(map, $'"$0.count()"') -00:16:20 v #17562 > > -00:16:20 v #17563 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:16:20 v #17564 > > │ ### from_vec -00:16:20 v #17565 > > -00:16:20 v #17566 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:20 v #17567 > > inl from_vec forall k v. (vec : am'.vec (k * v)) : hash_map k v = -00:16:20 v #17568 > > !\($'"std::collections::HashMap::from_iter(!vec)"') -00:16:20 v #17569 > > -00:16:20 v #17570 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:16:20 v #17571 > > │ ### from_vec_pairs -00:16:20 v #17572 > > -00:16:20 v #17573 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:20 v #17574 > > inl from_vec_pairs forall k v. (vec : am'.vec (pair k v)) : hash_map k v = -00:16:20 v #17575 > > !\($'"std::collections::HashMap::from_iter(!vec.iter().map(|x| -00:16:20 v #17576 > > x.as_ref()).map(|&(ref k, ref v)| (k.clone(), v.clone())))"') -00:16:21 v #17577 > > -00:16:21 v #17578 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:16:21 v #17579 > > │ ### b_tree_map_from_vec_pairs -00:16:21 v #17580 > > -00:16:21 v #17581 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:21 v #17582 > > inl b_tree_map_from_vec_pairs forall k v. (vec : am'.vec (pair k v)) : -00:16:21 v #17583 > > b_tree_map k v = -00:16:21 v #17584 > > !\($'"std::collections::BTreeMap::from_iter(!vec.iter().map(|x| -00:16:21 v #17585 > > x.as_ref()).map(|&(ref k, ref v)| (k.clone(), v.clone())))"') -00:16:21 v #17586 > > -00:16:21 v #17587 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:16:21 v #17588 > > │ ### from_array -00:16:21 v #17589 > > -00:16:21 v #17590 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:21 v #17591 > > inl from_array forall k v. (array : array_base (k * v)) : hash_map k v = -00:16:21 v #17592 > > array |> am'.to_vec |> from_vec -00:16:22 v #17593 > > -00:16:22 v #17594 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:16:22 v #17595 > > │ ### from_list -00:16:22 v #17596 > > -00:16:22 v #17597 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:22 v #17598 > > inl from_list forall k v. (list : list (k * v)) : hash_map k v = -00:16:22 v #17599 > > inl (a list) : _ i32 _ = list |> listm.toArray -00:16:22 v #17600 > > list |> am'.to_vec |> from_vec -00:16:22 v #17601 > > -00:16:22 v #17602 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:16:22 v #17603 > > │ ### to_vec -00:16:22 v #17604 > > -00:16:22 v #17605 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:22 v #17606 > > inl to_vec forall k v. (map : hash_map k v) : am'.vec (k * v) = -00:16:22 v #17607 > > !\\(map, $'"$0.into_iter().map(|(k, v)| (k, v)).collect::<Vec<_>>()"') -00:16:23 v #17608 > > -00:16:23 v #17609 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:16:23 v #17610 > > │ ## fsharp -00:16:23 v #17611 > > -00:16:23 v #17612 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:16:23 v #17613 > > │ ### map -00:16:23 v #17614 > > -00:16:23 v #17615 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:23 v #17616 > > nominal map k v = $'Map<`k, `v>' -00:16:23 v #17617 > > -00:16:23 v #17618 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:16:23 v #17619 > > │ ### item -00:16:23 v #17620 > > -00:16:23 v #17621 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:23 v #17622 > > inl item forall k v. (k : k) (map : map k v) : v = -00:16:23 v #17623 > > $'!map.[[!k]]' -00:16:23 v #17624 > > -00:16:23 v #17625 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:16:23 v #17626 > > │ ### of_array -00:16:23 v #17627 > > -00:16:23 v #17628 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:23 v #17629 > > inl of_array forall k v. (array : a _ (k * v)) : map k v = -00:16:23 v #17630 > > $'!array |> Array.map (fun (struct (a, b)) -> a, b) |> Map.ofArray' -00:16:24 v #17631 > 00:00:13 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 6424 } -00:16:24 v #17632 > 00:00:13 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/lib/spiral/mapm.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/lib/spiral/mapm.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:16:25 v #17633 > 00:00:14 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/lib/spiral/mapm.dib.ipynb to html -00:16:25 v #17634 > 00:00:14 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. -00:16:25 v #17635 > 00:00:14 v #7 ! validate(nb) -00:16:26 v #17636 > 00:00:15 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 -00:16:26 v #17637 > 00:00:15 v #9 ! return _pygments_highlight( -00:16:26 v #17638 > 00:00:15 v #10 ! [NbConvertApp] Writing 301372 bytes to c:\home\git\polyglot\lib\spiral\mapm.dib.html -00:16:26 v #17639 > 00:00:15 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 850 } -00:16:26 v #17640 > 00:00:15 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 850 } -00:16:26 v #17641 > 00:00:15 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/mapm.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/mapm.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:16:26 v #17642 > 00:00:15 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } -00:16:26 v #17643 > 00:00:15 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } -00:16:26 v #17644 > 00:00:15 d #16 spiral.run / dib / { exit_code = 0; result_length = 7333 } -00:16:26 d #17645 runtime.execute_with_options_async / { exit_code = 0; output_length = 10146 } -00:16:26 d #22 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path mapm.dib --retries 3 -00:16:26 d #17646 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path optionm'.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path optionm'.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } -00:16:26 v #17647 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "optionm'.dib", "--retries", "3"])) } -00:16:26 v #17648 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/lib/spiral/optionm'.dib", "--output-path", "c:/home/git/polyglot/lib/spiral/optionm'.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/lib/spiral/optionm'.dib" --output-path "c:/home/git/polyglot/lib/spiral/optionm'.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } -00:16:28 v #17649 > > -00:16:28 v #17650 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:16:28 v #17651 > > │ # optionm' -00:16:31 v #17652 > > -00:16:31 v #17653 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:31 v #17654 > > open rust -00:16:31 v #17655 > > open rust_operators -00:16:33 v #17656 > > -00:16:33 v #17657 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:33 v #17658 > > //// test -00:16:33 v #17659 > > -00:16:33 v #17660 > > open testing -00:16:33 v #17661 > > -00:16:33 v #17662 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:16:33 v #17663 > > │ ## optionm' -00:16:33 v #17664 > > -00:16:33 v #17665 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:16:33 v #17666 > > │ ### default_value -00:16:33 v #17667 > > -00:16:33 v #17668 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:33 v #17669 > > inl default_value d = -00:16:33 v #17670 > > optionm.defaultWith d -00:16:34 v #17671 > > -00:16:34 v #17672 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:34 v #17673 > > //// test -00:16:34 v #17674 > > -00:16:34 v #17675 > > None -00:16:34 v #17676 > > |> default_value 3i32 -00:16:34 v #17677 > > |> _assert_eq 3i32 -00:16:35 v #17678 > > -00:16:35 v #17679 > > ── [ 989.93ms - stdout ] ─────────────────────────────────────────────────────── -00:16:35 v #17680 > > │ __assert_eq / actual: 3 / expected: 3 -00:16:35 v #17681 > > │ -00:16:35 v #17682 > > -00:16:35 v #17683 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:16:35 v #17684 > > │ ### (/??) -00:16:35 v #17685 > > -00:16:35 v #17686 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:35 v #17687 > > inl (/??) a b = -00:16:35 v #17688 > > a |> default_value b -00:16:35 v #17689 > > -00:16:35 v #17690 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:35 v #17691 > > //// test -00:16:35 v #17692 > > -00:16:35 v #17693 > > None /?? 3i32 -00:16:35 v #17694 > > |> _assert_eq 3i32 -00:16:35 v #17695 > > -00:16:35 v #17696 > > ── [ 480.78ms - stdout ] ─────────────────────────────────────────────────────── -00:16:35 v #17697 > > │ __assert_eq / actual: 3 / expected: 3 -00:16:35 v #17698 > > │ -00:16:35 v #17699 > > -00:16:35 v #17700 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:16:35 v #17701 > > │ ### default_with -00:16:35 v #17702 > > -00:16:35 v #17703 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:35 v #17704 > > inl default_with fn = function -00:16:35 v #17705 > > | Some x => x -00:16:35 v #17706 > > | None => fn () -00:16:36 v #17707 > > -00:16:36 v #17708 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:36 v #17709 > > //// test -00:16:36 v #17710 > > -00:16:36 v #17711 > > None -00:16:36 v #17712 > > |> default_with fun () => 3i32 -00:16:36 v #17713 > > |> _assert_eq 3i32 -00:16:36 v #17714 > > -00:16:36 v #17715 > > ── [ 436.69ms - stdout ] ─────────────────────────────────────────────────────── -00:16:36 v #17716 > > │ __assert_eq / actual: 3 / expected: 3 -00:16:36 v #17717 > > │ -00:16:36 v #17718 > > -00:16:36 v #17719 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:16:36 v #17720 > > │ ### choose -00:16:36 v #17721 > > -00:16:36 v #17722 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:36 v #17723 > > inl choose fn a b = -00:16:36 v #17724 > > match a, b with -00:16:36 v #17725 > > | Some x, Some y => fn x y |> Some -00:16:36 v #17726 > > | _ => None -00:16:37 v #17727 > > -00:16:37 v #17728 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:37 v #17729 > > //// test -00:16:37 v #17730 > > -00:16:37 v #17731 > > (Some 2i32, Some 3) -00:16:37 v #17732 > > ||> choose (+) -00:16:37 v #17733 > > |> _assert_eq (Some 5) -00:16:37 v #17734 > > -00:16:37 v #17735 > > ── [ 841.41ms - stdout ] ─────────────────────────────────────────────────────── -00:16:37 v #17736 > > │ __assert_eq / actual: US0_0 5 / expected: US0_0 5 -00:16:37 v #17737 > > │ -00:16:37 v #17738 > > -00:16:37 v #17739 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:16:37 v #17740 > > │ ### iter -00:16:37 v #17741 > > -00:16:37 v #17742 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:37 v #17743 > > inl iter fn = function -00:16:37 v #17744 > > | Some x => fn x -00:16:37 v #17745 > > | None => () -00:16:38 v #17746 > > -00:16:38 v #17747 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:38 v #17748 > > //// test -00:16:38 v #17749 > > -00:16:38 v #17750 > > inl n = mut 1i32 -00:16:38 v #17751 > > inl fn = -00:16:38 v #17752 > > fun n' => -00:16:38 v #17753 > > n <- *n + n' -00:16:38 v #17754 > > Some 1i32 |> iter fn -00:16:38 v #17755 > > None |> iter fn -00:16:38 v #17756 > > *n -00:16:38 v #17757 > > |> _assert_eq 2i32 -00:16:38 v #17758 > > -00:16:38 v #17759 > > ── [ 567.97ms - stdout ] ─────────────────────────────────────────────────────── -00:16:38 v #17760 > > │ __assert_eq / actual: 2 / expected: 2 -00:16:38 v #17761 > > │ -00:16:38 v #17762 > > -00:16:38 v #17763 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:16:38 v #17764 > > │ ### flatten -00:16:38 v #17765 > > -00:16:38 v #17766 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:38 v #17767 > > inl flatten x = -00:16:38 v #17768 > > match x with -00:16:38 v #17769 > > | Some (Some x) => Some x -00:16:38 v #17770 > > | _ => None -00:16:39 v #17771 > > -00:16:39 v #17772 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:16:39 v #17773 > > │ ## fsharp -00:16:39 v #17774 > > -00:16:39 v #17775 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:16:39 v #17776 > > │ ### option' -00:16:39 v #17777 > > -00:16:39 v #17778 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:39 v #17779 > > nominal option' t = $"backend_switch `({ Fsharp : $"`t option"; Python : t })" -00:16:39 v #17780 > > -00:16:39 v #17781 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:16:39 v #17782 > > │ ### none' -00:16:39 v #17783 > > -00:16:39 v #17784 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:39 v #17785 > > inl none' forall t. () : option' t = -00:16:39 v #17786 > > $'None' -00:16:40 v #17787 > > -00:16:40 v #17788 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:16:40 v #17789 > > │ ### some' -00:16:40 v #17790 > > -00:16:40 v #17791 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:40 v #17792 > > inl some' forall t. (x : t) : option' t = -00:16:40 v #17793 > > backend_switch { -00:16:40 v #17794 > > Fsharp = fun () => $'Some !x ' : option' t -00:16:40 v #17795 > > Python = fun () => $'!x # some\' ' : option' t -00:16:40 v #17796 > > } -00:16:40 v #17797 > > -00:16:40 v #17798 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:16:40 v #17799 > > │ ### default_value' -00:16:40 v #17800 > > -00:16:40 v #17801 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:40 v #17802 > > inl default_value' forall t. (value : t) (x : option' t) : t = -00:16:40 v #17803 > > backend_switch { -00:16:40 v #17804 > > Fsharp = fun () => $'!x |> Option.defaultValue !value ' : t -00:16:40 v #17805 > > Python = fun () => $'!x or !value ' : t -00:16:40 v #17806 > > } -00:16:41 v #17807 > > -00:16:41 v #17808 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:16:41 v #17809 > > │ ### value' -00:16:41 v #17810 > > -00:16:41 v #17811 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:41 v #17812 > > inl value' forall t. (x : option' t) : t = -00:16:41 v #17813 > > backend_switch { -00:16:41 v #17814 > > Fsharp = fun () => $'!x |> Option.value' : t -00:16:41 v #17815 > > Python = fun () => $'!x ' : t -00:16:41 v #17816 > > } -00:16:41 v #17817 > > -00:16:41 v #17818 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:16:41 v #17819 > > │ ### box -00:16:41 v #17820 > > -00:16:41 v #17821 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:41 v #17822 > > inl box forall t. (x : option t) : option' t = -00:16:41 v #17823 > > // x -00:16:41 v #17824 > > // |> optionm.map some' -00:16:41 v #17825 > > // |> default_with none' -00:16:41 v #17826 > > match x with -00:16:41 v #17827 > > | Some x => some' x -00:16:41 v #17828 > > | None => none' () -00:16:41 v #17829 > > -00:16:41 v #17830 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:16:41 v #17831 > > │ ### map -00:16:41 v #17832 > > -00:16:41 v #17833 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:41 v #17834 > > inl map forall t u. (fn : t -> u) (x : option' t) : option' u = -00:16:41 v #17835 > > inl x_ () = -00:16:41 v #17836 > > backend_switch { -00:16:41 v #17837 > > Fsharp = fun () => -00:16:41 v #17838 > > inl result : mut (option' u) = none' () |> mut -00:16:41 v #17839 > > inl set_result x = -00:16:41 v #17840 > > result <- x -00:16:41 v #17841 > > inl get_result () = -00:16:41 v #17842 > > *result -00:16:41 v #17843 > > $'match !x with' -00:16:41 v #17844 > > $'| Some x -> (' -00:16:41 v #17845 > > $'(fun () ->' -00:16:41 v #17846 > > $'(fun () ->' -00:16:41 v #17847 > > inl x = dyn $'x' -00:16:41 v #17848 > > x |> fn |> emit_unit -00:16:41 v #17849 > > $')' -00:16:41 v #17850 > > $'|> fun x -> x () |> Some' -00:16:41 v #17851 > > $') () ) | None -> None' -00:16:41 v #17852 > > $'|> fun x -> !set_result x' -00:16:41 v #17853 > > $'!get_result ()' : option' u -00:16:41 v #17854 > > Python = fun () => -00:16:41 v #17855 > > if x =. none' () -00:16:41 v #17856 > > then none' () -00:16:41 v #17857 > > else fn $'!x ' |> fun x => $'!x ' : option' u -00:16:41 v #17858 > > } -00:16:41 v #17859 > > -00:16:41 v #17860 > > backend_switch { -00:16:41 v #17861 > > Fsharp = fun () => -00:16:41 v #17862 > > inl fn = join fn -00:16:41 v #17863 > > $'!x |> Option.map !fn ' : option' u -00:16:41 v #17864 > > Python = fun () => -00:16:41 v #17865 > > if x =. none' () -00:16:41 v #17866 > > then none' () -00:16:41 v #17867 > > else fn $'!x ' |> fun x => $'!x ' : option' u -00:16:41 v #17868 > > } -00:16:42 v #17869 > > -00:16:42 v #17870 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:16:42 v #17871 > > │ ### map'' -00:16:42 v #17872 > > -00:16:42 v #17873 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:42 v #17874 > > inl map'' forall t u. (fn : t -> u) (x : option' t) : option' u = -00:16:42 v #17875 > > x |> map fn -00:16:42 v #17876 > > -00:16:42 v #17877 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:16:42 v #17878 > > │ ### unbox -00:16:42 v #17879 > > -00:16:42 v #17880 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:42 v #17881 > > inl unbox forall t. (x : option' t) : option t = -00:16:42 v #17882 > > x |> map'' Some |> default_value' None -00:16:42 v #17883 > > // inl some x : option t = Some x -00:16:42 v #17884 > > // inl some = join some -00:16:42 v #17885 > > // inl none : option t = None -00:16:42 v #17886 > > // $'!x |> Option.map !some |> Option.defaultValue !none ' -00:16:43 v #17887 > > -00:16:43 v #17888 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:43 v #17889 > > //// test -00:16:43 v #17890 > > ///! fsharp -00:16:43 v #17891 > > ///! cuda -00:16:43 v #17892 > > ///! rust -00:16:43 v #17893 > > ///! typescript -00:16:43 v #17894 > > ///! python -00:16:43 v #17895 > > -00:16:43 v #17896 > > inl x = Some 3i32 -00:16:43 v #17897 > > inl y : option i32 = None -00:16:43 v #17898 > > inl x' = x |> box |> unbox -00:16:43 v #17899 > > inl y' = y |> box |> map id |> unbox -00:16:43 v #17900 > > (x', y') |> _assert_eq' (x, y) -00:16:48 v #17901 > > -00:16:48 v #17902 > > ── [ 5.40s - return value ] ──────────────────────────────────────────────────── -00:16:48 v #17903 > > │ .py output (Cuda): -00:16:48 v #17904 > > │ __assert_eq' / actual: (US0_0(v0=3), US0_1()) / expected: -00:16:48 v #17905 > > (US0_0(v0=3), US0_1()) -00:16:48 v #17906 > > │ -00:16:48 v #17907 > > │ .rs output: -00:16:48 v #17908 > > │ __assert_eq' / actual: (US0_0(3), US0_1) / expected: -00:16:48 v #17909 > > (US0_0(3), US0_1) -00:16:48 v #17910 > > │ -00:16:48 v #17911 > > │ .ts output: -00:16:48 v #17912 > > │ __assert_eq' / actual: US0_0 3,US0_1 / expected: US0_0 -00:16:48 v #17913 > > 3,US0_1 -00:16:48 v #17914 > > │ -00:16:48 v #17915 > > │ .py output: -00:16:48 v #17916 > > │ __assert_eq' / actual: (US0_0 3, US0_1) / expected: (US0_0 3, -00:16:48 v #17917 > > US0_1) -00:16:48 v #17918 > > │ -00:16:48 v #17919 > > │ -00:16:48 v #17920 > > -00:16:48 v #17921 > > ── [ 5.40s - stdout ] ────────────────────────────────────────────────────────── -00:16:48 v #17922 > > │ .fsx output: -00:16:48 v #17923 > > │ __assert_eq' / actual: struct (US0_0 3, US0_1) / expected: -00:16:48 v #17924 > > struct (US0_0 3, US0_1) -00:16:48 v #17925 > > │ -00:16:48 v #17926 > > -00:16:48 v #17927 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:16:48 v #17928 > > │ ### of_obj -00:16:48 v #17929 > > -00:16:48 v #17930 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:48 v #17931 > > inl of_obj forall t. (x : t) : option' t = -00:16:48 v #17932 > > backend_switch { -00:16:48 v #17933 > > Fsharp = fun () => -00:16:48 v #17934 > > $'let mutable _!x = None' -00:16:48 v #17935 > > $'#if \!FABLE_COMPILER && \!WASM && \!CONTRACT' -00:16:48 v #17936 > > ((x |> $'Option.ofObj') : option' t) |> emit_unit -00:16:48 v #17937 > > $'#else' -00:16:48 v #17938 > > $'Some !x ' -00:16:48 v #17939 > > $'#endif' -00:16:48 v #17940 > > $'|> fun x -> _!x <- Some x' -00:16:48 v #17941 > > $'match _!x with Some x -> x | None -> failwith "optionm\'.of_obj -00:16:48 v #17942 > > _!x=None"' : option' t -00:16:48 v #17943 > > Python = fun () => -00:16:48 v #17944 > > $'!x ' : option' t -00:16:48 v #17945 > > } -00:16:49 v #17946 > > -00:16:49 v #17947 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:49 v #17948 > > //// test -00:16:49 v #17949 > > ///! fsharp -00:16:49 v #17950 > > ///! cuda -00:16:49 v #17951 > > ////! rust // attempted to zero-initialize type `alloc::sync::Arc<dyn -00:16:49 v #17952 > > core::any::Any>`, which is invalid -00:16:49 v #17953 > > ///! typescript -00:16:49 v #17954 > > ///! python -00:16:49 v #17955 > > -00:16:49 v #17956 > > null () -00:16:49 v #17957 > > |> of_obj -00:16:49 v #17958 > > |> unbox -00:16:49 v #17959 > > |> _assert_eq (None : option string) -00:16:51 v #17960 > > -00:16:51 v #17961 > > ── [ 2.38s - return value ] ──────────────────────────────────────────────────── -00:16:51 v #17962 > > │ .py output (Cuda): -00:16:51 v #17963 > > │ __assert_eq / actual: US0_1() / expected: US0_1() -00:16:51 v #17964 > > │ -00:16:51 v #17965 > > │ .ts output: -00:16:51 v #17966 > > │ __assert_eq / actual: US0_1 / expected: US0_1 -00:16:51 v #17967 > > │ -00:16:51 v #17968 > > │ .py output: -00:16:51 v #17969 > > │ __assert_eq / actual: US0_1 / expected: US0_1 -00:16:51 v #17970 > > │ -00:16:51 v #17971 > > │ -00:16:51 v #17972 > > -00:16:51 v #17973 > > ── [ 2.38s - stdout ] ────────────────────────────────────────────────────────── -00:16:51 v #17974 > > │ .fsx output: -00:16:51 v #17975 > > │ __assert_eq / actual: US0_1 / expected: US0_1 -00:16:51 v #17976 > > │ -00:16:51 v #17977 > > -00:16:51 v #17978 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:51 v #17979 > > //// test -00:16:51 v #17980 > > ///! fsharp -00:16:51 v #17981 > > ///! cuda -00:16:51 v #17982 > > ///! rust -00:16:51 v #17983 > > ///! typescript -00:16:51 v #17984 > > ///! python -00:16:51 v #17985 > > -00:16:51 v #17986 > > "" -00:16:51 v #17987 > > |> of_obj -00:16:51 v #17988 > > |> unbox -00:16:51 v #17989 > > |> _assert_eq' (Some "") -00:16:54 v #17990 > > -00:16:54 v #17991 > > ── [ 3.24s - return value ] ──────────────────────────────────────────────────── -00:16:54 v #17992 > > │ .py output (Cuda): -00:16:54 v #17993 > > │ __assert_eq' / actual: US0_0(v0='') / expected: US0_0(v0='') -00:16:54 v #17994 > > │ -00:16:54 v #17995 > > │ .rs output: -00:16:54 v #17996 > > │ __assert_eq' / actual: US0_0("") / expected: US0_0("") -00:16:54 v #17997 > > │ -00:16:54 v #17998 > > │ .ts output: -00:16:54 v #17999 > > │ __assert_eq' / actual: US0_0 / expected: US0_0 -00:16:54 v #18000 > > │ -00:16:54 v #18001 > > │ .py output: -00:16:54 v #18002 > > │ __assert_eq' / actual: US0_0 "" / expected: US0_0 "" -00:16:54 v #18003 > > │ -00:16:54 v #18004 > > │ -00:16:54 v #18005 > > -00:16:54 v #18006 > > ── [ 3.24s - stdout ] ────────────────────────────────────────────────────────── -00:16:54 v #18007 > > │ .fsx output: -00:16:54 v #18008 > > │ __assert_eq' / actual: US0_0 "" / expected: US0_0 "" -00:16:54 v #18009 > > │ -00:16:54 v #18010 > > -00:16:54 v #18011 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:16:54 v #18012 > > │ ### flatten' -00:16:54 v #18013 > > -00:16:54 v #18014 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:54 v #18015 > > inl flatten' x = -00:16:54 v #18016 > > x -00:16:54 v #18017 > > |> unbox -00:16:54 v #18018 > > |> optionm.map unbox -00:16:54 v #18019 > > |> flatten -00:16:55 v #18020 > > -00:16:55 v #18021 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:16:55 v #18022 > > │ ## rust -00:16:55 v #18023 > > -00:16:55 v #18024 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:16:55 v #18025 > > │ ### try' -00:16:55 v #18026 > > -00:16:55 v #18027 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:55 v #18028 > > inl try' forall t. (x : option' t) : t = -00:16:55 v #18029 > > !\\(x, $'"$0?"') -00:16:55 v #18030 > > -00:16:55 v #18031 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:16:55 v #18032 > > │ ### map' -00:16:55 v #18033 > > -00:16:55 v #18034 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:55 v #18035 > > inl map' forall t u. (fn : t -> u) (x : option' t) : option' u = -00:16:55 v #18036 > > (!\\(x, $'"true; let _optionm_map_ = $0.map(|x| { //"') : bool) |> ignore -00:16:55 v #18037 > > inl result = fn !\($'"x"') -00:16:55 v #18038 > > (!\\(result, $'"true; $0 })"') : bool) |> ignore -00:16:55 v #18039 > > !\($'"_optionm_map_"') -00:16:56 v #18040 > > -00:16:56 v #18041 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:16:56 v #18042 > > │ ### unwrap -00:16:56 v #18043 > > -00:16:56 v #18044 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:56 v #18045 > > inl unwrap forall t. (x : option' t) : t = -00:16:56 v #18046 > > !\\(x, $'"$0.unwrap()"') -00:16:56 v #18047 > > -00:16:56 v #18048 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:16:56 v #18049 > > │ ### take -00:16:56 v #18050 > > -00:16:56 v #18051 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:56 v #18052 > > inl take forall t. (x : option' t) : option' t = -00:16:56 v #18053 > > (!\\(x, $'"true; let mut !x = !x"') : bool) |> ignore -00:16:56 v #18054 > > !\\(x, $'"Option::take(&mut $0)"') -00:16:56 v #18055 > > -00:16:56 v #18056 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:16:56 v #18057 > > │ ### take_ref -00:16:56 v #18058 > > -00:16:56 v #18059 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:56 v #18060 > > inl take_ref forall t. (x : rust.ref (option' t)) : option' t = -00:16:56 v #18061 > > (!\\(x, $'"true; let mut !x = !x"') : bool) |> ignore -00:16:56 v #18062 > > !\\(x, $'"Option::take(&mut $0)"') -00:16:57 v #18063 > > -00:16:57 v #18064 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:16:57 v #18065 > > │ ### take_ref_mut -00:16:57 v #18066 > > -00:16:57 v #18067 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:57 v #18068 > > inl take_ref_mut forall t. (x : rust.ref (rust.mut' (option' t))) : option' t = -00:16:57 v #18069 > > !\\(x, $'"Option::take($0)"') -00:16:57 v #18070 > > -00:16:57 v #18071 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:16:57 v #18072 > > │ ### cloned -00:16:57 v #18073 > > -00:16:57 v #18074 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:57 v #18075 > > inl cloned forall t. (x : option' (rust.ref t)) : option' t = -00:16:57 v #18076 > > !\\(x, $'"$0.cloned()"') -00:16:58 v #18077 > > -00:16:58 v #18078 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:16:58 v #18079 > > │ ### as_ref -00:16:58 v #18080 > > -00:16:58 v #18081 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:58 v #18082 > > inl as_ref forall t. (x : rust.ref (option' t)) : option' (rust.ref t) = -00:16:58 v #18083 > > !\\(x, $'"$0.as_ref()"') -00:16:58 v #18084 > > -00:16:58 v #18085 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:16:58 v #18086 > > │ ### as_mut -00:16:58 v #18087 > > -00:16:58 v #18088 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:58 v #18089 > > inl as_mut forall t. (x : rust.ref (rust.mut' (option' t))) : option' (rust.ref -00:16:58 v #18090 > > (rust.mut' t)) = -00:16:58 v #18091 > > !\\(x, $'"$0.as_mut()"') -00:16:59 v #18092 > > -00:16:59 v #18093 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:16:59 v #18094 > > │ ### unwrap_or -00:16:59 v #18095 > > -00:16:59 v #18096 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:59 v #18097 > > inl unwrap_or forall t. (def : t) (x : option' t) : t = -00:16:59 v #18098 > > !\($'"!x.unwrap_or(!def)"') -00:16:59 v #18099 > > -00:16:59 v #18100 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:16:59 v #18101 > > │ ### and_then -00:16:59 v #18102 > > -00:16:59 v #18103 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:16:59 v #18104 > > inl and_then forall t u. (fn : t -> option' u) (x : option' t) : option' u = -00:16:59 v #18105 > > !\\((x, fn), $'"$0.and_then(|x| $1(x))"') -00:17:00 v #18106 > > -00:17:00 v #18107 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:17:00 v #18108 > > │ ### rc_upgrade -00:17:00 v #18109 > > -00:17:00 v #18110 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:17:00 v #18111 > > inl rc_upgrade forall t. (x : rust.weak_rc t) : option' (rust.rc t) = -00:17:00 v #18112 > > !\\(x, $'"std::rc::Weak::upgrade(&$0)"') -00:17:00 v #18113 > > -00:17:00 v #18114 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:17:00 v #18115 > > │ ### rc_into_inner -00:17:00 v #18116 > > -00:17:00 v #18117 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:17:00 v #18118 > > inl rc_into_inner forall t. (x : rust.rc t) : option' t = -00:17:00 v #18119 > > !\\(x, $'"std::rc::Rc::into_inner($0)"') -00:17:00 v #18120 > > -00:17:00 v #18121 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:17:00 v #18122 > > //// test -00:17:00 v #18123 > > ///! rust -00:17:00 v #18124 > > -00:17:00 v #18125 > > rust.new_rc 0i32 -00:17:00 v #18126 > > |> rc_into_inner -00:17:00 v #18127 > > |> unbox -00:17:00 v #18128 > > |> _assert_eq' (Some 0i32) -00:17:03 v #18129 > > -00:17:03 v #18130 > > ── [ 2.80s - return value ] ──────────────────────────────────────────────────── -00:17:03 v #18131 > > │ __assert_eq' / actual: US0_0(0) / expected: US0_0(0) -00:17:03 v #18132 > > │ -00:17:03 v #18133 > 00:00:36 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 16966 } -00:17:03 v #18134 > 00:00:36 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/lib/spiral/optionm'.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/lib/spiral/optionm'.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:17:06 v #18135 > 00:00:39 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/lib/spiral/optionm'.dib.ipynb to html -00:17:06 v #18136 > 00:00:39 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. -00:17:06 v #18137 > 00:00:39 v #7 ! validate(nb) -00:17:07 v #18138 > 00:00:40 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 -00:17:07 v #18139 > 00:00:40 v #9 ! return _pygments_highlight( -00:17:07 v #18140 > 00:00:40 v #10 ! [NbConvertApp] Writing 347031 bytes to c:\home\git\polyglot\lib\spiral\optionm'.dib.html -00:17:07 v #18141 > 00:00:40 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 858 } -00:17:07 v #18142 > 00:00:40 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 858 } -00:17:07 v #18143 > 00:00:40 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/optionm''.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/optionm''.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:17:08 v #18144 > 00:00:41 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } -00:17:08 v #18145 > 00:00:41 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } -00:17:08 v #18146 > 00:00:41 d #16 spiral.run / dib / { exit_code = 0; result_length = 17883 } -00:17:08 d #18147 runtime.execute_with_options_async / { exit_code = 0; output_length = 21406 } -00:17:08 d #23 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path optionm'.dib --retries 3 -00:17:08 d #18148 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path listm'.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path listm'.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } -00:17:08 v #18149 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "listm'.dib", "--retries", "3"])) } -00:17:08 v #18150 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/lib/spiral/listm'.dib", "--output-path", "c:/home/git/polyglot/lib/spiral/listm'.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/lib/spiral/listm'.dib" --output-path "c:/home/git/polyglot/lib/spiral/listm'.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } -00:17:09 v #18151 > > -00:17:09 v #18152 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:17:09 v #18153 > > │ # listm' -00:17:13 v #18154 > > -00:17:13 v #18155 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:17:13 v #18156 > > //// test -00:17:13 v #18157 > > -00:17:13 v #18158 > > open testing -00:17:14 v #18159 > > -00:17:14 v #18160 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:17:14 v #18161 > > │ ## listm' -00:17:14 v #18162 > > -00:17:14 v #18163 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:17:14 v #18164 > > │ ### append -00:17:14 v #18165 > > -00:17:14 v #18166 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:17:14 v #18167 > > instance append list t = -00:17:14 v #18168 > > listm.append -00:17:15 v #18169 > > -00:17:15 v #18170 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:17:15 v #18171 > > //// test -00:17:15 v #18172 > > -00:17:15 v #18173 > > [[ "a"; "b" ]] ++ [[ "c"; "d" ]] -00:17:15 v #18174 > > |> _assert_eq [[ "a"; "b"; "c"; "d" ]] -00:17:16 v #18175 > > -00:17:16 v #18176 > > ── [ 1.31s - stdout ] ────────────────────────────────────────────────────────── -00:17:16 v #18177 > > │ __assert_eq / actual: UH0_1 ("a", UH0_1 ("b", UH0_1 ("c", -00:17:16 v #18178 > > UH0_1 ("d", UH0_0)))) / expected: UH0_1 ("a", UH0_1 ("b", UH0_1 ("c", UH0_1 -00:17:16 v #18179 > > ("d", UH0_0)))) -00:17:16 v #18180 > > │ -00:17:16 v #18181 > > -00:17:16 v #18182 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:17:16 v #18183 > > │ ### collect -00:17:16 v #18184 > > -00:17:16 v #18185 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:17:16 v #18186 > > inl collect forall t r. (fn : t -> list r) (items : list t) : list r = -00:17:16 v #18187 > > items -00:17:16 v #18188 > > |> listm.map fn -00:17:16 v #18189 > > |> listm.fold (++) [[]] -00:17:16 v #18190 > > -00:17:16 v #18191 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:17:16 v #18192 > > │ ### replicate -00:17:16 v #18193 > > -00:17:16 v #18194 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:17:16 v #18195 > > inl replicate count x = -00:17:16 v #18196 > > listm.init count fun _ => x -00:17:17 v #18197 > > -00:17:17 v #18198 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:17:17 v #18199 > > │ ### map4 -00:17:17 v #18200 > > -00:17:17 v #18201 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:17:17 v #18202 > > inl map4 f l1 l2 l3 l4 = -00:17:17 v #18203 > > inl rec loop l1 l2 l3 l4 acc = -00:17:17 v #18204 > > match l1, l2, l3, l4 with -00:17:17 v #18205 > > | (x1 :: xs1), (x2 :: xs2), (x3 :: xs3), (x4 :: xs4) => -00:17:17 v #18206 > > loop xs1 xs2 xs3 xs4 (f x1 x2 x3 x4 :: acc) -00:17:17 v #18207 > > | _ => acc |> listm.rev -00:17:17 v #18208 > > loop l1 l2 l3 l4 [[]] -00:17:17 v #18209 > > -00:17:17 v #18210 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:17:17 v #18211 > > │ ### init_series -00:17:17 v #18212 > > -00:17:17 v #18213 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:17:17 v #18214 > > inl init_series start end inc = -00:17:17 v #18215 > > inl total : f64 = conv ((end - start) / inc) + 1 -00:17:17 v #18216 > > listm.init total (conv >> (*) inc >> (+) start) -00:17:18 v #18217 > > -00:17:18 v #18218 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:17:18 v #18219 > > //// test -00:17:18 v #18220 > > -00:17:18 v #18221 > > init_series 0 1 0.5 -00:17:18 v #18222 > > |> _assert_eq [[ 0f64; 0.5; 1 ]] -00:17:18 v #18223 > > -00:17:18 v #18224 > > ── [ 476.64ms - stdout ] ─────────────────────────────────────────────────────── -00:17:18 v #18225 > > │ __assert_eq / actual: UH0_1 (0.0, UH0_1 (0.5, UH0_1 (1.0, -00:17:18 v #18226 > > UH0_0))) / expected: UH0_1 (0.0, UH0_1 (0.5, UH0_1 (1.0, UH0_0))) -00:17:18 v #18227 > > │ -00:17:18 v #18228 > > -00:17:18 v #18229 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:17:18 v #18230 > > │ ### try_item -00:17:18 v #18231 > > -00:17:18 v #18232 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:17:18 v #18233 > > inl rec try_item i = function -00:17:18 v #18234 > > | Cons (x, _) when i = 0 => Some x -00:17:18 v #18235 > > | Cons (_, xs) => try_item (i - 1) xs -00:17:18 v #18236 > > | Nil => None -00:17:19 v #18237 > > -00:17:19 v #18238 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:17:19 v #18239 > > //// test -00:17:19 v #18240 > > -00:17:19 v #18241 > > listm.init 10i32 id -00:17:19 v #18242 > > |> try_item 9i32 -00:17:19 v #18243 > > |> _assert_eq (Some 9) -00:17:19 v #18244 > > -00:17:19 v #18245 > > ── [ 502.23ms - stdout ] ─────────────────────────────────────────────────────── -00:17:19 v #18246 > > │ __assert_eq / actual: US0_0 9 / expected: US0_0 9 -00:17:19 v #18247 > > │ -00:17:19 v #18248 > > -00:17:19 v #18249 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:17:19 v #18250 > > //// test -00:17:19 v #18251 > > -00:17:19 v #18252 > > listm.init 10i32 id -00:17:19 v #18253 > > |> try_item 10i32 -00:17:19 v #18254 > > |> _assert_eq None -00:17:20 v #18255 > > -00:17:20 v #18256 > > ── [ 493.57ms - stdout ] ─────────────────────────────────────────────────────── -00:17:20 v #18257 > > │ __assert_eq / actual: US0_1 / expected: US0_1 -00:17:20 v #18258 > > │ -00:17:20 v #18259 > > -00:17:20 v #18260 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:17:20 v #18261 > > │ ### item -00:17:20 v #18262 > > -00:17:20 v #18263 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:17:20 v #18264 > > inl item i = -00:17:20 v #18265 > > try_item i >> optionm.value -00:17:20 v #18266 > > -00:17:20 v #18267 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:17:20 v #18268 > > //// test -00:17:20 v #18269 > > -00:17:20 v #18270 > > listm.init 10i32 id -00:17:20 v #18271 > > |> item 9i32 -00:17:20 v #18272 > > |> _assert_eq 9 -00:17:21 v #18273 > > -00:17:21 v #18274 > > ── [ 461.18ms - stdout ] ─────────────────────────────────────────────────────── -00:17:21 v #18275 > > │ __assert_eq / actual: 9 / expected: 9 -00:17:21 v #18276 > > │ -00:17:21 v #18277 > > -00:17:21 v #18278 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:17:21 v #18279 > > //// test -00:17:21 v #18280 > > -00:17:21 v #18281 > > fun () => -00:17:21 v #18282 > > listm.init 10i32 id -00:17:21 v #18283 > > |> item 10i32 -00:17:21 v #18284 > > |> ignore -00:17:21 v #18285 > > |> _throws -00:17:21 v #18286 > > |> optionm.map sm'.format_exception -00:17:21 v #18287 > > |> _assert_eq (Some "System.Exception: Option does not have a value.") -00:17:21 v #18288 > > -00:17:21 v #18289 > > ── [ 649.94ms - stdout ] ─────────────────────────────────────────────────────── -00:17:21 v #18290 > > │ __assert_eq / actual: US1_0 "System.Exception: Option does -00:17:21 v #18291 > > not have a value." / expected: US1_0 "System.Exception: Option does not have a -00:17:21 v #18292 > > value." -00:17:21 v #18293 > > │ -00:17:21 v #18294 > > -00:17:21 v #18295 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:17:21 v #18296 > > │ ### try_item_ -00:17:21 v #18297 > > -00:17:21 v #18298 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:17:21 v #18299 > > let rec try_item_ i = function -00:17:21 v #18300 > > | Cons (x, _) when i = 0 => Some x -00:17:21 v #18301 > > | Cons (_, xs) => try_item_ (i - 1) xs -00:17:21 v #18302 > > | Nil => None -00:17:22 v #18303 > > -00:17:22 v #18304 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:17:22 v #18305 > > │ ### item_ -00:17:22 v #18306 > > -00:17:22 v #18307 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:17:22 v #18308 > > inl item_ i = -00:17:22 v #18309 > > try_item_ i >> optionm.value -00:17:22 v #18310 > > -00:17:22 v #18311 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:17:22 v #18312 > > │ ### sum -00:17:22 v #18313 > > -00:17:22 v #18314 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:17:22 v #18315 > > inl sum list = -00:17:22 v #18316 > > list |> listm.fold (+) 0 -00:17:22 v #18317 > > -00:17:22 v #18318 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:17:22 v #18319 > > //// test -00:17:22 v #18320 > > -00:17:22 v #18321 > > listm.init 10i32 id -00:17:22 v #18322 > > |> sum -00:17:22 v #18323 > > |> _assert_eq 45 -00:17:23 v #18324 > > -00:17:23 v #18325 > > ── [ 447.74ms - stdout ] ─────────────────────────────────────────────────────── -00:17:23 v #18326 > > │ __assert_eq / actual: 45 / expected: 45 -00:17:23 v #18327 > > │ -00:17:23 v #18328 > > -00:17:23 v #18329 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:17:23 v #18330 > > │ ### unzip -00:17:23 v #18331 > > -00:17:23 v #18332 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:17:23 v #18333 > > inl unzip list = -00:17:23 v #18334 > > (([[]], [[]]), list) -00:17:23 v #18335 > > ||> listm.fold fun (acc_x, acc_y) (x, y) => -00:17:23 v #18336 > > x :: acc_x, y :: acc_y -00:17:23 v #18337 > > |> fun x, y => -00:17:23 v #18338 > > x |> listm.rev, y |> listm.rev -00:17:23 v #18339 > > -00:17:23 v #18340 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:17:23 v #18341 > > //// test -00:17:23 v #18342 > > -00:17:23 v #18343 > > listm.init 10i32 id -00:17:23 v #18344 > > |> listm.map (fun x => x, x) -00:17:23 v #18345 > > |> unzip -00:17:23 v #18346 > > |> fun x, y => -00:17:23 v #18347 > > x |> sum -00:17:23 v #18348 > > |> _assert_eq 45 -00:17:23 v #18349 > > -00:17:23 v #18350 > > y |> sum -00:17:23 v #18351 > > |> _assert_eq 45 -00:17:24 v #18352 > > -00:17:24 v #18353 > > ── [ 459.54ms - stdout ] ─────────────────────────────────────────────────────── -00:17:24 v #18354 > > │ __assert_eq / actual: 45 / expected: 45 -00:17:24 v #18355 > > │ __assert_eq / actual: 45 / expected: 45 -00:17:24 v #18356 > > │ -00:17:24 v #18357 > > -00:17:24 v #18358 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:17:24 v #18359 > > │ ### try_index_of -00:17:24 v #18360 > > -00:17:24 v #18361 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:17:24 v #18362 > > inl try_index_of item list = -00:17:24 v #18363 > > inl rec loop i = function -00:17:24 v #18364 > > | [[]] => None -00:17:24 v #18365 > > | x :: xs => -00:17:24 v #18366 > > if x = item -00:17:24 v #18367 > > then Some i -00:17:24 v #18368 > > else loop (i + 1) xs -00:17:24 v #18369 > > loop 0 list -00:17:24 v #18370 > > -00:17:24 v #18371 > > inl index_of item = -00:17:24 v #18372 > > try_index_of item >> optionm.value -00:17:24 v #18373 > > -00:17:24 v #18374 > > inl try_index_of_ item list = -00:17:24 v #18375 > > let rec loop i = function -00:17:24 v #18376 > > | [[]] => None -00:17:24 v #18377 > > | x :: xs => -00:17:24 v #18378 > > if x = item -00:17:24 v #18379 > > then Some i -00:17:24 v #18380 > > else loop (i + 1) xs -00:17:24 v #18381 > > loop 0 list -00:17:24 v #18382 > > -00:17:24 v #18383 > > inl index_of_ item = -00:17:24 v #18384 > > try_index_of_ item >> optionm.value -00:17:24 v #18385 > > -00:17:24 v #18386 > > inl try_index_of__ item list = -00:17:24 v #18387 > > inl i = mut 0 -00:17:24 v #18388 > > inl list = mut list -00:17:24 v #18389 > > inl result = mut None -00:17:24 v #18390 > > let rec loop () = -00:17:24 v #18391 > > match *list with -00:17:24 v #18392 > > | [[]] => result <- None -00:17:24 v #18393 > > | x :: xs => -00:17:24 v #18394 > > if x = item -00:17:24 v #18395 > > then result <- Some *i -00:17:24 v #18396 > > else -00:17:24 v #18397 > > i <- *i + 1 -00:17:24 v #18398 > > list <- xs -00:17:24 v #18399 > > loop () -00:17:24 v #18400 > > loop () -00:17:24 v #18401 > > *result -00:17:24 v #18402 > > -00:17:24 v #18403 > > inl index_of__ item = -00:17:24 v #18404 > > try_index_of__ item >> optionm.value -00:17:24 v #18405 > > -00:17:24 v #18406 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:17:24 v #18407 > > //// test -00:17:24 v #18408 > > -00:17:24 v #18409 > > listm.init 10i32 id -00:17:24 v #18410 > > |> index_of 5i32 -00:17:24 v #18411 > > |> _assert_eq 5i32 -00:17:25 v #18412 > > -00:17:25 v #18413 > > ── [ 444.38ms - stdout ] ─────────────────────────────────────────────────────── -00:17:25 v #18414 > > │ __assert_eq / actual: 5 / expected: 5 -00:17:25 v #18415 > > │ -00:17:25 v #18416 > > -00:17:25 v #18417 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:17:25 v #18418 > > //// test -00:17:25 v #18419 > > -00:17:25 v #18420 > > listm.init 10i32 id -00:17:25 v #18421 > > |> try_index_of 10i32 -00:17:25 v #18422 > > |> _assert_eq (None : option i32) -00:17:25 v #18423 > > -00:17:25 v #18424 > > ── [ 487.12ms - stdout ] ─────────────────────────────────────────────────────── -00:17:25 v #18425 > > │ __assert_eq / actual: US0_1 / expected: US0_1 -00:17:25 v #18426 > > │ -00:17:25 v #18427 > > -00:17:25 v #18428 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:17:25 v #18429 > > │ ### try_find -00:17:25 v #18430 > > -00:17:25 v #18431 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:17:25 v #18432 > > inl try_find fn list = -00:17:25 v #18433 > > inl rec loop = function -00:17:25 v #18434 > > | [[]] => None -00:17:25 v #18435 > > | x :: xs => -00:17:25 v #18436 > > if fn x -00:17:25 v #18437 > > then Some x -00:17:25 v #18438 > > else loop xs -00:17:25 v #18439 > > loop list -00:17:25 v #18440 > > -00:17:25 v #18441 > > inl try_find_ fn list = -00:17:25 v #18442 > > let rec loop = function -00:17:25 v #18443 > > | [[]] => None -00:17:25 v #18444 > > | x :: xs => -00:17:25 v #18445 > > if fn x -00:17:25 v #18446 > > then Some x -00:17:25 v #18447 > > else loop xs -00:17:25 v #18448 > > loop list -00:17:26 v #18449 > > -00:17:26 v #18450 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:17:26 v #18451 > > //// test -00:17:26 v #18452 > > -00:17:26 v #18453 > > listm.init 10i32 id -00:17:26 v #18454 > > |> try_find ((=) 5i32) -00:17:26 v #18455 > > |> _assert_eq (Some 5i32) -00:17:26 v #18456 > > -00:17:26 v #18457 > > ── [ 473.66ms - stdout ] ─────────────────────────────────────────────────────── -00:17:26 v #18458 > > │ __assert_eq / actual: US0_0 5 / expected: US0_0 5 -00:17:26 v #18459 > > │ -00:17:26 v #18460 > > -00:17:26 v #18461 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:17:26 v #18462 > > inl find x = -00:17:26 v #18463 > > try_find x >> optionm.value -00:17:26 v #18464 > > -00:17:26 v #18465 > > inl find_ x = -00:17:26 v #18466 > > try_find_ x >> optionm.value -00:17:26 v #18467 > > -00:17:26 v #18468 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:17:26 v #18469 > > //// test -00:17:26 v #18470 > > -00:17:26 v #18471 > > listm.init 10i32 id -00:17:26 v #18472 > > |> find ((=) 5i32) -00:17:26 v #18473 > > |> _assert_eq 5i32 -00:17:27 v #18474 > > -00:17:27 v #18475 > > ── [ 463.93ms - stdout ] ─────────────────────────────────────────────────────── -00:17:27 v #18476 > > │ __assert_eq / actual: 5 / expected: 5 -00:17:27 v #18477 > > │ -00:17:27 v #18478 > > -00:17:27 v #18479 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:17:27 v #18480 > > │ ### choose -00:17:27 v #18481 > > -00:17:27 v #18482 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:17:27 v #18483 > > inl choose f l = -00:17:27 v #18484 > > (l, [[]]) -00:17:27 v #18485 > > ||> listm.foldBack fun x acc => -00:17:27 v #18486 > > match f x with -00:17:27 v #18487 > > | Some y => y :: acc -00:17:27 v #18488 > > | None => acc -00:17:27 v #18489 > > -00:17:27 v #18490 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:17:27 v #18491 > > //// test -00:17:27 v #18492 > > -00:17:27 v #18493 > > listm.init 10i32 id -00:17:27 v #18494 > > |> choose (fun x => if x % 2 = 0 then Some x else None) -00:17:27 v #18495 > > |> _assert_eq [[ 0; 2; 4; 6; 8 ]] -00:17:28 v #18496 > > -00:17:28 v #18497 > > ── [ 481.42ms - stdout ] ─────────────────────────────────────────────────────── -00:17:28 v #18498 > > │ __assert_eq / actual: UH0_1 (0, UH0_1 (2, UH0_1 (4, UH0_1 (6, -00:17:28 v #18499 > > UH0_1 (8, UH0_0))))) / expected: UH0_1 (0, UH0_1 (2, UH0_1 (4, UH0_1 (6, UH0_1 -00:17:28 v #18500 > > (8, UH0_0))))) -00:17:28 v #18501 > > │ -00:17:28 v #18502 > > -00:17:28 v #18503 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:17:28 v #18504 > > │ ### filter -00:17:28 v #18505 > > -00:17:28 v #18506 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:17:28 v #18507 > > inl filter forall t. (fn : t -> bool) (list : list t) : list t = -00:17:28 v #18508 > > (list, Nil) -00:17:28 v #18509 > > ||> listm.foldBack fun x acc => -00:17:28 v #18510 > > if fn x then x :: acc else acc -00:17:28 v #18511 > > -00:17:28 v #18512 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:17:28 v #18513 > > │ ### zip_with -00:17:28 v #18514 > > -00:17:28 v #18515 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:17:28 v #18516 > > inl zip_with fn xs ys = -00:17:28 v #18517 > > inl rec loop acc xs ys = -00:17:28 v #18518 > > match xs, ys with -00:17:28 v #18519 > > | Cons (x, xs), Cons (y, ys) => -00:17:28 v #18520 > > loop (fn x y :: acc) xs ys -00:17:28 v #18521 > > | _ => listm.rev acc -00:17:28 v #18522 > > loop [[]] xs ys -00:17:28 v #18523 > > -00:17:28 v #18524 > > inl zip_with_ fn xs ys = -00:17:28 v #18525 > > let rec loop acc xs ys = -00:17:28 v #18526 > > match xs, ys with -00:17:28 v #18527 > > | Cons (x, xs), Cons (y, ys) => -00:17:28 v #18528 > > loop (fn x y :: acc) xs ys -00:17:28 v #18529 > > | _ => listm.rev acc -00:17:28 v #18530 > > loop [[]] xs ys -00:17:29 v #18531 > > -00:17:29 v #18532 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:17:29 v #18533 > > //// test -00:17:29 v #18534 > > -00:17:29 v #18535 > > ([[ 1i32; 2; 3 ]], [[ 4; 5; 6 ]]) -00:17:29 v #18536 > > ||> zip_with (+) -00:17:29 v #18537 > > |> _assert_eq [[ 5; 7; 9 ]] -00:17:29 v #18538 > > -00:17:29 v #18539 > > ── [ 417.02ms - stdout ] ─────────────────────────────────────────────────────── -00:17:29 v #18540 > > │ __assert_eq / actual: UH0_1 (5, UH0_1 (7, UH0_1 (9, UH0_0))) -00:17:29 v #18541 > > / expected: UH0_1 (5, UH0_1 (7, UH0_1 (9, UH0_0))) -00:17:29 v #18542 > > │ -00:17:29 v #18543 > > -00:17:29 v #18544 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:17:29 v #18545 > > │ ### zip -00:17:29 v #18546 > > -00:17:29 v #18547 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:17:29 v #18548 > > inl zip xs ys = -00:17:29 v #18549 > > zip_with pair xs ys -00:17:29 v #18550 > > -00:17:29 v #18551 > > inl zip_ xs ys = -00:17:29 v #18552 > > zip_with_ pair xs ys -00:17:30 v #18553 > > -00:17:30 v #18554 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:17:30 v #18555 > > //// test -00:17:30 v #18556 > > -00:17:30 v #18557 > > ([[ 1i32; 2; 3 ]], [[ 4i32; 5; 6 ]]) -00:17:30 v #18558 > > ||> zip -00:17:30 v #18559 > > |> _assert_eq [[ 1, 4; 2, 5; 3, 6 ]] -00:17:30 v #18560 > > -00:17:30 v #18561 > > ── [ 701.49ms - stdout ] ─────────────────────────────────────────────────────── -00:17:30 v #18562 > > │ __assert_eq / actual: UH0_1 (1, 4, UH0_1 (2, 5, UH0_1 (3, 6, -00:17:30 v #18563 > > UH0_0))) / expected: UH0_1 (1, 4, UH0_1 (2, 5, UH0_1 (3, 6, UH0_0))) -00:17:30 v #18564 > > │ -00:17:30 v #18565 > > -00:17:30 v #18566 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:17:30 v #18567 > > │ ### indexed -00:17:30 v #18568 > > -00:17:30 v #18569 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:17:30 v #18570 > > inl indexed list = -00:17:30 v #18571 > > (([[]], 0), list) -00:17:30 v #18572 > > ||> listm.fold fun (acc, i) x => -00:17:30 v #18573 > > (i, x) :: acc, i + 1 -00:17:30 v #18574 > > |> fst -00:17:30 v #18575 > > |> listm.rev -00:17:31 v #18576 > > -00:17:31 v #18577 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:17:31 v #18578 > > //// test -00:17:31 v #18579 > > -00:17:31 v #18580 > > listm.init 5i32 ((*) 2) -00:17:31 v #18581 > > |> indexed -00:17:31 v #18582 > > |> _assert_eq [[ 0i32, 0; 1, 2; 2, 4; 3, 6; 4, 8 ]] -00:17:31 v #18583 > > -00:17:31 v #18584 > > ── [ 577.14ms - stdout ] ─────────────────────────────────────────────────────── -00:17:31 v #18585 > > │ __assert_eq / actual: UH0_1 (0, 0, UH0_1 (1, 2, UH0_1 (2, 4, -00:17:31 v #18586 > > UH0_1 (3, 6, UH0_1 (4, 8, UH0_0))))) / expected: UH0_1 (0, 0, UH0_1 (1, 2, UH0_1 -00:17:31 v #18587 > > (2, 4, UH0_1 (3, 6, UH0_1 (4, 8, UH0_0))))) -00:17:31 v #18588 > > │ -00:17:31 v #18589 > > -00:17:31 v #18590 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:17:31 v #18591 > > │ ### group_by -00:17:31 v #18592 > > -00:17:31 v #18593 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:17:31 v #18594 > > inl group_by fn list = -00:17:31 v #18595 > > (list, [[]]) -00:17:31 v #18596 > > ||> listm.foldBack fun x acc => -00:17:31 v #18597 > > inl xk = fn x -00:17:31 v #18598 > > inl found, new_acc = -00:17:31 v #18599 > > ((false, [[]]), acc) -00:17:31 v #18600 > > ||> listm.fold fun (found, acc') (k, xs) => -00:17:31 v #18601 > > if k = xk -00:17:31 v #18602 > > then true, (k, x :: xs) :: acc' -00:17:31 v #18603 > > else found, (k, xs) :: acc' -00:17:31 v #18604 > > if found -00:17:31 v #18605 > > then new_acc -00:17:31 v #18606 > > else (xk, [[ x ]]) :: new_acc -00:17:32 v #18607 > > -00:17:32 v #18608 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:17:32 v #18609 > > //// test -00:17:32 v #18610 > > -00:17:32 v #18611 > > listm.init 10i32 id -00:17:32 v #18612 > > |> group_by (fun x => x % 2 = 0) -00:17:32 v #18613 > > |> _assert_eq [[ true, [[ 0; 2; 4; 6; 8 ]]; false, [[ 1; 3; 5; 7; 9 ]] ]] -00:17:32 v #18614 > > -00:17:32 v #18615 > > ── [ 501.26ms - stdout ] ─────────────────────────────────────────────────────── -00:17:32 v #18616 > > │ __assert_eq / actual: UH1_1 -00:17:32 v #18617 > > │ (true, UH0_1 (0, UH0_1 (2, UH0_1 (4, UH0_1 (6, UH0_1 (8, -00:17:32 v #18618 > > UH0_0))))), -00:17:32 v #18619 > > │ UH1_1 -00:17:32 v #18620 > > │ (false, UH0_1 (1, UH0_1 (3, UH0_1 (5, UH0_1 (7, UH0_1 -00:17:32 v #18621 > > (9, UH0_0))))), UH1_0)) / expected: UH1_1 -00:17:32 v #18622 > > │ (true, UH0_1 (0, UH0_1 (2, UH0_1 (4, UH0_1 (6, UH0_1 (8, -00:17:32 v #18623 > > UH0_0))))), -00:17:32 v #18624 > > │ UH1_1 -00:17:32 v #18625 > > │ (false, UH0_1 (1, UH0_1 (3, UH0_1 (5, UH0_1 (7, UH0_1 -00:17:32 v #18626 > > (9, UH0_0))))), UH1_0)) -00:17:32 v #18627 > > │ -00:17:32 v #18628 > > -00:17:32 v #18629 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:17:32 v #18630 > > │ ### forall' -00:17:32 v #18631 > > -00:17:32 v #18632 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:17:32 v #18633 > > inl forall' fn (head :: tail) = -00:17:32 v #18634 > > (true, tail) -00:17:32 v #18635 > > ||> listm.fold fun acc x => -00:17:32 v #18636 > > acc && x = head -00:17:33 v #18637 > > -00:17:33 v #18638 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:17:33 v #18639 > > //// test -00:17:33 v #18640 > > -00:17:33 v #18641 > > [[ 1i32; 1; 1; 1; 1 ]] -00:17:33 v #18642 > > |> forall' ((=) 1i32) -00:17:33 v #18643 > > |> _assert_eq true -00:17:33 v #18644 > > -00:17:33 v #18645 > > ── [ 455.86ms - stdout ] ─────────────────────────────────────────────────────── -00:17:33 v #18646 > > │ __assert_eq / actual: true / expected: true -00:17:33 v #18647 > > │ -00:17:33 v #18648 > > -00:17:33 v #18649 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:17:33 v #18650 > > │ ### last -00:17:33 v #18651 > > -00:17:33 v #18652 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:17:33 v #18653 > > inl last list = -00:17:33 v #18654 > > list -00:17:33 v #18655 > > |> listm.rev -00:17:33 v #18656 > > |> item 0i32 -00:17:34 v #18657 > > -00:17:34 v #18658 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:17:34 v #18659 > > //// test -00:17:34 v #18660 > > -00:17:34 v #18661 > > listm.init 10i32 id -00:17:34 v #18662 > > |> last -00:17:34 v #18663 > > |> _assert_eq 9 -00:17:34 v #18664 > > -00:17:34 v #18665 > > ── [ 438.36ms - stdout ] ─────────────────────────────────────────────────────── -00:17:34 v #18666 > > │ __assert_eq / actual: 9 / expected: 9 -00:17:34 v #18667 > > │ -00:17:34 v #18668 > > -00:17:34 v #18669 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:17:34 v #18670 > > │ ### try_pick -00:17:34 v #18671 > > -00:17:34 v #18672 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:17:34 v #18673 > > inl try_pick fn list = -00:17:34 v #18674 > > inl rec body fn = function -00:17:34 v #18675 > > | [[]] => None -00:17:34 v #18676 > > | x :: xs => -00:17:34 v #18677 > > match fn x with -00:17:34 v #18678 > > | Some y => Some y -00:17:34 v #18679 > > | None => loop xs -00:17:34 v #18680 > > and inl loop list = -00:17:34 v #18681 > > if var_is list |> not -00:17:34 v #18682 > > then body fn list -00:17:34 v #18683 > > else -00:17:34 v #18684 > > inl fn = join fn -00:17:34 v #18685 > > inl list = dyn list -00:17:34 v #18686 > > join body fn list -00:17:34 v #18687 > > loop list -00:17:34 v #18688 > > -00:17:34 v #18689 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:17:34 v #18690 > > //// test -00:17:34 v #18691 > > -00:17:34 v #18692 > > listm.init 10i32 id -00:17:34 v #18693 > > |> try_pick (fun x => if x = 5i32 then Some x else None) -00:17:34 v #18694 > > |> _assert_eq (Some 5i32) -00:17:35 v #18695 > > -00:17:35 v #18696 > > ── [ 472.20ms - stdout ] ─────────────────────────────────────────────────────── -00:17:35 v #18697 > > │ __assert_eq / actual: US0_0 5 / expected: US0_0 5 -00:17:35 v #18698 > > │ -00:17:35 v #18699 > > -00:17:35 v #18700 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:17:35 v #18701 > > │ ### exists' -00:17:35 v #18702 > > -00:17:35 v #18703 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:17:35 v #18704 > > inl exists' f x = -00:17:35 v #18705 > > inl length_x : i64 = x |> listm.length -00:17:35 v #18706 > > let rec loop i = -00:17:35 v #18707 > > if i >= length_x -00:17:35 v #18708 > > then false -00:17:35 v #18709 > > elif x |> item i |> f -00:17:35 v #18710 > > then true -00:17:35 v #18711 > > else loop (i + 1) -00:17:35 v #18712 > > loop 0 -00:17:35 v #18713 > > -00:17:35 v #18714 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:17:35 v #18715 > > //// test -00:17:35 v #18716 > > -00:17:35 v #18717 > > [[ 'a'; 'b'; 'c' ]] -00:17:35 v #18718 > > |> exists' fun x => x = 'b' -00:17:35 v #18719 > > |> _assert_eq true -00:17:35 v #18720 > > -00:17:35 v #18721 > > [[ 'a'; 'b' ]] -00:17:35 v #18722 > > |> exists' fun x => x = 'c' -00:17:35 v #18723 > > |> _assert_eq false -00:17:35 v #18724 > > -00:17:35 v #18725 > > [[]] -00:17:35 v #18726 > > |> exists' fun x => x = 'a' -00:17:35 v #18727 > > |> _assert_eq false -00:17:36 v #18728 > > -00:17:36 v #18729 > > ── [ 535.40ms - stdout ] ─────────────────────────────────────────────────────── -00:17:36 v #18730 > > │ __assert_eq / actual: true / expected: true -00:17:36 v #18731 > > │ __assert_eq / actual: false / expected: false -00:17:36 v #18732 > > │ __assert_eq / actual: false / expected: false -00:17:36 v #18733 > > │ -00:17:36 v #18734 > > -00:17:36 v #18735 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:17:36 v #18736 > > │ ## fsharp -00:17:36 v #18737 > > -00:17:36 v #18738 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:17:36 v #18739 > > │ ### list' -00:17:36 v #18740 > > -00:17:36 v #18741 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:17:36 v #18742 > > nominal list' t = $"backend_switch `({ Fsharp : $'`t list'; Python : $'list' })" -00:17:36 v #18743 > > -00:17:36 v #18744 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:17:36 v #18745 > > │ ### empty' -00:17:36 v #18746 > > -00:17:36 v #18747 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:17:36 v #18748 > > inl empty' forall t. () : list' t = -00:17:36 v #18749 > > $'[[]]' -00:17:37 v #18750 > > -00:17:37 v #18751 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:17:37 v #18752 > > │ ### cons' -00:17:37 v #18753 > > -00:17:37 v #18754 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:17:37 v #18755 > > inl cons' forall t. (head : t) (tail : list' t) : list' t = -00:17:37 v #18756 > > backend_switch { -00:17:37 v #18757 > > Fsharp = fun () => $'!head :: !tail ' : list' t -00:17:37 v #18758 > > Python = fun () => -00:17:37 v #18759 > > $'!tail.insert(0, !head)' -00:17:37 v #18760 > > $'!tail ' : list' t -00:17:37 v #18761 > > } -00:17:37 v #18762 > > -00:17:37 v #18763 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:17:37 v #18764 > > │ ### rev' -00:17:37 v #18765 > > -00:17:37 v #18766 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:17:37 v #18767 > > inl rev' forall t. (items : list' t) : list' t = -00:17:37 v #18768 > > backend_switch { -00:17:37 v #18769 > > Fsharp = fun () => items |> $'List.rev' : list' t -00:17:37 v #18770 > > Python = fun () => $'list(reversed(!items))' : list' t -00:17:37 v #18771 > > } -00:17:38 v #18772 > > -00:17:38 v #18773 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:17:38 v #18774 > > │ ### box -00:17:38 v #18775 > > -00:17:38 v #18776 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:17:38 v #18777 > > inl box forall t. (list : list t) : list' t = -00:17:38 v #18778 > > (list, empty' ()) -00:17:38 v #18779 > > ||> listm.foldBack fun x acc => -00:17:38 v #18780 > > acc |> cons' x -00:17:38 v #18781 > > -00:17:38 v #18782 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:17:38 v #18783 > > │ ### fold' -00:17:38 v #18784 > > -00:17:38 v #18785 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:17:38 v #18786 > > inl fold' forall t u. (fn : t -> u) (init : list u) (list : list' t) : list u = -00:17:38 v #18787 > > backend_switch { -00:17:38 v #18788 > > Fsharp = fun () => -00:17:38 v #18789 > > (init, list) -00:17:38 v #18790 > > ||> $'List.fold' join fun acc x => Cons (fn x, acc) -00:17:38 v #18791 > > : list u -00:17:38 v #18792 > > Python = fun () => -00:17:38 v #18793 > > inl init = init |> box -00:17:38 v #18794 > > $'r = !init ' -00:17:38 v #18795 > > inl list = list |> rev' -00:17:38 v #18796 > > $'for x in !list: r = [[!fn(x)]] + r' -00:17:38 v #18797 > > inl init : list u = Nil -00:17:38 v #18798 > > inl cons (a : u) b = Cons (a, b) -00:17:38 v #18799 > > $'r_ = !init ' -00:17:38 v #18800 > > $'for x in r: r_ = !cons (x)(r_)' -00:17:38 v #18801 > > $'r_' : list u -00:17:38 v #18802 > > } -00:17:39 v #18803 > > -00:17:39 v #18804 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:17:39 v #18805 > > │ ### fold_back' -00:17:39 v #18806 > > -00:17:39 v #18807 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:17:39 v #18808 > > inl fold_back' forall t u. (fn : t -> u) (list : list' t) (init : list u) : list -00:17:39 v #18809 > > u = -00:17:39 v #18810 > > backend_switch { -00:17:39 v #18811 > > Fsharp = fun () => -00:17:39 v #18812 > > (list, init) -00:17:39 v #18813 > > ||> $'List.foldBack' join fun x acc => Cons (fn x, acc) -00:17:39 v #18814 > > : list u -00:17:39 v #18815 > > Python = fun () => -00:17:39 v #18816 > > list -00:17:39 v #18817 > > |> rev' -00:17:39 v #18818 > > |> fold' fn init -00:17:39 v #18819 > > } -00:17:39 v #18820 > > -00:17:39 v #18821 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:17:39 v #18822 > > │ ### filter' -00:17:39 v #18823 > > -00:17:39 v #18824 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:17:39 v #18825 > > inl filter' forall t. (fn : t -> bool) (list : list' t) : list' t = -00:17:39 v #18826 > > backend_switch { -00:17:39 v #18827 > > Fsharp = fun () => list |> $'"List.filter !fn"' : list' t -00:17:39 v #18828 > > Python = fun () => $'list(filter(!fn, !list))' : list' t -00:17:39 v #18829 > > } -00:17:39 v #18830 > > -00:17:39 v #18831 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:17:39 v #18832 > > │ ### map -00:17:39 v #18833 > > -00:17:39 v #18834 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:17:39 v #18835 > > inl map forall t u. (fn : t -> u) (list : list' t) : list' u = -00:17:39 v #18836 > > backend_switch { -00:17:39 v #18837 > > Fsharp = fun () => list |> $'List.map' fn : list' u -00:17:39 v #18838 > > Python = fun () => $'list(map(!fn, !list))' : list' u -00:17:39 v #18839 > > } -00:17:40 v #18840 > > -00:17:40 v #18841 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:17:40 v #18842 > > │ ### unbox -00:17:40 v #18843 > > -00:17:40 v #18844 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:17:40 v #18845 > > inl unbox forall t. (list : list' t) : list t = -00:17:40 v #18846 > > (list, Nil) -00:17:40 v #18847 > > ||> fold_back' id -00:17:40 v #18848 > > -00:17:40 v #18849 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:17:40 v #18850 > > │ ### distinct' -00:17:40 v #18851 > > -00:17:40 v #18852 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:17:40 v #18853 > > // preserve order -00:17:40 v #18854 > > inl distinct' forall t. (list : list' t) : list' t = -00:17:40 v #18855 > > backend_switch { -00:17:40 v #18856 > > Fsharp = fun () => list |> $'List.distinct' : list' t -00:17:40 v #18857 > > Python = fun () => -00:17:40 v #18858 > > $'x = list(set(!list))' -00:17:40 v #18859 > > $'x.sort(key=!list.index)' -00:17:40 v #18860 > > $'x' : list' t -00:17:40 v #18861 > > } -00:17:41 v #18862 > > -00:17:41 v #18863 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:17:41 v #18864 > > //// test -00:17:41 v #18865 > > ///! fsharp -00:17:41 v #18866 > > ///! cuda -00:17:41 v #18867 > > -00:17:41 v #18868 > > [[ "1"; "2"; "2"; "3" ]] -00:17:41 v #18869 > > |> box -00:17:41 v #18870 > > |> distinct' -00:17:41 v #18871 > > |> unbox -00:17:41 v #18872 > > |> _assert_eq [[ "1"; "2"; "3" ]] -00:17:42 v #18873 > > -00:17:42 v #18874 > > ── [ 1.74s - return value ] ──────────────────────────────────────────────────── -00:17:42 v #18875 > > │ .py output (Cuda): -00:17:42 v #18876 > > │ __assert_eq / actual: UH0_1(v0='1', v1=UH0_1(v0='2', -00:17:42 v #18877 > > v1=UH0_1(v0='3', v1=UH0_0()))) / expected: UH0_1(v0='1', v1=UH0_1(v0='2', -00:17:42 v #18878 > > v1=UH0_1(v0='3', v1=UH0_0()))) -00:17:42 v #18879 > > │ -00:17:42 v #18880 > > │ -00:17:42 v #18881 > > -00:17:42 v #18882 > > ── [ 1.74s - stdout ] ────────────────────────────────────────────────────────── -00:17:42 v #18883 > > │ .fsx output: -00:17:42 v #18884 > > │ __assert_eq / actual: UH0_1 ("1", UH0_1 ("2", UH0_1 ("3", -00:17:42 v #18885 > > UH0_0))) / expected: UH0_1 ("1", UH0_1 ("2", UH0_1 ("3", UH0_0))) -00:17:42 v #18886 > > │ -00:17:42 v #18887 > > -00:17:42 v #18888 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:17:42 v #18889 > > │ ### to_array' -00:17:42 v #18890 > > -00:17:42 v #18891 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:17:42 v #18892 > > inl to_array' forall t. (items : list' t) : array_base t = -00:17:42 v #18893 > > backend_switch { -00:17:42 v #18894 > > Fsharp = fun () => items |> $'List.toArray' : array_base t -00:17:42 v #18895 > > Python = fun () => $'(cp if cuda else np).array(!items)' : array_base t -00:17:42 v #18896 > > } -00:17:43 v #18897 > 00:00:35 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 24569 } -00:17:43 v #18898 > 00:00:35 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/lib/spiral/listm'.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/lib/spiral/listm'.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:17:44 v #18899 > 00:00:36 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/lib/spiral/listm'.dib.ipynb to html -00:17:44 v #18900 > 00:00:36 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. -00:17:44 v #18901 > 00:00:36 v #7 ! validate(nb) -00:17:45 v #18902 > 00:00:37 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 -00:17:45 v #18903 > 00:00:37 v #9 ! return _pygments_highlight( -00:17:46 v #18904 > 00:00:37 v #10 ! [NbConvertApp] Writing 389668 bytes to c:\home\git\polyglot\lib\spiral\listm'.dib.html -00:17:46 v #18905 > 00:00:38 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 854 } -00:17:46 v #18906 > 00:00:38 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 854 } -00:17:46 v #18907 > 00:00:38 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/listm''.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/listm''.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:17:46 v #18908 > 00:00:38 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } -00:17:46 v #18909 > 00:00:38 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } -00:17:46 v #18910 > 00:00:38 d #16 spiral.run / dib / { exit_code = 0; result_length = 25482 } -00:17:46 d #18911 runtime.execute_with_options_async / { exit_code = 0; output_length = 29511 } -00:17:46 d #24 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path listm'.dib --retries 3 -00:17:46 d #18912 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path reflection.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path reflection.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } -00:17:46 v #18913 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "reflection.dib", "--retries", "3"])) } -00:17:46 v #18914 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/lib/spiral/reflection.dib", "--output-path", "c:/home/git/polyglot/lib/spiral/reflection.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/lib/spiral/reflection.dib" --output-path "c:/home/git/polyglot/lib/spiral/reflection.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } -00:17:48 v #18915 > > -00:17:48 v #18916 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:17:48 v #18917 > > │ # reflection -00:17:51 v #18918 > > -00:17:51 v #18919 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:17:51 v #18920 > > //// test -00:17:51 v #18921 > > -00:17:51 v #18922 > > open testing -00:17:52 v #18923 > > -00:17:52 v #18924 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:17:52 v #18925 > > │ ## reflection -00:17:52 v #18926 > > -00:17:52 v #18927 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:17:52 v #18928 > > │ ### get_union_fields -00:17:52 v #18929 > > -00:17:52 v #18930 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:17:52 v #18931 > > inl get_union_fields forall union_type. () : list (string * union_type) = -00:17:52 v #18932 > > real -00:17:52 v #18933 > > real_core.union_to_record -00:17:52 v #18934 > > `union_type -00:17:52 v #18935 > > forall union_record_type. => -00:17:52 v #18936 > > real_core.record_type_fold -00:17:52 v #18937 > > fun acc key => -00:17:52 v #18938 > > forall value. => -00:17:52 v #18939 > > inl value = -00:17:52 v #18940 > > typecase value with -00:17:52 v #18941 > > | () => $'' : value -00:17:52 v #18942 > > | _ => -00:17:52 v #18943 > > backend_switch `value `({}) { -00:17:52 v #18944 > > Fsharp = -00:17:52 v #18945 > > (fun () => -00:17:52 v #18946 > > $'Unchecked.defaultof<_>' : -00:17:52 v #18947 > > value -00:17:52 v #18948 > > ) : () -> value -00:17:52 v #18949 > > Python = -00:17:52 v #18950 > > (fun () => -00:17:52 v #18951 > > $'None' : value -00:17:52 v #18952 > > ) : () -> value -00:17:52 v #18953 > > } -00:17:52 v #18954 > > inl item = real_core.nominal_create `union_type -00:17:52 v #18955 > > (key, value) -00:17:52 v #18956 > > inl key' = sm'_real.symbol_to_string `(`key) -00:17:52 v #18957 > > (::) `(string * union_type) (key', item) acc -00:17:52 v #18958 > > (Nil `(string * union_type)) -00:17:52 v #18959 > > `union_record_type -00:17:53 v #18960 > > -00:17:53 v #18961 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:17:53 v #18962 > > //// test -00:17:53 v #18963 > > ///! fsharp -00:17:53 v #18964 > > ///! rust -00:17:53 v #18965 > > ///! typescript -00:17:53 v #18966 > > ///! python -00:17:53 v #18967 > > -00:17:53 v #18968 > > get_union_fields () -00:17:53 v #18969 > > |> listm'.box -00:17:53 v #18970 > > |> listm'.to_array' -00:17:53 v #18971 > > |> a -00:17:53 v #18972 > > |> am'.sort_by snd -00:17:53 v #18973 > > |> fun (a x : _ int _) => x -00:17:53 v #18974 > > |> _assert_eq' ;[[ "Native", Native; "Wasm", Wasm; "Contract", Contract ]] -00:17:58 v #18975 > > -00:17:58 v #18976 > > ── [ 5.22s - return value ] ──────────────────────────────────────────────────── -00:17:58 v #18977 > > │ .rs output: -00:17:58 v #18978 > > │ __assert_eq' / actual: Array(MutCell([("Native", US0_0), -00:17:58 v #18979 > > ("Wasm", US0_1), ("Contract", US0_2)])) / expected: Array(MutCell([("Native", -00:17:58 v #18980 > > US0_0), ("Wasm", US0_1), ("Contract", US0_2)])) -00:17:58 v #18981 > > │ -00:17:58 v #18982 > > │ .ts output: -00:17:58 v #18983 > > │ __assert_eq' / actual: Native,US0_0,Wasm,US0_1,Contract,US0_2 -00:17:58 v #18984 > > / expected: Native,US0_0,Wasm,US0_1,Contract,US0_2 -00:17:58 v #18985 > > │ -00:17:58 v #18986 > > │ .py output: -00:17:58 v #18987 > > │ __assert_eq' / actual: [('Native', US0_0), ('Wasm', US0_1), -00:17:58 v #18988 > > ('Contract', US0_2)] / expected: [('Native', US0_0), ('Wasm', US0_1), -00:17:58 v #18989 > > ('Contract', US0_2)] -00:17:58 v #18990 > > │ -00:17:58 v #18991 > > │ -00:17:58 v #18992 > > -00:17:58 v #18993 > > ── [ 5.24s - stdout ] ────────────────────────────────────────────────────────── -00:17:58 v #18994 > > │ .fsx output: -00:17:58 v #18995 > > │ __assert_eq' / actual: [|struct ("Native", US0_0); struct -00:17:58 v #18996 > > ("Wasm", US0_1); struct ("Contract", US0_2)|] / expected: [|struct ("Native", -00:17:58 v #18997 > > US0_0); struct ("Wasm", US0_1); struct ("Contract", US0_2)|] -00:17:58 v #18998 > > │ -00:17:58 v #18999 > > -00:17:58 v #19000 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:17:58 v #19001 > > //// test -00:17:58 v #19002 > > ///! fsharp -00:17:58 v #19003 > > ///! rust -00:17:58 v #19004 > > ///! typescript -00:17:58 v #19005 > > ///! python -00:17:58 v #19006 > > -00:17:58 v #19007 > > get_union_fields () -00:17:58 v #19008 > > |> listm'.box -00:17:58 v #19009 > > |> listm'.to_array' -00:17:58 v #19010 > > |> a -00:17:58 v #19011 > > |> am'.sort_by snd -00:17:58 v #19012 > > |> fun (a x : _ int _) => x -00:17:58 v #19013 > > |> _assert_eq' ;[[ "Some", Some 0i32; "None", None ]] -00:18:01 v #19014 > > -00:18:01 v #19015 > > ── [ 3.50s - return value ] ──────────────────────────────────────────────────── -00:18:01 v #19016 > > │ .rs output: -00:18:01 v #19017 > > │ __assert_eq' / actual: Array(MutCell([("Some", US0_0(0)), -00:18:01 v #19018 > > ("None", US0_1)])) / expected: Array(MutCell([("Some", US0_0(0)), ("None", -00:18:01 v #19019 > > US0_1)])) -00:18:01 v #19020 > > │ -00:18:01 v #19021 > > │ .ts output: -00:18:01 v #19022 > > │ __assert_eq' / actual: Some,US0_0 0,None,US0_1 / expected: -00:18:01 v #19023 > > Some,US0_0 0,None,US0_1 -00:18:01 v #19024 > > │ -00:18:01 v #19025 > > │ .py output: -00:18:01 v #19026 > > │ __assert_eq' / actual: [('Some', US0_0 0), ('None', US0_1)] -00:18:01 v #19027 > > expected: [('Some', US0_0 0), ('None', US0_1)] -00:18:01 v #19028 > > │ -00:18:01 v #19029 > > │ -00:18:01 v #19030 > > -00:18:01 v #19031 > > ── [ 3.51s - stdout ] ────────────────────────────────────────────────────────── -00:18:01 v #19032 > > │ .fsx output: -00:18:01 v #19033 > > │ __assert_eq' / actual: [|struct ("Some", US0_0 0); struct -00:18:01 v #19034 > > ("None", US0_1)|] / expected: [|struct ("Some", US0_0 0); struct ("None", -00:18:01 v #19035 > > US0_1)|] -00:18:01 v #19036 > > │ -00:18:01 v #19037 > > -00:18:01 v #19038 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:18:01 v #19039 > > │ ### get_union_fields_untag -00:18:01 v #19040 > > -00:18:01 v #19041 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:18:01 v #19042 > > inl get_union_fields_untag forall union_type. () : list (string * union_type) = -00:18:01 v #19043 > > real -00:18:01 v #19044 > > real_core.union_to_record -00:18:01 v #19045 > > `union_type -00:18:01 v #19046 > > forall union_record_type. => -00:18:01 v #19047 > > inl result = -00:18:01 v #19048 > > real_core.record_type_fold_back -00:18:01 v #19049 > > fun _key => -00:18:01 v #19050 > > forall value. (acc, (i : i32)) => -00:18:01 v #19051 > > inl key, item : (string * union_type) = -00:18:01 v #19052 > > real_core.union_untag `union_type i -00:18:01 v #19053 > > (fun key => forall value. => -00:18:01 v #19054 > > inl key' = sm'_real.symbol_to_string -00:18:01 v #19055 > > `(`key) -00:18:01 v #19056 > > inl value = -00:18:01 v #19057 > > typecase value with -00:18:01 v #19058 > > | () => $'' : value -00:18:01 v #19059 > > | _ => -00:18:01 v #19060 > > backend_switch `value `({}) -00:18:01 v #19061 > > { -00:18:01 v #19062 > > Fsharp = -00:18:01 v #19063 > > (fun () => -00:18:01 v #19064 > > -00:18:01 v #19065 > > $'Unchecked.defaultof<_>' : value -00:18:01 v #19066 > > ) : () -> value -00:18:01 v #19067 > > Python = -00:18:01 v #19068 > > (fun () => -00:18:01 v #19069 > > $'None' : value -00:18:01 v #19070 > > ) : () -> value -00:18:01 v #19071 > > } -00:18:01 v #19072 > > inl item = real_core.nominal_create -00:18:01 v #19073 > > `union_type (key, value) -00:18:01 v #19074 > > key', item -00:18:01 v #19075 > > ) -00:18:01 v #19076 > > (fun _ => -00:18:01 v #19077 > > failwith -00:18:01 v #19078 > > `(string * union_type) -00:18:01 v #19079 > > -00:18:01 v #19080 > > "reflection.get_union_fields_untag / invalid tag" -00:18:01 v #19081 > > ) -00:18:01 v #19082 > > (::) `(string * union_type) (key, item) acc, (+) -00:18:01 v #19083 > > `i32 i 1 -00:18:01 v #19084 > > `union_record_type -00:18:01 v #19085 > > (Nil `(string * union_type), 0i32) -00:18:01 v #19086 > > inl result = fst `(list (string * union_type)) `i32 result -00:18:01 v #19087 > > listm.rev `(string * union_type) result -00:18:02 v #19088 > > -00:18:02 v #19089 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:18:02 v #19090 > > //// test -00:18:02 v #19091 > > ///! fsharp -00:18:02 v #19092 > > ///! cuda -00:18:02 v #19093 > > ///! rust -00:18:02 v #19094 > > ///! typescript -00:18:02 v #19095 > > ///! python -00:18:02 v #19096 > > -00:18:02 v #19097 > > get_union_fields_untag () -00:18:02 v #19098 > > |> _assert_eq' [[ "Native", Native; "Wasm", Wasm; "Contract", Contract ]] -00:18:06 v #19099 > > -00:18:06 v #19100 > > ── [ 3.72s - return value ] ──────────────────────────────────────────────────── -00:18:06 v #19101 > > │ .py output (Cuda): -00:18:06 v #19102 > > │ __assert_eq' / actual: UH0_1(v0='Native', v1=US0_0(), -00:18:06 v #19103 > > v2=UH0_1(v0='Wasm', v1=US0_1(), v2=UH0_1(v0='Contract', v1=US0_2(), -00:18:06 v #19104 > > v2=UH0_0()))) / expected: UH0_1(v0='Native', v1=US0_0(), v2=UH0_1(v0='Wasm', -00:18:06 v #19105 > > v1=US0_1(), v2=UH0_1(v0='Contract', v1=US0_2(), v2=UH0_0()))) -00:18:06 v #19106 > > │ -00:18:06 v #19107 > > │ .rs output: -00:18:06 v #19108 > > │ __assert_eq' / actual: UH0_1("Native", US0_0, UH0_1("Wasm", -00:18:06 v #19109 > > US0_1, UH0_1("Contract", US0_2, UH0_0))) / expected: UH0_1("Native", US0_0, -00:18:06 v #19110 > > UH0_1("Wasm", US0_1, UH0_1("Contract", US0_2, UH0_0))) -00:18:06 v #19111 > > │ -00:18:06 v #19112 > > │ .ts output: -00:18:06 v #19113 > > │ __assert_eq' / actual: UH0_1 (Native, US0_0, UH0_1 (Wasm, -00:18:06 v #19114 > > US0_1, UH0_1 (Contract, US0_2, UH0_0))) / expected: UH0_1 (Native, US0_0, UH0_1 -00:18:06 v #19115 > > (Wasm, US0_1, UH0_1 (Contract, US0_2, UH0_0))) -00:18:06 v #19116 > > │ -00:18:06 v #19117 > > │ .py output: -00:18:06 v #19118 > > │ __assert_eq' / actual: UH0_1 ("Native", US0_0, UH0_1 ("Wasm", -00:18:06 v #19119 > > US0_1, UH0_1 ("Contract", US0_2, UH0_0))) / expected: UH0_1 ("Native", US0_0, -00:18:06 v #19120 > > UH0_1 ("Wasm", US0_1, UH0_1 ("Contract", US0_2, UH0_0))) -00:18:06 v #19121 > > │ -00:18:06 v #19122 > > │ -00:18:06 v #19123 > > -00:18:06 v #19124 > > ── [ 3.72s - stdout ] ────────────────────────────────────────────────────────── -00:18:06 v #19125 > > │ .fsx output: -00:18:06 v #19126 > > │ __assert_eq' / actual: UH0_1 ("Native", US0_0, UH0_1 ("Wasm", -00:18:06 v #19127 > > US0_1, UH0_1 ("Contract", US0_2, UH0_0))) / expected: UH0_1 ("Native", US0_0, -00:18:06 v #19128 > > UH0_1 ("Wasm", US0_1, UH0_1 ("Contract", US0_2, UH0_0))) -00:18:06 v #19129 > > │ -00:18:06 v #19130 > > -00:18:06 v #19131 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:18:06 v #19132 > > //// test -00:18:06 v #19133 > > ///! fsharp -00:18:06 v #19134 > > ///! cuda -00:18:06 v #19135 > > ///! rust -00:18:06 v #19136 > > ///! typescript -00:18:06 v #19137 > > ///! python -00:18:06 v #19138 > > -00:18:06 v #19139 > > get_union_fields_untag () -00:18:06 v #19140 > > |> _assert_eq' [[ "Some", Some (); "None", None ]] -00:18:09 v #19141 > > -00:18:09 v #19142 > > ── [ 3.23s - return value ] ──────────────────────────────────────────────────── -00:18:09 v #19143 > > │ .py output (Cuda): -00:18:09 v #19144 > > │ __assert_eq' / actual: UH0_1(v0='Some', v1=US0_0(), -00:18:09 v #19145 > > v2=UH0_1(v0='None', v1=US0_1(), v2=UH0_0())) / expected: UH0_1(v0='Some', -00:18:09 v #19146 > > v1=US0_0(), v2=UH0_1(v0='None', v1=US0_1(), v2=UH0_0())) -00:18:09 v #19147 > > │ -00:18:09 v #19148 > > │ .rs output: -00:18:09 v #19149 > > │ __assert_eq' / actual: UH0_1("Some", US0_0, UH0_1("None", -00:18:09 v #19150 > > US0_1, UH0_0)) / expected: UH0_1("Some", US0_0, UH0_1("None", US0_1, UH0_0)) -00:18:09 v #19151 > > │ -00:18:09 v #19152 > > │ .ts output: -00:18:09 v #19153 > > │ __assert_eq' / actual: UH0_1 (Some, US0_0, UH0_1 (None, -00:18:09 v #19154 > > US0_1, UH0_0)) / expected: UH0_1 (Some, US0_0, UH0_1 (None, US0_1, UH0_0)) -00:18:09 v #19155 > > │ -00:18:09 v #19156 > > │ .py output: -00:18:09 v #19157 > > │ __assert_eq' / actual: UH0_1 ("Some", US0_0, UH0_1 ("None", -00:18:09 v #19158 > > US0_1, UH0_0)) / expected: UH0_1 ("Some", US0_0, UH0_1 ("None", US0_1, UH0_0)) -00:18:09 v #19159 > > │ -00:18:09 v #19160 > > │ -00:18:09 v #19161 > > -00:18:09 v #19162 > > ── [ 3.23s - stdout ] ────────────────────────────────────────────────────────── -00:18:09 v #19163 > > │ .fsx output: -00:18:09 v #19164 > > │ __assert_eq' / actual: UH0_1 ("Some", US0_0, UH0_1 ("None", -00:18:09 v #19165 > > US0_1, UH0_0)) / expected: UH0_1 ("Some", US0_0, UH0_1 ("None", US0_1, UH0_0)) -00:18:09 v #19166 > > │ -00:18:09 v #19167 > > -00:18:09 v #19168 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:18:09 v #19169 > > │ ### union_try_pick -00:18:09 v #19170 > > -00:18:09 v #19171 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:18:09 v #19172 > > inl union_try_pick forall t. (key : string) : option t = -00:18:09 v #19173 > > real get_union_fields_untag `t () -00:18:09 v #19174 > > |> listm'.try_pick fun key', x => -00:18:09 v #19175 > > if key' = key -00:18:09 v #19176 > > then Some x -00:18:09 v #19177 > > else None -00:18:09 v #19178 > > -00:18:09 v #19179 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:18:09 v #19180 > > │ ### union_to_string -00:18:09 v #19181 > > -00:18:09 v #19182 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:18:09 v #19183 > > inl union_to_string forall t. (x : t) : string = -00:18:09 v #19184 > > real get_union_fields_untag `t () -00:18:09 v #19185 > > |> listm'.try_pick fun key, x' => -00:18:09 v #19186 > > if x' = x -00:18:09 v #19187 > > then Some key -00:18:09 v #19188 > > else -00:18:09 v #19189 > > inl has_case = -00:18:09 v #19190 > > real -00:18:09 v #19191 > > real_core.union_to_record -00:18:09 v #19192 > > `t -00:18:09 v #19193 > > forall union_record_type. => -00:18:09 v #19194 > > real_core.record_type_fold_back -00:18:09 v #19195 > > fun _key => -00:18:09 v #19196 > > forall value. acc => -00:18:09 v #19197 > > if acc -00:18:09 v #19198 > > then acc -00:18:09 v #19199 > > else -00:18:09 v #19200 > > typecase value with -00:18:09 v #19201 > > | () => false -00:18:09 v #19202 > > | _ => true -00:18:09 v #19203 > > `union_record_type -00:18:09 v #19204 > > false -00:18:09 v #19205 > > if has_case |> not -00:18:09 v #19206 > > then None -00:18:09 v #19207 > > else -00:18:09 v #19208 > > inl separator = -00:18:09 v #19209 > > backend_switch { -00:18:09 v #19210 > > Fsharp = fun () => -00:18:09 v #19211 > > run_target function -00:18:09 v #19212 > > | Rust _ => fun () => join "(" -00:18:09 v #19213 > > | _ => fun () => join " " -00:18:09 v #19214 > > Python = fun () => "(" -00:18:09 v #19215 > > } -00:18:09 v #19216 > > inl x' = x' |> sm'.format |> sm'.split separator |> -00:18:09 v #19217 > > am'.index_base 0 -00:18:09 v #19218 > > if x |> sm'.format |> sm'.starts_with x' -00:18:09 v #19219 > > then Some key -00:18:09 v #19220 > > else None -00:18:09 v #19221 > > |> optionm.value -00:18:10 v #19222 > > -00:18:10 v #19223 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:18:10 v #19224 > > //// test -00:18:10 v #19225 > > ///! fsharp -00:18:10 v #19226 > > ///! cuda -00:18:10 v #19227 > > ///! rust -00:18:10 v #19228 > > ///! typescript -00:18:10 v #19229 > > ///! python -00:18:10 v #19230 > > -00:18:10 v #19231 > > Some true -00:18:10 v #19232 > > |> union_to_string -00:18:10 v #19233 > > |> _assert_eq' "Some" -00:18:13 v #19234 > > -00:18:13 v #19235 > > ── [ 3.50s - return value ] ──────────────────────────────────────────────────── -00:18:13 v #19236 > > │ .py output (Cuda): -00:18:13 v #19237 > > │ __assert_eq' / actual: Some / expected: Some -00:18:13 v #19238 > > │ -00:18:13 v #19239 > > │ .rs output: -00:18:13 v #19240 > > │ __assert_eq' / actual: "Some" / expected: "Some" -00:18:13 v #19241 > > │ -00:18:13 v #19242 > > │ .ts output: -00:18:13 v #19243 > > │ __assert_eq' / actual: Some / expected: Some -00:18:13 v #19244 > > │ -00:18:13 v #19245 > > │ .py output: -00:18:13 v #19246 > > │ __assert_eq' / actual: Some / expected: Some -00:18:13 v #19247 > > │ -00:18:13 v #19248 > > │ -00:18:13 v #19249 > > -00:18:13 v #19250 > > ── [ 3.50s - stdout ] ────────────────────────────────────────────────────────── -00:18:13 v #19251 > > │ .fsx output: -00:18:13 v #19252 > > │ __assert_eq' / actual: "Some" / expected: "Some" -00:18:13 v #19253 > > │ -00:18:13 v #19254 > > -00:18:13 v #19255 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:18:13 v #19256 > > │ ### nameof -00:18:13 v #19257 > > -00:18:13 v #19258 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:18:13 v #19259 > > inl nameof forall t. (x : t) : string = -00:18:13 v #19260 > > real -00:18:13 v #19261 > > real_core.record_type_fold_back -00:18:13 v #19262 > > fun key => -00:18:13 v #19263 > > forall value. _ => -00:18:13 v #19264 > > sm'_real.symbol_to_string `(`key) -00:18:13 v #19265 > > `t -00:18:13 v #19266 > > "" -00:18:14 v #19267 > > -00:18:14 v #19268 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:18:14 v #19269 > > //// test -00:18:14 v #19270 > > -00:18:14 v #19271 > > { test1 = ""; test2 = "" } -00:18:14 v #19272 > > |> nameof -00:18:14 v #19273 > > |> _assert_eq' "test1" -00:18:14 v #19274 > > -00:18:14 v #19275 > > ── [ 443.30ms - stdout ] ─────────────────────────────────────────────────────── -00:18:14 v #19276 > > │ __assert_eq' / actual: "test1" / expected: "test1" -00:18:14 v #19277 > > │ -00:18:14 v #19278 > > -00:18:14 v #19279 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:18:14 v #19280 > > │ ### get_record_fields -00:18:14 v #19281 > > -00:18:14 v #19282 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:18:14 v #19283 > > inl get_record_fields forall t u. (x : t) : list (string * u) = -00:18:14 v #19284 > > real -00:18:14 v #19285 > > real_core.record_type_fold_back -00:18:14 v #19286 > > fun key => -00:18:14 v #19287 > > forall u'. acc => -00:18:14 v #19288 > > inl k = sm'_real.symbol_to_string `(`key) -00:18:14 v #19289 > > inl v = x key -00:18:14 v #19290 > > (::) `(string * u') (k, v) acc -00:18:14 v #19291 > > `t -00:18:14 v #19292 > > (Nil `(string * u)) -00:18:15 v #19293 > > -00:18:15 v #19294 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:18:15 v #19295 > > //// test -00:18:15 v #19296 > > -00:18:15 v #19297 > > { a = "1"; b = "2" } -00:18:15 v #19298 > > |> get_record_fields -00:18:15 v #19299 > > |> _assert_eq' [[ "a", "1"; "b", "2" ]] -00:18:15 v #19300 > > -00:18:15 v #19301 > > ── [ 432.97ms - stdout ] ─────────────────────────────────────────────────────── -00:18:15 v #19302 > > │ __assert_eq' / actual: UH0_1 ("a", "1", UH0_1 ("b", "2", -00:18:15 v #19303 > > UH0_0)) / expected: UH0_1 ("a", "1", UH0_1 ("b", "2", UH0_0)) -00:18:15 v #19304 > > │ -00:18:15 v #19305 > > -00:18:15 v #19306 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:18:15 v #19307 > > │ ### get_functions_types -00:18:15 v #19308 > > -00:18:15 v #19309 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:18:15 v #19310 > > inl get_functions_types forall t {record}. (fns : t) = -00:18:15 v #19311 > > real -00:18:15 v #19312 > > inl get_function_type forall t. = -00:18:15 v #19313 > > inl args forall t {record}. : list (string * string) = -00:18:15 v #19314 > > real_core.record_type_fold_back -00:18:15 v #19315 > > fun key => -00:18:15 v #19316 > > forall v. acc => -00:18:15 v #19317 > > inl k = sm'_real.symbol_to_string `(`key) -00:18:15 v #19318 > > inl v = $'"`v"' : string -00:18:15 v #19319 > > (::) `(string * string) (k, v) acc -00:18:15 v #19320 > > `t -00:18:15 v #19321 > > (Nil `(string * string)) -00:18:15 v #19322 > > -00:18:15 v #19323 > > typecase t with -00:18:15 v #19324 > > | ~t -> ~u => args `t, ($'"`u"' : string) -00:18:15 v #19325 > > -00:18:15 v #19326 > > real_core.record_type_fold_back -00:18:15 v #19327 > > fun key => -00:18:15 v #19328 > > forall v. acc => -00:18:15 v #19329 > > inl k = sm'_real.symbol_to_string `(`key) -00:18:15 v #19330 > > inl args, result = get_function_type `v -00:18:15 v #19331 > > (::) `(string * (list (string * string) * string)) (k, -00:18:15 v #19332 > > (args, result)) acc -00:18:15 v #19333 > > `(`fns) -00:18:15 v #19334 > > (Nil `(string * (list (string * string) * string))) -00:18:15 v #19335 > > |> fun x => x : list (string * (list (string * string) * string)) -00:18:15 v #19336 > > -00:18:15 v #19337 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:18:15 v #19338 > > //// test -00:18:15 v #19339 > > -00:18:15 v #19340 > > inl one ({ a } : { a : i32 }) : i32 = a + 1 -00:18:15 v #19341 > > inl two ({ a b } : { a : i32; b : i32 }) : i32 = a + b + 2 -00:18:15 v #19342 > > inl fns = { one two } -00:18:15 v #19343 > > -00:18:15 v #19344 > > fns -00:18:15 v #19345 > > |> get_functions_types -00:18:15 v #19346 > > |> listm.map fun (name, args, result) => name, (args |> listm'.box |> -00:18:15 v #19347 > > listm'.to_array', result) -00:18:15 v #19348 > > |> listm'.box -00:18:15 v #19349 > > |> listm'.to_array' -00:18:15 v #19350 > > |> sm'.format -00:18:15 v #19351 > > |> _assert_eq' ( -00:18:15 v #19352 > > [[ -00:18:15 v #19353 > > "one", [["a", "int32"]], "int32" -00:18:15 v #19354 > > "two", [["a", "int32"; "b", "int32"]], "int32" -00:18:15 v #19355 > > ]] -00:18:15 v #19356 > > |> listm.map fun (name, args, result) => name, (args |> listm'.box |> -00:18:15 v #19357 > > listm'.to_array', result) -00:18:15 v #19358 > > |> listm'.box -00:18:15 v #19359 > > |> listm'.to_array' -00:18:15 v #19360 > > |> sm'.format -00:18:15 v #19361 > > ) -00:18:16 v #19362 > > -00:18:16 v #19363 > > ── [ 504.85ms - stdout ] ─────────────────────────────────────────────────────── -00:18:16 v #19364 > > │ __assert_eq' / actual: "[|struct ("one", [|struct ("a", -00:18:16 v #19365 > > "int32")|], "int32"); -00:18:16 v #19366 > > │ struct ("two", [|struct ("a", "int32"); struct ("b", -00:18:16 v #19367 > > "int32")|], "int32")|]" / expected: "[|struct ("one", [|struct ("a", "int32")|], -00:18:16 v #19368 > > "int32"); -00:18:16 v #19369 > > │ struct ("two", [|struct ("a", "int32"); struct ("b", -00:18:16 v #19370 > > "int32")|], "int32")|]" -00:18:16 v #19371 > > │ -00:18:16 v #19372 > 00:00:29 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 18367 } -00:18:16 v #19373 > 00:00:29 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/lib/spiral/reflection.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/lib/spiral/reflection.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:18:17 v #19374 > 00:00:31 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/lib/spiral/reflection.dib.ipynb to html -00:18:17 v #19375 > 00:00:31 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. -00:18:17 v #19376 > 00:00:31 v #7 ! validate(nb) -00:18:18 v #19377 > 00:00:31 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 -00:18:18 v #19378 > 00:00:31 v #9 ! return _pygments_highlight( -00:18:18 v #19379 > 00:00:32 v #10 ! [NbConvertApp] Writing 326982 bytes to c:\home\git\polyglot\lib\spiral\reflection.dib.html -00:18:19 v #19380 > 00:00:32 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 862 } -00:18:19 v #19381 > 00:00:32 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 862 } -00:18:19 v #19382 > 00:00:32 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/reflection.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/reflection.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:18:19 v #19383 > 00:00:32 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } -00:18:19 v #19384 > 00:00:32 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } -00:18:19 v #19385 > 00:00:32 d #16 spiral.run / dib / { exit_code = 0; result_length = 19288 } -00:18:19 d #19386 runtime.execute_with_options_async / { exit_code = 0; output_length = 22773 } -00:18:19 d #25 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path reflection.dib --retries 3 -00:18:19 d #19387 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path iter.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path iter.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } -00:18:19 v #19388 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "iter.dib", "--retries", "3"])) } -00:18:19 v #19389 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/lib/spiral/iter.dib", "--output-path", "c:/home/git/polyglot/lib/spiral/iter.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/lib/spiral/iter.dib" --output-path "c:/home/git/polyglot/lib/spiral/iter.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } -00:18:21 v #19390 > > -00:18:21 v #19391 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:18:21 v #19392 > > │ # iter -00:18:24 v #19393 > > -00:18:24 v #19394 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:18:24 v #19395 > > open rust -00:18:24 v #19396 > > open rust_operators -00:18:26 v #19397 > > -00:18:26 v #19398 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:18:26 v #19399 > > //// test -00:18:26 v #19400 > > -00:18:26 v #19401 > > open testing -00:18:26 v #19402 > > -00:18:26 v #19403 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:18:26 v #19404 > > │ ## rust -00:18:26 v #19405 > > -00:18:26 v #19406 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:18:26 v #19407 > > │ ### enumerate -00:18:26 v #19408 > > -00:18:26 v #19409 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:18:26 v #19410 > > inl enumerate forall t. (iter : into_iterator t) : into_iterator (pair -00:18:26 v #19411 > > unativeint t) = -00:18:26 v #19412 > > !\($'"!iter.enumerate().map(std::sync::Arc::new)"') -00:18:26 v #19413 > > -00:18:26 v #19414 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:18:26 v #19415 > > │ ### into_iter -00:18:26 v #19416 > > -00:18:26 v #19417 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:18:26 v #19418 > > inl into_iter forall (t : * -> *) u. (x : t u) : into_iterator u = -00:18:26 v #19419 > > !\($'"!x.into_iter()"') -00:18:27 v #19420 > > -00:18:27 v #19421 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:18:27 v #19422 > > │ ### iter -00:18:27 v #19423 > > -00:18:27 v #19424 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:18:27 v #19425 > > inl iter forall (t : * -> *) u. (x : t u) : into_iterator u = -00:18:27 v #19426 > > !\\(x, $'"$0.iter()"') -00:18:27 v #19427 > > -00:18:27 v #19428 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:18:27 v #19429 > > │ ### iter_ref -00:18:27 v #19430 > > -00:18:27 v #19431 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:18:27 v #19432 > > inl iter_ref forall (t : * -> *) u. (x : t u) : into_iterator (rust.ref u) = -00:18:27 v #19433 > > !\\(x, $'"$0.iter()"') -00:18:28 v #19434 > > -00:18:28 v #19435 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:18:28 v #19436 > > │ ### iter_ref' -00:18:28 v #19437 > > -00:18:28 v #19438 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:18:28 v #19439 > > inl iter_ref' forall (t : * -> *) u. (x : rust.ref (t u)) : into_iterator -00:18:28 v #19440 > > (rust.ref u) = -00:18:28 v #19441 > > !\\(x, $'"$0.iter()"') -00:18:28 v #19442 > > -00:18:28 v #19443 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:18:28 v #19444 > > │ ### iter_ref'' -00:18:28 v #19445 > > -00:18:28 v #19446 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:18:28 v #19447 > > inl iter_ref'' forall (t : * -> *) u (v : * -> *). (x : v (t u)) : into_iterator -00:18:28 v #19448 > > (rust.ref u) = -00:18:28 v #19449 > > !\\(x, $'"$0.iter()"') -00:18:28 v #19450 > > -00:18:28 v #19451 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:18:28 v #19452 > > │ ### iter_ref''' -00:18:28 v #19453 > > -00:18:28 v #19454 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:18:28 v #19455 > > inl iter_ref''' forall (t : * -> *) u (v : * -> *) (w : * -> *). (x : w (v (t -00:18:28 v #19456 > > u))) : into_iterator (rust.ref u) = -00:18:28 v #19457 > > !\\(x, $'"$0.iter()"') -00:18:29 v #19458 > > -00:18:29 v #19459 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:18:29 v #19460 > > │ ### map -00:18:29 v #19461 > > -00:18:29 v #19462 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:18:29 v #19463 > > inl map forall t u. (fn : t -> u) (iter : into_iterator t) : into_iterator u = -00:18:29 v #19464 > > !\\(fn, $'"!iter.map(|x| $0(x))"') -00:18:29 v #19465 > > -00:18:29 v #19466 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:18:29 v #19467 > > │ ### cloned -00:18:29 v #19468 > > -00:18:29 v #19469 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:18:29 v #19470 > > inl cloned forall t. (iter : into_iterator (rust.ref t)) : into_iterator t = -00:18:29 v #19471 > > !\($'"!iter.cloned()"') -00:18:30 v #19472 > > -00:18:30 v #19473 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:18:30 v #19474 > > │ ### for_each -00:18:30 v #19475 > > -00:18:30 v #19476 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:18:30 v #19477 > > inl for_each forall t. (fn : t -> ()) (iter : into_iterator t) : () = -00:18:30 v #19478 > > (!\\(fn, $'"true; !iter.for_each(|x| $0(x))"') : bool) |> ignore -00:18:30 v #19479 > > -00:18:30 v #19480 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:18:30 v #19481 > > │ ### try_for_each -00:18:30 v #19482 > > -00:18:30 v #19483 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:18:30 v #19484 > > inl try_for_each forall t. (fn : t -> rust.try ()) x : resultm.result' () string -00:18:30 v #19485 > > = -00:18:30 v #19486 > > (!\($'"true; let mut !x = !x; let _iter_try_for_each = !x.try_for_each(|x| { -00:18:30 v #19487 > > //"') : bool) |> ignore -00:18:30 v #19488 > > (!\\(fn !\($'"x"'), $'"true; $0 }); //"') : bool) |> ignore -00:18:30 v #19489 > > !\($'"_iter_try_for_each.map_err(|x| x.into())"') -00:18:31 v #19490 > > -00:18:31 v #19491 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:18:31 v #19492 > > │ ### all -00:18:31 v #19493 > > -00:18:31 v #19494 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:18:31 v #19495 > > inl all forall t. (fn : t -> bool) (x : rust.mut' (into_iterator t)) : bool = -00:18:31 v #19496 > > x |> rust.to_mut -00:18:31 v #19497 > > !\\(fn, $'$"!x.all(|x| $0(x))"') -00:18:31 v #19498 > > -00:18:31 v #19499 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:18:31 v #19500 > > │ ### enumerate -00:18:31 v #19501 > > -00:18:31 v #19502 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:18:31 v #19503 > > inl enumerate forall dim {int; number} t. (ar : a dim t) : a dim (unativeint * -00:18:31 v #19504 > > t) = -00:18:31 v #19505 > > inl (a ar) = ar -00:18:31 v #19506 > > ar -00:18:31 v #19507 > > |> am'.to_vec -00:18:31 v #19508 > > |> into_iter -00:18:31 v #19509 > > |> enumerate -00:18:31 v #19510 > > |> iter_collect -00:18:31 v #19511 > > |> am'.vec_map' from_pair -00:18:31 v #19512 > > |> am'.from_vec -00:18:32 v #19513 > > -00:18:32 v #19514 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:18:32 v #19515 > > //// test -00:18:32 v #19516 > > ///! rust -00:18:32 v #19517 > > -00:18:32 v #19518 > > am'.init_series 0i32 2 1 -00:18:32 v #19519 > > |> fun x => a x : _ int _ -00:18:32 v #19520 > > |> enumerate -00:18:32 v #19521 > > |> fun (a x : _ int _) => x -00:18:32 v #19522 > > |> _assert_eq' ;[[ convert 0i32, 0; convert 1i32, 1; convert 2i32, 2 ]] -00:18:36 v #19523 > > -00:18:36 v #19524 > > ── [ 3.98s - return value ] ──────────────────────────────────────────────────── -00:18:36 v #19525 > > │ __assert_eq' / actual: Array(MutCell([(0, 0), (1, 1), (2, -00:18:36 v #19526 > > 2)])) / expected: Array(MutCell([(0, 0), (1, 1), (2, 2)])) -00:18:36 v #19527 > > │ -00:18:36 v #19528 > 00:00:16 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 5435 } -00:18:36 v #19529 > 00:00:16 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/lib/spiral/iter.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/lib/spiral/iter.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:18:37 v #19530 > 00:00:18 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/lib/spiral/iter.dib.ipynb to html -00:18:37 v #19531 > 00:00:18 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. -00:18:37 v #19532 > 00:00:18 v #7 ! validate(nb) -00:18:38 v #19533 > 00:00:19 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 -00:18:38 v #19534 > 00:00:19 v #9 ! return _pygments_highlight( -00:18:38 v #19535 > 00:00:19 v #10 ! [NbConvertApp] Writing 299004 bytes to c:\home\git\polyglot\lib\spiral\iter.dib.html -00:18:38 v #19536 > 00:00:19 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 850 } -00:18:38 v #19537 > 00:00:19 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 850 } -00:18:38 v #19538 > 00:00:19 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/iter.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/iter.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:18:39 v #19539 > 00:00:19 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } -00:18:39 v #19540 > 00:00:19 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } -00:18:39 v #19541 > 00:00:19 d #16 spiral.run / dib / { exit_code = 0; result_length = 6344 } -00:18:39 d #19542 runtime.execute_with_options_async / { exit_code = 0; output_length = 9135 } -00:18:39 d #26 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path iter.dib --retries 3 -00:18:39 d #19543 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path wasm.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path wasm.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } -00:18:39 v #19544 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "wasm.dib", "--retries", "3"])) } -00:18:39 v #19545 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/lib/spiral/wasm.dib", "--output-path", "c:/home/git/polyglot/lib/spiral/wasm.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/lib/spiral/wasm.dib" --output-path "c:/home/git/polyglot/lib/spiral/wasm.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } -00:18:41 v #19546 > > -00:18:41 v #19547 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:18:41 v #19548 > > │ # wasm -00:18:44 v #19549 > > -00:18:44 v #19550 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:18:44 v #19551 > > open rust -00:18:44 v #19552 > > open rust_operators -00:18:45 v #19553 > > -00:18:45 v #19554 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:18:45 v #19555 > > │ ### rexie -00:18:45 v #19556 > > -00:18:45 v #19557 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:18:45 v #19558 > > nominal rexie = -00:18:45 v #19559 > > `( -00:18:45 v #19560 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:18:45 v #19561 > > Fable.Core.Emit(\"rexie::Rexie\")>]]\n#endif\ntype rexie_Rexie = class end" -00:18:45 v #19562 > > $'' : $'rexie_Rexie' -00:18:45 v #19563 > > ) -00:18:46 v #19564 > > -00:18:46 v #19565 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:18:46 v #19566 > > │ ### rexie_store -00:18:46 v #19567 > > -00:18:46 v #19568 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:18:46 v #19569 > > nominal rexie_store = -00:18:46 v #19570 > > `( -00:18:46 v #19571 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:18:46 v #19572 > > Fable.Core.Emit(\"rexie::Store\")>]]\n#endif\ntype rexie_Store = class end" -00:18:46 v #19573 > > $'' : $'rexie_Store' -00:18:46 v #19574 > > ) -00:18:46 v #19575 > > -00:18:46 v #19576 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:18:46 v #19577 > > │ ### rexie_transaction -00:18:46 v #19578 > > -00:18:46 v #19579 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:18:46 v #19580 > > nominal rexie_transaction = -00:18:46 v #19581 > > `( -00:18:46 v #19582 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:18:46 v #19583 > > Fable.Core.Emit(\"rexie::Transaction\")>]]\n#endif\ntype rexie_Transaction = -00:18:46 v #19584 > > class end" -00:18:46 v #19585 > > $'' : $'rexie_Transaction' -00:18:46 v #19586 > > ) -00:18:47 v #19587 > > -00:18:47 v #19588 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:18:47 v #19589 > > │ ### rexie_error -00:18:47 v #19590 > > -00:18:47 v #19591 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:18:47 v #19592 > > nominal rexie_error = -00:18:47 v #19593 > > `( -00:18:47 v #19594 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:18:47 v #19595 > > Fable.Core.Emit(\"rexie::Error\")>]]\n#endif\ntype rexie_Error = class end" -00:18:47 v #19596 > > $'' : $'rexie_Error' -00:18:47 v #19597 > > ) -00:18:47 v #19598 > > -00:18:47 v #19599 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:18:47 v #19600 > > │ ### js_value -00:18:47 v #19601 > > -00:18:47 v #19602 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:18:47 v #19603 > > nominal js_value = -00:18:47 v #19604 > > `( -00:18:47 v #19605 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:18:47 v #19606 > > Fable.Core.Emit(\"wasm_bindgen::JsValue\")>]]\n#endif\ntype wasm_bindgen_JsValue -00:18:47 v #19607 > > = class end" -00:18:47 v #19608 > > $'' : $'wasm_bindgen_JsValue' -00:18:47 v #19609 > > ) -00:18:48 v #19610 > > -00:18:48 v #19611 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:18:48 v #19612 > > │ ### closure -00:18:48 v #19613 > > -00:18:48 v #19614 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:18:48 v #19615 > > nominal closure t = -00:18:48 v #19616 > > `( -00:18:48 v #19617 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:18:48 v #19618 > > Fable.Core.Emit(\"wasm_bindgen::closure::Closure<$0>\")>]]\n#endif\ntype -00:18:48 v #19619 > > wasm_bindgen_closure_Closure<'T> = class end" -00:18:48 v #19620 > > $'' : $'wasm_bindgen_closure_Closure<`t>' -00:18:48 v #19621 > > ) -00:18:48 v #19622 > > -00:18:48 v #19623 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:18:48 v #19624 > > │ ### js_function -00:18:48 v #19625 > > -00:18:48 v #19626 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:18:48 v #19627 > > nominal js_function = -00:18:48 v #19628 > > `( -00:18:48 v #19629 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:18:48 v #19630 > > Fable.Core.Emit(\"js_sys::Function\")>]]\n#endif\ntype js_sys_Function = class -00:18:48 v #19631 > > end" -00:18:48 v #19632 > > $'' : $'js_sys_Function' -00:18:48 v #19633 > > ) -00:18:48 v #19634 > > -00:18:48 v #19635 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:18:48 v #19636 > > │ ### window -00:18:48 v #19637 > > -00:18:48 v #19638 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:18:48 v #19639 > > nominal window = -00:18:48 v #19640 > > `( -00:18:48 v #19641 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:18:48 v #19642 > > Fable.Core.Emit(\"web_sys::Window\")>]]\n#endif\ntype web_sys_Window = class -00:18:48 v #19643 > > end" -00:18:48 v #19644 > > $'' : $'web_sys_Window' -00:18:48 v #19645 > > ) -00:18:49 v #19646 > > -00:18:49 v #19647 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:18:49 v #19648 > > │ ### document -00:18:49 v #19649 > > -00:18:49 v #19650 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:18:49 v #19651 > > nominal document = -00:18:49 v #19652 > > `( -00:18:49 v #19653 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:18:49 v #19654 > > Fable.Core.Emit(\"web_sys::Document\")>]]\n#endif\ntype web_sys_Document = class -00:18:49 v #19655 > > end" -00:18:49 v #19656 > > $'' : $'web_sys_Document' -00:18:49 v #19657 > > ) -00:18:49 v #19658 > > -00:18:49 v #19659 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:18:49 v #19660 > > │ ### html_element -00:18:49 v #19661 > > -00:18:49 v #19662 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:18:49 v #19663 > > nominal html_element = -00:18:49 v #19664 > > `( -00:18:49 v #19665 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:18:49 v #19666 > > Fable.Core.Emit(\"web_sys::HtmlElement\")>]]\n#endif\ntype web_sys_HtmlElement = -00:18:49 v #19667 > > class end" -00:18:49 v #19668 > > $'' : $'web_sys_HtmlElement' -00:18:49 v #19669 > > ) -00:18:50 v #19670 > > -00:18:50 v #19671 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:18:50 v #19672 > > │ ### storage -00:18:50 v #19673 > > -00:18:50 v #19674 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:18:50 v #19675 > > nominal storage = -00:18:50 v #19676 > > `( -00:18:50 v #19677 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:18:50 v #19678 > > Fable.Core.Emit(\"web_sys::Storage\")>]]\n#endif\ntype web_sys_Storage = class -00:18:50 v #19679 > > end" -00:18:50 v #19680 > > $'' : $'web_sys_Storage' -00:18:50 v #19681 > > ) -00:18:50 v #19682 > > -00:18:50 v #19683 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:18:50 v #19684 > > │ ### closure_wrap -00:18:50 v #19685 > > -00:18:50 v #19686 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:18:50 v #19687 > > inl closure_wrap forall t. (x : rust.box t) : closure t = -00:18:50 v #19688 > > inl x = join x -00:18:50 v #19689 > > !\($'"wasm_bindgen::closure::Closure::wrap(!x)"') -00:18:51 v #19690 > > -00:18:51 v #19691 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:18:51 v #19692 > > │ ### closure_forget -00:18:51 v #19693 > > -00:18:51 v #19694 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:18:51 v #19695 > > inl closure_forget forall t. (closure : closure t) = -00:18:51 v #19696 > > !\($'"!closure.forget()"') : () -00:18:51 v #19697 > > -00:18:51 v #19698 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:18:51 v #19699 > > │ ### closure_as_ref -00:18:51 v #19700 > > -00:18:51 v #19701 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:18:51 v #19702 > > inl closure_as_ref forall t. (closure : closure t) : rust.ref js_value = -00:18:51 v #19703 > > !\($'"wasm_bindgen::closure::Closure::as_ref(&!closure)"') -00:18:51 v #19704 > > -00:18:51 v #19705 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:18:51 v #19706 > > │ ### unchecked_ref -00:18:51 v #19707 > > -00:18:51 v #19708 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:18:51 v #19709 > > inl unchecked_ref (ref : rust.ref js_value) : rust.ref js_function = -00:18:51 v #19710 > > !\($'"wasm_bindgen::JsCast::unchecked_ref(!ref)"') -00:18:52 v #19711 > > -00:18:52 v #19712 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:18:52 v #19713 > > │ ### set_inner_html -00:18:52 v #19714 > > -00:18:52 v #19715 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:18:52 v #19716 > > inl set_inner_html (html : string) (el : html_element) = -00:18:52 v #19717 > > inl html = join html -00:18:52 v #19718 > > inl html = html |> sm'.as_str -00:18:52 v #19719 > > inl el = join el -00:18:52 v #19720 > > !\\(html, $'"!el.set_inner_html($0)"') -00:18:52 v #19721 > > -00:18:52 v #19722 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:18:52 v #19723 > > │ ### from_js_value -00:18:52 v #19724 > > -00:18:52 v #19725 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:18:52 v #19726 > > inl from_js_value (value : js_value) : resultm.result' (optionm'.option' -00:18:52 v #19727 > > sm'.json_value) sm'.std_string = -00:18:52 v #19728 > > inl value = join value -00:18:52 v #19729 > > !\($'"serde_wasm_bindgen::from_value(!value)"') -00:18:52 v #19730 > > |> resultm.map_error' fun (x : sm'.serde_wasm_bindgen_error) => x |> -00:18:52 v #19731 > > sm'.format' -00:18:53 v #19732 > 00:00:14 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 6986 } -00:18:53 v #19733 > 00:00:14 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/lib/spiral/wasm.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/lib/spiral/wasm.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:18:54 v #19734 > 00:00:15 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/lib/spiral/wasm.dib.ipynb to html -00:18:54 v #19735 > 00:00:15 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. -00:18:54 v #19736 > 00:00:15 v #7 ! validate(nb) -00:18:55 v #19737 > 00:00:15 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 -00:18:55 v #19738 > 00:00:15 v #9 ! return _pygments_highlight( -00:18:55 v #19739 > 00:00:16 v #10 ! [NbConvertApp] Writing 302376 bytes to c:\home\git\polyglot\lib\spiral\wasm.dib.html -00:18:55 v #19740 > 00:00:16 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 850 } -00:18:55 v #19741 > 00:00:16 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 850 } -00:18:55 v #19742 > 00:00:16 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/wasm.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/wasm.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:18:55 v #19743 > 00:00:16 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } -00:18:55 v #19744 > 00:00:16 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } -00:18:55 v #19745 > 00:00:16 d #16 spiral.run / dib / { exit_code = 0; result_length = 7895 } -00:18:55 d #19746 runtime.execute_with_options_async / { exit_code = 0; output_length = 10782 } -00:18:55 d #27 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path wasm.dib --retries 3 -00:18:55 d #19747 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path leptos/leptos.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path leptos/leptos.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } -00:18:55 v #19748 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "leptos/leptos.dib", "--retries", "3"])) } -00:18:55 v #19749 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/lib/spiral/leptos/leptos.dib", "--output-path", "c:/home/git/polyglot/lib/spiral/leptos/leptos.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/lib/spiral/leptos/leptos.dib" --output-path "c:/home/git/polyglot/lib/spiral/leptos/leptos.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } -00:18:57 v #19750 > > -00:18:57 v #19751 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:18:57 v #19752 > > │ # leptos -00:19:00 v #19753 > > -00:19:00 v #19754 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:00 v #19755 > > open rust.rust_operators -00:19:00 v #19756 > > open rust -00:19:00 v #19757 > > open sm'_operators -00:19:02 v #19758 > > -00:19:02 v #19759 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:02 v #19760 > > │ ### a' -00:19:02 v #19761 > > -00:19:02 v #19762 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:02 v #19763 > > nominal a' = -00:19:02 v #19764 > > `( -00:19:02 v #19765 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:19:02 v #19766 > > Fable.Core.Emit(\"leptos::html::A\")>]]\n#endif\ntype leptos_html_A = class end" -00:19:02 v #19767 > > $'' : $'leptos_html_A' -00:19:02 v #19768 > > ) -00:19:02 v #19769 > > -00:19:02 v #19770 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:02 v #19771 > > │ ### event -00:19:02 v #19772 > > -00:19:02 v #19773 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:02 v #19774 > > nominal event = -00:19:02 v #19775 > > `( -00:19:02 v #19776 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:19:02 v #19777 > > Fable.Core.Emit(\"leptos::ev::Event\")>]]\n#endif\ntype leptos_ev_Event = class -00:19:02 v #19778 > > end" -00:19:02 v #19779 > > $'' : $'leptos_ev_Event' -00:19:02 v #19780 > > ) -00:19:03 v #19781 > > -00:19:03 v #19782 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:03 v #19783 > > │ ### mouse_event -00:19:03 v #19784 > > -00:19:03 v #19785 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:03 v #19786 > > nominal mouse_event = -00:19:03 v #19787 > > `( -00:19:03 v #19788 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:19:03 v #19789 > > Fable.Core.Emit(\"leptos::ev::MouseEvent\")>]]\n#endif\ntype -00:19:03 v #19790 > > leptos_ev_MouseEvent = class end" -00:19:03 v #19791 > > $'' : $'leptos_ev_MouseEvent' -00:19:03 v #19792 > > ) -00:19:03 v #19793 > > -00:19:03 v #19794 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:03 v #19795 > > │ ### button -00:19:03 v #19796 > > -00:19:03 v #19797 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:03 v #19798 > > nominal button = -00:19:03 v #19799 > > `( -00:19:03 v #19800 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:19:03 v #19801 > > Fable.Core.Emit(\"leptos::html::Button\")>]]\n#endif\ntype leptos_html_Button = -00:19:03 v #19802 > > class end" -00:19:03 v #19803 > > $'' : $'leptos_html_Button' -00:19:03 v #19804 > > ) -00:19:03 v #19805 > > -00:19:03 v #19806 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:03 v #19807 > > │ ### details -00:19:03 v #19808 > > -00:19:03 v #19809 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:03 v #19810 > > nominal details = -00:19:03 v #19811 > > `( -00:19:03 v #19812 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:19:03 v #19813 > > Fable.Core.Emit(\"leptos::html::Details\")>]]\n#endif\ntype leptos_html_Details -00:19:03 v #19814 > > = class end" -00:19:03 v #19815 > > $'' : $'leptos_html_Details' -00:19:03 v #19816 > > ) -00:19:04 v #19817 > > -00:19:04 v #19818 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:04 v #19819 > > │ ### dd -00:19:04 v #19820 > > -00:19:04 v #19821 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:04 v #19822 > > nominal dd = -00:19:04 v #19823 > > `( -00:19:04 v #19824 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:19:04 v #19825 > > Fable.Core.Emit(\"leptos::html::Dd\")>]]\n#endif\ntype leptos_html_Dd = class -00:19:04 v #19826 > > end" -00:19:04 v #19827 > > $'' : $'leptos_html_Dd' -00:19:04 v #19828 > > ) -00:19:04 v #19829 > > -00:19:04 v #19830 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:04 v #19831 > > │ ### div -00:19:04 v #19832 > > -00:19:04 v #19833 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:04 v #19834 > > nominal div = -00:19:04 v #19835 > > `( -00:19:04 v #19836 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:19:04 v #19837 > > Fable.Core.Emit(\"leptos::html::Div\")>]]\n#endif\ntype leptos_html_Div = class -00:19:04 v #19838 > > end" -00:19:04 v #19839 > > $'' : $'leptos_html_Div' -00:19:04 v #19840 > > ) -00:19:05 v #19841 > > -00:19:05 v #19842 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:05 v #19843 > > │ ### dl -00:19:05 v #19844 > > -00:19:05 v #19845 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:05 v #19846 > > nominal dl = -00:19:05 v #19847 > > `( -00:19:05 v #19848 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:19:05 v #19849 > > Fable.Core.Emit(\"leptos::html::Dl\")>]]\n#endif\ntype leptos_html_Dl = class -00:19:05 v #19850 > > end" -00:19:05 v #19851 > > $'' : $'leptos_html_Dl' -00:19:05 v #19852 > > ) -00:19:05 v #19853 > > -00:19:05 v #19854 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:05 v #19855 > > │ ### dt -00:19:05 v #19856 > > -00:19:05 v #19857 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:05 v #19858 > > nominal dt = -00:19:05 v #19859 > > `( -00:19:05 v #19860 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:19:05 v #19861 > > Fable.Core.Emit(\"leptos::html::Dt\")>]]\n#endif\ntype leptos_html_Dt = class -00:19:05 v #19862 > > end" -00:19:05 v #19863 > > $'' : $'leptos_html_Dt' -00:19:05 v #19864 > > ) -00:19:05 v #19865 > > -00:19:05 v #19866 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:05 v #19867 > > │ ### footer -00:19:05 v #19868 > > -00:19:05 v #19869 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:05 v #19870 > > nominal footer = -00:19:05 v #19871 > > `( -00:19:05 v #19872 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:19:05 v #19873 > > Fable.Core.Emit(\"leptos::html::Footer\")>]]\n#endif\ntype leptos_html_Footer = -00:19:05 v #19874 > > class end" -00:19:05 v #19875 > > $'' : $'leptos_html_Footer' -00:19:05 v #19876 > > ) -00:19:06 v #19877 > > -00:19:06 v #19878 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:06 v #19879 > > │ ### header -00:19:06 v #19880 > > -00:19:06 v #19881 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:06 v #19882 > > nominal header = -00:19:06 v #19883 > > `( -00:19:06 v #19884 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:19:06 v #19885 > > Fable.Core.Emit(\"leptos::html::Header\")>]]\n#endif\ntype leptos_html_Header = -00:19:06 v #19886 > > class end" -00:19:06 v #19887 > > $'' : $'leptos_html_Header' -00:19:06 v #19888 > > ) -00:19:06 v #19889 > > -00:19:06 v #19890 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:06 v #19891 > > │ ### input -00:19:06 v #19892 > > -00:19:06 v #19893 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:06 v #19894 > > nominal input = -00:19:06 v #19895 > > `( -00:19:06 v #19896 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:19:06 v #19897 > > Fable.Core.Emit(\"leptos::html::Input\")>]]\n#endif\ntype leptos_html_Input = -00:19:06 v #19898 > > class end" -00:19:06 v #19899 > > $'' : $'leptos_html_Input' -00:19:06 v #19900 > > ) -00:19:07 v #19901 > > -00:19:07 v #19902 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:07 v #19903 > > │ ### label -00:19:07 v #19904 > > -00:19:07 v #19905 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:07 v #19906 > > nominal label = -00:19:07 v #19907 > > `( -00:19:07 v #19908 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:19:07 v #19909 > > Fable.Core.Emit(\"leptos::html::Label\")>]]\n#endif\ntype leptos_html_Label = -00:19:07 v #19910 > > class end" -00:19:07 v #19911 > > $'' : $'leptos_html_Label' -00:19:07 v #19912 > > ) -00:19:07 v #19913 > > -00:19:07 v #19914 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:07 v #19915 > > │ ### main -00:19:07 v #19916 > > -00:19:07 v #19917 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:07 v #19918 > > nominal main = -00:19:07 v #19919 > > `( -00:19:07 v #19920 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:19:07 v #19921 > > Fable.Core.Emit(\"leptos::html::Main\")>]]\n#endif\ntype leptos_html_Main = -00:19:07 v #19922 > > class end" -00:19:07 v #19923 > > $'' : $'leptos_html_Main' -00:19:07 v #19924 > > ) -00:19:08 v #19925 > > -00:19:08 v #19926 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:08 v #19927 > > │ ### nav -00:19:08 v #19928 > > -00:19:08 v #19929 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:08 v #19930 > > nominal nav = -00:19:08 v #19931 > > `( -00:19:08 v #19932 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:19:08 v #19933 > > Fable.Core.Emit(\"leptos::html::Nav\")>]]\n#endif\ntype leptos_html_Nav = class -00:19:08 v #19934 > > end" -00:19:08 v #19935 > > $'' : $'leptos_html_Nav' -00:19:08 v #19936 > > ) -00:19:08 v #19937 > > -00:19:08 v #19938 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:08 v #19939 > > │ ### option' -00:19:08 v #19940 > > -00:19:08 v #19941 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:08 v #19942 > > nominal option' = -00:19:08 v #19943 > > `( -00:19:08 v #19944 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:19:08 v #19945 > > Fable.Core.Emit(\"leptos::html::Option_\")>]]\n#endif\ntype leptos_html_Option = -00:19:08 v #19946 > > class end" -00:19:08 v #19947 > > $'' : $'leptos_html_Option' -00:19:08 v #19948 > > ) -00:19:08 v #19949 > > -00:19:08 v #19950 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:08 v #19951 > > │ ### pre -00:19:08 v #19952 > > -00:19:08 v #19953 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:08 v #19954 > > nominal pre = -00:19:08 v #19955 > > `( -00:19:08 v #19956 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:19:08 v #19957 > > Fable.Core.Emit(\"leptos::html::Pre\")>]]\n#endif\ntype leptos_html_Pre = class -00:19:08 v #19958 > > end" -00:19:08 v #19959 > > $'' : $'leptos_html_Pre' -00:19:08 v #19960 > > ) -00:19:09 v #19961 > > -00:19:09 v #19962 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:09 v #19963 > > │ ### select -00:19:09 v #19964 > > -00:19:09 v #19965 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:09 v #19966 > > nominal select = -00:19:09 v #19967 > > `( -00:19:09 v #19968 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:19:09 v #19969 > > Fable.Core.Emit(\"leptos::html::Select\")>]]\n#endif\ntype leptos_html_Select = -00:19:09 v #19970 > > class end" -00:19:09 v #19971 > > $'' : $'leptos_html_Select' -00:19:09 v #19972 > > ) -00:19:09 v #19973 > > -00:19:09 v #19974 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:09 v #19975 > > │ ### span -00:19:09 v #19976 > > -00:19:09 v #19977 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:09 v #19978 > > nominal span = -00:19:09 v #19979 > > `( -00:19:09 v #19980 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:19:09 v #19981 > > Fable.Core.Emit(\"leptos::html::Span\")>]]\n#endif\ntype leptos_html_Span = -00:19:09 v #19982 > > class end" -00:19:09 v #19983 > > $'' : $'leptos_html_Span' -00:19:09 v #19984 > > ) -00:19:10 v #19985 > > -00:19:10 v #19986 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:10 v #19987 > > │ ### summary -00:19:10 v #19988 > > -00:19:10 v #19989 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:10 v #19990 > > nominal summary = -00:19:10 v #19991 > > `( -00:19:10 v #19992 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:19:10 v #19993 > > Fable.Core.Emit(\"leptos::html::Summary\")>]]\n#endif\ntype leptos_html_Summary -00:19:10 v #19994 > > = class end" -00:19:10 v #19995 > > $'' : $'leptos_html_Summary' -00:19:10 v #19996 > > ) -00:19:10 v #19997 > > -00:19:10 v #19998 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:10 v #19999 > > │ ### table -00:19:10 v #20000 > > -00:19:10 v #20001 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:10 v #20002 > > nominal table = -00:19:10 v #20003 > > `( -00:19:10 v #20004 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:19:10 v #20005 > > Fable.Core.Emit(\"leptos::html::Table\")>]]\n#endif\ntype leptos_html_Table = -00:19:10 v #20006 > > class end" -00:19:10 v #20007 > > $'' : $'leptos_html_Table' -00:19:10 v #20008 > > ) -00:19:11 v #20009 > > -00:19:11 v #20010 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:11 v #20011 > > │ ### thead -00:19:11 v #20012 > > -00:19:11 v #20013 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:11 v #20014 > > nominal thead = -00:19:11 v #20015 > > `( -00:19:11 v #20016 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:19:11 v #20017 > > Fable.Core.Emit(\"leptos::html::Thead\")>]]\n#endif\ntype leptos_html_Thead = -00:19:11 v #20018 > > class end" -00:19:11 v #20019 > > $'' : $'leptos_html_Thead' -00:19:11 v #20020 > > ) -00:19:11 v #20021 > > -00:19:11 v #20022 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:11 v #20023 > > │ ### tbody -00:19:11 v #20024 > > -00:19:11 v #20025 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:11 v #20026 > > nominal tbody = -00:19:11 v #20027 > > `( -00:19:11 v #20028 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:19:11 v #20029 > > Fable.Core.Emit(\"leptos::html::Tbody\")>]]\n#endif\ntype leptos_html_Tbody = -00:19:11 v #20030 > > class end" -00:19:11 v #20031 > > $'' : $'leptos_html_Tbody' -00:19:11 v #20032 > > ) -00:19:12 v #20033 > > -00:19:12 v #20034 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:12 v #20035 > > │ ### tr -00:19:12 v #20036 > > -00:19:12 v #20037 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:12 v #20038 > > nominal tr = -00:19:12 v #20039 > > `( -00:19:12 v #20040 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:19:12 v #20041 > > Fable.Core.Emit(\"leptos::html::Tr\")>]]\n#endif\ntype leptos_html_Tr = class -00:19:12 v #20042 > > end" -00:19:12 v #20043 > > $'' : $'leptos_html_Tr' -00:19:12 v #20044 > > ) -00:19:12 v #20045 > > -00:19:12 v #20046 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:12 v #20047 > > │ ### th -00:19:12 v #20048 > > -00:19:12 v #20049 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:12 v #20050 > > nominal th = -00:19:12 v #20051 > > `( -00:19:12 v #20052 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:19:12 v #20053 > > Fable.Core.Emit(\"leptos::html::Th\")>]]\n#endif\ntype leptos_html_Th = class -00:19:12 v #20054 > > end" -00:19:12 v #20055 > > $'' : $'leptos_html_Th' -00:19:12 v #20056 > > ) -00:19:12 v #20057 > > -00:19:12 v #20058 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:12 v #20059 > > │ ### td -00:19:12 v #20060 > > -00:19:12 v #20061 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:12 v #20062 > > nominal td = -00:19:12 v #20063 > > `( -00:19:12 v #20064 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:19:12 v #20065 > > Fable.Core.Emit(\"leptos::html::Td\")>]]\n#endif\ntype leptos_html_Td = class -00:19:12 v #20066 > > end" -00:19:12 v #20067 > > $'' : $'leptos_html_Td' -00:19:12 v #20068 > > ) -00:19:13 v #20069 > > -00:19:13 v #20070 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:13 v #20071 > > │ ### svg -00:19:13 v #20072 > > -00:19:13 v #20073 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:13 v #20074 > > nominal svg = -00:19:13 v #20075 > > `( -00:19:13 v #20076 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:19:13 v #20077 > > Fable.Core.Emit(\"leptos::svg::Svg\")>]]\n#endif\ntype leptos_svg_Svg = class -00:19:13 v #20078 > > end" -00:19:13 v #20079 > > $'' : $'leptos_svg_Svg' -00:19:13 v #20080 > > ) -00:19:13 v #20081 > > -00:19:13 v #20082 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:13 v #20083 > > │ ### path -00:19:13 v #20084 > > -00:19:13 v #20085 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:13 v #20086 > > nominal path = -00:19:13 v #20087 > > `( -00:19:13 v #20088 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:19:13 v #20089 > > Fable.Core.Emit(\"leptos::svg::Path\")>]]\n#endif\ntype leptos_svg_Path = class -00:19:13 v #20090 > > end" -00:19:13 v #20091 > > $'' : $'leptos_svg_Path' -00:19:13 v #20092 > > ) -00:19:14 v #20093 > > -00:19:14 v #20094 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:14 v #20095 > > │ ### circle -00:19:14 v #20096 > > -00:19:14 v #20097 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:14 v #20098 > > nominal circle = -00:19:14 v #20099 > > `( -00:19:14 v #20100 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:19:14 v #20101 > > Fable.Core.Emit(\"leptos::svg::Circle\")>]]\n#endif\ntype leptos_svg_Circle = -00:19:14 v #20102 > > class end" -00:19:14 v #20103 > > $'' : $'leptos_svg_Circle' -00:19:14 v #20104 > > ) -00:19:14 v #20105 > > -00:19:14 v #20106 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:14 v #20107 > > │ ### rect -00:19:14 v #20108 > > -00:19:14 v #20109 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:14 v #20110 > > nominal rect = -00:19:14 v #20111 > > `( -00:19:14 v #20112 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:19:14 v #20113 > > Fable.Core.Emit(\"leptos::svg::Rect\")>]]\n#endif\ntype leptos_svg_Rect = class -00:19:14 v #20114 > > end" -00:19:14 v #20115 > > $'' : $'leptos_svg_Rect' -00:19:14 v #20116 > > ) -00:19:15 v #20117 > > -00:19:15 v #20118 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:15 v #20119 > > │ ### animate -00:19:15 v #20120 > > -00:19:15 v #20121 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:15 v #20122 > > nominal animate = -00:19:15 v #20123 > > `( -00:19:15 v #20124 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:19:15 v #20125 > > Fable.Core.Emit(\"leptos::svg::Animate\")>]]\n#endif\ntype leptos_svg_Animate = -00:19:15 v #20126 > > class end" -00:19:15 v #20127 > > $'' : $'leptos_svg_Animate' -00:19:15 v #20128 > > ) -00:19:15 v #20129 > > -00:19:15 v #20130 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:15 v #20131 > > │ ### action -00:19:15 v #20132 > > -00:19:15 v #20133 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:15 v #20134 > > nominal action t u = -00:19:15 v #20135 > > `( -00:19:15 v #20136 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:19:15 v #20137 > > Fable.Core.Emit(\"leptos::prelude::Action<$0, $1>\")>]]\n#endif\ntype -00:19:15 v #20138 > > leptos_prelude_Action<'T, 'U> = class end" -00:19:15 v #20139 > > $'' : $'leptos_prelude_Action<`t, `u>' -00:19:15 v #20140 > > ) -00:19:15 v #20141 > > -00:19:15 v #20142 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:15 v #20143 > > │ ### arc_action -00:19:15 v #20144 > > -00:19:15 v #20145 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:15 v #20146 > > nominal arc_action t u = -00:19:15 v #20147 > > `( -00:19:15 v #20148 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:19:15 v #20149 > > Fable.Core.Emit(\"leptos::prelude::ArcAction<$0, $1>\")>]]\n#endif\ntype -00:19:15 v #20150 > > leptos_prelude_ArcAction<'T, 'U> = class end" -00:19:15 v #20151 > > $'' : $'leptos_prelude_ArcAction<`t, `u>' -00:19:15 v #20152 > > ) -00:19:16 v #20153 > > -00:19:16 v #20154 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:16 v #20155 > > │ ### for -00:19:16 v #20156 > > -00:19:16 v #20157 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:16 v #20158 > > nominal for = -00:19:16 v #20159 > > `( -00:19:16 v #20160 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:19:16 v #20161 > > Fable.Core.Emit(\"leptos::prelude::For\")>]]\n#endif\ntype leptos_prelude_For = -00:19:16 v #20162 > > class end" -00:19:16 v #20163 > > $'' : $'leptos_prelude_For' -00:19:16 v #20164 > > ) -00:19:16 v #20165 > > -00:19:16 v #20166 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:16 v #20167 > > │ ### show -00:19:16 v #20168 > > -00:19:16 v #20169 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:16 v #20170 > > nominal show = -00:19:16 v #20171 > > `( -00:19:16 v #20172 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:19:16 v #20173 > > Fable.Core.Emit(\"leptos::prelude::Show\")>]]\n#endif\ntype leptos_prelude_Show -00:19:16 v #20174 > > = class end" -00:19:16 v #20175 > > $'' : $'leptos_prelude_Show' -00:19:16 v #20176 > > ) -00:19:17 v #20177 > > -00:19:17 v #20178 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:17 v #20179 > > │ ### fragment -00:19:17 v #20180 > > -00:19:17 v #20181 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:17 v #20182 > > nominal fragment = -00:19:17 v #20183 > > `( -00:19:17 v #20184 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:19:17 v #20185 > > Fable.Core.Emit(\"leptos::prelude::Fragment\")>]]\n#endif\ntype -00:19:17 v #20186 > > leptos_dom_Fragment = class end" -00:19:17 v #20187 > > $'' : $'leptos_dom_Fragment' -00:19:17 v #20188 > > ) -00:19:17 v #20189 > > -00:19:17 v #20190 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:17 v #20191 > > │ ### interval_handle -00:19:17 v #20192 > > -00:19:17 v #20193 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:17 v #20194 > > nominal interval_handle = -00:19:17 v #20195 > > `( -00:19:17 v #20196 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:19:17 v #20197 > > Fable.Core.Emit(\"leptos::leptos_dom::helpers::IntervalHandle\")>]]\n#endif\ntyp -00:19:17 v #20198 > > e leptos_dom_IntervalHandle = class end" -00:19:17 v #20199 > > $'' : $'leptos_dom_IntervalHandle' -00:19:17 v #20200 > > ) -00:19:18 v #20201 > > -00:19:18 v #20202 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:18 v #20203 > > │ ### text -00:19:18 v #20204 > > -00:19:18 v #20205 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:18 v #20206 > > nominal text = -00:19:18 v #20207 > > `( -00:19:18 v #20208 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:19:18 v #20209 > > Fable.Core.Emit(\"leptos::tachys::renderer::dom::Text\")>]]\n#endif\ntype -00:19:18 v #20210 > > leptos_dom_Text = class end" -00:19:18 v #20211 > > $'' : $'leptos_dom_Text' -00:19:18 v #20212 > > ) -00:19:18 v #20213 > > -00:19:18 v #20214 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:18 v #20215 > > │ ### transparent -00:19:18 v #20216 > > -00:19:18 v #20217 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:18 v #20218 > > nominal transparent = -00:19:18 v #20219 > > `( -00:19:18 v #20220 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:19:18 v #20221 > > Fable.Core.Emit(\"leptos::leptos_dom::Transparent\")>]]\n#endif\ntype -00:19:18 v #20222 > > leptos_dom_Transparent = class end" -00:19:18 v #20223 > > $'' : $'leptos_dom_Transparent' -00:19:18 v #20224 > > ) -00:19:18 v #20225 > > -00:19:18 v #20226 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:18 v #20227 > > │ ### route -00:19:18 v #20228 > > -00:19:18 v #20229 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:18 v #20230 > > nominal route = -00:19:18 v #20231 > > `( -00:19:18 v #20232 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:19:18 v #20233 > > Fable.Core.Emit(\"leptos_router::Route\")>]]\n#endif\ntype leptos_router_Route = -00:19:18 v #20234 > > class end" -00:19:18 v #20235 > > $'' : $'leptos_router_Route' -00:19:18 v #20236 > > ) -00:19:19 v #20237 > > -00:19:19 v #20238 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:19 v #20239 > > │ ### nested_route -00:19:19 v #20240 > > -00:19:19 v #20241 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:19 v #20242 > > nominal nested_route = -00:19:19 v #20243 > > `( -00:19:19 v #20244 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:19:19 v #20245 > > Fable.Core.Emit(\"leptos_router::NestedRoute<_, _, _, _>\")>]]\n#endif\ntype -00:19:19 v #20246 > > leptos_router_NestedRoute = class end" -00:19:19 v #20247 > > $'' : $'leptos_router_NestedRoute' -00:19:19 v #20248 > > ) -00:19:19 v #20249 > > -00:19:19 v #20250 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:19 v #20251 > > │ ### route_definition -00:19:19 v #20252 > > -00:19:19 v #20253 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:19 v #20254 > > nominal route_definition = -00:19:19 v #20255 > > `( -00:19:19 v #20256 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:19:19 v #20257 > > Fable.Core.Emit(\"leptos_router::RouteDefinition\")>]]\n#endif\ntype -00:19:19 v #20258 > > leptos_router_RouteDefinition = class end" -00:19:19 v #20259 > > $'' : $'leptos_router_RouteDefinition' -00:19:19 v #20260 > > ) -00:19:20 v #20261 > > -00:19:20 v #20262 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:20 v #20263 > > │ ### router -00:19:20 v #20264 > > -00:19:20 v #20265 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:20 v #20266 > > nominal router = -00:19:20 v #20267 > > `( -00:19:20 v #20268 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:19:20 v #20269 > > Fable.Core.Emit(\"leptos_router::Router\")>]]\n#endif\ntype leptos_router_Router -00:19:20 v #20270 > > = class end" -00:19:20 v #20271 > > $'' : $'leptos_router_Router' -00:19:20 v #20272 > > ) -00:19:20 v #20273 > > -00:19:20 v #20274 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:20 v #20275 > > │ ### routes -00:19:20 v #20276 > > -00:19:20 v #20277 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:20 v #20278 > > nominal routes = -00:19:20 v #20279 > > `( -00:19:20 v #20280 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:19:20 v #20281 > > Fable.Core.Emit(\"leptos_router::Routes\")>]]\n#endif\ntype leptos_router_Routes -00:19:20 v #20282 > > = class end" -00:19:20 v #20283 > > $'' : $'leptos_router_Routes' -00:19:20 v #20284 > > ) -00:19:21 v #20285 > > -00:19:21 v #20286 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:21 v #20287 > > │ ### html_element -00:19:21 v #20288 > > -00:19:21 v #20289 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:21 v #20290 > > nominal html_element t = -00:19:21 v #20291 > > `( -00:19:21 v #20292 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:19:21 v #20293 > > Fable.Core.Emit(\"leptos::html::HtmlElement<$0, _, _>\")>]]\n#endif\ntype -00:19:21 v #20294 > > leptos_dom_html_HtmlElement<'T> = class end" -00:19:21 v #20295 > > $'' : $'leptos_dom_html_HtmlElement<`t>' -00:19:21 v #20296 > > ) -00:19:21 v #20297 > > -00:19:21 v #20298 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:21 v #20299 > > │ ### into_view -00:19:21 v #20300 > > -00:19:21 v #20301 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:21 v #20302 > > nominal into_view = -00:19:21 v #20303 > > `( -00:19:21 v #20304 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:19:21 v #20305 > > Fable.Core.Emit(\"leptos::IntoView\")>]]\n#endif\ntype leptos_IntoView = class -00:19:21 v #20306 > > end" -00:19:21 v #20307 > > $'' : $'leptos_IntoView' -00:19:21 v #20308 > > ) -00:19:21 v #20309 > > -00:19:21 v #20310 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:21 v #20311 > > │ ### location -00:19:21 v #20312 > > -00:19:21 v #20313 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:21 v #20314 > > nominal location = -00:19:21 v #20315 > > `( -00:19:21 v #20316 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:19:21 v #20317 > > Fable.Core.Emit(\"leptos_router::location::Location\")>]]\n#endif\ntype -00:19:21 v #20318 > > leptos_router_location_Location = class end" -00:19:21 v #20319 > > $'' : $'leptos_router_location_Location' -00:19:21 v #20320 > > ) -00:19:22 v #20321 > > -00:19:22 v #20322 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:22 v #20323 > > │ ### navigate_options -00:19:22 v #20324 > > -00:19:22 v #20325 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:22 v #20326 > > nominal navigate_options = -00:19:22 v #20327 > > `( -00:19:22 v #20328 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:19:22 v #20329 > > Fable.Core.Emit(\"leptos_router::NavigateOptions\")>]]\n#endif\ntype -00:19:22 v #20330 > > leptos_router_NavigateOptions = class end" -00:19:22 v #20331 > > $'' : $'leptos_router_NavigateOptions' -00:19:22 v #20332 > > ) -00:19:22 v #20333 > > -00:19:22 v #20334 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:22 v #20335 > > │ ### url -00:19:22 v #20336 > > -00:19:22 v #20337 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:22 v #20338 > > nominal url = -00:19:22 v #20339 > > `( -00:19:22 v #20340 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:19:22 v #20341 > > Fable.Core.Emit(\"leptos_router::location::Url\")>]]\n#endif\ntype -00:19:22 v #20342 > > leptos_router_Url = class end" -00:19:22 v #20343 > > $'' : $'leptos_router_Url' -00:19:22 v #20344 > > ) -00:19:23 v #20345 > > -00:19:23 v #20346 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:23 v #20347 > > │ ### memo -00:19:23 v #20348 > > -00:19:23 v #20349 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:23 v #20350 > > nominal memo t = -00:19:23 v #20351 > > `( -00:19:23 v #20352 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:19:23 v #20353 > > Fable.Core.Emit(\"leptos::prelude::Memo<$0>\")>]]\n#endif\ntype -00:19:23 v #20354 > > leptos_prelude_Memo<'T> = class end" -00:19:23 v #20355 > > $'' : $'leptos_prelude_Memo<`t>' -00:19:23 v #20356 > > ) -00:19:23 v #20357 > > -00:19:23 v #20358 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:23 v #20359 > > │ ### arc_memo -00:19:23 v #20360 > > -00:19:23 v #20361 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:23 v #20362 > > nominal arc_memo t = -00:19:23 v #20363 > > `( -00:19:23 v #20364 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:19:23 v #20365 > > Fable.Core.Emit(\"leptos::prelude::ArcMemo<$0>\")>]]\n#endif\ntype -00:19:23 v #20366 > > leptos_prelude_ArcMemo<'T> = class end" -00:19:23 v #20367 > > $'' : $'leptos_prelude_ArcMemo<`t>' -00:19:23 v #20368 > > ) -00:19:24 v #20369 > > -00:19:24 v #20370 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:24 v #20371 > > │ ### rw_signal -00:19:24 v #20372 > > -00:19:24 v #20373 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:24 v #20374 > > nominal rw_signal t = -00:19:24 v #20375 > > `( -00:19:24 v #20376 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:19:24 v #20377 > > Fable.Core.Emit(\"leptos::prelude::RwSignal<$0>\")>]]\n#endif\ntype -00:19:24 v #20378 > > leptos_prelude_RwSignal<'T> = class end" -00:19:24 v #20379 > > $'' : $'leptos_prelude_RwSignal<`t>' -00:19:24 v #20380 > > ) -00:19:24 v #20381 > > -00:19:24 v #20382 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:24 v #20383 > > │ ### arc_rw_signal -00:19:24 v #20384 > > -00:19:24 v #20385 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:24 v #20386 > > nominal arc_rw_signal t = -00:19:24 v #20387 > > `( -00:19:24 v #20388 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:19:24 v #20389 > > Fable.Core.Emit(\"leptos::prelude::ArcRwSignal<$0>\")>]]\n#endif\ntype -00:19:24 v #20390 > > leptos_prelude_ArcRwSignal<'T> = class end" -00:19:24 v #20391 > > $'' : $'leptos_prelude_ArcRwSignal<`t>' -00:19:24 v #20392 > > ) -00:19:24 v #20393 > > -00:19:24 v #20394 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:24 v #20395 > > │ ### signal -00:19:24 v #20396 > > -00:19:24 v #20397 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:24 v #20398 > > nominal signal t = -00:19:24 v #20399 > > `( -00:19:24 v #20400 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:19:24 v #20401 > > Fable.Core.Emit(\"leptos::prelude::Signal<$0>\")>]]\n#endif\ntype -00:19:24 v #20402 > > leptos_prelude_Signal<'T> = class end" -00:19:24 v #20403 > > $'' : $'leptos_prelude_Signal<`t>' -00:19:24 v #20404 > > ) -00:19:25 v #20405 > > -00:19:25 v #20406 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:25 v #20407 > > │ ### arc_signal -00:19:25 v #20408 > > -00:19:25 v #20409 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:25 v #20410 > > nominal arc_signal t = -00:19:25 v #20411 > > `( -00:19:25 v #20412 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:19:25 v #20413 > > Fable.Core.Emit(\"leptos::prelude::ArcSignal<$0>\")>]]\n#endif\ntype -00:19:25 v #20414 > > leptos_prelude_ArcSignal<'T> = class end" -00:19:25 v #20415 > > $'' : $'leptos_prelude_ArcSignal<`t>' -00:19:25 v #20416 > > ) -00:19:25 v #20417 > > -00:19:25 v #20418 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:25 v #20419 > > │ ### read_signal -00:19:25 v #20420 > > -00:19:25 v #20421 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:25 v #20422 > > nominal read_signal t = -00:19:25 v #20423 > > `( -00:19:25 v #20424 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:19:25 v #20425 > > Fable.Core.Emit(\"leptos::prelude::ReadSignal<$0>\")>]]\n#endif\ntype -00:19:25 v #20426 > > leptos_prelude_ReadSignal<'T> = class end" -00:19:25 v #20427 > > $'' : $'leptos_prelude_ReadSignal<`t>' -00:19:25 v #20428 > > ) -00:19:26 v #20429 > > -00:19:26 v #20430 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:26 v #20431 > > │ ### arc_read_signal -00:19:26 v #20432 > > -00:19:26 v #20433 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:26 v #20434 > > nominal arc_read_signal t = -00:19:26 v #20435 > > `( -00:19:26 v #20436 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:19:26 v #20437 > > Fable.Core.Emit(\"leptos::prelude::ArcReadSignal<$0>\")>]]\n#endif\ntype -00:19:26 v #20438 > > leptos_prelude_ArcReadSignal<'T> = class end" -00:19:26 v #20439 > > $'' : $'leptos_prelude_ArcReadSignal<`t>' -00:19:26 v #20440 > > ) -00:19:26 v #20441 > > -00:19:26 v #20442 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:26 v #20443 > > │ ### write_signal -00:19:26 v #20444 > > -00:19:26 v #20445 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:26 v #20446 > > nominal write_signal t = -00:19:26 v #20447 > > `( -00:19:26 v #20448 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:19:26 v #20449 > > Fable.Core.Emit(\"leptos::prelude::WriteSignal<$0>\")>]]\n#endif\ntype -00:19:26 v #20450 > > leptos_prelude_WriteSignal<'T> = class end" -00:19:26 v #20451 > > $'' : $'leptos_prelude_WriteSignal<`t>' -00:19:26 v #20452 > > ) -00:19:27 v #20453 > > -00:19:27 v #20454 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:27 v #20455 > > │ ### arc_write_signal -00:19:27 v #20456 > > -00:19:27 v #20457 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:27 v #20458 > > nominal arc_write_signal t = -00:19:27 v #20459 > > `( -00:19:27 v #20460 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:19:27 v #20461 > > Fable.Core.Emit(\"leptos::prelude::ArcWriteSignal<$0>\")>]]\n#endif\ntype -00:19:27 v #20462 > > leptos_prelude_ArcWriteSignal<'T> = class end" -00:19:27 v #20463 > > $'' : $'leptos_prelude_ArcWriteSignal<`t>' -00:19:27 v #20464 > > ) -00:19:27 v #20465 > > -00:19:27 v #20466 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:27 v #20467 > > │ ### resource -00:19:27 v #20468 > > -00:19:27 v #20469 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:27 v #20470 > > nominal resource t u = -00:19:27 v #20471 > > `( -00:19:27 v #20472 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:19:27 v #20473 > > Fable.Core.Emit(\"leptos::prelude::Resource<$0, $1>\")>]]\n#endif\ntype -00:19:27 v #20474 > > leptos_prelude_Resource<'T, 'U> = class end" -00:19:27 v #20475 > > $'' : $'leptos_prelude_Resource<`t, `u>' -00:19:27 v #20476 > > ) -00:19:28 v #20477 > > -00:19:28 v #20478 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:28 v #20479 > > │ ### arc_resource -00:19:28 v #20480 > > -00:19:28 v #20481 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:28 v #20482 > > nominal arc_resource t u = -00:19:28 v #20483 > > `( -00:19:28 v #20484 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:19:28 v #20485 > > Fable.Core.Emit(\"leptos::prelude::ArcResource<$0, $1>\")>]]\n#endif\ntype -00:19:28 v #20486 > > leptos_prelude_ArcResource<'T, 'U> = class end" -00:19:28 v #20487 > > $'' : $'leptos_prelude_ArcResource<`t, `u>' -00:19:28 v #20488 > > ) -00:19:28 v #20489 > > -00:19:28 v #20490 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:28 v #20491 > > │ ### local_resource -00:19:28 v #20492 > > -00:19:28 v #20493 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:28 v #20494 > > nominal local_resource t u = -00:19:28 v #20495 > > `( -00:19:28 v #20496 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:19:28 v #20497 > > Fable.Core.Emit(\"leptos::prelude::LocalResource<$0, $1>\")>]]\n#endif\ntype -00:19:28 v #20498 > > leptos_prelude_LocalResource<'T, 'U> = class end" -00:19:28 v #20499 > > $'' : $'leptos_prelude_LocalResource<`t, `u>' -00:19:28 v #20500 > > ) -00:19:29 v #20501 > > -00:19:29 v #20502 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:29 v #20503 > > │ ### arc_local_resource -00:19:29 v #20504 > > -00:19:29 v #20505 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:29 v #20506 > > nominal arc_local_resource t = -00:19:29 v #20507 > > `( -00:19:29 v #20508 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:19:29 v #20509 > > Fable.Core.Emit(\"leptos::prelude::ArcLocalResource<$0>\")>]]\n#endif\ntype -00:19:29 v #20510 > > leptos_prelude_ArcLocalResource<'T> = class end" -00:19:29 v #20511 > > $'' : $'leptos_prelude_ArcLocalResource<`t>' -00:19:29 v #20512 > > ) -00:19:29 v #20513 > > -00:19:29 v #20514 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:29 v #20515 > > │ ### any_view -00:19:29 v #20516 > > -00:19:29 v #20517 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:29 v #20518 > > nominal any_view = -00:19:29 v #20519 > > `( -00:19:29 v #20520 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:19:29 v #20521 > > Fable.Core.Emit(\"leptos::prelude::AnyView\")>]]\n#endif\ntype -00:19:29 v #20522 > > leptos_prelude_AnyView = class end" -00:19:29 v #20523 > > $'' : $'leptos_prelude_AnyView' -00:19:29 v #20524 > > ) -00:19:30 v #20525 > > -00:19:30 v #20526 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:30 v #20527 > > │ ### view' -00:19:30 v #20528 > > -00:19:30 v #20529 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:30 v #20530 > > nominal view' t = -00:19:30 v #20531 > > `( -00:19:30 v #20532 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:19:30 v #20533 > > Fable.Core.Emit(\"leptos::prelude::View<$0>\")>]]\n#endif\ntype -00:19:30 v #20534 > > leptos_prelude_View<'T> = class end" -00:19:30 v #20535 > > $'' : $'leptos_prelude_View<`t>' -00:19:30 v #20536 > > ) -00:19:30 v #20537 > > -00:19:30 v #20538 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:30 v #20539 > > │ ### view -00:19:30 v #20540 > > -00:19:30 v #20541 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:30 v #20542 > > nominal view = -00:19:30 v #20543 > > `( -00:19:30 v #20544 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:19:30 v #20545 > > Fable.Core.Emit(\"leptos::prelude::AnyView\")>]]\n#endif\ntype -00:19:30 v #20546 > > leptos_prelude_AnyView_ = class end" -00:19:30 v #20547 > > $'' : $'leptos_prelude_AnyView_' -00:19:30 v #20548 > > ) -00:19:30 v #20549 > > -00:19:30 v #20550 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:30 v #20551 > > │ ### signal_get -00:19:30 v #20552 > > -00:19:30 v #20553 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:30 v #20554 > > prototype signal_get signal t : signal t -> t -00:19:31 v #20555 > > -00:19:31 v #20556 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:31 v #20557 > > │ ### signal_get_untracked -00:19:31 v #20558 > > -00:19:31 v #20559 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:31 v #20560 > > prototype signal_get_untracked signal t : signal t -> t -00:19:31 v #20561 > > -00:19:31 v #20562 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:31 v #20563 > > │ ### signal_update -00:19:31 v #20564 > > -00:19:31 v #20565 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:31 v #20566 > > prototype signal_update signal t : (t -> t) -> signal t -> () -00:19:32 v #20567 > > -00:19:32 v #20568 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:32 v #20569 > > │ ### signal_set -00:19:32 v #20570 > > -00:19:32 v #20571 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:32 v #20572 > > prototype signal_set signal t : t -> signal t -> () -00:19:33 v #20573 > > -00:19:33 v #20574 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:33 v #20575 > > │ ### log_string -00:19:33 v #20576 > > -00:19:33 v #20577 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:33 v #20578 > > inl log_string (text : string) = -00:19:33 v #20579 > > (!\($'@@"true; leptos::logging::log\!(""" + !text + @@""");"') : bool) |> -00:19:33 v #20580 > > ignore -00:19:33 v #20581 > > -00:19:33 v #20582 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:33 v #20583 > > │ ### log -00:19:33 v #20584 > > -00:19:33 v #20585 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:33 v #20586 > > inl log (text : string) = -00:19:33 v #20587 > > (!\\(text, $'@@$"true; leptos::logging::log\!(""{{}}"", $0)"') : bool) |> -00:19:33 v #20588 > > ignore -00:19:33 v #20589 > > -00:19:33 v #20590 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:33 v #20591 > > │ ### log_debug -00:19:33 v #20592 > > -00:19:33 v #20593 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:33 v #20594 > > inl log_debug (text : string) = -00:19:33 v #20595 > > (!\\(text, $'@@$"true; leptos::logging::log\!(""{{:?}}"", $0)"') : bool) |> -00:19:33 v #20596 > > ignore -00:19:34 v #20597 > > -00:19:34 v #20598 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:34 v #20599 > > │ ### log_pretty -00:19:34 v #20600 > > -00:19:34 v #20601 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:34 v #20602 > > inl log_pretty (text : string) = -00:19:34 v #20603 > > (!\\(text, $'@@$"true; leptos::logging::log\!(""{{:#?}}"", $0)"') : bool) |> -00:19:34 v #20604 > > ignore -00:19:34 v #20605 > > -00:19:34 v #20606 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:34 v #20607 > > │ ### log_format -00:19:34 v #20608 > > -00:19:34 v #20609 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:34 v #20610 > > inl log_format fn obj = -00:19:34 v #20611 > > inl obj_log = obj |> sm'.format_debug -00:19:34 v #20612 > > inl text = fn obj_log |> sm'.ellipsis_end 200 -00:19:34 v #20613 > > log text -00:19:34 v #20614 > > obj -00:19:35 v #20615 > > -00:19:35 v #20616 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:35 v #20617 > > │ ### mount_to_body -00:19:35 v #20618 > > -00:19:35 v #20619 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:35 v #20620 > > inl mount_to_body (view_fn : () -> rust.impl into_view) : () = -00:19:35 v #20621 > > (!\\(view_fn, $'"true; leptos::prelude::mount_to_body(|| $0()); //"') : -00:19:35 v #20622 > > bool) |> ignore -00:19:35 v #20623 > > -00:19:35 v #20624 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:35 v #20625 > > │ ### view_vec_to_fragment -00:19:35 v #20626 > > -00:19:35 v #20627 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:35 v #20628 > > inl view_vec_to_fragment (view : am'.vec view) : fragment = -00:19:35 v #20629 > > !\\(view, $'"leptos::prelude::Fragment::new($0)"') -00:19:36 v #20630 > > -00:19:36 v #20631 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:36 v #20632 > > │ ### view_list_to_fragment -00:19:36 v #20633 > > -00:19:36 v #20634 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:36 v #20635 > > inl view_list_to_fragment (view : list view) : fragment = -00:19:36 v #20636 > > view -00:19:36 v #20637 > > |> am'.new_vec -00:19:36 v #20638 > > |> view_vec_to_fragment -00:19:36 v #20639 > > -00:19:36 v #20640 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:36 v #20641 > > │ ### element_to_view -00:19:36 v #20642 > > -00:19:36 v #20643 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:36 v #20644 > > inl element_to_view (view : view' (html_element _)) : view = -00:19:36 v #20645 > > !\\(view, $'"leptos::prelude::IntoAny::into_any($0)"') -00:19:36 v #20646 > > -00:19:36 v #20647 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:36 v #20648 > > │ ### view_to_fragment -00:19:36 v #20649 > > -00:19:36 v #20650 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:36 v #20651 > > inl view_to_fragment (view : view) : fragment = -00:19:36 v #20652 > > [[ view ]] -00:19:36 v #20653 > > |> view_list_to_fragment -00:19:37 v #20654 > > -00:19:37 v #20655 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:37 v #20656 > > │ ### fragment_to_view -00:19:37 v #20657 > > -00:19:37 v #20658 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:37 v #20659 > > inl fragment_to_view (fragment : fragment) : view = -00:19:37 v #20660 > > !\\(fragment, $'"leptos::prelude::AnyView::from($0)"') -00:19:37 v #20661 > > -00:19:37 v #20662 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:37 v #20663 > > │ ### element_to_fragment -00:19:37 v #20664 > > -00:19:37 v #20665 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:37 v #20666 > > inl element_to_fragment (view : view' (html_element _)) : fragment = -00:19:37 v #20667 > > view -00:19:37 v #20668 > > |> element_to_view -00:19:37 v #20669 > > |> view_to_fragment -00:19:38 v #20670 > > -00:19:38 v #20671 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:38 v #20672 > > │ ### (~:>) fragment -00:19:38 v #20673 > > -00:19:38 v #20674 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:38 v #20675 > > instance (~:>) fragment = fun x => -00:19:38 v #20676 > > real -00:19:38 v #20677 > > typecase t with -00:19:38 v #20678 > > | array_base (view' (html_element ~el)) => -00:19:38 v #20679 > > inl x = a x -00:19:38 v #20680 > > inl x = am.toList `a `int `(view' (html_element el)) x -00:19:38 v #20681 > > inl x = listm.map `(view' (html_element el)) `view (element_to_view -00:19:38 v #20682 > > `el) x -00:19:38 v #20683 > > view_list_to_fragment x -00:19:38 v #20684 > > | list (view' (html_element ~el)) => -00:19:38 v #20685 > > inl x = listm.map `(view' (html_element el)) `view (element_to_view -00:19:38 v #20686 > > `el) x -00:19:38 v #20687 > > view_list_to_fragment x -00:19:38 v #20688 > > | list view => -00:19:38 v #20689 > > view_list_to_fragment x -00:19:38 v #20690 > > | _ => x -00:19:38 v #20691 > > -00:19:38 v #20692 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:38 v #20693 > > │ ### (~:>) view -00:19:38 v #20694 > > -00:19:38 v #20695 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:38 v #20696 > > instance (~:>) view = fun x => -00:19:38 v #20697 > > real -00:19:38 v #20698 > > typecase t with -00:19:38 v #20699 > > | view' (html_element _) => element_to_view x -00:19:38 v #20700 > > | _ => x -00:19:39 v #20701 > > -00:19:39 v #20702 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:39 v #20703 > > │ ### view_trait_to_element -00:19:39 v #20704 > > -00:19:39 v #20705 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:39 v #20706 > > inl view_trait_to_element (view : rust.impl into_view) : view' (html_element _) -00:19:39 v #20707 > > = -00:19:39 v #20708 > > $'!view |> unbox' -00:19:39 v #20709 > > -00:19:39 v #20710 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:39 v #20711 > > │ ### view_trait_to_route_definition -00:19:39 v #20712 > > -00:19:39 v #20713 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:39 v #20714 > > inl view_trait_to_route_definition (view : rust.impl into_view) : -00:19:39 v #20715 > > route_definition = -00:19:39 v #20716 > > $'!view |> unbox' -00:19:40 v #20717 > > -00:19:40 v #20718 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:40 v #20719 > > │ ### to_element_view -00:19:40 v #20720 > > -00:19:40 v #20721 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:40 v #20722 > > inl to_element_view (view : view' (html_element _)) : rust.impl into_view = -00:19:40 v #20723 > > $'!view |> unbox' -00:19:41 v #20724 > > -00:19:41 v #20725 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:41 v #20726 > > │ ### to_view_trait -00:19:41 v #20727 > > -00:19:41 v #20728 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:41 v #20729 > > inl to_view_trait (view : view) : rust.impl into_view = -00:19:41 v #20730 > > $'!view |> unbox' -00:19:41 v #20731 > > -00:19:41 v #20732 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:41 v #20733 > > │ ### to_fragment_unbox -00:19:41 v #20734 > > -00:19:41 v #20735 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:41 v #20736 > > inl to_fragment_unbox view : fragment = -00:19:41 v #20737 > > $'!view |> unbox' -00:19:41 v #20738 > > -00:19:41 v #20739 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:41 v #20740 > > │ ### from_fragment_unbox -00:19:41 v #20741 > > -00:19:41 v #20742 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:41 v #20743 > > inl from_fragment_unbox (fragment : fragment) = -00:19:41 v #20744 > > $'!fragment |> unbox' -00:19:42 v #20745 > > -00:19:42 v #20746 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:42 v #20747 > > │ ### element_to_view_trait -00:19:42 v #20748 > > -00:19:42 v #20749 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:42 v #20750 > > inl element_to_view_trait (macro : view' (html_element _)) : rust.impl into_view -00:19:42 v #20751 > > = -00:19:42 v #20752 > > global "#if FABLE_COMPILER\nFable.Core.RustInterop.emitRustExpr () \");\nuse -00:19:42 v #20753 > > leptos::prelude::ElementChild;\n//\"\n#endif" -00:19:42 v #20754 > > !\($'"leptos::prelude::view\! { {!macro} }"') -00:19:42 v #20755 > > -00:19:42 v #20756 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:42 v #20757 > > │ ### macro_to_view_trait -00:19:42 v #20758 > > -00:19:42 v #20759 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:42 v #20760 > > inl macro_to_view_trait (macro : string) : rust.impl into_view = -00:19:42 v #20761 > > global "#if FABLE_COMPILER\nFable.Core.RustInterop.emitRustExpr () \");\nuse -00:19:42 v #20762 > > leptos::prelude::ElementChild;\n//\"\n#endif" -00:19:42 v #20763 > > global "#if FABLE_COMPILER\nFable.Core.RustInterop.emitRustExpr () \");\nuse -00:19:42 v #20764 > > leptos::prelude::ClassAttribute;\n//\"\n#endif" -00:19:42 v #20765 > > !\($'"leptos::prelude::view\! { " + !macro + " }"') -00:19:43 v #20766 > > -00:19:43 v #20767 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:43 v #20768 > > │ ### macro_to_fragment -00:19:43 v #20769 > > -00:19:43 v #20770 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:43 v #20771 > > inl macro_to_fragment (macro : string) : fragment = -00:19:43 v #20772 > > global "#if FABLE_COMPILER\nFable.Core.RustInterop.emitRustExpr () \");\nuse -00:19:43 v #20773 > > leptos::prelude::ElementChild;\n//\"\n#endif" -00:19:43 v #20774 > > !\($'"leptos::prelude::view\! { " + !macro + " }"') -00:19:43 v #20775 > > -00:19:43 v #20776 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:43 v #20777 > > │ ### new_transparent -00:19:43 v #20778 > > -00:19:43 v #20779 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:43 v #20780 > > inl new_transparent x : transparent = -00:19:43 v #20781 > > !\\(x, $'"leptos::leptos_dom::Transparent::new($0)"') -00:19:44 v #20782 > > -00:19:44 v #20783 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:44 v #20784 > > │ ### closure_to_view -00:19:44 v #20785 > > -00:19:44 v #20786 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:44 v #20787 > > inl closure_to_view (closure : rust.func0 view) : view = -00:19:44 v #20788 > > !\($'"leptos::prelude::IntoAny::into_any(move || !closure())"') -00:19:44 v #20789 > > -00:19:44 v #20790 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:44 v #20791 > > │ ### vec_to_view -00:19:44 v #20792 > > -00:19:44 v #20793 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:44 v #20794 > > inl vec_to_view (views : am'.vec view) : view = -00:19:44 v #20795 > > !\\(views, $'"leptos::prelude::IntoAny::into_any($0)"') -00:19:44 v #20796 > > -00:19:44 v #20797 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:44 v #20798 > > │ ### view_list_to_view -00:19:44 v #20799 > > -00:19:44 v #20800 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:44 v #20801 > > inl view_list_to_view (views : list view) : view = -00:19:44 v #20802 > > views -00:19:44 v #20803 > > |> am'.new_vec -00:19:44 v #20804 > > |> vec_to_view -00:19:45 v #20805 > > -00:19:45 v #20806 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:45 v #20807 > > │ ### to_fragment -00:19:45 v #20808 > > -00:19:45 v #20809 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:45 v #20810 > > inl to_fragment x : fragment = -00:19:45 v #20811 > > $'!x |> unbox' -00:19:45 v #20812 > > -00:19:45 v #20813 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:45 v #20814 > > │ ### text_to_view -00:19:45 v #20815 > > -00:19:45 v #20816 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:45 v #20817 > > inl text_to_view (text : string) : view = -00:19:45 v #20818 > > inl text = text |> sm'.to_std_string -00:19:45 v #20819 > > !\\(text, -00:19:45 v #20820 > > $'"leptos::prelude::IntoAny::into_any(leptos::prelude::IntoView::into_view($0))" -00:19:45 v #20821 > > ') -00:19:46 v #20822 > > -00:19:46 v #20823 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:46 v #20824 > > │ ### text_to_fragment -00:19:46 v #20825 > > -00:19:46 v #20826 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:46 v #20827 > > inl text_to_fragment (text : string) : fragment = -00:19:46 v #20828 > > text -00:19:46 v #20829 > > |> text_to_view -00:19:46 v #20830 > > |> view_to_fragment -00:19:46 v #20831 > > -00:19:46 v #20832 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:46 v #20833 > > │ ### macro_to_view -00:19:46 v #20834 > > -00:19:46 v #20835 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:46 v #20836 > > inl macro_to_view (macro : string) : view = -00:19:46 v #20837 > > global "#if FABLE_COMPILER\nFable.Core.RustInterop.emitRustExpr () \");\nuse -00:19:46 v #20838 > > leptos::prelude::ElementChild;\n//\"\n#endif" -00:19:46 v #20839 > > !\($'"leptos::prelude::IntoAny::into_any(leptos::prelude::view\! { " + -00:19:46 v #20840 > > !macro + " })"') -00:19:47 v #20841 > > -00:19:47 v #20842 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:47 v #20843 > > │ ### macro_to_view' -00:19:47 v #20844 > > -00:19:47 v #20845 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:47 v #20846 > > inl macro_to_view' (macro : string) : view' infer = -00:19:47 v #20847 > > global "#if FABLE_COMPILER\nFable.Core.RustInterop.emitRustExpr () \");\nuse -00:19:47 v #20848 > > leptos::prelude::ElementChild;\n//\"\n#endif" -00:19:47 v #20849 > > !\($'"leptos::IntoView::into_view(leptos::prelude::view\! { " + !macro + " -00:19:47 v #20850 > > })"') -00:19:47 v #20851 > > -00:19:47 v #20852 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:47 v #20853 > > │ ### macro_to_view'' -00:19:47 v #20854 > > -00:19:47 v #20855 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:47 v #20856 > > inl macro_to_view'' (macro : string) : view' infer = -00:19:47 v #20857 > > global "#if FABLE_COMPILER\nFable.Core.RustInterop.emitRustExpr () \");\nuse -00:19:47 v #20858 > > leptos::prelude::ElementChild;\n//\"\n#endif" -00:19:47 v #20859 > > !\($'"leptos::prelude::view\! { " + !macro + " }"') -00:19:47 v #20860 > > -00:19:47 v #20861 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:47 v #20862 > > │ ### macro_to_view''' -00:19:47 v #20863 > > -00:19:47 v #20864 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:47 v #20865 > > inl macro_to_view''' (macro : string) : view' _ = -00:19:47 v #20866 > > global "#if FABLE_COMPILER\nFable.Core.RustInterop.emitRustExpr () \");\nuse -00:19:47 v #20867 > > leptos::prelude::ElementChild;\n//\"\n#endif" -00:19:47 v #20868 > > !\($'"leptos::IntoView::into_view(leptos::prelude::view\! { " + !macro + " -00:19:47 v #20869 > > })"') -00:19:48 v #20870 > > -00:19:48 v #20871 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:48 v #20872 > > │ ### into_any_view -00:19:48 v #20873 > > -00:19:48 v #20874 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:48 v #20875 > > inl into_any_view (view : view' _) : view = -00:19:48 v #20876 > > !\\(view, $'"leptos::prelude::IntoAny::into_any($0)"') -00:19:48 v #20877 > > -00:19:48 v #20878 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:48 v #20879 > > │ ### into_any_view' -00:19:48 v #20880 > > -00:19:48 v #20881 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:48 v #20882 > > inl into_any_view' (view : view' _) : view = -00:19:48 v #20883 > > !\\(view, $'"&leptos::prelude::IntoAny::into_any($0)"') -00:19:49 v #20884 > > -00:19:49 v #20885 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:49 v #20886 > > │ ### transparent_to_view -00:19:49 v #20887 > > -00:19:49 v #20888 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:49 v #20889 > > inl transparent_to_view (transparent : transparent) : view = -00:19:49 v #20890 > > !\\(transparent, $'"leptos::prelude::IntoAny::into_any($0)"') -00:19:49 v #20891 > > -00:19:49 v #20892 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:49 v #20893 > > │ ### transparent_to_fragment -00:19:49 v #20894 > > -00:19:49 v #20895 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:49 v #20896 > > inl transparent_to_fragment (transparent : transparent) : fragment = -00:19:49 v #20897 > > transparent -00:19:49 v #20898 > > |> transparent_to_view -00:19:49 v #20899 > > |> view_to_fragment -00:19:50 v #20900 > > -00:19:50 v #20901 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:50 v #20902 > > │ ### macro_to_element -00:19:50 v #20903 > > -00:19:50 v #20904 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:50 v #20905 > > inl macro_to_element (view : string) : view' (html_element _) = -00:19:50 v #20906 > > view |> macro_to_view_trait |> view_trait_to_element -00:19:50 v #20907 > > -00:19:50 v #20908 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:50 v #20909 > > │ ### transparents_fragment -00:19:50 v #20910 > > -00:19:50 v #20911 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:50 v #20912 > > inl transparents_fragment (items : array_base transparent) : fragment = -00:19:50 v #20913 > > inl items = items |> am'.to_vec -00:19:50 v #20914 > > !\\((items, transparent_to_view), $'"$0.iter().map(|x| -00:19:50 v #20915 > > $1(x.clone())).collect::<Fragment>()"') -00:19:50 v #20916 > > -00:19:50 v #20917 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:50 v #20918 > > │ ### new_text -00:19:50 v #20919 > > -00:19:50 v #20920 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:50 v #20921 > > inl new_text (text : string) : text = -00:19:50 v #20922 > > !\\(text, $'"leptos::tachys::renderer::dom::Dom::create_text_node(&*$0)"') -00:19:51 v #20923 > > -00:19:51 v #20924 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:51 v #20925 > > │ ### text_view -00:19:51 v #20926 > > -00:19:51 v #20927 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:51 v #20928 > > inl text_view (text : string) : view = -00:19:51 v #20929 > > text -00:19:51 v #20930 > > |> text_to_view -00:19:51 v #20931 > > -00:19:51 v #20932 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:51 v #20933 > > │ ### text_fragment -00:19:51 v #20934 > > -00:19:51 v #20935 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:51 v #20936 > > inl text_fragment (text : string) : fragment = -00:19:51 v #20937 > > text -00:19:51 v #20938 > > |> text_view -00:19:51 v #20939 > > |> view_to_fragment -00:19:52 v #20940 > > -00:19:52 v #20941 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:52 v #20942 > > │ ### provide_meta_context -00:19:52 v #20943 > > -00:19:52 v #20944 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:52 v #20945 > > inl provide_meta_context () = -00:19:52 v #20946 > > (!\($'"true; leptos_meta::provide_meta_context()"') : bool) |> ignore -00:19:52 v #20947 > > -00:19:52 v #20948 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:52 v #20949 > > │ ### provide_context -00:19:52 v #20950 > > -00:19:52 v #20951 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:52 v #20952 > > inl provide_context forall t. (x : t) = -00:19:52 v #20953 > > (!\\(x, $'$"true; -00:19:52 v #20954 > > leptos::context::provide_context::<std::sync::Arc<`t>>($0)"') : bool) |> ignore -00:19:53 v #20955 > > -00:19:53 v #20956 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:53 v #20957 > > │ ### create_signal -00:19:53 v #20958 > > -00:19:53 v #20959 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:53 v #20960 > > inl create_signal forall t. (value : t) : read_signal t * write_signal t = -00:19:53 v #20961 > > !\\(value, $'$"leptos::prelude::signal($0)"') -00:19:53 v #20962 > > -00:19:53 v #20963 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:53 v #20964 > > │ ### new_rw_signal -00:19:53 v #20965 > > -00:19:53 v #20966 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:53 v #20967 > > inl new_rw_signal forall t. (value : t) : rw_signal t = -00:19:53 v #20968 > > !\\(value, $'$"leptos::prelude::RwSignal::new($0)"') -00:19:53 v #20969 > > -00:19:53 v #20970 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:53 v #20971 > > │ ### new_arc_rw_signal -00:19:53 v #20972 > > -00:19:53 v #20973 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:53 v #20974 > > inl new_arc_rw_signal forall t. (value : t) : arc_rw_signal t = -00:19:53 v #20975 > > !\\(value, $'$"leptos::prelude::ArcRwSignal::new($0)"') -00:19:54 v #20976 > > -00:19:54 v #20977 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:54 v #20978 > > │ ### read_only -00:19:54 v #20979 > > -00:19:54 v #20980 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:54 v #20981 > > inl read_only forall t. (value : rw_signal t) : read_signal t = -00:19:54 v #20982 > > !\\(value, $'$"leptos::prelude::RwSignal::read_only(&$0)"') -00:19:54 v #20983 > > -00:19:54 v #20984 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:54 v #20985 > > │ ### write_only -00:19:54 v #20986 > > -00:19:54 v #20987 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:54 v #20988 > > inl write_only forall t. (value : rw_signal t) : write_signal t = -00:19:54 v #20989 > > !\\(value, $'$"leptos::prelude::RwSignal::write_only(&$0)"') -00:19:55 v #20990 > > -00:19:55 v #20991 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:55 v #20992 > > │ ### typecheck_signal -00:19:55 v #20993 > > -00:19:55 v #20994 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:55 v #20995 > > inl typecheck_signal forall (t : * -> *) u. (signal : t u) : () = -00:19:55 v #20996 > > real -00:19:55 v #20997 > > typecase t with -00:19:55 v #20998 > > | signal => () -00:19:55 v #20999 > > | arc_signal => () -00:19:55 v #21000 > > | rw_signal => () -00:19:55 v #21001 > > | arc_rw_signal => () -00:19:55 v #21002 > > | read_signal => () -00:19:55 v #21003 > > | arc_read_signal => () -00:19:55 v #21004 > > | write_signal => () -00:19:55 v #21005 > > | arc_write_signal => () -00:19:55 v #21006 > > | memo => () -00:19:55 v #21007 > > | arc_memo => () -00:19:55 v #21008 > > | _ => error_type `(()) ("invalid signal", ``(t u)) -00:19:55 v #21009 > > -00:19:55 v #21010 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:55 v #21011 > > │ ### memo_get' -00:19:55 v #21012 > > -00:19:55 v #21013 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:55 v #21014 > > inl memo_get' forall t. (memo : memo t) : t = -00:19:55 v #21015 > > !\\(memo, $'$"$0()"') -00:19:56 v #21016 > > -00:19:56 v #21017 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:56 v #21018 > > │ ### signal_get' -00:19:56 v #21019 > > -00:19:56 v #21020 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:56 v #21021 > > inl signal_get' forall (t : * -> *) u. (signal : t u) : u = -00:19:56 v #21022 > > signal |> typecheck_signal -00:19:56 v #21023 > > inl code = -00:19:56 v #21024 > > real -00:19:56 v #21025 > > typecase t with -00:19:56 v #21026 > > | signal => $'$"leptos::prelude::Signal::get(&$0)"' : string -00:19:56 v #21027 > > | arc_signal => $'$"leptos::prelude::ArcSignal::get(&$0)"' : string -00:19:56 v #21028 > > | rw_signal => $'$"leptos::prelude::RwSignal::get(&$0)"' : string -00:19:56 v #21029 > > | arc_rw_signal => $'$"leptos::prelude::ArcRwSignal::get(&$0)"' : -00:19:56 v #21030 > > string -00:19:56 v #21031 > > | read_signal => $'$"leptos::prelude::ReadSignal::get(&$0)"' : -00:19:56 v #21032 > > string -00:19:56 v #21033 > > | arc_read_signal => $'$"leptos::prelude::ArcReadSignal::get(&$0)"' -00:19:56 v #21034 > > : string -00:19:56 v #21035 > > | write_signal => $'$"leptos::prelude::WriteSignal::get(&$0)"' : -00:19:56 v #21036 > > string -00:19:56 v #21037 > > | arc_write_signal => -00:19:56 v #21038 > > $'$"leptos::prelude::ArcWriteSignal::get(&$0)"' : string -00:19:56 v #21039 > > | memo => $'$"leptos::prelude::Memo::get(&$0)"' : string -00:19:56 v #21040 > > | arc_memo => $'$"leptos::prelude::ArcMemo::get(&$0)"' : string -00:19:56 v #21041 > > !\\(signal, code) : u -00:19:56 v #21042 > > -00:19:56 v #21043 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:56 v #21044 > > │ ### signal_get signal -00:19:56 v #21045 > > -00:19:56 v #21046 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:56 v #21047 > > instance signal_get signal = signal_get' -00:19:56 v #21048 > > instance signal_get arc_signal = signal_get' -00:19:57 v #21049 > > -00:19:57 v #21050 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:57 v #21051 > > │ ### signal_get rw_signal -00:19:57 v #21052 > > -00:19:57 v #21053 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:57 v #21054 > > instance signal_get rw_signal = signal_get' -00:19:57 v #21055 > > instance signal_get arc_rw_signal = signal_get' -00:19:57 v #21056 > > -00:19:57 v #21057 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:57 v #21058 > > │ ### signal_get read_signal -00:19:57 v #21059 > > -00:19:57 v #21060 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:57 v #21061 > > instance signal_get read_signal = signal_get' -00:19:57 v #21062 > > instance signal_get arc_read_signal = signal_get' -00:19:57 v #21063 > > -00:19:57 v #21064 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:57 v #21065 > > │ ### signal_get memo -00:19:57 v #21066 > > -00:19:57 v #21067 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:57 v #21068 > > instance signal_get memo = signal_get' -00:19:57 v #21069 > > instance signal_get arc_memo = signal_get' -00:19:58 v #21070 > > -00:19:58 v #21071 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:58 v #21072 > > │ ### signal_update' -00:19:58 v #21073 > > -00:19:58 v #21074 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:58 v #21075 > > inl signal_update' forall (t : * -> *) u. (fn : u -> u) (signal : t u) : () = -00:19:58 v #21076 > > signal |> typecheck_signal -00:19:58 v #21077 > > inl code = -00:19:58 v #21078 > > real -00:19:58 v #21079 > > typecase t with -00:19:58 v #21080 > > | signal => $'$"true; leptos::prelude::Signal::update(&$0, |x: &mut -00:19:58 v #21081 > > /*"' : string -00:19:58 v #21082 > > | arc_signal => $'$"true; leptos::prelude::ArcSignal::update(&$0, -00:19:58 v #21083 > > |x: &mut /*"' : string -00:19:58 v #21084 > > | rw_signal => $'$"true; leptos::prelude::RwSignal::update(&$0, |x: -00:19:58 v #21085 > > &mut /*"' : string -00:19:58 v #21086 > > | arc_rw_signal => $'$"true; -00:19:58 v #21087 > > leptos::prelude::ArcRwSignal::update(&$0, |x: &mut /*"' : string -00:19:58 v #21088 > > | read_signal => $'$"true; leptos::prelude::ReadSignal::update(&$0, -00:19:58 v #21089 > > |x: &mut /*"' : string -00:19:58 v #21090 > > | arc_read_signal => $'$"true; -00:19:58 v #21091 > > leptos::prelude::ArcReadSignal::update(&$0, |x: &mut /*"' : string -00:19:58 v #21092 > > | write_signal => $'$"true; -00:19:58 v #21093 > > leptos::prelude::WriteSignal::update(&$0, |x: &mut /*"' : string -00:19:58 v #21094 > > | arc_write_signal => $'$"true; -00:19:58 v #21095 > > leptos::prelude::ArcWriteSignal::update(&$0, |x: &mut /*"' : string -00:19:58 v #21096 > > | memo => $'$"true; leptos::prelude::Memo::update(&$0, |x: &mut /*"' -00:19:58 v #21097 > > : string -00:19:58 v #21098 > > | arc_memo => $'$"true; leptos::prelude::ArcMemo::update(&$0, |x: -00:19:58 v #21099 > > &mut /*"' : string -00:19:58 v #21100 > > (!\\(signal, code) : bool) |> ignore -00:19:58 v #21101 > > (null () : rust.type_emit u) |> ignore -00:19:58 v #21102 > > (!\\(fn, $'"*/ | { *x = $0(x.clone()) }); //"') : bool) |> ignore -00:19:58 v #21103 > > -00:19:58 v #21104 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:58 v #21105 > > │ ### signal_update rw_signal -00:19:58 v #21106 > > -00:19:58 v #21107 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:58 v #21108 > > instance signal_update rw_signal = signal_update' -00:19:58 v #21109 > > instance signal_update arc_rw_signal = signal_update' -00:19:59 v #21110 > > -00:19:59 v #21111 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:59 v #21112 > > │ ### signal_update write_signal -00:19:59 v #21113 > > -00:19:59 v #21114 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:59 v #21115 > > instance signal_update write_signal = signal_update' -00:19:59 v #21116 > > instance signal_update arc_write_signal = signal_update' -00:19:59 v #21117 > > -00:19:59 v #21118 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:19:59 v #21119 > > │ ### signal_get_untracked' -00:19:59 v #21120 > > -00:19:59 v #21121 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:19:59 v #21122 > > inl signal_get_untracked' forall (t : * -> *) u. (signal : t u) : u = -00:19:59 v #21123 > > signal |> typecheck_signal -00:19:59 v #21124 > > inl signal = signal |> rust.box_pin -00:19:59 v #21125 > > inl code = -00:19:59 v #21126 > > real -00:19:59 v #21127 > > typecase t with -00:19:59 v #21128 > > | signal => $'$"leptos::prelude::Signal::get_untracked(&$0)"' : -00:19:59 v #21129 > > string -00:19:59 v #21130 > > | arc_signal => $'$"leptos::prelude::ArcSignal::get_untracked(&$0)"' -00:19:59 v #21131 > > : string -00:19:59 v #21132 > > | rw_signal => $'$"leptos::prelude::RwSignal::get_untracked(&$0)"' : -00:19:59 v #21133 > > string -00:19:59 v #21134 > > | arc_rw_signal => -00:19:59 v #21135 > > $'$"leptos::prelude::ArcRwSignal::get_untracked(&$0)"' : string -00:19:59 v #21136 > > | read_signal => -00:19:59 v #21137 > > $'$"leptos::prelude::ReadSignal::get_untracked(&$0)"' : string -00:19:59 v #21138 > > | arc_read_signal => -00:19:59 v #21139 > > $'$"leptos::prelude::ArcReadSignal::get_untracked(&$0)"' : string -00:19:59 v #21140 > > | write_signal => -00:19:59 v #21141 > > $'$"leptos::prelude::WriteSignal::get_untracked(&$0)"' : string -00:19:59 v #21142 > > | arc_write_signal => -00:19:59 v #21143 > > $'$"leptos::prelude::ArcWriteSignal::get_untracked(&$0)"' : string -00:19:59 v #21144 > > | memo => $'$"leptos::prelude::Memo::get_untracked(&$0)"' : string -00:19:59 v #21145 > > | arc_memo => $'$"leptos::prelude::ArcMemo::get_untracked(&$0)"' : -00:19:59 v #21146 > > string -00:19:59 v #21147 > > !\\(signal, code) : u -00:20:00 v #21148 > > -00:20:00 v #21149 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:20:00 v #21150 > > │ ### signal_get_untracked rw_signal -00:20:00 v #21151 > > -00:20:00 v #21152 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:20:00 v #21153 > > instance signal_get_untracked rw_signal = signal_get_untracked' -00:20:00 v #21154 > > instance signal_get_untracked arc_rw_signal = signal_get_untracked' -00:20:00 v #21155 > > -00:20:00 v #21156 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:20:00 v #21157 > > │ ### signal_get_untracked read_signal -00:20:00 v #21158 > > -00:20:00 v #21159 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:20:00 v #21160 > > instance signal_get_untracked read_signal = signal_get_untracked' -00:20:00 v #21161 > > instance signal_get_untracked arc_read_signal = signal_get_untracked' -00:20:00 v #21162 > > -00:20:00 v #21163 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:20:00 v #21164 > > │ ### signal_get_untracked memo -00:20:00 v #21165 > > -00:20:00 v #21166 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:20:00 v #21167 > > instance signal_get_untracked memo = signal_get_untracked' -00:20:00 v #21168 > > instance signal_get_untracked arc_memo = signal_get_untracked' -00:20:01 v #21169 > > -00:20:01 v #21170 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:20:01 v #21171 > > │ ### signal_set' -00:20:01 v #21172 > > -00:20:01 v #21173 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:20:01 v #21174 > > inl signal_set' forall (t : * -> *) u. (value : u) (signal : t u) = -00:20:01 v #21175 > > signal |> typecheck_signal -00:20:01 v #21176 > > inl code = -00:20:01 v #21177 > > real -00:20:01 v #21178 > > typecase t with -00:20:01 v #21179 > > | signal => $'$"true; leptos::prelude::Signal::set(&$0, $1); //"' : -00:20:01 v #21180 > > string -00:20:01 v #21181 > > | arc_signal => $'$"true; leptos::prelude::ArcSignal::set(&$0, $1); -00:20:01 v #21182 > > //"' : string -00:20:01 v #21183 > > | rw_signal => $'$"true; leptos::prelude::RwSignal::set(&$0, $1); -00:20:01 v #21184 > > //"' : string -00:20:01 v #21185 > > | arc_rw_signal => $'$"true; leptos::prelude::ArcRwSignal::set(&$0, -00:20:01 v #21186 > > $1); //"' : string -00:20:01 v #21187 > > | read_signal => $'$"true; leptos::prelude::ReadSignal::set(&$0, -00:20:01 v #21188 > > $1); //"' : string -00:20:01 v #21189 > > | arc_read_signal => $'$"true; -00:20:01 v #21190 > > leptos::prelude::ArcReadSignal::set(&$0, $1); //"' : string -00:20:01 v #21191 > > | write_signal => $'$"true; leptos::prelude::WriteSignal::set(&$0, -00:20:01 v #21192 > > $1); //"' : string -00:20:01 v #21193 > > | arc_write_signal => $'$"true; -00:20:01 v #21194 > > leptos::prelude::ArcWriteSignal::set(&$0, $1); //"' : string -00:20:01 v #21195 > > | memo => $'$"true; leptos::prelude::Memo::set(&$0, $1); //"' : -00:20:01 v #21196 > > string -00:20:01 v #21197 > > | arc_memo => $'$"true; leptos::prelude::ArcMemo::set(&$0, $1); //"' -00:20:01 v #21198 > > : string -00:20:01 v #21199 > > (!\\((signal, value), code) : bool) |> ignore -00:23:34 v #21200 > > -00:23:34 v #21201 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:23:34 v #21202 > > │ ### signal_set rw_signal -00:23:34 v #21203 > > -00:23:34 v #21204 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:23:34 v #21205 > > instance signal_set rw_signal = signal_set' -00:23:34 v #21206 > > instance signal_set arc_rw_signal = signal_set' -00:23:34 v #21207 > > -00:23:34 v #21208 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:23:34 v #21209 > > │ ### signal_set write_signal -00:23:34 v #21210 > > -00:23:34 v #21211 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:23:34 v #21212 > > instance signal_set write_signal = signal_set' -00:23:34 v #21213 > > instance signal_set arc_write_signal = signal_set' -00:23:35 v #21214 > > -00:23:35 v #21215 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:23:35 v #21216 > > │ ### new_local_resource -00:23:35 v #21217 > > -00:23:35 v #21218 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:23:35 v #21219 > > inl new_local_resource forall t u. -00:23:35 v #21220 > > (source : () -> t) -00:23:35 v #21221 > > (fetcher : t -> async.future_pin u) -00:23:35 v #21222 > > : local_resource t u -00:23:35 v #21223 > > = -00:23:35 v #21224 > > // inl fetcher x = rust.move fun () => -00:23:35 v #21225 > > // fetcher x -00:23:35 v #21226 > > // inl fetcher = join fetcher -00:23:35 v #21227 > > // !\($'"leptos::create_local_resource(move || !source(), move |x| async -00:23:35 v #21228 > > move { !fetcher(x)().await })"') -00:23:35 v #21229 > > -00:23:35 v #21230 > > // --- -00:23:35 v #21231 > > -00:23:35 v #21232 > > // inl fn x = async.new_future fun () => -00:23:35 v #21233 > > // inl x' = fetcher x -00:23:35 v #21234 > > // x' |> async.await -00:23:35 v #21235 > > -00:23:35 v #21236 > > // !\\((source, fn), $'"leptos::create_local_resource(move || $0(), |x| -00:23:35 v #21237 > > async move { $1(x).await })"') -00:23:35 v #21238 > > -00:23:35 v #21239 > > inl fetcher = fetcher |> rust.func1_from -00:23:35 v #21240 > > inl fetcher x = -00:23:35 v #21241 > > fetcher |> rust.func1_move x -00:23:35 v #21242 > > -00:23:35 v #21243 > > !\\((source, fetcher), $'"leptos::prelude::LocalResource::new(move || $0(), -00:23:35 v #21244 > > |x| async move { $1(x).await })"') -00:23:35 v #21245 > > -00:23:35 v #21246 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:23:35 v #21247 > > │ ### new_arc_local_resource -00:23:35 v #21248 > > -00:23:35 v #21249 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:23:35 v #21250 > > inl new_arc_local_resource forall t. -00:23:35 v #21251 > > (fetcher : () -> async.future_pin t) -00:23:35 v #21252 > > : arc_local_resource t -00:23:35 v #21253 > > = -00:23:35 v #21254 > > // inl fetcher x = rust.move fun () => -00:23:35 v #21255 > > // fetcher x -00:23:35 v #21256 > > // inl fetcher = join fetcher -00:23:35 v #21257 > > // !\($'"leptos::create_local_resource(move || !source(), move |x| async -00:23:35 v #21258 > > move { !fetcher(x)().await })"') -00:23:35 v #21259 > > -00:23:35 v #21260 > > // --- -00:23:35 v #21261 > > -00:23:35 v #21262 > > // inl fn x = async.new_future fun () => -00:23:35 v #21263 > > // inl x' = fetcher x -00:23:35 v #21264 > > // x' |> async.await -00:23:35 v #21265 > > -00:23:35 v #21266 > > // !\\((source, fn), $'"leptos::create_local_resource(move || $0(), |x| -00:23:35 v #21267 > > async move { $1(x).await })"') -00:23:35 v #21268 > > -00:23:35 v #21269 > > inl fetcher = fetcher |> rust.func0_from -00:23:35 v #21270 > > -00:23:35 v #21271 > > !\\(fetcher, $'"leptos::prelude::ArcLocalResource::new(|| async move { -00:23:35 v #21272 > > $0().await })"') -00:23:36 v #21273 > > -00:23:36 v #21274 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:23:36 v #21275 > > │ ### new_resource -00:23:36 v #21276 > > -00:23:36 v #21277 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:23:36 v #21278 > > // inl new_resource forall t u. (source : () -> t) (fetcher : t -> -00:23:36 v #21279 > > async.future_pin u) : resource t u = -00:23:36 v #21280 > > // inl source = join source -00:23:36 v #21281 > > // !\\(fetcher, $'"leptos::Resource::new(move || !source(), |x| async move { -00:23:36 v #21282 > > $0(x).await })"') -00:23:36 v #21283 > > -00:23:36 v #21284 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:23:36 v #21285 > > │ ### new_action -00:23:36 v #21286 > > -00:23:36 v #21287 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:23:36 v #21288 > > inl new_action forall t u. (action_fn : t -> async.future_pin u) : action t u = -00:23:36 v #21289 > > inl action_fn = action_fn |> rust.func1_from -00:23:36 v #21290 > > inl action_fn x = -00:23:36 v #21291 > > action_fn |> rust.func1_move x -00:23:36 v #21292 > > !\\(action_fn, $'"leptos::prelude::Action::new(move |value: -00:23:36 v #21293 > > &std::sync::Arc<`t>| $0(value.clone()))"') -00:23:37 v #21294 > > -00:23:37 v #21295 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:23:37 v #21296 > > │ ### new_arc_action -00:23:37 v #21297 > > -00:23:37 v #21298 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:23:37 v #21299 > > inl new_arc_action forall t u. (action_fn : t -> async.future_pin u) : -00:23:37 v #21300 > > arc_action t u = -00:23:37 v #21301 > > // inl action_fn = action_fn |> rust.func1_from -00:23:37 v #21302 > > inl action_fn = action_fn |> rust.func1_from -00:23:37 v #21303 > > inl action_fn x = -00:23:37 v #21304 > > action_fn |> rust.func1_move x -00:23:37 v #21305 > > !\\(action_fn, $'"leptos::prelude::ArcAction::new(move |value: -00:23:37 v #21306 > > &std::sync::Arc<`t>| $0(value.clone()))"') -00:23:37 v #21307 > > -00:23:37 v #21308 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:23:37 v #21309 > > │ ### action_dispatch -00:23:37 v #21310 > > -00:23:37 v #21311 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:23:37 v #21312 > > inl action_dispatch forall t u. (value : heap t) (action : action (heap t) u) : -00:23:37 v #21313 > > () = -00:23:37 v #21314 > > (!\\((action, value), $'"true; leptos::prelude::Action::dispatch(&$0, -00:23:37 v #21315 > > $1.clone())"') : bool) |> ignore -00:23:38 v #21316 > > -00:23:38 v #21317 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:23:38 v #21318 > > │ ### arc_action_dispatch -00:23:38 v #21319 > > -00:23:38 v #21320 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:23:38 v #21321 > > inl arc_action_dispatch forall t u. (value : heap t) (action : arc_action (heap -00:23:38 v #21322 > > t) u) : () = -00:23:38 v #21323 > > (!\\((action, value), $'"true; leptos::prelude::ArcAction::dispatch(&$0, -00:23:38 v #21324 > > $1.clone())"') : bool) |> ignore -00:23:38 v #21325 > > -00:23:38 v #21326 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:23:38 v #21327 > > │ ### action_input -00:23:38 v #21328 > > -00:23:38 v #21329 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:23:38 v #21330 > > inl action_input forall t u. (action : action (heap t) u) : rw_signal -00:23:38 v #21331 > > (optionm'.option' t) = -00:23:38 v #21332 > > !\\(action, $'"leptos::prelude::Action::input(&$0)"') -00:23:38 v #21333 > > -00:23:38 v #21334 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:23:38 v #21335 > > │ ### action_pending -00:23:38 v #21336 > > -00:23:38 v #21337 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:23:38 v #21338 > > inl action_pending forall t u. (action : action (heap t) u) : memo bool = -00:23:38 v #21339 > > !\\(action, $'"leptos::prelude::Action::pending(&$0)"') -00:23:39 v #21340 > > -00:23:39 v #21341 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:23:39 v #21342 > > │ ### arc_action_pending -00:23:39 v #21343 > > -00:23:39 v #21344 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:23:39 v #21345 > > inl arc_action_pending forall t u. (action : arc_action (heap t) u) : arc_memo -00:23:39 v #21346 > > bool = -00:23:39 v #21347 > > !\\(action, $'"leptos::prelude::ArcAction::pending(&$0)"') -00:23:39 v #21348 > > -00:23:39 v #21349 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:23:39 v #21350 > > │ ### action_value -00:23:39 v #21351 > > -00:23:39 v #21352 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:23:39 v #21353 > > inl action_value forall t u. (action : action (heap t) u) : rw_signal -00:23:39 v #21354 > > (optionm'.option' u) = -00:23:39 v #21355 > > !\\(action, $'"leptos::prelude::Action::value(&$0)"') -00:23:40 v #21356 > > -00:23:40 v #21357 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:23:40 v #21358 > > │ ### arc_action_value -00:23:40 v #21359 > > -00:23:40 v #21360 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:23:40 v #21361 > > inl arc_action_value forall t u. (action : arc_action (heap t) u) : -00:23:40 v #21362 > > arc_rw_signal (optionm'.option' u) = -00:23:40 v #21363 > > !\\(action, $'"leptos::prelude::ArcAction::value(&$0)"') -00:23:40 v #21364 > > -00:23:40 v #21365 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:23:40 v #21366 > > │ ### use_context -00:23:40 v #21367 > > -00:23:40 v #21368 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:23:40 v #21369 > > inl use_context forall t. () : optionm'.option' t = -00:23:40 v #21370 > > !\($'"leptos::context::use_context::<std::sync::Arc<`t>>()"') -00:23:41 v #21371 > > -00:23:41 v #21372 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:23:41 v #21373 > > │ ### local_resource_loading -00:23:41 v #21374 > > -00:23:41 v #21375 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:23:41 v #21376 > > inl local_resource_loading forall t u. (resource : local_resource t u) : signal -00:23:41 v #21377 > > bool = -00:23:41 v #21378 > > !\\(resource, $'$"leptos::prelude::pending(&$0).into()"') -00:23:41 v #21379 > > -00:23:41 v #21380 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:23:41 v #21381 > > │ ### arc_local_resource_loading -00:23:41 v #21382 > > -00:23:41 v #21383 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:23:41 v #21384 > > inl arc_local_resource_loading forall t. (resource : arc_local_resource t) : -00:23:41 v #21385 > > arc_signal bool = -00:23:41 v #21386 > > !\\(resource, $'$"leptos::prelude::Submission::pending(&$0.into()).into()"') -00:23:42 v #21387 > > -00:23:42 v #21388 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:23:42 v #21389 > > │ ### resource_get -00:23:42 v #21390 > > -00:23:42 v #21391 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:23:42 v #21392 > > inl resource_get forall t u. (resource : resource t u) : optionm'.option' u = -00:23:42 v #21393 > > !\\(resource, $'$"leptos::prelude::Resource::get(&$0)"') -00:23:42 v #21394 > > -00:23:42 v #21395 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:23:42 v #21396 > > │ ### local_resource_get -00:23:42 v #21397 > > -00:23:42 v #21398 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:23:42 v #21399 > > inl local_resource_get forall t u. (resource : local_resource t u) : -00:23:42 v #21400 > > optionm'.option' u = -00:23:42 v #21401 > > !\\(resource, $'$"leptos::prelude::LocalResource::get(&$0)"') -00:23:42 v #21402 > > -00:23:42 v #21403 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:23:42 v #21404 > > │ ### arc_local_resource_get -00:23:42 v #21405 > > -00:23:42 v #21406 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:23:42 v #21407 > > inl arc_local_resource_get forall t. (resource : arc_local_resource t) : -00:23:42 v #21408 > > optionm'.option' t = -00:23:42 v #21409 > > !\\(resource, $'$"Option::map(leptos::prelude::ArcLocalResource::get(&$0), -00:23:42 v #21410 > > |x| x.clone())"') -00:23:43 v #21411 > > -00:23:43 v #21412 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:23:43 v #21413 > > │ ### resource_with -00:23:43 v #21414 > > -00:23:43 v #21415 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:23:43 v #21416 > > inl resource_with forall t u v. (resource : resource t u) (fn : optionm'.option' -00:23:43 v #21417 > > u -> v) : v = -00:23:43 v #21418 > > !\\((resource, fn), $'$"leptos::prelude::SignalWith::with(&$0, |x| -00:23:43 v #21419 > > $1(x.clone()))"') -00:23:43 v #21420 > > -00:23:43 v #21421 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:23:43 v #21422 > > │ ### new_effect -00:23:43 v #21423 > > -00:23:43 v #21424 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:23:43 v #21425 > > inl new_effect (fn : () -> ()) : () = -00:23:43 v #21426 > > inl fn = fn |> rust.func0_from -00:23:43 v #21427 > > (!\($'"true; leptos::prelude::Effect::new(move |_| { !fn() })"') : bool) |> -00:23:43 v #21428 > > ignore -00:23:44 v #21429 > > -00:23:44 v #21430 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:23:44 v #21431 > > │ ### interval_handle_clear -00:23:44 v #21432 > > -00:23:44 v #21433 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:23:44 v #21434 > > inl interval_handle_clear (interval_handle : interval_handle) = -00:23:44 v #21435 > > (!\\(interval_handle, $'$"true; -00:23:44 v #21436 > > leptos::leptos_dom::helpers::IntervalHandle::clear(&$0)"') : bool) |> ignore -00:23:44 v #21437 > > -00:23:44 v #21438 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:23:44 v #21439 > > │ ### set_interval_with_handle -00:23:44 v #21440 > > -00:23:44 v #21441 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:23:44 v #21442 > > inl set_interval_with_handle -00:23:44 v #21443 > > (fn : () -> ()) -00:23:44 v #21444 > > (interval_millis : date_time.duration) -00:23:44 v #21445 > > : resultm.result' interval_handle wasm.js_value -00:23:44 v #21446 > > = -00:23:44 v #21447 > > inl fn = fn |> rust.func0_from -00:23:44 v #21448 > > !\\((fn, interval_millis), $'$"leptos::set_interval_with_handle(move || -00:23:44 v #21449 > > $0(), $1)"') -00:23:45 v #21450 > > -00:23:45 v #21451 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:23:45 v #21452 > > │ ### new_memo -00:23:45 v #21453 > > -00:23:45 v #21454 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:23:45 v #21455 > > inl new_memo forall t. (fn : () -> t) : memo t = -00:23:45 v #21456 > > // inl fn = fn |> rust.func0_from -00:23:45 v #21457 > > !\\(fn, $'"leptos::prelude::Memo::new(move |_| { $0() })"') -00:23:45 v #21458 > > -00:23:45 v #21459 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:23:45 v #21460 > > │ ### new_arc_memo -00:23:45 v #21461 > > -00:23:45 v #21462 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:23:45 v #21463 > > inl new_arc_memo forall t. (fn : () -> t) : arc_memo t = -00:23:45 v #21464 > > // inl fn = fn |> rust.func0_from -00:23:45 v #21465 > > !\\(fn, $'"leptos::prelude::ArcMemo::new(move |_| { $0() })"') -00:23:46 v #21466 > > -00:23:46 v #21467 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:23:46 v #21468 > > │ ### window -00:23:46 v #21469 > > -00:23:46 v #21470 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:23:46 v #21471 > > let window () : wasm.window = -00:23:46 v #21472 > > !\($'"leptos::prelude::window()"') -00:23:46 v #21473 > > -00:23:46 v #21474 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:23:46 v #21475 > > │ ### bool_prop -00:23:46 v #21476 > > -00:23:46 v #21477 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:23:46 v #21478 > > inl bool_prop (prop : string) (fn : () -> bool) : string = -00:23:46 v #21479 > > inl fn = join fn -00:23:46 v #21480 > > $'"" + !prop + "={move || !fn()}"' -00:23:47 v #21481 > > -00:23:47 v #21482 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:23:47 v #21483 > > │ ### concat_props -00:23:47 v #21484 > > -00:23:47 v #21485 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:23:47 v #21486 > > inl concat_props props = -00:23:47 v #21487 > > ("", props) -00:23:47 v #21488 > > ||> listm.fold fun acc (x : string) => -00:23:47 v #21489 > > $'" " + !x + !acc + ""' -00:23:47 v #21490 > > -00:23:47 v #21491 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:23:47 v #21492 > > │ ### move_to_fragment -00:23:47 v #21493 > > -00:23:47 v #21494 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:23:47 v #21495 > > inl move_to_fragment fn = -00:23:47 v #21496 > > fn -00:23:47 v #21497 > > |> rust.move -00:23:47 v #21498 > > |> rust.func0_move -00:23:48 v #21499 > > -00:23:48 v #21500 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:23:48 v #21501 > > │ ### tag_raw -00:23:48 v #21502 > > -00:23:48 v #21503 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:23:48 v #21504 > > inl tag_raw tag props children = -00:23:48 v #21505 > > global "#if FABLE_COMPILER\nFable.Core.RustInterop.emitRustExpr () \");\nuse -00:23:48 v #21506 > > leptos::prelude::*;\n//\"\n#endif" -00:23:48 v #21507 > > inl tag : string = tag -00:23:48 v #21508 > > inl props = props |> concat_props -00:23:48 v #21509 > > inl children = -00:23:48 v #21510 > > children () -00:23:48 v #21511 > > |> fragment_to_view -00:23:48 v #21512 > > // inl children = children |> rust.box_pin -00:23:48 v #21513 > > // inl children = join children -00:23:48 v #21514 > > // inl children = join children -00:23:48 v #21515 > > // inl children = join children -00:23:48 v #21516 > > // inl children = children >> fragment_to_view -00:23:48 v #21517 > > // inl children : rust.func0 view = !\\(children, $'$"(|| $0)()"') -00:23:48 v #21518 > > $'"<" + !tag + " " + !props + ">move || { !children }</" + !tag + ">"' -00:23:48 v #21519 > > -00:23:48 v #21520 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:23:48 v #21521 > > │ ### tag_element -00:23:48 v #21522 > > -00:23:48 v #21523 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:23:48 v #21524 > > inl tag_element tag props children : view' (html_element _) = -00:23:48 v #21525 > > tag_raw tag props children -00:23:48 v #21526 > > |> macro_to_element -00:23:48 v #21527 > > -00:23:48 v #21528 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:23:48 v #21529 > > │ ### tag_closed_raw -00:23:48 v #21530 > > -00:23:48 v #21531 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:23:48 v #21532 > > inl tag_closed_raw tag props = -00:23:48 v #21533 > > inl tag : string = tag -00:23:48 v #21534 > > inl props = props |> concat_props -00:23:48 v #21535 > > $'"<" + !tag + " " + !props + " />"' -00:23:49 v #21536 > > -00:23:49 v #21537 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:23:49 v #21538 > > │ ### tag_closed -00:23:49 v #21539 > > -00:23:49 v #21540 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:23:49 v #21541 > > inl tag_closed tag props : view' (html_element _) = -00:23:49 v #21542 > > tag_closed_raw tag props -00:23:49 v #21543 > > |> macro_to_element -00:23:49 v #21544 > > -00:23:49 v #21545 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:23:49 v #21546 > > │ ### for -00:23:49 v #21547 > > -00:23:49 v #21548 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:23:49 v #21549 > > inl for props : view = -00:23:49 v #21550 > > tag_closed_raw "leptos::prelude::For" props -00:23:49 v #21551 > > |> macro_to_view -00:23:50 v #21552 > > -00:23:50 v #21553 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:23:50 v #21554 > > │ ### for -00:23:50 v #21555 > > -00:23:50 v #21556 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:23:50 v #21557 > > inl for forall t u (signal : * -> *). -00:23:50 v #21558 > > (signal : signal (am'.vec t)) -00:23:50 v #21559 > > (key_fn : t -> u) -00:23:50 v #21560 > > (children' : t -> fragment) -00:23:50 v #21561 > > : view -00:23:50 v #21562 > > = -00:23:50 v #21563 > > signal |> typecheck_signal -00:23:50 v #21564 > > inl signal = signal |> rust.emit -00:23:50 v #21565 > > inl key_fn = key_fn |> rust.func1_from -00:23:50 v #21566 > > inl key_fn x = -00:23:50 v #21567 > > key_fn |> rust.func1_move x -00:23:50 v #21568 > > inl key_fn = join key_fn -00:23:50 v #21569 > > inl children' = (children' >> fragment_to_view) |> rust.func1_from -00:23:50 v #21570 > > inl children' x = -00:23:50 v #21571 > > children' |> rust.func1_move x -00:23:50 v #21572 > > for [[ -00:23:50 v #21573 > > $'"each=!signal"' -00:23:50 v #21574 > > $'"key=move |x| !key_fn(x.to_owned())"' -00:23:50 v #21575 > > $'"let:x"' -00:23:50 v #21576 > > $'"children=move |x| !children'(x)"' -00:23:50 v #21577 > > ]] -00:23:50 v #21578 > > -00:23:50 v #21579 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:23:50 v #21580 > > │ ### show -00:23:50 v #21581 > > -00:23:50 v #21582 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:23:50 v #21583 > > inl show props : view = -00:23:50 v #21584 > > tag_closed_raw "leptos::prelude::Show" props -00:23:50 v #21585 > > |> macro_to_view -00:23:51 v #21586 > > -00:23:51 v #21587 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:23:51 v #21588 > > │ ### show -00:23:51 v #21589 > > -00:23:51 v #21590 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:23:51 v #21591 > > inl show (when_fn : () -> bool) (fallback : () -> view) (children : () -> -00:23:51 v #21592 > > fragment) : view = -00:23:51 v #21593 > > inl when_fn = join when_fn -00:23:51 v #21594 > > inl when_fn = join when_fn -00:23:51 v #21595 > > inl fallback = join fallback -00:23:51 v #21596 > > inl children = join children -00:23:51 v #21597 > > show [[ -00:23:51 v #21598 > > $'"when=move || !when_fn()"' -00:23:51 v #21599 > > $'"fallback=move || !fallback()"' -00:23:51 v #21600 > > $'"children=std::rc::Rc::new(move || !children())"' -00:23:51 v #21601 > > ]] -00:23:51 v #21602 > > -00:23:51 v #21603 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:23:51 v #21604 > > │ ### use_location -00:23:51 v #21605 > > -00:23:51 v #21606 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:23:51 v #21607 > > inl use_location () : location = -00:23:51 v #21608 > > !\($'"leptos_router::hooks::use_location()"') -00:23:52 v #21609 > > -00:23:52 v #21610 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:23:52 v #21611 > > │ ### use_navigate -00:23:52 v #21612 > > -00:23:52 v #21613 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:23:52 v #21614 > > inl use_navigate () : string -> () = -00:23:52 v #21615 > > inl navigate : threading.arc (rust.dyn' (rust.action_fn2 (rust.ref sm'.str) -00:23:52 v #21616 > > navigate_options)) = -00:23:52 v #21617 > > !\($'"std::sync::Arc::new(leptos_router::hooks::use_navigate())"') -00:23:52 v #21618 > > fun url => -00:23:52 v #21619 > > inl url = url |> sm'.as_str -00:23:52 v #21620 > > !\\((navigate, url), $'"$0($1, Default::default())"') -00:23:52 v #21621 > > -00:23:52 v #21622 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:23:52 v #21623 > > │ ### location_hash -00:23:52 v #21624 > > -00:23:52 v #21625 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:23:52 v #21626 > > inl location_hash (location : location) : memo sm'.std_string = -00:23:52 v #21627 > > !\\(location, $'"$0.hash"') -00:23:52 v #21628 > > -00:23:52 v #21629 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:23:52 v #21630 > > │ ### location_pathname -00:23:52 v #21631 > > -00:23:52 v #21632 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:23:52 v #21633 > > inl location_pathname (location : location) : memo sm'.std_string = -00:23:52 v #21634 > > !\\(location, $'"$0.pathname"') -00:23:53 v #21635 > > -00:23:53 v #21636 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:23:53 v #21637 > > │ ### location_search -00:23:53 v #21638 > > -00:23:53 v #21639 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:23:53 v #21640 > > inl location_search (location : location) : memo sm'.std_string = -00:23:53 v #21641 > > !\\(location, $'"$0.search"') -00:23:53 v #21642 > > -00:23:53 v #21643 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:23:53 v #21644 > > │ ### url_try_from -00:23:53 v #21645 > > -00:23:53 v #21646 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:23:53 v #21647 > > inl url_try_from (s : rust.ref sm'.str) : resultm.result' url sm'.std_string = -00:23:53 v #21648 > > !\\(s, $'"leptos_router::location::Url::try_from($0)"') -00:23:54 v #21649 > > -00:23:54 v #21650 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:23:54 v #21651 > > │ ### url_pathname -00:23:54 v #21652 > > -00:23:54 v #21653 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:23:54 v #21654 > > inl url_pathname (url : url) : sm'.std_string = -00:23:54 v #21655 > > !\\(url, $'"$0.pathname"') -00:23:54 v #21656 > > -00:23:54 v #21657 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:23:54 v #21658 > > │ ### use_url -00:23:54 v #21659 > > -00:23:54 v #21660 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:23:54 v #21661 > > inl use_url () = -00:23:54 v #21662 > > inl location = use_location () -00:23:54 v #21663 > > -00:23:54 v #21664 > > fun () => -00:23:54 v #21665 > > inl url_pathname = location |> location_pathname |> signal_get |> -00:23:54 v #21666 > > sm'.from_std_string -00:23:54 v #21667 > > inl url_search = location |> location_search |> signal_get |> -00:23:54 v #21668 > > sm'.from_std_string -00:23:54 v #21669 > > inl url_search = -00:23:54 v #21670 > > if url_search = "" -00:23:54 v #21671 > > then "" -00:23:54 v #21672 > > else $'$"?{!url_search}"' -00:23:54 v #21673 > > url_pathname +. url_search -00:23:54 v #21674 > > |> new_arc_memo -00:23:55 v #21675 > > -00:23:55 v #21676 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:23:55 v #21677 > > │ ### route -00:23:55 v #21678 > > -00:23:55 v #21679 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:23:55 v #21680 > > inl route path view children : view' nested_route = -00:23:55 v #21681 > > inl path = path |> sm'.to_std_string -00:23:55 v #21682 > > inl path = join path -00:23:55 v #21683 > > // inl view = view |> rust.move -00:23:55 v #21684 > > inl view () = -00:23:55 v #21685 > > view () |> fragment_to_view -00:23:55 v #21686 > > inl view = join view -00:23:55 v #21687 > > tag_closed_raw "leptos_router::components::ParentRoute" [[ -00:23:55 v #21688 > > $'"path=leptos_router::path\!(!path)"' -00:23:55 v #21689 > > $'"view= move || !view()"' -00:23:55 v #21690 > > $'"children=Box::new(move || !children())"' -00:23:55 v #21691 > > ]] -00:23:55 v #21692 > > |> macro_to_view''' -00:23:55 v #21693 > > -00:23:55 v #21694 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:23:55 v #21695 > > │ ### macro_to_view -00:23:55 v #21696 > > -00:23:55 v #21697 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:23:55 v #21698 > > inl macro_to_view (macro : string) : view = -00:23:55 v #21699 > > global "#if FABLE_COMPILER\nFable.Core.RustInterop.emitRustExpr () \");\nuse -00:23:55 v #21700 > > leptos::prelude::ElementChild;\n//\"\n#endif" -00:23:55 v #21701 > > !\($'"leptos::prelude::IntoAny::into_any(leptos::prelude::view\! { " + -00:23:55 v #21702 > > !macro + " })"') -00:23:56 v #21703 > > -00:23:56 v #21704 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:23:56 v #21705 > > │ ### router -00:23:56 v #21706 > > -00:23:56 v #21707 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:23:56 v #21708 > > inl router children : view = -00:23:56 v #21709 > > // inl children : () -> fragment = join children -00:23:56 v #21710 > > tag_closed_raw "leptos_router::components::Router" [[ -00:23:56 v #21711 > > $'"children=Box::new(move || !children())"' -00:23:56 v #21712 > > ]] -00:23:56 v #21713 > > |> macro_to_view' -00:23:56 v #21714 > > |> into_any_view -00:23:56 v #21715 > > -00:23:56 v #21716 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:23:56 v #21717 > > │ ### routes -00:23:56 v #21718 > > -00:23:56 v #21719 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:23:56 v #21720 > > inl routes children : view = -00:23:56 v #21721 > > inl children : () -> am'.vec (view' nested_route) = join children -00:23:56 v #21722 > > inl children = join children -00:23:56 v #21723 > > inl fallback = "leptos.routes / fallback" |> text_view -00:23:56 v #21724 > > tag_closed_raw "leptos_router::components::Routes" [[ -00:23:56 v #21725 > > $'"fallback=move || !fallback"' -00:23:56 v #21726 > > $'"children=leptos::children::ToChildren::to_children(move || -00:23:56 v #21727 > > !children())"' -00:23:56 v #21728 > > ]] -00:23:56 v #21729 > > |> macro_to_view' -00:23:56 v #21730 > > |> into_any_view -00:23:57 v #21731 > > -00:23:57 v #21732 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:23:57 v #21733 > > │ ### a' -00:23:57 v #21734 > > -00:23:57 v #21735 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:23:57 v #21736 > > inl a' props children : _ (_ a') = -00:23:57 v #21737 > > tag_element "a" props children -00:23:57 v #21738 > > -00:23:57 v #21739 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:23:57 v #21740 > > │ ### button -00:23:57 v #21741 > > -00:23:57 v #21742 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:23:57 v #21743 > > inl button props children : _ (_ button) = -00:23:57 v #21744 > > tag_element "button" props children -00:23:58 v #21745 > > -00:23:58 v #21746 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:23:58 v #21747 > > │ ### details -00:23:58 v #21748 > > -00:23:58 v #21749 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:23:58 v #21750 > > inl details props children : _ (_ details) = -00:23:58 v #21751 > > tag_element "details" props children -00:23:58 v #21752 > > -00:23:58 v #21753 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:23:58 v #21754 > > │ ### div -00:23:58 v #21755 > > -00:23:58 v #21756 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:23:58 v #21757 > > inl div props children : _ (_ div) = -00:23:58 v #21758 > > tag_element "div" props children -00:23:58 v #21759 > > -00:23:58 v #21760 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:23:58 v #21761 > > │ ### footer -00:23:59 v #21762 > > -00:23:59 v #21763 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:23:59 v #21764 > > inl footer props children : _ (_ footer) = -00:23:59 v #21765 > > tag_element "footer" props children -00:23:59 v #21766 > > -00:23:59 v #21767 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:23:59 v #21768 > > │ ### header -00:23:59 v #21769 > > -00:23:59 v #21770 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:23:59 v #21771 > > inl header props children : _ (_ header) = -00:23:59 v #21772 > > tag_element "header" props children -00:23:59 v #21773 > > -00:23:59 v #21774 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:23:59 v #21775 > > │ ### label -00:23:59 v #21776 > > -00:23:59 v #21777 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:23:59 v #21778 > > inl label props children : _ (_ label) = -00:23:59 v #21779 > > tag_element "label" props children -00:24:00 v #21780 > > -00:24:00 v #21781 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:24:00 v #21782 > > │ ### main -00:24:00 v #21783 > > -00:24:00 v #21784 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:24:00 v #21785 > > inl main props children : _ (_ main) = -00:24:00 v #21786 > > tag_element "main" props children -00:24:00 v #21787 > > -00:24:00 v #21788 > > inl main' () = () -00:24:00 v #21789 > > -00:24:00 v #21790 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:24:00 v #21791 > > │ ### nav -00:24:00 v #21792 > > -00:24:00 v #21793 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:24:00 v #21794 > > inl nav props children : _ (_ nav) = -00:24:00 v #21795 > > tag_element "nav" props children -00:24:01 v #21796 > > -00:24:01 v #21797 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:24:01 v #21798 > > │ ### option' -00:24:01 v #21799 > > -00:24:01 v #21800 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:24:01 v #21801 > > inl option' props children : _ (_ option') = -00:24:01 v #21802 > > tag_element "option" props children -00:24:01 v #21803 > > -00:24:01 v #21804 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:24:01 v #21805 > > │ ### option' -00:24:01 v #21806 > > -00:24:01 v #21807 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:24:01 v #21808 > > inl option' selected children : _ (_ option') = -00:24:01 v #21809 > > inl selected : () -> bool = join selected -00:24:01 v #21810 > > option' [[ -00:24:01 v #21811 > > $'"selected=!selected()"' -00:24:01 v #21812 > > ]] fun () => -00:24:01 v #21813 > > children |> text_to_fragment -00:24:02 v #21814 > > -00:24:02 v #21815 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:24:02 v #21816 > > │ ### pre -00:24:02 v #21817 > > -00:24:02 v #21818 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:24:02 v #21819 > > inl pre props children : _ (_ pre) = -00:24:02 v #21820 > > tag_element "pre" props children -00:24:02 v #21821 > > -00:24:02 v #21822 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:24:02 v #21823 > > │ ### select -00:24:02 v #21824 > > -00:24:02 v #21825 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:24:02 v #21826 > > inl select props children : _ (_ select) = -00:24:02 v #21827 > > tag_element "select" props children -00:24:03 v #21828 > > -00:24:03 v #21829 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:24:03 v #21830 > > │ ### span -00:24:03 v #21831 > > -00:24:03 v #21832 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:24:03 v #21833 > > inl span props children : _ (_ span) = -00:24:03 v #21834 > > tag_element "span" props children -00:24:03 v #21835 > > -00:24:03 v #21836 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:24:03 v #21837 > > │ ### summary -00:24:03 v #21838 > > -00:24:03 v #21839 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:24:03 v #21840 > > inl summary props children : _ (_ summary) = -00:24:03 v #21841 > > tag_element "summary" props children -00:24:04 v #21842 > > -00:24:04 v #21843 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:24:04 v #21844 > > │ ### table -00:24:04 v #21845 > > -00:24:04 v #21846 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:24:04 v #21847 > > inl table props children : _ (_ table) = -00:24:04 v #21848 > > tag_element "table" props children -00:24:04 v #21849 > > -00:24:04 v #21850 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:24:04 v #21851 > > │ ### thead -00:24:04 v #21852 > > -00:24:04 v #21853 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:24:04 v #21854 > > inl thead props children : _ (_ thead) = -00:24:04 v #21855 > > tag_element "thead" props children -00:24:04 v #21856 > > -00:24:04 v #21857 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:24:04 v #21858 > > │ ### tbody -00:24:04 v #21859 > > -00:24:04 v #21860 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:24:04 v #21861 > > inl tbody props children : _ (_ tbody) = -00:24:04 v #21862 > > tag_element "tbody" props children -00:24:05 v #21863 > > -00:24:05 v #21864 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:24:05 v #21865 > > │ ### tr -00:24:05 v #21866 > > -00:24:05 v #21867 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:24:05 v #21868 > > inl tr props children : _ (_ tr) = -00:24:05 v #21869 > > tag_element "tr" props children -00:24:05 v #21870 > > -00:24:05 v #21871 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:24:05 v #21872 > > │ ### th -00:24:05 v #21873 > > -00:24:05 v #21874 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:24:05 v #21875 > > inl th props children : _ (_ th) = -00:24:05 v #21876 > > tag_element "th" props children -00:24:06 v #21877 > > -00:24:06 v #21878 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:24:06 v #21879 > > │ ### td -00:24:06 v #21880 > > -00:24:06 v #21881 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:24:06 v #21882 > > inl td props children : _ (_ td) = -00:24:06 v #21883 > > tag_element "td" props children -00:24:06 v #21884 > > -00:24:06 v #21885 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:24:06 v #21886 > > │ ### svg -00:24:06 v #21887 > > -00:24:06 v #21888 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:24:06 v #21889 > > inl svg props children : _ (_ svg) = -00:24:06 v #21890 > > tag_element "svg" props children -00:24:07 v #21891 > > -00:24:07 v #21892 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:24:07 v #21893 > > │ ### path -00:24:07 v #21894 > > -00:24:07 v #21895 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:24:07 v #21896 > > inl path props : _ (_ path) = -00:24:07 v #21897 > > tag_element "path" props (fun () => [[]] |> view_list_to_fragment) -00:24:07 v #21898 > > -00:24:07 v #21899 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:24:07 v #21900 > > │ ### circle -00:24:07 v #21901 > > -00:24:07 v #21902 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:24:07 v #21903 > > inl circle props : _ (_ circle) = -00:24:07 v #21904 > > tag_element "circle" props (fun () => [[]] |> view_list_to_fragment) -00:24:08 v #21905 > > -00:24:08 v #21906 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:24:08 v #21907 > > │ ### rect -00:24:08 v #21908 > > -00:24:08 v #21909 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:24:08 v #21910 > > inl rect props children : _ (_ rect) = -00:24:08 v #21911 > > tag_element "rect" props children -00:24:08 v #21912 > > -00:24:08 v #21913 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:24:08 v #21914 > > │ ### animate -00:24:08 v #21915 > > -00:24:08 v #21916 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:24:08 v #21917 > > inl animate props : _ (_ animate) = -00:24:08 v #21918 > > tag_element "animate" props (fun () => [[]] |> view_list_to_fragment) -00:24:09 v #21919 > > -00:24:09 v #21920 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:24:09 v #21921 > > │ ### input -00:24:09 v #21922 > > -00:24:09 v #21923 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:24:09 v #21924 > > inl input props : _ (_ input) = -00:24:09 v #21925 > > tag_closed "input" props -00:24:09 v #21926 > > -00:24:09 v #21927 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:24:09 v #21928 > > │ ### dd -00:24:09 v #21929 > > -00:24:09 v #21930 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:24:09 v #21931 > > inl dd props children : _ (_ dd) = -00:24:09 v #21932 > > tag_element "dd" props children -00:24:09 v #21933 > > -00:24:09 v #21934 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:24:09 v #21935 > > │ ### dl -00:24:09 v #21936 > > -00:24:09 v #21937 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:24:09 v #21938 > > inl dl props children : _ (_ dl) = -00:24:09 v #21939 > > tag_element "dl" props children -00:24:10 v #21940 > > -00:24:10 v #21941 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:24:10 v #21942 > > │ ### dt -00:24:10 v #21943 > > -00:24:10 v #21944 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:24:10 v #21945 > > inl dt props children : _ (_ dt) = -00:24:10 v #21946 > > tag_element "dt" props children -00:24:11 v #21947 > 00:05:15 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 86567 } -00:24:11 v #21948 > 00:05:15 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/lib/spiral/leptos/leptos.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/lib/spiral/leptos/leptos.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:24:13 v #21949 > 00:05:17 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/lib/spiral/leptos/leptos.dib.ipynb to html -00:24:13 v #21950 > 00:05:17 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. -00:24:13 v #21951 > 00:05:17 v #7 ! validate(nb) -00:24:14 v #21952 > 00:05:18 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 -00:24:14 v #21953 > 00:05:18 v #9 ! return _pygments_highlight( -00:24:16 v #21954 > 00:05:20 v #10 ! [NbConvertApp] Writing 666087 bytes to c:\home\git\polyglot\lib\spiral\leptos\leptos.dib.html -00:24:16 v #21955 > 00:05:20 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 868 } -00:24:16 v #21956 > 00:05:20 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 868 } -00:24:16 v #21957 > 00:05:20 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/leptos/leptos.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/leptos/leptos.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:24:16 v #21958 > 00:05:21 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } -00:24:16 v #21959 > 00:05:21 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } -00:24:16 v #21960 > 00:05:21 d #16 spiral.run / dib / { exit_code = 0; result_length = 87494 } -00:24:16 d #21961 runtime.execute_with_options_async / { exit_code = 0; output_length = 94486 } -00:24:16 d #28 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path leptos/leptos.dib --retries 3 -00:24:16 d #21962 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path util.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path util.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } -00:24:16 v #21963 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "util.dib", "--retries", "3"])) } -00:24:16 v #21964 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/lib/spiral/util.dib", "--output-path", "c:/home/git/polyglot/lib/spiral/util.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/lib/spiral/util.dib" --output-path "c:/home/git/polyglot/lib/spiral/util.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } -00:24:19 v #21965 > > -00:24:19 v #21966 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:24:19 v #21967 > > │ # util -00:24:23 v #21968 > > -00:24:23 v #21969 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:24:23 v #21970 > > //// test -00:24:23 v #21971 > > -00:24:23 v #21972 > > open testing -00:24:24 v #21973 > > -00:24:24 v #21974 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:24:24 v #21975 > > │ ### ski -00:24:24 v #21976 > > -00:24:24 v #21977 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:24:24 v #21978 > > union rec ski = -00:24:24 v #21979 > > | I -00:24:24 v #21980 > > | K -00:24:24 v #21981 > > | S -00:24:24 v #21982 > > | App : ski * ski -00:24:24 v #21983 > > -00:24:24 v #21984 > > inl rec eval ski = -00:24:24 v #21985 > > match ski with -00:24:24 v #21986 > > | App (App (K, x), y) => x |> eval -00:24:24 v #21987 > > | App (App (App (S, x), y), z) => App (App (x, z), App (y, z)) |> eval -00:24:24 v #21988 > > | App (I, x) => x |> eval -00:24:24 v #21989 > > | App (K, x) => App (K, eval x) -00:24:24 v #21990 > > | App (f, x) => App (eval f, x) |> eval -00:24:24 v #21991 > > | _ => ski -00:24:24 v #21992 > > -00:24:24 v #21993 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:24:24 v #21994 > > //// test -00:24:24 v #21995 > > -00:24:24 v #21996 > > eval I -00:24:24 v #21997 > > |> _assert_eq I -00:24:24 v #21998 > > -00:24:24 v #21999 > > App (I, I) -00:24:24 v #22000 > > |> eval -00:24:24 v #22001 > > |> _assert_eq I -00:24:24 v #22002 > > -00:24:24 v #22003 > > App (I, App (I, I)) -00:24:24 v #22004 > > |> eval -00:24:24 v #22005 > > |> _assert_eq I -00:24:24 v #22006 > > -00:24:24 v #22007 > > App (App (I, I), I) -00:24:24 v #22008 > > |> eval -00:24:24 v #22009 > > |> _assert_eq I -00:24:24 v #22010 > > -00:24:24 v #22011 > > App (App (App (I, I), I), I) -00:24:24 v #22012 > > |> eval -00:24:24 v #22013 > > |> _assert_eq I -00:24:24 v #22014 > > -00:24:24 v #22015 > > eval K -00:24:24 v #22016 > > |> _assert_eq K -00:24:24 v #22017 > > -00:24:24 v #22018 > > App (K, I) -00:24:24 v #22019 > > |> eval -00:24:24 v #22020 > > |> _assert_eq (App (K, I)) -00:24:24 v #22021 > > -00:24:24 v #22022 > > App (K, K) -00:24:24 v #22023 > > |> eval -00:24:24 v #22024 > > |> _assert_eq (App (K, K)) -00:24:24 v #22025 > > -00:24:24 v #22026 > > App (App (K, I), K) -00:24:24 v #22027 > > |> eval -00:24:24 v #22028 > > |> _assert_eq I -00:24:24 v #22029 > > -00:24:24 v #22030 > > App (App (K, K), I) -00:24:24 v #22031 > > |> eval -00:24:24 v #22032 > > |> _assert_eq K -00:24:24 v #22033 > > -00:24:24 v #22034 > > App (App (App (App (K, K), I), S), K) -00:24:24 v #22035 > > |> eval -00:24:24 v #22036 > > |> _assert_eq S -00:24:24 v #22037 > > -00:24:24 v #22038 > > eval S -00:24:24 v #22039 > > |> _assert_eq S -00:24:24 v #22040 > > -00:24:24 v #22041 > > App (App (App (S, I), I), I) -00:24:24 v #22042 > > |> eval -00:24:24 v #22043 > > |> _assert_eq I -00:24:24 v #22044 > > -00:24:24 v #22045 > > App (App (App (S, K), K), I) -00:24:24 v #22046 > > |> eval -00:24:24 v #22047 > > |> _assert_eq I -00:24:24 v #22048 > > -00:24:24 v #22049 > > App (App (App (S, K), I), (App (App (K, I), S))) -00:24:24 v #22050 > > |> eval -00:24:24 v #22051 > > |> _assert_eq I -00:24:24 v #22052 > > -00:24:24 v #22053 > > App (App (K, S), App (I, App (App (App (S, K), S), I))) -00:24:24 v #22054 > > |> eval -00:24:24 v #22055 > > |> _assert_eq S -00:24:24 v #22056 > > -00:24:24 v #22057 > > App (App (App (S, K), I), K) -00:24:24 v #22058 > > |> eval -00:24:24 v #22059 > > |> _assert_eq K -00:24:26 v #22060 > > -00:24:26 v #22061 > > ── [ 1.38s - stdout ] ────────────────────────────────────────────────────────── -00:24:26 v #22062 > > │ __assert_eq / actual: UH0_0 / expected: UH0_0 -00:24:26 v #22063 > > │ __assert_eq / actual: UH0_0 / expected: UH0_0 -00:24:26 v #22064 > > │ __assert_eq / actual: UH0_0 / expected: UH0_0 -00:24:26 v #22065 > > │ __assert_eq / actual: UH0_0 / expected: UH0_0 -00:24:26 v #22066 > > │ __assert_eq / actual: UH0_0 / expected: UH0_0 -00:24:26 v #22067 > > │ __assert_eq / actual: UH0_1 / expected: UH0_1 -00:24:26 v #22068 > > │ __assert_eq / actual: UH0_3 (UH0_1, UH0_0) / expected: UH0_3 -00:24:26 v #22069 > > (UH0_1, UH0_0) -00:24:26 v #22070 > > │ __assert_eq / actual: UH0_3 (UH0_1, UH0_1) / expected: UH0_3 -00:24:26 v #22071 > > (UH0_1, UH0_1) -00:24:26 v #22072 > > │ __assert_eq / actual: UH0_0 / expected: UH0_0 -00:24:26 v #22073 > > │ __assert_eq / actual: UH0_1 / expected: UH0_1 -00:24:26 v #22074 > > │ __assert_eq / actual: UH0_2 / expected: UH0_2 -00:24:26 v #22075 > > │ __assert_eq / actual: UH0_2 / expected: UH0_2 -00:24:26 v #22076 > > │ __assert_eq / actual: UH0_0 / expected: UH0_0 -00:24:26 v #22077 > > │ __assert_eq / actual: UH0_0 / expected: UH0_0 -00:24:26 v #22078 > > │ __assert_eq / actual: UH0_0 / expected: UH0_0 -00:24:26 v #22079 > > │ __assert_eq / actual: UH0_2 / expected: UH0_2 -00:24:26 v #22080 > > │ __assert_eq / actual: UH0_1 / expected: UH0_1 -00:24:26 v #22081 > > │ -00:24:26 v #22082 > 00:00:09 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 3005 } -00:24:26 v #22083 > 00:00:09 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/lib/spiral/util.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/lib/spiral/util.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:24:27 v #22084 > 00:00:10 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/lib/spiral/util.dib.ipynb to html -00:24:27 v #22085 > 00:00:10 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. -00:24:27 v #22086 > 00:00:10 v #7 ! validate(nb) -00:24:28 v #22087 > 00:00:11 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 -00:24:28 v #22088 > 00:00:11 v #9 ! return _pygments_highlight( -00:24:28 v #22089 > 00:00:11 v #10 ! [NbConvertApp] Writing 284347 bytes to c:\home\git\polyglot\lib\spiral\util.dib.html -00:24:28 v #22090 > 00:00:11 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 850 } -00:24:28 v #22091 > 00:00:11 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 850 } -00:24:28 v #22092 > 00:00:11 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/util.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/util.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:24:28 v #22093 > 00:00:11 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } -00:24:28 v #22094 > 00:00:11 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } -00:24:28 v #22095 > 00:00:11 d #16 spiral.run / dib / { exit_code = 0; result_length = 3914 } -00:24:28 d #22096 runtime.execute_with_options_async / { exit_code = 0; output_length = 6663 } -00:24:28 d #29 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path util.dib --retries 3 -00:24:28 d #22097 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path platform.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path platform.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } -00:24:28 v #22098 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "platform.dib", "--retries", "3"])) } -00:24:28 v #22099 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/lib/spiral/platform.dib", "--output-path", "c:/home/git/polyglot/lib/spiral/platform.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/lib/spiral/platform.dib" --output-path "c:/home/git/polyglot/lib/spiral/platform.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } -00:24:30 v #22100 > > -00:24:30 v #22101 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:24:30 v #22102 > > │ # platform -00:24:33 v #22103 > > -00:24:33 v #22104 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:24:33 v #22105 > > open rust.rust_operators -00:24:34 v #22106 > > -00:24:34 v #22107 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:24:34 v #22108 > > //// test -00:24:34 v #22109 > > -00:24:34 v #22110 > > open testing -00:24:35 v #22111 > > -00:24:35 v #22112 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:24:35 v #22113 > > │ ## fsharp -00:24:35 v #22114 > > -00:24:35 v #22115 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:24:35 v #22116 > > │ ### os_platform -00:24:35 v #22117 > > -00:24:35 v #22118 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:24:35 v #22119 > > nominal os_platform' = $'System.Runtime.InteropServices.OSPlatform' -00:24:35 v #22120 > > -00:24:35 v #22121 > > union os_platform = -00:24:35 v #22122 > > | FreeBSD -00:24:35 v #22123 > > | Linux -00:24:35 v #22124 > > | OSX -00:24:35 v #22125 > > | Windows -00:24:35 v #22126 > > -00:24:35 v #22127 > > inl os_platform = function -00:24:35 v #22128 > > | FreeBSD => $'`os_platform'.FreeBSD' : os_platform' -00:24:35 v #22129 > > | Linux => $'`os_platform'.Linux' : os_platform' -00:24:35 v #22130 > > | OSX => $'`os_platform'.OSX' : os_platform' -00:24:35 v #22131 > > | Windows => $'`os_platform'.Windows' : os_platform' -00:24:35 v #22132 > > -00:24:35 v #22133 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:24:35 v #22134 > > │ ### run_platform -00:24:35 v #22135 > > -00:24:35 v #22136 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:24:35 v #22137 > > inl run_platform forall t. (fn : os_platform -> (() -> t)) : t = -00:24:35 v #22138 > > inl result = dyn true -00:24:35 v #22139 > > $'let mutable _run_platform_!result : `t option = None ' -00:24:35 v #22140 > > $'\n#if _FREEBSD' -00:24:35 v #22141 > > fn FreeBSD () |> emit_unit -00:24:35 v #22142 > > $'#endif\n#if _LINUX' -00:24:35 v #22143 > > fn Linux () |> emit_unit -00:24:35 v #22144 > > $'#endif\n#if _OSX' -00:24:35 v #22145 > > fn OSX () |> emit_unit -00:24:35 v #22146 > > $'#endif\n#if _WINDOWS' -00:24:35 v #22147 > > fn Windows () |> emit_unit -00:24:35 v #22148 > > $'#endif' -00:24:35 v #22149 > > $'|> fun x -> _run_platform_!result <- Some x' -00:24:35 v #22150 > > $'match _run_platform_!result with Some x -> x | None -> failwith -00:24:35 v #22151 > > "runtime.run_platform / _run_platform_!result=None"' -00:24:36 v #22152 > > -00:24:36 v #22153 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:24:36 v #22154 > > │ ### is_os_platform -00:24:36 v #22155 > > -00:24:36 v #22156 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:24:36 v #22157 > > inl is_os_platform (x : os_platform') : bool = -00:24:36 v #22158 > > x |> $'System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform' -00:24:36 v #22159 > > -00:24:36 v #22160 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:24:36 v #22161 > > │ ### is_windows' -00:24:36 v #22162 > > -00:24:36 v #22163 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:24:36 v #22164 > > inl is_windows' () : bool = -00:24:36 v #22165 > > run_platform function -00:24:36 v #22166 > > | Windows => fun () => true -00:24:36 v #22167 > > | _ => fun () => false -00:24:36 v #22168 > > -00:24:36 v #22169 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:24:36 v #22170 > > │ ## platform -00:24:36 v #22171 > > -00:24:36 v #22172 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:24:36 v #22173 > > │ ### is_windows -00:24:36 v #22174 > > -00:24:36 v #22175 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:24:36 v #22176 > > inl is_windows () : bool = -00:24:36 v #22177 > > run_target function -00:24:36 v #22178 > > | Rust _ => fun () => -00:24:36 v #22179 > > !\($'"cfg\!(windows)"') -00:24:36 v #22180 > > | Fsharp _ => fun () => -00:24:36 v #22181 > > Windows |> os_platform |> is_os_platform -00:24:36 v #22182 > > | target => fun () => failwith $'$"platform.is_windows / target: -00:24:36 v #22183 > > {!target}"' -00:24:37 v #22184 > > -00:24:37 v #22185 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:24:37 v #22186 > > │ ### get_executable_suffix -00:24:37 v #22187 > > -00:24:37 v #22188 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:24:37 v #22189 > > inl get_executable_suffix () = -00:24:37 v #22190 > > if is_windows () -00:24:37 v #22191 > > then ".exe" -00:24:37 v #22192 > > else "" -00:24:37 v #22193 > > -00:24:37 v #22194 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:24:37 v #22195 > > //// test -00:24:37 v #22196 > > -00:24:37 v #22197 > > get_executable_suffix () -00:24:39 v #22198 > > -00:24:39 v #22199 > > ── [ 1.32s - return value ] ──────────────────────────────────────────────────── -00:24:39 v #22200 > > │ .exe -00:24:39 v #22201 > > -00:24:39 v #22202 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:24:39 v #22203 > > │ ## main -00:24:39 v #22204 > > -00:24:39 v #22205 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:24:39 v #22206 > > inl main () = -00:24:39 v #22207 > > $'let is_windows () = !is_windows ()' : () -00:24:39 v #22208 > > $'let get_executable_suffix () = !get_executable_suffix ()' : () -00:24:39 v #22209 > 00:00:10 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 3917 } -00:24:39 v #22210 > 00:00:10 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/lib/spiral/platform.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/lib/spiral/platform.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:24:40 v #22211 > 00:00:12 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/lib/spiral/platform.dib.ipynb to html -00:24:40 v #22212 > 00:00:12 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. -00:24:40 v #22213 > 00:00:12 v #7 ! validate(nb) -00:24:41 v #22214 > 00:00:12 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 -00:24:41 v #22215 > 00:00:12 v #9 ! return _pygments_highlight( -00:24:41 v #22216 > 00:00:12 v #10 ! [NbConvertApp] Writing 288080 bytes to c:\home\git\polyglot\lib\spiral\platform.dib.html -00:24:41 v #22217 > 00:00:13 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 858 } -00:24:41 v #22218 > 00:00:13 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 858 } -00:24:41 v #22219 > 00:00:13 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/platform.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/platform.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:24:42 v #22220 > 00:00:13 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } -00:24:42 v #22221 > 00:00:13 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } -00:24:42 v #22222 > 00:00:13 d #16 spiral.run / dib / { exit_code = 0; result_length = 4834 } -00:24:42 d #22223 runtime.execute_with_options_async / { exit_code = 0; output_length = 7603 } -00:24:42 d #30 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path platform.dib --retries 3 -00:24:42 d #22224 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path stream.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path stream.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } -00:24:42 v #22225 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "stream.dib", "--retries", "3"])) } -00:24:42 v #22226 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/lib/spiral/stream.dib", "--output-path", "c:/home/git/polyglot/lib/spiral/stream.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/lib/spiral/stream.dib" --output-path "c:/home/git/polyglot/lib/spiral/stream.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } -00:24:43 v #22227 > > -00:24:43 v #22228 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:24:43 v #22229 > > │ # stream -00:24:47 v #22230 > > -00:24:47 v #22231 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:24:47 v #22232 > > open rust.rust_operators -00:24:48 v #22233 > > -00:24:48 v #22234 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:24:48 v #22235 > > //// test -00:24:48 v #22236 > > -00:24:48 v #22237 > > open testing -00:24:48 v #22238 > > -00:24:48 v #22239 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:24:48 v #22240 > > │ ## stream -00:24:48 v #22241 > > -00:24:48 v #22242 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:24:48 v #22243 > > │ ### stream -00:24:48 v #22244 > > -00:24:48 v #22245 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:24:48 v #22246 > > union rec stream t = -00:24:48 v #22247 > > | StreamCons : t * (() -> stream t) -00:24:48 v #22248 > > | StreamNil -00:24:49 v #22249 > > -00:24:49 v #22250 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:24:49 v #22251 > > │ ### fold -00:24:49 v #22252 > > -00:24:49 v #22253 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:24:49 v #22254 > > inl fold fn init s = -00:24:49 v #22255 > > inl rec body acc = function -00:24:49 v #22256 > > | StreamCons (st, fn') => loop (fn acc st) (fn' ()) -00:24:49 v #22257 > > | StreamNil => acc -00:24:49 v #22258 > > and inl loop acc = join_body body acc -00:24:49 v #22259 > > loop init s -00:24:49 v #22260 > > -00:24:49 v #22261 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:24:49 v #22262 > > │ ### fold_back -00:24:49 v #22263 > > -00:24:49 v #22264 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:24:49 v #22265 > > inl fold_back fn s init = -00:24:49 v #22266 > > inl rec body acc = function -00:24:49 v #22267 > > | StreamCons (st, fn') => fn st (loop acc (fn' ())) -00:24:49 v #22268 > > | StreamNil => acc -00:24:49 v #22269 > > and inl loop acc = join_body body acc -00:24:49 v #22270 > > loop init s -00:24:49 v #22271 > > -00:24:49 v #22272 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:24:49 v #22273 > > │ ### to_list -00:24:49 v #22274 > > -00:24:49 v #22275 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:24:49 v #22276 > > inl to_list s = -00:24:49 v #22277 > > (s, [[]]) -00:24:49 v #22278 > > ||> fold_back fun x acc => -00:24:49 v #22279 > > x :: acc -00:24:50 v #22280 > > -00:24:50 v #22281 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:24:50 v #22282 > > │ ### rev -00:24:50 v #22283 > > -00:24:50 v #22284 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:24:50 v #22285 > > inl rev s = -00:24:50 v #22286 > > (StreamNil, s) -00:24:50 v #22287 > > ||> fold fun s x => -00:24:50 v #22288 > > StreamCons (x, fun () => s) -00:24:50 v #22289 > > -00:24:50 v #22290 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:24:50 v #22291 > > │ ### from_list -00:24:50 v #22292 > > -00:24:50 v #22293 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:24:50 v #22294 > > inl from_list list = -00:24:50 v #22295 > > (list, StreamNil) -00:24:50 v #22296 > > ||> listm.foldBack fun x acc => -00:24:50 v #22297 > > StreamCons (x, fun () => acc) -00:24:51 v #22298 > > -00:24:51 v #22299 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:24:51 v #22300 > > //// test -00:24:51 v #22301 > > -00:24:51 v #22302 > > listm.init 3i32 id -00:24:51 v #22303 > > |> from_list -00:24:51 v #22304 > > |> rev -00:24:51 v #22305 > > |> to_list -00:24:51 v #22306 > > |> _assert_eq [[ 2; 1; 0 ]] -00:24:52 v #22307 > > -00:24:52 v #22308 > > ── [ 1.28s - stdout ] ────────────────────────────────────────────────────────── -00:24:52 v #22309 > > │ __assert_eq / actual: UH0_1 (2, UH0_1 (1, UH0_1 (0, UH0_0))) -00:24:52 v #22310 > > / expected: UH0_1 (2, UH0_1 (1, UH0_1 (0, UH0_0))) -00:24:52 v #22311 > > │ -00:24:52 v #22312 > > -00:24:52 v #22313 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:24:52 v #22314 > > │ ### try_item -00:24:52 v #22315 > > -00:24:52 v #22316 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:24:52 v #22317 > > inl try_item i s = -00:24:52 v #22318 > > inl rec body i = function -00:24:52 v #22319 > > | StreamCons (x, _) when i <= 0 => Some x -00:24:52 v #22320 > > | StreamCons (_, fn) => loop (i - 1) (fn ()) -00:24:52 v #22321 > > | StreamNil => None -00:24:52 v #22322 > > and inl loop acc s' = -00:24:52 v #22323 > > match var_is acc, var_is s' with -00:24:52 v #22324 > > | false, false => body acc s' -00:24:52 v #22325 > > | _ => -00:24:52 v #22326 > > inl acc = dyn acc -00:24:52 v #22327 > > inl s' = dyn s' -00:24:52 v #22328 > > join body acc s' -00:24:52 v #22329 > > loop i s -00:24:52 v #22330 > > -00:24:52 v #22331 > > inl item i = -00:24:52 v #22332 > > try_item i >> optionm.value -00:24:52 v #22333 > > -00:24:52 v #22334 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:24:52 v #22335 > > //// test -00:24:52 v #22336 > > -00:24:52 v #22337 > > listm.init 10i32 id -00:24:52 v #22338 > > |> from_list -00:24:52 v #22339 > > |> item 9i32 -00:24:52 v #22340 > > |> _assert_eq 9 -00:24:53 v #22341 > > -00:24:53 v #22342 > > ── [ 542.60ms - stdout ] ─────────────────────────────────────────────────────── -00:24:53 v #22343 > > │ __assert_eq / actual: 9 / expected: 9 -00:24:53 v #22344 > > │ -00:24:53 v #22345 > > -00:24:53 v #22346 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:24:53 v #22347 > > │ ### new_infinite_stream -00:24:53 v #22348 > > -00:24:53 v #22349 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:24:53 v #22350 > > inl new_infinite_stream fn = -00:24:53 v #22351 > > inl rec loop n = -00:24:53 v #22352 > > StreamCons (fn n, fun () => loop (n + 1)) -00:24:53 v #22353 > > loop 0 -00:24:53 v #22354 > > -00:24:53 v #22355 > > inl new_infinite_stream_ fn = -00:24:53 v #22356 > > let rec loop n = -00:24:53 v #22357 > > StreamCons (fn n, fun () => loop (n + 1)) -00:24:53 v #22358 > > loop 0 -00:24:53 v #22359 > > -00:24:53 v #22360 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:24:53 v #22361 > > //// test -00:24:53 v #22362 > > -00:24:53 v #22363 > > new_infinite_stream print_and_return -00:24:53 v #22364 > > |> item 4i32 -00:24:53 v #22365 > > |> _assert_eq 4i32 -00:24:54 v #22366 > > -00:24:54 v #22367 > > ── [ 404.30ms - stdout ] ─────────────────────────────────────────────────────── -00:24:54 v #22368 > > │ print_and_return / x: 0 -00:24:54 v #22369 > > │ print_and_return / x: 1 -00:24:54 v #22370 > > │ print_and_return / x: 2 -00:24:54 v #22371 > > │ print_and_return / x: 3 -00:24:54 v #22372 > > │ print_and_return / x: 4 -00:24:54 v #22373 > > │ __assert_eq / actual: 4 / expected: 4 -00:24:54 v #22374 > > │ -00:24:54 v #22375 > > -00:24:54 v #22376 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:24:54 v #22377 > > │ ### new_finite_stream -00:24:54 v #22378 > > -00:24:54 v #22379 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:24:54 v #22380 > > inl new_finite_stream fn max = -00:24:54 v #22381 > > inl rec loop n = -00:24:54 v #22382 > > if n >= max -00:24:54 v #22383 > > then StreamNil -00:24:54 v #22384 > > else StreamCons (fn n, fun () => loop (n + 1)) -00:24:54 v #22385 > > loop 0 -00:24:54 v #22386 > > -00:24:54 v #22387 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:24:54 v #22388 > > │ ### memoize -00:24:54 v #22389 > > -00:24:54 v #22390 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:24:54 v #22391 > > union memoized_stream t = -00:24:54 v #22392 > > | NotComputed : () -> stream t -00:24:54 v #22393 > > | Computed : stream t -00:24:54 v #22394 > > -00:24:54 v #22395 > > inl memoize s = -00:24:54 v #22396 > > inl rec body s = -00:24:54 v #22397 > > inl state = mut (NotComputed s) -00:24:54 v #22398 > > fun () => -00:24:54 v #22399 > > match *state with -00:24:54 v #22400 > > | Computed x => x -00:24:54 v #22401 > > | NotComputed fn => -00:24:54 v #22402 > > inl new_state = -00:24:54 v #22403 > > match fn () with -00:24:54 v #22404 > > | StreamNil => StreamNil -00:24:54 v #22405 > > | StreamCons (x, fn) => StreamCons (x, loop fn) -00:24:54 v #22406 > > state <- Computed new_state -00:24:54 v #22407 > > new_state -00:24:54 v #22408 > > and inl loop s' = join_body_unit body s s' -00:24:54 v #22409 > > loop (fun () => s) -00:24:54 v #22410 > > -00:24:54 v #22411 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:24:54 v #22412 > > //// test -00:24:54 v #22413 > > -00:24:54 v #22414 > > inl memo_stream = new_finite_stream print_and_return 10 |> memoize -00:24:54 v #22415 > > -00:24:54 v #22416 > > memo_stream () -00:24:54 v #22417 > > |> item 3i32 -00:24:54 v #22418 > > |> _assert_eq 3i32 -00:24:54 v #22419 > > -00:24:54 v #22420 > > memo_stream () -00:24:54 v #22421 > > |> item 5i32 -00:24:54 v #22422 > > |> _assert_eq 5i32 -00:24:55 v #22423 > > -00:24:55 v #22424 > > ── [ 862.40ms - stdout ] ─────────────────────────────────────────────────────── -00:24:55 v #22425 > > │ print_and_return / x: 0 -00:24:55 v #22426 > > │ print_and_return / x: 1 -00:24:55 v #22427 > > │ print_and_return / x: 2 -00:24:55 v #22428 > > │ print_and_return / x: 3 -00:24:55 v #22429 > > │ __assert_eq / actual: 3 / expected: 3 -00:24:55 v #22430 > > │ print_and_return / x: 4 -00:24:55 v #22431 > > │ print_and_return / x: 5 -00:24:55 v #22432 > > │ __assert_eq / actual: 5 / expected: 5 -00:24:55 v #22433 > > │ -00:24:55 v #22434 > > -00:24:55 v #22435 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:24:55 v #22436 > > //// test -00:24:55 v #22437 > > -00:24:55 v #22438 > > inl memo_stream = new_infinite_stream_ print_and_return |> memoize -00:24:55 v #22439 > > -00:24:55 v #22440 > > memo_stream () -00:24:55 v #22441 > > |> item 3i32 -00:24:55 v #22442 > > |> _assert_eq 3i32 -00:24:55 v #22443 > > -00:24:55 v #22444 > > memo_stream () -00:24:55 v #22445 > > |> item 5i32 -00:24:55 v #22446 > > |> _assert_eq 5i32 -00:24:56 v #22447 > > -00:24:56 v #22448 > > ── [ 490.34ms - stdout ] ─────────────────────────────────────────────────────── -00:24:56 v #22449 > > │ print_and_return / x: 0 -00:24:56 v #22450 > > │ print_and_return / x: 1 -00:24:56 v #22451 > > │ print_and_return / x: 2 -00:24:56 v #22452 > > │ print_and_return / x: 3 -00:24:56 v #22453 > > │ __assert_eq / actual: 3 / expected: 3 -00:24:56 v #22454 > > │ print_and_return / x: 4 -00:24:56 v #22455 > > │ print_and_return / x: 5 -00:24:56 v #22456 > > │ __assert_eq / actual: 5 / expected: 5 -00:24:56 v #22457 > > │ -00:24:56 v #22458 > > -00:24:56 v #22459 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:24:56 v #22460 > > │ ### unfold -00:24:56 v #22461 > > -00:24:56 v #22462 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:24:56 v #22463 > > inl unfold f x0 = -00:24:56 v #22464 > > inl rec body x = -00:24:56 v #22465 > > match f x with -00:24:56 v #22466 > > | Some (x', y) => StreamCons (x', fun () => loop y) -00:24:56 v #22467 > > | None => StreamNil -00:24:56 v #22468 > > and inl loop x = join_body_unit body x0 x -00:24:56 v #22469 > > loop x0 -00:24:56 v #22470 > > -00:24:56 v #22471 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:24:56 v #22472 > > │ ### iterate -00:24:56 v #22473 > > -00:24:56 v #22474 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:24:56 v #22475 > > inl iterate f = -00:24:56 v #22476 > > fun x => Some (x, f x) -00:24:56 v #22477 > > |> unfold -00:24:57 v #22478 > > -00:24:57 v #22479 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:24:57 v #22480 > > //// test -00:24:57 v #22481 > > -00:24:57 v #22482 > > iterate ((*) 2) 1i32 -00:24:57 v #22483 > > |> item 10i32 -00:24:57 v #22484 > > |> _assert_eq 1024 -00:24:57 v #22485 > > -00:24:57 v #22486 > > ── [ 482.76ms - stdout ] ─────────────────────────────────────────────────────── -00:24:57 v #22487 > > │ __assert_eq / actual: 1024 / expected: 1024 -00:24:57 v #22488 > > │ -00:24:57 v #22489 > > -00:24:57 v #22490 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:24:57 v #22491 > > │ ### iterate' -00:24:57 v #22492 > > -00:24:57 v #22493 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:24:57 v #22494 > > inl iterate_map f m = -00:24:57 v #22495 > > fun x => -00:24:57 v #22496 > > m x -00:24:57 v #22497 > > |> optionm.map fun x => -00:24:57 v #22498 > > x, f x -00:24:57 v #22499 > > |> unfold -00:24:57 v #22500 > > -00:24:57 v #22501 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:24:57 v #22502 > > //// test -00:24:57 v #22503 > > -00:24:57 v #22504 > > iterate_map ((*) 2) Some 1i32 -00:24:57 v #22505 > > |> item 10i32 -00:24:57 v #22506 > > |> _assert_eq 1024 -00:24:58 v #22507 > > -00:24:58 v #22508 > > ── [ 423.14ms - stdout ] ─────────────────────────────────────────────────────── -00:24:58 v #22509 > > │ __assert_eq / actual: 1024 / expected: 1024 -00:24:58 v #22510 > > │ -00:24:58 v #22511 > > -00:24:58 v #22512 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:24:58 v #22513 > > │ ### take_while -00:24:58 v #22514 > > -00:24:58 v #22515 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:24:58 v #22516 > > inl take_while cond s = -00:24:58 v #22517 > > inl rec body i = function -00:24:58 v #22518 > > | StreamCons (st, fn) when cond st i => StreamCons (st, fun () => loop -00:24:58 v #22519 > > (i + 1) (fn ())) -00:24:58 v #22520 > > | _ => StreamNil -00:24:58 v #22521 > > and inl loop i = join_body body i -00:24:58 v #22522 > > loop 0 s -00:24:58 v #22523 > > -00:24:58 v #22524 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:24:58 v #22525 > > │ ### sum -00:24:58 v #22526 > > -00:24:58 v #22527 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:24:58 v #22528 > > inl sum seq = -00:24:58 v #22529 > > seq |> fold (+) 0 -00:24:59 v #22530 > > -00:24:59 v #22531 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:24:59 v #22532 > > //// test -00:24:59 v #22533 > > -00:24:59 v #22534 > > listm.init 10i32 id -00:24:59 v #22535 > > |> from_list -00:24:59 v #22536 > > |> sum -00:24:59 v #22537 > > |> _assert_eq 45 -00:24:59 v #22538 > > -00:24:59 v #22539 > > ── [ 398.85ms - stdout ] ─────────────────────────────────────────────────────── -00:24:59 v #22540 > > │ __assert_eq / actual: 45 / expected: 45 -00:24:59 v #22541 > > │ -00:24:59 v #22542 > > -00:24:59 v #22543 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:24:59 v #22544 > > //// test -00:24:59 v #22545 > > -00:24:59 v #22546 > > new_finite_stream print_and_return 10i32 -00:24:59 v #22547 > > |> take_while (fun n (_ : i32) => n < 5) -00:24:59 v #22548 > > |> sum -00:24:59 v #22549 > > |> _assert_eq 10 -00:25:00 v #22550 > > -00:25:00 v #22551 > > ── [ 430.23ms - stdout ] ─────────────────────────────────────────────────────── -00:25:00 v #22552 > > │ print_and_return / x: 0 -00:25:00 v #22553 > > │ print_and_return / x: 1 -00:25:00 v #22554 > > │ print_and_return / x: 2 -00:25:00 v #22555 > > │ print_and_return / x: 3 -00:25:00 v #22556 > > │ print_and_return / x: 4 -00:25:00 v #22557 > > │ print_and_return / x: 5 -00:25:00 v #22558 > > │ __assert_eq / actual: 10 / expected: 10 -00:25:00 v #22559 > > │ -00:25:00 v #22560 > > -00:25:00 v #22561 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:00 v #22562 > > //// test -00:25:00 v #22563 > > -00:25:00 v #22564 > > new_infinite_stream print_and_return -00:25:00 v #22565 > > |> take_while (fun n (_ : i32) => n < 5i32) -00:25:00 v #22566 > > |> sum -00:25:00 v #22567 > > |> _assert_eq 10 -00:25:00 v #22568 > > -00:25:00 v #22569 > > ── [ 450.38ms - stdout ] ─────────────────────────────────────────────────────── -00:25:00 v #22570 > > │ print_and_return / x: 0 -00:25:00 v #22571 > > │ print_and_return / x: 1 -00:25:00 v #22572 > > │ print_and_return / x: 2 -00:25:00 v #22573 > > │ print_and_return / x: 3 -00:25:00 v #22574 > > │ print_and_return / x: 4 -00:25:00 v #22575 > > │ print_and_return / x: 5 -00:25:00 v #22576 > > │ __assert_eq / actual: 10 / expected: 10 -00:25:00 v #22577 > > │ -00:25:00 v #22578 > > -00:25:00 v #22579 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:00 v #22580 > > //// test -00:25:00 v #22581 > > -00:25:00 v #22582 > > iterate ((*) 6) 1i32 -00:25:00 v #22583 > > |> take_while (fun _ i => i <= 7i32) -00:25:00 v #22584 > > |> to_list -00:25:00 v #22585 > > |> _assert_eq [[ 1i32; 6; 36; 216; 1296; 7776; 46656; 279936 ]] -00:25:01 v #22586 > > -00:25:01 v #22587 > > ── [ 528.68ms - stdout ] ─────────────────────────────────────────────────────── -00:25:01 v #22588 > > │ __assert_eq / actual: UH0_1 -00:25:01 v #22589 > > │ (1, -00:25:01 v #22590 > > │ UH0_1 -00:25:01 v #22591 > > │ (6, -00:25:01 v #22592 > > │ UH0_1 -00:25:01 v #22593 > > │ (36, -00:25:01 v #22594 > > │ UH0_1 -00:25:01 v #22595 > > │ (216, -00:25:01 v #22596 > > │ UH0_1 (1296, UH0_1 (7776, UH0_1 (46656, UH0_1 -00:25:01 v #22597 > > (279936, UH0_0)))))))) / expected: UH0_1 -00:25:01 v #22598 > > │ (1, -00:25:01 v #22599 > > │ UH0_1 -00:25:01 v #22600 > > │ (6, -00:25:01 v #22601 > > │ UH0_1 -00:25:01 v #22602 > > │ (36, -00:25:01 v #22603 > > │ UH0_1 -00:25:01 v #22604 > > │ (216, -00:25:01 v #22605 > > │ UH0_1 (1296, UH0_1 (7776, UH0_1 (46656, UH0_1 -00:25:01 v #22606 > > (279936, UH0_0)))))))) -00:25:01 v #22607 > > │ -00:25:01 v #22608 > > -00:25:01 v #22609 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:01 v #22610 > > │ ### indexed -00:25:01 v #22611 > > -00:25:01 v #22612 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:01 v #22613 > > inl indexed s = -00:25:01 v #22614 > > ((StreamNil, 0), s) -00:25:01 v #22615 > > ||> fold fun (acc, i) x => -00:25:01 v #22616 > > StreamCons ((i, x), fun () => acc), i + 1 -00:25:01 v #22617 > > |> fst -00:25:01 v #22618 > > |> rev -00:25:01 v #22619 > > -00:25:01 v #22620 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:01 v #22621 > > //// test -00:25:01 v #22622 > > -00:25:01 v #22623 > > listm.init 10i32 ((*) 2) -00:25:01 v #22624 > > |> from_list -00:25:01 v #22625 > > |> indexed -00:25:01 v #22626 > > |> item 5i32 -00:25:01 v #22627 > > |> _assert_eq (5i32, 10i32) -00:25:01 v #22628 > > -00:25:01 v #22629 > > ── [ 447.66ms - stdout ] ─────────────────────────────────────────────────────── -00:25:01 v #22630 > > │ __assert_eq / actual: struct (5, 10) / expected: struct (5, -00:25:01 v #22631 > > 10) -00:25:01 v #22632 > > │ -00:25:01 v #22633 > > -00:25:01 v #22634 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:01 v #22635 > > │ ### map -00:25:01 v #22636 > > -00:25:01 v #22637 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:01 v #22638 > > inl map fn s = -00:25:01 v #22639 > > (s, StreamNil) -00:25:01 v #22640 > > ||> fold_back fun x acc => -00:25:01 v #22641 > > StreamCons (fn x, fun () => acc) -00:25:02 v #22642 > > -00:25:02 v #22643 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:02 v #22644 > > //// test -00:25:02 v #22645 > > -00:25:02 v #22646 > > listm.init 10i32 id -00:25:02 v #22647 > > |> from_list -00:25:02 v #22648 > > |> map ((*) 2) -00:25:02 v #22649 > > |> item 5i32 -00:25:02 v #22650 > > |> _assert_eq 10i32 -00:25:02 v #22651 > > -00:25:02 v #22652 > > ── [ 505.75ms - stdout ] ─────────────────────────────────────────────────────── -00:25:02 v #22653 > > │ __assert_eq / actual: 10 / expected: 10 -00:25:02 v #22654 > > │ -00:25:02 v #22655 > > -00:25:02 v #22656 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:02 v #22657 > > │ ### zip_with -00:25:02 v #22658 > > -00:25:02 v #22659 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:02 v #22660 > > inl zip_with fn s1 s2 = -00:25:02 v #22661 > > inl rec loop s1 s2 = -00:25:02 v #22662 > > match s1, s2 with -00:25:02 v #22663 > > | StreamCons (st1, fn1), StreamCons (st2, fn2) => -00:25:02 v #22664 > > StreamCons (fn st1 st2, fun () => loop (fn1 ()) (fn2 ())) -00:25:02 v #22665 > > | StreamNil, _ | _, StreamNil => StreamNil -00:25:02 v #22666 > > loop s1 s2 -00:25:02 v #22667 > > -00:25:02 v #22668 > > inl zip_with_ fn s1 s2 = -00:25:02 v #22669 > > let rec loop s1 s2 = -00:25:02 v #22670 > > match s1, s2 with -00:25:02 v #22671 > > | StreamCons (st1, fn1), StreamCons (st2, fn2) => -00:25:02 v #22672 > > StreamCons (fn st1 st2, fun () => loop (fn1 ()) (fn2 ())) -00:25:02 v #22673 > > | StreamNil, _ | _, StreamNil => StreamNil -00:25:02 v #22674 > > loop s1 s2 -00:25:03 v #22675 > > -00:25:03 v #22676 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:03 v #22677 > > //// test -00:25:03 v #22678 > > -00:25:03 v #22679 > > ((listm.init 10i32 id |> from_list), (listm.init 10i32 ((*) 2) |> from_list)) -00:25:03 v #22680 > > ||> zip_with (+) -00:25:03 v #22681 > > |> item 2i32 -00:25:03 v #22682 > > |> _assert_eq 6 -00:25:03 v #22683 > > -00:25:03 v #22684 > > ── [ 403.74ms - stdout ] ─────────────────────────────────────────────────────── -00:25:03 v #22685 > > │ __assert_eq / actual: 6 / expected: 6 -00:25:03 v #22686 > > │ -00:25:03 v #22687 > > -00:25:03 v #22688 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:03 v #22689 > > │ ### zip -00:25:03 v #22690 > > -00:25:03 v #22691 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:03 v #22692 > > inl zip s1 s2 = -00:25:03 v #22693 > > zip_with pair s1 s2 -00:25:03 v #22694 > > -00:25:03 v #22695 > > inl zip_ s1 s2 = -00:25:03 v #22696 > > zip_with_ pair s1 s2 -00:25:04 v #22697 > > -00:25:04 v #22698 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:04 v #22699 > > //// test -00:25:04 v #22700 > > -00:25:04 v #22701 > > ((listm.init 10i32 id |> from_list), (listm.init 10i32 ((*) 2) |> from_list)) -00:25:04 v #22702 > > ||> zip -00:25:04 v #22703 > > |> item 5i32 -00:25:04 v #22704 > > |> _assert_eq (5, 10) -00:25:04 v #22705 > > -00:25:04 v #22706 > > ── [ 479.37ms - stdout ] ─────────────────────────────────────────────────────── -00:25:04 v #22707 > > │ __assert_eq / actual: struct (5, 10) / expected: struct (5, -00:25:04 v #22708 > > 10) -00:25:04 v #22709 > > │ -00:25:04 v #22710 > > -00:25:04 v #22711 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:04 v #22712 > > │ ### unzip -00:25:04 v #22713 > > -00:25:04 v #22714 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:04 v #22715 > > inl unzip s = -00:25:04 v #22716 > > inl rec body s = -00:25:04 v #22717 > > match s with -00:25:04 v #22718 > > | StreamCons ((x, y), fn) => -00:25:04 v #22719 > > inl xs, ys = loop (fn ()) -00:25:04 v #22720 > > StreamCons (x, fun () => xs), StreamCons (y, fun () => ys) -00:25:04 v #22721 > > | StreamNil => pair StreamNil StreamNil -00:25:04 v #22722 > > and inl loop x = -00:25:04 v #22723 > > if var_is x |> not -00:25:04 v #22724 > > then body x -00:25:04 v #22725 > > else -00:25:04 v #22726 > > inl x = dyn x -00:25:04 v #22727 > > join body x -00:25:04 v #22728 > > loop s -00:25:05 v #22729 > > -00:25:05 v #22730 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:05 v #22731 > > //// test -00:25:05 v #22732 > > -00:25:05 v #22733 > > listm.init 10i32 id -00:25:05 v #22734 > > |> listm.map (fun x => x, x) -00:25:05 v #22735 > > |> from_list -00:25:05 v #22736 > > |> unzip -00:25:05 v #22737 > > |> fun x, y => -00:25:05 v #22738 > > x |> sum -00:25:05 v #22739 > > |> _assert_eq 45 -00:25:05 v #22740 > > -00:25:05 v #22741 > > y |> sum -00:25:05 v #22742 > > |> _assert_eq 45 -00:25:05 v #22743 > > -00:25:05 v #22744 > > ── [ 413.34ms - stdout ] ─────────────────────────────────────────────────────── -00:25:05 v #22745 > > │ __assert_eq / actual: 45 / expected: 45 -00:25:05 v #22746 > > │ __assert_eq / actual: 45 / expected: 45 -00:25:05 v #22747 > > │ -00:25:05 v #22748 > > -00:25:05 v #22749 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:05 v #22750 > > │ ## rust -00:25:05 v #22751 > > -00:25:05 v #22752 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:05 v #22753 > > │ ### io_error -00:25:05 v #22754 > > -00:25:05 v #22755 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:05 v #22756 > > nominal io_error = -00:25:05 v #22757 > > `( -00:25:05 v #22758 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:25:05 v #22759 > > Fable.Core.Emit(\"std::io::Error\")>]]\ntype std_io_Error = class -00:25:05 v #22760 > > end\n#else\ntype std_io_Error = string\n#endif\n" -00:25:05 v #22761 > > $'' : $'std_io_Error' -00:25:05 v #22762 > > ) -00:25:05 v #22763 > > -00:25:05 v #22764 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:05 v #22765 > > │ ### new_io_error -00:25:05 v #22766 > > -00:25:05 v #22767 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:05 v #22768 > > inl new_io_error (text : string) : io_error = -00:25:05 v #22769 > > run_target_args (fun () => text) function -00:25:05 v #22770 > > | Rust _ => fun text => -00:25:05 v #22771 > > !\\(text, $'"std::io::Error::new(std::io::ErrorKind::Other, &*$0)"') -00:25:05 v #22772 > > | _ => fun text => text |> unbox -00:25:06 v #22773 > > -00:25:06 v #22774 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:06 v #22775 > > │ ### buf_reader -00:25:06 v #22776 > > -00:25:06 v #22777 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:06 v #22778 > > nominal buf_reader t = -00:25:06 v #22779 > > `( -00:25:06 v #22780 > > backend_switch `(()) `({}) { -00:25:06 v #22781 > > Fsharp = -00:25:06 v #22782 > > (fun () => -00:25:06 v #22783 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:25:06 v #22784 > > Fable.Core.Emit(\"std::io::BufReader<$0>\")>]]\n#endif\ntype -00:25:06 v #22785 > > std_io_BufReader<'T> = class end" -00:25:06 v #22786 > > ) : () -> () -00:25:06 v #22787 > > } -00:25:06 v #22788 > > $'' : $'std_io_BufReader<`t>' -00:25:06 v #22789 > > ) -00:25:06 v #22790 > > -00:25:06 v #22791 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:06 v #22792 > > │ ### cursor -00:25:06 v #22793 > > -00:25:06 v #22794 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:06 v #22795 > > nominal cursor t = -00:25:06 v #22796 > > `( -00:25:06 v #22797 > > backend_switch `(()) `({}) { -00:25:06 v #22798 > > Fsharp = -00:25:06 v #22799 > > (fun () => -00:25:06 v #22800 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:25:06 v #22801 > > Fable.Core.Emit(\"std::io::Cursor<$0>\")>]]\n#endif\ntype std_io_Cursor<'T> = -00:25:06 v #22802 > > class end" -00:25:06 v #22803 > > ) : () -> () -00:25:06 v #22804 > > } -00:25:06 v #22805 > > $'' : $'std_io_Cursor<`t>' -00:25:06 v #22806 > > ) -00:25:07 v #22807 > > -00:25:07 v #22808 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:07 v #22809 > > │ ### buf_reader_tokio -00:25:07 v #22810 > > -00:25:07 v #22811 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:07 v #22812 > > nominal buf_reader_tokio t = -00:25:07 v #22813 > > `( -00:25:07 v #22814 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:25:07 v #22815 > > Fable.Core.Emit(\"tokio::io::BufReader<$0>\")>]]\n#endif\ntype -00:25:07 v #22816 > > tokio_io_BufReader<'T> = class end" -00:25:07 v #22817 > > $'' : $'tokio_io_BufReader<`t>' -00:25:07 v #22818 > > ) -00:25:07 v #22819 > > -00:25:07 v #22820 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:07 v #22821 > > │ ### new_buf_reader -00:25:07 v #22822 > > -00:25:07 v #22823 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:07 v #22824 > > inl new_buf_reader forall t. (x : t) : buf_reader t = -00:25:07 v #22825 > > !\\(x, $'"std::io::BufReader::new($0)"') -00:25:08 v #22826 > > -00:25:08 v #22827 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:08 v #22828 > > │ ### new_cursor -00:25:08 v #22829 > > -00:25:08 v #22830 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:08 v #22831 > > inl new_cursor forall t. (x : t) : cursor t = -00:25:08 v #22832 > > !\($'"std::io::Cursor::new(!x)"') -00:25:08 v #22833 > > -00:25:08 v #22834 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:08 v #22835 > > │ ### lines -00:25:08 v #22836 > > -00:25:08 v #22837 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:08 v #22838 > > nominal lines t = -00:25:08 v #22839 > > `( -00:25:08 v #22840 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:25:08 v #22841 > > Fable.Core.Emit(\"std::io::Lines<$0>\")>]]\n#endif\ntype std_io_Lines<'T> = -00:25:08 v #22842 > > class end" -00:25:08 v #22843 > > $'' : $'std_io_Lines<`t>' -00:25:08 v #22844 > > ) -00:25:08 v #22845 > > -00:25:08 v #22846 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:08 v #22847 > > │ ### buf_read_lines -00:25:08 v #22848 > > -00:25:08 v #22849 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:08 v #22850 > > inl buf_read_lines forall t. (buf_reader : buf_reader t) : lines (buf_reader t) -00:25:08 v #22851 > > = -00:25:08 v #22852 > > !\($'"std::io::BufRead::lines(!buf_reader)"') -00:25:09 v #22853 > > -00:25:09 v #22854 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:09 v #22855 > > │ ### decode_reader_bytes -00:25:09 v #22856 > > -00:25:09 v #22857 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:09 v #22858 > > nominal decode_reader_bytes t u = -00:25:09 v #22859 > > `( -00:25:09 v #22860 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:25:09 v #22861 > > Fable.Core.Emit(\"encoding_rs_io::DecodeReaderBytes<$0, $1>\")>]]\n#endif\ntype -00:25:09 v #22862 > > encoding_rs_io_DecodeReaderBytes<'T, 'U> = class end" -00:25:09 v #22863 > > $'' : $'encoding_rs_io_DecodeReaderBytes<`t, `u>' -00:25:09 v #22864 > > ) -00:25:09 v #22865 > > -00:25:09 v #22866 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:09 v #22867 > > │ ### decode_reader_bytes_build -00:25:09 v #22868 > > -00:25:09 v #22869 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:09 v #22870 > > inl decode_reader_bytes_build forall t. (x : t) : decode_reader_bytes t (am'.vec -00:25:09 v #22871 > > u8) = -00:25:09 v #22872 > > -00:25:09 v #22873 > > !\($'"encoding_rs_io::DecodeReaderBytesBuilder::new().encoding(Some(encoding_rs: -00:25:09 v #22874 > > :UTF_8)).build(!x)"') -00:25:09 v #22875 > > -00:25:09 v #22876 > > !\($'"encoding_rs_io::DecodeReaderBytesBuilder::new().encoding(Some(encoding_rs: -00:25:09 v #22877 > > :UTF_8)).utf8_passthru(true).build(!x)"') -00:25:09 v #22878 > > !\\(x, -00:25:09 v #22879 > > $'"encoding_rs_io::DecodeReaderBytesBuilder::new().utf8_passthru(true).build($0) -00:25:09 v #22880 > > "') -00:25:09 v #22881 > > // !\($'"encoding_rs_io::DecodeReaderBytes::new(!x)"') -00:25:10 v #22882 > > -00:25:10 v #22883 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:10 v #22884 > > │ ### buf_reader_read -00:25:10 v #22885 > > -00:25:10 v #22886 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:10 v #22887 > > inl buf_reader_read forall el dim. (slice : am'.slice' el dim) (buf_reader : -00:25:10 v #22888 > > buf_reader el) : resultm.result' unativeint io_error = -00:25:10 v #22889 > > (!\($'"true; let mut !slice = !slice"') : bool) |> ignore -00:25:10 v #22890 > > !\($'"std::io::Read::read(&mut !buf_reader, &mut !slice)"') -00:25:10 v #22891 > > -00:25:10 v #22892 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:10 v #22893 > > │ ### io_read_by_ref -00:25:10 v #22894 > > -00:25:10 v #22895 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:10 v #22896 > > inl io_read_by_ref forall t. (lines : lines t) : lines t = -00:25:10 v #22897 > > !\\(lines, $'"std::io::Read::by_ref($0)"') -00:25:11 v #22898 > 00:00:29 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 22673 } -00:25:11 v #22899 > 00:00:29 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/lib/spiral/stream.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/lib/spiral/stream.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:25:12 v #22900 > 00:00:30 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/lib/spiral/stream.dib.ipynb to html -00:25:12 v #22901 > 00:00:30 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. -00:25:12 v #22902 > 00:00:30 v #7 ! validate(nb) -00:25:13 v #22903 > 00:00:31 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 -00:25:13 v #22904 > 00:00:31 v #9 ! return _pygments_highlight( -00:25:13 v #22905 > 00:00:31 v #10 ! [NbConvertApp] Writing 372366 bytes to c:\home\git\polyglot\lib\spiral\stream.dib.html -00:25:13 v #22906 > 00:00:31 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 854 } -00:25:13 v #22907 > 00:00:31 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 854 } -00:25:13 v #22908 > 00:00:31 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/stream.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/stream.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:25:14 v #22909 > 00:00:32 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } -00:25:14 v #22910 > 00:00:32 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } -00:25:14 v #22911 > 00:00:32 d #16 spiral.run / dib / { exit_code = 0; result_length = 23586 } -00:25:14 d #22912 runtime.execute_with_options_async / { exit_code = 0; output_length = 27463 } -00:25:14 d #31 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path stream.dib --retries 3 -00:25:14 d #22913 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path threading.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path threading.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } -00:25:14 v #22914 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "threading.dib", "--retries", "3"])) } -00:25:14 v #22915 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/lib/spiral/threading.dib", "--output-path", "c:/home/git/polyglot/lib/spiral/threading.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/lib/spiral/threading.dib" --output-path "c:/home/git/polyglot/lib/spiral/threading.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } -00:25:15 v #22916 > > -00:25:15 v #22917 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:15 v #22918 > > │ # threading -00:25:19 v #22919 > > -00:25:19 v #22920 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:19 v #22921 > > open rust -00:25:19 v #22922 > > open rust_operators -00:25:20 v #22923 > > -00:25:20 v #22924 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:20 v #22925 > > //// test -00:25:20 v #22926 > > -00:25:20 v #22927 > > open testing -00:25:20 v #22928 > > -00:25:20 v #22929 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:20 v #22930 > > │ ## rust -00:25:20 v #22931 > > -00:25:20 v #22932 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:20 v #22933 > > │ ### sleep -00:25:20 v #22934 > > -00:25:20 v #22935 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:20 v #22936 > > inl sleep (duration : date_time.duration) : () = -00:25:20 v #22937 > > inl duration = join duration -00:25:20 v #22938 > > !\($'"std::thread::sleep(!duration)"') -00:25:21 v #22939 > > -00:25:21 v #22940 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:21 v #22941 > > │ ### join_handle -00:25:21 v #22942 > > -00:25:21 v #22943 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:21 v #22944 > > nominal join_handle t = -00:25:21 v #22945 > > `( -00:25:21 v #22946 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:25:21 v #22947 > > Fable.Core.Emit(\"std::thread::JoinHandle<$0>\")>]]\n#endif\ntype -00:25:21 v #22948 > > std_thread_JoinHandle<'T> = class end" -00:25:21 v #22949 > > $'' : $'std_thread_JoinHandle<`t>' -00:25:21 v #22950 > > ) -00:25:21 v #22951 > > -00:25:21 v #22952 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:21 v #22953 > > │ ### spawn -00:25:21 v #22954 > > -00:25:21 v #22955 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:21 v #22956 > > inl spawn forall t. depth flag (x : () -> t) : join_handle t = -00:25:21 v #22957 > > if flag = 1u8 -00:25:21 v #22958 > > then (!\($'"true; let __spawn = std::thread::spawn(move || { //"') : bool) -00:25:21 v #22959 > > |> ignore -00:25:21 v #22960 > > else (!\($'"true; let __spawn = std::thread::spawn(|| { //"') : bool) |> -00:25:21 v #22961 > > ignore -00:25:21 v #22962 > > -00:25:21 v #22963 > > let x' = x () -00:25:21 v #22964 > > inl x' = join x' -00:25:21 v #22965 > > -00:25:21 v #22966 > > x' |> rust.fix_closure depth -00:25:21 v #22967 > > -00:25:21 v #22968 > > !\($'"__spawn"') -00:25:21 v #22969 > > -00:25:21 v #22970 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:21 v #22971 > > │ ### join' -00:25:21 v #22972 > > -00:25:21 v #22973 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:21 v #22974 > > inl join' forall t. -00:25:21 v #22975 > > (x : join_handle t) -00:25:21 v #22976 > > : resultm.result' -00:25:21 v #22977 > > t -00:25:21 v #22978 > > ( -00:25:21 v #22979 > > rust.box ( -00:25:21 v #22980 > > rust.lifetime_ref -00:25:21 v #22981 > > rust.dyn' -00:25:21 v #22982 > > ( -00:25:21 v #22983 > > rust.lifetime_join -00:25:21 v #22984 > > rust.any -00:25:21 v #22985 > > ( -00:25:21 v #22986 > > rust.lifetime_ref -00:25:21 v #22987 > > rust.send -00:25:21 v #22988 > > rust.static_lifetime -00:25:21 v #22989 > > ) -00:25:21 v #22990 > > ) -00:25:21 v #22991 > > ) -00:25:21 v #22992 > > ) = -00:25:21 v #22993 > > !\\(x, $'"std::thread::JoinHandle::join($0)"') -00:25:22 v #22994 > > -00:25:22 v #22995 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:22 v #22996 > > │ ### arc -00:25:22 v #22997 > > -00:25:22 v #22998 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:22 v #22999 > > nominal arc t = -00:25:22 v #23000 > > `( -00:25:22 v #23001 > > backend_switch `(()) `({}) { -00:25:22 v #23002 > > Fsharp = (fun () => global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:25:22 v #23003 > > Fable.Core.Emit(\"std::sync::Arc<$0>\")>]]\n#endif\ntype std_sync_Arc<'T> = -00:25:22 v #23004 > > class end") : () -> () -00:25:22 v #23005 > > } -00:25:22 v #23006 > > $'' : $'std_sync_Arc<`t>' -00:25:22 v #23007 > > ) -00:25:22 v #23008 > > -00:25:22 v #23009 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:22 v #23010 > > │ ### new_arc -00:25:22 v #23011 > > -00:25:22 v #23012 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:22 v #23013 > > inl new_arc forall t. (x : t) : arc t = -00:25:22 v #23014 > > !\($'"std::sync::Arc::new(!x)"') -00:25:23 v #23015 > > -00:25:23 v #23016 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:23 v #23017 > > │ ### mutex -00:25:23 v #23018 > > -00:25:23 v #23019 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:23 v #23020 > > nominal mutex t = -00:25:23 v #23021 > > `( -00:25:23 v #23022 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:25:23 v #23023 > > Fable.Core.Emit(\"std::sync::Mutex<$0>\")>]]\n#endif\ntype std_sync_Mutex<'T> = -00:25:23 v #23024 > > class end" -00:25:23 v #23025 > > $'' : $'std_sync_Mutex<`t>' -00:25:23 v #23026 > > ) -00:25:23 v #23027 > > -00:25:23 v #23028 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:23 v #23029 > > │ ### new_mutex -00:25:23 v #23030 > > -00:25:23 v #23031 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:23 v #23032 > > inl new_mutex forall t. (x : t) : mutex t = -00:25:23 v #23033 > > !\($'"std::sync::Mutex::new(!x)"') -00:25:24 v #23034 > > -00:25:24 v #23035 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:24 v #23036 > > │ ### new_mutex_mut -00:25:24 v #23037 > > -00:25:24 v #23038 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:24 v #23039 > > inl new_mutex_mut forall t. (x : rust.ref (rust.mut' t)) : mutex t = -00:25:24 v #23040 > > !\($'"std::sync::Mutex::new(!x)"') -00:25:24 v #23041 > > -00:25:24 v #23042 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:24 v #23043 > > │ ### rw_lock -00:25:24 v #23044 > > -00:25:24 v #23045 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:24 v #23046 > > nominal rw_lock t = -00:25:24 v #23047 > > `( -00:25:24 v #23048 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:25:24 v #23049 > > Fable.Core.Emit(\"std::sync::RwLock<$0>\")>]]\n#endif\ntype std_sync_RwLock<'T> -00:25:24 v #23050 > > = class end" -00:25:24 v #23051 > > $'' : $'std_sync_RwLock<`t>' -00:25:24 v #23052 > > ) -00:25:24 v #23053 > > -00:25:24 v #23054 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:24 v #23055 > > │ ### new_rw_lock -00:25:24 v #23056 > > -00:25:24 v #23057 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:24 v #23058 > > inl new_rw_lock forall t. (x : t) : rw_lock t = -00:25:24 v #23059 > > !\\(x, $'"std::sync::RwLock::new($0)"') -00:25:25 v #23060 > > -00:25:25 v #23061 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:25 v #23062 > > │ ### new_arc_mutex -00:25:25 v #23063 > > -00:25:25 v #23064 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:25 v #23065 > > inl new_arc_mutex forall t. (x : t) : arc (mutex t) = -00:25:25 v #23066 > > x |> new_mutex |> new_arc -00:25:25 v #23067 > > -00:25:25 v #23068 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:25 v #23069 > > │ ### new_arc_rw_lock -00:25:25 v #23070 > > -00:25:25 v #23071 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:25 v #23072 > > inl new_arc_rw_lock forall t. (x : t) : arc (rw_lock t) = -00:25:25 v #23073 > > x |> new_rw_lock |> new_arc -00:25:26 v #23074 > > -00:25:26 v #23075 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:26 v #23076 > > │ ### arc_clone -00:25:26 v #23077 > > -00:25:26 v #23078 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:26 v #23079 > > inl arc_clone forall t. (x : arc t) : arc t = -00:25:26 v #23080 > > inl x = join x -00:25:26 v #23081 > > !\($'"std::sync::Arc::clone(&!x)"') -00:25:26 v #23082 > > -00:25:26 v #23083 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:26 v #23084 > > │ ### arc_ptr_eq -00:25:26 v #23085 > > -00:25:26 v #23086 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:26 v #23087 > > inl arc_ptr_eq forall t. (a : rust.ref (arc t)) (b : rust.ref (arc t)) : bool = -00:25:26 v #23088 > > !\\((a, b), $'"std::sync::Arc::ptr_eq($0, $1)"') -00:25:27 v #23089 > > -00:25:27 v #23090 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:27 v #23091 > > │ ### arc_try_unwrap -00:25:27 v #23092 > > -00:25:27 v #23093 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:27 v #23094 > > inl arc_try_unwrap forall t. (x : arc t) : resultm.result' t (arc t) = -00:25:27 v #23095 > > !\\(x, $'"std::sync::Arc::try_unwrap($0)"') -00:25:27 v #23096 > > -00:25:27 v #23097 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:27 v #23098 > > │ ### arc_into_raw -00:25:27 v #23099 > > -00:25:27 v #23100 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:27 v #23101 > > inl arc_into_raw forall t. (x : arc t) : rust.ptr t = -00:25:27 v #23102 > > !\\(x, $'"std::sync::Arc::into_raw($0)"') -00:25:27 v #23103 > > -00:25:27 v #23104 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:27 v #23105 > > │ ### arc_from_raw -00:25:27 v #23106 > > -00:25:27 v #23107 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:27 v #23108 > > inl arc_from_raw forall t. (x : rust.ptr t) : arc t = -00:25:27 v #23109 > > !\\(x, $'"std::sync::Arc::from_raw($0)"') -00:25:28 v #23110 > > -00:25:28 v #23111 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:28 v #23112 > > │ ### partial_eq_wrapper_arc_eq -00:25:28 v #23113 > > -00:25:28 v #23114 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:28 v #23115 > > inl partial_eq_wrapper_arc_eq forall t. -00:25:28 v #23116 > > (self : rust.ref (rust.partial_eq_wrapper (arc t))) -00:25:28 v #23117 > > (other : rust.ref (rust.partial_eq_wrapper (arc t))) -00:25:28 v #23118 > > = -00:25:28 v #23119 > > self -00:25:28 v #23120 > > |> rust.unwrap_0_ref -00:25:28 v #23121 > > |> arc_ptr_eq ( -00:25:28 v #23122 > > other -00:25:28 v #23123 > > |> rust.unwrap_0_ref -00:25:28 v #23124 > > ) -00:25:28 v #23125 > > -00:25:28 v #23126 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:28 v #23127 > > │ ### new_partial_eq_wrapper_arc -00:25:28 v #23128 > > -00:25:28 v #23129 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:28 v #23130 > > inl new_partial_eq_wrapper_arc forall t. (x : arc t) : rust.partial_eq_wrapper -00:25:28 v #23131 > > (arc t) = -00:25:28 v #23132 > > x |> rust.new_partial_eq_wrapper partial_eq_wrapper_arc_eq -00:25:29 v #23133 > > -00:25:29 v #23134 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:29 v #23135 > > │ ### mutex_guard -00:25:29 v #23136 > > -00:25:29 v #23137 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:29 v #23138 > > nominal mutex_guard t = -00:25:29 v #23139 > > `( -00:25:29 v #23140 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:25:29 v #23141 > > Fable.Core.Emit(\"std::sync::MutexGuard<$0>\")>]]\n#endif\ntype -00:25:29 v #23142 > > std_sync_MutexGuard<'T> = class end" -00:25:29 v #23143 > > $'' : $'std_sync_MutexGuard<`t>' -00:25:29 v #23144 > > ) -00:25:29 v #23145 > > -00:25:29 v #23146 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:29 v #23147 > > │ ### rw_lock_read_guard -00:25:29 v #23148 > > -00:25:29 v #23149 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:29 v #23150 > > nominal rw_lock_read_guard t = -00:25:29 v #23151 > > `( -00:25:29 v #23152 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:25:29 v #23153 > > Fable.Core.Emit(\"std::sync::RwLockReadGuard<$0>\")>]]\n#endif\ntype -00:25:29 v #23154 > > std_sync_RwLockReadGuard<'T> = class end" -00:25:29 v #23155 > > $'' : $'std_sync_RwLockReadGuard<`t>' -00:25:29 v #23156 > > ) -00:25:30 v #23157 > > -00:25:30 v #23158 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:30 v #23159 > > │ ### rw_lock_write_guard -00:25:30 v #23160 > > -00:25:30 v #23161 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:30 v #23162 > > nominal rw_lock_write_guard t = -00:25:30 v #23163 > > `( -00:25:30 v #23164 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:25:30 v #23165 > > Fable.Core.Emit(\"std::sync::RwLockWriteGuard<$0>\")>]]\n#endif\ntype -00:25:30 v #23166 > > std_sync_RwLockWriteGuard<'T> = class end" -00:25:30 v #23167 > > $'' : $'std_sync_RwLockWriteGuard<`t>' -00:25:30 v #23168 > > ) -00:25:30 v #23169 > > -00:25:30 v #23170 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:30 v #23171 > > │ ### poison_error -00:25:30 v #23172 > > -00:25:30 v #23173 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:30 v #23174 > > nominal poison_error t = -00:25:30 v #23175 > > `( -00:25:30 v #23176 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:25:30 v #23177 > > Fable.Core.Emit(\"std::sync::PoisonError<$0>\")>]]\n#endif\ntype -00:25:30 v #23178 > > std_sync_PoisonError<'T> = class end" -00:25:30 v #23179 > > $'' : $'std_sync_PoisonError<`t>' -00:25:30 v #23180 > > ) -00:25:30 v #23181 > > -00:25:30 v #23182 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:30 v #23183 > > │ ### try_lock_error -00:25:30 v #23184 > > -00:25:30 v #23185 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:30 v #23186 > > nominal try_lock_error t = -00:25:30 v #23187 > > `( -00:25:30 v #23188 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:25:30 v #23189 > > Fable.Core.Emit(\"std::sync::TryLockError<$0>\")>]]\n#endif\ntype -00:25:30 v #23190 > > std_sync_TryLockError<'T> = class end" -00:25:30 v #23191 > > $'' : $'std_sync_TryLockError<`t>' -00:25:30 v #23192 > > ) -00:25:31 v #23193 > > -00:25:31 v #23194 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:31 v #23195 > > │ ### arc_mutex_lock -00:25:31 v #23196 > > -00:25:31 v #23197 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:31 v #23198 > > inl arc_mutex_lock forall t. (x : arc (mutex t)) : resultm.result' (mutex_guard -00:25:31 v #23199 > > t) (poison_error (mutex_guard t)) = -00:25:31 v #23200 > > inl x = x |> rust.emit -00:25:31 v #23201 > > !\($'"!x.lock()"') -00:25:31 v #23202 > > -00:25:31 v #23203 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:31 v #23204 > > │ ### arc_rw_lock_read -00:25:31 v #23205 > > -00:25:31 v #23206 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:31 v #23207 > > inl arc_rw_lock_read forall t. (x : arc (rw_lock t)) : resultm.result' -00:25:31 v #23208 > > (rw_lock_read_guard t) (poison_error (rw_lock_read_guard t)) = -00:25:31 v #23209 > > inl x = x |> rust.emit -00:25:31 v #23210 > > !\($'"!x.read()"') -00:25:32 v #23211 > > -00:25:32 v #23212 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:32 v #23213 > > │ ### arc_rw_lock_write -00:25:32 v #23214 > > -00:25:32 v #23215 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:32 v #23216 > > inl arc_rw_lock_write forall t. (x : arc (rw_lock t)) : resultm.result' -00:25:32 v #23217 > > (rw_lock_write_guard t) (poison_error (rw_lock_write_guard t)) = -00:25:32 v #23218 > > inl x = x |> rust.emit -00:25:32 v #23219 > > !\($'"!x.write()"') -00:25:32 v #23220 > > -00:25:32 v #23221 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:32 v #23222 > > │ ### arc_rw_lock_try_read -00:25:32 v #23223 > > -00:25:32 v #23224 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:32 v #23225 > > inl arc_rw_lock_try_read forall t. (x : arc (rw_lock t)) : resultm.result' -00:25:32 v #23226 > > (rw_lock_read_guard t) (try_lock_error (rw_lock_read_guard t)) = -00:25:32 v #23227 > > inl x = x |> rust.emit -00:25:32 v #23228 > > !\($'"!x.try_read()"') -00:25:33 v #23229 > > -00:25:33 v #23230 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:33 v #23231 > > │ ### arc_rw_lock_try_write -00:25:33 v #23232 > > -00:25:33 v #23233 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:33 v #23234 > > inl arc_rw_lock_try_write forall t. (x : arc (rw_lock t)) : resultm.result' -00:25:33 v #23235 > > (rw_lock_write_guard t) (try_lock_error (rw_lock_write_guard t)) = -00:25:33 v #23236 > > inl x = x |> rust.emit -00:25:33 v #23237 > > !\($'"!x.try_write()"') -00:25:33 v #23238 > > -00:25:33 v #23239 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:33 v #23240 > > │ ### mutex_guard_ref -00:25:33 v #23241 > > -00:25:33 v #23242 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:33 v #23243 > > inl mutex_guard_ref forall t. (x : mutex_guard t) : rust.ref t = -00:25:33 v #23244 > > !\\(x, $'"&$0"') -00:25:33 v #23245 > > -00:25:33 v #23246 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:33 v #23247 > > │ ### rw_lock_read_guard_ref -00:25:33 v #23248 > > -00:25:33 v #23249 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:33 v #23250 > > inl rw_lock_read_guard_ref forall t. (x : rw_lock_read_guard t) : rust.ref t = -00:25:33 v #23251 > > !\\(x, $'"&$0"') -00:25:34 v #23252 > > -00:25:34 v #23253 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:34 v #23254 > > │ ### rw_lock_write_guard_ref -00:25:34 v #23255 > > -00:25:34 v #23256 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:34 v #23257 > > inl rw_lock_write_guard_ref forall t. (x : rw_lock_write_guard t) : rust.ref t = -00:25:34 v #23258 > > !\\(x, $'"&$0"') -00:25:34 v #23259 > > -00:25:34 v #23260 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:34 v #23261 > > │ ### mutex_guard_ref_mut -00:25:34 v #23262 > > -00:25:34 v #23263 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:34 v #23264 > > inl mutex_guard_ref_mut forall t. (x : mutex_guard t) : rust.ref (rust.mut' t) = -00:25:34 v #23265 > > inl x = join x -00:25:34 v #23266 > > (!\($'"true; let mut !x = !x"') : bool) |> ignore -00:25:34 v #23267 > > !\\(x, $'"&mut $0"') -00:25:35 v #23268 > > -00:25:35 v #23269 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:35 v #23270 > > │ ### mutex_guard_ref_mut' -00:25:35 v #23271 > > -00:25:35 v #23272 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:35 v #23273 > > inl mutex_guard_ref_mut' forall t. (x : mutex_guard (rust.ref (rust.mut' t))) : -00:25:35 v #23274 > > rust.ref (rust.mut' t) = -00:25:35 v #23275 > > inl x = x |> rust.emit -00:25:35 v #23276 > > (!\($'"true; let mut !x = !x"') : bool) |> ignore -00:25:35 v #23277 > > !\\(x, $'"&mut $0"') -00:25:35 v #23278 > > -00:25:35 v #23279 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:35 v #23280 > > │ ### mutex_guard_as_mut -00:25:35 v #23281 > > -00:25:35 v #23282 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:35 v #23283 > > inl mutex_guard_as_mut forall (t : * -> *) u. (x : mutex_guard (t u)) : t -00:25:35 v #23284 > > (rust.ref (rust.mut' u)) = -00:25:35 v #23285 > > (!\($'"true; let mut !x = !x"') : bool) |> ignore -00:25:35 v #23286 > > !\\(x, $'"$0.as_mut()"') -00:25:36 v #23287 > > -00:25:36 v #23288 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:36 v #23289 > > │ ### channel_receiver -00:25:36 v #23290 > > -00:25:36 v #23291 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:36 v #23292 > > nominal channel_receiver t = -00:25:36 v #23293 > > `( -00:25:36 v #23294 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:25:36 v #23295 > > Fable.Core.Emit(\"std::sync::mpsc::Receiver<$0>\")>]]\n#endif\ntype -00:25:36 v #23296 > > std_sync_mpsc_Receiver<'T> = class end" -00:25:36 v #23297 > > $'' : $'std_sync_mpsc_Receiver<`t>' -00:25:36 v #23298 > > ) -00:25:36 v #23299 > > -00:25:36 v #23300 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:36 v #23301 > > │ ### channel_sender -00:25:36 v #23302 > > -00:25:36 v #23303 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:36 v #23304 > > nominal channel_sender t = -00:25:36 v #23305 > > `( -00:25:36 v #23306 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:25:36 v #23307 > > Fable.Core.Emit(\"std::sync::mpsc::Sender<$0>\")>]]\n#endif\ntype -00:25:36 v #23308 > > std_sync_mpsc_Sender<'T> = class end" -00:25:36 v #23309 > > $'' : $'std_sync_mpsc_Sender<`t>' -00:25:36 v #23310 > > ) -00:25:36 v #23311 > > -00:25:36 v #23312 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:36 v #23313 > > │ ### new_channel -00:25:36 v #23314 > > -00:25:36 v #23315 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:36 v #23316 > > inl new_channel () : channel_sender sm'.std_string * arc (channel_receiver -00:25:36 v #23317 > > sm'.std_string) = -00:25:36 v #23318 > > !\($'"{ let (sender, receiver) = std::sync::mpsc::channel(); (sender, -00:25:36 v #23319 > > std::sync::Arc::new(receiver)) }"') -00:25:37 v #23320 > > -00:25:37 v #23321 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:37 v #23322 > > │ ### send_error -00:25:37 v #23323 > > -00:25:37 v #23324 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:37 v #23325 > > nominal send_error t = -00:25:37 v #23326 > > `( -00:25:37 v #23327 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:25:37 v #23328 > > Fable.Core.Emit(\"std::sync::mpsc::SendError<$0>\")>]]\n#endif\ntype -00:25:37 v #23329 > > std_sync_mpsc_SendError<'T> = class end" -00:25:37 v #23330 > > $'' : $'std_sync_mpsc_SendError<`t>' -00:25:37 v #23331 > > ) -00:25:37 v #23332 > > -00:25:37 v #23333 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:37 v #23334 > > │ ### channel_send -00:25:37 v #23335 > > -00:25:37 v #23336 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:37 v #23337 > > inl channel_send forall t. (line : t) (sender : rust.ref (channel_sender t)) : -00:25:37 v #23338 > > resultm.result' () (send_error sm'.std_string) = -00:25:37 v #23339 > > !\\((sender, line), $'"$0.send($1)"') -00:25:38 v #23340 > > -00:25:38 v #23341 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:38 v #23342 > > │ ## fsharp -00:25:38 v #23343 > > -00:25:38 v #23344 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:38 v #23345 > > │ ### sleep' -00:25:38 v #23346 > > -00:25:38 v #23347 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:38 v #23348 > > inl sleep' (n : i32) : () = -00:25:38 v #23349 > > run_target function -00:25:38 v #23350 > > | Fsharp (Native) -00:25:38 v #23351 > > | Rust _ -00:25:38 v #23352 > > | Python _ => fun () => $'System.Threading.Thread.Sleep' n -00:25:38 v #23353 > > | _ => fun () => () -00:25:38 v #23354 > > -00:25:38 v #23355 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:38 v #23356 > > │ ### thread -00:25:38 v #23357 > > -00:25:38 v #23358 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:38 v #23359 > > nominal thread = $'System.Threading.Thread' -00:25:38 v #23360 > > -00:25:38 v #23361 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:38 v #23362 > > │ ### cancellation_token -00:25:38 v #23363 > > -00:25:38 v #23364 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:38 v #23365 > > nominal cancellation_token = $'System.Threading.CancellationToken' -00:25:39 v #23366 > > -00:25:39 v #23367 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:39 v #23368 > > │ ### cancellation_token_source -00:25:39 v #23369 > > -00:25:39 v #23370 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:39 v #23371 > > nominal cancellation_token_source = $'System.Threading.CancellationTokenSource' -00:25:39 v #23372 > > -00:25:39 v #23373 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:39 v #23374 > > │ ### cancellation_token_registration -00:25:39 v #23375 > > -00:25:39 v #23376 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:39 v #23377 > > nominal cancellation_token_registration = -00:25:39 v #23378 > > $'System.Threading.CancellationTokenRegistration' -00:25:40 v #23379 > > -00:25:40 v #23380 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:40 v #23381 > > │ ### cancellation_source_token -00:25:40 v #23382 > > -00:25:40 v #23383 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:40 v #23384 > > inl cancellation_source_token (x : cancellation_token_source) : -00:25:40 v #23385 > > cancellation_token = -00:25:40 v #23386 > > $'!x.Token' -00:25:40 v #23387 > > -00:25:40 v #23388 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:40 v #23389 > > │ ### cancellation_source_cancel -00:25:40 v #23390 > > -00:25:40 v #23391 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:40 v #23392 > > inl cancellation_source_cancel (x : cancellation_token_source) : () = -00:25:40 v #23393 > > run_target function -00:25:40 v #23394 > > | Fsharp (Native) => fun () => -00:25:40 v #23395 > > $'!x.Cancel' () -00:25:40 v #23396 > > | _ => fun () => null () -00:25:41 v #23397 > > -00:25:41 v #23398 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:41 v #23399 > > │ ### create_linked_token_source -00:25:41 v #23400 > > -00:25:41 v #23401 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:41 v #23402 > > inl create_linked_token_source (x : array_base cancellation_token) : -00:25:41 v #23403 > > cancellation_token_source = -00:25:41 v #23404 > > x |> $'System.Threading.CancellationTokenSource.CreateLinkedTokenSource' -00:25:41 v #23405 > > -00:25:41 v #23406 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:41 v #23407 > > │ ### concurrent_stack -00:25:41 v #23408 > > -00:25:41 v #23409 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:41 v #23410 > > nominal concurrent_stack t = -00:25:41 v #23411 > > $'System.Collections.Concurrent.ConcurrentStack<`t>' -00:25:41 v #23412 > > -00:25:41 v #23413 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:41 v #23414 > > │ ### concurrent_stack_push -00:25:41 v #23415 > > -00:25:41 v #23416 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:41 v #23417 > > inl concurrent_stack_push forall t. (item : t) (stack : concurrent_stack t) : () -00:25:41 v #23418 > > = -00:25:41 v #23419 > > run_target function -00:25:41 v #23420 > > | Fsharp (Native) => fun () => $'!stack.Push' item -00:25:41 v #23421 > > | _ => fun () => () -00:25:42 v #23422 > > -00:25:42 v #23423 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:42 v #23424 > > │ ### token_none -00:25:42 v #23425 > > -00:25:42 v #23426 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:42 v #23427 > > inl token_none () : cancellation_token = -00:25:42 v #23428 > > $'`cancellation_token.None' -00:25:42 v #23429 > > -00:25:42 v #23430 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:42 v #23431 > > │ ### new_concurrent_stack -00:25:42 v #23432 > > -00:25:42 v #23433 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:42 v #23434 > > inl new_concurrent_stack forall t. () : concurrent_stack t = -00:25:42 v #23435 > > $'System.Collections.Concurrent.ConcurrentStack<`t>' () -00:25:43 v #23436 > > -00:25:43 v #23437 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:43 v #23438 > > │ ### token_register -00:25:43 v #23439 > > -00:25:43 v #23440 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:43 v #23441 > > inl token_register (fn : () -> ()) (ct : cancellation_token) : -00:25:43 v #23442 > > cancellation_token_registration = -00:25:43 v #23443 > > fn |> $'!ct.Register' -00:25:43 v #23444 > > -00:25:43 v #23445 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:43 v #23446 > > │ ### new_cancellation_token_source -00:25:43 v #23447 > > -00:25:43 v #23448 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:43 v #23449 > > inl new_cancellation_token_source () : cancellation_token_source = -00:25:43 v #23450 > > $'new `cancellation_token_source ()' -00:25:44 v #23451 > > -00:25:44 v #23452 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:44 v #23453 > > inl token_cancellation_requested (ct : cancellation_token) : bool = -00:25:44 v #23454 > > $'!ct.IsCancellationRequested' -00:25:44 v #23455 > > -00:25:44 v #23456 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:44 v #23457 > > │ ### new_disposable_token -00:25:44 v #23458 > > -00:25:44 v #23459 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:44 v #23460 > > inl new_disposable_token (merge_token : optionm'.option' cancellation_token) = -00:25:44 v #23461 > > run_target function -00:25:44 v #23462 > > | Fsharp (Native) => fun () => -00:25:44 v #23463 > > inl cts = new_cancellation_token_source () -00:25:44 v #23464 > > inl cts = -00:25:44 v #23465 > > match merge_token |> optionm'.unbox with -00:25:44 v #23466 > > | None => cts -00:25:44 v #23467 > > | Some merge_token => -00:25:44 v #23468 > > create_linked_token_source ;[[ cts |> -00:25:44 v #23469 > > cancellation_source_token; merge_token ]] -00:25:44 v #23470 > > inl disposable : _ () = new_disposable fun () => -00:25:44 v #23471 > > cts |> cancellation_source_cancel -00:25:44 v #23472 > > cts |> cancellation_source_token, disposable -00:25:44 v #23473 > > | _ => fun () => null () -00:25:44 v #23474 > > -00:25:44 v #23475 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:44 v #23476 > > //// test -00:25:44 v #23477 > > -00:25:44 v #23478 > > inl run fn = -00:25:44 v #23479 > > inl token, disposable = new_disposable_token (None |> optionm'.box) -00:25:44 v #23480 > > disposable |> use |> ignore -00:25:44 v #23481 > > fn token -00:25:44 v #23482 > > fun () => -00:25:44 v #23483 > > fn token -00:25:44 v #23484 > > |> async.new_async -00:25:44 v #23485 > > |> async.start -00:25:44 v #23486 > > -00:25:44 v #23487 > > fun () => -00:25:44 v #23488 > > inl counter = mut 0i32 -00:25:44 v #23489 > > -00:25:44 v #23490 > > inl fn (token : cancellation_token) = -00:25:44 v #23491 > > counter <- *counter + (if token |> token_cancellation_requested then 10 -00:25:44 v #23492 > > else 1) -00:25:44 v #23493 > > -00:25:44 v #23494 > > join run fn -00:25:44 v #23495 > > async.sleep 10 |> async.do -00:25:44 v #23496 > > return *counter -00:25:44 v #23497 > > |> async.new_async_unit -00:25:44 v #23498 > > |> async.run_synchronously -00:25:44 v #23499 > > |> _assert_eq 11i32 -00:25:46 v #23500 > > -00:25:46 v #23501 > > ── [ 1.91s - stdout ] ────────────────────────────────────────────────────────── -00:25:46 v #23502 > > │ __assert_eq / actual: 11 / expected: 11 -00:25:46 v #23503 > > │ -00:25:46 v #23504 > > -00:25:46 v #23505 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:46 v #23506 > > │ ## main -00:25:46 v #23507 > > -00:25:46 v #23508 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:46 v #23509 > > inl main () = -00:25:46 v #23510 > > $'let new_disposable_token x = !new_disposable_token x' : () -00:25:47 v #23511 > 00:00:33 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 23531 } -00:25:47 v #23512 > 00:00:33 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/lib/spiral/threading.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/lib/spiral/threading.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:25:48 v #23513 > 00:00:34 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/lib/spiral/threading.dib.ipynb to html -00:25:48 v #23514 > 00:00:34 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. -00:25:48 v #23515 > 00:00:34 v #7 ! validate(nb) -00:25:49 v #23516 > 00:00:34 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 -00:25:49 v #23517 > 00:00:34 v #9 ! return _pygments_highlight( -00:25:49 v #23518 > 00:00:35 v #10 ! [NbConvertApp] Writing 383285 bytes to c:\home\git\polyglot\lib\spiral\threading.dib.html -00:25:50 v #23519 > 00:00:35 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 860 } -00:25:50 v #23520 > 00:00:35 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 860 } -00:25:50 v #23521 > 00:00:35 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/threading.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/threading.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:25:50 v #23522 > 00:00:36 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } -00:25:50 v #23523 > 00:00:36 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } -00:25:50 v #23524 > 00:00:36 d #16 spiral.run / dib / { exit_code = 0; result_length = 24450 } -00:25:50 d #23525 runtime.execute_with_options_async / { exit_code = 0; output_length = 28202 } -00:25:50 d #32 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path threading.dib --retries 3 -00:25:50 d #23526 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path benchmark.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path benchmark.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } -00:25:50 v #23527 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "benchmark.dib", "--retries", "3"])) } -00:25:50 v #23528 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/lib/spiral/benchmark.dib", "--output-path", "c:/home/git/polyglot/lib/spiral/benchmark.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/lib/spiral/benchmark.dib" --output-path "c:/home/git/polyglot/lib/spiral/benchmark.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } -00:25:52 v #23529 > > -00:25:52 v #23530 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:52 v #23531 > > │ ## benchmark -00:25:55 v #23532 > > -00:25:55 v #23533 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:55 v #23534 > > //// test -00:25:55 v #23535 > > -00:25:55 v #23536 > > open testing -00:25:56 v #23537 > > -00:25:56 v #23538 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:56 v #23539 > > │ ## fsharp -00:25:56 v #23540 > > -00:25:56 v #23541 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:56 v #23542 > > │ ### test_case_result -00:25:56 v #23543 > > -00:25:56 v #23544 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:56 v #23545 > > type test_case_result = -00:25:56 v #23546 > > { -00:25:56 v #23547 > > input : string -00:25:56 v #23548 > > expected : string -00:25:56 v #23549 > > result : string -00:25:56 v #23550 > > time_list : array_base i64 -00:25:56 v #23551 > > } -00:25:56 v #23552 > > -00:25:56 v #23553 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:56 v #23554 > > │ ### run' -00:25:56 v #23555 > > -00:25:56 v #23556 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:56 v #23557 > > inl run' forall t. count (fn : () -> t) = -00:25:56 v #23558 > > runtime.gc_collect () -00:25:56 v #23559 > > inl stopwatch = date_time.stopwatch () -00:25:56 v #23560 > > stopwatch |> date_time.stopwatch_start -00:25:56 v #23561 > > inl time1 = stopwatch |> date_time.stopwatch_elapsed_milliseconds -00:25:56 v #23562 > > inl result : t = -00:25:56 v #23563 > > am'.init_series 0 count 1i32 -00:25:56 v #23564 > > |> fun x => a x : _ int _ -00:25:56 v #23565 > > |> am'.parallel_map fun _n => fn () -00:25:56 v #23566 > > |> am'.last -00:25:56 v #23567 > > inl time2 = (stopwatch |> date_time.stopwatch_elapsed_milliseconds) - time1 -00:25:56 v #23568 > > result, time2 -00:25:57 v #23569 > > -00:25:57 v #23570 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:57 v #23571 > > │ ### run -00:25:57 v #23572 > > -00:25:57 v #23573 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:57 v #23574 > > inl run forall input expected. -00:25:57 v #23575 > > count -00:25:57 v #23576 > > (solutions : list (string * (input -> expected))) -00:25:57 v #23577 > > ((input, expected) : (input * expected)) -00:25:57 v #23578 > > : test_case_result -00:25:57 v #23579 > > = -00:25:57 v #23580 > > inl input_str = input |> sm'.format_debug -00:25:57 v #23581 > > -00:25:57 v #23582 > > console.write_line "" -00:25:57 v #23583 > > trace Verbose -00:25:57 v #23584 > > fun () => "benchmark.run" -00:25:57 v #23585 > > fun () => { input_str = input_str |> sm'.ellipsis_end 40 } -00:25:57 v #23586 > > -00:25:57 v #23587 > > inl results_with_time : array_base _ = -00:25:57 v #23588 > > solutions -00:25:57 v #23589 > > |> listm'.indexed -00:25:57 v #23590 > > |> listm'.box -00:25:57 v #23591 > > |> listm'.to_array' -00:25:57 v #23592 > > |> am'.map_base fun ((i : int), (test_name, solution)) => -00:25:57 v #23593 > > inl result, time = -00:25:57 v #23594 > > fun () => solution input -00:25:57 v #23595 > > |> run' count -00:25:57 v #23596 > > trace Verbose -00:25:57 v #23597 > > fun () => "benchmark.run / solutions.map" -00:25:57 v #23598 > > fun () => { i = i + 1; test_name time } -00:25:57 v #23599 > > result, time -00:25:57 v #23600 > > -00:25:57 v #23601 > > match results_with_time |> am'.map_base fst with -00:25:57 v #23602 > > | array when (array |> (fun x => a x : _ int _) |> am'.length) <= 1 => () -00:25:57 v #23603 > > | array when array |> (fun x => a x : _ int _) |> am.forall' ((=) (array |> -00:25:57 v #23604 > > (fun x => a x : _ int _) |> am'.index 0)) => () -00:25:57 v #23605 > > | results => failwith ($'$"benchmark.run / error / results: {!results}"' : -00:25:57 v #23606 > > string) -00:25:57 v #23607 > > -00:25:57 v #23608 > > { -00:25:57 v #23609 > > input = input_str -00:25:57 v #23610 > > expected = expected |> sm'.format_debug -00:25:57 v #23611 > > result = results_with_time |> am'.map_base fst |> (fun x => a x : _ int -00:25:57 v #23612 > > _) |> am'.index 0 |> sm'.format_debug -00:25:57 v #23613 > > time_list = results_with_time |> am'.map_base snd -00:25:57 v #23614 > > } -00:25:57 v #23615 > > -00:25:57 v #23616 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:57 v #23617 > > │ ### run_all -00:25:57 v #23618 > > -00:25:57 v #23619 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:57 v #23620 > > inl run_all forall input expected. -00:25:57 v #23621 > > test_name -00:25:57 v #23622 > > count -00:25:57 v #23623 > > (solutions : list (string * (input -> expected))) -00:25:57 v #23624 > > test_cases -00:25:57 v #23625 > > = -00:25:57 v #23626 > > console.write_line "" -00:25:57 v #23627 > > console.write_line "```" -00:25:57 v #23628 > > trace Verbose -00:25:57 v #23629 > > fun () => "benchmark.run_all" -00:25:57 v #23630 > > fun () => { test_name count } -00:25:57 v #23631 > > test_cases -00:25:57 v #23632 > > |> listm'.box -00:25:57 v #23633 > > |> listm'.to_array' -00:25:57 v #23634 > > |> am'.map_base (run count solutions) -00:25:57 v #23635 > > -00:25:57 v #23636 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:57 v #23637 > > │ ### sort_result_list -00:25:57 v #23638 > > -00:25:57 v #23639 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:57 v #23640 > > inl sort_result_list results = -00:25:57 v #23641 > > inl table = -00:25:57 v #23642 > > inl rows = -00:25:57 v #23643 > > results -00:25:57 v #23644 > > |> am'.map_base fun (result : test_case_result) => -00:25:57 v #23645 > > inl best = -00:25:57 v #23646 > > result.time_list -00:25:57 v #23647 > > |> am'.indexed -00:25:57 v #23648 > > |> am'.map_base fun (i, time) => -00:25:57 v #23649 > > i + 1i32, time -00:25:57 v #23650 > > |> fun x => a x : _ int _ -00:25:57 v #23651 > > |> am'.sort_by snd -00:25:57 v #23652 > > |> am'.index 0i32 -00:25:57 v #23653 > > |> sm'.format -00:25:57 v #23654 > > inl row = -00:25:57 v #23655 > > [[ -00:25:57 v #23656 > > result.input |> sm'.ellipsis_end 40 |> sm'.replace "|" -00:25:57 v #23657 > > "" -00:25:57 v #23658 > > result.expected -00:25:57 v #23659 > > result.result -00:25:57 v #23660 > > best -00:25:57 v #23661 > > ]] -00:25:57 v #23662 > > inl color : option console.console_color = -00:25:57 v #23663 > > open console -00:25:57 v #23664 > > match result.expected = result.result with -00:25:57 v #23665 > > | true => Some $'`console_color.DarkGreen' -00:25:57 v #23666 > > | false => Some $'`console_color.DarkRed' -00:25:57 v #23667 > > row, color -00:25:57 v #23668 > > -00:25:57 v #23669 > > inl header = -00:25:57 v #23670 > > [[ -00:25:57 v #23671 > > [[ -00:25:57 v #23672 > > "input" -00:25:57 v #23673 > > "expected" -00:25:57 v #23674 > > "result" -00:25:57 v #23675 > > "best" -00:25:57 v #23676 > > ]] -00:25:57 v #23677 > > [[ -00:25:57 v #23678 > > "---" -00:25:57 v #23679 > > "---" -00:25:57 v #23680 > > "---" -00:25:57 v #23681 > > "---" -00:25:57 v #23682 > > ]] -00:25:57 v #23683 > > ]] -00:25:57 v #23684 > > |> listm.map fun row => row, None -00:25:57 v #23685 > > |> listm'.box -00:25:57 v #23686 > > |> listm'.to_array' -00:25:57 v #23687 > > |> fun x => a x : _ int _ -00:25:57 v #23688 > > a rows -00:25:57 v #23689 > > |> am.append header -00:25:57 v #23690 > > |> fun (a x) => x -00:25:57 v #23691 > > -00:25:57 v #23692 > > inl formatted_table = -00:25:57 v #23693 > > inl length_map : mapm.map i32 i64 = -00:25:57 v #23694 > > table -00:25:57 v #23695 > > |> am'.map_base (fst >> listm'.box >> listm'.to_array') -00:25:57 v #23696 > > |> am'.transpose -00:25:57 v #23697 > > |> am'.map_base fun column => -00:25:57 v #23698 > > column -00:25:57 v #23699 > > |> am'.map_base sm.length -00:25:57 v #23700 > > |> fun x => a x : _ int _ -00:25:57 v #23701 > > |> am'.sort_descending -00:25:57 v #23702 > > |> am'.try_item 0i32 -00:25:57 v #23703 > > |> optionm'.default_value 0i64 -00:25:57 v #23704 > > |> am'.indexed -00:25:57 v #23705 > > |> fun x => a x : _ int _ -00:25:57 v #23706 > > |> mapm.of_array -00:25:57 v #23707 > > table -00:25:57 v #23708 > > |> am'.map_base fun (row, color) => -00:25:57 v #23709 > > inl new_row = -00:25:57 v #23710 > > row -00:25:57 v #23711 > > |> listm'.indexed -00:25:57 v #23712 > > |> listm.map fun (i, cell) => -00:25:57 v #23713 > > cell |> sm'.pad_right (length_map |> mapm.item i |> conv) ' -00:25:57 v #23714 > > ' -00:25:57 v #23715 > > |> listm'.box -00:25:57 v #23716 > > |> listm'.to_array' -00:25:57 v #23717 > > new_row, color -00:25:57 v #23718 > > -00:25:57 v #23719 > > console.write_line "```" -00:25:57 v #23720 > > formatted_table -00:25:57 v #23721 > > |> fun x => a x : _ int _ -00:25:57 v #23722 > > |> am'.to_list' -00:25:57 v #23723 > > |> listm'.unbox -00:25:57 v #23724 > > |> listm.iter fun (row, color) => -00:25:57 v #23725 > > match color with -00:25:57 v #23726 > > | Some color => color |> console.set_foreground_color -00:25:57 v #23727 > > | None => console.reset_color () -00:25:57 v #23728 > > -00:25:57 v #23729 > > a row |> sm'.join' "\t| " |> console.write_line -00:25:57 v #23730 > > -00:25:57 v #23731 > > console.reset_color () -00:25:57 v #23732 > > -00:25:57 v #23733 > > inl averages = -00:25:57 v #23734 > > results -00:25:57 v #23735 > > |> am'.map_base fun result => -00:25:57 v #23736 > > result.time_list -00:25:57 v #23737 > > |> am'.map_base ($'float' : i64 -> f64) -00:25:57 v #23738 > > |> am'.transpose -00:25:57 v #23739 > > |> am'.map_base ((fun x => a x : _ int _) >> am'.average) -00:25:57 v #23740 > > |> am'.map_base ($'int64' : f64 -> i64) -00:25:57 v #23741 > > |> am'.indexed -00:25:57 v #23742 > > |> fun x => a x : _ u64 _ -00:25:57 v #23743 > > -00:25:57 v #23744 > > console.write_line "```" -00:25:57 v #23745 > > averages -00:25:57 v #23746 > > |> am'.sort_by snd -00:25:57 v #23747 > > |> am'.to_list' -00:25:57 v #23748 > > |> listm'.unbox -00:25:57 v #23749 > > |> listm.iter fun ((i : i32), avg) => -00:25:57 v #23750 > > trace Verbose -00:25:57 v #23751 > > fun () => "benchmark.sort_result_list / averages.iter" -00:25:57 v #23752 > > fun () => { i = i + 1; avg } -00:25:57 v #23753 > > console.write_line "```" -00:25:58 v #23754 > > -00:25:58 v #23755 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:58 v #23756 > > //// test -00:25:58 v #23757 > > -00:25:58 v #23758 > > inl is_fast () = -00:25:58 v #23759 > > false -00:25:58 v #23760 > > -00:25:58 v #23761 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:58 v #23762 > > │ ### empty2Tests -00:25:58 v #23763 > > -00:25:58 v #23764 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:25:58 v #23765 > > │ Test: Empty2 -00:25:58 v #23766 > > │ -00:25:58 v #23767 > > │ Solution: (a, a) -00:25:58 v #23768 > > │ Test case 1. A. Time: 59L -00:25:58 v #23769 > > │ -00:25:58 v #23770 > > │ Solution: (a, a) -00:25:58 v #23771 > > │ Test case 1. A. Time: 53L -00:25:58 v #23772 > > │ -00:25:58 v #23773 > > │ Input | Expected | Result | Best -00:25:58 v #23774 > > │ --- | --- | --- | --- -00:25:58 v #23775 > > │ (a, a) | a | a | (1, 59) -00:25:58 v #23776 > > │ (a, a) | a | a | (1, 53) -00:25:58 v #23777 > > │ -00:25:58 v #23778 > > │ Averages -00:25:58 v #23779 > > │ Test case 1. Average Time: 56L -00:25:58 v #23780 > > │ -00:25:58 v #23781 > > │ Ranking -00:25:58 v #23782 > > │ Test case 1. Average Time: 56L -00:25:58 v #23783 > > │ -00:25:58 v #23784 > > │ --- -00:25:58 v #23785 > > │ -00:25:58 v #23786 > > │ -00:25:58 v #23787 > > │ ``` -00:25:58 v #23788 > > │ 01:12:03 verbose #1 benchmark.run_all / {count = -00:25:58 v #23789 > > 2000000; test_name = empty_2_tests} -00:25:58 v #23790 > > │ 01:12:03 verbose #2 benchmark.run / {count = 2000000; -00:25:58 v #23791 > > expected = a; input = a, a; input_str = struct ("a", "a")} -00:25:58 v #23792 > > │ 01:12:03 verbose #3 benchmark.run / solutions.map -00:25:58 v #23793 > > {count = 2000000; expected = a; i = 0; input = a, a; input_str = struct ("a", -00:25:58 v #23794 > > "a"); test_name = A; time = 119} -00:25:58 v #23795 > > │ 01:12:04 verbose #4 benchmark.run / solutions.map -00:25:58 v #23796 > > {count = 2000000; expected = a; i = 1; input = a, a; input_str = struct ("a", -00:25:58 v #23797 > > "a"); test_name = B; time = 122} -00:25:58 v #23798 > > │ 01:12:04 verbose #5 benchmark.run / {count = 2000000; -00:25:58 v #23799 > > expected = b; input = b, b; input_str = struct ("b", "b")} -00:25:58 v #23800 > > │ 01:12:04 verbose #6 benchmark.run / solutions.map -00:25:58 v #23801 > > {count = 2000000; expected = b; i = 0; input = b, b; input_str = struct ("b", -00:25:58 v #23802 > > "b"); test_name = A; time = 110} -00:25:58 v #23803 > > │ 01:12:04 verbose #7 benchmark.run / solutions.map -00:25:58 v #23804 > > {count = 2000000; expected = b; i = 1; input = b, b; input_str = struct ("b", -00:25:58 v #23805 > > "b"); test_name = B; time = 120} -00:25:58 v #23806 > > │ ``` -00:25:58 v #23807 > > │ Input | Expected | Result | Best -00:25:58 v #23808 > > │ --- | --- | --- | --- -00:25:58 v #23809 > > │ struct ("a", "a") | "a" | "a" | struct (1L, 119L) -00:25:58 v #23810 > > │ struct ("b", "b") | "b" | "b" | struct (1L, 110L) -00:25:58 v #23811 > > │ ``` -00:25:58 v #23812 > > │ 01:12:04 verbose #8 benchmark.sort_result_list -00:25:58 v #23813 > > averages.iter / {avg = 114; i = 0} -00:25:58 v #23814 > > │ 01:12:04 verbose #9 benchmark.sort_result_list -00:25:58 v #23815 > > averages.iter / {avg = 121; i = 1} -00:25:58 v #23816 > > │ ``` -00:25:58 v #23817 > > │ ` -00:25:58 v #23818 > > -00:25:58 v #23819 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:25:58 v #23820 > > //// test -00:25:58 v #23821 > > -00:25:58 v #23822 > > inl get_solutions () = -00:25:58 v #23823 > > [[ -00:25:58 v #23824 > > "A", -00:25:58 v #23825 > > fun (a, _b) => -00:25:58 v #23826 > > a -00:25:58 v #23827 > > -00:25:58 v #23828 > > "B", -00:25:58 v #23829 > > fun (_a, b) => -00:25:58 v #23830 > > b -00:25:58 v #23831 > > ]] -00:25:58 v #23832 > > -00:25:58 v #23833 > > inl rec empty_2_tests () = -00:25:58 v #23834 > > inl test_cases = [[ -00:25:58 v #23835 > > ("a", "a"), "a" -00:25:58 v #23836 > > ("b", "b"), "b" -00:25:58 v #23837 > > ]] -00:25:58 v #23838 > > -00:25:58 v #23839 > > inl solutions = get_solutions () -00:25:58 v #23840 > > -00:25:58 v #23841 > > // inl is_fast () = true -00:25:58 v #23842 > > -00:25:58 v #23843 > > inl count = -00:25:58 v #23844 > > if is_fast () -00:25:58 v #23845 > > then 1000i32 -00:25:58 v #23846 > > else 2000000i32 -00:25:58 v #23847 > > -00:25:58 v #23848 > > run_all (reflection.nameof { empty_2_tests }) count solutions test_cases -00:25:58 v #23849 > > |> sort_result_list -00:25:58 v #23850 > > -00:25:58 v #23851 > > empty_2_tests () -00:26:03 v #23852 > > -00:26:03 v #23853 > > ── [ 4.26s - stdout ] ────────────────────────────────────────────────────────── -00:26:03 v #23854 > > │ -00:26:03 v #23855 > > │ ``` -00:26:03 v #23856 > > │ 00:00:00 v #1 benchmark.run_all / { test_name = -00:26:03 v #23857 > > empty_2_tests; count = 2000000 } -00:26:03 v #23858 > > │ -00:26:03 v #23859 > > │ 00:00:00 v #2 benchmark.run / { input_str = struct ("a", -00:26:03 v #23860 > > "a") } -00:26:03 v #23861 > > │ 00:00:00 v #3 benchmark.run / solutions.map / { i = 1; -00:26:03 v #23862 > > test_name = A; time = 109 } -00:26:03 v #23863 > > │ 00:00:00 v #4 benchmark.run / solutions.map / { i = 2; -00:26:03 v #23864 > > test_name = B; time = 90 } -00:26:03 v #23865 > > │ -00:26:03 v #23866 > > │ 00:00:00 v #5 benchmark.run / { input_str = struct ("b", -00:26:03 v #23867 > > "b") } -00:26:03 v #23868 > > │ 00:00:00 v #6 benchmark.run / solutions.map / { i = 1; -00:26:03 v #23869 > > test_name = A; time = 92 } -00:26:03 v #23870 > > │ 00:00:00 v #7 benchmark.run / solutions.map / { i = 2; -00:26:03 v #23871 > > test_name = B; time = 100 } -00:26:03 v #23872 > > │ ``` -00:26:03 v #23873 > > │ input | expected | result | best -00:26:03 v #23874 > > │ --- | --- | --- | --- -00:26:03 v #23875 > > │ struct ("a", "a") | "a" | "a" | 2, 90 -00:26:03 v #23876 > > │ struct ("b", "b") | "b" | "b" | 1, 92 -00:26:03 v #23877 > > │ ``` -00:26:03 v #23878 > > │ 00:00:00 v #8 benchmark.sort_result_list / averages.iter -00:26:03 v #23879 > > / { i = 2; avg = 95 } -00:26:03 v #23880 > > │ 00:00:00 v #9 benchmark.sort_result_list / averages.iter -00:26:03 v #23881 > > / { i = 1; avg = 100 } -00:26:03 v #23882 > > │ ``` -00:26:03 v #23883 > > │ -00:26:03 v #23884 > > -00:26:03 v #23885 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:26:03 v #23886 > > │ ### emptyTests -00:26:03 v #23887 > > -00:26:03 v #23888 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:26:03 v #23889 > > │ Test: Empty -00:26:03 v #23890 > > │ -00:26:03 v #23891 > > │ Solution: 0 -00:26:03 v #23892 > > │ Test case 1. A. Time: 61L -00:26:03 v #23893 > > │ -00:26:03 v #23894 > > │ Solution: 2 -00:26:03 v #23895 > > │ Test case 1. A. Time: 62L -00:26:03 v #23896 > > │ -00:26:03 v #23897 > > │ Solution: 5 -00:26:03 v #23898 > > │ Test case 1. A. Time: 70L -00:26:03 v #23899 > > │ -00:26:03 v #23900 > > │ Input | Expected | Result | Best -00:26:03 v #23901 > > │ --- | --- | --- | --- -00:26:03 v #23902 > > │ 0 | 0 | 0 | (1, 61) -00:26:03 v #23903 > > │ 2 | 2 | 2 | (1, 62) -00:26:03 v #23904 > > │ 5 | 5 | 5 | (1, 70) -00:26:03 v #23905 > > │ -00:26:03 v #23906 > > │ Averages -00:26:03 v #23907 > > │ Test case 1. Average Time: 64L -00:26:03 v #23908 > > │ -00:26:03 v #23909 > > │ Ranking -00:26:03 v #23910 > > │ Test case 1. Average Time: 64L -00:26:03 v #23911 > > │ -00:26:03 v #23912 > > │ --- -00:26:03 v #23913 > > │ -00:26:03 v #23914 > > │ ``` -00:26:03 v #23915 > > │ 01:21:25 verbose #1 benchmark.run_all / {count = -00:26:03 v #23916 > > 2000000; test_name = empty_1_tests} -00:26:03 v #23917 > > │ 01:21:25 verbose #2 benchmark.run / {count = 2000000; -00:26:03 v #23918 > > expected = +1.000000; input = +0.000000; input_str = 0.0} -00:26:03 v #23919 > > │ 01:21:25 verbose #3 benchmark.run / solutions.map -00:26:03 v #23920 > > {count = 2000000; expected = +1.000000; i = 0; input = +0.000000; input_str = -00:26:03 v #23921 > > 0.0; test_name = A; time = 36} -00:26:03 v #23922 > > │ 01:21:25 verbose #4 benchmark.run / {count = 2000000; -00:26:03 v #23923 > > expected = +3.000000; input = +2.000000; input_str = 2.0} -00:26:03 v #23924 > > │ 01:21:25 verbose #5 benchmark.run / solutions.map -00:26:03 v #23925 > > {count = 2000000; expected = +3.000000; i = 0; input = +2.000000; input_str = -00:26:03 v #23926 > > 2.0; test_name = A; time = 20} -00:26:03 v #23927 > > │ 01:21:25 verbose #6 benchmark.run / {count = 2000000; -00:26:03 v #23928 > > expected = +6.000000; input = +5.000000; input_str = 5.0} -00:26:03 v #23929 > > │ 01:21:25 verbose #7 benchmark.run / solutions.map -00:26:03 v #23930 > > {count = 2000000; expected = +6.000000; i = 0; input = +5.000000; input_str = -00:26:03 v #23931 > > 5.0; test_name = A; time = 22} -00:26:03 v #23932 > > │ ``` -00:26:03 v #23933 > > │ Input | Expected | Result | Best -00:26:03 v #23934 > > │ --- | --- | --- | --- -00:26:03 v #23935 > > │ 0.0 | 1.0 | 1.0 | struct (1L, 36L) -00:26:03 v #23936 > > │ 2.0 | 3.0 | 3.0 | struct (1L, 20L) -00:26:03 v #23937 > > │ 5.0 | 6.0 | 6.0 | struct (1L, 22L) -00:26:03 v #23938 > > │ ``` -00:26:03 v #23939 > > │ 01:21:25 verbose #8 benchmark.sort_result_list -00:26:03 v #23940 > > averages.iter / {avg = 26; i = 0} -00:26:03 v #23941 > > │ ``` -00:26:03 v #23942 > > -00:26:03 v #23943 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:03 v #23944 > > //// test -00:26:03 v #23945 > > -00:26:03 v #23946 > > inl get_solutions () = -00:26:03 v #23947 > > [[ -00:26:03 v #23948 > > "A", -00:26:03 v #23949 > > fun n => -00:26:03 v #23950 > > n + 1f64 -00:26:03 v #23951 > > ]] -00:26:03 v #23952 > > -00:26:03 v #23953 > > inl rec empty_1_tests () = -00:26:03 v #23954 > > inl test_cases = [[ -00:26:03 v #23955 > > 0, 1 -00:26:03 v #23956 > > 2, 3 -00:26:03 v #23957 > > 5, 6 -00:26:03 v #23958 > > ]] -00:26:03 v #23959 > > -00:26:03 v #23960 > > inl solutions = get_solutions () -00:26:03 v #23961 > > -00:26:03 v #23962 > > // inl is_fast () = true -00:26:03 v #23963 > > -00:26:03 v #23964 > > inl count = -00:26:03 v #23965 > > if is_fast () -00:26:03 v #23966 > > then 1000i32 -00:26:03 v #23967 > > else 2000000i32 -00:26:03 v #23968 > > -00:26:03 v #23969 > > run_all (reflection.nameof { empty_1_tests }) count solutions test_cases -00:26:03 v #23970 > > |> sort_result_list -00:26:03 v #23971 > > -00:26:03 v #23972 > > empty_1_tests () -00:26:05 v #23973 > > -00:26:05 v #23974 > > ── [ 2.33s - stdout ] ────────────────────────────────────────────────────────── -00:26:05 v #23975 > > │ -00:26:05 v #23976 > > │ ``` -00:26:05 v #23977 > > │ 00:00:00 v #1 benchmark.run_all / { test_name = -00:26:05 v #23978 > > empty_1_tests; count = 2000000 } -00:26:05 v #23979 > > │ -00:26:05 v #23980 > > │ 00:00:00 v #2 benchmark.run / { input_str = 0.0 } -00:26:05 v #23981 > > │ 00:00:00 v #3 benchmark.run / solutions.map / { i = 1; -00:26:05 v #23982 > > test_name = A; time = 25 } -00:26:05 v #23983 > > │ -00:26:05 v #23984 > > │ 00:00:00 v #4 benchmark.run / { input_str = 2.0 } -00:26:05 v #23985 > > │ 00:00:00 v #5 benchmark.run / solutions.map / { i = 1; -00:26:05 v #23986 > > test_name = A; time = 12 } -00:26:05 v #23987 > > │ -00:26:05 v #23988 > > │ 00:00:00 v #6 benchmark.run / { input_str = 5.0 } -00:26:05 v #23989 > > │ 00:00:00 v #7 benchmark.run / solutions.map / { i = 1; -00:26:05 v #23990 > > test_name = A; time = 12 } -00:26:05 v #23991 > > │ ``` -00:26:05 v #23992 > > │ input | expected | result | best -00:26:05 v #23993 > > │ --- | --- | --- | --- -00:26:05 v #23994 > > │ 0.0 | 1.0 | 1.0 | 1, 25 -00:26:05 v #23995 > > │ 2.0 | 3.0 | 3.0 | 1, 12 -00:26:05 v #23996 > > │ 5.0 | 6.0 | 6.0 | 1, 12 -00:26:05 v #23997 > > │ ``` -00:26:05 v #23998 > > │ 00:00:00 v #8 benchmark.sort_result_list / averages.iter -00:26:05 v #23999 > > / { i = 1; avg = 16 } -00:26:05 v #24000 > > │ ``` -00:26:05 v #24001 > > │ -00:26:05 v #24002 > 00:00:15 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 17673 } -00:26:05 v #24003 > 00:00:15 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/lib/spiral/benchmark.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/lib/spiral/benchmark.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:26:06 v #24004 > 00:00:16 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/lib/spiral/benchmark.dib.ipynb to html -00:26:06 v #24005 > 00:00:16 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. -00:26:06 v #24006 > 00:00:16 v #7 ! validate(nb) -00:26:07 v #24007 > 00:00:16 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 -00:26:07 v #24008 > 00:00:16 v #9 ! return _pygments_highlight( -00:26:07 v #24009 > 00:00:17 v #10 ! [NbConvertApp] Writing 316529 bytes to c:\home\git\polyglot\lib\spiral\benchmark.dib.html -00:26:07 v #24010 > 00:00:17 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 860 } -00:26:07 v #24011 > 00:00:17 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 860 } -00:26:07 v #24012 > 00:00:17 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/benchmark.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/benchmark.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:26:08 v #24013 > 00:00:17 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } -00:26:08 v #24014 > 00:00:17 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } -00:26:08 v #24015 > 00:00:17 d #16 spiral.run / dib / { exit_code = 0; result_length = 18592 } -00:26:08 d #24016 runtime.execute_with_options_async / { exit_code = 0; output_length = 22100 } -00:26:08 d #33 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path benchmark.dib --retries 3 -00:26:08 d #24017 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path physics.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path physics.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } -00:26:08 v #24018 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "physics.dib", "--retries", "3"])) } -00:26:08 v #24019 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/lib/spiral/physics.dib", "--output-path", "c:/home/git/polyglot/lib/spiral/physics.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/lib/spiral/physics.dib" --output-path "c:/home/git/polyglot/lib/spiral/physics.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } -00:26:09 v #24020 > > -00:26:09 v #24021 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:26:09 v #24022 > > │ # physics -00:26:27 v #24023 > > -00:26:27 v #24024 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:27 v #24025 > > //// test -00:26:27 v #24026 > > -00:26:27 v #24027 > > open testing -00:26:28 v #24028 > > -00:26:28 v #24029 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:26:28 v #24030 > > │ ### init_series -00:26:28 v #24031 > > -00:26:28 v #24032 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:28 v #24033 > > //// test -00:26:28 v #24034 > > -00:26:28 v #24035 > > inl x = am'.init_series -3f64 3 0.01 -00:26:28 v #24036 > > inl y = x |> am'.map_base math.square -00:26:28 v #24037 > > "square", "x", "y", ;[[ "square", x, y ]] -00:26:28 v #24038 > > -00:26:28 v #24039 > > ── [ 514.42ms - return value ] ───────────────────────────────────────────────── -00:26:28 v #24040 > > │ <svg width="640" height="480" viewBox="0 0 640 480" -00:26:28 v #24041 > > xmlns="http://www.w3.org/2000/svg"> -00:26:28 v #24042 > > │ <rect x="0" y="0" width="640" height="480" opacity="1" -00:26:28 v #24043 > > fill="#141414" stroke="none"/> -00:26:28 v #24044 > > │ <text x="320" y="10" dy="0.76em" text-anchor="middle" -00:26:28 v #24045 > > font-family="sans-serif" font-size="9.67741935483871" opacity="1" -00:26:28 v #24046 > > fill="#FFFFFF"> -00:26:28 v #24047 > > │ square -00:26:28 v #24048 > > │ </text> -00:26:28 v #24049 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="61" -00:26:28 v #24050 > > y1="424" x2="61" y2="75"/> -00:26:28 v #24051 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" -00:26:28 v #24052 > > y1="424" x2="69" y2="75"/> -00:26:28 v #24053 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="78" -00:26:28 v #24054 > > y1="424" x2="78" y2="75"/> -00:26:28 v #24055 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="86" -00:26:28 v #24056 > > y1="424" x2="86" y2="75"/> -00:26:28 v #24057 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="94" -00:26:28 v #24058 > > y1="424" x2="94" y2="75"/> -00:26:28 v #24059 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="103" -00:26:28 v #24060 > > y1="424" x2="103" y2="75"/> -00:26:28 v #24061 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="111" -00:26:28 v #24062 > > y1="424" x2="111" y2="75"/> -00:26:28 v #24063 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="119" -00:26:28 v #24064 > > y1="424" x2="119" y2="75"/> -00:26:28 v #24065 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="128" -00:26:28 v #24066 > > y1="424" x2="128" y2="75"/> -00:26:28 v #24067 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="136" -00:26:28 v #24068 > > y1="424" x2="136" y2="75"/> -00:26:28 v #24069 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="144" -00:26:28 v #24070 > > y1="424" x2="144" y2="75"/> -00:26:28 v #24071 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="153" -00:26:28 v #24072 > > y1="424" x2="153" y2="75"/> -00:26:28 v #24073 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="161" -00:26:28 v #24074 > > y1="424" x2="161" y2="75"/> -00:26:28 v #24075 > > │ <line opacity="1" stroke="#... 449,326 450,324 450,323 -00:26:28 v #24076 > > 451,322 452,321 453,320 454,319 455,317 455,316 456,315 457,314 458,313 459,311 -00:26:28 v #24077 > > 460,310 460,309 461,308 462,306 463,305 464,304 465,303 465,301 466,300 467,299 -00:26:28 v #24078 > > 468,297 469,296 470,295 470,293 471,292 472,291 473,289 474,288 475,287 475,285 -00:26:28 v #24079 > > 476,284 477,283 478,281 479,280 480,278 480,277 481,276 482,274 483,273 484,271 -00:26:28 v #24080 > > 485,270 485,268 486,267 487,265 488,264 489,262 490,261 490,259 491,258 492,256 -00:26:28 v #24081 > > 493,255 494,253 495,252 495,250 496,249 497,247 498,246 499,244 499,242 500,241 -00:26:28 v #24082 > > 501,239 502,238 503,236 504,234 504,233 505,231 506,229 507,228 508,226 509,224 -00:26:28 v #24083 > > 509,223 510,221 511,219 512,218 513,216 514,214 514,213 515,211 516,209 517,207 -00:26:28 v #24084 > > 518,206 519,204 519,202 520,200 521,199 522,197 523,195 524,193 524,191 525,190 -00:26:28 v #24085 > > 526,188 527,186 528,184 529,182 529,180 530,179 531,177 532,175 533,173 534,171 -00:26:28 v #24086 > > 534,169 535,167 536,165 537,164 538,162 539,160 539,158 540,156 541,154 542,152 -00:26:28 v #24087 > > 543,150 544,148 544,146 545,144 546,142 547,140 548,138 549,136 549,134 550,132 -00:26:28 v #24088 > > 551,130 552,128 553,126 554,124 554,122 555,120 556,117 557,115 558,113 559,111 -00:26:28 v #24089 > > 559,109 560,107 561,105 562,103 563,101 564,98 564,96 565,94 566,92 567,90 -00:26:28 v #24090 > > 568,88 569,85 "/> -00:26:28 v #24091 > > │ <rect x="497" y="235" width="83" height="30" opacity="1" -00:26:28 v #24092 > > fill="none" stroke="#FFFFFF"/> -00:26:28 v #24093 > > │ <text x="537" y="245" dy="0.76em" text-anchor="start" -00:26:28 v #24094 > > font-family="sans-serif" font-size="9.67741935483871" opacity="1" -00:26:28 v #24095 > > fill="#FFFFFF"> -00:26:28 v #24096 > > │ square -00:26:28 v #24097 > > │ </text> -00:26:28 v #24098 > > │ <polyline fill="none" opacity="1" stroke="#FF0000" -00:26:28 v #24099 > > stroke-width="1" points="507,250 527,250 "/> -00:26:28 v #24100 > > │ </svg> -00:26:28 v #24101 > > │ -00:26:28 v #24102 > > -00:26:28 v #24103 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:28 v #24104 > > //// test -00:26:28 v #24105 > > -00:26:28 v #24106 > > inl x = am'.init_series -10f64 10 0.1 -00:26:28 v #24107 > > inl y_sin = x |> am'.map_base sin -00:26:28 v #24108 > > inl y_cos = x |> am'.map_base cos -00:26:28 v #24109 > > "sin cos", "x", "y", ;[[ "sin", x, y_sin; "cos", x, y_cos ]] -00:26:29 v #24110 > > -00:26:29 v #24111 > > ── [ 457.77ms - return value ] ───────────────────────────────────────────────── -00:26:29 v #24112 > > │ <svg width="640" height="480" viewBox="0 0 640 480" -00:26:29 v #24113 > > xmlns="http://www.w3.org/2000/svg"> -00:26:29 v #24114 > > │ <rect x="0" y="0" width="640" height="480" opacity="1" -00:26:29 v #24115 > > fill="#141414" stroke="none"/> -00:26:29 v #24116 > > │ <text x="320" y="10" dy="0.76em" text-anchor="middle" -00:26:29 v #24117 > > font-family="sans-serif" font-size="9.67741935483871" opacity="1" -00:26:29 v #24118 > > fill="#FFFFFF"> -00:26:29 v #24119 > > │ sin cos -00:26:29 v #24120 > > │ </text> -00:26:29 v #24121 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="57" -00:26:29 v #24122 > > y1="424" x2="57" y2="75"/> -00:26:29 v #24123 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" -00:26:29 v #24124 > > y1="424" x2="69" y2="75"/> -00:26:29 v #24125 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="82" -00:26:29 v #24126 > > y1="424" x2="82" y2="75"/> -00:26:29 v #24127 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="94" -00:26:29 v #24128 > > y1="424" x2="94" y2="75"/> -00:26:29 v #24129 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="107" -00:26:29 v #24130 > > y1="424" x2="107" y2="75"/> -00:26:29 v #24131 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="119" -00:26:29 v #24132 > > y1="424" x2="119" y2="75"/> -00:26:29 v #24133 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="132" -00:26:29 v #24134 > > y1="424" x2="132" y2="75"/> -00:26:29 v #24135 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="144" -00:26:29 v #24136 > > y1="424" x2="144" y2="75"/> -00:26:29 v #24137 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="157" -00:26:29 v #24138 > > y1="424" x2="157" y2="75"/> -00:26:29 v #24139 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="169" -00:26:29 v #24140 > > y1="424" x2="169" y2="75"/> -00:26:29 v #24141 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="182" -00:26:29 v #24142 > > y1="424" x2="182" y2="75"/> -00:26:29 v #24143 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="194" -00:26:29 v #24144 > > y1="424" x2="194" y2="75"/> -00:26:29 v #24145 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="207" -00:26:29 v #24146 > > y1="424" x2="207" y2="75"/> -00:26:29 v #24147 > > │ <line opacity="1" stroke...55 282,238 284,222 287,206 289,190 -00:26:29 v #24148 > > 292,175 294,161 297,148 299,135 302,124 304,114 307,106 309,98 312,93 314,89 -00:26:29 v #24149 > > 317,86 319,85 321,86 324,89 326,93 329,98 331,106 334,114 336,124 339,135 -00:26:29 v #24150 > > 341,148 344,161 346,175 349,190 351,206 354,222 356,238 359,255 361,271 364,287 -00:26:29 v #24151 > > 366,303 369,319 371,333 374,347 376,360 379,371 381,382 384,391 386,399 389,405 -00:26:29 v #24152 > > 391,410 394,413 396,414 399,414 401,413 404,409 406,404 409,398 411,390 414,380 -00:26:29 v #24153 > > 416,370 419,358 421,345 424,331 426,316 429,301 431,285 434,268 436,252 439,236 -00:26:29 v #24154 > > 441,219 444,203 446,188 449,173 451,159 454,146 456,133 459,122 461,113 464,104 -00:26:29 v #24155 > > 466,97 469,92 471,88 474,86 476,85 479,86 481,89 484,94 486,99 489,107 491,116 -00:26:29 v #24156 > > 494,126 496,137 499,150 501,163 504,178 506,193 509,209 511,225 514,241 516,258 -00:26:29 v #24157 > > 519,274 521,290 524,306 526,321 529,335 531,349 534,362 536,373 539,384 541,392 -00:26:29 v #24158 > > 544,400 546,406 549,410 551,413 554,415 556,414 559,412 561,408 564,403 566,396 -00:26:29 v #24159 > > 569,388 "/> -00:26:29 v #24160 > > │ <rect x="514" y="227" width="66" height="45" opacity="1" -00:26:29 v #24161 > > fill="none" stroke="#FFFFFF"/> -00:26:29 v #24162 > > │ <text x="554" y="237" dy="0.76em" text-anchor="start" -00:26:29 v #24163 > > font-family="sans-serif" font-size="9.67741935483871" opacity="1" -00:26:29 v #24164 > > fill="#FFFFFF"> -00:26:29 v #24165 > > │ sin -00:26:29 v #24166 > > │ </text> -00:26:29 v #24167 > > │ <text x="554" y="252" dy="0.76em" text-anchor="start" -00:26:29 v #24168 > > font-family="sans-serif" font-size="9.67741935483871" opacity="1" -00:26:29 v #24169 > > fill="#FFFFFF"> -00:26:29 v #24170 > > │ cos -00:26:29 v #24171 > > │ </text> -00:26:29 v #24172 > > │ <polyline fill="none" opacity="1" stroke="#FF0000" -00:26:29 v #24173 > > stroke-width="1" points="524,242 544,242 "/> -00:26:29 v #24174 > > │ <polyline fill="none" opacity="1" stroke="#0000FF" -00:26:29 v #24175 > > stroke-width="1" points="524,257 544,257 "/> -00:26:29 v #24176 > > │ </svg> -00:26:29 v #24177 > > │ -00:26:29 v #24178 > > -00:26:29 v #24179 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:29 v #24180 > > //// test -00:26:29 v #24181 > > -00:26:29 v #24182 > > inl y_pos y0 vy0 ay t = -00:26:29 v #24183 > > y0 + vy0 * t + ay * (t |> math.square) / 2 -00:26:29 v #24184 > > -00:26:29 v #24185 > > inl x = am'.init_series 0f64 5 0.01 -00:26:29 v #24186 > > inl y = x |> am'.map_base (y_pos 0 20 -9.8) -00:26:29 v #24187 > > "projectile motion", "time (s)", "", ;[[ "height of projectile (m)", x, y ]] -00:26:29 v #24188 > > -00:26:29 v #24189 > > ── [ 480.21ms - return value ] ───────────────────────────────────────────────── -00:26:29 v #24190 > > │ <svg width="640" height="480" viewBox="0 0 640 480" -00:26:29 v #24191 > > xmlns="http://www.w3.org/2000/svg"> -00:26:29 v #24192 > > │ <rect x="0" y="0" width="640" height="480" opacity="1" -00:26:29 v #24193 > > fill="#141414" stroke="none"/> -00:26:29 v #24194 > > │ <text x="320" y="10" dy="0.76em" text-anchor="middle" -00:26:29 v #24195 > > font-family="sans-serif" font-size="9.67741935483871" opacity="1" -00:26:29 v #24196 > > fill="#FFFFFF"> -00:26:29 v #24197 > > │ projectile motion -00:26:29 v #24198 > > │ </text> -00:26:29 v #24199 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="59" -00:26:29 v #24200 > > y1="424" x2="59" y2="75"/> -00:26:29 v #24201 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" -00:26:29 v #24202 > > y1="424" x2="69" y2="75"/> -00:26:29 v #24203 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="79" -00:26:29 v #24204 > > y1="424" x2="79" y2="75"/> -00:26:29 v #24205 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="89" -00:26:29 v #24206 > > y1="424" x2="89" y2="75"/> -00:26:29 v #24207 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="99" -00:26:29 v #24208 > > y1="424" x2="99" y2="75"/> -00:26:29 v #24209 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="109" -00:26:29 v #24210 > > y1="424" x2="109" y2="75"/> -00:26:29 v #24211 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="119" -00:26:29 v #24212 > > y1="424" x2="119" y2="75"/> -00:26:29 v #24213 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="129" -00:26:29 v #24214 > > y1="424" x2="129" y2="75"/> -00:26:29 v #24215 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="139" -00:26:29 v #24216 > > y1="424" x2="139" y2="75"/> -00:26:29 v #24217 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="149" -00:26:29 v #24218 > > y1="424" x2="149" y2="75"/> -00:26:29 v #24219 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="159" -00:26:29 v #24220 > > y1="424" x2="159" y2="75"/> -00:26:29 v #24221 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="169" -00:26:29 v #24222 > > y1="424" x2="169" y2="75"/> -00:26:29 v #24223 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="179" -00:26:29 v #24224 > > y1="424" x2="179" y2="75"/> -00:26:29 v #24225 > > │ <line opacity="1...28,176 429,177 430,178 431,179 432,180 -00:26:29 v #24226 > > 433,182 434,183 435,184 436,185 437,186 438,188 439,189 440,190 441,191 442,193 -00:26:29 v #24227 > > 443,194 444,195 445,197 446,198 447,199 448,200 449,202 450,203 451,204 452,206 -00:26:29 v #24228 > > 453,207 454,208 455,210 456,211 457,213 458,214 459,215 460,217 461,218 462,220 -00:26:29 v #24229 > > 463,221 464,222 465,224 466,225 467,227 468,228 469,230 470,231 471,233 472,234 -00:26:29 v #24230 > > 473,236 474,237 475,239 476,240 477,242 478,243 479,245 480,246 481,248 482,249 -00:26:29 v #24231 > > 483,251 484,253 485,254 486,256 487,257 488,259 489,261 490,262 491,264 492,266 -00:26:29 v #24232 > > 493,267 494,269 495,271 496,272 497,274 498,276 499,277 500,279 501,281 502,282 -00:26:29 v #24233 > > 503,284 504,286 505,288 506,289 507,291 508,293 509,295 510,296 511,298 512,300 -00:26:29 v #24234 > > 513,302 514,304 515,305 516,307 517,309 518,311 519,313 520,315 521,316 522,318 -00:26:29 v #24235 > > 523,320 524,322 525,324 526,326 527,328 528,330 529,332 530,334 531,335 532,337 -00:26:29 v #24236 > > 533,339 534,341 535,343 536,345 537,347 538,349 539,351 540,353 541,355 542,357 -00:26:29 v #24237 > > 543,359 544,361 545,363 546,365 547,367 548,370 549,372 550,374 551,376 552,378 -00:26:29 v #24238 > > 553,380 554,382 555,384 556,386 557,388 558,391 559,393 560,395 561,397 562,399 -00:26:29 v #24239 > > 563,401 564,404 565,406 566,408 567,410 568,412 569,415 "/> -00:26:29 v #24240 > > │ <rect x="399" y="235" width="181" height="30" opacity="1" -00:26:29 v #24241 > > fill="none" stroke="#FFFFFF"/> -00:26:29 v #24242 > > │ <text x="439" y="245" dy="0.76em" text-anchor="start" -00:26:29 v #24243 > > font-family="sans-serif" font-size="9.67741935483871" opacity="1" -00:26:29 v #24244 > > fill="#FFFFFF"> -00:26:29 v #24245 > > │ height of projectile (m) -00:26:29 v #24246 > > │ </text> -00:26:29 v #24247 > > │ <polyline fill="none" opacity="1" stroke="#FF0000" -00:26:29 v #24248 > > stroke-width="1" points="409,250 429,250 "/> -00:26:29 v #24249 > > │ </svg> -00:26:29 v #24250 > > │ -00:26:29 v #24251 > > -00:26:29 v #24252 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:26:29 v #24253 > > │ ### velocity_cf -00:26:29 v #24254 > > -00:26:29 v #24255 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:29 v #24256 > > type mass = f64 -00:26:29 v #24257 > > type time = f64 -00:26:29 v #24258 > > type position = f64 -00:26:29 v #24259 > > type velocity = f64 -00:26:29 v #24260 > > type force = f64 -00:26:29 v #24261 > > -00:26:29 v #24262 > > type velocity_cf = mass -> velocity -> list force -> (time -> velocity) -00:26:29 v #24263 > > -00:26:29 v #24264 > > inl velocity_cf m v0 fs = -00:26:29 v #24265 > > inl f_net = fs |> listm'.sum -00:26:29 v #24266 > > inl a0 = f_net / m -00:26:29 v #24267 > > inl v t = v0 + a0 * t -00:26:29 v #24268 > > v -00:26:30 v #24269 > > -00:26:30 v #24270 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:30 v #24271 > > //// test -00:26:30 v #24272 > > -00:26:30 v #24273 > > velocity_cf 0.1f64 0.6 [[ 0.04; -0.08 ]] 0 -00:26:30 v #24274 > > |> _assert_eq 0.6 -00:26:30 v #24275 > > -00:26:30 v #24276 > > velocity_cf 0.1f64 0.6 [[ 0.04; -0.08 ]] 1 -00:26:30 v #24277 > > |> _assert_eq 0.2 -00:26:30 v #24278 > > -00:26:30 v #24279 > > ── [ 453.29ms - stdout ] ─────────────────────────────────────────────────────── -00:26:30 v #24280 > > │ __assert_eq / actual: 0.6 / expected: 0.6 -00:26:30 v #24281 > > │ __assert_eq / actual: 0.2 / expected: 0.2 -00:26:30 v #24282 > > │ -00:26:30 v #24283 > > -00:26:30 v #24284 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:30 v #24285 > > //// test -00:26:30 v #24286 > > -00:26:30 v #24287 > > inl x = am'.init_series 0f64 4 0.1 -00:26:30 v #24288 > > inl y = x |> am'.map_base (velocity_cf 0.1f64 0.6 [[ 0.04; -0.08 ]]) -00:26:30 v #24289 > > "car on an air track", "time (s)", "", ;[[ "velocity of car (m/s)", x, y ]] -00:26:31 v #24290 > > -00:26:31 v #24291 > > ── [ 436.56ms - return value ] ───────────────────────────────────────────────── -00:26:31 v #24292 > > │ <svg width="640" height="480" viewBox="0 0 640 480" -00:26:31 v #24293 > > xmlns="http://www.w3.org/2000/svg"> -00:26:31 v #24294 > > │ <rect x="0" y="0" width="640" height="480" opacity="1" -00:26:31 v #24295 > > fill="#141414" stroke="none"/> -00:26:31 v #24296 > > │ <text x="320" y="10" dy="0.76em" text-anchor="middle" -00:26:31 v #24297 > > font-family="sans-serif" font-size="9.67741935483871" opacity="1" -00:26:31 v #24298 > > fill="#FFFFFF"> -00:26:31 v #24299 > > │ car on an air track -00:26:31 v #24300 > > │ </text> -00:26:31 v #24301 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="57" -00:26:31 v #24302 > > y1="424" x2="57" y2="75"/> -00:26:31 v #24303 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" -00:26:31 v #24304 > > y1="424" x2="69" y2="75"/> -00:26:31 v #24305 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="82" -00:26:31 v #24306 > > y1="424" x2="82" y2="75"/> -00:26:31 v #24307 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="94" -00:26:31 v #24308 > > y1="424" x2="94" y2="75"/> -00:26:31 v #24309 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="107" -00:26:31 v #24310 > > y1="424" x2="107" y2="75"/> -00:26:31 v #24311 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="119" -00:26:31 v #24312 > > y1="424" x2="119" y2="75"/> -00:26:31 v #24313 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="132" -00:26:31 v #24314 > > y1="424" x2="132" y2="75"/> -00:26:31 v #24315 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="144" -00:26:31 v #24316 > > y1="424" x2="144" y2="75"/> -00:26:31 v #24317 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="157" -00:26:31 v #24318 > > y1="424" x2="157" y2="75"/> -00:26:31 v #24319 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="169" -00:26:31 v #24320 > > y1="424" x2="169" y2="75"/> -00:26:31 v #24321 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="182" -00:26:31 v #24322 > > y1="424" x2="182" y2="75"/> -00:26:31 v #24323 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="194" -00:26:31 v #24324 > > y1="424" x2="194" y2="75"/> -00:26:31 v #24325 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="207" -00:26:31 v #24326 > > y1="424" x2="207" y2="75"/> -00:26:31 v #24327 > > │ <line opacit...85,209 590,209 "/> -00:26:31 v #24328 > > │ <text x="617" y="168" dy="0.5ex" text-anchor="end" -00:26:31 v #24329 > > font-family="sans-serif" font-size="9.67741935483871" opacity="1" -00:26:31 v #24330 > > fill="#FFFFFF"> -00:26:31 v #24331 > > │ 0.2 -00:26:31 v #24332 > > │ </text> -00:26:31 v #24333 > > │ <polyline fill="none" opacity="1" stroke="#FFFFFF" -00:26:31 v #24334 > > stroke-width="1" points="585,168 590,168 "/> -00:26:31 v #24335 > > │ <text x="617" y="127" dy="0.5ex" text-anchor="end" -00:26:31 v #24336 > > font-family="sans-serif" font-size="9.67741935483871" opacity="1" -00:26:31 v #24337 > > fill="#FFFFFF"> -00:26:31 v #24338 > > │ 0.4 -00:26:31 v #24339 > > │ </text> -00:26:31 v #24340 > > │ <polyline fill="none" opacity="1" stroke="#FFFFFF" -00:26:31 v #24341 > > stroke-width="1" points="585,127 590,127 "/> -00:26:31 v #24342 > > │ <text x="617" y="85" dy="0.5ex" text-anchor="end" -00:26:31 v #24343 > > font-family="sans-serif" font-size="9.67741935483871" opacity="1" -00:26:31 v #24344 > > fill="#FFFFFF"> -00:26:31 v #24345 > > │ 0.6 -00:26:31 v #24346 > > │ </text> -00:26:31 v #24347 > > │ <polyline fill="none" opacity="1" stroke="#FFFFFF" -00:26:31 v #24348 > > stroke-width="1" points="585,85 590,85 "/> -00:26:31 v #24349 > > │ <polyline fill="none" opacity="1" stroke="#FF0000" -00:26:31 v #24350 > > stroke-width="1" points="69,85 82,94 94,102 107,110 119,118 132,127 144,135 -00:26:31 v #24351 > > 157,143 169,151 182,159 194,168 207,176 219,184 232,192 244,201 257,209 269,217 -00:26:31 v #24352 > > 282,225 294,234 307,242 319,250 331,258 344,266 356,275 369,283 381,291 394,299 -00:26:31 v #24353 > > 406,308 419,316 431,324 444,332 456,341 469,349 481,357 494,365 506,373 519,382 -00:26:31 v #24354 > > 531,390 544,398 556,406 569,415 "/> -00:26:31 v #24355 > > │ <rect x="415" y="235" width="165" height="30" opacity="1" -00:26:31 v #24356 > > fill="none" stroke="#FFFFFF"/> -00:26:31 v #24357 > > │ <text x="455" y="245" dy="0.76em" text-anchor="start" -00:26:31 v #24358 > > font-family="sans-serif" font-size="9.67741935483871" opacity="1" -00:26:31 v #24359 > > fill="#FFFFFF"> -00:26:31 v #24360 > > │ velocity of car (m/s) -00:26:31 v #24361 > > │ </text> -00:26:31 v #24362 > > │ <polyline fill="none" opacity="1" stroke="#FF0000" -00:26:31 v #24363 > > stroke-width="1" points="425,250 445,250 "/> -00:26:31 v #24364 > > │ </svg> -00:26:31 v #24365 > > │ -00:26:31 v #24366 > > -00:26:31 v #24367 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:26:31 v #24368 > > │ ### derivative -00:26:31 v #24369 > > -00:26:31 v #24370 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:31 v #24371 > > type derivative = (f64 -> f64) -> f64 -> f64 -00:26:31 v #24372 > > -00:26:31 v #24373 > > inl derivative dt : derivative = -00:26:31 v #24374 > > fun x t => -00:26:31 v #24375 > > (x (t + dt / 2) - x (t - dt / 2)) / dt -00:26:31 v #24376 > > -00:26:31 v #24377 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:31 v #24378 > > //// test -00:26:31 v #24379 > > -00:26:31 v #24380 > > derivative 1 (fun x => x ** 4 / 4) 1 - 1 -00:26:31 v #24381 > > |> _assert_approx_eq None 0.25 -00:26:31 v #24382 > > -00:26:31 v #24383 > > derivative 0.001 (fun x => x ** 4 / 4) 1 - 1 -00:26:31 v #24384 > > |> _assert_approx_eq None 0.0000002499998827953931 -00:26:31 v #24385 > > -00:26:31 v #24386 > > derivative 0.000001 (fun x => x ** 4 / 4) 1 - 1 -00:26:31 v #24387 > > |> _assert_approx_eq None 0.000000000001000088900582341 -00:26:31 v #24388 > > -00:26:31 v #24389 > > derivative 0.000000001 (fun x => x ** 4 / 4) 1 - 1 -00:26:31 v #24390 > > |> _assert_approx_eq None 0.00000008274037099909037 -00:26:31 v #24391 > > -00:26:31 v #24392 > > derivative 0.000000000001 (fun x => x ** 4 / 4) 1 - 1 -00:26:31 v #24393 > > |> _assert_approx_eq None 0.00008890058234101161 -00:26:31 v #24394 > > -00:26:31 v #24395 > > derivative 0.000000000000001 (fun x => x ** 4 / 4) 1 - 1 -00:26:31 v #24396 > > |> _assert_approx_eq None -0.0007992778373592246 -00:26:31 v #24397 > > -00:26:31 v #24398 > > derivative 0.000000000000000001 (fun x => x ** 4 / 4) 1 - 1 -00:26:31 v #24399 > > |> _assert_approx_eq None -1 -00:26:31 v #24400 > > -00:26:31 v #24401 > > ── [ 453.82ms - stdout ] ─────────────────────────────────────────────────────── -00:26:31 v #24402 > > │ __assert_approx_eq / actual: 0.25 / expected: 0.25 -00:26:31 v #24403 > > │ __assert_approx_eq / actual: 2.499998828e-07 / expected: -00:26:31 v #24404 > > 2.499998828e-07 -00:26:31 v #24405 > > │ __assert_approx_eq / actual: 1.000088901e-12 / expected: -00:26:31 v #24406 > > 1.000088901e-12 -00:26:31 v #24407 > > │ __assert_approx_eq / actual: 8.2740371e-08 / expected: -00:26:31 v #24408 > > 8.2740371e-08 -00:26:31 v #24409 > > │ __assert_approx_eq / actual: 8.890058234e-05 / expected: -00:26:31 v #24410 > > 8.890058234e-05 -00:26:31 v #24411 > > │ __assert_approx_eq / actual: -0.0007992778374 / expected: -00:26:31 v #24412 > > -0.0007992778374 -00:26:31 v #24413 > > │ __assert_approx_eq / actual: -1.0 / expected: -1.0 -00:26:31 v #24414 > > │ -00:26:31 v #24415 > > -00:26:31 v #24416 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:26:31 v #24417 > > │ ### integration -00:26:31 v #24418 > > -00:26:31 v #24419 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:31 v #24420 > > type integration = (f64 -> f64) -> f64 -> f64 -> f64 -00:26:31 v #24421 > > -00:26:31 v #24422 > > inl integral dt : integration = -00:26:31 v #24423 > > fun f a b => -00:26:31 v #24424 > > inl rec loop t y = -00:26:31 v #24425 > > if t < b -00:26:31 v #24426 > > then loop (t + dt) (y + f t * dt) -00:26:31 v #24427 > > else t, y -00:26:31 v #24428 > > loop (a + dt / 2) 0 -00:26:31 v #24429 > > |> snd -00:26:32 v #24430 > > -00:26:32 v #24431 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:32 v #24432 > > //// test -00:26:32 v #24433 > > -00:26:32 v #24434 > > integral 0.01 math.square 0 1 -00:26:32 v #24435 > > |> _assert_approx_eq None 0.33332500000000004 -00:26:32 v #24436 > > -00:26:32 v #24437 > > ── [ 432.96ms - stdout ] ─────────────────────────────────────────────────────── -00:26:32 v #24438 > > │ __assert_approx_eq / actual: 0.333325 / expected: 0.333325 -00:26:32 v #24439 > > │ -00:26:32 v #24440 > > -00:26:32 v #24441 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:32 v #24442 > > inl integral' dt : integration = -00:26:32 v #24443 > > fun f a b => -00:26:32 v #24444 > > listm'.init_series (a + dt / 2) (b - dt / 2) dt -00:26:32 v #24445 > > |> listm.map (f >> (*) dt) -00:26:32 v #24446 > > |> listm'.sum -00:26:33 v #24447 > > -00:26:33 v #24448 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:33 v #24449 > > //// test -00:26:33 v #24450 > > -00:26:33 v #24451 > > integral' 0.1 math.square 0 1 -00:26:33 v #24452 > > |> _assert_approx_eq None (integral 0.1 math.square 0 1) -00:26:33 v #24453 > > -00:26:33 v #24454 > > ── [ 426.49ms - stdout ] ─────────────────────────────────────────────────────── -00:26:33 v #24455 > > │ __assert_approx_eq / actual: 0.3325 / expected: 0.3325 -00:26:33 v #24456 > > │ -00:26:33 v #24457 > > -00:26:33 v #24458 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:33 v #24459 > > inl integral'' dt : integration = -00:26:33 v #24460 > > fun f x y => -00:26:33 v #24461 > > am'.init_series (x + dt / 2) (y - dt / 2) dt -00:26:33 v #24462 > > |> fun x => a x : _ int _ -00:26:33 v #24463 > > |> am.map (f >> (*) dt) -00:26:33 v #24464 > > |> am'.sum -00:26:34 v #24465 > > -00:26:34 v #24466 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:34 v #24467 > > //// test -00:26:34 v #24468 > > -00:26:34 v #24469 > > integral'' 0.01 math.square 0 1 -00:26:34 v #24470 > > |> _assert_approx_eq None (integral 0.01 math.square 0 1) -00:26:34 v #24471 > > -00:26:34 v #24472 > > ── [ 449.37ms - stdout ] ─────────────────────────────────────────────────────── -00:26:34 v #24473 > > │ __assert_approx_eq / actual: 0.333325 / expected: 0.333325 -00:26:34 v #24474 > > │ -00:26:34 v #24475 > > -00:26:34 v #24476 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:26:34 v #24477 > > │ ### anti_derivative -00:26:34 v #24478 > > -00:26:34 v #24479 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:34 v #24480 > > inl anti_derivative dt v0 a t = -00:26:34 v #24481 > > v0 + integral' dt a 0 t -00:26:35 v #24482 > > -00:26:35 v #24483 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:26:35 v #24484 > > │ ### velocity_ft -00:26:35 v #24485 > > -00:26:35 v #24486 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:35 v #24487 > > type velocity_ft = mass -> velocity -> list (time -> force) -> (time -> -00:26:35 v #24488 > > velocity) -00:26:35 v #24489 > > -00:26:35 v #24490 > > inl velocity_ft dt : velocity_ft = -00:26:35 v #24491 > > fun m v0 fs => -00:26:35 v #24492 > > inl f_net t = fs |> listm.map (fun f => f t) |> listm'.sum -00:26:35 v #24493 > > inl a t = f_net t / m -00:26:35 v #24494 > > anti_derivative dt v0 a -00:26:35 v #24495 > > -00:26:35 v #24496 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:26:35 v #24497 > > │ ### position_ft -00:26:35 v #24498 > > -00:26:35 v #24499 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:35 v #24500 > > type position_ft = mass -> position -> velocity -> list (time -> force) -> (time -00:26:35 v #24501 > > -> position) -00:26:35 v #24502 > > -00:26:35 v #24503 > > inl position_ft dt : position_ft = -00:26:35 v #24504 > > fun m x0 v0 fs => -00:26:35 v #24505 > > velocity_ft dt m v0 fs -00:26:35 v #24506 > > |> anti_derivative dt x0 -00:26:35 v #24507 > > -00:26:35 v #24508 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:35 v #24509 > > //// test -00:26:35 v #24510 > > -00:26:35 v #24511 > > inl pedal_coast (t : time) : force = -00:26:35 v #24512 > > inl t_cycle = 20 -00:26:35 v #24513 > > inl n_complete : i32 = t / t_cycle |> conv -00:26:35 v #24514 > > inl remainder = t - conv n_complete * t_cycle -00:26:35 v #24515 > > if remainder > 0 && remainder < 10 -00:26:35 v #24516 > > then 10 -00:26:35 v #24517 > > else 0 -00:26:35 v #24518 > > -00:26:35 v #24519 > > inl x = am'.init_series -5f64 45 0.1 -00:26:35 v #24520 > > inl y = x |> am'.map_base pedal_coast -00:26:35 v #24521 > > "child pedaling then coasting", "time (s)", "", ;[[ "force on bike (N)", x, y ]] -00:26:36 v #24522 > > -00:26:36 v #24523 > > ── [ 450.88ms - return value ] ───────────────────────────────────────────────── -00:26:36 v #24524 > > │ <svg width="640" height="480" viewBox="0 0 640 480" -00:26:36 v #24525 > > xmlns="http://www.w3.org/2000/svg"> -00:26:36 v #24526 > > │ <rect x="0" y="0" width="640" height="480" opacity="1" -00:26:36 v #24527 > > fill="#141414" stroke="none"/> -00:26:36 v #24528 > > │ <text x="320" y="10" dy="0.76em" text-anchor="middle" -00:26:36 v #24529 > > font-family="sans-serif" font-size="9.67741935483871" opacity="1" -00:26:36 v #24530 > > fill="#FFFFFF"> -00:26:36 v #24531 > > │ child pedaling then coasting -00:26:36 v #24532 > > │ </text> -00:26:36 v #24533 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="59" -00:26:36 v #24534 > > y1="424" x2="59" y2="75"/> -00:26:36 v #24535 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" -00:26:36 v #24536 > > y1="424" x2="69" y2="75"/> -00:26:36 v #24537 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="79" -00:26:36 v #24538 > > y1="424" x2="79" y2="75"/> -00:26:36 v #24539 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="89" -00:26:36 v #24540 > > y1="424" x2="89" y2="75"/> -00:26:36 v #24541 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="99" -00:26:36 v #24542 > > y1="424" x2="99" y2="75"/> -00:26:36 v #24543 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="109" -00:26:36 v #24544 > > y1="424" x2="109" y2="75"/> -00:26:36 v #24545 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="119" -00:26:36 v #24546 > > y1="424" x2="119" y2="75"/> -00:26:36 v #24547 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="129" -00:26:36 v #24548 > > y1="424" x2="129" y2="75"/> -00:26:36 v #24549 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="139" -00:26:36 v #24550 > > y1="424" x2="139" y2="75"/> -00:26:36 v #24551 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="149" -00:26:36 v #24552 > > y1="424" x2="149" y2="75"/> -00:26:36 v #24553 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="159" -00:26:36 v #24554 > > y1="424" x2="159" y2="75"/> -00:26:36 v #24555 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="169" -00:26:36 v #24556 > > y1="424" x2="169" y2="75"/> -00:26:36 v #24557 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="179" -00:26:36 v #24558 > > y1="424" x2="179" y2="75"/> -00:26:36 v #24559 > > │ <line...421,415 422,415 423,415 424,415 425,415 426,415 -00:26:36 v #24560 > > 427,415 428,415 429,415 430,415 431,415 432,415 433,415 434,415 435,415 436,415 -00:26:36 v #24561 > > 437,415 438,415 439,415 440,415 441,415 442,415 443,415 444,415 445,415 446,415 -00:26:36 v #24562 > > 447,415 448,415 449,415 450,415 451,415 452,415 453,415 454,415 455,415 456,415 -00:26:36 v #24563 > > 457,415 458,415 459,415 460,415 461,415 462,415 463,415 464,415 465,415 466,415 -00:26:36 v #24564 > > 467,415 468,415 469,415 470,415 471,415 472,415 473,415 474,415 475,415 476,415 -00:26:36 v #24565 > > 477,415 478,415 479,415 480,415 481,415 482,415 483,415 484,415 485,415 486,415 -00:26:36 v #24566 > > 487,415 488,415 489,415 490,415 491,415 492,415 493,415 494,415 495,415 496,415 -00:26:36 v #24567 > > 497,415 498,415 499,415 500,415 501,415 502,415 503,415 504,415 505,415 506,415 -00:26:36 v #24568 > > 507,415 508,415 509,415 510,415 511,415 512,415 513,415 514,415 515,415 516,415 -00:26:36 v #24569 > > 517,415 518,415 519,415 520,85 521,85 522,85 523,85 524,85 525,85 526,85 527,85 -00:26:36 v #24570 > > 528,85 529,85 530,85 531,85 532,85 533,85 534,85 535,85 536,85 537,85 538,85 -00:26:36 v #24571 > > 539,85 540,85 541,85 542,85 543,85 544,85 545,85 546,85 547,85 548,85 549,85 -00:26:36 v #24572 > > 550,85 551,85 552,85 553,85 554,85 555,85 556,85 557,85 558,85 559,85 560,85 -00:26:36 v #24573 > > 561,85 562,85 563,85 564,85 565,85 566,85 567,85 568,85 569,85 "/> -00:26:36 v #24574 > > │ <rect x="437" y="235" width="143" height="30" opacity="1" -00:26:36 v #24575 > > fill="none" stroke="#FFFFFF"/> -00:26:36 v #24576 > > │ <text x="477" y="245" dy="0.76em" text-anchor="start" -00:26:36 v #24577 > > font-family="sans-serif" font-size="9.67741935483871" opacity="1" -00:26:36 v #24578 > > fill="#FFFFFF"> -00:26:36 v #24579 > > │ force on bike (N) -00:26:36 v #24580 > > │ </text> -00:26:36 v #24581 > > │ <polyline fill="none" opacity="1" stroke="#FF0000" -00:26:36 v #24582 > > stroke-width="1" points="447,250 467,250 "/> -00:26:36 v #24583 > > │ </svg> -00:26:36 v #24584 > > │ -00:26:36 v #24585 > > -00:26:36 v #24586 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:36 v #24587 > > //// test -00:26:36 v #24588 > > -00:26:36 v #24589 > > inl x = am'.init_series -5 45 1 -00:26:36 v #24590 > > inl y = x |> am'.map_base (position_ft 0.1f64 20 0 0 [[ pedal_coast ]]) -00:26:36 v #24591 > > "child pedaling then coasting", "time (s)", "", ;[[ "position of bike (m)", x, y -00:26:36 v #24592 > > ]] -00:26:36 v #24593 > > -00:26:36 v #24594 > > ── [ 654.71ms - return value ] ───────────────────────────────────────────────── -00:26:36 v #24595 > > │ <svg width="640" height="480" viewBox="0 0 640 480" -00:26:36 v #24596 > > xmlns="http://www.w3.org/2000/svg"> -00:26:36 v #24597 > > │ <rect x="0" y="0" width="640" height="480" opacity="1" -00:26:36 v #24598 > > fill="#141414" stroke="none"/> -00:26:36 v #24599 > > │ <text x="320" y="10" dy="0.76em" text-anchor="middle" -00:26:36 v #24600 > > font-family="sans-serif" font-size="9.67741935483871" opacity="1" -00:26:36 v #24601 > > fill="#FFFFFF"> -00:26:36 v #24602 > > │ child pedaling then coasting -00:26:36 v #24603 > > │ </text> -00:26:36 v #24604 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="59" -00:26:36 v #24605 > > y1="424" x2="59" y2="75"/> -00:26:36 v #24606 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" -00:26:36 v #24607 > > y1="424" x2="69" y2="75"/> -00:26:36 v #24608 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="79" -00:26:36 v #24609 > > y1="424" x2="79" y2="75"/> -00:26:36 v #24610 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="89" -00:26:36 v #24611 > > y1="424" x2="89" y2="75"/> -00:26:36 v #24612 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="99" -00:26:36 v #24613 > > y1="424" x2="99" y2="75"/> -00:26:36 v #24614 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="109" -00:26:36 v #24615 > > y1="424" x2="109" y2="75"/> -00:26:36 v #24616 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="119" -00:26:36 v #24617 > > y1="424" x2="119" y2="75"/> -00:26:36 v #24618 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="129" -00:26:36 v #24619 > > y1="424" x2="129" y2="75"/> -00:26:36 v #24620 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="139" -00:26:36 v #24621 > > y1="424" x2="139" y2="75"/> -00:26:36 v #24622 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="149" -00:26:36 v #24623 > > y1="424" x2="149" y2="75"/> -00:26:36 v #24624 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="159" -00:26:36 v #24625 > > y1="424" x2="159" y2="75"/> -00:26:36 v #24626 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="169" -00:26:36 v #24627 > > y1="424" x2="169" y2="75"/> -00:26:36 v #24628 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="179" -00:26:36 v #24629 > > y1="424" x2="179" y2="75"/> -00:26:36 v #24630 > > │ <line...serif" font-size="9.67741935483871" opacity="1" -00:26:36 v #24631 > > fill="#FFFFFF"> -00:26:36 v #24632 > > │ 200.0 -00:26:36 v #24633 > > │ </text> -00:26:36 v #24634 > > │ <polyline fill="none" opacity="1" stroke="#FFFFFF" -00:26:36 v #24635 > > stroke-width="1" points="585,201 590,201 "/> -00:26:36 v #24636 > > │ <text x="595" y="147" dy="0.5ex" text-anchor="start" -00:26:36 v #24637 > > font-family="sans-serif" font-size="9.67741935483871" opacity="1" -00:26:36 v #24638 > > fill="#FFFFFF"> -00:26:36 v #24639 > > │ 250.0 -00:26:36 v #24640 > > │ </text> -00:26:36 v #24641 > > │ <polyline fill="none" opacity="1" stroke="#FFFFFF" -00:26:36 v #24642 > > stroke-width="1" points="585,147 590,147 "/> -00:26:36 v #24643 > > │ <text x="595" y="94" dy="0.5ex" text-anchor="start" -00:26:36 v #24644 > > font-family="sans-serif" font-size="9.67741935483871" opacity="1" -00:26:36 v #24645 > > fill="#FFFFFF"> -00:26:36 v #24646 > > │ 300.0 -00:26:36 v #24647 > > │ </text> -00:26:36 v #24648 > > │ <polyline fill="none" opacity="1" stroke="#FFFFFF" -00:26:36 v #24649 > > stroke-width="1" points="585,94 590,94 "/> -00:26:36 v #24650 > > │ <polyline fill="none" opacity="1" stroke="#FF0000" -00:26:36 v #24651 > > stroke-width="1" points="69,415 79,415 89,415 99,415 109,415 119,415 129,414 -00:26:36 v #24652 > > 139,413 149,412 159,410 169,408 179,405 189,401 199,397 209,393 219,388 229,382 -00:26:36 v #24653 > > 239,377 249,372 259,366 269,361 279,356 289,350 299,345 309,340 319,334 329,329 -00:26:36 v #24654 > > 339,322 349,316 359,308 369,301 379,292 389,284 399,274 409,264 419,254 429,243 -00:26:36 v #24655 > > 439,232 449,221 459,210 469,199 479,189 489,178 499,167 509,157 519,146 529,135 -00:26:36 v #24656 > > 539,123 549,111 559,99 569,85 "/> -00:26:36 v #24657 > > │ <rect x="421" y="235" width="159" height="30" opacity="1" -00:26:36 v #24658 > > fill="none" stroke="#FFFFFF"/> -00:26:36 v #24659 > > │ <text x="461" y="245" dy="0.76em" text-anchor="start" -00:26:36 v #24660 > > font-family="sans-serif" font-size="9.67741935483871" opacity="1" -00:26:36 v #24661 > > fill="#FFFFFF"> -00:26:36 v #24662 > > │ position of bike (m) -00:26:36 v #24663 > > │ </text> -00:26:36 v #24664 > > │ <polyline fill="none" opacity="1" stroke="#FF0000" -00:26:36 v #24665 > > stroke-width="1" points="431,250 451,250 "/> -00:26:36 v #24666 > > │ </svg> -00:26:36 v #24667 > > │ -00:26:37 v #24668 > > -00:26:37 v #24669 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:26:37 v #24670 > > │ ### velocity_fv -00:26:37 v #24671 > > -00:26:37 v #24672 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:37 v #24673 > > inl newton_second_v m fs v0 = -00:26:37 v #24674 > > fs |> listm.map (fun f => f v0) |> listm'.sum |> fun x => x / m -00:26:37 v #24675 > > -00:26:37 v #24676 > > inl update_velocity dt m fs v0 = -00:26:37 v #24677 > > v0 + newton_second_v m fs v0 * dt -00:26:37 v #24678 > > -00:26:37 v #24679 > > inl velocity_fv dt m v0 fs t = -00:26:37 v #24680 > > stream.iterate (update_velocity dt m fs) v0 -00:26:37 v #24681 > > |> stream.try_item (t / dt |> math.round |> abs) -00:26:37 v #24682 > > |> optionm'.default_value 0 -00:26:37 v #24683 > > -00:26:37 v #24684 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:37 v #24685 > > inl f_air drag rho area v = -00:26:37 v #24686 > > -drag * rho * area * abs v * v / 2 -00:26:37 v #24687 > > -00:26:37 v #24688 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:37 v #24689 > > //// test -00:26:37 v #24690 > > -00:26:37 v #24691 > > inl x = am'.init_series 0 60 0.5 -00:26:37 v #24692 > > inl y = x |> am'.map_base (velocity_fv 1 70 0f64 [[ fun _ => 100; f_air 2 1.225 -00:26:37 v #24693 > > 0.6 ]]) -00:26:37 v #24694 > > "bike velocity", "time (s)", "", ;[[ "velocity of bike (m/s)", x, y ]] -00:26:38 v #24695 > > -00:26:38 v #24696 > > ── [ 681.42ms - return value ] ───────────────────────────────────────────────── -00:26:38 v #24697 > > │ <svg width="640" height="480" viewBox="0 0 640 480" -00:26:38 v #24698 > > xmlns="http://www.w3.org/2000/svg"> -00:26:38 v #24699 > > │ <rect x="0" y="0" width="640" height="480" opacity="1" -00:26:38 v #24700 > > fill="#141414" stroke="none"/> -00:26:38 v #24701 > > │ <text x="320" y="10" dy="0.76em" text-anchor="middle" -00:26:38 v #24702 > > font-family="sans-serif" font-size="9.67741935483871" opacity="1" -00:26:38 v #24703 > > fill="#FFFFFF"> -00:26:38 v #24704 > > │ bike velocity -00:26:38 v #24705 > > │ </text> -00:26:38 v #24706 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="61" -00:26:38 v #24707 > > y1="424" x2="61" y2="75"/> -00:26:38 v #24708 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" -00:26:38 v #24709 > > y1="424" x2="69" y2="75"/> -00:26:38 v #24710 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="78" -00:26:38 v #24711 > > y1="424" x2="78" y2="75"/> -00:26:38 v #24712 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="86" -00:26:38 v #24713 > > y1="424" x2="86" y2="75"/> -00:26:38 v #24714 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="94" -00:26:38 v #24715 > > y1="424" x2="94" y2="75"/> -00:26:38 v #24716 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="103" -00:26:38 v #24717 > > y1="424" x2="103" y2="75"/> -00:26:38 v #24718 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="111" -00:26:38 v #24719 > > y1="424" x2="111" y2="75"/> -00:26:38 v #24720 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="119" -00:26:38 v #24721 > > y1="424" x2="119" y2="75"/> -00:26:38 v #24722 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="128" -00:26:38 v #24723 > > y1="424" x2="128" y2="75"/> -00:26:38 v #24724 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="136" -00:26:38 v #24725 > > y1="424" x2="136" y2="75"/> -00:26:38 v #24726 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="144" -00:26:38 v #24727 > > y1="424" x2="144" y2="75"/> -00:26:38 v #24728 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="153" -00:26:38 v #24729 > > y1="424" x2="153" y2="75"/> -00:26:38 v #24730 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="161" -00:26:38 v #24731 > > y1="424" x2="161" y2="75"/> -00:26:38 v #24732 > > │ <line opacity="1" st...t" font-family="sans-serif" -00:26:38 v #24733 > > font-size="9.67741935483871" opacity="1" fill="#FFFFFF"> -00:26:38 v #24734 > > │ 12.0 -00:26:38 v #24735 > > │ </text> -00:26:38 v #24736 > > │ <polyline fill="none" opacity="1" stroke="#FFFFFF" -00:26:38 v #24737 > > stroke-width="1" points="585,76 590,76 "/> -00:26:38 v #24738 > > │ <polyline fill="none" opacity="1" stroke="#FF0000" -00:26:38 v #24739 > > stroke-width="1" points="69,415 74,415 78,374 82,335 86,335 90,335 94,297 99,261 -00:26:38 v #24740 > > 103,261 107,261 111,230 115,202 119,202 124,202 128,179 132,159 136,159 140,159 -00:26:38 v #24741 > > 144,143 148,130 153,130 157,130 161,120 165,112 169,112 173,112 178,106 182,101 -00:26:38 v #24742 > > 186,101 190,101 194,97 198,94 203,94 207,94 211,92 215,91 219,91 223,91 228,89 -00:26:38 v #24743 > > 232,88 236,88 240,88 244,88 248,87 252,87 257,87 261,87 265,86 269,86 273,86 -00:26:38 v #24744 > > 277,86 282,86 286,86 290,86 294,86 298,86 302,86 307,86 311,86 315,86 319,86 -00:26:38 v #24745 > > 323,86 327,86 331,85 336,85 340,85 344,85 348,85 352,85 356,85 361,85 365,85 -00:26:38 v #24746 > > 369,85 373,85 377,85 381,85 386,85 390,85 394,85 398,85 402,85 406,85 410,85 -00:26:38 v #24747 > > 415,85 419,85 423,85 427,85 431,85 435,85 440,85 444,85 448,85 452,85 456,85 -00:26:38 v #24748 > > 460,85 465,85 469,85 473,85 477,85 481,85 485,85 490,85 494,85 498,85 502,85 -00:26:38 v #24749 > > 506,85 510,85 514,85 519,85 523,85 527,85 531,85 535,85 539,85 544,85 548,85 -00:26:38 v #24750 > > 552,85 556,85 560,85 564,85 569,85 "/> -00:26:38 v #24751 > > │ <rect x="410" y="235" width="170" height="30" opacity="1" -00:26:38 v #24752 > > fill="none" stroke="#FFFFFF"/> -00:26:38 v #24753 > > │ <text x="450" y="245" dy="0.76em" text-anchor="start" -00:26:38 v #24754 > > font-family="sans-serif" font-size="9.67741935483871" opacity="1" -00:26:38 v #24755 > > fill="#FFFFFF"> -00:26:38 v #24756 > > │ velocity of bike (m/s) -00:26:38 v #24757 > > │ </text> -00:26:38 v #24758 > > │ <polyline fill="none" opacity="1" stroke="#FF0000" -00:26:38 v #24759 > > stroke-width="1" points="420,250 440,250 "/> -00:26:38 v #24760 > > │ </svg> -00:26:38 v #24761 > > │ -00:26:38 v #24762 > > -00:26:38 v #24763 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:26:38 v #24764 > > │ ### velocity_ftv -00:26:38 v #24765 > > -00:26:38 v #24766 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:38 v #24767 > > inl newton_second_tv m fs (t, v0) = -00:26:38 v #24768 > > inl f_net = fs |> listm.map (fun f => f (t, v0)) |> listm'.sum -00:26:38 v #24769 > > inl acc = f_net / m -00:26:38 v #24770 > > 1, acc -00:26:38 v #24771 > > -00:26:38 v #24772 > > inl update_tv dt m fs (t, v0) = -00:26:38 v #24773 > > inl dtdt, dvdt = newton_second_tv m fs (t, v0) -00:26:38 v #24774 > > t + dtdt * dt, v0 + dvdt * dt -00:26:38 v #24775 > > -00:26:38 v #24776 > > inl velocity_ftv dt m tv0 fs t = -00:26:38 v #24777 > > stream.iterate (join update_tv dt m fs) tv0 -00:26:38 v #24778 > > |> stream.try_item (t / dt |> math.round |> abs) -00:26:38 v #24779 > > |> optionm.map snd -00:26:38 v #24780 > > |> optionm'.default_value 0 -00:26:38 v #24781 > > -00:26:38 v #24782 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:38 v #24783 > > //// test -00:26:38 v #24784 > > -00:26:38 v #24785 > > inl x = am'.init_series 0 100 0.1 -00:26:38 v #24786 > > inl y = -00:26:38 v #24787 > > x -00:26:38 v #24788 > > |> am'.map_base ( -00:26:38 v #24789 > > velocity_ftv 0.1 20 (dyn (0, 0)) [[ fun (t, _) => pedal_coast t; fun (_, -00:26:38 v #24790 > > v) => f_air 2 1.225 0.5 v ]] -00:26:38 v #24791 > > ) -00:26:38 v #24792 > > "pedaling and coasting with air", "time (s)", "", ;[[ "velocity of bike (m/s)", -00:26:38 v #24793 > > x, y ]] -00:26:39 v #24794 > > -00:26:39 v #24795 > > ── [ 665.80ms - return value ] ───────────────────────────────────────────────── -00:26:39 v #24796 > > │ <svg width="640" height="480" viewBox="0 0 640 480" -00:26:39 v #24797 > > xmlns="http://www.w3.org/2000/svg"> -00:26:39 v #24798 > > │ <rect x="0" y="0" width="640" height="480" opacity="1" -00:26:39 v #24799 > > fill="#141414" stroke="none"/> -00:26:39 v #24800 > > │ <text x="320" y="10" dy="0.76em" text-anchor="middle" -00:26:39 v #24801 > > font-family="sans-serif" font-size="9.67741935483871" opacity="1" -00:26:39 v #24802 > > fill="#FFFFFF"> -00:26:39 v #24803 > > │ pedaling and coasting with air -00:26:39 v #24804 > > │ </text> -00:26:39 v #24805 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="59" -00:26:39 v #24806 > > y1="424" x2="59" y2="75"/> -00:26:39 v #24807 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" -00:26:39 v #24808 > > y1="424" x2="69" y2="75"/> -00:26:39 v #24809 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="79" -00:26:39 v #24810 > > y1="424" x2="79" y2="75"/> -00:26:39 v #24811 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="89" -00:26:39 v #24812 > > y1="424" x2="89" y2="75"/> -00:26:39 v #24813 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="99" -00:26:39 v #24814 > > y1="424" x2="99" y2="75"/> -00:26:39 v #24815 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="109" -00:26:39 v #24816 > > y1="424" x2="109" y2="75"/> -00:26:39 v #24817 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="119" -00:26:39 v #24818 > > y1="424" x2="119" y2="75"/> -00:26:39 v #24819 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="129" -00:26:39 v #24820 > > y1="424" x2="129" y2="75"/> -00:26:39 v #24821 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="139" -00:26:39 v #24822 > > y1="424" x2="139" y2="75"/> -00:26:39 v #24823 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="149" -00:26:39 v #24824 > > y1="424" x2="149" y2="75"/> -00:26:39 v #24825 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="159" -00:26:39 v #24826 > > y1="424" x2="159" y2="75"/> -00:26:39 v #24827 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="169" -00:26:39 v #24828 > > y1="424" x2="169" y2="75"/> -00:26:39 v #24829 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="179" -00:26:39 v #24830 > > y1="424" x2="179" y2="75"/> -00:26:39 v #24831 > > │ <li... 497,128 497,126 498,125 498,123 499,122 499,121 -00:26:39 v #24832 > > 500,119 500,118 501,117 501,116 502,114 502,113 503,112 503,111 504,110 504,109 -00:26:39 v #24833 > > 505,108 505,107 506,106 506,105 507,104 507,103 508,102 508,101 509,100 509,99 -00:26:39 v #24834 > > 510,98 510,98 511,97 511,96 512,95 512,94 513,94 513,93 514,92 514,92 515,91 -00:26:39 v #24835 > > 515,90 516,90 516,89 517,88 517,88 518,87 518,87 519,86 519,85 520,89 520,93 -00:26:39 v #24836 > > 521,97 521,100 522,104 522,107 523,110 523,114 524,117 524,120 525,123 525,126 -00:26:39 v #24837 > > 526,129 526,132 527,135 527,137 528,140 528,143 529,145 529,148 530,150 530,153 -00:26:39 v #24838 > > 531,155 531,158 532,160 532,162 533,165 533,167 534,169 534,171 535,173 535,175 -00:26:39 v #24839 > > 536,177 536,179 537,181 537,183 538,185 538,187 539,189 539,190 540,192 540,194 -00:26:39 v #24840 > > 541,196 541,197 542,199 542,201 543,202 543,204 544,205 544,207 545,208 545,210 -00:26:39 v #24841 > > 546,211 546,213 547,214 547,216 548,217 548,219 549,220 549,221 550,223 550,224 -00:26:39 v #24842 > > 551,225 551,226 552,228 552,229 553,230 553,231 554,232 554,234 555,235 555,236 -00:26:39 v #24843 > > 556,237 556,238 557,239 557,240 558,241 558,242 559,243 559,245 560,246 560,247 -00:26:39 v #24844 > > 561,248 561,249 562,249 562,250 563,251 563,252 564,253 564,254 565,255 565,256 -00:26:39 v #24845 > > 566,257 566,258 567,259 567,259 568,260 568,261 569,262 "/> -00:26:39 v #24846 > > │ <rect x="410" y="235" width="170" height="30" opacity="1" -00:26:39 v #24847 > > fill="none" stroke="#FFFFFF"/> -00:26:39 v #24848 > > │ <text x="450" y="245" dy="0.76em" text-anchor="start" -00:26:39 v #24849 > > font-family="sans-serif" font-size="9.67741935483871" opacity="1" -00:26:39 v #24850 > > fill="#FFFFFF"> -00:26:39 v #24851 > > │ velocity of bike (m/s) -00:26:39 v #24852 > > │ </text> -00:26:39 v #24853 > > │ <polyline fill="none" opacity="1" stroke="#FF0000" -00:26:39 v #24854 > > stroke-width="1" points="420,250 440,250 "/> -00:26:39 v #24855 > > │ </svg> -00:26:39 v #24856 > > │ -00:26:39 v #24857 > > -00:26:39 v #24858 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:26:39 v #24859 > > │ ### velocity_ftxv -00:26:39 v #24860 > > -00:26:39 v #24861 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:39 v #24862 > > nominal state_1d = time * position * velocity -00:26:39 v #24863 > > nominal rrr = f64 * f64 * f64 -00:26:39 v #24864 > > -00:26:39 v #24865 > > inl newton_second_1d m fs (state_1d (t, x0, v0)) = -00:26:39 v #24866 > > inl f_net = fs |> listm.map (fun f => f (state_1d (t, x0, v0))) |> -00:26:39 v #24867 > > listm'.sum -00:26:39 v #24868 > > inl acc = f_net / m -00:26:39 v #24869 > > rrr (1f64, v0, acc) -00:26:39 v #24870 > > -00:26:39 v #24871 > > inl euler_1d dt deriv (state_1d (t0, x0, v0) as t) = -00:26:39 v #24872 > > inl (rrr (_, _, dvdt)) = deriv t -00:26:39 v #24873 > > inl t1 = t0 + dt -00:26:39 v #24874 > > inl x1 = x0 + v0 * dt -00:26:39 v #24875 > > inl v1 = v0 + dvdt * dt -00:26:39 v #24876 > > state_1d (t1, x1, v1) -00:26:39 v #24877 > > -00:26:39 v #24878 > > inl update_txv dt m fs = -00:26:39 v #24879 > > newton_second_1d m fs |> euler_1d dt -00:26:39 v #24880 > > -00:26:39 v #24881 > > inl states_txv dt m txv0 fs = -00:26:39 v #24882 > > seq.iterate_ (update_txv dt m fs) txv0 -00:26:39 v #24883 > > -00:26:39 v #24884 > > inl velocity_1d sts t = -00:26:39 v #24885 > > inl (state_1d (t0, _, _)) = sts 0 -00:26:39 v #24886 > > inl (state_1d (t1, _, _)) = sts 1 -00:26:39 v #24887 > > inl dt = t1 - t0 -00:26:39 v #24888 > > inl num_steps = t / dt |> math.round |> abs -00:26:39 v #24889 > > inl (state_1d (_, _, v0)) = sts num_steps -00:26:39 v #24890 > > v0 -00:26:39 v #24891 > > -00:26:39 v #24892 > > inl velocity_ftxv dt m txv0 fs = -00:26:39 v #24893 > > states_txv dt m txv0 fs |> velocity_1d -00:26:39 v #24894 > > -00:26:39 v #24895 > > inl position_1d sts t = -00:26:39 v #24896 > > inl (state_1d (t0, _, _)) = sts 0 -00:26:39 v #24897 > > inl (state_1d (t1, _, _)) = sts 1 -00:26:39 v #24898 > > inl dt = t1 - t0 -00:26:39 v #24899 > > inl num_steps = t / dt |> math.round |> abs -00:26:39 v #24900 > > inl (state_1d (_, x0, _)) = sts num_steps -00:26:39 v #24901 > > x0 -00:26:39 v #24902 > > -00:26:39 v #24903 > > inl position_ftxv dt m txv0 fs = -00:26:39 v #24904 > > states_txv dt m txv0 fs |> position_1d -00:26:39 v #24905 > > -00:26:39 v #24906 > > inl spring_force k (state_1d (_, x0, _)) = -00:26:39 v #24907 > > -k * x0 -00:26:40 v #24908 > > -00:26:40 v #24909 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:40 v #24910 > > //// test -00:26:40 v #24911 > > -00:26:40 v #24912 > > inl damped_ho_forces () = -00:26:40 v #24913 > > [[ -00:26:40 v #24914 > > spring_force 0.8 -00:26:40 v #24915 > > fun (state_1d (_, _, v0)) => f_air 2 1.225 (pi * math.square 0.02) v0 -00:26:40 v #24916 > > fun _ => -0.0027 * 9.80665 -00:26:40 v #24917 > > ]] -00:26:40 v #24918 > > -00:26:40 v #24919 > > inl damped_ho_states () = -00:26:40 v #24920 > > states_txv 0.001 0.0027 (state_1d (0, 0.1, 0)) (damped_ho_forces ()) -00:26:40 v #24921 > > -00:26:40 v #24922 > > inl pingpong_position t = -00:26:40 v #24923 > > position_ftxv 0.001 0.0027 (state_1d (0, 0.1, 0)) (damped_ho_forces ()) t -00:26:40 v #24924 > > -00:26:40 v #24925 > > inl x = am'.init_series 0 3 0.01 -00:26:40 v #24926 > > inl y = x |> am'.map_base pingpong_position -00:26:40 v #24927 > > "ping pong ball on a slinky", "time (s)", "", ;[[ "position (m)", x, y ]] -00:26:40 v #24928 > > -00:26:40 v #24929 > > ── [ 475.99ms - return value ] ───────────────────────────────────────────────── -00:26:40 v #24930 > > │ <svg width="640" height="480" viewBox="0 0 640 480" -00:26:40 v #24931 > > xmlns="http://www.w3.org/2000/svg"> -00:26:40 v #24932 > > │ <rect x="0" y="0" width="640" height="480" opacity="1" -00:26:40 v #24933 > > fill="#141414" stroke="none"/> -00:26:40 v #24934 > > │ <text x="320" y="10" dy="0.76em" text-anchor="middle" -00:26:40 v #24935 > > font-family="sans-serif" font-size="9.67741935483871" opacity="1" -00:26:40 v #24936 > > fill="#FFFFFF"> -00:26:40 v #24937 > > │ ping pong ball on a slinky -00:26:40 v #24938 > > │ </text> -00:26:40 v #24939 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="61" -00:26:40 v #24940 > > y1="424" x2="61" y2="75"/> -00:26:40 v #24941 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" -00:26:40 v #24942 > > y1="424" x2="69" y2="75"/> -00:26:40 v #24943 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="78" -00:26:40 v #24944 > > y1="424" x2="78" y2="75"/> -00:26:40 v #24945 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="86" -00:26:40 v #24946 > > y1="424" x2="86" y2="75"/> -00:26:40 v #24947 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="94" -00:26:40 v #24948 > > y1="424" x2="94" y2="75"/> -00:26:40 v #24949 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="103" -00:26:40 v #24950 > > y1="424" x2="103" y2="75"/> -00:26:40 v #24951 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="111" -00:26:40 v #24952 > > y1="424" x2="111" y2="75"/> -00:26:40 v #24953 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="119" -00:26:40 v #24954 > > y1="424" x2="119" y2="75"/> -00:26:40 v #24955 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="128" -00:26:40 v #24956 > > y1="424" x2="128" y2="75"/> -00:26:40 v #24957 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="136" -00:26:40 v #24958 > > y1="424" x2="136" y2="75"/> -00:26:40 v #24959 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="144" -00:26:40 v #24960 > > y1="424" x2="144" y2="75"/> -00:26:40 v #24961 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="153" -00:26:40 v #24962 > > y1="424" x2="153" y2="75"/> -00:26:40 v #24963 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="161" -00:26:40 v #24964 > > y1="424" x2="161" y2="75"/> -00:26:40 v #24965 > > │ <line o...88 332,305 334,321 336,334 337,346 339,354 341,360 -00:26:40 v #24966 > > 342,363 344,362 346,359 347,352 349,342 351,330 352,316 354,300 356,283 357,265 -00:26:40 v #24967 > > 359,247 361,229 362,212 364,197 366,183 367,172 369,163 371,156 372,153 374,153 -00:26:40 v #24968 > > 376,156 377,161 379,170 381,181 382,194 384,209 386,226 387,243 389,260 391,277 -00:26:40 v #24969 > > 392,294 394,309 396,323 397,335 399,344 401,351 402,355 404,356 406,354 407,349 -00:26:40 v #24970 > > 409,341 410,331 412,319 414,305 415,289 417,273 419,256 420,239 422,223 424,208 -00:26:40 v #24971 > > 425,194 427,182 429,172 430,165 432,161 434,159 435,160 437,164 439,171 440,180 -00:26:40 v #24972 > > 442,192 444,205 445,220 447,235 449,252 450,268 452,284 454,299 455,313 457,325 -00:26:40 v #24973 > > 459,335 460,342 462,347 464,350 465,349 467,346 469,340 470,332 472,321 474,309 -00:26:40 v #24974 > > 475,295 477,280 479,264 480,248 482,232 484,217 485,204 487,192 489,181 490,173 -00:26:40 v #24975 > > 492,168 494,165 495,165 497,167 499,172 500,180 502,189 504,201 505,215 507,229 -00:26:40 v #24976 > > 509,244 510,260 512,275 514,290 515,303 517,316 519,326 520,335 522,341 524,344 -00:26:40 v #24977 > > 525,345 527,343 529,339 530,332 532,323 534,312 535,300 537,286 539,271 540,256 -00:26:40 v #24978 > > 542,241 544,226 545,213 547,200 549,190 550,181 552,175 554,171 555,169 557,170 -00:26:40 v #24979 > > 559,174 560,180 562,188 564,198 565,210 567,223 569,238 "/> -00:26:40 v #24980 > > │ <rect x="464" y="235" width="116" height="30" opacity="1" -00:26:40 v #24981 > > fill="none" stroke="#FFFFFF"/> -00:26:40 v #24982 > > │ <text x="504" y="245" dy="0.76em" text-anchor="start" -00:26:40 v #24983 > > font-family="sans-serif" font-size="9.67741935483871" opacity="1" -00:26:40 v #24984 > > fill="#FFFFFF"> -00:26:40 v #24985 > > │ position (m) -00:26:40 v #24986 > > │ </text> -00:26:40 v #24987 > > │ <polyline fill="none" opacity="1" stroke="#FF0000" -00:26:40 v #24988 > > stroke-width="1" points="474,250 494,250 "/> -00:26:40 v #24989 > > │ </svg> -00:26:40 v #24990 > > │ -00:26:40 v #24991 > > -00:26:40 v #24992 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:40 v #24993 > > //// test -00:26:40 v #24994 > > -00:26:40 v #24995 > > inl pingpong_velocity t = -00:26:40 v #24996 > > velocity_ftxv 0.001 0.0027 (state_1d (0, 0.1, 0)) (damped_ho_forces ()) t -00:26:40 v #24997 > > -00:26:40 v #24998 > > inl x = am'.init_series 0 3 0.01 -00:26:40 v #24999 > > inl y = x |> am'.map_base pingpong_velocity -00:26:40 v #25000 > > "ping pong ball on a slinky", "time (s)", "", ;[[ "velocity (m/s)", x, y ]] -00:26:40 v #25001 > > -00:26:40 v #25002 > > ── [ 481.01ms - return value ] ───────────────────────────────────────────────── -00:26:40 v #25003 > > │ <svg width="640" height="480" viewBox="0 0 640 480" -00:26:40 v #25004 > > xmlns="http://www.w3.org/2000/svg"> -00:26:40 v #25005 > > │ <rect x="0" y="0" width="640" height="480" opacity="1" -00:26:40 v #25006 > > fill="#141414" stroke="none"/> -00:26:40 v #25007 > > │ <text x="320" y="10" dy="0.76em" text-anchor="middle" -00:26:40 v #25008 > > font-family="sans-serif" font-size="9.67741935483871" opacity="1" -00:26:40 v #25009 > > fill="#FFFFFF"> -00:26:40 v #25010 > > │ ping pong ball on a slinky -00:26:40 v #25011 > > │ </text> -00:26:40 v #25012 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="61" -00:26:40 v #25013 > > y1="424" x2="61" y2="75"/> -00:26:40 v #25014 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" -00:26:40 v #25015 > > y1="424" x2="69" y2="75"/> -00:26:40 v #25016 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="78" -00:26:40 v #25017 > > y1="424" x2="78" y2="75"/> -00:26:40 v #25018 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="86" -00:26:40 v #25019 > > y1="424" x2="86" y2="75"/> -00:26:40 v #25020 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="94" -00:26:40 v #25021 > > y1="424" x2="94" y2="75"/> -00:26:40 v #25022 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="103" -00:26:40 v #25023 > > y1="424" x2="103" y2="75"/> -00:26:40 v #25024 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="111" -00:26:40 v #25025 > > y1="424" x2="111" y2="75"/> -00:26:40 v #25026 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="119" -00:26:40 v #25027 > > y1="424" x2="119" y2="75"/> -00:26:40 v #25028 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="128" -00:26:40 v #25029 > > y1="424" x2="128" y2="75"/> -00:26:40 v #25030 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="136" -00:26:40 v #25031 > > y1="424" x2="136" y2="75"/> -00:26:40 v #25032 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="144" -00:26:40 v #25033 > > y1="424" x2="144" y2="75"/> -00:26:40 v #25034 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="153" -00:26:40 v #25035 > > y1="424" x2="153" y2="75"/> -00:26:40 v #25036 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="161" -00:26:40 v #25037 > > y1="424" x2="161" y2="75"/> -00:26:40 v #25038 > > │ <line o... 332,343 334,332 336,319 337,304 339,287 341,269 -00:26:40 v #25039 > > 342,250 344,231 346,212 347,195 349,178 351,164 352,153 354,144 356,138 357,136 -00:26:40 v #25040 > > 359,136 361,140 362,147 364,157 366,169 367,183 369,199 371,216 372,234 374,253 -00:26:40 v #25041 > > 376,271 377,288 379,304 381,318 382,330 384,339 386,346 387,349 389,349 391,346 -00:26:40 v #25042 > > 392,340 394,332 396,321 397,307 399,292 401,276 402,258 404,241 406,223 407,206 -00:26:40 v #25043 > > 409,190 410,176 412,164 414,154 415,148 417,144 419,143 420,145 422,150 424,158 -00:26:40 v #25044 > > 425,168 427,180 429,194 430,210 432,227 434,244 435,261 437,278 439,293 440,307 -00:26:40 v #25045 > > 442,320 444,330 445,337 447,341 449,343 450,342 452,338 454,331 455,322 457,310 -00:26:40 v #25046 > > 459,297 460,282 462,266 464,249 465,233 467,216 469,201 470,187 472,174 474,164 -00:26:40 v #25047 > > 475,156 477,151 479,149 480,149 482,153 484,159 485,167 487,178 489,190 490,204 -00:26:40 v #25048 > > 492,220 494,236 495,252 497,268 499,283 500,297 502,310 504,320 505,329 507,334 -00:26:40 v #25049 > > 509,337 510,337 512,335 514,330 515,322 517,312 519,300 520,287 522,272 524,257 -00:26:40 v #25050 > > 525,241 527,226 529,210 530,196 532,184 534,173 535,164 537,158 539,154 540,154 -00:26:40 v #25051 > > 542,155 544,160 545,167 547,176 549,187 550,199 552,213 554,228 555,244 557,259 -00:26:40 v #25052 > > 559,274 560,288 562,301 564,312 565,321 567,327 569,332 "/> -00:26:40 v #25053 > > │ <rect x="454" y="235" width="126" height="30" opacity="1" -00:26:40 v #25054 > > fill="none" stroke="#FFFFFF"/> -00:26:40 v #25055 > > │ <text x="494" y="245" dy="0.76em" text-anchor="start" -00:26:40 v #25056 > > font-family="sans-serif" font-size="9.67741935483871" opacity="1" -00:26:40 v #25057 > > fill="#FFFFFF"> -00:26:40 v #25058 > > │ velocity (m/s) -00:26:40 v #25059 > > │ </text> -00:26:40 v #25060 > > │ <polyline fill="none" opacity="1" stroke="#FF0000" -00:26:40 v #25061 > > stroke-width="1" points="464,250 484,250 "/> -00:26:40 v #25062 > > │ </svg> -00:26:40 v #25063 > > │ -00:26:40 v #25064 > > -00:26:40 v #25065 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:26:40 v #25066 > > │ ### shift -00:26:40 v #25067 > > -00:26:40 v #25068 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:40 v #25069 > > type update_function s = s -> s -00:26:40 v #25070 > > -00:26:40 v #25071 > > type differential_equation s ds = s -> ds -00:26:40 v #25072 > > -00:26:40 v #25073 > > type numerical_method s ds = differential_equation s ds -> update_function s -00:26:40 v #25074 > > -00:26:40 v #25075 > > -00:26:40 v #25076 > > inl solver method = -00:26:40 v #25077 > > method >> seq.iterate -00:26:40 v #25078 > > inl solver' method = -00:26:40 v #25079 > > method >> seq.iterate' -00:26:40 v #25080 > > inl solver_ method = -00:26:40 v #25081 > > method >> seq.iterate_ -00:26:40 v #25082 > > -00:26:40 v #25083 > > -00:26:40 v #25084 > > inl euler_cromer_1d dt deriv (state_1d (t0, x0, v0) as t) = -00:26:40 v #25085 > > inl (rrr (_, _, dvdt)) = deriv t -00:26:40 v #25086 > > inl t1 = t0 + dt -00:26:40 v #25087 > > inl v1 = v0 + dvdt * dt -00:26:40 v #25088 > > inl x1 = x0 + v1 * dt -00:26:40 v #25089 > > state_1d (t1, x1, v1) -00:26:40 v #25090 > > -00:26:40 v #25091 > > inl update_txv_ec dt m fs = -00:26:40 v #25092 > > euler_cromer_1d dt (newton_second_1d m fs) -00:26:40 v #25093 > > -00:26:40 v #25094 > > prototype (+++) ds : ds -> ds -> ds -00:26:40 v #25095 > > prototype scale ds : f64 -> ds -> ds -00:26:40 v #25096 > > -00:26:40 v #25097 > > instance (+++) rrr = fun (rrr (dtdt0, dxdt0, dvdt0)) (rrr (dtdt1, dxdt1, dvdt1)) -00:26:40 v #25098 > > => -00:26:40 v #25099 > > rrr (dtdt0 + dtdt1, dxdt0 + dxdt1, dvdt0 + dvdt1) -00:26:40 v #25100 > > -00:26:40 v #25101 > > instance scale rrr = fun w (rrr (dtdt0, dxdt0, dvdt0)) => -00:26:40 v #25102 > > rrr (w * dtdt0, w * dxdt0, w * dvdt0) -00:26:40 v #25103 > > -00:26:40 v #25104 > > prototype shift s : forall ds. f64 -> ds -> s -> s -00:26:40 v #25105 > > -00:26:40 v #25106 > > instance shift state_1d = fun dt ds (state_1d (t, x, v)) => -00:26:40 v #25107 > > inl dtdt, dxdt, dvdt = -00:26:40 v #25108 > > real -00:26:40 v #25109 > > match ds with -00:26:40 v #25110 > > | rrr x => x -00:26:40 v #25111 > > | state_1d x => x -00:26:40 v #25112 > > state_1d (t + dtdt * dt, x + dxdt * dt, v + dvdt * dt) -00:26:40 v #25113 > > -00:26:40 v #25114 > > inl euler dt deriv st0 = -00:26:40 v #25115 > > shift dt (deriv st0) st0 -00:26:40 v #25116 > > -00:26:40 v #25117 > > inl runge_kutta_4 dt deriv st0 = -00:26:40 v #25118 > > inl m0 = deriv st0 -00:26:40 v #25119 > > inl m1 = deriv (shift (dt / 2) m0 st0) -00:26:40 v #25120 > > inl m2 = deriv (shift (dt / 2) m1 st0) -00:26:40 v #25121 > > inl m3 = deriv (shift dt m2 st0) -00:26:40 v #25122 > > shift (dt / 6) (m0 +++ m1 +++ m1 +++ m2 +++ m2 +++ m3) st0 -00:26:40 v #25123 > > -00:26:40 v #25124 > > inl exponential (_, x0, v0) = -00:26:40 v #25125 > > 1f64, v0, x0 -00:26:40 v #25126 > > -00:26:40 v #25127 > > inl of_state_1d (state_1d (t, x, v)) = -00:26:40 v #25128 > > t, x, v -00:26:41 v #25129 > > -00:26:41 v #25130 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:41 v #25131 > > //// test -00:26:41 v #25132 > > -00:26:41 v #25133 > > solver (euler 0.01) (of_state_1d >> exponential >> state_1d) (state_1d (0, 1, -00:26:41 v #25134 > > 1)) 800i32 -00:26:41 v #25135 > > |> _assert_eq (state_1d (7.999999999999874, 2864.8311229272326, -00:26:41 v #25136 > > 2864.8311229272326)) -00:26:41 v #25137 > > -00:26:41 v #25138 > > solver (euler_cromer_1d 0.1) (of_state_1d >> exponential >> rrr) (state_1d (0, -00:26:41 v #25139 > > 1, 1)) 80i32 -00:26:41 v #25140 > > |> _assert_eq (state_1d (7.999999999999988, 3043.379244966009, -00:26:41 v #25141 > > 2895.0121485099035)) -00:26:41 v #25142 > > -00:26:41 v #25143 > > solver (runge_kutta_4 1) (of_state_1d >> exponential >> rrr) (state_1d (0, 1, -00:26:41 v #25144 > > 1)) 8i32 -00:26:41 v #25145 > > |> _assert_eq (state_1d (8.0, 2894.789038540849, 2894.789038540849)) -00:26:42 v #25146 > > -00:26:42 v #25147 > > ── [ 602.49ms - stdout ] ─────────────────────────────────────────────────────── -00:26:42 v #25148 > > │ __assert_eq / actual: struct (8.0, 2864.831123, 2864.831123) -00:26:42 v #25149 > > / expected: struct (8.0, 2864.831123, 2864.831123) -00:26:42 v #25150 > > │ __assert_eq / actual: struct (8.0, 3043.379245, 2895.012149) -00:26:42 v #25151 > > / expected: struct (8.0, 3043.379245, 2895.012149) -00:26:42 v #25152 > > │ __assert_eq / actual: struct (8.0, 2894.789039, 2894.789039) -00:26:42 v #25153 > > / expected: struct (8.0, 2894.789039, 2894.789039) -00:26:42 v #25154 > > │ -00:26:42 v #25155 > > -00:26:42 v #25156 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:26:42 v #25157 > > │ ### vec -00:26:42 v #25158 > > -00:26:42 v #25159 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:42 v #25160 > > type vec = -00:26:42 v #25161 > > { -00:26:42 v #25162 > > x : f64 -00:26:42 v #25163 > > y : f64 -00:26:42 v #25164 > > z : f64 -00:26:42 v #25165 > > } -00:26:42 v #25166 > > -00:26:42 v #25167 > > inl vec x y z : vec = -00:26:42 v #25168 > > { x y z } -00:26:42 v #25169 > > -00:26:42 v #25170 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:42 v #25171 > > //// test -00:26:42 v #25172 > > -00:26:42 v #25173 > > vec 1 2 3 .z -00:26:42 v #25174 > > |> _assert_eq 3 -00:26:42 v #25175 > > -00:26:42 v #25176 > > ── [ 411.81ms - stdout ] ─────────────────────────────────────────────────────── -00:26:42 v #25177 > > │ __assert_eq / actual: 3.0 / expected: 3.0 -00:26:42 v #25178 > > │ -00:26:42 v #25179 > > -00:26:42 v #25180 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:26:42 v #25181 > > │ #### consts -00:26:42 v #25182 > > -00:26:42 v #25183 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:42 v #25184 > > inl i_hat () = vec 1 0 0 -00:26:42 v #25185 > > inl j_hat () = vec 0 1 0 -00:26:42 v #25186 > > inl k_hat () = vec 0 0 1 -00:26:42 v #25187 > > inl zero_vec () = vec 0 0 0 -00:26:43 v #25188 > > -00:26:43 v #25189 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:26:43 v #25190 > > │ #### ^+^ -00:26:43 v #25191 > > -00:26:43 v #25192 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:43 v #25193 > > inl (^+^) (a : vec) (b : vec) = -00:26:43 v #25194 > > vec (a.x + b.x) (a.y + b.y) (a.z + b.z) -00:26:43 v #25195 > > -00:26:43 v #25196 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:43 v #25197 > > //// test -00:26:43 v #25198 > > -00:26:43 v #25199 > > vec 1 2 3 ^+^ vec 4 5 6 -00:26:43 v #25200 > > |> _assert_eq (vec 5 7 9) -00:26:44 v #25201 > > -00:26:44 v #25202 > > ── [ 414.00ms - stdout ] ─────────────────────────────────────────────────────── -00:26:44 v #25203 > > │ __assert_eq / actual: struct (5.0, 7.0, 9.0) / expected: -00:26:44 v #25204 > > struct (5.0, 7.0, 9.0) -00:26:44 v #25205 > > │ -00:26:44 v #25206 > > -00:26:44 v #25207 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:26:44 v #25208 > > │ #### sum_vec -00:26:44 v #25209 > > -00:26:44 v #25210 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:44 v #25211 > > inl sum_vec vs = -00:26:44 v #25212 > > vs |> listm.fold (^+^) (zero_vec ()) -00:26:44 v #25213 > > -00:26:44 v #25214 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:44 v #25215 > > //// test -00:26:44 v #25216 > > -00:26:44 v #25217 > > [[ vec 1 2 3; vec 4 5 6 ]] -00:26:44 v #25218 > > |> sum_vec -00:26:44 v #25219 > > |> _assert_eq (vec 5 7 9) -00:26:45 v #25220 > > -00:26:45 v #25221 > > ── [ 459.31ms - stdout ] ─────────────────────────────────────────────────────── -00:26:45 v #25222 > > │ __assert_eq / actual: struct (5.0, 7.0, 9.0) / expected: -00:26:45 v #25223 > > struct (5.0, 7.0, 9.0) -00:26:45 v #25224 > > │ -00:26:45 v #25225 > > -00:26:45 v #25226 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:26:45 v #25227 > > │ #### *^ -00:26:45 v #25228 > > -00:26:45 v #25229 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:45 v #25230 > > inl (*^) c { x y z } = -00:26:45 v #25231 > > vec (c * x) (c * y) (c * z) -00:26:45 v #25232 > > -00:26:45 v #25233 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:45 v #25234 > > //// test -00:26:45 v #25235 > > -00:26:45 v #25236 > > 5 *^ vec 1 2 3 -00:26:45 v #25237 > > |> _assert_eq (vec 5 10 15) -00:26:46 v #25238 > > -00:26:46 v #25239 > > ── [ 457.89ms - stdout ] ─────────────────────────────────────────────────────── -00:26:46 v #25240 > > │ __assert_eq / actual: struct (5.0, 10.0, 15.0) / expected: -00:26:46 v #25241 > > struct (5.0, 10.0, 15.0) -00:26:46 v #25242 > > │ -00:26:46 v #25243 > > -00:26:46 v #25244 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:46 v #25245 > > //// test -00:26:46 v #25246 > > -00:26:46 v #25247 > > 3 *^ i_hat () ^+^ 4 *^ k_hat () -00:26:46 v #25248 > > |> _assert_eq (vec 3 0 4) -00:26:46 v #25249 > > -00:26:46 v #25250 > > ── [ 453.10ms - stdout ] ─────────────────────────────────────────────────────── -00:26:46 v #25251 > > │ __assert_eq / actual: struct (3.0, 0.0, 4.0) / expected: -00:26:46 v #25252 > > struct (3.0, 0.0, 4.0) -00:26:46 v #25253 > > │ -00:26:46 v #25254 > > -00:26:46 v #25255 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:26:46 v #25256 > > │ #### ^* -00:26:46 v #25257 > > -00:26:46 v #25258 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:46 v #25259 > > inl (^*) v c = -00:26:46 v #25260 > > (*^) c v -00:26:47 v #25261 > > -00:26:47 v #25262 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:47 v #25263 > > //// test -00:26:47 v #25264 > > -00:26:47 v #25265 > > vec 1 2 3 ^* 5 -00:26:47 v #25266 > > |> _assert_eq (vec 5 10 15) -00:26:47 v #25267 > > -00:26:47 v #25268 > > ── [ 476.43ms - stdout ] ─────────────────────────────────────────────────────── -00:26:47 v #25269 > > │ __assert_eq / actual: struct (5.0, 10.0, 15.0) / expected: -00:26:47 v #25270 > > struct (5.0, 10.0, 15.0) -00:26:47 v #25271 > > │ -00:26:47 v #25272 > > -00:26:47 v #25273 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:26:47 v #25274 > > │ #### ^ -00:26:47 v #25275 > > -00:26:47 v #25276 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:47 v #25277 > > inl (^/) { x y z } c = -00:26:47 v #25278 > > vec (x / c) (y / c) (z / c) -00:26:47 v #25279 > > -00:26:47 v #25280 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:47 v #25281 > > //// test -00:26:47 v #25282 > > -00:26:47 v #25283 > > vec 1 2 3 ^/ 5 -00:26:47 v #25284 > > |> _assert_eq (vec 0.2 0.4 0.6) -00:26:48 v #25285 > > -00:26:48 v #25286 > > ── [ 508.61ms - stdout ] ─────────────────────────────────────────────────────── -00:26:48 v #25287 > > │ __assert_eq / actual: struct (0.2, 0.4, 0.6) / expected: -00:26:48 v #25288 > > struct (0.2, 0.4, 0.6) -00:26:48 v #25289 > > │ -00:26:48 v #25290 > > -00:26:48 v #25291 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:26:48 v #25292 > > │ #### negate_vec -00:26:48 v #25293 > > -00:26:48 v #25294 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:48 v #25295 > > inl negate_vec v = -00:26:48 v #25296 > > v ^* -1 -00:26:48 v #25297 > > -00:26:48 v #25298 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:48 v #25299 > > //// test -00:26:48 v #25300 > > -00:26:48 v #25301 > > vec 1 2 3 -00:26:48 v #25302 > > |> negate_vec -00:26:48 v #25303 > > |> _assert_eq (vec -1 -2 -3) -00:26:49 v #25304 > > -00:26:49 v #25305 > > ── [ 460.70ms - stdout ] ─────────────────────────────────────────────────────── -00:26:49 v #25306 > > │ __assert_eq / actual: struct (-1.0, -2.0, -3.0) / expected: -00:26:49 v #25307 > > struct (-1.0, -2.0, -3.0) -00:26:49 v #25308 > > │ -00:26:49 v #25309 > > -00:26:49 v #25310 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:26:49 v #25311 > > │ #### ^-^ -00:26:49 v #25312 > > -00:26:49 v #25313 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:49 v #25314 > > inl (^-^) a b = -00:26:49 v #25315 > > a ^+^ (negate_vec b) -00:26:49 v #25316 > > -00:26:49 v #25317 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:49 v #25318 > > //// test -00:26:49 v #25319 > > -00:26:49 v #25320 > > vec 1 2 3 ^-^ vec 4 5 6 -00:26:49 v #25321 > > |> _assert_eq (vec -3 -3 -3) -00:26:50 v #25322 > > -00:26:50 v #25323 > > ── [ 470.47ms - stdout ] ─────────────────────────────────────────────────────── -00:26:50 v #25324 > > │ __assert_eq / actual: struct (-3.0, -3.0, -3.0) / expected: -00:26:50 v #25325 > > struct (-3.0, -3.0, -3.0) -00:26:50 v #25326 > > │ -00:26:50 v #25327 > > -00:26:50 v #25328 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:26:50 v #25329 > > │ #### <.> -00:26:50 v #25330 > > -00:26:50 v #25331 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:50 v #25332 > > inl (<.>) { x = ax y = ay z = az } { x = bx y = by z = bz } = -00:26:50 v #25333 > > ax * bx + ay * by + az * bz -00:26:50 v #25334 > > -00:26:50 v #25335 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:50 v #25336 > > //// test -00:26:50 v #25337 > > -00:26:50 v #25338 > > vec 1 2 3 <.> vec 4 5 6 -00:26:50 v #25339 > > |> _assert_eq 32 -00:26:51 v #25340 > > -00:26:51 v #25341 > > ── [ 443.56ms - stdout ] ─────────────────────────────────────────────────────── -00:26:51 v #25342 > > │ __assert_eq / actual: 32.0 / expected: 32.0 -00:26:51 v #25343 > > │ -00:26:51 v #25344 > > -00:26:51 v #25345 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:26:51 v #25346 > > │ #### \>\< -00:26:51 v #25347 > > -00:26:51 v #25348 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:51 v #25349 > > inl (><) (a : vec) (b : vec) = -00:26:51 v #25350 > > vec -00:26:51 v #25351 > > (a.y * b.z - a.z * b.y) -00:26:51 v #25352 > > (a.z * b.x - a.x * b.z) -00:26:51 v #25353 > > (a.x * b.y - a.y * b.x) -00:26:51 v #25354 > > -00:26:51 v #25355 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:51 v #25356 > > //// test -00:26:51 v #25357 > > -00:26:51 v #25358 > > vec 1 2 3 >< vec 4 5 6 -00:26:51 v #25359 > > |> _assert_eq (vec -3 6 -3) -00:26:52 v #25360 > > -00:26:52 v #25361 > > ── [ 398.60ms - stdout ] ─────────────────────────────────────────────────────── -00:26:52 v #25362 > > │ __assert_eq / actual: struct (-3.0, 6.0, -3.0) / expected: -00:26:52 v #25363 > > struct (-3.0, 6.0, -3.0) -00:26:52 v #25364 > > │ -00:26:52 v #25365 > > -00:26:52 v #25366 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:26:52 v #25367 > > │ #### magnitude -00:26:52 v #25368 > > -00:26:52 v #25369 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:52 v #25370 > > inl magnitude v = -00:26:52 v #25371 > > v <.> v |> sqrt -00:26:52 v #25372 > > -00:26:52 v #25373 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:52 v #25374 > > //// test -00:26:52 v #25375 > > -00:26:52 v #25376 > > vec 1 2 3 -00:26:52 v #25377 > > |> magnitude -00:26:52 v #25378 > > |> _assert_approx_eq None 3.7416573867739413 -00:26:52 v #25379 > > -00:26:52 v #25380 > > ── [ 461.25ms - stdout ] ─────────────────────────────────────────────────────── -00:26:52 v #25381 > > │ __assert_approx_eq / actual: 3.741657387 / expected: -00:26:52 v #25382 > > 3.741657387 -00:26:52 v #25383 > > │ -00:26:52 v #25384 > > -00:26:52 v #25385 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:26:52 v #25386 > > │ #### v1 -00:26:52 v #25387 > > -00:26:52 v #25388 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:52 v #25389 > > inl v1 t = -00:26:52 v #25390 > > 2 *^ (t ** 2 *^ i_hat () ^+^ 3 *^ (t ** 3 *^ j_hat () ^+^ t ** 4 *^ k_hat -00:26:52 v #25391 > > ())) -00:26:53 v #25392 > > -00:26:53 v #25393 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:53 v #25394 > > //// test -00:26:53 v #25395 > > -00:26:53 v #25396 > > v1 1 -00:26:53 v #25397 > > |> _assert_eq (vec 2 6 6) -00:26:53 v #25398 > > -00:26:53 v #25399 > > ── [ 457.02ms - stdout ] ─────────────────────────────────────────────────────── -00:26:53 v #25400 > > │ __assert_eq / actual: struct (2.0, 6.0, 6.0) / expected: -00:26:53 v #25401 > > struct (2.0, 6.0, 6.0) -00:26:53 v #25402 > > │ -00:26:53 v #25403 > > -00:26:53 v #25404 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:26:53 v #25405 > > │ #### vec_derivative -00:26:53 v #25406 > > -00:26:53 v #25407 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:53 v #25408 > > type vec_derivative = (f64 -> vec) -> f64 -> vec -00:26:53 v #25409 > > -00:26:53 v #25410 > > inl vec_derivative dt : vec_derivative = -00:26:53 v #25411 > > fun v t => -00:26:53 v #25412 > > (v (t + dt / 2) ^-^ v (t - dt / 2)) ^/ dt -00:26:54 v #25413 > > -00:26:54 v #25414 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:54 v #25415 > > //// test -00:26:54 v #25416 > > -00:26:54 v #25417 > > vec_derivative 0.01 v1 3 .x -00:26:54 v #25418 > > |> _assert_approx_eq None (derivative 0.01 (v1 >> fun v => v.x) 3) -00:26:54 v #25419 > > -00:26:54 v #25420 > > ── [ 444.91ms - stdout ] ─────────────────────────────────────────────────────── -00:26:54 v #25421 > > │ __assert_approx_eq / actual: 12.0 / expected: 12.0 -00:26:54 v #25422 > > │ -00:26:54 v #25423 > > -00:26:54 v #25424 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:26:54 v #25425 > > │ ### states_ps -00:26:54 v #25426 > > -00:26:54 v #25427 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:54 v #25428 > > nominal particle_state = -00:26:54 v #25429 > > { -00:26:54 v #25430 > > mass : f64 -00:26:54 v #25431 > > charge : f64 -00:26:54 v #25432 > > time : f64 -00:26:54 v #25433 > > pos_vec : vec -00:26:54 v #25434 > > velocity : vec -00:26:54 v #25435 > > } -00:26:54 v #25436 > > -00:26:54 v #25437 > > inl default_particle_state () : particle_state = -00:26:54 v #25438 > > particle_state { -00:26:54 v #25439 > > mass = 1 -00:26:54 v #25440 > > charge = 0 -00:26:54 v #25441 > > time = 0 -00:26:54 v #25442 > > pos_vec = zero_vec () -00:26:54 v #25443 > > velocity = zero_vec () -00:26:54 v #25444 > > } -00:26:54 v #25445 > > -00:26:54 v #25446 > > type one_body_force = particle_state -> vec -00:26:54 v #25447 > > -00:26:54 v #25448 > > nominal d_particle_state = -00:26:54 v #25449 > > { -00:26:54 v #25450 > > dmdt : f64 -00:26:54 v #25451 > > dqdt : f64 -00:26:54 v #25452 > > dtdt : f64 -00:26:54 v #25453 > > drdt : vec -00:26:54 v #25454 > > dvdt : vec -00:26:54 v #25455 > > } -00:26:54 v #25456 > > -00:26:54 v #25457 > > inl newton_second_ps (fs : list one_body_force) (st : particle_state) : -00:26:54 v #25458 > > d_particle_state = -00:26:54 v #25459 > > inl f_net = fs |> listm.map (fun f => f st) |> sum_vec -00:26:54 v #25460 > > d_particle_state { -00:26:54 v #25461 > > dmdt = 0 -00:26:54 v #25462 > > dqdt = 0 -00:26:54 v #25463 > > dtdt = 1 -00:26:54 v #25464 > > drdt = st.velocity -00:26:54 v #25465 > > dvdt = f_net ^/ st.mass -00:26:54 v #25466 > > } -00:26:54 v #25467 > > -00:26:54 v #25468 > > inl earth_surface_gravity (st : particle_state) = -00:26:54 v #25469 > > inl g = 9.80665 -00:26:54 v #25470 > > -st.mass * g *^ k_hat () -00:26:54 v #25471 > > -00:26:54 v #25472 > > inl air_resistance drag rho area (st : particle_state) = -00:26:54 v #25473 > > -0.5 * drag * rho * area * magnitude st.velocity *^ st.velocity -00:26:54 v #25474 > > -00:26:54 v #25475 > > inl euler_cromer_ps dt (deriv : particle_state -> d_particle_state) -00:26:54 v #25476 > > (particle_state st) = -00:26:54 v #25477 > > inl dst : d_particle_state = deriv (particle_state st) -00:26:54 v #25478 > > inl v' = st.velocity ^+^ dst.dvdt ^* dt -00:26:54 v #25479 > > particle_state { st with -00:26:54 v #25480 > > time = st.time + dt -00:26:54 v #25481 > > pos_vec = st.pos_vec ^+^ v' ^* dt -00:26:54 v #25482 > > velocity = st.velocity ^+^ dst.dvdt ^* dt -00:26:54 v #25483 > > } -00:26:54 v #25484 > > -00:26:54 v #25485 > > instance (+++) d_particle_state = fun (dps : d_particle_state) (dps' : -00:26:54 v #25486 > > d_particle_state) => -00:26:54 v #25487 > > d_particle_state { -00:26:54 v #25488 > > dmdt = dps.dmdt + dps'.dmdt -00:26:54 v #25489 > > dqdt = dps.dqdt + dps'.dqdt -00:26:54 v #25490 > > dtdt = dps.dtdt + dps'.dtdt -00:26:54 v #25491 > > drdt = dps.drdt ^+^ dps'.drdt -00:26:54 v #25492 > > dvdt = dps.dvdt ^+^ dps'.dvdt -00:26:54 v #25493 > > } -00:26:54 v #25494 > > -00:26:54 v #25495 > > instance scale d_particle_state = fun w (dps : d_particle_state) => -00:26:54 v #25496 > > d_particle_state { -00:26:54 v #25497 > > dmdt = w * dps.dmdt -00:26:54 v #25498 > > dqdt = w * dps.dqdt -00:26:54 v #25499 > > dtdt = w * dps.dtdt -00:26:54 v #25500 > > drdt = w *^ dps.drdt -00:26:54 v #25501 > > dvdt = w *^ dps.dvdt -00:26:54 v #25502 > > } -00:26:54 v #25503 > > -00:26:54 v #25504 > > instance shift particle_state = fun dt dps (particle_state st) => -00:26:54 v #25505 > > inl (d_particle_state dps) = -00:26:54 v #25506 > > real -00:26:54 v #25507 > > match dps with -00:26:54 v #25508 > > | d_particle_state _ => dps -00:26:54 v #25509 > > particle_state { st with -00:26:54 v #25510 > > time = st.time + dps.dtdt * dt -00:26:54 v #25511 > > pos_vec = st.pos_vec ^+^ dps.drdt ^* dt -00:26:54 v #25512 > > velocity = st.velocity ^+^ dps.dvdt ^* dt -00:26:54 v #25513 > > } -00:26:54 v #25514 > > -00:26:54 v #25515 > > inl states_ps (method : numerical_method particle_state d_particle_state) : _ -> -00:26:54 v #25516 > > _ -> i32 -> particle_state = -00:26:54 v #25517 > > newton_second_ps >> method >> seq.iterate_ -00:26:54 v #25518 > > -00:26:54 v #25519 > > inl z_ge0 sts = -00:26:54 v #25520 > > sts -00:26:54 v #25521 > > |> seq.take_while_ (fun (particle_state st) _ => st.pos_vec.z >= 0) -00:26:54 v #25522 > > -00:26:54 v #25523 > > inl trajectory sts = -00:26:54 v #25524 > > sts |> listm.map (fun (particle_state st) => st.pos_vec.y, st.pos_vec.z) -00:26:55 v #25525 > > -00:26:55 v #25526 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:55 v #25527 > > //// test -00:26:55 v #25528 > > -00:26:55 v #25529 > > inl update_ps (method : numerical_method particle_state d_particle_state) = -00:26:55 v #25530 > > newton_second_ps >> method -00:26:55 v #25531 > > -00:26:55 v #25532 > > inl position_ps (method : numerical_method particle_state d_particle_state) fs -00:26:55 v #25533 > > st t = -00:26:55 v #25534 > > inl states : i32 -> particle_state = states_ps method fs st -00:26:55 v #25535 > > inl dt = (states 1).time - (states 0).time -00:26:55 v #25536 > > inl num_steps = t / dt |> math.round |> abs -00:26:55 v #25537 > > inl st1 = solver' method (newton_second_ps fs) st num_steps -00:26:55 v #25538 > > st1.pos_vec -00:26:55 v #25539 > > -00:26:55 v #25540 > > inl sun_gravity (st : particle_state) : vec = -00:26:55 v #25541 > > inl big_g = 0.0000000000667408 -00:26:55 v #25542 > > inl sun_mass = 1988480000000000000000000000000 -00:26:55 v #25543 > > -big_g * sun_mass * st.mass *^ st.pos_vec ^/ magnitude st.pos_vec ** 3 -00:26:55 v #25544 > > -00:26:55 v #25545 > > inl wind_force v_wind drag rho area (st : particle_state) = -00:26:55 v #25546 > > inl v_rel = st.velocity ^-^ v_wind -00:26:55 v #25547 > > -0.5 * drag * rho * area * magnitude v_rel *^ v_rel -00:26:55 v #25548 > > -00:26:55 v #25549 > > inl rock_state () = -00:26:55 v #25550 > > inl (particle_state default_particle_state') = default_particle_state () -00:26:55 v #25551 > > particle_state { default_particle_state' with -00:26:55 v #25552 > > mass = 2 -00:26:55 v #25553 > > velocity = vec 3 0 4 -00:26:55 v #25554 > > } -00:26:55 v #25555 > > -00:26:55 v #25556 > > inl halley_update dt = -00:26:55 v #25557 > > update_ps (euler_cromer_ps dt) [[ sun_gravity ]] -00:26:55 v #25558 > > -00:26:55 v #25559 > > inl halley_initial () = -00:26:55 v #25560 > > inl (particle_state default_particle_state') = default_particle_state () -00:26:55 v #25561 > > particle_state { default_particle_state' with -00:26:55 v #25562 > > mass = 220000000000000 -00:26:55 v #25563 > > pos_vec = 87660000000 *^ i_hat () -00:26:55 v #25564 > > velocity = 54569 *^ j_hat () -00:26:55 v #25565 > > } -00:26:55 v #25566 > > -00:26:55 v #25567 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:55 v #25568 > > //// test -00:26:55 v #25569 > > -00:26:55 v #25570 > > inl baseball_forces () = -00:26:55 v #25571 > > inl area = pi * (0.074 / 2) ** 2 -00:26:55 v #25572 > > [[ -00:26:55 v #25573 > > earth_surface_gravity -00:26:55 v #25574 > > air_resistance 0.3 1.225 area -00:26:55 v #25575 > > ]] -00:26:55 v #25576 > > -00:26:55 v #25577 > > inl baseball_trajectory dt v0 theta_deg = -00:26:55 v #25578 > > inl theta_rad = theta_deg * pi / 180 -00:26:55 v #25579 > > inl vy0 = v0 * cos theta_rad -00:26:55 v #25580 > > inl vz0 = v0 * sin theta_rad -00:26:55 v #25581 > > inl initial_state = -00:26:55 v #25582 > > particle_state { -00:26:55 v #25583 > > mass = 0.145 -00:26:55 v #25584 > > charge = 0 -00:26:55 v #25585 > > time = 0 -00:26:55 v #25586 > > pos_vec = zero_vec () -00:26:55 v #25587 > > velocity = vec 0 vy0 vz0 -00:26:55 v #25588 > > } -00:26:55 v #25589 > > states_ps (euler_cromer_ps dt) (baseball_forces ()) initial_state -00:26:55 v #25590 > > >> Some -00:26:55 v #25591 > > |> z_ge0 -00:26:55 v #25592 > > |> trajectory -00:26:55 v #25593 > > -00:26:55 v #25594 > > inl baseball_range dt v0 theta_deg = -00:26:55 v #25595 > > baseball_trajectory dt v0 theta_deg -00:26:55 v #25596 > > |> listm.fold (fun _ (y, _) => y) 0 -00:26:55 v #25597 > > -00:26:55 v #25598 > > inl x = am'.init_series 10 80 1 -00:26:55 v #25599 > > inl y = x |> am'.map_base (baseball_range 0.01 45) -00:26:55 v #25600 > > "range for a baseball hit at 45 m/s", -00:26:55 v #25601 > > "angle above horizontal (degrees)", -00:26:55 v #25602 > > "", -00:26:55 v #25603 > > ;[[ "horizontal range (m)", x, y ]] -00:26:56 v #25604 > > -00:26:56 v #25605 > > ── [ 926.26ms - return value ] ───────────────────────────────────────────────── -00:26:56 v #25606 > > │ <svg width="640" height="480" viewBox="0 0 640 480" -00:26:56 v #25607 > > xmlns="http://www.w3.org/2000/svg"> -00:26:56 v #25608 > > │ <rect x="0" y="0" width="640" height="480" opacity="1" -00:26:56 v #25609 > > fill="#141414" stroke="none"/> -00:26:56 v #25610 > > │ <text x="320" y="10" dy="0.76em" text-anchor="middle" -00:26:56 v #25611 > > font-family="sans-serif" font-size="9.67741935483871" opacity="1" -00:26:56 v #25612 > > fill="#FFFFFF"> -00:26:56 v #25613 > > │ range for a baseball hit at 45 m/s -00:26:56 v #25614 > > │ </text> -00:26:56 v #25615 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="55" -00:26:56 v #25616 > > y1="424" x2="55" y2="75"/> -00:26:56 v #25617 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="62" -00:26:56 v #25618 > > y1="424" x2="62" y2="75"/> -00:26:56 v #25619 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" -00:26:56 v #25620 > > y1="424" x2="69" y2="75"/> -00:26:56 v #25621 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="77" -00:26:56 v #25622 > > y1="424" x2="77" y2="75"/> -00:26:56 v #25623 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="84" -00:26:56 v #25624 > > y1="424" x2="84" y2="75"/> -00:26:56 v #25625 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="91" -00:26:56 v #25626 > > y1="424" x2="91" y2="75"/> -00:26:56 v #25627 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="98" -00:26:56 v #25628 > > y1="424" x2="98" y2="75"/> -00:26:56 v #25629 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="105" -00:26:56 v #25630 > > y1="424" x2="105" y2="75"/> -00:26:56 v #25631 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="112" -00:26:56 v #25632 > > y1="424" x2="112" y2="75"/> -00:26:56 v #25633 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="119" -00:26:56 v #25634 > > y1="424" x2="119" y2="75"/> -00:26:56 v #25635 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="127" -00:26:56 v #25636 > > y1="424" x2="127" y2="75"/> -00:26:56 v #25637 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="134" -00:26:56 v #25638 > > y1="424" x2="134" y2="75"/> -00:26:56 v #25639 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="141" -00:26:56 v #25640 > > y1="424" x2="141" y2="75"/> -00:26:56 v #25641 > > │ <li...nts="585,199 590,199 "/> -00:26:56 v #25642 > > │ <text x="595" y="156" dy="0.5ex" text-anchor="start" -00:26:56 v #25643 > > font-family="sans-serif" font-size="9.67741935483871" opacity="1" -00:26:56 v #25644 > > fill="#FFFFFF"> -00:26:56 v #25645 > > │ 100.0 -00:26:56 v #25646 > > │ </text> -00:26:56 v #25647 > > │ <polyline fill="none" opacity="1" stroke="#FFFFFF" -00:26:56 v #25648 > > stroke-width="1" points="585,156 590,156 "/> -00:26:56 v #25649 > > │ <text x="595" y="114" dy="0.5ex" text-anchor="start" -00:26:56 v #25650 > > font-family="sans-serif" font-size="9.67741935483871" opacity="1" -00:26:56 v #25651 > > fill="#FFFFFF"> -00:26:56 v #25652 > > │ 110.0 -00:26:56 v #25653 > > │ </text> -00:26:56 v #25654 > > │ <polyline fill="none" opacity="1" stroke="#FFFFFF" -00:26:56 v #25655 > > stroke-width="1" points="585,114 590,114 "/> -00:26:56 v #25656 > > │ <polyline fill="none" opacity="1" stroke="#FF0000" -00:26:56 v #25657 > > stroke-width="1" points="69,343 77,325 84,307 91,290 98,275 105,259 112,245 -00:26:56 v #25658 > > 119,231 127,219 134,207 141,196 148,184 155,174 162,164 169,155 176,147 184,139 -00:26:56 v #25659 > > 191,132 198,126 205,119 212,114 219,109 226,104 233,100 241,96 248,93 255,91 -00:26:56 v #25660 > > 262,89 269,88 276,86 283,86 290,85 298,86 305,87 312,88 319,90 326,92 333,95 -00:26:56 v #25661 > > 340,98 348,102 355,106 362,110 369,115 376,120 383,126 390,132 397,139 405,146 -00:26:56 v #25662 > > 412,153 419,161 426,169 433,178 440,187 447,197 454,207 462,217 469,228 476,239 -00:26:56 v #25663 > > 483,250 490,262 497,274 504,287 511,300 519,313 526,326 533,340 540,355 547,369 -00:26:56 v #25664 > > 554,384 561,399 569,415 "/> -00:26:56 v #25665 > > │ <rect x="421" y="235" width="159" height="30" opacity="1" -00:26:56 v #25666 > > fill="none" stroke="#FFFFFF"/> -00:26:56 v #25667 > > │ <text x="461" y="245" dy="0.76em" text-anchor="start" -00:26:56 v #25668 > > font-family="sans-serif" font-size="9.67741935483871" opacity="1" -00:26:56 v #25669 > > fill="#FFFFFF"> -00:26:56 v #25670 > > │ horizontal range (m) -00:26:56 v #25671 > > │ </text> -00:26:56 v #25672 > > │ <polyline fill="none" opacity="1" stroke="#FF0000" -00:26:56 v #25673 > > stroke-width="1" points="431,250 451,250 "/> -00:26:56 v #25674 > > │ </svg> -00:26:56 v #25675 > > │ -00:26:56 v #25676 > > -00:26:56 v #25677 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:56 v #25678 > > //// test -00:26:56 v #25679 > > -00:26:56 v #25680 > > inl best_angle (min, max) = -00:26:56 v #25681 > > let rec loop theta_deg (best_range, best_theta_deg) = -00:26:56 v #25682 > > if theta_deg > max -00:26:56 v #25683 > > then best_range, best_theta_deg -00:26:56 v #25684 > > else -00:26:56 v #25685 > > inl range = baseball_range 0.01 45 theta_deg -00:26:56 v #25686 > > loop -00:26:56 v #25687 > > (theta_deg + 1) -00:26:56 v #25688 > > (if range > best_range -00:26:56 v #25689 > > then range, theta_deg -00:26:56 v #25690 > > else best_range, best_theta_deg) -00:26:56 v #25691 > > loop min (0f64, min) -00:26:56 v #25692 > > -00:26:56 v #25693 > > best_angle (30f64, 60f64) -00:26:56 v #25694 > > |> _assert_eq (116.77499158246208, 41) -00:26:57 v #25695 > > -00:26:57 v #25696 > > ── [ 727.93ms - stdout ] ─────────────────────────────────────────────────────── -00:26:57 v #25697 > > │ __assert_eq / actual: struct (116.7749916, 41.0) / expected: -00:26:57 v #25698 > > struct (116.7749916, 41.0) -00:26:57 v #25699 > > │ -00:26:57 v #25700 > > -00:26:57 v #25701 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:26:57 v #25702 > > │ ### relativity_ps -00:26:57 v #25703 > > -00:26:57 v #25704 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:57 v #25705 > > inl relativity_ps fs (st : particle_state) = -00:26:57 v #25706 > > inl f_net = fs |> listm.map (fun f => f st) |> sum_vec -00:26:57 v #25707 > > inl c = 299792458 -00:26:57 v #25708 > > inl u = st.velocity ^/ c -00:26:57 v #25709 > > inl acc = sqrt (1 - (u <.> u)) *^ (f_net ^-^ (f_net <.> u) *^ u) ^/ st.mass -00:26:57 v #25710 > > d_particle_state { -00:26:57 v #25711 > > dmdt = 0 -00:26:57 v #25712 > > dqdt = 0 -00:26:57 v #25713 > > dtdt = 1 -00:26:57 v #25714 > > drdt = st.velocity -00:26:57 v #25715 > > dvdt = acc -00:26:57 v #25716 > > } -00:26:57 v #25717 > > -00:26:57 v #25718 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:57 v #25719 > > //// test -00:26:57 v #25720 > > -00:26:57 v #25721 > > inl year = 365.25 * 24 * 60 * 60 -00:26:57 v #25722 > > inl c = 299792458 -00:26:57 v #25723 > > inl ~method = runge_kutta_4 100000 -00:26:57 v #25724 > > inl forces = [[ fun _ => 10 *^ i_hat () ]] -00:26:57 v #25725 > > inl (particle_state default_particle_state') = default_particle_state () -00:26:57 v #25726 > > inl initial_state = -00:26:57 v #25727 > > particle_state { default_particle_state' with -00:26:57 v #25728 > > mass = 1 -00:26:57 v #25729 > > } -00:26:57 v #25730 > > -00:26:57 v #25731 > > inl newton_states = solver_ method (newton_second_ps forces) initial_state -00:26:57 v #25732 > > inl relativity_states = solver_ method (relativity_ps forces) initial_state -00:26:57 v #25733 > > -00:26:57 v #25734 > > inl newton_x, newton_y = -00:26:57 v #25735 > > newton_states -00:26:57 v #25736 > > >> Some -00:26:57 v #25737 > > |> seq.take_while_ (fun (particle_state st) (_ : i32) => st.time <= year) -00:26:57 v #25738 > > |> listm.map (fun (particle_state st) => st.time / year, st.velocity.x / c) -00:26:57 v #25739 > > |> listm'.unzip -00:26:57 v #25740 > > -00:26:57 v #25741 > > inl _, relativity_y = -00:26:57 v #25742 > > relativity_states -00:26:57 v #25743 > > >> Some -00:26:57 v #25744 > > |> seq.take_while_ (fun (particle_state st) (_ : i32) => st.time <= year) -00:26:57 v #25745 > > |> listm.map (fun (particle_state st) => st.time / year, st.velocity.x / c) -00:26:57 v #25746 > > |> listm'.unzip -00:26:57 v #25747 > > -00:26:57 v #25748 > > inl newton_x = newton_x |> listm'.box |> listm'.to_array' -00:26:57 v #25749 > > inl newton_y = newton_y |> listm'.box |> listm'.to_array' -00:26:57 v #25750 > > inl relativity_y = relativity_y |> listm'.box |> listm'.to_array' -00:26:57 v #25751 > > -00:26:57 v #25752 > > "response to a constant force", -00:26:57 v #25753 > > "time (years)", -00:26:57 v #25754 > > "velocity (multiples of c)", -00:26:57 v #25755 > > ;[[ -00:26:57 v #25756 > > "newtonian", newton_x, newton_y -00:26:57 v #25757 > > "relativistic", newton_x, relativity_y -00:26:57 v #25758 > > ]] -00:26:58 v #25759 > > -00:26:58 v #25760 > > ── [ 713.02ms - return value ] ───────────────────────────────────────────────── -00:26:58 v #25761 > > │ <svg width="640" height="480" viewBox="0 0 640 480" -00:26:58 v #25762 > > xmlns="http://www.w3.org/2000/svg"> -00:26:58 v #25763 > > │ <rect x="0" y="0" width="640" height="480" opacity="1" -00:26:58 v #25764 > > fill="#141414" stroke="none"/> -00:26:58 v #25765 > > │ <text x="320" y="10" dy="0.76em" text-anchor="middle" -00:26:58 v #25766 > > font-family="sans-serif" font-size="9.67741935483871" opacity="1" -00:26:58 v #25767 > > fill="#FFFFFF"> -00:26:58 v #25768 > > │ response to a constant force -00:26:58 v #25769 > > │ </text> -00:26:58 v #25770 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="59" -00:26:58 v #25771 > > y1="424" x2="59" y2="75"/> -00:26:58 v #25772 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" -00:26:58 v #25773 > > y1="424" x2="69" y2="75"/> -00:26:58 v #25774 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="79" -00:26:58 v #25775 > > y1="424" x2="79" y2="75"/> -00:26:58 v #25776 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="89" -00:26:58 v #25777 > > y1="424" x2="89" y2="75"/> -00:26:58 v #25778 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="99" -00:26:58 v #25779 > > y1="424" x2="99" y2="75"/> -00:26:58 v #25780 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="109" -00:26:58 v #25781 > > y1="424" x2="109" y2="75"/> -00:26:58 v #25782 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="119" -00:26:58 v #25783 > > y1="424" x2="119" y2="75"/> -00:26:58 v #25784 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="129" -00:26:58 v #25785 > > y1="424" x2="129" y2="75"/> -00:26:58 v #25786 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="139" -00:26:58 v #25787 > > y1="424" x2="139" y2="75"/> -00:26:58 v #25788 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="149" -00:26:58 v #25789 > > y1="424" x2="149" y2="75"/> -00:26:58 v #25790 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="159" -00:26:58 v #25791 > > y1="424" x2="159" y2="75"/> -00:26:58 v #25792 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="169" -00:26:58 v #25793 > > y1="424" x2="169" y2="75"/> -00:26:58 v #25794 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="179" -00:26:58 v #25795 > > y1="424" x2="179" y2="75"/> -00:26:58 v #25796 > > │ <line... 393,238 394,238 396,237 397,237 399,236 401,235 -00:26:58 v #25797 > > 402,235 404,234 405,234 407,233 409,233 410,232 412,231 413,231 415,230 416,230 -00:26:58 v #25798 > > 418,229 420,229 421,228 423,228 424,227 426,227 428,226 429,225 431,225 432,224 -00:26:58 v #25799 > > 434,224 435,223 437,223 439,222 440,222 442,221 443,221 445,220 447,220 448,219 -00:26:58 v #25800 > > 450,219 451,218 453,218 454,217 456,217 458,216 459,216 461,215 462,215 464,214 -00:26:58 v #25801 > > 466,214 467,213 469,213 470,213 472,212 473,212 475,211 477,211 478,210 480,210 -00:26:58 v #25802 > > 481,209 483,209 485,208 486,208 488,208 489,207 491,207 492,206 494,206 496,205 -00:26:58 v #25803 > > 497,205 499,204 500,204 502,204 504,203 505,203 507,202 508,202 510,202 511,201 -00:26:58 v #25804 > > 513,201 515,200 516,200 518,200 519,199 521,199 523,198 524,198 526,198 527,197 -00:26:58 v #25805 > > 529,197 531,196 532,196 534,196 535,195 537,195 538,194 540,194 542,194 543,193 -00:26:58 v #25806 > > 545,193 546,193 548,192 550,192 551,192 553,191 554,191 556,190 557,190 559,190 -00:26:58 v #25807 > > 561,189 562,189 564,189 565,188 567,188 569,188 "/> -00:26:58 v #25808 > > │ <rect x="464" y="227" width="116" height="45" opacity="1" -00:26:58 v #25809 > > fill="none" stroke="#FFFFFF"/> -00:26:58 v #25810 > > │ <text x="504" y="237" dy="0.76em" text-anchor="start" -00:26:58 v #25811 > > font-family="sans-serif" font-size="9.67741935483871" opacity="1" -00:26:58 v #25812 > > fill="#FFFFFF"> -00:26:58 v #25813 > > │ newtonian -00:26:58 v #25814 > > │ </text> -00:26:58 v #25815 > > │ <text x="504" y="252" dy="0.76em" text-anchor="start" -00:26:58 v #25816 > > font-family="sans-serif" font-size="9.67741935483871" opacity="1" -00:26:58 v #25817 > > fill="#FFFFFF"> -00:26:58 v #25818 > > │ relativistic -00:26:58 v #25819 > > │ </text> -00:26:58 v #25820 > > │ <polyline fill="none" opacity="1" stroke="#FF0000" -00:26:58 v #25821 > > stroke-width="1" points="474,242 494,242 "/> -00:26:58 v #25822 > > │ <polyline fill="none" opacity="1" stroke="#0000FF" -00:26:58 v #25823 > > stroke-width="1" points="474,257 494,257 "/> -00:26:58 v #25824 > > │ </svg> -00:26:58 v #25825 > > │ -00:26:58 v #25826 > > -00:26:58 v #25827 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:58 v #25828 > > inl uniform_lorentz_force v_e v_b (st : particle_state) = -00:26:58 v #25829 > > st.charge *^ (v_e ^+^ st.velocity >< v_b) -00:26:58 v #25830 > > -00:26:58 v #25831 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:58 v #25832 > > //// test -00:26:58 v #25833 > > -00:26:58 v #25834 > > inl c : f64 = 299792458 -00:26:58 v #25835 > > inl ~method = runge_kutta_4 0.000000001 -00:26:58 v #25836 > > inl forces = [[ uniform_lorentz_force (zero_vec ()) (k_hat ()) ]] -00:26:58 v #25837 > > inl (particle_state default_particle_state') = default_particle_state () -00:26:58 v #25838 > > inl initial_state = -00:26:58 v #25839 > > particle_state { default_particle_state' with -00:26:58 v #25840 > > mass = 0.000000000000000000000000001672621898 -00:26:58 v #25841 > > charge = 0.0000000000000000001602176621 -00:26:58 v #25842 > > velocity = 0.8 *^ (c *^ j_hat ()) -00:26:58 v #25843 > > } -00:26:58 v #25844 > > -00:26:58 v #25845 > > inl newton_states = solver_ method (newton_second_ps forces) initial_state -00:26:58 v #25846 > > inl relativity_states = solver_ method (relativity_ps forces) initial_state -00:26:58 v #25847 > > -00:26:58 v #25848 > > inl newton_x, newton_y = -00:26:58 v #25849 > > newton_states -00:26:58 v #25850 > > >> Some -00:26:58 v #25851 > > |> seq.take_while_ (fun (particle_state st) i => i < 100i32) -00:26:58 v #25852 > > |> listm.map (fun (particle_state st) => st.pos_vec.x, st.pos_vec.y) -00:26:58 v #25853 > > |> listm'.unzip -00:26:58 v #25854 > > -00:26:58 v #25855 > > inl relativity_x, relativity_y = -00:26:58 v #25856 > > relativity_states -00:26:58 v #25857 > > >> Some -00:26:58 v #25858 > > |> seq.take_while_ (fun (particle_state st) i => i < 165i32) -00:26:58 v #25859 > > |> listm.map (fun (particle_state st) => st.pos_vec.x, st.pos_vec.y) -00:26:58 v #25860 > > |> listm'.unzip -00:26:58 v #25861 > > -00:26:58 v #25862 > > inl newton_x = newton_x |> listm'.box |> listm'.to_array' -00:26:58 v #25863 > > inl newton_y = newton_y |> listm'.box |> listm'.to_array' -00:26:58 v #25864 > > -00:26:58 v #25865 > > inl relativity_x = relativity_x |> listm'.box |> listm'.to_array' -00:26:58 v #25866 > > inl relativity_y = relativity_y |> listm'.box |> listm'.to_array' -00:26:58 v #25867 > > -00:26:58 v #25868 > > "proton in a 1-t magnetic field", -00:26:58 v #25869 > > "x (m)", -00:26:58 v #25870 > > "y (m)", -00:26:58 v #25871 > > ;[[ -00:26:58 v #25872 > > "newtonian", newton_x, newton_y -00:26:58 v #25873 > > "relativistic", relativity_x, relativity_y -00:26:58 v #25874 > > ]] -00:26:59 v #25875 > > -00:26:59 v #25876 > > ── [ 723.77ms - return value ] ───────────────────────────────────────────────── -00:26:59 v #25877 > > │ <svg width="640" height="480" viewBox="0 0 640 480" -00:26:59 v #25878 > > xmlns="http://www.w3.org/2000/svg"> -00:26:59 v #25879 > > │ <rect x="0" y="0" width="640" height="480" opacity="1" -00:26:59 v #25880 > > fill="#141414" stroke="none"/> -00:26:59 v #25881 > > │ <text x="320" y="10" dy="0.76em" text-anchor="middle" -00:26:59 v #25882 > > font-family="sans-serif" font-size="9.67741935483871" opacity="1" -00:26:59 v #25883 > > fill="#FFFFFF"> -00:26:59 v #25884 > > │ proton in a 1-t magnetic field -00:26:59 v #25885 > > │ </text> -00:26:59 v #25886 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="58" -00:26:59 v #25887 > > y1="424" x2="58" y2="75"/> -00:26:59 v #25888 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" -00:26:59 v #25889 > > y1="424" x2="69" y2="75"/> -00:26:59 v #25890 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="81" -00:26:59 v #25891 > > y1="424" x2="81" y2="75"/> -00:26:59 v #25892 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="93" -00:26:59 v #25893 > > y1="424" x2="93" y2="75"/> -00:26:59 v #25894 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="105" -00:26:59 v #25895 > > y1="424" x2="105" y2="75"/> -00:26:59 v #25896 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="117" -00:26:59 v #25897 > > y1="424" x2="117" y2="75"/> -00:26:59 v #25898 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="129" -00:26:59 v #25899 > > y1="424" x2="129" y2="75"/> -00:26:59 v #25900 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="141" -00:26:59 v #25901 > > y1="424" x2="141" y2="75"/> -00:26:59 v #25902 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="153" -00:26:59 v #25903 > > y1="424" x2="153" y2="75"/> -00:26:59 v #25904 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="165" -00:26:59 v #25905 > > y1="424" x2="165" y2="75"/> -00:26:59 v #25906 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="177" -00:26:59 v #25907 > > y1="424" x2="177" y2="75"/> -00:26:59 v #25908 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="189" -00:26:59 v #25909 > > y1="424" x2="189" y2="75"/> -00:26:59 v #25910 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="201" -00:26:59 v #25911 > > y1="424" x2="201" y2="75"/> -00:26:59 v #25912 > > │ <...555,197 560,206 563,216 566,225 567,234 568,244 568,253 -00:26:59 v #25913 > > 568,263 566,272 564,281 561,291 557,300 552,309 547,317 540,326 533,334 526,342 -00:26:59 v #25914 > > 517,350 508,357 499,364 488,371 478,377 466,383 455,388 442,393 430,398 417,402 -00:26:59 v #25915 > > 403,405 390,408 376,410 362,412 348,414 333,414 319,415 305,414 290,414 276,412 -00:26:59 v #25916 > > 262,410 248,408 235,405 221,401 208,397 196,393 183,388 171,383 160,377 149,371 -00:26:59 v #25917 > > 139,364 129,357 120,350 112,342 104,334 97,326 91,317 86,309 81,300 77,290 -00:26:59 v #25918 > > 74,281 72,272 70,263 70,253 70,244 71,234 72,225 75,215 78,206 83,197 88,188 -00:26:59 v #25919 > > 93,180 100,171 107,163 115,155 124,148 133,140 143,133 153,127 164,121 176,115 -00:26:59 v #25920 > > 188,110 200,105 213,101 226,97 239,94 253,91 267,89 281,87 295,86 310,85 324,85 -00:26:59 v #25921 > > 338,86 353,87 367,88 381,90 394,93 408,96 421,100 434,104 447,109 459,114 -00:26:59 v #25922 > > 470,119 482,125 492,131 502,138 512,145 520,153 529,161 536,169 543,177 549,186 -00:26:59 v #25923 > > 554,194 558,203 562,213 565,222 567,231 568,241 569,250 "/> -00:26:59 v #25924 > > │ <rect x="464" y="227" width="116" height="45" opacity="1" -00:26:59 v #25925 > > fill="none" stroke="#FFFFFF"/> -00:26:59 v #25926 > > │ <text x="504" y="237" dy="0.76em" text-anchor="start" -00:26:59 v #25927 > > font-family="sans-serif" font-size="9.67741935483871" opacity="1" -00:26:59 v #25928 > > fill="#FFFFFF"> -00:26:59 v #25929 > > │ newtonian -00:26:59 v #25930 > > │ </text> -00:26:59 v #25931 > > │ <text x="504" y="252" dy="0.76em" text-anchor="start" -00:26:59 v #25932 > > font-family="sans-serif" font-size="9.67741935483871" opacity="1" -00:26:59 v #25933 > > fill="#FFFFFF"> -00:26:59 v #25934 > > │ relativistic -00:26:59 v #25935 > > │ </text> -00:26:59 v #25936 > > │ <polyline fill="none" opacity="1" stroke="#FF0000" -00:26:59 v #25937 > > stroke-width="1" points="474,242 494,242 "/> -00:26:59 v #25938 > > │ <polyline fill="none" opacity="1" stroke="#0000FF" -00:26:59 v #25939 > > stroke-width="1" points="474,257 494,257 "/> -00:26:59 v #25940 > > │ </svg> -00:26:59 v #25941 > > │ -00:26:59 v #25942 > > -00:26:59 v #25943 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:26:59 v #25944 > > │ #### system kinetic energy versus time 1 -00:26:59 v #25945 > > -00:26:59 v #25946 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:26:59 v #25947 > > //// test -00:26:59 v #25948 > > -00:26:59 v #25949 > > inl central_force f (particle_state st1) (particle_state st2) = -00:26:59 v #25950 > > inl r1 = st1.pos_vec -00:26:59 v #25951 > > inl r2 = st2.pos_vec -00:26:59 v #25952 > > inl r21 = r2 ^-^ r1 -00:26:59 v #25953 > > inl r21mag = magnitude r21 -00:26:59 v #25954 > > f r21mag *^ r21 ^/ r21mag -00:26:59 v #25955 > > -00:26:59 v #25956 > > inl billiard_force k re = -00:26:59 v #25957 > > inl f r = -00:26:59 v #25958 > > if r >= re -00:26:59 v #25959 > > then 0 -00:26:59 v #25960 > > else -k * (r - re) -00:26:59 v #25961 > > central_force f -00:26:59 v #25962 > > -00:26:59 v #25963 > > type force_vector = vec -00:26:59 v #25964 > > type two_body_force = particle_state -> particle_state -> force_vector -00:26:59 v #25965 > > -00:26:59 v #25966 > > union force = -00:26:59 v #25967 > > | ExternalForce : i32 * one_body_force -00:26:59 v #25968 > > | InternalForce : i32 * i32 * two_body_force -00:26:59 v #25969 > > -00:26:59 v #25970 > > nominal multi_particle_state = list particle_state -00:26:59 v #25971 > > -00:26:59 v #25972 > > nominal d_multi_particle_state = list d_particle_state -00:26:59 v #25973 > > -00:26:59 v #25974 > > inl force_on n sts force = -00:26:59 v #25975 > > match force with -00:26:59 v #25976 > > | ExternalForce (n0, f_one_body) => -00:26:59 v #25977 > > if n = n0 -00:26:59 v #25978 > > then f_one_body -00:26:59 v #25979 > > else fun _ => zero_vec () -00:26:59 v #25980 > > | InternalForce (n0, n1, f_two_body) => -00:26:59 v #25981 > > if n = n0 -00:26:59 v #25982 > > then f_two_body (sts |> listm'.item n1) -00:26:59 v #25983 > > elif n = n1 -00:26:59 v #25984 > > then f_two_body (sts |> listm'.item n0) -00:26:59 v #25985 > > else fun _ => zero_vec () -00:26:59 v #25986 > > -00:26:59 v #25987 > > inl forces_on n (multi_particle_state sts) fs = -00:26:59 v #25988 > > fs |> listm.map (force_on n sts) -00:26:59 v #25989 > > -00:26:59 v #25990 > > inl newton_second_mps fs (multi_particle_state sts) : d_multi_particle_state = -00:26:59 v #25991 > > inl deriv (n, st) = -00:26:59 v #25992 > > newton_second_ps (forces_on n (multi_particle_state sts) fs) st -00:26:59 v #25993 > > sts |> listm'.indexed |> listm.map deriv |> d_multi_particle_state -00:26:59 v #25994 > > -00:26:59 v #25995 > > instance (+++) d_multi_particle_state = fun (d_multi_particle_state dsts1) -00:26:59 v #25996 > > (d_multi_particle_state dsts2) => -00:26:59 v #25997 > > d_multi_particle_state (listm'.zip_with_ (+++) dsts1 dsts2) -00:26:59 v #25998 > > -00:26:59 v #25999 > > instance scale d_multi_particle_state = fun w (d_multi_particle_state dsts) => -00:26:59 v #26000 > > d_multi_particle_state (dsts |> listm.map (scale w)) -00:26:59 v #26001 > > -00:26:59 v #26002 > > instance shift multi_particle_state = fun dt dsts (multi_particle_state sts) => -00:26:59 v #26003 > > inl (d_multi_particle_state dsts) = -00:26:59 v #26004 > > real -00:26:59 v #26005 > > match dsts with -00:26:59 v #26006 > > | d_multi_particle_state _ => dsts -00:26:59 v #26007 > > listm'.zip_with_ (shift dt) dsts sts |> multi_particle_state -00:26:59 v #26008 > > -00:26:59 v #26009 > > inl euler_cromer_mps dt : numerical_method multi_particle_state -00:26:59 v #26010 > > d_multi_particle_state = -00:26:59 v #26011 > > fun deriv mpst0 => -00:26:59 v #26012 > > inl mpst1 = euler dt deriv mpst0 -00:26:59 v #26013 > > inl (multi_particle_state sts0) = mpst0 -00:26:59 v #26014 > > inl (multi_particle_state sts1) = mpst1 -00:26:59 v #26015 > > sts1 -00:26:59 v #26016 > > |> listm'.zip_ sts0 -00:26:59 v #26017 > > |> listm.map (fun ((particle_state st0), (particle_state st1)) => -00:26:59 v #26018 > > particle_state { -00:26:59 v #26019 > > st1 with -00:26:59 v #26020 > > pos_vec = st0.pos_vec ^+^ st1.velocity ^* dt -00:26:59 v #26021 > > } -00:26:59 v #26022 > > ) -00:26:59 v #26023 > > |> multi_particle_state -00:26:59 v #26024 > > -00:26:59 v #26025 > > inl update_mps (method : numerical_method multi_particle_state -00:26:59 v #26026 > > d_multi_particle_state) = -00:26:59 v #26027 > > newton_second_mps >> method -00:26:59 v #26028 > > -00:26:59 v #26029 > > inl states_mps (method : numerical_method multi_particle_state -00:26:59 v #26030 > > d_multi_particle_state) = -00:26:59 v #26031 > > newton_second_mps >> method >> seq.iterate_ -00:26:59 v #26032 > > -00:26:59 v #26033 > > -00:26:59 v #26034 > > inl kinetic_energy (particle_state st) = -00:26:59 v #26035 > > inl m = st.mass -00:26:59 v #26036 > > inl v = magnitude st.velocity -00:26:59 v #26037 > > 0.5 * m * v ** 2 -00:26:59 v #26038 > > -00:26:59 v #26039 > > inl system_ke (multi_particle_state sts) = -00:26:59 v #26040 > > sts |> listm.map kinetic_energy |> listm'.sum -00:26:59 v #26041 > > -00:26:59 v #26042 > > inl linear_spring_pe k re (particle_state st1) (particle_state st2) = -00:26:59 v #26043 > > inl r1 = st1.pos_vec -00:26:59 v #26044 > > inl r2 = st2.pos_vec -00:26:59 v #26045 > > inl r21 = r2 ^-^ r1 -00:26:59 v #26046 > > inl r21mag = magnitude r21 -00:26:59 v #26047 > > k * (r21mag - re) ** 2 / 2 -00:26:59 v #26048 > > -00:26:59 v #26049 > > inl earth_surface_gravity_pe (particle_state st) = -00:26:59 v #26050 > > inl g = 9.80665 -00:26:59 v #26051 > > inl m = st.mass -00:26:59 v #26052 > > inl z = st.pos_vec.z -00:26:59 v #26053 > > m * g * z -00:26:59 v #26054 > > -00:26:59 v #26055 > > inl two_springs_pe (multi_particle_state sts) = -00:26:59 v #26056 > > inl st0 = sts |> listm'.item 0i32 -00:26:59 v #26057 > > inl st1 = sts |> listm'.item 1i32 -00:26:59 v #26058 > > linear_spring_pe 100 0.5 (default_particle_state ()) st0 -00:26:59 v #26059 > > + linear_spring_pe 100 0.5 st0 st1 -00:26:59 v #26060 > > + earth_surface_gravity_pe st0 -00:26:59 v #26061 > > + earth_surface_gravity_pe st1 -00:26:59 v #26062 > > -00:26:59 v #26063 > > inl two_springs_me mpst = -00:26:59 v #26064 > > system_ke mpst + two_springs_pe mpst -00:26:59 v #26065 > > -00:26:59 v #26066 > > inl ball_radius () = 0.03 -00:26:59 v #26067 > > -00:26:59 v #26068 > > inl billiard_forces k = -00:26:59 v #26069 > > [[ InternalForce (0, 1, billiard_force k (2 * ball_radius ())) ]] -00:26:59 v #26070 > > -00:26:59 v #26071 > > inl billiard_update n_method k dt = -00:26:59 v #26072 > > update_mps (n_method dt) (billiard_forces k) -00:26:59 v #26073 > > -00:26:59 v #26074 > > inl billiard_initial () = -00:26:59 v #26075 > > inl ball_mass = 0.160 -00:26:59 v #26076 > > inl (particle_state default_particle_state') = default_particle_state () -00:26:59 v #26077 > > multi_particle_state [[ -00:26:59 v #26078 > > particle_state { -00:26:59 v #26079 > > default_particle_state' with -00:26:59 v #26080 > > mass = ball_mass -00:26:59 v #26081 > > pos_vec = zero_vec () -00:26:59 v #26082 > > velocity = 0.2 *^ i_hat () -00:26:59 v #26083 > > } -00:26:59 v #26084 > > particle_state { -00:26:59 v #26085 > > default_particle_state' with -00:26:59 v #26086 > > mass = ball_mass -00:26:59 v #26087 > > pos_vec = i_hat () ^+^ 0.02 *^ j_hat () -00:26:59 v #26088 > > velocity = zero_vec () -00:26:59 v #26089 > > } -00:26:59 v #26090 > > ]] -00:26:59 v #26091 > > -00:26:59 v #26092 > > inl billiard_states ~n_method k dt = -00:26:59 v #26093 > > states_mps (n_method dt) (billiard_forces k) (billiard_initial ()) -00:26:59 v #26094 > > -00:26:59 v #26095 > > inl billiard_states_finite n_method k dt = -00:26:59 v #26096 > > billiard_states n_method k dt -00:26:59 v #26097 > > >> Some -00:26:59 v #26098 > > |> seq.take_while_ (fun (multi_particle_state mpst) (_ : i32) => -00:26:59 v #26099 > > (mpst |> listm'.item 0i32).time <= 10 -00:26:59 v #26100 > > ) -00:26:59 v #26101 > > -00:26:59 v #26102 > > inl momentum (particle_state st) = -00:26:59 v #26103 > > inl m = st.mass -00:26:59 v #26104 > > inl v = st.velocity -00:26:59 v #26105 > > m *^ v -00:26:59 v #26106 > > -00:26:59 v #26107 > > inl system_p (multi_particle_state sts) = -00:26:59 v #26108 > > sts |> listm.map momentum |> sum_vec -00:26:59 v #26109 > > -00:26:59 v #26110 > > -00:26:59 v #26111 > > inl time_ke_ec_x, time_ke_ec_y = -00:26:59 v #26112 > > billiard_states_finite euler_cromer_mps 30 0.03 -00:26:59 v #26113 > > |> listm.map (fun (multi_particle_state mpst) => -00:26:59 v #26114 > > (mpst |> listm'.item 0i32).time, system_ke (multi_particle_state mpst) -00:26:59 v #26115 > > ) -00:26:59 v #26116 > > |> listm'.unzip -00:26:59 v #26117 > > -00:26:59 v #26118 > > inl time_ke_rk4_x, time_ke_rk4_y = -00:26:59 v #26119 > > billiard_states_finite runge_kutta_4 30 0.03 -00:26:59 v #26120 > > |> listm.map (fun (multi_particle_state mpst) => -00:26:59 v #26121 > > (mpst |> listm'.item 0i32).time, system_ke (multi_particle_state mpst) -00:26:59 v #26122 > > ) -00:26:59 v #26123 > > |> listm'.unzip -00:26:59 v #26124 > > -00:26:59 v #26125 > > inl time_ke_ec_x = time_ke_ec_x |> listm'.box |> listm'.to_array' -00:26:59 v #26126 > > inl time_ke_ec_y = time_ke_ec_y |> listm'.box |> listm'.to_array' -00:26:59 v #26127 > > -00:26:59 v #26128 > > inl time_ke_rk4_x = time_ke_rk4_x |> listm'.box |> listm'.to_array' -00:26:59 v #26129 > > inl time_ke_rk4_y = time_ke_rk4_y |> listm'.box |> listm'.to_array' -00:26:59 v #26130 > > -00:26:59 v #26131 > > "system kinetic energy versus time", -00:26:59 v #26132 > > "time (s)", -00:26:59 v #26133 > > "system kinetic energy (j)", -00:26:59 v #26134 > > ;[[ -00:26:59 v #26135 > > "euler-cromer", time_ke_ec_x, time_ke_ec_y -00:26:59 v #26136 > > "runge-kutta 4", time_ke_rk4_x, time_ke_rk4_y -00:26:59 v #26137 > > ]] -00:27:01 v #26138 > > -00:27:01 v #26139 > > ── [ 1.66s - return value ] ──────────────────────────────────────────────────── -00:27:01 v #26140 > > │ <svg width="640" height="480" viewBox="0 0 640 480" -00:27:01 v #26141 > > xmlns="http://www.w3.org/2000/svg"> -00:27:01 v #26142 > > │ <rect x="0" y="0" width="640" height="480" opacity="1" -00:27:01 v #26143 > > fill="#141414" stroke="none"/> -00:27:01 v #26144 > > │ <text x="320" y="10" dy="0.76em" text-anchor="middle" -00:27:01 v #26145 > > font-family="sans-serif" font-size="9.67741935483871" opacity="1" -00:27:01 v #26146 > > fill="#FFFFFF"> -00:27:01 v #26147 > > │ system kinetic energy versus time -00:27:01 v #26148 > > │ </text> -00:27:01 v #26149 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="59" -00:27:01 v #26150 > > y1="424" x2="59" y2="75"/> -00:27:01 v #26151 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" -00:27:01 v #26152 > > y1="424" x2="69" y2="75"/> -00:27:01 v #26153 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="79" -00:27:01 v #26154 > > y1="424" x2="79" y2="75"/> -00:27:01 v #26155 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="89" -00:27:01 v #26156 > > y1="424" x2="89" y2="75"/> -00:27:01 v #26157 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="99" -00:27:01 v #26158 > > y1="424" x2="99" y2="75"/> -00:27:01 v #26159 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="109" -00:27:01 v #26160 > > y1="424" x2="109" y2="75"/> -00:27:01 v #26161 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="119" -00:27:01 v #26162 > > y1="424" x2="119" y2="75"/> -00:27:01 v #26163 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="129" -00:27:01 v #26164 > > y1="424" x2="129" y2="75"/> -00:27:01 v #26165 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="139" -00:27:01 v #26166 > > y1="424" x2="139" y2="75"/> -00:27:01 v #26167 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="149" -00:27:01 v #26168 > > y1="424" x2="149" y2="75"/> -00:27:01 v #26169 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="159" -00:27:01 v #26170 > > y1="424" x2="159" y2="75"/> -00:27:01 v #26171 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="169" -00:27:01 v #26172 > > y1="424" x2="169" y2="75"/> -00:27:01 v #26173 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="179" -00:27:01 v #26174 > > y1="424" x2="179" y2="75"/> -00:27:01 v #26175 > > │ ...,104 404,104 405,104 407,104 408,104 410,104 411,104 -00:27:01 v #26176 > > 413,104 414,104 416,104 417,104 419,104 420,104 422,104 423,104 425,104 426,104 -00:27:01 v #26177 > > 428,104 429,104 431,104 432,104 434,104 435,104 437,104 438,104 440,104 441,104 -00:27:01 v #26178 > > 443,104 444,104 446,104 447,104 449,104 450,104 452,104 453,104 455,104 456,104 -00:27:01 v #26179 > > 458,104 459,104 461,104 462,104 464,104 465,104 467,104 468,104 470,104 471,104 -00:27:01 v #26180 > > 473,104 474,104 476,104 477,104 479,104 480,104 482,104 483,104 485,104 486,104 -00:27:01 v #26181 > > 488,104 489,104 491,104 492,104 494,104 495,104 497,104 498,104 500,104 501,104 -00:27:01 v #26182 > > 503,104 504,104 506,104 507,104 509,104 510,104 512,104 513,104 515,104 516,104 -00:27:01 v #26183 > > 518,104 519,104 521,104 522,104 524,104 525,104 527,104 528,104 530,104 531,104 -00:27:01 v #26184 > > 533,104 534,104 536,104 537,104 539,104 540,104 542,104 543,104 545,104 546,104 -00:27:01 v #26185 > > 548,104 549,104 551,104 552,104 554,104 555,104 557,104 558,104 560,104 561,104 -00:27:01 v #26186 > > 563,104 564,104 566,104 567,104 569,104 "/> -00:27:01 v #26187 > > │ <rect x="459" y="227" width="121" height="45" opacity="1" -00:27:01 v #26188 > > fill="none" stroke="#FFFFFF"/> -00:27:01 v #26189 > > │ <text x="499" y="237" dy="0.76em" text-anchor="start" -00:27:01 v #26190 > > font-family="sans-serif" font-size="9.67741935483871" opacity="1" -00:27:01 v #26191 > > fill="#FFFFFF"> -00:27:01 v #26192 > > │ euler-cromer -00:27:01 v #26193 > > │ </text> -00:27:01 v #26194 > > │ <text x="499" y="252" dy="0.76em" text-anchor="start" -00:27:01 v #26195 > > font-family="sans-serif" font-size="9.67741935483871" opacity="1" -00:27:01 v #26196 > > fill="#FFFFFF"> -00:27:01 v #26197 > > │ runge-kutta 4 -00:27:01 v #26198 > > │ </text> -00:27:01 v #26199 > > │ <polyline fill="none" opacity="1" stroke="#FF0000" -00:27:01 v #26200 > > stroke-width="1" points="469,242 489,242 "/> -00:27:01 v #26201 > > │ <polyline fill="none" opacity="1" stroke="#0000FF" -00:27:01 v #26202 > > stroke-width="1" points="469,257 489,257 "/> -00:27:01 v #26203 > > │ </svg> -00:27:01 v #26204 > > │ -00:27:01 v #26205 > > -00:27:01 v #26206 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:27:01 v #26207 > > │ #### wave 1 -00:27:01 v #26208 > > -00:27:01 v #26209 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:27:01 v #26210 > > //// test -00:27:01 v #26211 > > -00:27:01 v #26212 > > inl linear_spring k re (particle_state st1) (particle_state st2) = -00:27:01 v #26213 > > inl r1 = st1.pos_vec -00:27:01 v #26214 > > inl r2 = st2.pos_vec -00:27:01 v #26215 > > inl r21 = r2 ^-^ r1 -00:27:01 v #26216 > > inl r21mag = magnitude r21 -00:27:01 v #26217 > > -k * (r21mag - re) *^ r21 ^/ r21mag -00:27:01 v #26218 > > -00:27:01 v #26219 > > inl fixed_linear_spring k re r1 = -00:27:01 v #26220 > > inl (particle_state default_particle_state') = default_particle_state () -00:27:01 v #26221 > > linear_spring k re (particle_state { default_particle_state' with pos_vec = -00:27:01 v #26222 > > r1 }) -00:27:01 v #26223 > > -00:27:01 v #26224 > > inl forces_string () = -00:27:01 v #26225 > > [[ -00:27:01 v #26226 > > ExternalForce (0, fixed_linear_spring 5384 0 (zero_vec ())) -00:27:01 v #26227 > > ExternalForce (63, fixed_linear_spring 5384 0 (0.65 *^ i_hat ())) -00:27:01 v #26228 > > ]] ++ ( -00:27:01 v #26229 > > listm'.init_series 0 59 1 -00:27:01 v #26230 > > |> listm.map (fun n => InternalForce (n, n + 1, linear_spring 5384 0)) -00:27:01 v #26231 > > ) -00:27:01 v #26232 > > -00:27:01 v #26233 > > inl string_update dt = -00:27:01 v #26234 > > update_mps (runge_kutta_4 dt) (forces_string ()) -00:27:01 v #26235 > > -00:27:01 v #26236 > > inl string_initial_overtone n = -00:27:01 v #26237 > > inl ball_mass = 0.0008293 * 0.65 / 64 -00:27:01 v #26238 > > inl (particle_state default_particle_state') = default_particle_state () -00:27:01 v #26239 > > listm'.init_series 0.01 0.64 0.01 -00:27:01 v #26240 > > |> listm.map (fun x => -00:27:01 v #26241 > > inl y = 0.005 * sin (conv n * pi * x / 0.65) -00:27:01 v #26242 > > particle_state { -00:27:01 v #26243 > > default_particle_state' with -00:27:01 v #26244 > > mass = ball_mass -00:27:01 v #26245 > > pos_vec = x *^ i_hat () ^+^ y *^ j_hat () -00:27:01 v #26246 > > velocity = zero_vec () -00:27:01 v #26247 > > } -00:27:01 v #26248 > > ) -00:27:01 v #26249 > > |> multi_particle_state -00:27:01 v #26250 > > -00:27:01 v #26251 > > inl string_initial_pluck () = -00:27:01 v #26252 > > inl ball_mass = 0.0008293 * 0.65 / 64 -00:27:01 v #26253 > > inl (particle_state default_particle_state') = default_particle_state () -00:27:01 v #26254 > > listm'.init_series 0.01 0.64 0.01 -00:27:01 v #26255 > > |> listm.map (fun x => -00:27:01 v #26256 > > inl y = -00:27:01 v #26257 > > inl n = if x <= 0.51 then 0 else 0.65 -00:27:01 v #26258 > > 0.005 / (0.51 - n) * (x - n) -00:27:01 v #26259 > > particle_state { -00:27:01 v #26260 > > default_particle_state' with -00:27:01 v #26261 > > mass = ball_mass -00:27:01 v #26262 > > pos_vec = x *^ i_hat () ^+^ y *^ j_hat () -00:27:01 v #26263 > > velocity = zero_vec () -00:27:01 v #26264 > > } -00:27:01 v #26265 > > ) -00:27:01 v #26266 > > |> multi_particle_state -00:27:01 v #26267 > > -00:27:01 v #26268 > > let main () = -00:27:01 v #26269 > > inl ~frames = listm'.init_series 0 9 1f64 -00:27:01 v #26270 > > inl initial_state = string_initial_overtone 3i32 -00:27:01 v #26271 > > inl frames = -00:27:01 v #26272 > > frames -00:27:01 v #26273 > > |> listm.map (fun n => -00:27:01 v #26274 > > inl (multi_particle_state sts) = -00:27:01 v #26275 > > seq.iterate' (string_update 0.000025) initial_state |> fun f => -00:27:01 v #26276 > > f 0f64 -00:27:01 v #26277 > > inl rs = -00:27:01 v #26278 > > [[ zero_vec () ]] -00:27:01 v #26279 > > ++ (sts |> listm.map (fun (particle_state st) => st.pos_vec)) -00:27:01 v #26280 > > ++ [[ 0.65 *^ i_hat () ]] -00:27:01 v #26281 > > inl x, y = -00:27:01 v #26282 > > rs -00:27:01 v #26283 > > |> listm.map (fun r => r.x, r.y) -00:27:01 v #26284 > > |> listm'.unzip -00:27:01 v #26285 > > inl x = x |> listm'.box |> listm'.to_array' -00:27:01 v #26286 > > inl y = y |> listm'.box |> listm'.to_array' -00:27:01 v #26287 > > x, y -00:27:01 v #26288 > > ) -00:27:01 v #26289 > > |> listm'.box |> listm'.to_array' -00:27:01 v #26290 > > -00:27:01 v #26291 > > inl n = 0i32 -00:27:01 v #26292 > > -00:27:01 v #26293 > > inl x, y = a frames |> am'.index n -00:27:01 v #26294 > > -00:27:01 v #26295 > > "wave", -00:27:01 v #26296 > > "position (m)", -00:27:01 v #26297 > > "displacement (m)", -00:27:01 v #26298 > > ;[[ -00:27:01 v #26299 > > ($'$"{!n}"' : string), x, y -00:27:01 v #26300 > > ]] -00:27:01 v #26301 > > -00:27:01 v #26302 > > ── [ 650.87ms - return value ] ───────────────────────────────────────────────── -00:27:01 v #26303 > > │ <svg width="640" height="480" viewBox="0 0 640 480" -00:27:01 v #26304 > > xmlns="http://www.w3.org/2000/svg"> -00:27:01 v #26305 > > │ <rect x="0" y="0" width="640" height="480" opacity="1" -00:27:01 v #26306 > > fill="#141414" stroke="none"/> -00:27:01 v #26307 > > │ <text x="320" y="10" dy="0.76em" text-anchor="middle" -00:27:01 v #26308 > > font-family="sans-serif" font-size="9.67741935483871" opacity="1" -00:27:01 v #26309 > > fill="#FFFFFF"> -00:27:01 v #26310 > > │ wave -00:27:01 v #26311 > > │ </text> -00:27:01 v #26312 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="62" -00:27:01 v #26313 > > y1="424" x2="62" y2="75"/> -00:27:01 v #26314 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" -00:27:01 v #26315 > > y1="424" x2="69" y2="75"/> -00:27:01 v #26316 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="77" -00:27:01 v #26317 > > y1="424" x2="77" y2="75"/> -00:27:01 v #26318 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="85" -00:27:01 v #26319 > > y1="424" x2="85" y2="75"/> -00:27:01 v #26320 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="93" -00:27:01 v #26321 > > y1="424" x2="93" y2="75"/> -00:27:01 v #26322 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="100" -00:27:01 v #26323 > > y1="424" x2="100" y2="75"/> -00:27:01 v #26324 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="108" -00:27:01 v #26325 > > y1="424" x2="108" y2="75"/> -00:27:01 v #26326 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="116" -00:27:01 v #26327 > > y1="424" x2="116" y2="75"/> -00:27:01 v #26328 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="123" -00:27:01 v #26329 > > y1="424" x2="123" y2="75"/> -00:27:01 v #26330 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="131" -00:27:01 v #26331 > > y1="424" x2="131" y2="75"/> -00:27:01 v #26332 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="139" -00:27:01 v #26333 > > y1="424" x2="139" y2="75"/> -00:27:01 v #26334 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="146" -00:27:01 v #26335 > > y1="424" x2="146" y2="75"/> -00:27:01 v #26336 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="154" -00:27:01 v #26337 > > y1="424" x2="154" y2="75"/> -00:27:01 v #26338 > > │ <line opacity="1" stroke="#32...ne fill="none" opacity="1" -00:27:01 v #26339 > > stroke="#FFFFFF" stroke-width="1" points="585,250 590,250 "/> -00:27:01 v #26340 > > │ <text x="617" y="184" dy="0.5ex" text-anchor="end" -00:27:01 v #26341 > > font-family="sans-serif" font-size="9.67741935483871" opacity="1" -00:27:01 v #26342 > > fill="#FFFFFF"> -00:27:01 v #26343 > > │ 0.0 -00:27:01 v #26344 > > │ </text> -00:27:01 v #26345 > > │ <polyline fill="none" opacity="1" stroke="#FFFFFF" -00:27:01 v #26346 > > stroke-width="1" points="585,184 590,184 "/> -00:27:01 v #26347 > > │ <text x="617" y="118" dy="0.5ex" text-anchor="end" -00:27:01 v #26348 > > font-family="sans-serif" font-size="9.67741935483871" opacity="1" -00:27:01 v #26349 > > fill="#FFFFFF"> -00:27:01 v #26350 > > │ 0.0 -00:27:01 v #26351 > > │ </text> -00:27:01 v #26352 > > │ <polyline fill="none" opacity="1" stroke="#FFFFFF" -00:27:01 v #26353 > > stroke-width="1" points="585,118 590,118 "/> -00:27:01 v #26354 > > │ <polyline fill="none" opacity="1" stroke="#FF0000" -00:27:01 v #26355 > > stroke-width="1" points="69,250 77,226 85,203 93,181 100,160 108,141 116,124 -00:27:01 v #26356 > > 123,110 131,99 139,91 146,87 154,85 162,88 169,93 177,102 185,115 192,129 -00:27:01 v #26357 > > 200,147 208,167 215,188 223,211 231,234 238,258 246,282 254,305 261,327 269,347 -00:27:01 v #26358 > > 277,365 284,381 292,394 300,404 307,411 315,415 323,415 331,411 338,404 346,394 -00:27:01 v #26359 > > 354,381 361,365 369,347 377,327 384,305 392,282 400,258 407,234 415,211 423,188 -00:27:01 v #26360 > > 430,167 438,147 446,129 453,115 461,102 469,93 476,88 484,85 492,87 499,91 -00:27:01 v #26361 > > 507,99 515,110 522,124 530,141 538,160 545,181 553,203 561,226 569,250 "/> -00:27:01 v #26362 > > │ <rect x="525" y="235" width="55" height="30" opacity="1" -00:27:01 v #26363 > > fill="none" stroke="#FFFFFF"/> -00:27:01 v #26364 > > │ <text x="565" y="245" dy="0.76em" text-anchor="start" -00:27:01 v #26365 > > font-family="sans-serif" font-size="9.67741935483871" opacity="1" -00:27:01 v #26366 > > fill="#FFFFFF"> -00:27:01 v #26367 > > │ 0 -00:27:01 v #26368 > > │ </text> -00:27:01 v #26369 > > │ <polyline fill="none" opacity="1" stroke="#FF0000" -00:27:01 v #26370 > > stroke-width="1" points="535,250 555,250 "/> -00:27:01 v #26371 > > │ </svg> -00:27:01 v #26372 > > │ -00:27:01 v #26373 > > -00:27:01 v #26374 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:27:01 v #26375 > > │ #### system kinetic energy versus time 2 -00:27:01 v #26376 > > -00:27:01 v #26377 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:27:01 v #26378 > > //// test -00:27:01 v #26379 > > -00:27:01 v #26380 > > inl central_force f (particle_state st1) (particle_state st2) = -00:27:01 v #26381 > > inl r1 = st1.pos_vec -00:27:01 v #26382 > > inl r2 = st2.pos_vec -00:27:01 v #26383 > > inl r21 = r2 ^-^ r1 -00:27:01 v #26384 > > inl r21mag = magnitude r21 -00:27:01 v #26385 > > f r21mag *^ r21 ^/ r21mag -00:27:01 v #26386 > > -00:27:01 v #26387 > > inl billiard_force k re = -00:27:01 v #26388 > > inl f r = -00:27:01 v #26389 > > if r >= re -00:27:01 v #26390 > > then 0 -00:27:01 v #26391 > > else -k * (r - re) -00:27:01 v #26392 > > central_force f -00:27:01 v #26393 > > -00:27:01 v #26394 > > type force_vector = vec -00:27:01 v #26395 > > type two_body_force = particle_state -> particle_state -> force_vector -00:27:01 v #26396 > > -00:27:01 v #26397 > > union force t = -00:27:01 v #26398 > > | ExternalForce : t * one_body_force -00:27:01 v #26399 > > | InternalForce : t * t * two_body_force -00:27:01 v #26400 > > -00:27:01 v #26401 > > nominal multi_particle_state = stream.stream particle_state -00:27:01 v #26402 > > -00:27:01 v #26403 > > nominal d_multi_particle_state = stream.stream d_particle_state -00:27:01 v #26404 > > -00:27:01 v #26405 > > inl force_on n s force = -00:27:01 v #26406 > > match force with -00:27:01 v #26407 > > | ExternalForce (n0, f_one_body) => -00:27:01 v #26408 > > if n = n0 -00:27:01 v #26409 > > then f_one_body -00:27:01 v #26410 > > else fun _ => zero_vec () -00:27:01 v #26411 > > | InternalForce (n0, n1, f_two_body) => -00:27:01 v #26412 > > if n = n0 -00:27:01 v #26413 > > then s |> stream.try_item n1 |> optionm.map f_two_body -00:27:01 v #26414 > > elif n = n1 -00:27:01 v #26415 > > then s |> stream.try_item n0 |> optionm.map f_two_body -00:27:01 v #26416 > > else None -00:27:01 v #26417 > > |> optionm'.default_value (fun _ => zero_vec ()) -00:27:01 v #26418 > > -00:27:01 v #26419 > > inl forces_on n (multi_particle_state sts) fs = -00:27:01 v #26420 > > fs -00:27:01 v #26421 > > |> listm.map (force_on n sts) -00:27:01 v #26422 > > -00:27:01 v #26423 > > inl newton_second_mps fs ((multi_particle_state sts) as mpst) = -00:27:01 v #26424 > > inl deriv (n, st) = -00:27:01 v #26425 > > newton_second_ps (forces_on n mpst fs) st -00:27:01 v #26426 > > sts |> stream.indexed |> stream.map deriv |> d_multi_particle_state -00:27:01 v #26427 > > -00:27:01 v #26428 > > instance (+++) d_multi_particle_state = -00:27:01 v #26429 > > fun (d_multi_particle_state dsts1) (d_multi_particle_state dsts2) => -00:27:01 v #26430 > > (dsts1, dsts2) -00:27:01 v #26431 > > ||> stream.zip_with (+++) -00:27:01 v #26432 > > |> d_multi_particle_state -00:27:01 v #26433 > > -00:27:01 v #26434 > > instance scale d_multi_particle_state = fun w (d_multi_particle_state dsts) => -00:27:01 v #26435 > > dsts -00:27:01 v #26436 > > |> stream.map (scale w) -00:27:01 v #26437 > > |> d_multi_particle_state -00:27:01 v #26438 > > -00:27:01 v #26439 > > instance shift multi_particle_state = fun dt dsts (multi_particle_state sts) => -00:27:01 v #26440 > > inl (d_multi_particle_state dsts) = -00:27:01 v #26441 > > real -00:27:01 v #26442 > > match dsts with -00:27:01 v #26443 > > | d_multi_particle_state _ => dsts -00:27:01 v #26444 > > (dsts, sts) -00:27:01 v #26445 > > ||> stream.zip_with (shift dt) -00:27:01 v #26446 > > |> stream.memoize -00:27:01 v #26447 > > |> fun x => x () -00:27:01 v #26448 > > |> multi_particle_state -00:27:01 v #26449 > > -00:27:01 v #26450 > > inl euler_cromer_mps dt : numerical_method multi_particle_state -00:27:01 v #26451 > > d_multi_particle_state = -00:27:01 v #26452 > > fun deriv ((multi_particle_state sts0) as mpst0) => -00:27:01 v #26453 > > inl (multi_particle_state sts1) = euler dt deriv mpst0 -00:27:01 v #26454 > > (sts0, sts1) -00:27:01 v #26455 > > ||> stream.zip -00:27:01 v #26456 > > |> stream.map (fun ((particle_state st0), (particle_state st1)) => -00:27:01 v #26457 > > particle_state { -00:27:01 v #26458 > > st1 with -00:27:01 v #26459 > > pos_vec = st0.pos_vec ^+^ st1.velocity ^* dt -00:27:01 v #26460 > > } -00:27:01 v #26461 > > ) -00:27:01 v #26462 > > |> multi_particle_state -00:27:01 v #26463 > > -00:27:01 v #26464 > > inl update_mps (method : numerical_method multi_particle_state -00:27:01 v #26465 > > d_multi_particle_state) = -00:27:01 v #26466 > > newton_second_mps >> method -00:27:01 v #26467 > > -00:27:01 v #26468 > > inl states_mps (method : numerical_method multi_particle_state -00:27:01 v #26469 > > d_multi_particle_state) = -00:27:01 v #26470 > > newton_second_mps -00:27:01 v #26471 > > >> method -00:27:01 v #26472 > > >> (fun x (multi_particle_state y) => -00:27:01 v #26473 > > y -00:27:01 v #26474 > > |> stream.memoize -00:27:01 v #26475 > > |> (fun x => x ()) -00:27:01 v #26476 > > |> multi_particle_state |> x -00:27:01 v #26477 > > ) -00:27:01 v #26478 > > // >> stream.iterate -00:27:01 v #26479 > > >> seq.iterate' -00:27:01 v #26480 > > -00:27:01 v #26481 > > inl kinetic_energy (particle_state st) = -00:27:01 v #26482 > > inl m = st.mass -00:27:01 v #26483 > > inl v = magnitude st.velocity -00:27:01 v #26484 > > 0.5 * m * v ** 2 -00:27:01 v #26485 > > -00:27:01 v #26486 > > inl system_ke (multi_particle_state sts) = -00:27:01 v #26487 > > sts -00:27:01 v #26488 > > |> stream.map kinetic_energy -00:27:01 v #26489 > > |> stream.sum -00:27:01 v #26490 > > -00:27:01 v #26491 > > inl linear_spring_pe k re (particle_state st1) (particle_state st2) = -00:27:01 v #26492 > > inl r1 = st1.pos_vec -00:27:01 v #26493 > > inl r2 = st2.pos_vec -00:27:01 v #26494 > > inl r21 = r2 ^-^ r1 -00:27:01 v #26495 > > inl r21mag = magnitude r21 -00:27:01 v #26496 > > k * (r21mag - re) ** 2 / 2 -00:27:01 v #26497 > > -00:27:01 v #26498 > > inl earth_surface_gravity_pe (particle_state st) = -00:27:01 v #26499 > > inl g = 9.80665 -00:27:01 v #26500 > > inl m = st.mass -00:27:01 v #26501 > > inl z = st.pos_vec.z -00:27:01 v #26502 > > m * g * z -00:27:01 v #26503 > > -00:27:01 v #26504 > > inl ball_radius () = 0.03 -00:27:01 v #26505 > > -00:27:01 v #26506 > > inl billiard_forces k = -00:27:01 v #26507 > > [[ InternalForce (0i32, 1, billiard_force k (2 * ball_radius ())) ]] -00:27:01 v #26508 > > -00:27:01 v #26509 > > inl billiard_initial () = -00:27:01 v #26510 > > inl ball_mass = 0.160 -00:27:01 v #26511 > > inl (particle_state default_particle_state') = default_particle_state () -00:27:01 v #26512 > > [[ -00:27:01 v #26513 > > particle_state { -00:27:01 v #26514 > > default_particle_state' with -00:27:01 v #26515 > > mass = ball_mass -00:27:01 v #26516 > > pos_vec = zero_vec () -00:27:01 v #26517 > > velocity = 0.2 *^ i_hat () -00:27:01 v #26518 > > } -00:27:01 v #26519 > > particle_state { -00:27:01 v #26520 > > default_particle_state' with -00:27:01 v #26521 > > mass = ball_mass -00:27:01 v #26522 > > pos_vec = i_hat () ^+^ 0.02 *^ j_hat () -00:27:01 v #26523 > > velocity = zero_vec () -00:27:01 v #26524 > > } -00:27:01 v #26525 > > ]] -00:27:01 v #26526 > > |> stream.from_list -00:27:01 v #26527 > > |> multi_particle_state -00:27:01 v #26528 > > -00:27:01 v #26529 > > inl billiard_states ~n_method k dt = -00:27:01 v #26530 > > states_mps (n_method dt) (billiard_forces k) (billiard_initial ()) -00:27:01 v #26531 > > -00:27:01 v #26532 > > inl billiard_states_finite n_method k dt = -00:27:01 v #26533 > > billiard_states n_method k dt -00:27:01 v #26534 > > >> Some -00:27:01 v #26535 > > |> seq.take_while_ (fun (multi_particle_state mpst) (_ : i32) => -00:27:01 v #26536 > > match mpst |> stream.try_item 0i32 with -00:27:01 v #26537 > > | Some st => -00:27:01 v #26538 > > st.time <= 10 -00:27:01 v #26539 > > | None => false -00:27:01 v #26540 > > ) -00:27:01 v #26541 > > -00:27:01 v #26542 > > inl momentum (particle_state st) = -00:27:01 v #26543 > > inl m = st.mass -00:27:01 v #26544 > > inl v = st.velocity -00:27:01 v #26545 > > m *^ v -00:27:01 v #26546 > > -00:27:01 v #26547 > > inl system_p (multi_particle_state sts) = -00:27:01 v #26548 > > sts -00:27:01 v #26549 > > |> stream.map momentum -00:27:01 v #26550 > > |> stream.fold (^+^) (zero_vec ()) -00:27:01 v #26551 > > -00:27:01 v #26552 > > inl time_ke_ec_x, time_ke_ec_y = -00:27:01 v #26553 > > billiard_states_finite euler_cromer_mps 30 0.03 -00:27:01 v #26554 > > |> listm.map (fun (multi_particle_state mpst) => -00:27:01 v #26555 > > mpst |> stream.try_item 0i32 -00:27:01 v #26556 > > |> optionm.map (fun st => -00:27:01 v #26557 > > st.time, system_ke (multi_particle_state mpst) -00:27:01 v #26558 > > ) -00:27:01 v #26559 > > ) -00:27:01 v #26560 > > // |> stream.to_list -00:27:01 v #26561 > > |> listm'.choose id -00:27:01 v #26562 > > |> listm'.unzip -00:27:01 v #26563 > > -00:27:01 v #26564 > > inl time_ke_rk4_x, time_ke_rk4_y = -00:27:01 v #26565 > > billiard_states_finite runge_kutta_4 30 0.03 -00:27:01 v #26566 > > |> listm.map (fun (multi_particle_state mpst) => -00:27:01 v #26567 > > mpst |> stream.try_item 0i32 -00:27:01 v #26568 > > |> optionm.map (fun st => -00:27:01 v #26569 > > st.time, system_ke (multi_particle_state mpst) -00:27:01 v #26570 > > ) -00:27:01 v #26571 > > ) -00:27:01 v #26572 > > // |> stream.to_list -00:27:01 v #26573 > > |> listm'.choose id -00:27:01 v #26574 > > |> listm'.unzip -00:27:01 v #26575 > > -00:27:01 v #26576 > > inl time_ke_ec_x = time_ke_ec_x |> listm'.box |> listm'.to_array' -00:27:01 v #26577 > > inl time_ke_ec_y = time_ke_ec_y |> listm'.box |> listm'.to_array' -00:27:01 v #26578 > > -00:27:01 v #26579 > > inl time_ke_rk4_x = time_ke_rk4_x |> listm'.box |> listm'.to_array' -00:27:01 v #26580 > > inl time_ke_rk4_y = time_ke_rk4_y |> listm'.box |> listm'.to_array' -00:27:01 v #26581 > > -00:27:01 v #26582 > > "system kinetic energy versus time", -00:27:01 v #26583 > > "time (s)", -00:27:01 v #26584 > > "system kinetic energy (j)", -00:27:01 v #26585 > > ;[[ -00:27:01 v #26586 > > "euler-cromer", time_ke_ec_x, time_ke_ec_y -00:27:01 v #26587 > > "runge-kutta 4", time_ke_rk4_x, time_ke_rk4_y -00:27:01 v #26588 > > ]] -00:27:03 v #26589 > > -00:27:03 v #26590 > > ── [ 1.89s - return value ] ──────────────────────────────────────────────────── -00:27:03 v #26591 > > │ <svg width="640" height="480" viewBox="0 0 640 480" -00:27:03 v #26592 > > xmlns="http://www.w3.org/2000/svg"> -00:27:03 v #26593 > > │ <rect x="0" y="0" width="640" height="480" opacity="1" -00:27:03 v #26594 > > fill="#141414" stroke="none"/> -00:27:03 v #26595 > > │ <text x="320" y="10" dy="0.76em" text-anchor="middle" -00:27:03 v #26596 > > font-family="sans-serif" font-size="9.67741935483871" opacity="1" -00:27:03 v #26597 > > fill="#FFFFFF"> -00:27:03 v #26598 > > │ system kinetic energy versus time -00:27:03 v #26599 > > │ </text> -00:27:03 v #26600 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="59" -00:27:03 v #26601 > > y1="424" x2="59" y2="75"/> -00:27:03 v #26602 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" -00:27:03 v #26603 > > y1="424" x2="69" y2="75"/> -00:27:03 v #26604 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="79" -00:27:03 v #26605 > > y1="424" x2="79" y2="75"/> -00:27:03 v #26606 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="89" -00:27:03 v #26607 > > y1="424" x2="89" y2="75"/> -00:27:03 v #26608 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="99" -00:27:03 v #26609 > > y1="424" x2="99" y2="75"/> -00:27:03 v #26610 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="109" -00:27:03 v #26611 > > y1="424" x2="109" y2="75"/> -00:27:03 v #26612 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="119" -00:27:03 v #26613 > > y1="424" x2="119" y2="75"/> -00:27:03 v #26614 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="129" -00:27:03 v #26615 > > y1="424" x2="129" y2="75"/> -00:27:03 v #26616 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="139" -00:27:03 v #26617 > > y1="424" x2="139" y2="75"/> -00:27:03 v #26618 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="149" -00:27:03 v #26619 > > y1="424" x2="149" y2="75"/> -00:27:03 v #26620 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="159" -00:27:03 v #26621 > > y1="424" x2="159" y2="75"/> -00:27:03 v #26622 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="169" -00:27:03 v #26623 > > y1="424" x2="169" y2="75"/> -00:27:03 v #26624 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="179" -00:27:03 v #26625 > > y1="424" x2="179" y2="75"/> -00:27:03 v #26626 > > │ ...,104 404,104 405,104 407,104 408,104 410,104 411,104 -00:27:03 v #26627 > > 413,104 414,104 416,104 417,104 419,104 420,104 422,104 423,104 425,104 426,104 -00:27:03 v #26628 > > 428,104 429,104 431,104 432,104 434,104 435,104 437,104 438,104 440,104 441,104 -00:27:03 v #26629 > > 443,104 444,104 446,104 447,104 449,104 450,104 452,104 453,104 455,104 456,104 -00:27:03 v #26630 > > 458,104 459,104 461,104 462,104 464,104 465,104 467,104 468,104 470,104 471,104 -00:27:03 v #26631 > > 473,104 474,104 476,104 477,104 479,104 480,104 482,104 483,104 485,104 486,104 -00:27:03 v #26632 > > 488,104 489,104 491,104 492,104 494,104 495,104 497,104 498,104 500,104 501,104 -00:27:03 v #26633 > > 503,104 504,104 506,104 507,104 509,104 510,104 512,104 513,104 515,104 516,104 -00:27:03 v #26634 > > 518,104 519,104 521,104 522,104 524,104 525,104 527,104 528,104 530,104 531,104 -00:27:03 v #26635 > > 533,104 534,104 536,104 537,104 539,104 540,104 542,104 543,104 545,104 546,104 -00:27:03 v #26636 > > 548,104 549,104 551,104 552,104 554,104 555,104 557,104 558,104 560,104 561,104 -00:27:03 v #26637 > > 563,104 564,104 566,104 567,104 569,104 "/> -00:27:03 v #26638 > > │ <rect x="459" y="227" width="121" height="45" opacity="1" -00:27:03 v #26639 > > fill="none" stroke="#FFFFFF"/> -00:27:03 v #26640 > > │ <text x="499" y="237" dy="0.76em" text-anchor="start" -00:27:03 v #26641 > > font-family="sans-serif" font-size="9.67741935483871" opacity="1" -00:27:03 v #26642 > > fill="#FFFFFF"> -00:27:03 v #26643 > > │ euler-cromer -00:27:03 v #26644 > > │ </text> -00:27:03 v #26645 > > │ <text x="499" y="252" dy="0.76em" text-anchor="start" -00:27:03 v #26646 > > font-family="sans-serif" font-size="9.67741935483871" opacity="1" -00:27:03 v #26647 > > fill="#FFFFFF"> -00:27:03 v #26648 > > │ runge-kutta 4 -00:27:03 v #26649 > > │ </text> -00:27:03 v #26650 > > │ <polyline fill="none" opacity="1" stroke="#FF0000" -00:27:03 v #26651 > > stroke-width="1" points="469,242 489,242 "/> -00:27:03 v #26652 > > │ <polyline fill="none" opacity="1" stroke="#0000FF" -00:27:03 v #26653 > > stroke-width="1" points="469,257 489,257 "/> -00:27:03 v #26654 > > │ </svg> -00:27:03 v #26655 > > │ -00:27:03 v #26656 > > -00:27:03 v #26657 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:27:03 v #26658 > > │ #### wave 2 -00:27:03 v #26659 > > -00:27:03 v #26660 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:27:03 v #26661 > > //// test -00:27:03 v #26662 > > -00:27:03 v #26663 > > inl linear_spring k re (particle_state st1) (particle_state st2) = -00:27:03 v #26664 > > inl r1 = st1.pos_vec -00:27:03 v #26665 > > inl r2 = st2.pos_vec -00:27:03 v #26666 > > inl r21 = r2 ^-^ r1 -00:27:03 v #26667 > > inl r21mag = magnitude r21 -00:27:03 v #26668 > > -k * (r21mag - re) *^ r21 ^/ r21mag -00:27:03 v #26669 > > -00:27:03 v #26670 > > inl fixed_linear_spring k re r1 = -00:27:03 v #26671 > > inl (particle_state default_particle_state') = default_particle_state () -00:27:03 v #26672 > > linear_spring k re (particle_state { default_particle_state' with pos_vec = -00:27:03 v #26673 > > r1 }) -00:27:03 v #26674 > > -00:27:03 v #26675 > > inl forces_string () = -00:27:03 v #26676 > > [[ -00:27:03 v #26677 > > ExternalForce (0i32, fixed_linear_spring 5384 0 (zero_vec ())) -00:27:03 v #26678 > > ExternalForce (63, fixed_linear_spring 5384 0 (0.65 *^ i_hat ())) -00:27:03 v #26679 > > ]] ++ ( -00:27:03 v #26680 > > listm'.init_series 0 59 1 -00:27:03 v #26681 > > |> listm.map (fun n => InternalForce (n, n + 1, linear_spring 5384 0)) -00:27:03 v #26682 > > ) -00:27:03 v #26683 > > -00:27:03 v #26684 > > inl string_update dt = -00:27:03 v #26685 > > update_mps (join runge_kutta_4 dt) (join forces_string ()) -00:27:03 v #26686 > > -00:27:03 v #26687 > > inl string_initial_overtone n = -00:27:03 v #26688 > > inl ball_mass = 0.0008293 * 0.65 / 64 -00:27:03 v #26689 > > inl (particle_state default_particle_state') = default_particle_state () -00:27:03 v #26690 > > listm'.init_series 0.01 0.64 0.01 -00:27:03 v #26691 > > |> listm.map (fun x => -00:27:03 v #26692 > > inl y = 0.005 * sin (conv n * pi * x / 0.65) -00:27:03 v #26693 > > particle_state { -00:27:03 v #26694 > > default_particle_state' with -00:27:03 v #26695 > > mass = ball_mass -00:27:03 v #26696 > > pos_vec = x *^ i_hat () ^+^ y *^ j_hat () -00:27:03 v #26697 > > velocity = zero_vec () -00:27:03 v #26698 > > } -00:27:03 v #26699 > > ) -00:27:03 v #26700 > > |> stream.from_list -00:27:03 v #26701 > > |> multi_particle_state -00:27:03 v #26702 > > -00:27:03 v #26703 > > let main () = -00:27:03 v #26704 > > inl ~frames = listm'.init_series 0 65 1f64 |> stream.from_list -00:27:03 v #26705 > > inl ~initial_state = string_initial_overtone 3i32 -00:27:03 v #26706 > > inl frames = -00:27:03 v #26707 > > frames -00:27:03 v #26708 > > |> stream.map (fun n => -00:27:03 v #26709 > > inl (multi_particle_state sts) = -00:27:03 v #26710 > > stream.iterate (string_update 0.000025) initial_state |> -00:27:03 v #26711 > > stream.item n -00:27:03 v #26712 > > inl x, y = -00:27:03 v #26713 > > [[ zero_vec () ]] -00:27:03 v #26714 > > ++ (sts |> stream.map (fun (particle_state st) => st.pos_vec) |> -00:27:03 v #26715 > > stream.to_list) -00:27:03 v #26716 > > ++ [[ 0.65 *^ i_hat () ]] -00:27:03 v #26717 > > |> listm.map (fun r => r.x, r.y) -00:27:03 v #26718 > > |> stream.from_list -00:27:03 v #26719 > > |> stream.unzip -00:27:03 v #26720 > > inl x = x |> stream.to_list |> listm'.box |> listm'.to_array' -00:27:03 v #26721 > > inl y = y |> stream.to_list |> listm'.box |> listm'.to_array' -00:27:03 v #26722 > > x, y -00:27:03 v #26723 > > ) -00:27:03 v #26724 > > -00:27:03 v #26725 > > inl plots = -00:27:03 v #26726 > > frames -00:27:03 v #26727 > > |> stream.indexed -00:27:03 v #26728 > > |> stream.map (fun ((n : i32), (x, y)) => -00:27:03 v #26729 > > "wave", -00:27:03 v #26730 > > "position (m)", -00:27:03 v #26731 > > "displacement (m)", -00:27:03 v #26732 > > ;[[ -00:27:03 v #26733 > > ($'$"{!n}"' : string), x, y -00:27:03 v #26734 > > ]] -00:27:03 v #26735 > > ) -00:27:03 v #26736 > > -00:27:03 v #26737 > > plots |> stream.to_list |> listm'.box |> listm'.to_array' -00:27:08 v #26738 > > -00:27:08 v #26739 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:27:08 v #26740 > > ── [ 4.95s - diagnostics ] ───────────────────────────────────────────────────── -00:27:08 v #26741 > > │ input.fsx (22,25)-(1084,1085) typecheck warning Incomplete -00:27:08 v #26742 > > pattern matches on this expression. For example, the value 'UH7_1 (_, _, _, _)' -00:27:08 v #26743 > > may indicate a case not covered by the pattern(s). -00:27:09 v #26744 > > -00:27:09 v #26745 > > ── [ 5.15s - return value ] ──────────────────────────────────────────────────── -00:27:09 v #26746 > > │ -00:27:09 v #26747 > > <table><thead><tr><th><i>index</i></th><th>value</th></tr></thead><tbody><tr><td -00:27:09 v #26748 > > >0</td><td><svg width="640" height="480" viewBox="0 0 640 480" -00:27:09 v #26749 > > xmlns="http://www.w3.org/2000/svg"> -00:27:09 v #26750 > > │ <rect x="0" y="0" width="640" height="480" opacity="1" -00:27:09 v #26751 > > fill="#141414" stroke="none"/> -00:27:09 v #26752 > > │ <text x="320" y="10" dy="0.76em" text-anchor="middle" -00:27:09 v #26753 > > font-family="sans-serif" font-size="9.67741935483871" opacity="1" -00:27:09 v #26754 > > fill="#FFFFFF"> -00:27:09 v #26755 > > │ wave -00:27:09 v #26756 > > │ </text> -00:27:09 v #26757 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="62" -00:27:09 v #26758 > > y1="424" x2="62" y2="75"/> -00:27:09 v #26759 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="69" -00:27:09 v #26760 > > y1="424" x2="69" y2="75"/> -00:27:09 v #26761 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="77" -00:27:09 v #26762 > > y1="424" x2="77" y2="75"/> -00:27:09 v #26763 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="85" -00:27:09 v #26764 > > y1="424" x2="85" y2="75"/> -00:27:09 v #26765 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="93" -00:27:09 v #26766 > > y1="424" x2="93" y2="75"/> -00:27:09 v #26767 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="100" -00:27:09 v #26768 > > y1="424" x2="100" y2="75"/> -00:27:09 v #26769 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="108" -00:27:09 v #26770 > > y1="424" x2="108" y2="75"/> -00:27:09 v #26771 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="116" -00:27:09 v #26772 > > y1="424" x2="116" y2="75"/> -00:27:09 v #26773 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="123" -00:27:09 v #26774 > > y1="424" x2="123" y2="75"/> -00:27:09 v #26775 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="131" -00:27:09 v #26776 > > y1="424" x2="131" y2="75"/> -00:27:09 v #26777 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="139" -00:27:09 v #26778 > > y1="424" x2="139" y2="75"/> -00:27:09 v #26779 > > │ <line opacity="1" stroke="#323232" stroke-width="1" x1="146" -00:27:09 v #26780 > > y1="424" x2="146" y2="75"/> -00:27:09 v #26781 > > │ <line opacity="1" stroke="#...28 590,128 "/> -00:27:09 v #26782 > > │ <polyline fill="none" opacity="1" stroke="#FF0000" -00:27:09 v #26783 > > stroke-width="1" points="69,363 77,322 85,283 92,246 100,211 107,179 115,151 -00:27:09 v #26784 > > 122,127 130,108 138,95 145,87 153,85 160,89 168,99 175,114 183,134 190,159 -00:27:09 v #26785 > > 198,188 205,220 212,253 218,284 223,311 226,329 227,337 226,337 224,333 223,334 -00:27:09 v #26786 > > 223,344 224,357 225,367 224,370 223,374 224,383 224,393 224,397 224,400 224,406 -00:27:09 v #26787 > > 224,411 224,412 224,413 224,415 224,413 224,411 224,409 224,405 224,400 224,395 -00:27:09 v #26788 > > 224,388 224,382 224,375 224,367 224,360 224,353 224,346 224,339 224,332 224,327 -00:27:09 v #26789 > > 224,322 224,318 224,314 224,312 224,311 539,239 546,279 569,403 561,363 "/> -00:27:09 v #26790 > > │ <rect x="519" y="235" width="61" height="30" opacity="1" -00:27:09 v #26791 > > fill="none" stroke="#FFFFFF"/> -00:27:09 v #26792 > > │ <text x="559" y="245" dy="0.76em" text-anchor="start" -00:27:09 v #26793 > > font-family="sans-serif" font-size="9.67741935483871" opacity="1" -00:27:09 v #26794 > > fill="#FFFFFF"> -00:27:09 v #26795 > > │ 65 -00:27:09 v #26796 > > │ </text> -00:27:09 v #26797 > > │ <polyline fill="none" opacity="1" stroke="#FF0000" -00:27:09 v #26798 > > stroke-width="1" points="529,250 549,250 "/> -00:27:09 v #26799 > > │ </svg> -00:27:09 v #26800 > > │ </td></tr></tbody></table><style> -00:27:09 v #26801 > > │ .dni-code-hint { -00:27:09 v #26802 > > │ font-style: italic; -00:27:09 v #26803 > > │ overflow: hidden; -00:27:09 v #26804 > > │ white-space: nowrap; -00:27:09 v #26805 > > │ } -00:27:09 v #26806 > > │ .dni-treeview { -00:27:09 v #26807 > > │ white-space: nowrap; -00:27:09 v #26808 > > │ } -00:27:09 v #26809 > > │ .dni-treeview td { -00:27:09 v #26810 > > │ vertical-align: top; -00:27:09 v #26811 > > │ text-align: start; -00:27:09 v #26812 > > │ } -00:27:09 v #26813 > > │ details.dni-treeview { -00:27:09 v #26814 > > │ padding-left: 1em; -00:27:09 v #26815 > > │ } -00:27:09 v #26816 > > │ table td { -00:27:09 v #26817 > > │ text-align: start; -00:27:09 v #26818 > > │ } -00:27:09 v #26819 > > │ table tr { -00:27:09 v #26820 > > │ vertical-align: top; -00:27:09 v #26821 > > │ margin: 0em 0px; -00:27:09 v #26822 > > │ } -00:27:09 v #26823 > > │ table tr td pre -00:27:09 v #26824 > > │ { -00:27:09 v #26825 > > │ vertical-align: top !important; -00:27:09 v #26826 > > │ margin: 0em 0px !important; -00:27:09 v #26827 > > │ } -00:27:09 v #26828 > > │ table th { -00:27:09 v #26829 > > │ text-align: start; -00:27:09 v #26830 > > │ } -00:27:09 v #26831 > > │ </style> -00:27:09 v #26832 > > -00:27:09 v #26833 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:27:09 v #26834 > > │ ## end -00:27:09 v #26835 > 00:01:01 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 117998 } -00:27:09 v #26836 > 00:01:01 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/lib/spiral/physics.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/lib/spiral/physics.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:27:10 v #26837 > 00:01:02 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/lib/spiral/physics.dib.ipynb to html -00:27:10 v #26838 > 00:01:02 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. -00:27:10 v #26839 > 00:01:02 v #7 ! validate(nb) -00:27:11 v #26840 > 00:01:03 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 -00:27:11 v #26841 > 00:01:03 v #9 ! return _pygments_highlight( -00:27:14 v #26842 > 00:01:06 v #10 ! [NbConvertApp] Writing 2508212 bytes to c:\home\git\polyglot\lib\spiral\physics.dib.html -00:27:15 v #26843 > 00:01:06 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 857 } -00:27:15 v #26844 > 00:01:06 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 857 } -00:27:15 v #26845 > 00:01:06 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/physics.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/physics.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:27:15 v #26846 > 00:01:07 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } -00:27:15 v #26847 > 00:01:07 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } -00:27:15 v #26848 > 00:01:07 d #16 spiral.run / dib / { exit_code = 0; result_length = 118914 } -00:27:15 d #26849 runtime.execute_with_options_async / { exit_code = 0; output_length = 127090 } -00:27:15 d #34 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path physics.dib --retries 3 -00:27:15 d #26850 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path seq.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path seq.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } -00:27:15 v #26851 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "seq.dib", "--retries", "3"])) } -00:27:15 v #26852 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/lib/spiral/seq.dib", "--output-path", "c:/home/git/polyglot/lib/spiral/seq.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/lib/spiral/seq.dib" --output-path "c:/home/git/polyglot/lib/spiral/seq.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } -00:27:17 v #26853 > > -00:27:17 v #26854 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:27:17 v #26855 > > │ # seq -00:27:20 v #26856 > > -00:27:20 v #26857 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:27:20 v #26858 > > //// test -00:27:20 v #26859 > > -00:27:20 v #26860 > > open testing -00:27:21 v #26861 > > -00:27:21 v #26862 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:27:21 v #26863 > > │ ## seq -00:27:21 v #26864 > > -00:27:21 v #26865 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:27:21 v #26866 > > │ ### seq -00:27:21 v #26867 > > -00:27:21 v #26868 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:27:21 v #26869 > > type seq dim el = dim -> option el -00:27:21 v #26870 > > -00:27:21 v #26871 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:27:21 v #26872 > > │ ### try_item -00:27:21 v #26873 > > -00:27:21 v #26874 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:27:21 v #26875 > > inl try_item n s = -00:27:21 v #26876 > > n |> s -00:27:22 v #26877 > > -00:27:22 v #26878 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:27:22 v #26879 > > │ ### from_list -00:27:22 v #26880 > > -00:27:22 v #26881 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:27:22 v #26882 > > inl from_list list = -00:27:22 v #26883 > > fun n => -00:27:22 v #26884 > > list -00:27:22 v #26885 > > |> listm'.try_item n -00:27:22 v #26886 > > -00:27:22 v #26887 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:27:22 v #26888 > > //// test -00:27:22 v #26889 > > -00:27:22 v #26890 > > listm.init 10i32 print_and_return -00:27:22 v #26891 > > |> from_list -00:27:22 v #26892 > > |> try_item 5i32 -00:27:22 v #26893 > > |> _assert_eq (Some 5i32) -00:27:24 v #26894 > > -00:27:24 v #26895 > > ── [ 1.32s - stdout ] ────────────────────────────────────────────────────────── -00:27:24 v #26896 > > │ print_and_return / x: 0 -00:27:24 v #26897 > > │ print_and_return / x: 1 -00:27:24 v #26898 > > │ print_and_return / x: 2 -00:27:24 v #26899 > > │ print_and_return / x: 3 -00:27:24 v #26900 > > │ print_and_return / x: 4 -00:27:24 v #26901 > > │ print_and_return / x: 5 -00:27:24 v #26902 > > │ print_and_return / x: 6 -00:27:24 v #26903 > > │ print_and_return / x: 7 -00:27:24 v #26904 > > │ print_and_return / x: 8 -00:27:24 v #26905 > > │ print_and_return / x: 9 -00:27:24 v #26906 > > │ __assert_eq / actual: US0_0 5 / expected: US0_0 5 -00:27:24 v #26907 > > │ -00:27:24 v #26908 > > -00:27:24 v #26909 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:27:24 v #26910 > > │ ### map -00:27:24 v #26911 > > -00:27:24 v #26912 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:27:24 v #26913 > > inl map fn s = -00:27:24 v #26914 > > fun n => -00:27:24 v #26915 > > n -00:27:24 v #26916 > > |> s -00:27:24 v #26917 > > |> optionm.map fn -00:27:24 v #26918 > > -00:27:24 v #26919 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:27:24 v #26920 > > //// test -00:27:24 v #26921 > > -00:27:24 v #26922 > > listm.init 10i32 id -00:27:24 v #26923 > > |> from_list -00:27:24 v #26924 > > |> map ((*) 2) -00:27:24 v #26925 > > |> try_item 5i32 -00:27:24 v #26926 > > |> _assert_eq (Some 10i32) -00:27:25 v #26927 > > -00:27:25 v #26928 > > ── [ 491.53ms - stdout ] ─────────────────────────────────────────────────────── -00:27:25 v #26929 > > │ __assert_eq / actual: US0_0 10 / expected: US0_0 10 -00:27:25 v #26930 > > │ -00:27:25 v #26931 > > -00:27:25 v #26932 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:27:25 v #26933 > > │ ### mapi -00:27:25 v #26934 > > -00:27:25 v #26935 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:27:25 v #26936 > > inl mapi fn s = -00:27:25 v #26937 > > fun n => -00:27:25 v #26938 > > n -00:27:25 v #26939 > > |> s -00:27:25 v #26940 > > |> optionm.map (fn n) -00:27:25 v #26941 > > -00:27:25 v #26942 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:27:25 v #26943 > > //// test -00:27:25 v #26944 > > -00:27:25 v #26945 > > listm.init 10i32 print_and_return -00:27:25 v #26946 > > |> from_list -00:27:25 v #26947 > > |> mapi fun i x => i + x -00:27:25 v #26948 > > |> try_item 5i32 -00:27:25 v #26949 > > |> _assert_eq (Some 10i32) -00:27:26 v #26950 > > -00:27:26 v #26951 > > ── [ 540.59ms - stdout ] ─────────────────────────────────────────────────────── -00:27:26 v #26952 > > │ print_and_return / x: 0 -00:27:26 v #26953 > > │ print_and_return / x: 1 -00:27:26 v #26954 > > │ print_and_return / x: 2 -00:27:26 v #26955 > > │ print_and_return / x: 3 -00:27:26 v #26956 > > │ print_and_return / x: 4 -00:27:26 v #26957 > > │ print_and_return / x: 5 -00:27:26 v #26958 > > │ print_and_return / x: 6 -00:27:26 v #26959 > > │ print_and_return / x: 7 -00:27:26 v #26960 > > │ print_and_return / x: 8 -00:27:26 v #26961 > > │ print_and_return / x: 9 -00:27:26 v #26962 > > │ __assert_eq / actual: US0_0 10 / expected: US0_0 10 -00:27:26 v #26963 > > │ -00:27:26 v #26964 > > -00:27:26 v #26965 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:27:26 v #26966 > > │ ### choose -00:27:26 v #26967 > > -00:27:26 v #26968 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:27:26 v #26969 > > inl choose forall dim {number} t u. (fn : t -> option u) (s : seq dim t) : seq -00:27:26 v #26970 > > dim u = -00:27:26 v #26971 > > fun n => -00:27:26 v #26972 > > inl rec body fn s i i' = -00:27:26 v #26973 > > match i |> s with -00:27:26 v #26974 > > | None => None -00:27:26 v #26975 > > | Some x => -00:27:26 v #26976 > > match x |> fn with -00:27:26 v #26977 > > | Some x when n = i' => Some x -00:27:26 v #26978 > > | Some _ => loop (i + 1) (i' + 1) -00:27:26 v #26979 > > | _ => loop (i + 1) i' -00:27:26 v #26980 > > and inl loop i i' = -00:27:26 v #26981 > > if n |> var_is |> not -00:27:26 v #26982 > > then body fn s i i' -00:27:26 v #26983 > > else -00:27:26 v #26984 > > inl fn = join fn -00:27:26 v #26985 > > inl s = join s -00:27:26 v #26986 > > join body fn s i i' -00:27:26 v #26987 > > loop 0 0 -00:27:26 v #26988 > > -00:27:26 v #26989 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:27:26 v #26990 > > //// test -00:27:26 v #26991 > > -00:27:26 v #26992 > > listm.init 10i32 print_and_return -00:27:26 v #26993 > > |> from_list -00:27:26 v #26994 > > |> choose (fun x => if x % 2 = 0 then Some x else None) -00:27:26 v #26995 > > |> try_item 1i32 -00:27:26 v #26996 > > |> _assert_eq (Some 2i32) -00:27:26 v #26997 > > -00:27:26 v #26998 > > ── [ 486.60ms - stdout ] ─────────────────────────────────────────────────────── -00:27:26 v #26999 > > │ print_and_return / x: 0 -00:27:26 v #27000 > > │ print_and_return / x: 1 -00:27:26 v #27001 > > │ print_and_return / x: 2 -00:27:26 v #27002 > > │ print_and_return / x: 3 -00:27:26 v #27003 > > │ print_and_return / x: 4 -00:27:26 v #27004 > > │ print_and_return / x: 5 -00:27:26 v #27005 > > │ print_and_return / x: 6 -00:27:26 v #27006 > > │ print_and_return / x: 7 -00:27:26 v #27007 > > │ print_and_return / x: 8 -00:27:26 v #27008 > > │ print_and_return / x: 9 -00:27:26 v #27009 > > │ __assert_eq / actual: US0_0 2 / expected: US0_0 2 -00:27:26 v #27010 > > │ -00:27:26 v #27011 > > -00:27:26 v #27012 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:27:26 v #27013 > > │ ### indexed -00:27:26 v #27014 > > -00:27:26 v #27015 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:27:26 v #27016 > > inl indexed s = -00:27:26 v #27017 > > s -00:27:26 v #27018 > > |> mapi fun i x => -00:27:26 v #27019 > > i, x -00:27:27 v #27020 > > -00:27:27 v #27021 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:27:27 v #27022 > > //// test -00:27:27 v #27023 > > -00:27:27 v #27024 > > listm.init 10i32 ((*) 2) -00:27:27 v #27025 > > |> from_list -00:27:27 v #27026 > > |> indexed -00:27:27 v #27027 > > |> try_item 5i32 -00:27:27 v #27028 > > |> _assert_eq (Some (5i32, 10i32)) -00:27:27 v #27029 > > -00:27:27 v #27030 > > ── [ 464.75ms - stdout ] ─────────────────────────────────────────────────────── -00:27:27 v #27031 > > │ __assert_eq / actual: US0_0 (5, 10) / expected: US0_0 (5, 10) -00:27:27 v #27032 > > │ -00:27:27 v #27033 > > -00:27:27 v #27034 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:27:27 v #27035 > > │ ### zip -00:27:27 v #27036 > > -00:27:27 v #27037 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:27:27 v #27038 > > inl zip n seq1 seq2 = -00:27:27 v #27039 > > seq1 n, seq2 n -00:27:28 v #27040 > > -00:27:28 v #27041 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:27:28 v #27042 > > //// test -00:27:28 v #27043 > > -00:27:28 v #27044 > > ((listm.init 10i32 id |> from_list), (listm.init 10i32 ((*) 2) |> from_list)) -00:27:28 v #27045 > > ||> zip 5i32 -00:27:28 v #27046 > > |> _assert_eq (Some 5, Some 10) -00:27:28 v #27047 > > -00:27:28 v #27048 > > ── [ 434.19ms - stdout ] ─────────────────────────────────────────────────────── -00:27:28 v #27049 > > │ __assert_eq / actual: struct (US0_0 5, US0_0 10) / expected: -00:27:28 v #27050 > > struct (US0_0 5, US0_0 10) -00:27:28 v #27051 > > │ -00:27:28 v #27052 > > -00:27:28 v #27053 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:27:28 v #27054 > > │ ### zip_with -00:27:28 v #27055 > > -00:27:28 v #27056 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:27:28 v #27057 > > inl zip_with fn seq1 seq2 = -00:27:28 v #27058 > > fun n => -00:27:28 v #27059 > > fn (seq1 n) (seq2 n) -00:27:29 v #27060 > > -00:27:29 v #27061 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:27:29 v #27062 > > //// test -00:27:29 v #27063 > > -00:27:29 v #27064 > > ((listm.init 10i32 id |> from_list), (listm.init 10i32 ((*) 2) |> from_list)) -00:27:29 v #27065 > > ||> zip_with (optionm'.choose (+)) -00:27:29 v #27066 > > |> try_item 2i32 -00:27:29 v #27067 > > |> _assert_eq (Some 6) -00:27:29 v #27068 > > -00:27:29 v #27069 > > ── [ 485.62ms - stdout ] ─────────────────────────────────────────────────────── -00:27:29 v #27070 > > │ __assert_eq / actual: US0_0 6 / expected: US0_0 6 -00:27:29 v #27071 > > │ -00:27:29 v #27072 > > -00:27:29 v #27073 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:27:29 v #27074 > > │ ### fold -00:27:29 v #27075 > > -00:27:29 v #27076 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:27:29 v #27077 > > inl fold fn init seq = -00:27:29 v #27078 > > inl rec loop acc n = -00:27:29 v #27079 > > match seq n with -00:27:29 v #27080 > > | Some x => loop (fn acc x) (n + 1) -00:27:29 v #27081 > > | None => acc -00:27:29 v #27082 > > loop init 0 -00:27:29 v #27083 > > -00:27:29 v #27084 > > inl fold_ fn init seq = -00:27:29 v #27085 > > let rec loop acc n = -00:27:29 v #27086 > > match seq n with -00:27:29 v #27087 > > | Some x => loop (fn acc x) (n + 1) -00:27:29 v #27088 > > | None => acc -00:27:29 v #27089 > > loop init 0 -00:27:29 v #27090 > > -00:27:29 v #27091 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:27:29 v #27092 > > │ ### sum -00:27:29 v #27093 > > -00:27:29 v #27094 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:27:29 v #27095 > > inl sum seq = -00:27:29 v #27096 > > seq |> fold (+) 0 -00:27:29 v #27097 > > -00:27:29 v #27098 > > inl sum_ seq = -00:27:29 v #27099 > > seq |> fold_ (+) 0 -00:27:30 v #27100 > > -00:27:30 v #27101 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:27:30 v #27102 > > //// test -00:27:30 v #27103 > > -00:27:30 v #27104 > > listm.init 10i32 id -00:27:30 v #27105 > > |> from_list -00:27:30 v #27106 > > |> fun f (n : i32) => f n -00:27:30 v #27107 > > |> sum -00:27:30 v #27108 > > |> _assert_eq 45 -00:27:30 v #27109 > > -00:27:30 v #27110 > > ── [ 446.21ms - stdout ] ─────────────────────────────────────────────────────── -00:27:30 v #27111 > > │ __assert_eq / actual: 45 / expected: 45 -00:27:30 v #27112 > > │ -00:27:30 v #27113 > > -00:27:30 v #27114 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:27:30 v #27115 > > │ ### to_list -00:27:30 v #27116 > > -00:27:30 v #27117 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:27:30 v #27118 > > inl to_list seq = -00:27:30 v #27119 > > seq -00:27:30 v #27120 > > |> fold (fun acc x => x :: acc) [[]] -00:27:30 v #27121 > > |> listm.rev -00:27:30 v #27122 > > -00:27:30 v #27123 > > inl to_list_ seq = -00:27:30 v #27124 > > seq -00:27:30 v #27125 > > |> fold_ (fun acc x => x :: acc) [[]] -00:27:30 v #27126 > > |> listm.rev -00:27:31 v #27127 > > -00:27:31 v #27128 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:27:31 v #27129 > > //// test -00:27:31 v #27130 > > -00:27:31 v #27131 > > listm.init 10i32 id -00:27:31 v #27132 > > |> from_list -00:27:31 v #27133 > > |> fun f (n : i32) => f n -00:27:31 v #27134 > > |> to_list -00:27:31 v #27135 > > |> _assert_eq (listm.init 10i32 id) -00:27:31 v #27136 > > -00:27:31 v #27137 > > ── [ 466.35ms - stdout ] ─────────────────────────────────────────────────────── -00:27:31 v #27138 > > │ __assert_eq / actual: UH0_1 -00:27:31 v #27139 > > │ (0, -00:27:31 v #27140 > > │ UH0_1 -00:27:31 v #27141 > > │ (1, -00:27:31 v #27142 > > │ UH0_1 -00:27:31 v #27143 > > │ (2, -00:27:31 v #27144 > > │ UH0_1 -00:27:31 v #27145 > > │ (3, -00:27:31 v #27146 > > │ UH0_1 -00:27:31 v #27147 > > │ (4, UH0_1 (5, UH0_1 (6, UH0_1 (7, UH0_1 (8, -00:27:31 v #27148 > > UH0_1 (9, UH0_0)))))))))) / expected: UH0_1 -00:27:31 v #27149 > > │ (0, -00:27:31 v #27150 > > │ UH0_1 -00:27:31 v #27151 > > │ (1, -00:27:31 v #27152 > > │ UH0_1 -00:27:31 v #27153 > > │ (2, -00:27:31 v #27154 > > │ UH0_1 -00:27:31 v #27155 > > │ (3, -00:27:31 v #27156 > > │ UH0_1 -00:27:31 v #27157 > > │ (4, UH0_1 (5, UH0_1 (6, UH0_1 (7, UH0_1 (8, -00:27:31 v #27158 > > UH0_1 (9, UH0_0)))))))))) -00:27:31 v #27159 > > │ -00:27:31 v #27160 > > -00:27:31 v #27161 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:27:31 v #27162 > > │ ### from_array -00:27:31 v #27163 > > -00:27:31 v #27164 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:27:31 v #27165 > > inl from_array forall dim {number; int} el. (array : a dim el) : seq dim el = -00:27:31 v #27166 > > fun n => -00:27:31 v #27167 > > if n >= length array -00:27:31 v #27168 > > then None -00:27:31 v #27169 > > else index array n |> Some -00:27:32 v #27170 > > -00:27:32 v #27171 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:27:32 v #27172 > > //// test -00:27:32 v #27173 > > -00:27:32 v #27174 > > a ;[[ 1; 2; 3 ]] -00:27:32 v #27175 > > |> from_array -00:27:32 v #27176 > > |> try_item 1i32 -00:27:32 v #27177 > > |> _assert_eq (Some 2i32) -00:27:32 v #27178 > > -00:27:32 v #27179 > > ── [ 576.58ms - stdout ] ─────────────────────────────────────────────────────── -00:27:32 v #27180 > > │ __assert_eq / actual: US0_0 2 / expected: US0_0 2 -00:27:32 v #27181 > > │ -00:27:32 v #27182 > > -00:27:32 v #27183 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:27:32 v #27184 > > │ ### to_array -00:27:32 v #27185 > > -00:27:32 v #27186 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:27:32 v #27187 > > inl to_array seq = -00:27:32 v #27188 > > inl ar = a ;[[]] |> mut -00:27:32 v #27189 > > ((), seq) -00:27:32 v #27190 > > ||> fold fun _ x => -00:27:32 v #27191 > > ar <- *ar ++ a ;[[x]] -00:27:32 v #27192 > > *ar -00:27:32 v #27193 > > -00:27:32 v #27194 > > inl to_array_ seq = -00:27:32 v #27195 > > inl ar = a ;[[]] |> mut -00:27:32 v #27196 > > ((), seq) -00:27:32 v #27197 > > ||> fold_ fun _ x => -00:27:32 v #27198 > > ar <- *ar ++ a ;[[x]] -00:27:32 v #27199 > > *ar -00:27:33 v #27200 > > -00:27:33 v #27201 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:27:33 v #27202 > > //// test -00:27:33 v #27203 > > -00:27:33 v #27204 > > listm.init 10i32 id -00:27:33 v #27205 > > |> from_list -00:27:33 v #27206 > > |> fun (x : i32 -> _) => x -00:27:33 v #27207 > > |> to_array -00:27:33 v #27208 > > |> _assert_eq (a ;[[ 0; 1; 2; 3; 4; 5; 6; 7; 8; 9 ]] : _ i32 _) -00:27:33 v #27209 > > -00:27:33 v #27210 > > ── [ 596.21ms - stdout ] ─────────────────────────────────────────────────────── -00:27:33 v #27211 > > │ __assert_eq / actual: [|0; 1; 2; 3; 4; 5; 6; 7; 8; 9|] -00:27:33 v #27212 > > expected: [|0; 1; 2; 3; 4; 5; 6; 7; 8; 9|] -00:27:33 v #27213 > > │ -00:27:33 v #27214 > > -00:27:33 v #27215 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:27:33 v #27216 > > │ ### take_while -00:27:33 v #27217 > > -00:27:33 v #27218 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:27:33 v #27219 > > inl take_while cond seq = -00:27:33 v #27220 > > inl rec loop acc i = -00:27:33 v #27221 > > match seq i with -00:27:33 v #27222 > > | Some st when cond st i => loop (st :: acc) (i + 1) -00:27:33 v #27223 > > | _ => acc |> listm.rev -00:27:33 v #27224 > > loop [[]] 0 -00:27:34 v #27225 > > -00:27:34 v #27226 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:27:34 v #27227 > > //// test -00:27:34 v #27228 > > -00:27:34 v #27229 > > listm.init 10i32 id -00:27:34 v #27230 > > |> from_list -00:27:34 v #27231 > > |> take_while (fun n (_ : i32) => n < 5) -00:27:34 v #27232 > > |> listm'.sum -00:27:34 v #27233 > > |> _assert_eq 10 -00:27:34 v #27234 > > -00:27:34 v #27235 > > ── [ 422.14ms - stdout ] ─────────────────────────────────────────────────────── -00:27:34 v #27236 > > │ __assert_eq / actual: 10 / expected: 10 -00:27:34 v #27237 > > │ -00:27:34 v #27238 > > -00:27:34 v #27239 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:27:34 v #27240 > > //// test -00:27:34 v #27241 > > -00:27:34 v #27242 > > stream.new_finite_stream print_and_return 10i32 -00:27:34 v #27243 > > |> flip stream.try_item -00:27:34 v #27244 > > |> take_while (fun n (_ : i32) => n < 5) -00:27:34 v #27245 > > |> listm'.sum -00:27:34 v #27246 > > |> _assert_eq 10 -00:27:35 v #27247 > > -00:27:35 v #27248 > > ── [ 485.50ms - stdout ] ─────────────────────────────────────────────────────── -00:27:35 v #27249 > > │ print_and_return / x: 0 -00:27:35 v #27250 > > │ print_and_return / x: 1 -00:27:35 v #27251 > > │ print_and_return / x: 1 -00:27:35 v #27252 > > │ print_and_return / x: 2 -00:27:35 v #27253 > > │ print_and_return / x: 1 -00:27:35 v #27254 > > │ print_and_return / x: 2 -00:27:35 v #27255 > > │ print_and_return / x: 3 -00:27:35 v #27256 > > │ print_and_return / x: 1 -00:27:35 v #27257 > > │ print_and_return / x: 2 -00:27:35 v #27258 > > │ print_and_return / x: 3 -00:27:35 v #27259 > > │ print_and_return / x: 4 -00:27:35 v #27260 > > │ print_and_return / x: 1 -00:27:35 v #27261 > > │ print_and_return / x: 2 -00:27:35 v #27262 > > │ print_and_return / x: 3 -00:27:35 v #27263 > > │ print_and_return / x: 4 -00:27:35 v #27264 > > │ print_and_return / x: 5 -00:27:35 v #27265 > > │ __assert_eq / actual: 10 / expected: 10 -00:27:35 v #27266 > > │ -00:27:35 v #27267 > > -00:27:35 v #27268 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:27:35 v #27269 > > │ ### take_while_ -00:27:35 v #27270 > > -00:27:35 v #27271 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:27:35 v #27272 > > inl take_while_ cond seq = -00:27:35 v #27273 > > let rec loop acc i = -00:27:35 v #27274 > > match seq i with -00:27:35 v #27275 > > | Some st when cond st i => loop (st :: acc) (i + 1) -00:27:35 v #27276 > > | _ => acc |> listm.rev -00:27:35 v #27277 > > loop [[]] 0 -00:27:35 v #27278 > > -00:27:35 v #27279 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:27:35 v #27280 > > //// test -00:27:35 v #27281 > > -00:27:35 v #27282 > > stream.new_infinite_stream_ print_and_return -00:27:35 v #27283 > > |> flip stream.try_item -00:27:35 v #27284 > > |> take_while_ (fun n (_ : i32) => n < 5i32) -00:27:35 v #27285 > > |> listm'.sum -00:27:35 v #27286 > > |> _assert_eq 10 -00:27:36 v #27287 > > -00:27:36 v #27288 > > ── [ 522.36ms - stdout ] ─────────────────────────────────────────────────────── -00:27:36 v #27289 > > │ print_and_return / x: 0 -00:27:36 v #27290 > > │ print_and_return / x: 1 -00:27:36 v #27291 > > │ print_and_return / x: 1 -00:27:36 v #27292 > > │ print_and_return / x: 2 -00:27:36 v #27293 > > │ print_and_return / x: 1 -00:27:36 v #27294 > > │ print_and_return / x: 2 -00:27:36 v #27295 > > │ print_and_return / x: 3 -00:27:36 v #27296 > > │ print_and_return / x: 1 -00:27:36 v #27297 > > │ print_and_return / x: 2 -00:27:36 v #27298 > > │ print_and_return / x: 3 -00:27:36 v #27299 > > │ print_and_return / x: 4 -00:27:36 v #27300 > > │ print_and_return / x: 1 -00:27:36 v #27301 > > │ print_and_return / x: 2 -00:27:36 v #27302 > > │ print_and_return / x: 3 -00:27:36 v #27303 > > │ print_and_return / x: 4 -00:27:36 v #27304 > > │ print_and_return / x: 5 -00:27:36 v #27305 > > │ __assert_eq / actual: 10 / expected: 10 -00:27:36 v #27306 > > │ -00:27:36 v #27307 > > -00:27:36 v #27308 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:27:36 v #27309 > > //// test -00:27:36 v #27310 > > -00:27:36 v #27311 > > stream.new_infinite_stream_ print_and_return -00:27:36 v #27312 > > |> stream.memoize -00:27:36 v #27313 > > |> fun list => -00:27:36 v #27314 > > inl list = list () -00:27:36 v #27315 > > fun n => -00:27:36 v #27316 > > list |> stream.try_item n -00:27:36 v #27317 > > |> take_while_ (fun n (_ : i32) => n < 5i32) -00:27:36 v #27318 > > |> listm'.sum -00:27:36 v #27319 > > |> _assert_eq 10 -00:27:36 v #27320 > > -00:27:36 v #27321 > > ── [ 478.36ms - stdout ] ─────────────────────────────────────────────────────── -00:27:36 v #27322 > > │ print_and_return / x: 0 -00:27:36 v #27323 > > │ print_and_return / x: 1 -00:27:36 v #27324 > > │ print_and_return / x: 2 -00:27:36 v #27325 > > │ print_and_return / x: 3 -00:27:36 v #27326 > > │ print_and_return / x: 4 -00:27:36 v #27327 > > │ print_and_return / x: 5 -00:27:36 v #27328 > > │ __assert_eq / actual: 10 / expected: 10 -00:27:36 v #27329 > > │ -00:27:36 v #27330 > > -00:27:36 v #27331 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:27:36 v #27332 > > //// test -00:27:36 v #27333 > > -00:27:36 v #27334 > > stream.new_finite_stream print_and_return 10i32 -00:27:36 v #27335 > > |> stream.memoize -00:27:36 v #27336 > > |> fun list => -00:27:36 v #27337 > > inl list = list () -00:27:36 v #27338 > > fun n => -00:27:36 v #27339 > > list |> stream.try_item n -00:27:36 v #27340 > > |> take_while_ (fun n (_ : i32) => n < 5) -00:27:36 v #27341 > > |> listm'.sum -00:27:36 v #27342 > > |> _assert_eq 10 -00:27:37 v #27343 > > -00:27:37 v #27344 > > ── [ 503.15ms - stdout ] ─────────────────────────────────────────────────────── -00:27:37 v #27345 > > │ print_and_return / x: 0 -00:27:37 v #27346 > > │ print_and_return / x: 1 -00:27:37 v #27347 > > │ print_and_return / x: 2 -00:27:37 v #27348 > > │ print_and_return / x: 3 -00:27:37 v #27349 > > │ print_and_return / x: 4 -00:27:37 v #27350 > > │ print_and_return / x: 5 -00:27:37 v #27351 > > │ __assert_eq / actual: 10 / expected: 10 -00:27:37 v #27352 > > │ -00:27:37 v #27353 > > -00:27:37 v #27354 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:27:37 v #27355 > > │ ### memoize -00:27:37 v #27356 > > -00:27:37 v #27357 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:27:37 v #27358 > > inl memoize seq = -00:27:37 v #27359 > > inl state = mut [[]] -00:27:37 v #27360 > > fun n => -00:27:37 v #27361 > > match *state |> listm'.try_find (fun (n', _) => n' = n) with -00:27:37 v #27362 > > | Some (_, v) => v -00:27:37 v #27363 > > | None => -00:27:37 v #27364 > > inl new_state = seq n -00:27:37 v #27365 > > state <- (n, new_state) :: *state -00:27:37 v #27366 > > new_state -00:27:37 v #27367 > > -00:27:37 v #27368 > > inl memoize_ seq = -00:27:37 v #27369 > > inl state = mut [[]] -00:27:37 v #27370 > > fun n => -00:27:37 v #27371 > > match *state |> listm'.try_find_ (fun (n', _) => n' = n) with -00:27:37 v #27372 > > | Some (_, v) => v -00:27:37 v #27373 > > | None => -00:27:37 v #27374 > > inl new_state = seq n -00:27:37 v #27375 > > state <- (n, new_state) :: *state -00:27:37 v #27376 > > new_state -00:27:37 v #27377 > > -00:27:37 v #27378 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:27:37 v #27379 > > //// test -00:27:37 v #27380 > > -00:27:37 v #27381 > > inl seq = -00:27:37 v #27382 > > fun n => -00:27:37 v #27383 > > n |> print_and_return |> Some -00:27:37 v #27384 > > |> memoize_ -00:27:37 v #27385 > > -00:27:37 v #27386 > > seq -00:27:37 v #27387 > > |> take_while_ (fun n (_ : i32) => n < 5) -00:27:37 v #27388 > > |> listm'.sum -00:27:37 v #27389 > > |> _assert_eq 10 -00:27:37 v #27390 > > -00:27:37 v #27391 > > seq -00:27:37 v #27392 > > |> take_while_ (fun n _ => n < 5) -00:27:37 v #27393 > > |> listm'.sum -00:27:37 v #27394 > > |> _assert_eq 10 -00:27:38 v #27395 > > -00:27:38 v #27396 > > ── [ 532.50ms - stdout ] ─────────────────────────────────────────────────────── -00:27:38 v #27397 > > │ print_and_return / x: 0 -00:27:38 v #27398 > > │ print_and_return / x: 1 -00:27:38 v #27399 > > │ print_and_return / x: 2 -00:27:38 v #27400 > > │ print_and_return / x: 3 -00:27:38 v #27401 > > │ print_and_return / x: 4 -00:27:38 v #27402 > > │ print_and_return / x: 5 -00:27:38 v #27403 > > │ __assert_eq / actual: 10 / expected: 10 -00:27:38 v #27404 > > │ __assert_eq / actual: 10 / expected: 10 -00:27:38 v #27405 > > │ -00:27:38 v #27406 > > -00:27:38 v #27407 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:27:38 v #27408 > > │ ### iterate -00:27:38 v #27409 > > -00:27:38 v #27410 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:27:38 v #27411 > > inl iterate f x0 num_steps = -00:27:38 v #27412 > > inl rec loop x n = -00:27:38 v #27413 > > if n <= 0 -00:27:38 v #27414 > > then x -00:27:38 v #27415 > > else loop (f x) (n - 1) -00:27:38 v #27416 > > loop x0 num_steps -00:27:38 v #27417 > > -00:27:38 v #27418 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:27:38 v #27419 > > //// test -00:27:38 v #27420 > > -00:27:38 v #27421 > > 10i32 |> iterate ((*) 2) 1i32 -00:27:38 v #27422 > > |> _assert_eq 1024 -00:27:38 v #27423 > > -00:27:38 v #27424 > > ── [ 423.40ms - stdout ] ─────────────────────────────────────────────────────── -00:27:38 v #27425 > > │ __assert_eq / actual: 1024 / expected: 1024 -00:27:38 v #27426 > > │ -00:27:38 v #27427 > > -00:27:38 v #27428 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:27:38 v #27429 > > inl iterate_ f x0 num_steps = -00:27:38 v #27430 > > let rec loop x n = -00:27:38 v #27431 > > if n <= 0 -00:27:38 v #27432 > > then x -00:27:38 v #27433 > > else loop (f x) (n - 1) -00:27:38 v #27434 > > loop x0 num_steps -00:27:39 v #27435 > > -00:27:39 v #27436 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:27:39 v #27437 > > //// test -00:27:39 v #27438 > > -00:27:39 v #27439 > > 10i32 |> iterate_ ((*) 2) 1i32 -00:27:39 v #27440 > > |> _assert_eq 1024 -00:27:39 v #27441 > > -00:27:39 v #27442 > > ── [ 461.82ms - stdout ] ─────────────────────────────────────────────────────── -00:27:39 v #27443 > > │ __assert_eq / actual: 1024 / expected: 1024 -00:27:39 v #27444 > > │ -00:27:39 v #27445 > > -00:27:39 v #27446 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:27:39 v #27447 > > inl iterate' f x0 num_steps = -00:27:39 v #27448 > > listm.init num_steps id -00:27:39 v #27449 > > |> listm.fold (fun x _ => f x) x0 -00:27:40 v #27450 > > -00:27:40 v #27451 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:27:40 v #27452 > > //// test -00:27:40 v #27453 > > -00:27:40 v #27454 > > 10i32 |> iterate' ((*) 2) 1i32 -00:27:40 v #27455 > > |> _assert_eq 1024 -00:27:40 v #27456 > > -00:27:40 v #27457 > > ── [ 410.51ms - stdout ] ─────────────────────────────────────────────────────── -00:27:40 v #27458 > > │ __assert_eq / actual: 1024 / expected: 1024 -00:27:40 v #27459 > > │ -00:27:40 v #27460 > > -00:27:40 v #27461 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:27:40 v #27462 > > │ ### find_last -00:27:40 v #27463 > > -00:27:40 v #27464 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:27:40 v #27465 > > inl find_last forall item result. fold_fn fn target : option result = -00:27:40 v #27466 > > fold_fn (fun (item : item) (result : option result) => -00:27:40 v #27467 > > match result with -00:27:40 v #27468 > > | None => fn item -00:27:40 v #27469 > > | result => result -00:27:40 v #27470 > > ) target (None : option result) -00:27:40 v #27471 > > -00:27:40 v #27472 > > inl array_find_last forall item result. (fn : item -> option result) (target : a -00:27:40 v #27473 > > i32 item) : option result = -00:27:40 v #27474 > > find_last am.foldBack fn target -00:27:40 v #27475 > > -00:27:40 v #27476 > > inl list_find_last forall item result. (fn : item -> option result) (target : -00:27:40 v #27477 > > list item) : option result = -00:27:40 v #27478 > > find_last listm.foldBack fn target -00:27:41 v #27479 > > -00:27:41 v #27480 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:27:41 v #27481 > > │ ## fsharp -00:27:41 v #27482 > > -00:27:41 v #27483 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:27:41 v #27484 > > │ ### seq' -00:27:41 v #27485 > > -00:27:41 v #27486 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:27:41 v #27487 > > nominal seq' t = $"backend_switch `({ Fsharp : $'`t seq'; Python : $'list' })" -00:27:41 v #27488 > > -00:27:41 v #27489 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:27:41 v #27490 > > │ ### length' -00:27:41 v #27491 > > -00:27:41 v #27492 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:27:41 v #27493 > > inl length' forall t. (items : seq' t) : int = -00:27:41 v #27494 > > backend_switch { -00:27:41 v #27495 > > Fsharp = fun () => items |> $'Seq.length' : int -00:27:41 v #27496 > > Python = fun () => $'len(!items)' : int -00:27:41 v #27497 > > } -00:27:42 v #27498 > > -00:27:42 v #27499 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:27:42 v #27500 > > │ ### to_list' -00:27:42 v #27501 > > -00:27:42 v #27502 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:27:42 v #27503 > > inl to_list' forall t. (items : seq' t) : listm'.list' t = -00:27:42 v #27504 > > backend_switch { -00:27:42 v #27505 > > Fsharp = fun () => items |> $'Seq.toList' : listm'.list' t -00:27:42 v #27506 > > Python = fun () => $'!items ' : listm'.list' t -00:27:42 v #27507 > > } -00:27:42 v #27508 > > -00:27:42 v #27509 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:27:42 v #27510 > > │ ### new_seq -00:27:42 v #27511 > > -00:27:42 v #27512 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:27:42 v #27513 > > inl new_seq forall t. fn : seq' t = -00:27:42 v #27514 > > backend_switch { -00:27:42 v #27515 > > Fsharp = fun () => -00:27:42 v #27516 > > fun () => -00:27:42 v #27517 > > $'seq {' -00:27:42 v #27518 > > fn |> indent -00:27:42 v #27519 > > $'}' : () -00:27:42 v #27520 > > |> let' -00:27:42 v #27521 > > |> fun x => x : seq' t -00:27:42 v #27522 > > Python = fun () => -00:27:42 v #27523 > > $'list(!fn())' : seq' t -00:27:42 v #27524 > > } -00:27:42 v #27525 > > -00:27:42 v #27526 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:27:42 v #27527 > > //// test -00:27:42 v #27528 > > ///! fsharp -00:27:42 v #27529 > > ///! cuda -00:27:42 v #27530 > > -00:27:42 v #27531 > > fun () => -00:27:42 v #27532 > > "a" |> yield -00:27:42 v #27533 > > "b" |> yield -00:27:42 v #27534 > > |> new_seq -00:27:42 v #27535 > > |> to_list' -00:27:42 v #27536 > > |> listm'.unbox -00:27:42 v #27537 > > |> _assert_eq [[ "a"; "b" ]] -00:27:44 v #27538 > > -00:27:44 v #27539 > > ── [ 1.92s - return value ] ──────────────────────────────────────────────────── -00:27:44 v #27540 > > │ .py output (Cuda): -00:27:44 v #27541 > > │ __assert_eq / actual: UH0_1(v0='a', v1=UH0_1(v0='b', -00:27:44 v #27542 > > v1=UH0_0())) / expected: UH0_1(v0='a', v1=UH0_1(v0='b', v1=UH0_0())) -00:27:44 v #27543 > > │ -00:27:44 v #27544 > > │ -00:27:44 v #27545 > > -00:27:44 v #27546 > > ── [ 1.92s - stdout ] ────────────────────────────────────────────────────────── -00:27:44 v #27547 > > │ .fsx output: -00:27:44 v #27548 > > │ __assert_eq / actual: UH0_1 ("a", UH0_1 ("b", UH0_0)) -00:27:44 v #27549 > > expected: UH0_1 ("a", UH0_1 ("b", UH0_0)) -00:27:44 v #27550 > > │ -00:27:44 v #27551 > > -00:27:44 v #27552 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:27:44 v #27553 > > │ ### of_array' -00:27:44 v #27554 > > -00:27:44 v #27555 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:27:44 v #27556 > > inl of_array' forall dim t. (items : a dim t) : seq' t = -00:27:44 v #27557 > > backend_switch { -00:27:44 v #27558 > > Fsharp = fun () => -00:27:44 v #27559 > > fun () => -00:27:44 v #27560 > > $'for i = 0 to !items.Length - 1 do yield !items.[[i]]' -00:27:44 v #27561 > > |> new_seq -00:27:44 v #27562 > > |> fun x => x : seq' t -00:27:44 v #27563 > > Python = fun () => $'[[item for item in !items]]' : seq' t -00:27:44 v #27564 > > } -00:27:45 v #27565 > > -00:27:45 v #27566 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:27:45 v #27567 > > //// test -00:27:45 v #27568 > > ///! fsharp -00:27:45 v #27569 > > ///! cuda -00:27:45 v #27570 > > ///! rust -00:27:45 v #27571 > > ///! typescript -00:27:45 v #27572 > > ///! python -00:27:45 v #27573 > > -00:27:45 v #27574 > > (a ;[[ "a"; "b" ]] : _ int _) -00:27:45 v #27575 > > |> of_array' -00:27:45 v #27576 > > |> to_list' -00:27:45 v #27577 > > |> listm'.unbox -00:27:45 v #27578 > > |> _assert_eq [[ "a"; "b" ]] -00:27:50 v #27579 > > -00:27:50 v #27580 > > ── [ 5.01s - return value ] ──────────────────────────────────────────────────── -00:27:50 v #27581 > > │ .py output (Cuda): -00:27:50 v #27582 > > │ __assert_eq / actual: UH0_1(v0='a', v1=UH0_1(v0='b', -00:27:50 v #27583 > > v1=UH0_0())) / expected: UH0_1(v0='a', v1=UH0_1(v0='b', v1=UH0_0())) -00:27:50 v #27584 > > │ -00:27:50 v #27585 > > │ .rs output: -00:27:50 v #27586 > > │ __assert_eq / actual: UH0_1("a", UH0_1("b", UH0_0)) -00:27:50 v #27587 > > expected: UH0_1("a", UH0_1("b", UH0_0)) -00:27:50 v #27588 > > │ -00:27:50 v #27589 > > │ .ts output: -00:27:50 v #27590 > > │ __assert_eq / actual: UH0_1 (a, UH0_1 (b, UH0_0)) / expected: -00:27:50 v #27591 > > UH0_1 (a, UH0_1 (b, UH0_0)) -00:27:50 v #27592 > > │ -00:27:50 v #27593 > > │ .py output: -00:27:50 v #27594 > > │ __assert_eq / actual: UH0_1 ("a", UH0_1 ("b", UH0_0)) -00:27:50 v #27595 > > expected: UH0_1 ("a", UH0_1 ("b", UH0_0)) -00:27:50 v #27596 > > │ -00:27:50 v #27597 > > │ -00:27:50 v #27598 > > -00:27:50 v #27599 > > ── [ 5.01s - stdout ] ────────────────────────────────────────────────────────── -00:27:50 v #27600 > > │ .fsx output: -00:27:50 v #27601 > > │ __assert_eq / actual: UH0_1 ("a", UH0_1 ("b", UH0_0)) -00:27:50 v #27602 > > expected: UH0_1 ("a", UH0_1 ("b", UH0_0)) -00:27:50 v #27603 > > │ -00:27:50 v #27604 > > -00:27:50 v #27605 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:27:50 v #27606 > > │ ### of_array -00:27:50 v #27607 > > -00:27:50 v #27608 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:27:50 v #27609 > > inl of_array forall dim t. (items : a dim t) : seq' t = -00:27:50 v #27610 > > backend_switch { -00:27:50 v #27611 > > Fsharp = fun () => $'!items |> Seq.ofArray' : seq' t -00:27:50 v #27612 > > Python = fun () => $'list(iter(!items))' : seq' t -00:27:50 v #27613 > > } -00:27:50 v #27614 > > -00:27:50 v #27615 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:27:50 v #27616 > > //// test -00:27:50 v #27617 > > ///! fsharp -00:27:50 v #27618 > > ///! cuda -00:27:50 v #27619 > > ///! rust -00:27:50 v #27620 > > ///! typescript -00:27:50 v #27621 > > ///! python -00:27:50 v #27622 > > -00:27:50 v #27623 > > (a ;[[ "a"; "b" ]] : _ int _) -00:27:50 v #27624 > > |> of_array -00:27:50 v #27625 > > |> to_list' -00:27:50 v #27626 > > |> listm'.unbox -00:27:50 v #27627 > > |> _assert_eq [[ "a"; "b" ]] -00:27:54 v #27628 > > -00:27:54 v #27629 > > ── [ 3.41s - return value ] ──────────────────────────────────────────────────── -00:27:54 v #27630 > > │ .py output (Cuda): -00:27:54 v #27631 > > │ __assert_eq / actual: UH0_1(v0='a', v1=UH0_1(v0='b', -00:27:54 v #27632 > > v1=UH0_0())) / expected: UH0_1(v0='a', v1=UH0_1(v0='b', v1=UH0_0())) -00:27:54 v #27633 > > │ -00:27:54 v #27634 > > │ .rs output: -00:27:54 v #27635 > > │ __assert_eq / actual: UH0_1("a", UH0_1("b", UH0_0)) -00:27:54 v #27636 > > expected: UH0_1("a", UH0_1("b", UH0_0)) -00:27:54 v #27637 > > │ -00:27:54 v #27638 > > │ .ts output: -00:27:54 v #27639 > > │ __assert_eq / actual: UH0_1 (a, UH0_1 (b, UH0_0)) / expected: -00:27:54 v #27640 > > UH0_1 (a, UH0_1 (b, UH0_0)) -00:27:54 v #27641 > > │ -00:27:54 v #27642 > > │ .py output: -00:27:54 v #27643 > > │ __assert_eq / actual: UH0_1 ("a", UH0_1 ("b", UH0_0)) -00:27:54 v #27644 > > expected: UH0_1 ("a", UH0_1 ("b", UH0_0)) -00:27:54 v #27645 > > │ -00:27:54 v #27646 > > │ -00:27:54 v #27647 > > -00:27:54 v #27648 > > ── [ 3.41s - stdout ] ────────────────────────────────────────────────────────── -00:27:54 v #27649 > > │ .fsx output: -00:27:54 v #27650 > > │ __assert_eq / actual: UH0_1 ("a", UH0_1 ("b", UH0_0)) -00:27:54 v #27651 > > expected: UH0_1 ("a", UH0_1 ("b", UH0_0)) -00:27:54 v #27652 > > │ -00:27:54 v #27653 > > -00:27:54 v #27654 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:27:54 v #27655 > > │ ### of_array_base -00:27:54 v #27656 > > -00:27:54 v #27657 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:27:54 v #27658 > > inl of_array_base forall t. (items : array_base t) : seq' t = -00:27:54 v #27659 > > a items -00:27:54 v #27660 > > |> fun x => x : _ int _ -00:27:54 v #27661 > > |> of_array -00:27:54 v #27662 > > -00:27:54 v #27663 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:27:54 v #27664 > > //// test -00:27:54 v #27665 > > ///! fsharp -00:27:54 v #27666 > > ///! cuda -00:27:54 v #27667 > > ///! rust -00:27:54 v #27668 > > ///! typescript -00:27:54 v #27669 > > ///! python -00:27:54 v #27670 > > -00:27:54 v #27671 > > ;[[ "a"; "b" ]] -00:27:54 v #27672 > > |> of_array_base -00:27:54 v #27673 > > |> to_list' -00:27:54 v #27674 > > |> listm'.unbox -00:27:54 v #27675 > > |> _assert_eq [[ "a"; "b" ]] -00:27:57 v #27676 > > -00:27:57 v #27677 > > ── [ 2.66s - return value ] ──────────────────────────────────────────────────── -00:27:57 v #27678 > > │ .py output (Cuda): -00:27:57 v #27679 > > │ __assert_eq / actual: UH0_1(v0='a', v1=UH0_1(v0='b', -00:27:57 v #27680 > > v1=UH0_0())) / expected: UH0_1(v0='a', v1=UH0_1(v0='b', v1=UH0_0())) -00:27:57 v #27681 > > │ -00:27:57 v #27682 > > │ .rs output: -00:27:57 v #27683 > > │ __assert_eq / actual: UH0_1("a", UH0_1("b", UH0_0)) -00:27:57 v #27684 > > expected: UH0_1("a", UH0_1("b", UH0_0)) -00:27:57 v #27685 > > │ -00:27:57 v #27686 > > │ .ts output: -00:27:57 v #27687 > > │ __assert_eq / actual: UH0_1 (a, UH0_1 (b, UH0_0)) / expected: -00:27:57 v #27688 > > UH0_1 (a, UH0_1 (b, UH0_0)) -00:27:57 v #27689 > > │ -00:27:57 v #27690 > > │ .py output: -00:27:57 v #27691 > > │ __assert_eq / actual: UH0_1 ("a", UH0_1 ("b", UH0_0)) -00:27:57 v #27692 > > expected: UH0_1 ("a", UH0_1 ("b", UH0_0)) -00:27:57 v #27693 > > │ -00:27:57 v #27694 > > │ -00:27:57 v #27695 > > -00:27:57 v #27696 > > ── [ 2.67s - stdout ] ────────────────────────────────────────────────────────── -00:27:57 v #27697 > > │ .fsx output: -00:27:57 v #27698 > > │ __assert_eq / actual: UH0_1 ("a", UH0_1 ("b", UH0_0)) -00:27:57 v #27699 > > expected: UH0_1 ("a", UH0_1 ("b", UH0_0)) -00:27:57 v #27700 > > │ -00:27:57 v #27701 > > -00:27:57 v #27702 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:27:57 v #27703 > > │ ### to_array' -00:27:57 v #27704 > > -00:27:57 v #27705 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:27:57 v #27706 > > inl to_array' forall dim t. (items : seq' t) : a dim t = -00:27:57 v #27707 > > backend_switch { -00:27:57 v #27708 > > Fsharp = fun () => items |> $'Seq.toArray' : a dim t -00:27:57 v #27709 > > Python = fun () => $'(cp if cuda else np).array(!items)' : a dim t -00:27:57 v #27710 > > } -00:27:57 v #27711 > > -00:27:57 v #27712 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:27:57 v #27713 > > //// test -00:27:57 v #27714 > > ///! fsharp -00:27:57 v #27715 > > ///! cuda -00:27:57 v #27716 > > ///! rust -00:27:57 v #27717 > > ///! typescript -00:27:57 v #27718 > > ///! python -00:27:57 v #27719 > > -00:27:57 v #27720 > > ;[[ "a"; "b" ]] -00:27:57 v #27721 > > |> of_array_base -00:27:57 v #27722 > > |> to_array' -00:27:57 v #27723 > > |> fun x => x : _ int _ -00:27:57 v #27724 > > |> am'.to_list' -00:27:57 v #27725 > > |> listm'.unbox -00:27:57 v #27726 > > |> _assert_eq [[ "a"; "b" ]] -00:28:00 v #27727 > > -00:28:00 v #27728 > > ── [ 3.24s - return value ] ──────────────────────────────────────────────────── -00:28:00 v #27729 > > │ .py output (Cuda): -00:28:00 v #27730 > > │ __assert_eq / actual: UH0_1(v0=np.str_('a'), -00:28:00 v #27731 > > v1=UH0_1(v0=np.str_('b'), v1=UH0_0())) / expected: UH0_1(v0='a', -00:28:00 v #27732 > > v1=UH0_1(v0='b', v1=UH0_0())) -00:28:00 v #27733 > > │ -00:28:00 v #27734 > > │ .rs output: -00:28:00 v #27735 > > │ __assert_eq / actual: UH0_1("a", UH0_1("b", UH0_0)) -00:28:00 v #27736 > > expected: UH0_1("a", UH0_1("b", UH0_0)) -00:28:00 v #27737 > > │ -00:28:00 v #27738 > > │ .ts output: -00:28:00 v #27739 > > │ __assert_eq / actual: UH0_1 (a, UH0_1 (b, UH0_0)) / expected: -00:28:00 v #27740 > > UH0_1 (a, UH0_1 (b, UH0_0)) -00:28:00 v #27741 > > │ -00:28:00 v #27742 > > │ .py output: -00:28:00 v #27743 > > │ __assert_eq / actual: UH0_1 ("a", UH0_1 ("b", UH0_0)) -00:28:00 v #27744 > > expected: UH0_1 ("a", UH0_1 ("b", UH0_0)) -00:28:00 v #27745 > > │ -00:28:00 v #27746 > > │ -00:28:00 v #27747 > > -00:28:00 v #27748 > > ── [ 3.24s - stdout ] ────────────────────────────────────────────────────────── -00:28:00 v #27749 > > │ .fsx output: -00:28:00 v #27750 > > │ __assert_eq / actual: UH0_1 ("a", UH0_1 ("b", UH0_0)) -00:28:00 v #27751 > > expected: UH0_1 ("a", UH0_1 ("b", UH0_0)) -00:28:00 v #27752 > > │ -00:28:00 v #27753 > > -00:28:00 v #27754 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:28:00 v #27755 > > │ ### of_list' -00:28:00 v #27756 > > -00:28:00 v #27757 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:28:00 v #27758 > > inl of_list' forall t. (items : listm'.list' t) : seq' t = -00:28:00 v #27759 > > backend_switch { -00:28:00 v #27760 > > Fsharp = fun () => -00:28:00 v #27761 > > fun () => -00:28:00 v #27762 > > items |> yield_from -00:28:00 v #27763 > > |> new_seq -00:28:00 v #27764 > > |> fun x => x : seq' t -00:28:00 v #27765 > > Python = fun () => $'!items ' : seq' t -00:28:00 v #27766 > > } -00:28:01 v #27767 > > -00:28:01 v #27768 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:28:01 v #27769 > > │ ### cast' -00:28:01 v #27770 > > -00:28:01 v #27771 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:28:01 v #27772 > > inl cast' forall t u. (items : u) : seq' t = -00:28:01 v #27773 > > backend_switch { -00:28:01 v #27774 > > Fsharp = fun () => items |> $'Seq.cast' : seq' t -00:28:01 v #27775 > > Python = fun () => $'list(!items)' : seq' t -00:28:01 v #27776 > > } -00:28:01 v #27777 > > -00:28:01 v #27778 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:28:01 v #27779 > > │ ### rev' -00:28:01 v #27780 > > -00:28:01 v #27781 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:28:01 v #27782 > > inl rev'' forall t. (items : seq' t) : seq' t = -00:28:01 v #27783 > > backend_switch { -00:28:01 v #27784 > > Fsharp = fun () => items |> $'Seq.rev' : seq' t -00:28:01 v #27785 > > Python = fun () => $'list(reversed(!items))' : seq' t -00:28:01 v #27786 > > } -00:28:02 v #27787 > > -00:28:02 v #27788 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:28:02 v #27789 > > //// test -00:28:02 v #27790 > > ///! fsharp -00:28:02 v #27791 > > ///! cuda -00:28:02 v #27792 > > ///! rust -00:28:02 v #27793 > > ///! typescript -00:28:02 v #27794 > > ///! python -00:28:02 v #27795 > > -00:28:02 v #27796 > > [[ "a"; "b" ]] -00:28:02 v #27797 > > |> listm'.box -00:28:02 v #27798 > > |> of_list' -00:28:02 v #27799 > > |> rev'' -00:28:02 v #27800 > > |> to_list' -00:28:02 v #27801 > > |> listm'.unbox -00:28:02 v #27802 > > |> _assert_eq [[ "b"; "a" ]] -00:28:05 v #27803 > > -00:28:05 v #27804 > > ── [ 3.50s - return value ] ──────────────────────────────────────────────────── -00:28:05 v #27805 > > │ .py output (Cuda): -00:28:05 v #27806 > > │ __assert_eq / actual: UH0_1(v0='b', v1=UH0_1(v0='a', -00:28:05 v #27807 > > v1=UH0_0())) / expected: UH0_1(v0='b', v1=UH0_1(v0='a', v1=UH0_0())) -00:28:05 v #27808 > > │ -00:28:05 v #27809 > > │ .rs output: -00:28:05 v #27810 > > │ __assert_eq / actual: UH0_1("b", UH0_1("a", UH0_0)) -00:28:05 v #27811 > > expected: UH0_1("b", UH0_1("a", UH0_0)) -00:28:05 v #27812 > > │ -00:28:05 v #27813 > > │ .ts output: -00:28:05 v #27814 > > │ __assert_eq / actual: UH0_1 (b, UH0_1 (a, UH0_0)) / expected: -00:28:05 v #27815 > > UH0_1 (b, UH0_1 (a, UH0_0)) -00:28:05 v #27816 > > │ -00:28:05 v #27817 > > │ .py output: -00:28:05 v #27818 > > │ __assert_eq / actual: UH0_1 ("b", UH0_1 ("a", UH0_0)) -00:28:05 v #27819 > > expected: UH0_1 ("b", UH0_1 ("a", UH0_0)) -00:28:05 v #27820 > > │ -00:28:05 v #27821 > > │ -00:28:05 v #27822 > > -00:28:05 v #27823 > > ── [ 3.50s - stdout ] ────────────────────────────────────────────────────────── -00:28:05 v #27824 > > │ .fsx output: -00:28:05 v #27825 > > │ __assert_eq / actual: UH0_1 ("b", UH0_1 ("a", UH0_0)) -00:28:05 v #27826 > > expected: UH0_1 ("b", UH0_1 ("a", UH0_0)) -00:28:05 v #27827 > > │ -00:28:05 v #27828 > > -00:28:05 v #27829 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:28:05 v #27830 > > │ ## rust -00:28:05 v #27831 > > -00:28:05 v #27832 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:28:05 v #27833 > > │ ### fuse -00:28:05 v #27834 > > -00:28:05 v #27835 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:28:05 v #27836 > > nominal fuse t = -00:28:05 v #27837 > > `( -00:28:05 v #27838 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:28:05 v #27839 > > Fable.Core.Emit(\"core::iter::Fuse<$0>\")>]]\n#endif\ntype core_iter_Fuse<'T> = -00:28:05 v #27840 > > class end" -00:28:05 v #27841 > > $'' : $'core_iter_Fuse<`t>' -00:28:05 v #27842 > > ) -00:28:06 v #27843 > 00:00:50 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 33529 } -00:28:06 v #27844 > 00:00:50 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/lib/spiral/seq.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/lib/spiral/seq.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:28:07 v #27845 > 00:00:52 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/lib/spiral/seq.dib.ipynb to html -00:28:07 v #27846 > 00:00:52 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. -00:28:07 v #27847 > 00:00:52 v #7 ! validate(nb) -00:28:08 v #27848 > 00:00:52 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 -00:28:08 v #27849 > 00:00:52 v #9 ! return _pygments_highlight( -00:28:08 v #27850 > 00:00:53 v #10 ! [NbConvertApp] Writing 398763 bytes to c:\home\git\polyglot\lib\spiral\seq.dib.html -00:28:09 v #27851 > 00:00:53 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 848 } -00:28:09 v #27852 > 00:00:53 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 848 } -00:28:09 v #27853 > 00:00:53 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/seq.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/seq.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:28:09 v #27854 > 00:00:53 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } -00:28:09 v #27855 > 00:00:53 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } -00:28:09 v #27856 > 00:00:53 d #16 spiral.run / dib / { exit_code = 0; result_length = 34436 } -00:28:09 d #27857 runtime.execute_with_options_async / { exit_code = 0; output_length = 38924 } -00:28:09 d #35 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path seq.dib --retries 3 -00:28:09 d #27858 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path env.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path env.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } -00:28:09 v #27859 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "env.dib", "--retries", "3"])) } -00:28:09 v #27860 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/lib/spiral/env.dib", "--output-path", "c:/home/git/polyglot/lib/spiral/env.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/lib/spiral/env.dib" --output-path "c:/home/git/polyglot/lib/spiral/env.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } -00:28:11 v #27861 > > -00:28:11 v #27862 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:28:11 v #27863 > > │ # env -00:28:14 v #27864 > > -00:28:14 v #27865 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:28:14 v #27866 > > //// test -00:28:14 v #27867 > > -00:28:14 v #27868 > > open testing -00:28:15 v #27869 > > -00:28:15 v #27870 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:28:15 v #27871 > > │ ## rust -00:28:15 v #27872 > > -00:28:15 v #27873 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:28:15 v #27874 > > │ ### var_error -00:28:15 v #27875 > > -00:28:15 v #27876 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:28:15 v #27877 > > nominal var_error = -00:28:15 v #27878 > > `( -00:28:15 v #27879 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:28:15 v #27880 > > Fable.Core.Emit(\"std::env::VarError\")>]]\n#endif\ntype std_env_VarError = -00:28:15 v #27881 > > class end" -00:28:15 v #27882 > > $'' : $'std_env_VarError' -00:28:15 v #27883 > > ) -00:28:15 v #27884 > > -00:28:15 v #27885 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:28:15 v #27886 > > │ ### get_environment_variable_comptime -00:28:15 v #27887 > > -00:28:15 v #27888 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:28:15 v #27889 > > inl get_environment_variable_comptime (var : string) : string = -00:28:15 v #27890 > > run_target_args (fun () => var) function -00:28:15 v #27891 > > | Rust _ => fun var => -00:28:15 v #27892 > > open rust.rust_operators -00:28:15 v #27893 > > !\($'"option_env\!(\\\"" + !var + "\\\").unwrap_or(\\\"\\\")"') -00:28:15 v #27894 > > |> sm'.ref_to_std_string -00:28:15 v #27895 > > |> sm'.from_std_string -00:28:15 v #27896 > > | target => fun _ => null () -00:28:16 v #27897 > > -00:28:16 v #27898 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:28:16 v #27899 > > │ ## python -00:28:16 v #27900 > > -00:28:16 v #27901 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:28:16 v #27902 > > │ ### os_environ -00:28:16 v #27903 > > -00:28:16 v #27904 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:28:16 v #27905 > > nominal os_environ = any -00:28:16 v #27906 > > -00:28:16 v #27907 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:28:16 v #27908 > > inl os_environ () : os_environ = -00:28:16 v #27909 > > backend_switch { -00:28:16 v #27910 > > Fsharp = fun () => -00:28:16 v #27911 > > open python_operators -00:28:16 v #27912 > > global "type IOsEnviron = abstract environ: x: unit -> obj" -00:28:16 v #27913 > > inl os : $'IOsEnviron' = python.import_all "os" -00:28:16 v #27914 > > !\($'"!os.environ"') : os_environ -00:28:16 v #27915 > > Python = fun () => -00:28:16 v #27916 > > global "import os" -00:28:16 v #27917 > > $'os.environ' : os_environ -00:28:16 v #27918 > > } -00:28:17 v #27919 > > -00:28:17 v #27920 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:28:17 v #27921 > > inl environ_get (key : string) (os_environ : os_environ) : string = -00:28:17 v #27922 > > backend_switch { -00:28:17 v #27923 > > Fsharp = fun () => -00:28:17 v #27924 > > open python_operators -00:28:17 v #27925 > > !\\(key, $'"!os_environ.get($0)"') : string -00:28:17 v #27926 > > Python = fun () => -00:28:17 v #27927 > > $'!os_environ.get(!key)' : string -00:28:17 v #27928 > > } -00:28:17 v #27929 > > -00:28:17 v #27930 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:28:17 v #27931 > > │ ## env -00:28:17 v #27932 > > -00:28:17 v #27933 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:28:17 v #27934 > > │ ### get_environment_variable -00:28:17 v #27935 > > -00:28:17 v #27936 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:28:17 v #27937 > > let get_environment_variable (var : string) : string = -00:28:17 v #27938 > > run_target_args (fun () => var) function -00:28:17 v #27939 > > | Rust (Native) => fun var => -00:28:17 v #27940 > > inl var = join var -00:28:17 v #27941 > > open rust.rust_operators -00:28:17 v #27942 > > !\\(var, $'"std::env::var(&*$0)"') -00:28:17 v #27943 > > |> fun x => x : resultm.result' sm'.std_string var_error -00:28:17 v #27944 > > |> resultm.map' sm'.from_std_string -00:28:17 v #27945 > > |> resultm.unwrap_or' (join "") -00:28:17 v #27946 > > | Fsharp (Native) => fun var => -00:28:17 v #27947 > > var -00:28:17 v #27948 > > |> $'System.Environment.GetEnvironmentVariable' -00:28:17 v #27949 > > |> optionm'.of_obj -00:28:17 v #27950 > > |> optionm'.unbox -00:28:17 v #27951 > > |> optionm'.default_value "" -00:28:17 v #27952 > > | TypeScript _ => fun var => -00:28:17 v #27953 > > open typescript_operators -00:28:17 v #27954 > > !\\(var, $'"process.env[[$0]] ?? \\\"\\\""') -00:28:17 v #27955 > > | Python _ | Cuda _ => fun var => -00:28:17 v #27956 > > os_environ () -00:28:17 v #27957 > > |> environ_get var -00:28:17 v #27958 > > |> optionm'.of_obj -00:28:17 v #27959 > > |> optionm'.unbox -00:28:17 v #27960 > > |> optionm'.default_value "" -00:28:17 v #27961 > > | target => fun var => failwith $'$"env.get_environment_variable -00:28:17 v #27962 > > target: {!target} / var: {!var}"' -00:28:17 v #27963 > > -00:28:17 v #27964 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:28:17 v #27965 > > //// test -00:28:17 v #27966 > > ///! fsharp -00:28:17 v #27967 > > ///! cuda -00:28:17 v #27968 > > ///! rust -00:28:17 v #27969 > > ///! typescript -00:28:17 v #27970 > > ///! python -00:28:17 v #27971 > > -00:28:17 v #27972 > > "PATH" -00:28:17 v #27973 > > |> get_environment_variable -00:28:17 v #27974 > > |> sm'.length -00:28:17 v #27975 > > |> fun x => -00:28:17 v #27976 > > if x > 0i32 -00:28:17 v #27977 > > then 1 -00:28:17 v #27978 > > else 0 -00:28:17 v #27979 > > |> _assert_ne 0i32 -00:28:22 v #27980 > > -00:28:22 v #27981 > > ── [ 4.86s - return value ] ──────────────────────────────────────────────────── -00:28:22 v #27982 > > │ .py output (Cuda): -00:28:22 v #27983 > > │ __assert_ne / actual: 1 / expected: 0 -00:28:22 v #27984 > > │ -00:28:22 v #27985 > > │ .rs output: -00:28:22 v #27986 > > │ __assert_ne / actual: 1 / expected: 0 -00:28:22 v #27987 > > │ -00:28:22 v #27988 > > │ .ts output: -00:28:22 v #27989 > > │ __assert_ne / actual: 1 / expected: 0 -00:28:22 v #27990 > > │ -00:28:22 v #27991 > > │ .py output: -00:28:22 v #27992 > > │ __assert_ne / actual: 1 / expected: 0 -00:28:22 v #27993 > > │ -00:28:22 v #27994 > > │ -00:28:22 v #27995 > > -00:28:22 v #27996 > > ── [ 4.87s - stdout ] ────────────────────────────────────────────────────────── -00:28:22 v #27997 > > │ .fsx output: -00:28:22 v #27998 > > │ __assert_ne / actual: 1 / expected: 0 -00:28:22 v #27999 > > │ -00:28:22 v #28000 > > -00:28:22 v #28001 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:28:22 v #28002 > > │ ### get_entry_assembly_name -00:28:22 v #28003 > > -00:28:22 v #28004 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:28:22 v #28005 > > let get_entry_assembly_name () : string = -00:28:22 v #28006 > > run_target function -00:28:22 v #28007 > > | Rust _ => fun () => (join "CARGO_PKG_NAME") |> -00:28:22 v #28008 > > get_environment_variable -00:28:22 v #28009 > > | Fsharp _ => fun () => -00:28:22 v #28010 > > $'System.Reflection.Assembly.GetEntryAssembly().GetName().Name' -00:28:22 v #28011 > > | target => fun () => failwith $'$"env.get_entry_assembly_name / target: -00:28:22 v #28012 > > {!target}"' -00:28:23 v #28013 > > -00:28:23 v #28014 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:28:23 v #28015 > > │ ### append_path -00:28:23 v #28016 > > -00:28:23 v #28017 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:28:23 v #28018 > > inl append_path (path : string) : option string = -00:28:23 v #28019 > > inl env_path = "PATH" |> get_environment_variable -00:28:23 v #28020 > > if env_path = "" -00:28:23 v #28021 > > then None -00:28:23 v #28022 > > else -00:28:23 v #28023 > > inl env_sep = -00:28:23 v #28024 > > if platform.is_windows () -00:28:23 v #28025 > > then ";" -00:28:23 v #28026 > > else ":" -00:28:23 v #28027 > > Some $'$"{!path}{!env_sep}{!env_path}"' -00:28:23 v #28028 > 00:00:14 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 6066 } -00:28:23 v #28029 > 00:00:14 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/lib/spiral/env.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/lib/spiral/env.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:28:24 v #28030 > 00:00:15 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/lib/spiral/env.dib.ipynb to html -00:28:24 v #28031 > 00:00:15 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. -00:28:24 v #28032 > 00:00:15 v #7 ! validate(nb) -00:28:25 v #28033 > 00:00:16 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 -00:28:25 v #28034 > 00:00:16 v #9 ! return _pygments_highlight( -00:28:25 v #28035 > 00:00:16 v #10 ! [NbConvertApp] Writing 294829 bytes to c:\home\git\polyglot\lib\spiral\env.dib.html -00:28:25 v #28036 > 00:00:16 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 848 } -00:28:25 v #28037 > 00:00:16 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 848 } -00:28:25 v #28038 > 00:00:16 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/env.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/env.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:28:26 v #28039 > 00:00:16 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } -00:28:26 v #28040 > 00:00:16 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } -00:28:26 v #28041 > 00:00:16 d #16 spiral.run / dib / { exit_code = 0; result_length = 6973 } -00:28:26 d #28042 runtime.execute_with_options_async / { exit_code = 0; output_length = 9813 } -00:28:26 d #36 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path env.dib --retries 3 -00:28:26 d #28043 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path python.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path python.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } -00:28:26 v #28044 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "python.dib", "--retries", "3"])) } -00:28:26 v #28045 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/lib/spiral/python.dib", "--output-path", "c:/home/git/polyglot/lib/spiral/python.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/lib/spiral/python.dib" --output-path "c:/home/git/polyglot/lib/spiral/python.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } -00:28:27 v #28046 > > -00:28:27 v #28047 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:28:27 v #28048 > > │ # python -00:28:27 v #28049 > > -00:28:27 v #28050 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:28:27 v #28051 > > │ ### emit_expr -00:28:31 v #28052 > > -00:28:31 v #28053 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:28:31 v #28054 > > inl emit_expr forall a t. (args : a) (code : string) : t = -00:28:31 v #28055 > > real -00:28:31 v #28056 > > $'Fable.Core.PyInterop.emitPyExpr !args !code ' : t -00:28:32 v #28057 > > -00:28:32 v #28058 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:28:32 v #28059 > > │ ### -00:28:32 v #28060 > > -00:28:32 v #28061 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:28:32 v #28062 > > inl (~!\) forall t. (code : string) : t = -00:28:32 v #28063 > > emit_expr () code -00:28:32 v #28064 > > -00:28:32 v #28065 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:28:32 v #28066 > > │ ### -00:28:32 v #28067 > > -00:28:32 v #28068 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:28:32 v #28069 > > inl (~!\\) forall t u. ((args : t), (code : string)) : u = -00:28:32 v #28070 > > emit_expr args code -00:28:32 v #28071 > > -00:28:32 v #28072 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:28:32 v #28073 > > │ ### -00:28:32 v #28074 > > -00:28:32 v #28075 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:28:32 v #28076 > > inl import_all forall t. (file : string) : t = -00:28:32 v #28077 > > real -00:28:32 v #28078 > > $'Fable.Core.PyInterop.importAll !file ' : t -00:28:33 v #28079 > > -00:28:33 v #28080 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:28:33 v #28081 > > │ ### -00:28:33 v #28082 > > -00:28:33 v #28083 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:28:33 v #28084 > > inl import forall t. (name : string) (file : string) : t = -00:28:33 v #28085 > > real -00:28:33 v #28086 > > $'Fable.Core.PyInterop.import !name !file ' : t -00:28:33 v #28087 > 00:00:07 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 1598 } -00:28:33 v #28088 > 00:00:07 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/lib/spiral/python.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/lib/spiral/python.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:28:35 v #28089 > 00:00:08 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/lib/spiral/python.dib.ipynb to html -00:28:35 v #28090 > 00:00:08 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. -00:28:35 v #28091 > 00:00:08 v #7 ! validate(nb) -00:28:35 v #28092 > 00:00:09 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 -00:28:35 v #28093 > 00:00:09 v #9 ! return _pygments_highlight( -00:28:35 v #28094 > 00:00:09 v #10 ! [NbConvertApp] Writing 278614 bytes to c:\home\git\polyglot\lib\spiral\python.dib.html -00:28:35 v #28095 > 00:00:09 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 854 } -00:28:35 v #28096 > 00:00:09 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 854 } -00:28:35 v #28097 > 00:00:09 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/python.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/python.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:28:36 v #28098 > 00:00:10 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } -00:28:36 v #28099 > 00:00:10 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } -00:28:36 v #28100 > 00:00:10 d #16 spiral.run / dib / { exit_code = 0; result_length = 2511 } -00:28:36 d #28101 runtime.execute_with_options_async / { exit_code = 0; output_length = 5126 } -00:28:36 d #37 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path python.dib --retries 3 -00:28:36 d #28102 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path typescript.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path typescript.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } -00:28:36 v #28103 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "typescript.dib", "--retries", "3"])) } -00:28:36 v #28104 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/lib/spiral/typescript.dib", "--output-path", "c:/home/git/polyglot/lib/spiral/typescript.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/lib/spiral/typescript.dib" --output-path "c:/home/git/polyglot/lib/spiral/typescript.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } -00:28:37 v #28105 > > -00:28:37 v #28106 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:28:37 v #28107 > > │ # typescript -00:28:37 v #28108 > > -00:28:37 v #28109 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:28:37 v #28110 > > │ ### emit_expr -00:28:40 v #28111 > > -00:28:40 v #28112 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:28:40 v #28113 > > inl emit_expr forall a t. (args : a) (code : string) : t = -00:28:40 v #28114 > > real -00:28:40 v #28115 > > $'Fable.Core.JsInterop.emitJsExpr !args !code ' : t -00:28:42 v #28116 > > -00:28:42 v #28117 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:28:42 v #28118 > > │ ### -00:28:42 v #28119 > > -00:28:42 v #28120 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:28:42 v #28121 > > inl (~!\) forall t. (code : string) : t = -00:28:42 v #28122 > > emit_expr () code -00:28:42 v #28123 > > -00:28:42 v #28124 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:28:42 v #28125 > > │ ### -00:28:42 v #28126 > > -00:28:42 v #28127 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:28:42 v #28128 > > inl (~!\\) forall t u. ((args : t), (code : string)) : u = -00:28:42 v #28129 > > emit_expr args code -00:28:42 v #28130 > > -00:28:42 v #28131 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:28:42 v #28132 > > │ ### -00:28:42 v #28133 > > -00:28:42 v #28134 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:28:42 v #28135 > > inl import_all forall t. (file : string) : t = -00:28:42 v #28136 > > real -00:28:42 v #28137 > > $'Fable.Core.JsInterop.importAll !file ' : t -00:28:43 v #28138 > > -00:28:43 v #28139 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:28:43 v #28140 > > │ ### -00:28:43 v #28141 > > -00:28:43 v #28142 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:28:43 v #28143 > > inl import forall t. (name : string) (file : string) : t = -00:28:43 v #28144 > > real -00:28:43 v #28145 > > $'Fable.Core.JsInterop.import !name !file ' : t -00:28:43 v #28146 > 00:00:07 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 1602 } -00:28:43 v #28147 > 00:00:07 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/lib/spiral/typescript.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/lib/spiral/typescript.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:28:45 v #28148 > 00:00:08 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/lib/spiral/typescript.dib.ipynb to html -00:28:45 v #28149 > 00:00:08 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. -00:28:45 v #28150 > 00:00:08 v #7 ! validate(nb) -00:28:45 v #28151 > 00:00:09 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 -00:28:45 v #28152 > 00:00:09 v #9 ! return _pygments_highlight( -00:28:45 v #28153 > 00:00:09 v #10 ! [NbConvertApp] Writing 278630 bytes to c:\home\git\polyglot\lib\spiral\typescript.dib.html -00:28:45 v #28154 > 00:00:09 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 862 } -00:28:45 v #28155 > 00:00:09 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 862 } -00:28:45 v #28156 > 00:00:09 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/typescript.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/typescript.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:28:46 v #28157 > 00:00:09 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } -00:28:46 v #28158 > 00:00:09 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } -00:28:46 v #28159 > 00:00:09 d #16 spiral.run / dib / { exit_code = 0; result_length = 2523 } -00:28:46 d #28160 runtime.execute_with_options_async / { exit_code = 0; output_length = 5174 } -00:28:46 d #38 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path typescript.dib --retries 3 -00:28:46 d #28161 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path file_system.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path file_system.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } -00:28:46 v #28162 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "file_system.dib", "--retries", "3"])) } -00:28:46 v #28163 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/lib/spiral/file_system.dib", "--output-path", "c:/home/git/polyglot/lib/spiral/file_system.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/lib/spiral/file_system.dib" --output-path "c:/home/git/polyglot/lib/spiral/file_system.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } -00:28:48 v #28164 > > -00:28:48 v #28165 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:28:48 v #28166 > > │ # file_system -00:28:51 v #28167 > > -00:28:51 v #28168 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:28:51 v #28169 > > open sm'_operators -00:28:51 v #28170 > > open rust -00:28:51 v #28171 > > open rust_operators -00:28:52 v #28172 > > -00:28:52 v #28173 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:28:52 v #28174 > > //// test -00:28:52 v #28175 > > -00:28:52 v #28176 > > open testing -00:28:52 v #28177 > > -00:28:52 v #28178 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:28:52 v #28179 > > │ ## fsharp -00:28:52 v #28180 > > -00:28:52 v #28181 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:28:52 v #28182 > > │ ### file_mode -00:28:52 v #28183 > > -00:28:52 v #28184 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:28:52 v #28185 > > nominal file_mode' = $'System.IO.FileMode' -00:28:52 v #28186 > > -00:28:52 v #28187 > > union file_mode = -00:28:52 v #28188 > > | ModeCreateNew -00:28:52 v #28189 > > | ModeCreate -00:28:52 v #28190 > > | ModeOpen -00:28:52 v #28191 > > | ModeOpenOrCreate -00:28:52 v #28192 > > | Truncate -00:28:52 v #28193 > > | Append -00:28:52 v #28194 > > -00:28:52 v #28195 > > inl file_mode = function -00:28:52 v #28196 > > | ModeCreateNew => $'System.IO.FileMode.CreateNew' : file_mode' -00:28:52 v #28197 > > | ModeCreate => $'System.IO.FileMode.Create' : file_mode' -00:28:52 v #28198 > > | ModeOpen => $'System.IO.FileMode.Open' : file_mode' -00:28:52 v #28199 > > | ModeOpenOrCreate => $'System.IO.FileMode.OpenOrCreate' : file_mode' -00:28:52 v #28200 > > | Truncate => $'System.IO.FileMode.Truncate' : file_mode' -00:28:52 v #28201 > > | Append => $'System.IO.FileMode.Append' : file_mode' -00:28:53 v #28202 > > -00:28:53 v #28203 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:28:53 v #28204 > > │ ### file_access -00:28:53 v #28205 > > -00:28:53 v #28206 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:28:53 v #28207 > > nominal file_access' = $'System.IO.FileAccess' -00:28:53 v #28208 > > -00:28:53 v #28209 > > union file_access = -00:28:53 v #28210 > > | AccessRead -00:28:53 v #28211 > > | AccessWrite -00:28:53 v #28212 > > | AccessReadWrite -00:28:53 v #28213 > > -00:28:53 v #28214 > > inl file_access = function -00:28:53 v #28215 > > | AccessRead => $'System.IO.FileAccess.Read' : file_access' -00:28:53 v #28216 > > | AccessWrite => $'System.IO.FileAccess.ReadWrite' : file_access' -00:28:53 v #28217 > > | AccessReadWrite => $'System.IO.FileAccess.ReadWrite' : file_access' -00:28:53 v #28218 > > -00:28:53 v #28219 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:28:53 v #28220 > > │ ### file_share -00:28:53 v #28221 > > -00:28:53 v #28222 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:28:53 v #28223 > > nominal file_share' = $'System.IO.FileShare' -00:28:53 v #28224 > > -00:28:53 v #28225 > > union file_share = -00:28:53 v #28226 > > | ShareNone -00:28:53 v #28227 > > | ShareRead -00:28:53 v #28228 > > | ShareWrite -00:28:53 v #28229 > > | ShareReadWrite -00:28:53 v #28230 > > | ShareDelete -00:28:53 v #28231 > > -00:28:53 v #28232 > > inl file_share = function -00:28:53 v #28233 > > | ShareNone => $'System.IO.FileShare.None' : file_share' -00:28:53 v #28234 > > | ShareRead => $'System.IO.FileShare.Read' : file_share' -00:28:53 v #28235 > > | ShareWrite => $'System.IO.FileShare.Write' : file_share' -00:28:53 v #28236 > > | ShareReadWrite => $'System.IO.FileShare.ReadWrite' : file_share' -00:28:53 v #28237 > > | ShareDelete => $'System.IO.FileShare.Delete' : file_share' -00:28:53 v #28238 > > -00:28:53 v #28239 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:28:53 v #28240 > > │ ### file_stream -00:28:53 v #28241 > > -00:28:53 v #28242 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:28:53 v #28243 > > nominal file_stream' = $'System.IO.FileStream' -00:28:53 v #28244 > > -00:28:53 v #28245 > > inl file_stream (path : string) mode access share : file_stream' = -00:28:53 v #28246 > > run_target function -00:28:53 v #28247 > > | Fsharp (Native) => fun () => -00:28:53 v #28248 > > inl mode = mode |> file_mode -00:28:53 v #28249 > > inl access = access |> file_access -00:28:53 v #28250 > > inl share = share |> file_share -00:28:53 v #28251 > > $'new System.IO.FileStream (!path, !mode, !access, !share)' -00:28:53 v #28252 > > | _ => fun () => null () -00:28:54 v #28253 > > -00:28:54 v #28254 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:28:54 v #28255 > > │ ### file_info -00:28:54 v #28256 > > -00:28:54 v #28257 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:28:54 v #28258 > > nominal file_info = -00:28:54 v #28259 > > `( -00:28:54 v #28260 > > global "#if FABLE_COMPILER\ntype System_IO_FileInfo = bool\n#else\ntype -00:28:54 v #28261 > > System_IO_FileInfo = System.IO.FileInfo\n#endif\n" -00:28:54 v #28262 > > $'' : $'System_IO_FileInfo' -00:28:54 v #28263 > > ) -00:28:54 v #28264 > > -00:28:54 v #28265 > > inl file_info (path : string) : file_info = -00:28:54 v #28266 > > run_target function -00:28:54 v #28267 > > | Fsharp (Native) => fun () => path |> convert -00:28:54 v #28268 > > | _ => fun () => null () -00:28:54 v #28269 > > -00:28:54 v #28270 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:28:54 v #28271 > > │ ### directory_info -00:28:54 v #28272 > > -00:28:54 v #28273 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:28:54 v #28274 > > nominal directory_info = -00:28:54 v #28275 > > `( -00:28:54 v #28276 > > global "#if FABLE_COMPILER\ntype System_IO_DirectoryInfo = -00:28:54 v #28277 > > bool\n#else\ntype System_IO_DirectoryInfo = System.IO.DirectoryInfo\n#endif\n" -00:28:54 v #28278 > > $'' : $'System_IO_DirectoryInfo' -00:28:54 v #28279 > > ) -00:28:54 v #28280 > > -00:28:54 v #28281 > > inl directory_info (path : string) : directory_info = -00:28:54 v #28282 > > run_target function -00:28:54 v #28283 > > | Fsharp (Native) => fun () => path |> convert -00:28:54 v #28284 > > | _ => fun () => null () -00:28:55 v #28285 > > -00:28:55 v #28286 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:28:55 v #28287 > > │ ### directory_info_exists -00:28:55 v #28288 > > -00:28:55 v #28289 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:28:55 v #28290 > > inl directory_info_exists (info : directory_info) : bool = -00:28:55 v #28291 > > run_target function -00:28:55 v #28292 > > | Fsharp (Native) => fun () => info |> $'_.Exists' -00:28:55 v #28293 > > | _ => fun () => null () -00:28:55 v #28294 > > -00:28:55 v #28295 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:28:55 v #28296 > > │ ### directory_info_creation_time -00:28:55 v #28297 > > -00:28:55 v #28298 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:28:55 v #28299 > > inl directory_info_creation_time (info : directory_info) : date_time.date_time = -00:28:55 v #28300 > > run_target function -00:28:55 v #28301 > > | Fsharp (Native) => fun () => info |> $'_.CreationTime' -00:28:55 v #28302 > > | _ => fun () => null () -00:28:56 v #28303 > > -00:28:56 v #28304 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:28:56 v #28305 > > │ ### directory_info_name -00:28:56 v #28306 > > -00:28:56 v #28307 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:28:56 v #28308 > > inl directory_info_name (info : directory_info) : string = -00:28:56 v #28309 > > run_target function -00:28:56 v #28310 > > | Fsharp (Native) => fun () => info |> $'_.Name' -00:28:56 v #28311 > > | _ => fun () => null () -00:28:56 v #28312 > > -00:28:56 v #28313 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:28:56 v #28314 > > │ ### directory_info_full_name -00:28:56 v #28315 > > -00:28:56 v #28316 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:28:56 v #28317 > > inl directory_info_full_name (info : directory_info) : string = -00:28:56 v #28318 > > run_target function -00:28:56 v #28319 > > | Fsharp (Native) => fun () => info |> $'_.FullName' -00:28:56 v #28320 > > | _ => fun () => null () -00:28:56 v #28321 > > -00:28:56 v #28322 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:28:56 v #28323 > > │ ### file_attributes -00:28:56 v #28324 > > -00:28:56 v #28325 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:28:56 v #28326 > > nominal file_attributes = $'System.IO.FileAttributes' -00:28:57 v #28327 > > -00:28:57 v #28328 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:28:57 v #28329 > > │ ### directory_info_attributes -00:28:57 v #28330 > > -00:28:57 v #28331 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:28:57 v #28332 > > let directory_info_attributes (info : directory_info) : file_attributes = -00:28:57 v #28333 > > run_target function -00:28:57 v #28334 > > | Fsharp (Native) => fun () => info |> $'_.Attributes' -00:28:57 v #28335 > > | _ => fun () => null () -00:28:57 v #28336 > > -00:28:57 v #28337 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:28:57 v #28338 > > │ ### file_attributes_reparse_point -00:28:57 v #28339 > > -00:28:57 v #28340 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:28:57 v #28341 > > let file_attributes_reparse_point () : file_attributes = -00:28:57 v #28342 > > run_target function -00:28:57 v #28343 > > | Fsharp (Native) => fun () => $'`file_attributes.ReparsePoint' -00:28:57 v #28344 > > | _ => fun () => null () -00:28:58 v #28345 > > -00:28:58 v #28346 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:28:58 v #28347 > > │ ### file_attributes_has_flag -00:28:58 v #28348 > > -00:28:58 v #28349 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:28:58 v #28350 > > let file_attributes_has_flag (flag : file_attributes) (file_attributes : -00:28:58 v #28351 > > file_attributes) : bool = -00:28:58 v #28352 > > run_target function -00:28:58 v #28353 > > | Fsharp (Native) => fun () => $'!file_attributes.HasFlag !flag ' -00:28:58 v #28354 > > | _ => fun () => null () -00:28:58 v #28355 > > -00:28:58 v #28356 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:28:58 v #28357 > > │ ### create_directory -00:28:58 v #28358 > > -00:28:58 v #28359 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:28:58 v #28360 > > let create_directory (path : string) : directory_info = -00:28:58 v #28361 > > run_target function -00:28:58 v #28362 > > | Fsharp (Native) => fun () => path |> -00:28:58 v #28363 > > $'System.IO.Directory.CreateDirectory' -00:28:58 v #28364 > > | _ => fun () => null () -00:28:59 v #28365 > > -00:28:59 v #28366 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:28:59 v #28367 > > │ ### directory_get_files -00:28:59 v #28368 > > -00:28:59 v #28369 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:28:59 v #28370 > > let directory_get_files (path : string) : array_base string = -00:28:59 v #28371 > > run_target function -00:28:59 v #28372 > > | Fsharp (Native) => fun () => path |> $'System.IO.Directory.GetFiles' -00:28:59 v #28373 > > | _ => fun () => null () -00:28:59 v #28374 > > -00:28:59 v #28375 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:28:59 v #28376 > > │ ### file_move -00:28:59 v #28377 > > -00:28:59 v #28378 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:28:59 v #28379 > > let file_move (new_path : string) (old_path : string) : () = -00:28:59 v #28380 > > run_target function -00:28:59 v #28381 > > | Fsharp (Native) => fun () => $'System.IO.File.Move (!old_path, -00:28:59 v #28382 > > !new_path)' -00:28:59 v #28383 > > | _ => fun () => () -00:29:00 v #28384 > > -00:29:00 v #28385 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:00 v #28386 > > │ ### read_all_text_async -00:29:00 v #28387 > > -00:29:00 v #28388 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:00 v #28389 > > let read_all_text_async (path : string) : _ string = -00:29:00 v #28390 > > run_target function -00:29:00 v #28391 > > | Fsharp (Native) => fun () => path |> -00:29:00 v #28392 > > $'System.IO.File.ReadAllTextAsync' |> async.await_task -00:29:00 v #28393 > > | _ => fun () => null () -00:29:00 v #28394 > > -00:29:00 v #28395 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:00 v #28396 > > │ ### write_all_text_async -00:29:00 v #28397 > > -00:29:00 v #28398 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:00 v #28399 > > let write_all_text_async (path : string) (text : string) : _ () = -00:29:00 v #28400 > > run_target function -00:29:00 v #28401 > > | Fsharp (Native) => fun () => $'System.IO.File.WriteAllTextAsync -00:29:00 v #28402 > > (!path, !text)' |> async.await_task -00:29:00 v #28403 > > | _ => fun () => null () -00:29:00 v #28404 > > -00:29:00 v #28405 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:00 v #28406 > > │ ### file_system_info -00:29:00 v #28407 > > -00:29:00 v #28408 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:00 v #28409 > > nominal file_system_info = $'System.IO.FileSystemInfo' -00:29:01 v #28410 > > -00:29:01 v #28411 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:01 v #28412 > > │ ### get_source_directory -00:29:01 v #28413 > > -00:29:01 v #28414 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:01 v #28415 > > inl get_source_directory () = -00:29:01 v #28416 > > $'__SOURCE_DIRECTORY__' : string -00:29:01 v #28417 > > -00:29:01 v #28418 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:01 v #28419 > > //// test -00:29:01 v #28420 > > -00:29:01 v #28421 > > get_source_directory () -00:29:01 v #28422 > > |> directory_info -00:29:01 v #28423 > > |> directory_info_name -00:29:01 v #28424 > > |> _assert_eq "spiral" -00:29:03 v #28425 > > -00:29:03 v #28426 > > ── [ 1.21s - stdout ] ────────────────────────────────────────────────────────── -00:29:03 v #28427 > > │ __assert_eq / actual: "spiral" / expected: "spiral" -00:29:03 v #28428 > > │ -00:29:03 v #28429 > > -00:29:03 v #28430 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:03 v #28431 > > │ ## rust -00:29:03 v #28432 > > -00:29:03 v #28433 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:03 v #28434 > > │ ### display -00:29:03 v #28435 > > -00:29:03 v #28436 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:03 v #28437 > > nominal display = -00:29:03 v #28438 > > `( -00:29:03 v #28439 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:29:03 v #28440 > > Fable.Core.Emit(\"std::path::Display\")>]]\ntype std_path_Display = class -00:29:03 v #28441 > > end\n#else\ntype std_path_Display = string\n#endif\n" -00:29:03 v #28442 > > $'' : $'std_path_Display' -00:29:03 v #28443 > > ) -00:29:03 v #28444 > > -00:29:03 v #28445 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:03 v #28446 > > │ ### path -00:29:03 v #28447 > > -00:29:03 v #28448 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:03 v #28449 > > nominal path = -00:29:03 v #28450 > > `( -00:29:03 v #28451 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:29:03 v #28452 > > Fable.Core.Emit(\"std::path::Path\")>]]\n#endif\ntype std_path_Path = class end" -00:29:03 v #28453 > > $'' : $'std_path_Path' -00:29:03 v #28454 > > ) -00:29:03 v #28455 > > -00:29:03 v #28456 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:03 v #28457 > > │ ### path_buf -00:29:03 v #28458 > > -00:29:03 v #28459 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:03 v #28460 > > nominal path_buf = -00:29:03 v #28461 > > `( -00:29:03 v #28462 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:29:03 v #28463 > > Fable.Core.Emit(\"std::path::PathBuf\")>]]\ntype std_path_PathBuf = class -00:29:03 v #28464 > > end\n#else\ntype std_path_PathBuf = string\n#endif\n" -00:29:03 v #28465 > > $'' : $'std_path_PathBuf' -00:29:03 v #28466 > > ) -00:29:04 v #28467 > > -00:29:04 v #28468 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:04 v #28469 > > │ ### new_path_buf -00:29:04 v #28470 > > -00:29:04 v #28471 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:04 v #28472 > > inl new_path_buf (path : sm'.std_string) : path_buf = -00:29:04 v #28473 > > run_target function -00:29:04 v #28474 > > | Rust _ => fun () => !\\(path, $'"std::path::PathBuf::from($0)"') -00:29:04 v #28475 > > | _ => fun () => path |> unbox -00:29:04 v #28476 > > -00:29:04 v #28477 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:04 v #28478 > > │ ### path_buf_from -00:29:04 v #28479 > > -00:29:04 v #28480 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:04 v #28481 > > inl path_buf_from (path : rust.box path) : path_buf = -00:29:04 v #28482 > > !\\(path, $'"std::path::PathBuf::from($0)"') -00:29:05 v #28483 > > -00:29:05 v #28484 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:05 v #28485 > > │ ### path_buf_join -00:29:05 v #28486 > > -00:29:05 v #28487 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:05 v #28488 > > inl path_buf_join (s : string) (path_buf : path_buf) : path_buf = -00:29:05 v #28489 > > !\\((path_buf, s |> sm'.to_std_string), $'"$0.join($1)"') -00:29:05 v #28490 > > -00:29:05 v #28491 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:05 v #28492 > > │ ### path_buf_strip_prefix -00:29:05 v #28493 > > -00:29:05 v #28494 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:05 v #28495 > > inl path_buf_strip_prefix (s : string) (path_buf : path_buf) : path_buf = -00:29:05 v #28496 > > !\\((path_buf, s |> sm'.to_std_string), -00:29:05 v #28497 > > $'"$0.strip_prefix($1).unwrap().to_path_buf()"') -00:29:06 v #28498 > > -00:29:06 v #28499 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:06 v #28500 > > │ ### path_display -00:29:06 v #28501 > > -00:29:06 v #28502 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:06 v #28503 > > inl path_display (path : rust.ref path) : display = -00:29:06 v #28504 > > !\\(path, $'"$0.display()"') -00:29:06 v #28505 > > -00:29:06 v #28506 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:06 v #28507 > > │ ### path_buf_display -00:29:06 v #28508 > > -00:29:06 v #28509 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:06 v #28510 > > inl path_buf_display (path_buf : path_buf) : display = -00:29:06 v #28511 > > run_target_args (fun () => path_buf) function -00:29:06 v #28512 > > | Rust _ => fun path_buf => !\\(path_buf, $'"$0.display()"') -00:29:06 v #28513 > > | _ => fun path_buf => path_buf |> unbox -00:29:07 v #28514 > > -00:29:07 v #28515 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:07 v #28516 > > │ ### path_buf_file_name -00:29:07 v #28517 > > -00:29:07 v #28518 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:07 v #28519 > > inl path_buf_file_name (path : path_buf) : optionm'.option' (rust.ref -00:29:07 v #28520 > > sm'.os_str) = -00:29:07 v #28521 > > !\\(path, $'"$0.file_name()"') -00:29:07 v #28522 > > -00:29:07 v #28523 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:07 v #28524 > > │ ### path_buf_exists -00:29:07 v #28525 > > -00:29:07 v #28526 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:07 v #28527 > > inl path_buf_exists (path_buf : path_buf) : bool = -00:29:07 v #28528 > > !\\(path_buf, $'"$0.exists()"') -00:29:07 v #28529 > > -00:29:07 v #28530 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:07 v #28531 > > │ ### path_buf_is_dir -00:29:07 v #28532 > > -00:29:07 v #28533 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:07 v #28534 > > inl path_buf_is_dir (path_buf : path_buf) : bool = -00:29:07 v #28535 > > !\\(path_buf, $'"$0.is_dir()"') -00:29:08 v #28536 > > -00:29:08 v #28537 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:08 v #28538 > > │ ### path_buf_is_file -00:29:08 v #28539 > > -00:29:08 v #28540 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:08 v #28541 > > inl path_buf_is_file (path_buf : path_buf) : bool = -00:29:08 v #28542 > > !\\(path_buf, $'"$0.is_file()"') -00:29:08 v #28543 > > -00:29:08 v #28544 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:08 v #28545 > > │ ### path_buf_is_symlink -00:29:08 v #28546 > > -00:29:08 v #28547 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:08 v #28548 > > inl path_buf_is_symlink (path_buf : path_buf) : bool = -00:29:08 v #28549 > > !\\(path_buf, $'"$0.is_symlink()"') -00:29:09 v #28550 > > -00:29:09 v #28551 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:09 v #28552 > > │ ### path_buf_parent -00:29:09 v #28553 > > -00:29:09 v #28554 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:09 v #28555 > > inl path_buf_parent (path_buf : path_buf) : optionm'.option' path_buf = -00:29:09 v #28556 > > !\\(path_buf, $'"$0.parent().map(std::path::PathBuf::from)"') -00:29:09 v #28557 > > -00:29:09 v #28558 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:09 v #28559 > > │ ### dir_entry -00:29:09 v #28560 > > -00:29:09 v #28561 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:09 v #28562 > > nominal dir_entry = -00:29:09 v #28563 > > `( -00:29:09 v #28564 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:29:09 v #28565 > > Fable.Core.Emit(\"async_walkdir::DirEntry\")>]]\n#endif\ntype -00:29:09 v #28566 > > async_walkdir_DirEntry = class end" -00:29:09 v #28567 > > $'' : $'async_walkdir_DirEntry' -00:29:09 v #28568 > > ) -00:29:09 v #28569 > > -00:29:09 v #28570 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:09 v #28571 > > │ ### walk_dir -00:29:09 v #28572 > > -00:29:09 v #28573 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:09 v #28574 > > nominal walk_dir = -00:29:09 v #28575 > > `( -00:29:09 v #28576 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:29:09 v #28577 > > Fable.Core.Emit(\"async_walkdir::WalkDir\")>]]\n#endif\ntype -00:29:09 v #28578 > > async_walkdir_WalkDir = class end" -00:29:09 v #28579 > > $'' : $'async_walkdir_WalkDir' -00:29:09 v #28580 > > ) -00:29:10 v #28581 > > -00:29:10 v #28582 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:10 v #28583 > > │ ### async_walkdir_filtering -00:29:10 v #28584 > > -00:29:10 v #28585 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:10 v #28586 > > nominal async_walkdir_filtering = -00:29:10 v #28587 > > `( -00:29:10 v #28588 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:29:10 v #28589 > > Fable.Core.Emit(\"async_walkdir::Filtering\")>]]\n#endif\ntype -00:29:10 v #28590 > > async_walkdir_Filtering = class end" -00:29:10 v #28591 > > $'' : $'async_walkdir_Filtering' -00:29:10 v #28592 > > ) -00:29:10 v #28593 > > -00:29:10 v #28594 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:10 v #28595 > > │ ### filtering -00:29:10 v #28596 > > -00:29:10 v #28597 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:10 v #28598 > > union filtering = -00:29:10 v #28599 > > | Ignore -00:29:10 v #28600 > > | IgnoreDir -00:29:10 v #28601 > > | Continue -00:29:11 v #28602 > > -00:29:11 v #28603 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:11 v #28604 > > │ ### async_walkdir_error -00:29:11 v #28605 > > -00:29:11 v #28606 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:11 v #28607 > > nominal async_walkdir_error = -00:29:11 v #28608 > > `( -00:29:11 v #28609 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:29:11 v #28610 > > Fable.Core.Emit(\"async_walkdir::Error\")>]]\n#endif\ntype async_walkdir_Error = -00:29:11 v #28611 > > class end" -00:29:11 v #28612 > > $'' : $'async_walkdir_Error' -00:29:11 v #28613 > > ) -00:29:11 v #28614 > > -00:29:11 v #28615 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:11 v #28616 > > │ ### new_walk_dir -00:29:11 v #28617 > > -00:29:11 v #28618 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:11 v #28619 > > inl new_walk_dir (dir : string) : walk_dir = -00:29:11 v #28620 > > !\\(dir, $'"async_walkdir::WalkDir::new(&*$0)"') -00:29:11 v #28621 > > // inl walk_dir : walk_dir = walk_dir |> rust.to_mut -00:29:11 v #28622 > > // (!\($'"true; let mut !walk_dir = !walk_dir"') : bool) |> ignore -00:29:12 v #28623 > > -00:29:12 v #28624 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:12 v #28625 > > │ ### walk_dir_filter -00:29:12 v #28626 > > -00:29:12 v #28627 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:12 v #28628 > > inl walk_dir_filter (fn : dir_entry -> async.future_pin_send filtering) -00:29:12 v #28629 > > (walk_dir : walk_dir) : walk_dir = -00:29:12 v #28630 > > inl fn entry = async.new_future_send fun () => -00:29:12 v #28631 > > inl result = fn entry |> async.await_send -00:29:12 v #28632 > > inl filtering : async_walkdir_filtering = -00:29:12 v #28633 > > match result with -00:29:12 v #28634 > > | Ignore => !\($'"async_walkdir::Filtering::Ignore"') -00:29:12 v #28635 > > | IgnoreDir => !\($'"async_walkdir::Filtering::IgnoreDir"') -00:29:12 v #28636 > > | Continue => !\($'"async_walkdir::Filtering::Continue"') -00:29:12 v #28637 > > filtering -00:29:12 v #28638 > > !\\((walk_dir, fn), $'"async_walkdir::WalkDir::filter($0, move |x| $1(x))"') -00:29:12 v #28639 > > -00:29:12 v #28640 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:12 v #28641 > > │ ### file_type -00:29:12 v #28642 > > -00:29:12 v #28643 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:12 v #28644 > > nominal file_type = -00:29:12 v #28645 > > `( -00:29:12 v #28646 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:29:12 v #28647 > > Fable.Core.Emit(\"std::fs::FileType\")>]]\n#endif\ntype std_fs_FileType = class -00:29:12 v #28648 > > end" -00:29:12 v #28649 > > $'' : $'std_fs_FileType' -00:29:12 v #28650 > > ) -00:29:12 v #28651 > > -00:29:12 v #28652 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:12 v #28653 > > │ ### dir_entry_file_type -00:29:12 v #28654 > > -00:29:12 v #28655 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:12 v #28656 > > inl dir_entry_file_type (dir_entry : dir_entry) : async.future_pin_send -00:29:12 v #28657 > > (resultm.result' file_type stream.io_error) = -00:29:12 v #28658 > > inl dir_entry = dir_entry |> rust.emit -00:29:12 v #28659 > > !\($'"Box::pin(async_walkdir::DirEntry::file_type(&!dir_entry))"') -00:29:13 v #28660 > > -00:29:13 v #28661 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:13 v #28662 > > │ ### file_type_is_dir -00:29:13 v #28663 > > -00:29:13 v #28664 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:13 v #28665 > > inl file_type_is_dir (file_type : file_type) : bool = -00:29:13 v #28666 > > !\\(file_type, $'"std::fs::FileType::is_dir(&$0)"') -00:29:13 v #28667 > > -00:29:13 v #28668 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:13 v #28669 > > │ ### file -00:29:13 v #28670 > > -00:29:13 v #28671 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:13 v #28672 > > nominal file = -00:29:13 v #28673 > > `( -00:29:13 v #28674 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:29:13 v #28675 > > Fable.Core.Emit(\"std::fs::File\")>]]\n#endif\ntype std_fs_File = class end" -00:29:13 v #28676 > > $'' : $'std_fs_File' -00:29:13 v #28677 > > ) -00:29:14 v #28678 > > -00:29:14 v #28679 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:14 v #28680 > > │ ### file_open -00:29:14 v #28681 > > -00:29:14 v #28682 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:14 v #28683 > > inl file_open (path : string) : resultm.result' file stream.io_error = -00:29:14 v #28684 > > !\($'"std::fs::File::open(&*!path)"') -00:29:14 v #28685 > > -00:29:14 v #28686 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:14 v #28687 > > │ ### rename -00:29:14 v #28688 > > -00:29:14 v #28689 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:14 v #28690 > > inl rename (to : string) (path : string) : resultm.result' () stream.io_error = -00:29:14 v #28691 > > !\($'"std::fs::rename(&*!path, &*!to)"') -00:29:15 v #28692 > > -00:29:15 v #28693 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:15 v #28694 > > │ ### dir_entry_path -00:29:15 v #28695 > > -00:29:15 v #28696 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:15 v #28697 > > inl dir_entry_path (dir_entry : dir_entry) : path_buf = -00:29:15 v #28698 > > !\\(dir_entry, $'"async_walkdir::DirEntry::path(&$0)"') -00:29:15 v #28699 > > -00:29:15 v #28700 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:15 v #28701 > > │ ### create_dir_all -00:29:15 v #28702 > > -00:29:15 v #28703 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:15 v #28704 > > inl create_dir_all (path : string) : resultm.result' () stream.io_error = -00:29:15 v #28705 > > !\\(path, $'"std::fs::create_dir_all(&*$0)"') -00:29:15 v #28706 > > -00:29:15 v #28707 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:15 v #28708 > > │ ### file_info_link_target -00:29:15 v #28709 > > -00:29:15 v #28710 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:15 v #28711 > > inl file_info_link_target (file_info : file_info) : string = -00:29:15 v #28712 > > run_target function -00:29:15 v #28713 > > | Fsharp (Native) => fun () => -00:29:15 v #28714 > > file_info |> $'_.LinkTarget' -00:29:15 v #28715 > > | _ => fun () => null () -00:29:16 v #28716 > > -00:29:16 v #28717 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:16 v #28718 > > │ ### read -00:29:16 v #28719 > > -00:29:16 v #28720 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:16 v #28721 > > inl read (path : string) : resultm.result' (am'.vec u8) stream.io_error = -00:29:16 v #28722 > > !\\(path, $'"std::fs::read(&*$0)"') -00:29:16 v #28723 > > -00:29:16 v #28724 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:16 v #28725 > > │ ## typescript -00:29:16 v #28726 > > -00:29:16 v #28727 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:16 v #28728 > > │ ### ts_path_join -00:29:16 v #28729 > > -00:29:16 v #28730 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:16 v #28731 > > inl ts_path_join (b : string) (a : string) : string = -00:29:16 v #28732 > > open typescript_operators -00:29:16 v #28733 > > global "type IPathJoin = abstract join: [[<System.ParamArray>]] paths: -00:29:16 v #28734 > > string[[]] -> string" -00:29:16 v #28735 > > inl path : $'IPathJoin' = typescript.import_all "path" -00:29:16 v #28736 > > !\\((a, b), $'"!path.join($0, $1)"') -00:29:17 v #28737 > > -00:29:17 v #28738 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:17 v #28739 > > │ ## file_system -00:29:17 v #28740 > > -00:29:17 v #28741 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:17 v #28742 > > │ ### (< />) -00:29:17 v #28743 > > -00:29:17 v #28744 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:17 v #28745 > > let (</>) (a : string) (b : string) : string = -00:29:17 v #28746 > > run_target_args (fun () => a, b) function -00:29:17 v #28747 > > | Rust (Contract) => fun _ => null () -00:29:17 v #28748 > > | Rust (Native) => fun a, b => -00:29:17 v #28749 > > a -00:29:17 v #28750 > > |> sm'.to_std_string -00:29:17 v #28751 > > |> new_path_buf -00:29:17 v #28752 > > |> path_buf_join b -00:29:17 v #28753 > > |> path_buf_display -00:29:17 v #28754 > > |> sm'.format' -00:29:17 v #28755 > > |> sm'.from_std_string -00:29:17 v #28756 > > | TypeScript (Native) => fun a, b => -00:29:17 v #28757 > > a |> ts_path_join b -00:29:17 v #28758 > > | Fsharp (Native) => fun a, b => -00:29:17 v #28759 > > $'System.IO.Path.Combine (!a, !b)' -00:29:17 v #28760 > > | target => fun a, b => failwith $'$"file_system.(</>) / target: -00:29:17 v #28761 > > {!target} / a: {!a} / b: {!b}"' -00:29:17 v #28762 > > -00:29:17 v #28763 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:17 v #28764 > > │ ### get_temp_path -00:29:17 v #28765 > > -00:29:17 v #28766 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:17 v #28767 > > let get_temp_path () : string = -00:29:17 v #28768 > > run_target function -00:29:17 v #28769 > > | Rust (Contract) => fun () => null () -00:29:17 v #28770 > > | Rust (Native) => fun () => -00:29:17 v #28771 > > !\($'"std::env::temp_dir()"') -00:29:17 v #28772 > > |> path_buf_display -00:29:17 v #28773 > > |> sm'.format' -00:29:17 v #28774 > > |> sm'.from_std_string -00:29:17 v #28775 > > | Fsharp (Native) => fun () => -00:29:17 v #28776 > > $'System.IO.Path.GetTempPath' () -00:29:17 v #28777 > > | target => fun () => failwith $'$"file_system.get_temp_path / target: -00:29:17 v #28778 > > {!target}"' -00:29:18 v #28779 > > -00:29:18 v #28780 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:18 v #28781 > > │ ### get_file_name -00:29:18 v #28782 > > -00:29:18 v #28783 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:18 v #28784 > > let get_file_name (path : string) : string = -00:29:18 v #28785 > > run_target_args' path function -00:29:18 v #28786 > > | Fsharp (Native) => fun path => -00:29:18 v #28787 > > path |> $'System.IO.Path.GetFileName' -00:29:18 v #28788 > > | Rust (Native) => fun path => -00:29:18 v #28789 > > path -00:29:18 v #28790 > > |> sm'.to_std_string -00:29:18 v #28791 > > |> new_path_buf -00:29:18 v #28792 > > |> path_buf_file_name -00:29:18 v #28793 > > |> optionm'.map' sm'.from_os_str_ref -00:29:18 v #28794 > > |> optionm'.unbox -00:29:18 v #28795 > > |> optionm'.default_value "" -00:29:18 v #28796 > > | Rust (Contract) => fun _ => null () -00:29:18 v #28797 > > | target => fun path => failwith $'$"file_system.get_file_name / target: -00:29:18 v #28798 > > {!target} / path: {!path}"' -00:29:18 v #28799 > > -00:29:18 v #28800 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:18 v #28801 > > │ ### get_file_name_without_extension -00:29:18 v #28802 > > -00:29:18 v #28803 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:18 v #28804 > > let get_file_name_without_extension (path : string) : string = -00:29:18 v #28805 > > run_target_args' path function -00:29:18 v #28806 > > | Rust (Contract) => fun _ => null () -00:29:18 v #28807 > > | Rust (Native) => fun path => -00:29:18 v #28808 > > inl path_buf = path |> sm'.to_std_string |> new_path_buf -00:29:18 v #28809 > > inl file_stem = !\\(path_buf, $'"$0.file_stem()"') -00:29:18 v #28810 > > match file_stem |> optionm'.map' sm'.from_os_str_ref |> -00:29:18 v #28811 > > optionm'.unbox with -00:29:18 v #28812 > > | Some file_stem => file_stem -00:29:18 v #28813 > > | None => "" -00:29:18 v #28814 > > | _ => fun path => -00:29:18 v #28815 > > path |> $'System.IO.Path.GetFileNameWithoutExtension' -00:29:19 v #28816 > > -00:29:19 v #28817 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:19 v #28818 > > │ ### get_directory_name -00:29:19 v #28819 > > -00:29:19 v #28820 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:19 v #28821 > > let get_directory_name (path : string) : string = -00:29:19 v #28822 > > run_target_args' path function -00:29:19 v #28823 > > | Fsharp _ => fun path => -00:29:19 v #28824 > > path |> $'System.IO.Path.GetDirectoryName' -00:29:19 v #28825 > > | Rust (Native) => fun path => -00:29:19 v #28826 > > path -00:29:19 v #28827 > > |> sm'.to_std_string -00:29:19 v #28828 > > |> new_path_buf -00:29:19 v #28829 > > |> path_buf_file_name -00:29:19 v #28830 > > |> optionm'.map' sm'.from_os_str_ref -00:29:19 v #28831 > > |> optionm'.unbox -00:29:19 v #28832 > > |> optionm'.default_value "" -00:29:19 v #28833 > > | _ => fun _ => null () -00:29:19 v #28834 > > -00:29:19 v #28835 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:19 v #28836 > > │ ### get_extension -00:29:19 v #28837 > > -00:29:19 v #28838 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:19 v #28839 > > let get_extension (path : string) : string = -00:29:19 v #28840 > > run_target_args' path function -00:29:19 v #28841 > > | Rust (Contract) => fun _ => null () -00:29:19 v #28842 > > | Rust (Native) => fun path => -00:29:19 v #28843 > > inl path_buf = path |> sm'.to_std_string |> new_path_buf -00:29:19 v #28844 > > !\\(path_buf, $'"$0.extension()"') -00:29:19 v #28845 > > |> optionm'.unwrap -00:29:19 v #28846 > > |> sm'.from_os_str_ref -00:29:19 v #28847 > > | _ => fun path => -00:29:19 v #28848 > > path |> $'System.IO.Path.GetExtension' -00:29:19 v #28849 > > -00:29:19 v #28850 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:19 v #28851 > > │ ### directory_separator_char -00:29:19 v #28852 > > -00:29:19 v #28853 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:19 v #28854 > > let directory_separator_char () : char = -00:29:19 v #28855 > > run_target function -00:29:19 v #28856 > > | Rust (Native) => fun () => !\($'"std::path::MAIN_SEPARATOR"') -00:29:19 v #28857 > > | _ => fun () => $'System.IO.Path.DirectorySeparatorChar' -00:29:20 v #28858 > > -00:29:20 v #28859 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:20 v #28860 > > │ ### get_current_directory -00:29:20 v #28861 > > -00:29:20 v #28862 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:20 v #28863 > > let get_current_directory () : string = -00:29:20 v #28864 > > run_target function -00:29:20 v #28865 > > | Rust (Contract | Wasm) => fun () => null () -00:29:20 v #28866 > > | Rust (Native) => fun () => -00:29:20 v #28867 > > inl current_dir = !\($'"std::env::current_dir()"') : resultm.result' -00:29:20 v #28868 > > path_buf stream.io_error -00:29:20 v #28869 > > current_dir -00:29:20 v #28870 > > |> resultm.unwrap' -00:29:20 v #28871 > > |> path_buf_display -00:29:20 v #28872 > > |> sm'.format' -00:29:20 v #28873 > > |> sm'.from_std_string -00:29:20 v #28874 > > | Fsharp (Native) => fun () => -00:29:20 v #28875 > > $'System.IO.Directory.GetCurrentDirectory' () -00:29:20 v #28876 > > | _ => fun () => null () -00:29:20 v #28877 > > -00:29:20 v #28878 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:20 v #28879 > > //// test -00:29:20 v #28880 > > -00:29:20 v #28881 > > get_current_directory () -00:29:20 v #28882 > > |> _assert_contains (directory_separator_char ()) -00:29:21 v #28883 > > -00:29:21 v #28884 > > ── [ 743.22ms - stdout ] ─────────────────────────────────────────────────────── -00:29:21 v #28885 > > │ __assert_contains / actual: "C:\home\git\polyglot\lib\spiral" -00:29:21 v #28886 > > / expected: '\\' -00:29:21 v #28887 > > │ -00:29:21 v #28888 > > -00:29:21 v #28889 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:21 v #28890 > > │ ### directory_exists -00:29:21 v #28891 > > -00:29:21 v #28892 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:21 v #28893 > > let directory_exists (path : string) : bool = -00:29:21 v #28894 > > run_target_args' path function -00:29:21 v #28895 > > | Fsharp (Native) => fun path => -00:29:21 v #28896 > > path |> $'System.IO.Directory.Exists' -00:29:21 v #28897 > > | Rust (Native) => fun path => -00:29:21 v #28898 > > inl path = path |> sm'.to_std_string |> new_path_buf -00:29:21 v #28899 > > path_buf_exists path && path_buf_is_dir path -00:29:21 v #28900 > > | TypeScript (Native) => fun path => -00:29:21 v #28901 > > global "type IFsExistsSync = abstract existsSync: path: string -> -00:29:21 v #28902 > > bool" -00:29:21 v #28903 > > open typescript_operators -00:29:21 v #28904 > > inl fs : $'IFsExistsSync' = typescript.import_all "fs" -00:29:21 v #28905 > > !\\((fs, path), $'"$0.existsSync($1)"') -00:29:21 v #28906 > > | _ => fun _ => null () -00:29:21 v #28907 > > -00:29:21 v #28908 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:21 v #28909 > > │ ### directory_get_parent -00:29:21 v #28910 > > -00:29:21 v #28911 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:21 v #28912 > > let directory_get_parent (path : string) : optionm'.option' string = -00:29:21 v #28913 > > run_target_args' path function -00:29:21 v #28914 > > | Fsharp (Native) => fun path => -00:29:21 v #28915 > > inl parent : directory_info = path |> -00:29:21 v #28916 > > $'System.IO.Directory.GetParent' -00:29:21 v #28917 > > if parent =. null () -00:29:21 v #28918 > > then None -00:29:21 v #28919 > > else parent |> directory_info_full_name |> Some -00:29:21 v #28920 > > |> optionm'.box -00:29:21 v #28921 > > | Rust (Native) => fun path => -00:29:21 v #28922 > > inl path_buf = path |> sm'.to_std_string |> new_path_buf -00:29:21 v #28923 > > inl parent = path_buf |> path_buf_parent -00:29:21 v #28924 > > parent -00:29:21 v #28925 > > |> optionm'.map' (path_buf_display >> sm'.format' >> -00:29:21 v #28926 > > sm'.from_std_string) -00:29:21 v #28927 > > | TypeScript _ => fun path => -00:29:21 v #28928 > > open typescript_operators -00:29:21 v #28929 > > global "type IPathDirname = abstract dirname: path: string -> -00:29:21 v #28930 > > string" -00:29:21 v #28931 > > inl fs : $'IPathDirname' = typescript.import_all "path" -00:29:21 v #28932 > > !\\(path, $'"!fs.dirname($0)"') |> Some |> optionm'.box -00:29:21 v #28933 > > | _ => fun _ => null () -00:29:22 v #28934 > > -00:29:22 v #28935 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:22 v #28936 > > │ ### create_temp_path' -00:29:22 v #28937 > > -00:29:22 v #28938 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:22 v #28939 > > let create_temp_path' (guid : guid.guid) = -00:29:22 v #28940 > > run_target_args' guid function -00:29:22 v #28941 > > | Rust (Contract) => fun _ => null () -00:29:22 v #28942 > > | _ => fun guid => -00:29:22 v #28943 > > get_temp_path () -00:29:22 v #28944 > > </> join "!create_temp_path_" -00:29:22 v #28945 > > </> (env.get_entry_assembly_name ()) -00:29:22 v #28946 > > </> (guid |> sm'.obj_to_string) -00:29:22 v #28947 > > -00:29:22 v #28948 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:22 v #28949 > > //// test -00:29:22 v #28950 > > ///! fsharp -00:29:22 v #28951 > > ///! rust -d chrono -00:29:22 v #28952 > > -00:29:22 v #28953 > > guid.hash_guid "" -00:29:22 v #28954 > > |> create_temp_path' -00:29:22 v #28955 > > |> _assert_contains (directory_separator_char ()) -00:29:26 v #28956 > > -00:29:26 v #28957 > > ── [ 3.22s - return value ] ──────────────────────────────────────────────────── -00:29:26 v #28958 > > │ .rs output (rust -d chrono): -00:29:26 v #28959 > > │ __assert_contains / actual: -00:29:26 v #28960 > > "C:\Users\i574n\AppData\Local\Temp\!create_temp_path_\spiral_bd39a664557ebcd6717 -00:29:26 v #28961 > > 2c1052565829327289b525c6e186e3d1e134a40dd245b\00000000-0000-0000-0000-0000000000 -00:29:26 v #28962 > > 00" / expected: '\\' -00:29:26 v #28963 > > │ -00:29:26 v #28964 > > │ -00:29:26 v #28965 > > -00:29:26 v #28966 > > ── [ 3.22s - stdout ] ────────────────────────────────────────────────────────── -00:29:26 v #28967 > > │ .fsx output: -00:29:26 v #28968 > > │ __assert_contains / actual: -00:29:26 v #28969 > > "C:\Users\i574n\AppData\Local\Temp\!create_temp_path_\dotnet-repl\00000000-0000- -00:29:26 v #28970 > > 0000-0000-000000000000" / expected: '\\' -00:29:26 v #28971 > > │ -00:29:26 v #28972 > > -00:29:26 v #28973 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:26 v #28974 > > │ ### create_temp_path -00:29:26 v #28975 > > -00:29:26 v #28976 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:26 v #28977 > > let create_temp_path () = -00:29:26 v #28978 > > run_target function -00:29:26 v #28979 > > | Rust (Contract) => fun () => null () -00:29:26 v #28980 > > | _ => fun () => -00:29:26 v #28981 > > date_time.now () -00:29:26 v #28982 > > |> date_time.new_guid_from_date_time -00:29:26 v #28983 > > |> create_temp_path' -00:29:26 v #28984 > > -00:29:26 v #28985 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:26 v #28986 > > │ ### file_copy -00:29:26 v #28987 > > -00:29:26 v #28988 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:26 v #28989 > > let file_copy (new_path : string) (old_path : string) : () = -00:29:26 v #28990 > > run_target_args' (old_path, new_path) function -00:29:26 v #28991 > > | Fsharp (Native) => fun old_path, new_path => -00:29:26 v #28992 > > $'System.IO.File.Copy (!old_path, !new_path, true)' -00:29:26 v #28993 > > | Rust (Native) => fun old_path, new_path => -00:29:26 v #28994 > > inl result : _ _ stream.io_error = !\\((old_path, new_path), -00:29:26 v #28995 > > $'"std::fs::copy(&*$0, &*$1)"') -00:29:26 v #28996 > > match result |> resultm.map_error' sm'.format' |> resultm.unbox with -00:29:26 v #28997 > > | Ok (result : u64) => -00:29:26 v #28998 > > trace Debug -00:29:26 v #28999 > > fun () => "file_system.file_copy" -00:29:26 v #29000 > > fun () => { old_path new_path result } -00:29:26 v #29001 > > | Error error => -00:29:26 v #29002 > > trace Warning -00:29:26 v #29003 > > fun () => "file_system.file_copy" -00:29:26 v #29004 > > fun () => { old_path new_path error } -00:29:26 v #29005 > > | _ => fun _ => () -00:29:27 v #29006 > > -00:29:27 v #29007 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:27 v #29008 > > │ ### file_exists -00:29:27 v #29009 > > -00:29:27 v #29010 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:27 v #29011 > > let file_exists (path : string) : bool = -00:29:27 v #29012 > > run_target_args' path function -00:29:27 v #29013 > > | Fsharp (Native) => fun path => -00:29:27 v #29014 > > path |> $'System.IO.File.Exists' -00:29:27 v #29015 > > | Rust (Native) => fun path => -00:29:27 v #29016 > > inl path_buf = path |> sm'.to_std_string |> new_path_buf -00:29:27 v #29017 > > path_buf_exists path_buf && path_buf_is_file path_buf -00:29:27 v #29018 > > | TypeScript (Native) => fun path => -00:29:27 v #29019 > > open typescript_operators -00:29:27 v #29020 > > global "type IFsExistsSync = abstract existsSync: path: string -> -00:29:27 v #29021 > > bool" -00:29:27 v #29022 > > inl fs : $'IFsExistsSync' = typescript.import_all "fs" -00:29:27 v #29023 > > !\\((fs, path), $'"$0.existsSync($1)"') -00:29:27 v #29024 > > | _ => fun _ => null () -00:29:27 v #29025 > > -00:29:27 v #29026 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:27 v #29027 > > │ ### directory_delete -00:29:27 v #29028 > > -00:29:27 v #29029 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:27 v #29030 > > let directory_delete recursive (path : string) : () = -00:29:27 v #29031 > > run_target_args' (path, recursive) function -00:29:27 v #29032 > > | Fsharp (Native) => fun path, recursive => -00:29:27 v #29033 > > $'System.IO.Directory.Delete (!path, !recursive)' -00:29:27 v #29034 > > | Rust (Native) => fun path, recursive => -00:29:27 v #29035 > > if path |> directory_exists then -00:29:27 v #29036 > > if recursive -00:29:27 v #29037 > > then !\\(path, $'"std::fs::remove_dir_all(&*$0).unwrap()"') -00:29:27 v #29038 > > else !\\(path, $'"std::fs::remove_dir(&*$0).unwrap()"') -00:29:27 v #29039 > > | _ => fun _ => () -00:29:27 v #29040 > > -00:29:27 v #29041 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:27 v #29042 > > │ ### write_all_text -00:29:27 v #29043 > > -00:29:27 v #29044 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:27 v #29045 > > inl write_all_text (path : string) (text : string) : () = -00:29:27 v #29046 > > run_target_args' (path, text) function -00:29:27 v #29047 > > | Fsharp (Native) => fun path, text => -00:29:27 v #29048 > > $'System.IO.File.WriteAllText (!path, !text)' -00:29:27 v #29049 > > | Rust (Native) => fun path, text => -00:29:27 v #29050 > > !\\((path, text), $'"std::fs::write(&*$0, &*$1).unwrap()"') -00:29:27 v #29051 > > | _ => fun _ => () -00:29:28 v #29052 > > -00:29:28 v #29053 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:28 v #29054 > > │ ### read_all_bytes -00:29:28 v #29055 > > -00:29:28 v #29056 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:28 v #29057 > > inl read_all_bytes (path : string) : am'.vec u8 = -00:29:28 v #29058 > > run_target function -00:29:28 v #29059 > > | Fsharp (Native) => fun () => -00:29:28 v #29060 > > $'!path |> System.IO.File.ReadAllBytes' -00:29:28 v #29061 > > |> am'.to_vec -00:29:28 v #29062 > > | Rust (Native) => fun () => -00:29:28 v #29063 > > path |> read |> resultm.unwrap' -00:29:28 v #29064 > > | _ => fun () => null () -00:29:28 v #29065 > > -00:29:28 v #29066 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:28 v #29067 > > │ ### read_all_text -00:29:28 v #29068 > > -00:29:28 v #29069 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:28 v #29070 > > inl read_all_text (path : string) : string = -00:29:28 v #29071 > > run_target function -00:29:28 v #29072 > > | Fsharp (Native) => fun () => -00:29:28 v #29073 > > $'!path |> System.IO.File.ReadAllText' -00:29:28 v #29074 > > | Rust (Native) => fun () => -00:29:28 v #29075 > > path -00:29:28 v #29076 > > |> read_all_bytes -00:29:28 v #29077 > > |> sm'.string_from_utf8 -00:29:28 v #29078 > > |> resultm.unwrap' -00:29:28 v #29079 > > |> sm'.from_std_string -00:29:28 v #29080 > > | _ => fun () => null () -00:29:29 v #29081 > > -00:29:29 v #29082 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:29 v #29083 > > │ ### directory_create_symbolic_link -00:29:29 v #29084 > > -00:29:29 v #29085 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:29 v #29086 > > inl directory_create_symbolic_link (target : string) (path : string) : () = -00:29:29 v #29087 > > run_target function -00:29:29 v #29088 > > | Fsharp (Native) => fun () => -00:29:29 v #29089 > > ($'System.IO.Directory.CreateSymbolicLink (!path, !target)' : -00:29:29 v #29090 > > file_system_info) -00:29:29 v #29091 > > |> ignore -00:29:29 v #29092 > > | Rust (Native) => fun () => -00:29:29 v #29093 > > (!\\((target, path), $'"true; #[[cfg(windows)]] -00:29:29 v #29094 > > std::os::windows::fs::symlink_dir(&*$0, &*$1).unwrap()"') : bool) |> ignore -00:29:29 v #29095 > > (!\\((target, path), $'"true; #[[cfg(unix)]] -00:29:29 v #29096 > > std::os::unix::fs::symlink(&*$0, &*$1).unwrap()"') : bool) |> ignore -00:29:29 v #29097 > > | _ => fun () => () -00:29:29 v #29098 > > -00:29:29 v #29099 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:29 v #29100 > > │ ### file_create_symbolic_link -00:29:29 v #29101 > > -00:29:29 v #29102 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:29 v #29103 > > inl file_create_symbolic_link (target : string) (path : string) : () = -00:29:29 v #29104 > > run_target function -00:29:29 v #29105 > > | Fsharp (Native) => fun () => -00:29:29 v #29106 > > ($'System.IO.File.CreateSymbolicLink (!path, !target)' : -00:29:29 v #29107 > > file_system_info) -00:29:29 v #29108 > > |> ignore -00:29:29 v #29109 > > | Rust (Native) => fun () => -00:29:29 v #29110 > > (!\\((target, path), $'"true; #[[cfg(windows)]] -00:29:29 v #29111 > > std::os::windows::fs::symlink_file(&*$0, &*$1).unwrap()"') : bool) |> ignore -00:29:29 v #29112 > > (!\\((target, path), $'"true; #[[cfg(unix)]] -00:29:29 v #29113 > > std::os::unix::fs::symlink(&*$0, &*$1).unwrap()"') : bool) |> ignore -00:29:29 v #29114 > > | _ => fun () => () -00:29:30 v #29115 > > -00:29:30 v #29116 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:30 v #29117 > > │ ### file_type -00:29:30 v #29118 > > -00:29:30 v #29119 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:30 v #29120 > > union file_type = -00:29:30 v #29121 > > | File -00:29:30 v #29122 > > | Directory -00:29:30 v #29123 > > -00:29:30 v #29124 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:30 v #29125 > > │ ### find_parent -00:29:30 v #29126 > > -00:29:30 v #29127 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:30 v #29128 > > inl find_parent file_type name root_dir = -00:29:30 v #29129 > > inl is_file = file_type = File -00:29:30 v #29130 > > let rec loop dir = -00:29:30 v #29131 > > if dir </> name |> (if is_file then file_exists else directory_exists) -00:29:30 v #29132 > > then dir |> Ok -00:29:30 v #29133 > > else -00:29:30 v #29134 > > inl result = dir |> directory_get_parent -00:29:30 v #29135 > > match result |> optionm'.unbox with -00:29:30 v #29136 > > | Some parent => parent |> loop -00:29:30 v #29137 > > | None => ($'$"""No parent for {if !is_file then "file" else "dir"} -00:29:30 v #29138 > > \'{!name}\' at \'{!root_dir}\' (until \'{!dir}\')"""' : string) |> Error -00:29:30 v #29139 > > loop root_dir -00:29:30 v #29140 > > -00:29:30 v #29141 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:30 v #29142 > > //// test -00:29:30 v #29143 > > -00:29:30 v #29144 > > a ;[[ Directory, ".paket"; File, "paket.dependencies" ]] -00:29:30 v #29145 > > |> am.map fun file_type, file => -00:29:30 v #29146 > > get_source_directory () -00:29:30 v #29147 > > |> find_parent file_type file -00:29:30 v #29148 > > |> resultm.get -00:29:30 v #29149 > > |> directory_info -00:29:30 v #29150 > > |> directory_info_name -00:29:30 v #29151 > > |> am'.distinct -00:29:30 v #29152 > > |> fun (a x : _ int _) => x -00:29:30 v #29153 > > |> _assert_eq' ;[[ "polyglot" ]] -00:29:31 v #29154 > > -00:29:31 v #29155 > > ── [ 674.46ms - stdout ] ─────────────────────────────────────────────────────── -00:29:31 v #29156 > > │ __assert_eq' / actual: [|"polyglot"|] / expected: -00:29:31 v #29157 > > [|"polyglot"|] -00:29:31 v #29158 > > │ -00:29:31 v #29159 > > -00:29:31 v #29160 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:31 v #29161 > > //// test -00:29:31 v #29162 > > ///! rust -00:29:31 v #29163 > > -00:29:31 v #29164 > > a ;[[ Directory, ".paket"; File, "paket.dependencies" ]] -00:29:31 v #29165 > > |> am.map fun file_type, file => -00:29:31 v #29166 > > fun () => -00:29:31 v #29167 > > join -00:29:31 v #29168 > > get_source_directory () -00:29:31 v #29169 > > |> find_parent file_type file -00:29:31 v #29170 > > |> resultm.get -00:29:31 v #29171 > > |> sm'.to_std_string -00:29:31 v #29172 > > |> new_path_buf -00:29:31 v #29173 > > |> path_buf_file_name -00:29:31 v #29174 > > |> optionm'.try' -00:29:31 v #29175 > > |> sm'.from_os_str_ref -00:29:31 v #29176 > > |> Some -00:29:31 v #29177 > > |> optionm'.box -00:29:31 v #29178 > > |> fun x => x () |> optionm'.unbox -00:29:31 v #29179 > > |> optionm'.default_value "" -00:29:31 v #29180 > > |> am'.distinct -00:29:31 v #29181 > > |> fun result => -00:29:31 v #29182 > > result |> am'.length |> _assert_eq 1i32 -00:29:31 v #29183 > > index result 0i32 |> _assert_eq "polyglot" -00:29:34 v #29184 > > -00:29:34 v #29185 > > ── [ 2.77s - return value ] ──────────────────────────────────────────────────── -00:29:34 v #29186 > > │ __assert_eq / actual: 1 / expected: 1 -00:29:34 v #29187 > > │ __assert_eq / actual: "polyglot" / expected: "polyglot" -00:29:34 v #29188 > > │ -00:29:34 v #29189 > > -00:29:34 v #29190 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:34 v #29191 > > │ ### get_workspace_root -00:29:34 v #29192 > > -00:29:34 v #29193 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:34 v #29194 > > inl get_workspace_root () = -00:29:34 v #29195 > > (None, [[ get_source_directory; get_current_directory ]]) -00:29:34 v #29196 > > ||> listm.fold fun acc path => -00:29:34 v #29197 > > match acc with -00:29:34 v #29198 > > | Some path => Some path -00:29:34 v #29199 > > | None => -00:29:34 v #29200 > > path () -00:29:34 v #29201 > > |> find_parent Directory ("polyglot" </> "workspace") -00:29:34 v #29202 > > |> function -00:29:34 v #29203 > > | Ok path => Some path -00:29:34 v #29204 > > | Error error => -00:29:34 v #29205 > > trace Warning -00:29:34 v #29206 > > fun () => "file_system.get_workspace_root" -00:29:34 v #29207 > > fun () => { error } -00:29:34 v #29208 > > None -00:29:34 v #29209 > > |> optionm.value -00:29:34 v #29210 > > |> fun root => root </> "polyglot" -00:29:34 v #29211 > > -00:29:34 v #29212 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:34 v #29213 > > │ ### get_workspace_root_external -00:29:34 v #29214 > > -00:29:34 v #29215 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:34 v #29216 > > inl get_workspace_root_external () = -00:29:34 v #29217 > > inl workspace_root = get_workspace_root () -00:29:34 v #29218 > > inl current_dir = get_current_directory () |> sm'.to_lower -00:29:34 v #29219 > > inl workspace_root = workspace_root |> sm'.to_lower -00:29:34 v #29220 > > if current_dir |> sm'.starts_with workspace_root -00:29:34 v #29221 > > then Error workspace_root -00:29:34 v #29222 > > else Ok workspace_root -00:29:35 v #29223 > > -00:29:35 v #29224 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:35 v #29225 > > //// test -00:29:35 v #29226 > > -00:29:35 v #29227 > > get_workspace_root_external () -00:29:35 v #29228 > > |> resultm.unwrap_err -00:29:35 v #29229 > > |> get_file_name -00:29:35 v #29230 > > |> _assert_eq "polyglot" -00:29:36 v #29231 > > -00:29:36 v #29232 > > ── [ 1.06s - stdout ] ────────────────────────────────────────────────────────── -00:29:36 v #29233 > > │ __assert_eq / actual: "polyglot" / expected: "polyglot" -00:29:36 v #29234 > > │ -00:29:36 v #29235 > > -00:29:36 v #29236 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:36 v #29237 > > │ ### file_delete -00:29:36 v #29238 > > -00:29:36 v #29239 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:36 v #29240 > > inl file_delete (path : string) : () = -00:29:36 v #29241 > > run_target function -00:29:36 v #29242 > > | Fsharp (Native) => fun () => -00:29:36 v #29243 > > path |> $'System.IO.File.Delete' -00:29:36 v #29244 > > | Rust (Native) => fun () => -00:29:36 v #29245 > > inl result : resultm.result' () stream.io_error = -00:29:36 v #29246 > > !\\(path, $'"std::fs::remove_file(&*$0)"') -00:29:36 v #29247 > > match result |> resultm.map_error' sm'.format |> resultm.unbox with -00:29:36 v #29248 > > | Ok () => () -00:29:36 v #29249 > > | Error error' => trace Critical (fun () => -00:29:36 v #29250 > > "file_system.file_delete") fun () => { error' } -00:29:36 v #29251 > > | _ => fun () => () -00:29:36 v #29252 > > -00:29:36 v #29253 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:36 v #29254 > > │ ### read_link -00:29:36 v #29255 > > -00:29:36 v #29256 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:36 v #29257 > > let read_link (path : string) : resultm.result' path_buf stream.io_error = -00:29:36 v #29258 > > let run loop n error path' = -00:29:36 v #29259 > > inl name = path' |> get_file_name -00:29:36 v #29260 > > inl parent = path' |> directory_get_parent |> optionm'.unbox -00:29:36 v #29261 > > inl error'' = error |> sm'.format -00:29:36 v #29262 > > match parent with -00:29:36 v #29263 > > | _ when n >= 11 => -00:29:36 v #29264 > > ($'$"file_system.read_link / "' : string) -00:29:36 v #29265 > > +. $'$"path: {!path} / n: {!n} / path\': {!path'} / name: {!name}"' -00:29:36 v #29266 > > |> stream.new_io_error -00:29:36 v #29267 > > |> resultm.err -00:29:36 v #29268 > > | Some parent when path' <>. "" => -00:29:36 v #29269 > > match loop (n + 1) parent |> resultm.map_error' sm'.format |> -00:29:36 v #29270 > > resultm.unbox with -00:29:36 v #29271 > > | Ok parent' => -00:29:36 v #29272 > > (parent' |> path_buf_display |> convert) </> name -00:29:36 v #29273 > > |> sm'.to_std_string -00:29:36 v #29274 > > |> new_path_buf -00:29:36 v #29275 > > |> resultm.ok'' -00:29:36 v #29276 > > | Error error' => -00:29:36 v #29277 > > ($'$"file_system.read_link / "' : string) -00:29:36 v #29278 > > +. $'$"error\': {!error'} / error: {!error''} / name: {!name}"' -00:29:36 v #29279 > > |> stream.new_io_error -00:29:36 v #29280 > > |> resultm.err -00:29:36 v #29281 > > | _ => -00:29:36 v #29282 > > ($'$"file_system.read_link / run / The file or directory is not a -00:29:36 v #29283 > > reparse point. / "' : string) -00:29:36 v #29284 > > +. $'$"path: {!path} / error: {!error''} / path\': {!path'} / name: -00:29:36 v #29285 > > {!name}"' -00:29:36 v #29286 > > |> stream.new_io_error -00:29:36 v #29287 > > |> resultm.err -00:29:36 v #29288 > > -00:29:36 v #29289 > > run_target function -00:29:36 v #29290 > > | Rust _ => fun () => -00:29:36 v #29291 > > if path |> directory_exists -00:29:36 v #29292 > > then !\\(path, $'"std::fs::read_link(&*$0)"') -00:29:36 v #29293 > > else -00:29:36 v #29294 > > let rec loop n path' = -00:29:36 v #29295 > > run_target function -00:29:36 v #29296 > > | Rust _ => fun () => -00:29:36 v #29297 > > inl result : _ _ stream.io_error = !\\(path', -00:29:36 v #29298 > > $'"std::fs::read_link(&*$0)"') -00:29:36 v #29299 > > inl result = result |> resultm.map_error' sm'.format -00:29:36 v #29300 > > |> resultm.unbox -00:29:36 v #29301 > > match result with -00:29:36 v #29302 > > | Ok x => x |> resultm.ok'' -00:29:36 v #29303 > > | Error error => path' |> run loop n error -00:29:36 v #29304 > > | _ => fun () => null () -00:29:36 v #29305 > > path |> loop 0u8 -00:29:36 v #29306 > > | TypeScript _ => fun () => null () -00:29:36 v #29307 > > | Fsharp _ => fun () => -00:29:36 v #29308 > > let rec loop n path' = -00:29:36 v #29309 > > inl result = -00:29:36 v #29310 > > path' -00:29:36 v #29311 > > |> directory_info -00:29:36 v #29312 > > |> directory_info_attributes -00:29:36 v #29313 > > |> file_attributes_has_flag (file_attributes_reparse_point -00:29:36 v #29314 > > ()) -00:29:36 v #29315 > > if result then -00:29:36 v #29316 > > path' -00:29:36 v #29317 > > |> file_info -00:29:36 v #29318 > > |> file_info_link_target -00:29:36 v #29319 > > |> unbox -00:29:36 v #29320 > > |> resultm.ok'' -00:29:36 v #29321 > > else -00:29:36 v #29322 > > inl error = -00:29:36 v #29323 > > ($'$"file_system.read_link / Fsharp / "' : string) -00:29:36 v #29324 > > +. $'$"The file or directory is not a reparse point. -00:29:36 v #29325 > > "' -00:29:36 v #29326 > > +. $'$"path: {!path} / result: {!result} / path\': -00:29:36 v #29327 > > {!path'} / n: {!n}"' -00:29:36 v #29328 > > |> stream.new_io_error -00:29:36 v #29329 > > path' |> run loop n error -00:29:36 v #29330 > > path |> loop 0u8 -00:29:36 v #29331 > > | _ => fun () => $'Unchecked.defaultof<_>' -00:29:37 v #29332 > > -00:29:37 v #29333 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:37 v #29334 > > │ ### normalize_path -00:29:37 v #29335 > > -00:29:37 v #29336 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:37 v #29337 > > let normalize_path (path : string) : string = -00:29:37 v #29338 > > if path = "" -00:29:37 v #29339 > > then "" -00:29:37 v #29340 > > else -00:29:37 v #29341 > > inl path = -00:29:37 v #29342 > > match path |> read_link |> resultm.ok' |> optionm'.unbox with -00:29:37 v #29343 > > | Some path_buf => -00:29:37 v #29344 > > inl result = -00:29:37 v #29345 > > path_buf -00:29:37 v #29346 > > |> path_buf_display -00:29:37 v #29347 > > |> convert -00:29:37 v #29348 > > if result = "" -00:29:37 v #29349 > > then path -00:29:37 v #29350 > > else result -00:29:37 v #29351 > > | None => path -00:29:37 v #29352 > > if path = "" -00:29:37 v #29353 > > then "" -00:29:37 v #29354 > > else -00:29:37 v #29355 > > inl path = path |> sm'.replace_regex @"^\\\\\?\\" "" -00:29:37 v #29356 > > $'$"{!path.[[0]] |> string |> _.ToLower()}{!path.[[1..]]}"' |> -00:29:37 v #29357 > > sm'.replace "\\" "/" -00:29:37 v #29358 > > -00:29:37 v #29359 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:37 v #29360 > > │ ### get_full_path -00:29:37 v #29361 > > -00:29:37 v #29362 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:37 v #29363 > > let get_full_path (path : string) : string = -00:29:37 v #29364 > > run_target_args (fun () => path) function -00:29:37 v #29365 > > | Fsharp (Native) => fun path => -00:29:37 v #29366 > > path |> $'System.IO.Path.GetFullPath' -00:29:37 v #29367 > > | Rust (Native) => fun path => -00:29:37 v #29368 > > inl path_buf = path |> sm'.to_std_string |> new_path_buf -00:29:37 v #29369 > > if path_buf |> path_buf_exists |> not then -00:29:37 v #29370 > > inl current_dir = get_current_directory () -00:29:37 v #29371 > > current_dir </> path -00:29:37 v #29372 > > |> normalize_path -00:29:37 v #29373 > > |> sm'.split "/" -00:29:37 v #29374 > > |> fun x => -00:29:37 v #29375 > > ((a x : _ i32 _), (0i32, (a ;[[]] : _ i32 _))) -00:29:37 v #29376 > > ||> am.foldBack fun x level, acc => -00:29:37 v #29377 > > match x, level with -00:29:37 v #29378 > > | "..", _ => level + 1, acc -00:29:37 v #29379 > > | ".", _ => level, acc -00:29:37 v #29380 > > | _, 0 when x |> sm'.ends_with ":" => 0, a ;[[ -00:29:37 v #29381 > > $'$"{!current_dir.[[0]]}:"' ]] ++ acc -00:29:37 v #29382 > > | _, 0 => 0, a ;[[ x ]] ++ acc -00:29:37 v #29383 > > | _ => level - 1, acc -00:29:37 v #29384 > > |> snd -00:29:37 v #29385 > > |> seq.of_array' -00:29:37 v #29386 > > |> sm'.concat (directory_separator_char () |> sm'.obj_to_string) -00:29:37 v #29387 > > else -00:29:37 v #29388 > > inl path = !\\(path, $'"std::fs::canonicalize(&*$0)"') : -00:29:37 v #29389 > > resultm.result' path_buf stream.io_error -00:29:37 v #29390 > > path -00:29:37 v #29391 > > |> resultm.unwrap' -00:29:37 v #29392 > > |> path_buf_display -00:29:37 v #29393 > > |> sm'.format' -00:29:37 v #29394 > > |> sm'.from_std_string -00:29:37 v #29395 > > | _ => fun _ => null () -00:29:38 v #29396 > > -00:29:38 v #29397 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:38 v #29398 > > //// test -00:29:38 v #29399 > > -00:29:38 v #29400 > > "." -00:29:38 v #29401 > > |> get_full_path -00:29:38 v #29402 > > |> directory_info -00:29:38 v #29403 > > |> directory_info_name -00:29:38 v #29404 > > |> _assert_eq "spiral" -00:29:39 v #29405 > > -00:29:39 v #29406 > > ── [ 1.02s - stdout ] ────────────────────────────────────────────────────────── -00:29:39 v #29407 > > │ __assert_eq / actual: "spiral" / expected: "spiral" -00:29:39 v #29408 > > │ -00:29:39 v #29409 > > -00:29:39 v #29410 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:39 v #29411 > > //// test -00:29:39 v #29412 > > -00:29:39 v #29413 > > "dir/.././._file" -00:29:39 v #29414 > > |> get_full_path -00:29:39 v #29415 > > |> _assert_eq (get_current_directory () </> "._file") -00:29:40 v #29416 > > -00:29:40 v #29417 > > ── [ 1.13s - stdout ] ────────────────────────────────────────────────────────── -00:29:40 v #29418 > > │ __assert_eq / actual: -00:29:40 v #29419 > > "C:\home\git\polyglot\lib\spiral\._file" / expected: -00:29:40 v #29420 > > "C:\home\git\polyglot\lib\spiral\._file" -00:29:40 v #29421 > > │ -00:29:40 v #29422 > > -00:29:40 v #29423 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:40 v #29424 > > //// test -00:29:40 v #29425 > > ///! rust -d regex -00:29:40 v #29426 > > -00:29:40 v #29427 > > "." -00:29:40 v #29428 > > |> get_full_path -00:29:40 v #29429 > > |> sm'.to_std_string -00:29:40 v #29430 > > |> new_path_buf -00:29:40 v #29431 > > |> path_buf_file_name -00:29:40 v #29432 > > |> optionm'.unwrap -00:29:40 v #29433 > > |> sm'.from_os_str_ref -00:29:40 v #29434 > > |> _assert_eq "spiral" -00:29:44 v #29435 > > -00:29:44 v #29436 > > ── [ 4.27s - return value ] ──────────────────────────────────────────────────── -00:29:44 v #29437 > > │ __assert_eq / actual: "spiral" / expected: "spiral" -00:29:44 v #29438 > > │ -00:29:44 v #29439 > > -00:29:44 v #29440 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:44 v #29441 > > //// test -00:29:44 v #29442 > > ///! rust -d regex -00:29:44 v #29443 > > -00:29:44 v #29444 > > "dir/.././._file" -00:29:44 v #29445 > > |> get_full_path -00:29:44 v #29446 > > |> _assert_eq (get_current_directory () </> "._file") -00:29:47 v #29447 > > -00:29:47 v #29448 > > ── [ 3.10s - return value ] ──────────────────────────────────────────────────── -00:29:47 v #29449 > > │ __assert_eq / actual: -00:29:47 v #29450 > > "C:\home\git\polyglot\lib\spiral\._file" / expected: -00:29:47 v #29451 > > "C:\home\git\polyglot\lib\spiral\._file" -00:29:47 v #29452 > > │ -00:29:47 v #29453 > > -00:29:47 v #29454 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:47 v #29455 > > │ ### standardize_path -00:29:47 v #29456 > > -00:29:47 v #29457 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:47 v #29458 > > let standardize_path path = -00:29:47 v #29459 > > path |> get_full_path |> normalize_path -00:29:48 v #29460 > > -00:29:48 v #29461 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:48 v #29462 > > │ ### absolute_path -00:29:48 v #29463 > > -00:29:48 v #29464 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:48 v #29465 > > let absolute_path path = -00:29:48 v #29466 > > inl current_dir = get_current_directory () -00:29:48 v #29467 > > current_dir </> path |> standardize_path -00:29:48 v #29468 > > -00:29:48 v #29469 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:48 v #29470 > > │ ### new_file_uri -00:29:48 v #29471 > > -00:29:48 v #29472 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:48 v #29473 > > inl new_file_uri (path : string) : string = -00:29:48 v #29474 > > inl path = path |> sm'.trim_start [[ '/' ]] -00:29:48 v #29475 > > $'$"file:///{!path}"' -00:29:49 v #29476 > > -00:29:49 v #29477 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:49 v #29478 > > //// test -00:29:49 v #29479 > > -00:29:49 v #29480 > > @"\\?\C:\test" -00:29:49 v #29481 > > |> normalize_path -00:29:49 v #29482 > > |> new_file_uri -00:29:49 v #29483 > > |> _assert_eq "file:///c:/test" -00:29:50 v #29484 > > -00:29:50 v #29485 > > ── [ 979.41ms - stdout ] ─────────────────────────────────────────────────────── -00:29:50 v #29486 > > │ __assert_eq / actual: "file:///c:/test" / expected: -00:29:50 v #29487 > > "file:///c:/test" -00:29:50 v #29488 > > │ -00:29:50 v #29489 > > -00:29:50 v #29490 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:50 v #29491 > > //// test -00:29:50 v #29492 > > ///! rust -d regex -00:29:50 v #29493 > > -00:29:50 v #29494 > > @"\\?\C:\test" -00:29:50 v #29495 > > |> normalize_path -00:29:50 v #29496 > > |> new_file_uri -00:29:50 v #29497 > > |> _assert_eq "file:///c:/test" -00:29:53 v #29498 > > -00:29:53 v #29499 > > ── [ 3.08s - return value ] ──────────────────────────────────────────────────── -00:29:53 v #29500 > > │ __assert_eq / actual: "file:///c:/test" / expected: -00:29:53 v #29501 > > "file:///c:/test" -00:29:53 v #29502 > > │ -00:29:53 v #29503 > > -00:29:53 v #29504 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:53 v #29505 > > │ ## fsharp -00:29:53 v #29506 > > -00:29:53 v #29507 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:53 v #29508 > > │ ### file_exists_content_async -00:29:53 v #29509 > > -00:29:53 v #29510 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:53 v #29511 > > let file_exists_content_async path content : async.async bool = -00:29:53 v #29512 > > run_target function -00:29:53 v #29513 > > | Fsharp (Native) => fun () => -00:29:53 v #29514 > > fun () => -00:29:53 v #29515 > > fix_condition -00:29:53 v #29516 > > fun () => path |> file_exists |> not -00:29:53 v #29517 > > fun () => false |> return -00:29:53 v #29518 > > fun () => -00:29:53 v #29519 > > inl existing_content = path |> read_all_text_async |> -00:29:53 v #29520 > > async.let' -00:29:53 v #29521 > > content = existing_content |> return -00:29:53 v #29522 > > |> async.new_async_unit -00:29:53 v #29523 > > | _ => fun () => null () -00:29:53 v #29524 > > -00:29:53 v #29525 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:53 v #29526 > > │ ### write_all_text_exists_async -00:29:53 v #29527 > > -00:29:53 v #29528 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:53 v #29529 > > let write_all_text_exists_async path contents = -00:29:53 v #29530 > > fun () => -00:29:53 v #29531 > > inl exists' = contents |> file_exists_content_async path |> async.let' -00:29:53 v #29532 > > if not exists' -00:29:53 v #29533 > > then contents |> write_all_text_async path |> async.do -00:29:53 v #29534 > > |> async.new_async -00:29:54 v #29535 > > -00:29:54 v #29536 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:54 v #29537 > > │ ### delete_directory_async -00:29:54 v #29538 > > -00:29:54 v #29539 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:54 v #29540 > > let delete_directory_async path : _ i64 = -00:29:54 v #29541 > > let rec loop (retry : i64) = -00:29:54 v #29542 > > run_target function -00:29:54 v #29543 > > | Fsharp (Native) => fun () => -00:29:54 v #29544 > > fun () => -00:29:54 v #29545 > > try_unit -00:29:54 v #29546 > > fun () => -00:29:54 v #29547 > > path |> directory_delete true -00:29:54 v #29548 > > retry |> return -00:29:54 v #29549 > > fun ex => -00:29:54 v #29550 > > if retry % 100i64 = 0 then -00:29:54 v #29551 > > trace Debug -00:29:54 v #29552 > > fun () => -00:29:54 v #29553 > > "file_system.delete_directory_async" -00:29:54 v #29554 > > fun () => { -00:29:54 v #29555 > > ex = ex () |> sm'.format_exception -00:29:54 v #29556 > > path = path |> get_file_name -00:29:54 v #29557 > > } -00:29:54 v #29558 > > async.sleep 10i32 |> async.do -00:29:54 v #29559 > > loop (retry + 1) |> async.return_await -00:29:54 v #29560 > > |> async.new_async -00:29:54 v #29561 > > | _ => fun () => null () -00:29:54 v #29562 > > loop 0 -00:29:54 v #29563 > > -00:29:54 v #29564 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:54 v #29565 > > │ ### trace_file -00:29:54 v #29566 > > -00:29:54 v #29567 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:54 v #29568 > > let rec trace_file text = -00:29:54 v #29569 > > run_target function -00:29:54 v #29570 > > | Fsharp (Native) => fun () => -00:29:54 v #29571 > > try_unit -00:29:54 v #29572 > > fun () => -00:29:54 v #29573 > > inl assembly_name = env.get_entry_assembly_name () -00:29:54 v #29574 > > inl guid = date_time.now () |> date_time.new_guid_from_date_time -00:29:54 v #29575 > > inl file_name = $'$"{!assembly_name}_{!guid}.txt"' -00:29:54 v #29576 > > -00:29:54 v #29577 > > inl workspace_root = get_workspace_root () -00:29:54 v #29578 > > inl trace_dir = workspace_root </> "target/trace" -00:29:54 v #29579 > > trace_dir |> create_directory |> ignore -00:29:54 v #29580 > > inl path = trace_dir </> file_name -00:29:54 v #29581 > > text |> write_all_text_async path |> async.run_synchronously -00:29:54 v #29582 > > fun ex => -00:29:54 v #29583 > > inl text = $'$"file_system.trace_file / ex: %A{!ex}"' -00:29:54 v #29584 > > text |> console.write_line -00:29:54 v #29585 > > text |> trace_file -00:29:54 v #29586 > > | _ => fun () => () -00:29:55 v #29587 > > -00:29:55 v #29588 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:55 v #29589 > > //// test -00:29:55 v #29590 > > -00:29:55 v #29591 > > inl get_count dir : i64 = -00:29:55 v #29592 > > inl files = dir |> directory_get_files -00:29:55 v #29593 > > a files |> am'.length -00:29:55 v #29594 > > -00:29:55 v #29595 > > inl trace_dir = get_workspace_root () </> "target/trace" -00:29:55 v #29596 > > trace_dir |> create_directory |> ignore -00:29:55 v #29597 > > -00:29:55 v #29598 > > inl count = get_count trace_dir -00:29:55 v #29599 > > -00:29:55 v #29600 > > trace_file "test" -00:29:55 v #29601 > > -00:29:55 v #29602 > > get_count trace_dir -00:29:55 v #29603 > > |> _assert_eq (count + 1) -00:29:56 v #29604 > > -00:29:56 v #29605 > > ── [ 1.47s - stdout ] ────────────────────────────────────────────────────────── -00:29:56 v #29606 > > │ __assert_eq / actual: 95L / expected: 95L -00:29:56 v #29607 > > │ -00:29:56 v #29608 > > -00:29:56 v #29609 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:56 v #29610 > > │ ### init_trace_file -00:29:56 v #29611 > > -00:29:56 v #29612 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:56 v #29613 > > inl init_trace_file enabled = -00:29:56 v #29614 > > inl state_trace_file = get_trace_state_or_init None .trace_file -00:29:56 v #29615 > > state_trace_file <- if enabled then trace_file else ignore -00:29:56 v #29616 > > -00:29:56 v #29617 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:56 v #29618 > > │ ## file_system -00:29:56 v #29619 > > -00:29:56 v #29620 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:56 v #29621 > > │ ### create_dir -00:29:56 v #29622 > > -00:29:56 v #29623 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:56 v #29624 > > let create_dir dir = -00:29:56 v #29625 > > run_target_args' dir function -00:29:56 v #29626 > > | Rust (Contract | Wasm) => fun _ => null () -00:29:56 v #29627 > > | Rust (Native) => fun dir => -00:29:56 v #29628 > > match dir |> create_dir_all |> resultm.map_error' sm'.format' |> -00:29:56 v #29629 > > resultm.unbox with -00:29:56 v #29630 > > | Ok () => -00:29:56 v #29631 > > trace Verbose -00:29:56 v #29632 > > fun () => "file_system.create_dir" -00:29:56 v #29633 > > fun () => { dir } -00:29:56 v #29634 > > | Error error => -00:29:56 v #29635 > > trace Critical -00:29:56 v #29636 > > fun () => "file_system.create_dir" -00:29:56 v #29637 > > fun () => { dir error } -00:29:56 v #29638 > > inl disposable : _ () = new_disposable fun () => -00:29:56 v #29639 > > dir -00:29:56 v #29640 > > |> directory_delete true -00:29:56 v #29641 > > disposable -00:29:56 v #29642 > > | _ => fun dir => -00:29:56 v #29643 > > inl directory_info = dir |> create_directory -00:29:56 v #29644 > > inl exists' = directory_info |> directory_info_exists -00:29:56 v #29645 > > if not exists' then -00:29:56 v #29646 > > inl creation_time = directory_info |> -00:29:56 v #29647 > > directory_info_creation_time -00:29:56 v #29648 > > inl result = ($'{| Exists = !exists'; CreationTime = -00:29:56 v #29649 > > !creation_time |}' : infer) |> sm'.format_debug -00:29:56 v #29650 > > trace Debug -00:29:56 v #29651 > > fun () => "file_system.create_dir" -00:29:56 v #29652 > > fun () => { dir result } -00:29:56 v #29653 > > inl disposable : _ () = new_disposable fun () => -00:29:56 v #29654 > > dir -00:29:56 v #29655 > > |> delete_directory_async -00:29:56 v #29656 > > |> async.ignore -00:29:56 v #29657 > > |> async.run_synchronously -00:29:56 v #29658 > > disposable -00:29:57 v #29659 > > -00:29:57 v #29660 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:29:57 v #29661 > > │ ### create_temp_dir -00:29:57 v #29662 > > -00:29:57 v #29663 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:57 v #29664 > > inl create_temp_dir () = -00:29:57 v #29665 > > inl dir = create_temp_path () -00:29:57 v #29666 > > dir, dir |> create_dir -00:29:57 v #29667 > > -00:29:57 v #29668 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:29:57 v #29669 > > //// test -00:29:57 v #29670 > > ///! fsharp -00:29:57 v #29671 > > ///! rust -d chrono -00:29:57 v #29672 > > -00:29:57 v #29673 > > inl path, disposable = create_temp_dir () -00:29:57 v #29674 > > join -00:29:57 v #29675 > > path -00:29:57 v #29676 > > |> directory_exists -00:29:57 v #29677 > > |> _assert_eq true -00:29:57 v #29678 > > disposable |> use |> ignore -00:29:57 v #29679 > > path -00:29:57 v #29680 > > |> directory_exists -00:29:57 v #29681 > > |> _assert_eq true -00:29:57 v #29682 > > path -00:29:57 v #29683 > > |> directory_exists -00:29:57 v #29684 > > |> _assert_eq false -00:30:03 v #29685 > > -00:30:03 v #29686 > > ── [ 5.26s - return value ] ──────────────────────────────────────────────────── -00:30:03 v #29687 > > │ -00:30:03 v #29688 > > │ .rs output (rust -d chrono): -00:30:03 v #29689 > > │ 00:00:00 v #1 file_system.create_dir / { dir = -00:30:03 v #29690 > > C:\Users\i574n\AppData\Local\Temp\!create_temp_path_\spiral_1bdcdd96e3bff2eed295 -00:30:03 v #29691 > > cb525230e2518399dcc1caf045e41b35dc79c8fe588e\20250113-1423-1166-8021-00000020f50 -00:30:03 v #29692 > > 1 } -00:30:03 v #29693 > > │ __assert_eq / actual: true / expected: true -00:30:03 v #29694 > > │ __assert_eq / actual: true / expected: true -00:30:03 v #29695 > > │ __assert_eq / actual: false / expected: false -00:30:03 v #29696 > > │ -00:30:03 v #29697 > > │ -00:30:03 v #29698 > > -00:30:03 v #29699 > > ── [ 5.26s - stdout ] ────────────────────────────────────────────────────────── -00:30:03 v #29700 > > │ .fsx output: -00:30:03 v #29701 > > │ __assert_eq / actual: true / expected: true -00:30:03 v #29702 > > │ __assert_eq / actual: true / expected: true -00:30:03 v #29703 > > │ __assert_eq / actual: false / expected: false -00:30:03 v #29704 > > │ -00:30:03 v #29705 > > -00:30:03 v #29706 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:30:03 v #29707 > > //// test -00:30:03 v #29708 > > //// timeout=30000 -00:30:03 v #29709 > > -00:30:03 v #29710 > > inl lock_directory path = -00:30:03 v #29711 > > fun () => -00:30:03 v #29712 > > trace Debug (fun () => "_1") id -00:30:03 v #29713 > > "0" |> write_all_text_async (path </> "test.txt") |> async.do -00:30:03 v #29714 > > file_stream -00:30:03 v #29715 > > (path </> "test.txt") -00:30:03 v #29716 > > ModeOpen -00:30:03 v #29717 > > AccessReadWrite -00:30:03 v #29718 > > ShareNone -00:30:03 v #29719 > > |> use -00:30:03 v #29720 > > |> ignore -00:30:03 v #29721 > > trace Debug (fun () => "_2") id -00:30:03 v #29722 > > async.sleep 2000 |> async.do -00:30:03 v #29723 > > trace Debug (fun () => "_3") id -00:30:03 v #29724 > > () |> return -00:30:03 v #29725 > > |> async.new_async -00:30:03 v #29726 > > -00:30:03 v #29727 > > inl temp_dir, disposable = create_temp_dir () -00:30:03 v #29728 > > disposable |> use |> ignore -00:30:03 v #29729 > > inl path = temp_dir </> "test" -00:30:03 v #29730 > > -00:30:03 v #29731 > > fun () => -00:30:03 v #29732 > > trace Debug (fun () => "1") id -00:30:03 v #29733 > > path |> create_directory |> ignore -00:30:03 v #29734 > > trace Debug (fun () => "2") id -00:30:03 v #29735 > > inl child = path |> lock_directory |> async.start_child |> async.let' -00:30:03 v #29736 > > trace Debug (fun () => "3") id -00:30:03 v #29737 > > async.sleep 60 |> async.do -00:30:03 v #29738 > > trace Debug (fun () => "4") id -00:30:03 v #29739 > > inl retries = path |> delete_directory_async |> async.let' -00:30:03 v #29740 > > trace Debug (fun () => "5") id -00:30:03 v #29741 > > child |> async.do -00:30:03 v #29742 > > trace Debug (fun () => "6") id -00:30:03 v #29743 > > retries |> return -00:30:03 v #29744 > > |> async.new_async_unit -00:30:03 v #29745 > > |> async.run_with_timeout 3000 -00:30:03 v #29746 > > |> fun x => x : _ i64 -00:30:03 v #29747 > > |> function -00:30:03 v #29748 > > | Some (retries : i64) => -00:30:03 v #29749 > > retries -00:30:03 v #29750 > > |> _assert_between -00:30:03 v #29751 > > (if platform.is_windows () then 50 else 0) -00:30:03 v #29752 > > (if platform.is_windows () then 180 else 0) -00:30:03 v #29753 > > -00:30:03 v #29754 > > true -00:30:03 v #29755 > > | _ => false -00:30:03 v #29756 > > |> _assert_eq true -00:30:10 v #29757 > > -00:30:10 v #29758 > > ── [ 7.72s - stdout ] ────────────────────────────────────────────────────────── -00:30:10 v #29759 > > │ 00:00:00 d #1 1 -00:30:10 v #29760 > > │ 00:00:00 d #2 2 -00:30:10 v #29761 > > │ 00:00:00 d #3 3 -00:30:10 v #29762 > > │ 00:00:00 d #4 _1 -00:30:10 v #29763 > > │ 00:00:00 d #5 _2 -00:30:10 v #29764 > > │ 00:00:00 d #6 4 -00:30:10 v #29765 > > │ 00:00:00 d #7 file_system.delete_directory_async / { ex -00:30:10 v #29766 > > = System.IO.IOException: The process cannot access the file 'test.txt' because -00:30:10 v #29767 > > it is being used by another process.; path = test } -00:30:10 v #29768 > > │ 00:00:01 d #8 file_system.delete_directory_async / { ex -00:30:10 v #29769 > > = System.IO.IOException: The process cannot access the file 'test.txt' because -00:30:10 v #29770 > > it is being used by another process.; path = test } -00:30:10 v #29771 > > │ 00:00:02 d #9 _3 -00:30:10 v #29772 > > │ 00:00:02 d #10 5 -00:30:10 v #29773 > > │ 00:00:02 d #11 6 -00:30:10 v #29774 > > │ __assert_between / actual: 124L / expected: struct (50L, -00:30:10 v #29775 > > 180L) -00:30:10 v #29776 > > │ __assert_eq / actual: true / expected: true -00:30:10 v #29777 > > │ -00:30:10 v #29778 > > -00:30:10 v #29779 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:30:10 v #29780 > > │ ### create_temp_dir' -00:30:10 v #29781 > > -00:30:10 v #29782 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:30:10 v #29783 > > inl create_temp_dir' (hash : string) = -00:30:10 v #29784 > > inl dir = hash |> guid.hash_guid |> create_temp_path' -00:30:10 v #29785 > > dir, dir |> create_dir -00:30:11 v #29786 > > -00:30:11 v #29787 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:30:11 v #29788 > > │ ### link_directory -00:30:11 v #29789 > > -00:30:11 v #29790 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:30:11 v #29791 > > let link_directory target_path path = -00:30:11 v #29792 > > if target_path |> directory_exists |> not -00:30:11 v #29793 > > then target_path |> create_dir |> ignore -00:30:11 v #29794 > > -00:30:11 v #29795 > > inl lib_dir_path = path |> directory_get_parent |> optionm'.default_value' -00:30:11 v #29796 > > "" -00:30:11 v #29797 > > if lib_dir_path |> directory_exists |> not -00:30:11 v #29798 > > then lib_dir_path |> create_dir |> ignore -00:30:11 v #29799 > > -00:30:11 v #29800 > > if (path |> directory_exists) -00:30:11 v #29801 > > && (path |> read_link |> resultm.is_err) then -00:30:11 v #29802 > > path |> directory_delete true -00:30:11 v #29803 > > -00:30:11 v #29804 > > if path |> directory_exists |> not then -00:30:11 v #29805 > > path |> directory_create_symbolic_link target_path -00:30:11 v #29806 > > -00:30:11 v #29807 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:30:11 v #29808 > > │ ### link_file -00:30:11 v #29809 > > -00:30:11 v #29810 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:30:11 v #29811 > > let link_file target_path path = -00:30:11 v #29812 > > if (path |> file_exists) -00:30:11 v #29813 > > && (path |> read_link |> resultm.is_err) then -00:30:11 v #29814 > > path |> file_delete -00:30:11 v #29815 > > -00:30:11 v #29816 > > if path |> file_exists |> not then -00:30:11 v #29817 > > path |> file_create_symbolic_link target_path -00:30:12 v #29818 > > -00:30:12 v #29819 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:30:12 v #29820 > > //// test -00:30:12 v #29821 > > ///! fsharp -00:30:12 v #29822 > > ///! rust -d sha2 regex -00:30:12 v #29823 > > -00:30:12 v #29824 > > inl file_name = "LICENSE" -00:30:12 v #29825 > > inl text = file_name -00:30:12 v #29826 > > -00:30:12 v #29827 > > inl test_hash = -00:30:12 v #29828 > > (file_name, text) -00:30:12 v #29829 > > |> sm'.format_debug -00:30:12 v #29830 > > |> crypto.hash_text -00:30:12 v #29831 > > -00:30:12 v #29832 > > inl workspace_root = get_workspace_root () -00:30:12 v #29833 > > inl test_dir = workspace_root </> "target/test/file_system" </> test_hash -00:30:12 v #29834 > > -00:30:12 v #29835 > > inl disposable = test_dir |> create_dir -00:30:12 v #29836 > > disposable |> use |> ignore -00:30:12 v #29837 > > -00:30:12 v #29838 > > inl dir_path = test_dir </> "dir1" -00:30:12 v #29839 > > -00:30:12 v #29840 > > if dir_path |> directory_exists -00:30:12 v #29841 > > then dir_path |> directory_delete true -00:30:12 v #29842 > > -00:30:12 v #29843 > > dir_path |> create_dir |> ignore -00:30:12 v #29844 > > -00:30:12 v #29845 > > inl path = dir_path </> file_name -00:30:12 v #29846 > > text |> write_all_text path -00:30:12 v #29847 > > -00:30:12 v #29848 > > inl dir_link_path = test_dir </> "link1" -00:30:12 v #29849 > > -00:30:12 v #29850 > > dir_link_path |> link_directory dir_path -00:30:12 v #29851 > > -00:30:12 v #29852 > > inl link_path = dir_link_path </> file_name -00:30:12 v #29853 > > -00:30:12 v #29854 > > link_path -00:30:12 v #29855 > > |> read_all_text -00:30:12 v #29856 > > |> _assert_eq text -00:30:12 v #29857 > > -00:30:12 v #29858 > > dir_link_path -00:30:12 v #29859 > > |> read_link -00:30:12 v #29860 > > |> resultm.unwrap' -00:30:12 v #29861 > > |> path_buf_display -00:30:12 v #29862 > > |> convert -00:30:12 v #29863 > > |> _assert sm'.ends_with "dir1" -00:30:12 v #29864 > > -00:30:12 v #29865 > > link_path -00:30:12 v #29866 > > |> read_link -00:30:12 v #29867 > > |> resultm.unwrap' -00:30:12 v #29868 > > |> path_buf_display -00:30:12 v #29869 > > |> convert -00:30:12 v #29870 > > |> _assert sm'.ends_with "LICENSE" -00:30:12 v #29871 > > -00:30:12 v #29872 > > inl link_name = "LICENSE_" -00:30:12 v #29873 > > -00:30:12 v #29874 > > inl link_path = dir_path </> link_name -00:30:12 v #29875 > > -00:30:12 v #29876 > > link_path |> link_file path -00:30:12 v #29877 > > -00:30:12 v #29878 > > inl link_path' = dir_link_path </> link_name -00:30:12 v #29879 > > -00:30:12 v #29880 > > link_path' -00:30:12 v #29881 > > |> read_all_text -00:30:12 v #29882 > > |> _assert_eq text -00:30:12 v #29883 > > -00:30:12 v #29884 > > link_path -00:30:12 v #29885 > > |> read_link -00:30:12 v #29886 > > |> resultm.unwrap' -00:30:12 v #29887 > > |> path_buf_display -00:30:12 v #29888 > > |> convert -00:30:12 v #29889 > > |> _assert sm'.ends_with "LICENSE" -00:30:12 v #29890 > > -00:30:12 v #29891 > > link_path' -00:30:12 v #29892 > > |> read_link -00:30:12 v #29893 > > |> resultm.unwrap' -00:30:12 v #29894 > > |> path_buf_display -00:30:12 v #29895 > > |> convert -00:30:12 v #29896 > > |> _assert sm'.ends_with "LICENSE" -00:30:18 v #29897 > > -00:30:18 v #29898 > > ── [ 6.32s - return value ] ──────────────────────────────────────────────────── -00:30:18 v #29899 > > │ -00:30:18 v #29900 > > │ .rs output (rust -d sha2 regex): -00:30:18 v #29901 > > │ 00:00:00 v #1 file_system.create_dir / { dir = -00:30:18 v #29902 > > c:\home\git\polyglot\target/test/file_system\17e16cea7984b0e6f403259e33e49592eda -00:30:18 v #29903 > > 85aedd790ed910e9f3e619d9cd257 } -00:30:18 v #29904 > > │ 00:00:00 v #2 file_system.create_dir / { dir = -00:30:18 v #29905 > > c:\home\git\polyglot\target/test/file_system\17e16cea7984b0e6f403259e33e49592eda -00:30:18 v #29906 > > 85aedd790ed910e9f3e619d9cd257\dir1 } -00:30:18 v #29907 > > │ __assert_eq / actual: "LICENSE" / expected: "LICENSE" -00:30:18 v #29908 > > │ __assert / actual: "dir1" / expected: -00:30:18 v #29909 > > "c:\home\git\polyglot\target\test\file_system\17e16cea7984b0e6f403259e33e49592ed -00:30:18 v #29910 > > a85aedd790ed910e9f3e619d9cd257\dir1" -00:30:18 v #29911 > > │ __assert / actual: "LICENSE" / expected: -00:30:18 v #29912 > > "c:\home\git\polyglot\target\test\file_system\17e16cea7984b0e6f403259e33e49592ed -00:30:18 v #29913 > > a85aedd790ed910e9f3e619d9cd257\dir1\LICENSE" -00:30:18 v #29914 > > │ __assert_eq / actual: "LICENSE" / expected: "LICENSE" -00:30:18 v #29915 > > │ __assert / actual: "LICENSE" / expected: -00:30:18 v #29916 > > "c:\home\git\polyglot\target\test\file_system\17e16cea7984b0e6f403259e33e49592ed -00:30:18 v #29917 > > a85aedd790ed910e9f3e619d9cd257\dir1\LICENSE" -00:30:18 v #29918 > > │ __assert / actual: "LICENSE" / expected: -00:30:18 v #29919 > > "c:\home\git\polyglot\target\test\file_system\17e16cea7984b0e6f403259e33e49592ed -00:30:18 v #29920 > > a85aedd790ed910e9f3e619d9cd257\dir1\LICENSE" -00:30:18 v #29921 > > │ -00:30:18 v #29922 > > │ -00:30:18 v #29923 > > -00:30:18 v #29924 > > ── [ 6.32s - stdout ] ────────────────────────────────────────────────────────── -00:30:18 v #29925 > > │ .fsx output: -00:30:18 v #29926 > > │ __assert_eq / actual: "LICENSE" / expected: "LICENSE" -00:30:18 v #29927 > > │ __assert / actual: "dir1" / expected: -00:30:18 v #29928 > > "C:\home\git\polyglot\target\test\file_system\8f260c25ec3f6eaaf0d0d1b67ed9c47873 -00:30:18 v #29929 > > a182ca04606835404e641a952871da\dir1" -00:30:18 v #29930 > > │ __assert / actual: "LICENSE" / expected: -00:30:18 v #29931 > > "C:\home\git\polyglot\target\test\file_system\8f260c25ec3f6eaaf0d0d1b67ed9c47873 -00:30:18 v #29932 > > a182ca04606835404e641a952871da\dir1\LICENSE" -00:30:18 v #29933 > > │ __assert_eq / actual: "LICENSE" / expected: "LICENSE" -00:30:18 v #29934 > > │ __assert / actual: "LICENSE" / expected: -00:30:18 v #29935 > > "C:\home\git\polyglot\target\test\file_system\8f260c25ec3f6eaaf0d0d1b67ed9c47873 -00:30:18 v #29936 > > a182ca04606835404e641a952871da\dir1\LICENSE" -00:30:18 v #29937 > > │ __assert / actual: "LICENSE" / expected: -00:30:18 v #29938 > > "C:\home\git\polyglot\target\test\file_system\8f260c25ec3f6eaaf0d0d1b67ed9c47873 -00:30:18 v #29939 > > a182ca04606835404e641a952871da\dir1\LICENSE" -00:30:18 v #29940 > > │ -00:30:18 v #29941 > > -00:30:18 v #29942 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:30:18 v #29943 > > │ ## rust -00:30:18 v #29944 > > -00:30:18 v #29945 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:30:18 v #29946 > > │ ### file_exists_content -00:30:18 v #29947 > > -00:30:18 v #29948 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:30:18 v #29949 > > let file_exists_content path content : bool = -00:30:18 v #29950 > > run_target function -00:30:18 v #29951 > > | Rust (Native) => fun () => -00:30:18 v #29952 > > if path |> file_exists |> not -00:30:18 v #29953 > > then false -00:30:18 v #29954 > > else -00:30:18 v #29955 > > inl existing_content = path |> read_all_text -00:30:18 v #29956 > > content = existing_content -00:30:18 v #29957 > > | _ => fun () => null () -00:34:50 v #29958 > > -00:34:50 v #29959 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:34:50 v #29960 > > │ ### write_all_text_exists -00:34:50 v #29961 > > -00:34:50 v #29962 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:34:50 v #29963 > > let write_all_text_exists path contents = -00:34:50 v #29964 > > inl exists' = contents |> file_exists_content path -00:34:50 v #29965 > > if not exists' then -00:34:50 v #29966 > > inl dir = path |> directory_get_parent |> optionm'.default_value' "" -00:34:50 v #29967 > > if dir |> directory_exists |> not -00:34:50 v #29968 > > then dir |> create_dir |> ignore -00:34:50 v #29969 > > contents |> write_all_text path -00:34:53 v #29970 > > -00:34:53 v #29971 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:34:53 v #29972 > > │ ## fsharp -00:34:53 v #29973 > > -00:34:53 v #29974 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:34:53 v #29975 > > │ ### wait_for_file_access -00:34:53 v #29976 > > -00:34:53 v #29977 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:34:53 v #29978 > > let wait_for_file_access access path = -00:34:53 v #29979 > > let rec loop (retry : i64) : _ i64 = -00:34:53 v #29980 > > run_target function -00:34:53 v #29981 > > | Fsharp (Native) => fun () => -00:34:53 v #29982 > > inl file_access, file_share = -00:34:53 v #29983 > > access -00:34:53 v #29984 > > |> optionm'.default_value (AccessReadWrite, ShareRead) -00:34:53 v #29985 > > fun () => -00:34:53 v #29986 > > try_unit -00:34:53 v #29987 > > fun () => -00:34:53 v #29988 > > file_stream -00:34:53 v #29989 > > path -00:34:53 v #29990 > > ModeOpen -00:34:53 v #29991 > > file_access -00:34:53 v #29992 > > file_share -00:34:53 v #29993 > > |> use -00:34:53 v #29994 > > |> ignore -00:34:53 v #29995 > > retry |> return -00:34:53 v #29996 > > fun ex => -00:34:53 v #29997 > > if retry > 0 && retry % 100i64 = 0 then -00:34:53 v #29998 > > trace Debug -00:34:53 v #29999 > > fun () => "file_system.wait_for_file_access" -00:34:53 v #30000 > > fun () => { -00:34:53 v #30001 > > path = path |> get_file_name -00:34:53 v #30002 > > retry -00:34:53 v #30003 > > ex = ex () |> sm'.format_exception -00:34:53 v #30004 > > } -00:34:53 v #30005 > > async.sleep 10i32 |> async.do -00:34:53 v #30006 > > loop (retry + 1) |> async.return_await -00:34:53 v #30007 > > |> async.new_async -00:34:53 v #30008 > > | _ => fun () => null () -00:34:53 v #30009 > > loop 0 -00:34:54 v #30010 > > -00:34:54 v #30011 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:34:54 v #30012 > > │ ### wait_for_file_access_read -00:34:54 v #30013 > > -00:34:54 v #30014 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:34:54 v #30015 > > let wait_for_file_access_read path = -00:34:54 v #30016 > > path -00:34:54 v #30017 > > |> wait_for_file_access (Some ( -00:34:54 v #30018 > > AccessRead, -00:34:54 v #30019 > > ShareRead -00:34:54 v #30020 > > )) -00:34:55 v #30021 > > -00:34:55 v #30022 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:34:55 v #30023 > > //// test -00:34:55 v #30024 > > //// timeout=30000 -00:34:55 v #30025 > > -00:34:55 v #30026 > > inl lock_file path = -00:34:55 v #30027 > > fun () => -00:34:55 v #30028 > > trace Debug (fun () => "_1") id -00:34:55 v #30029 > > inl stream : file_stream' = -00:34:55 v #30030 > > file_stream -00:34:55 v #30031 > > path -00:34:55 v #30032 > > ModeOpen -00:34:55 v #30033 > > AccessReadWrite -00:34:55 v #30034 > > ShareNone -00:34:55 v #30035 > > |> use -00:34:55 v #30036 > > trace Debug (fun () => "_2") id -00:34:55 v #30037 > > async.sleep 2000 |> async.do -00:34:55 v #30038 > > trace Debug (fun () => "_3") id -00:34:55 v #30039 > > ($'!stream.Seek (0L, System.IO.SeekOrigin.Begin)' : i64) |> ignore -00:34:55 v #30040 > > trace Debug (fun () => "_4") id -00:34:55 v #30041 > > $'!stream.WriteByte' 49u8 -00:34:55 v #30042 > > trace Debug (fun () => "_5") id -00:34:55 v #30043 > > stream |> $'_.Flush()' -00:34:55 v #30044 > > trace Debug (fun () => "_6") id -00:34:55 v #30045 > > |> async.new_async -00:34:55 v #30046 > > -00:34:55 v #30047 > > inl file_name = "test.txt" -00:34:55 v #30048 > > inl text = "0" -00:34:55 v #30049 > > -00:34:55 v #30050 > > inl temp_dir, disposable = -00:34:55 v #30051 > > (file_name, text) -00:34:55 v #30052 > > |> sm'.format_debug -00:34:55 v #30053 > > |> crypto.hash_text -00:34:55 v #30054 > > |> create_temp_dir' -00:34:55 v #30055 > > disposable |> use |> ignore -00:34:55 v #30056 > > inl path = temp_dir </> file_name -00:34:55 v #30057 > > -00:34:55 v #30058 > > fun () => -00:34:55 v #30059 > > trace Debug (fun () => "1") id -00:34:55 v #30060 > > text |> write_all_text_async path |> async.do -00:34:55 v #30061 > > trace Debug (fun () => "2") id -00:34:55 v #30062 > > inl child = path |> lock_file |> async.start_child |> async.let' -00:34:55 v #30063 > > trace Debug (fun () => "3") id -00:34:55 v #30064 > > async.sleep 1 |> async.do -00:34:55 v #30065 > > trace Debug (fun () => "4") id -00:34:55 v #30066 > > inl retries = path |> wait_for_file_access None |> async.let' -00:34:55 v #30067 > > trace Debug (fun () => "5") id -00:34:55 v #30068 > > inl text = path |> read_all_text_async |> async.let' -00:34:55 v #30069 > > trace Debug (fun () => "6") id -00:34:55 v #30070 > > child |> async.do -00:34:55 v #30071 > > trace Debug (fun () => "7") id -00:34:55 v #30072 > > (retries, text) |> return -00:34:55 v #30073 > > |> async.new_async_unit -00:34:55 v #30074 > > |> async.run_with_timeout 3000 -00:34:55 v #30075 > > |> function -00:34:55 v #30076 > > | Some ((retries : i64), text) => -00:34:55 v #30077 > > retries -00:34:55 v #30078 > > |> _assert_between -00:34:55 v #30079 > > (if platform.is_windows () then 50 else 100) -00:34:55 v #30080 > > (if platform.is_windows () then 180 else 200) -00:34:55 v #30081 > > -00:34:55 v #30082 > > text |> _assert_eq (join "1") -00:34:55 v #30083 > > -00:34:55 v #30084 > > true -00:34:55 v #30085 > > | _ => false -00:34:55 v #30086 > > |> _assert_eq true -00:35:09 v #30087 > > -00:35:09 v #30088 > > ── [ 13.31s - stdout ] ───────────────────────────────────────────────────────── -00:35:09 v #30089 > > │ 00:00:00 d #1 1 -00:35:09 v #30090 > > │ 00:00:00 d #2 2 -00:35:09 v #30091 > > │ 00:00:00 d #3 3 -00:35:09 v #30092 > > │ 00:00:00 d #4 _1 -00:35:09 v #30093 > > │ 00:00:00 d #5 _2 -00:35:09 v #30094 > > │ 00:00:00 d #6 4 -00:35:09 v #30095 > > │ 00:00:01 d #7 file_system.wait_for_file_access / { path -00:35:09 v #30096 > > = test.txt; retry = 100; ex = System.IO.IOException: The process cannot access -00:35:09 v #30097 > > the file -00:35:09 v #30098 > > 'C:\Users\i574n\AppData\Local\Temp\!create_temp_path_\dotnet-repl\613830ed-016e- -00:35:09 v #30099 > > d959-8d21-02dc1c63c252\test.txt' because it is being used by another process. } -00:35:09 v #30100 > > │ 00:00:02 d #8 _3 -00:35:09 v #30101 > > │ 00:00:02 d #9 _4 -00:35:09 v #30102 > > │ 00:00:02 d #10 _5 -00:35:09 v #30103 > > │ 00:00:02 d #11 _6 -00:35:09 v #30104 > > │ 00:00:02 d #12 5 -00:35:09 v #30105 > > │ 00:00:02 d #13 6 -00:35:09 v #30106 > > │ 00:00:02 d #14 7 -00:35:09 v #30107 > > │ __assert_between / actual: 129L / expected: struct (50L, -00:35:09 v #30108 > > 180L) -00:35:09 v #30109 > > │ __assert_eq / actual: "1" / expected: "1" -00:35:09 v #30110 > > │ __assert_eq / actual: true / expected: true -00:35:09 v #30111 > > │ -00:35:09 v #30112 > > -00:35:09 v #30113 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:35:09 v #30114 > > │ ### read_all_text_retry_async -00:35:09 v #30115 > > -00:35:09 v #30116 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:35:09 v #30117 > > let read_all_text_retry_async full_path : async.async (optionm'.option' string) -00:35:09 v #30118 > > = -00:35:09 v #30119 > > let rec loop (retry : i64) = -00:35:09 v #30120 > > fun () => -00:35:09 v #30121 > > try_unit -00:35:09 v #30122 > > fun () => -00:35:09 v #30123 > > if retry > 0 -00:35:09 v #30124 > > then -00:35:09 v #30125 > > full_path -00:35:09 v #30126 > > |> wait_for_file_access_read -00:35:09 v #30127 > > |> async.run_with_timeout_async 1000 -00:35:09 v #30128 > > |> async.ignore -00:35:09 v #30129 > > |> async.do -00:35:09 v #30130 > > full_path |> read_all_text_async |> async.map (Some >> -00:35:09 v #30131 > > optionm'.box) |> async.return_await -00:35:09 v #30132 > > fun ex => -00:35:09 v #30133 > > fix_condition -00:35:09 v #30134 > > fun () => retry <> 0 -00:35:09 v #30135 > > fun () => -00:35:09 v #30136 > > trace Debug -00:35:09 v #30137 > > fun () => -00:35:09 v #30138 > > "file_system.read_all_text_retry_async" -00:35:09 v #30139 > > fun () => { -00:35:09 v #30140 > > retry -00:35:09 v #30141 > > ex = ex () |> sm'.format_exception -00:35:09 v #30142 > > } -00:35:09 v #30143 > > (None : _ string) |> optionm'.box |> return -00:35:09 v #30144 > > fun () => -00:35:09 v #30145 > > loop (retry + 1) |> async.return_await -00:35:09 v #30146 > > |> async.new_async -00:35:09 v #30147 > > loop 0 -00:35:09 v #30148 > > -00:35:09 v #30149 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:35:09 v #30150 > > │ ### move_file_async -00:35:09 v #30151 > > -00:35:09 v #30152 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:35:09 v #30153 > > let move_file_async new_path old_path : _ i64 = -00:35:09 v #30154 > > let rec loop (retry : i64) = -00:35:09 v #30155 > > run_target function -00:35:09 v #30156 > > | Fsharp (Native) => fun () => -00:35:09 v #30157 > > fun () => -00:35:09 v #30158 > > try_unit -00:35:09 v #30159 > > fun () => -00:35:09 v #30160 > > old_path |> file_move new_path -00:35:09 v #30161 > > return retry -00:35:09 v #30162 > > fun ex => -00:35:09 v #30163 > > if retry % 100 = 0 then -00:35:09 v #30164 > > trace Warning -00:35:09 v #30165 > > fun () => "move_file_async" -00:35:09 v #30166 > > fun () => { -00:35:09 v #30167 > > old_path = old_path |> get_file_name -00:35:09 v #30168 > > new_path = new_path |> get_file_name -00:35:09 v #30169 > > ex = ex () |> sm'.format_exception -00:35:09 v #30170 > > } -00:35:09 v #30171 > > async.sleep 10 |> async.do -00:35:09 v #30172 > > loop (retry + 1) |> async.return_await -00:35:09 v #30173 > > |> async.new_async_unit -00:35:09 v #30174 > > | _ => fun () => null () -00:35:09 v #30175 > > loop 0 -00:35:10 v #30176 > > -00:35:10 v #30177 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:35:10 v #30178 > > //// test -00:35:10 v #30179 > > //// timeout=30000 -00:35:10 v #30180 > > -00:35:10 v #30181 > > inl lock_file path = -00:35:10 v #30182 > > fun () => -00:35:10 v #30183 > > trace Debug (fun () => "_1") id -00:35:10 v #30184 > > file_stream -00:35:10 v #30185 > > path -00:35:10 v #30186 > > ModeOpen -00:35:10 v #30187 > > AccessReadWrite -00:35:10 v #30188 > > ShareNone -00:35:10 v #30189 > > |> use -00:35:10 v #30190 > > |> ignore -00:35:10 v #30191 > > trace Debug (fun () => "_2") id -00:35:10 v #30192 > > async.sleep 2000 |> async.do -00:35:10 v #30193 > > trace Debug (fun () => "_3") id -00:35:10 v #30194 > > |> async.new_async -00:35:10 v #30195 > > -00:35:10 v #30196 > > fun () => -00:35:10 v #30197 > > inl file_name = "test.txt" -00:35:10 v #30198 > > inl text = "0" -00:35:10 v #30199 > > -00:35:10 v #30200 > > inl temp_dir, disposable = -00:35:10 v #30201 > > (file_name, text) -00:35:10 v #30202 > > |> sm'.format_debug -00:35:10 v #30203 > > |> crypto.hash_text -00:35:10 v #30204 > > |> create_temp_dir' -00:35:10 v #30205 > > disposable |> use |> ignore -00:35:10 v #30206 > > let path = temp_dir </> file_name -00:35:10 v #30207 > > let new_path = temp_dir </> "test2.txt" -00:35:10 v #30208 > > -00:35:10 v #30209 > > trace Debug (fun () => "1") id -00:35:10 v #30210 > > text |> write_all_text_async path |> async.do -00:35:10 v #30211 > > trace Debug (fun () => "2") id -00:35:10 v #30212 > > inl child = lock_file path |> async.start_child |> async.let' -00:35:10 v #30213 > > trace Debug (fun () => "3") id -00:35:10 v #30214 > > async.sleep 1 |> async.do -00:35:10 v #30215 > > trace Debug (fun () => "4") id -00:35:10 v #30216 > > inl retries1 = path |> move_file_async new_path |> async.let' -00:35:10 v #30217 > > trace Debug (fun () => "5") id -00:35:10 v #30218 > > inl retries2 = new_path |> wait_for_file_access None |> async.let' -00:35:10 v #30219 > > trace Debug (fun () => "6") id -00:35:10 v #30220 > > inl text = new_path |> read_all_text_async |> async.let' -00:35:10 v #30221 > > trace Debug (fun () => "7") id -00:35:10 v #30222 > > child |> async.do -00:35:10 v #30223 > > trace Debug (fun () => "8") id -00:35:10 v #30224 > > (retries1, retries2, text) |> return -00:35:10 v #30225 > > |> async.new_async_unit -00:35:10 v #30226 > > |> async.run_with_timeout 3000 -00:35:10 v #30227 > > |> function -00:35:10 v #30228 > > | Some (retries1, retries2, text) => -00:35:10 v #30229 > > retries1 -00:35:10 v #30230 > > |> _assert_between -00:35:10 v #30231 > > (if platform.is_windows () then 50i64 else 0) -00:35:10 v #30232 > > (if platform.is_windows () then 200 else 0) -00:35:10 v #30233 > > -00:35:10 v #30234 > > retries2 -00:35:10 v #30235 > > |> _assert_between -00:35:10 v #30236 > > (if platform.is_windows () then 0i64 else 100) -00:35:10 v #30237 > > (if platform.is_windows () then 0 else 200) -00:35:10 v #30238 > > -00:35:10 v #30239 > > text |> _assert_eq (join "0") -00:35:10 v #30240 > > -00:35:10 v #30241 > > true -00:35:10 v #30242 > > | _ => false -00:35:10 v #30243 > > |> _assert_eq true -00:35:24 v #30244 > > -00:35:24 v #30245 > > ── [ 14.08s - stdout ] ───────────────────────────────────────────────────────── -00:35:24 v #30246 > > │ 00:00:00 d #1 1 -00:35:24 v #30247 > > │ 00:00:00 d #2 2 -00:35:24 v #30248 > > │ 00:00:00 d #3 3 -00:35:24 v #30249 > > │ 00:00:00 d #4 _1 -00:35:24 v #30250 > > │ 00:00:00 d #5 _2 -00:35:24 v #30251 > > │ 00:00:00 d #6 4 -00:35:24 v #30252 > > │ 00:00:00 w #7 move_file_async / { old_path = test.txt; -00:35:24 v #30253 > > new_path = test2.txt; ex = System.IO.IOException: The process cannot access the -00:35:24 v #30254 > > file because it is being used by another process. } -00:35:24 v #30255 > > │ 00:00:01 w #8 move_file_async / { old_path = test.txt; -00:35:24 v #30256 > > new_path = test2.txt; ex = System.IO.IOException: The process cannot access the -00:35:24 v #30257 > > file because it is being used by another process. } -00:35:24 v #30258 > > │ 00:00:02 d #9 _3 -00:35:24 v #30259 > > │ 00:00:02 d #10 5 -00:35:24 v #30260 > > │ 00:00:02 d #11 6 -00:35:24 v #30261 > > │ 00:00:02 d #12 7 -00:35:24 v #30262 > > │ 00:00:02 d #13 8 -00:35:24 v #30263 > > │ __assert_between / actual: 128L / expected: struct (50L, -00:35:24 v #30264 > > 200L) -00:35:24 v #30265 > > │ __assert_between / actual: 0L / expected: struct (0L, 0L) -00:35:24 v #30266 > > │ __assert_eq / actual: "0" / expected: "0" -00:35:24 v #30267 > > │ __assert_eq / actual: true / expected: true -00:35:24 v #30268 > > │ -00:35:24 v #30269 > > -00:35:24 v #30270 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:35:24 v #30271 > > │ ### delete_file_async -00:35:24 v #30272 > > -00:35:24 v #30273 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:35:24 v #30274 > > let delete_file_async path : _ i64 = -00:35:24 v #30275 > > let rec loop (retry : i64) = -00:35:24 v #30276 > > run_target function -00:35:24 v #30277 > > | Fsharp (Native) => fun () => -00:35:24 v #30278 > > fun () => -00:35:24 v #30279 > > try_unit -00:35:24 v #30280 > > fun () => -00:35:24 v #30281 > > path |> file_delete -00:35:24 v #30282 > > return retry -00:35:24 v #30283 > > fun ex => -00:35:24 v #30284 > > if retry % 100 = 0 then -00:35:24 v #30285 > > trace Warning -00:35:24 v #30286 > > fun () => "delete_file_async" -00:35:24 v #30287 > > fun () => { -00:35:24 v #30288 > > path = path |> get_file_name -00:35:24 v #30289 > > ex = ex () |> sm'.format_exception -00:35:24 v #30290 > > } -00:35:24 v #30291 > > async.sleep 10 |> async.do -00:35:24 v #30292 > > loop (retry + 1) |> async.return_await -00:35:24 v #30293 > > |> async.new_async -00:35:24 v #30294 > > | _ => fun () => null () -00:35:24 v #30295 > > loop 0 -00:35:25 v #30296 > > -00:35:25 v #30297 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:35:25 v #30298 > > //// test -00:35:25 v #30299 > > //// timeout=30000 -00:35:25 v #30300 > > -00:35:25 v #30301 > > inl lock_file path = -00:35:25 v #30302 > > fun () => -00:35:25 v #30303 > > trace Debug (fun () => "_1") id -00:35:25 v #30304 > > file_stream -00:35:25 v #30305 > > path -00:35:25 v #30306 > > ModeOpen -00:35:25 v #30307 > > AccessReadWrite -00:35:25 v #30308 > > ShareNone -00:35:25 v #30309 > > |> use -00:35:25 v #30310 > > |> ignore -00:35:25 v #30311 > > trace Debug (fun () => "_2") id -00:35:25 v #30312 > > async.sleep 2000 |> async.do -00:35:25 v #30313 > > trace Debug (fun () => "_3") id -00:35:25 v #30314 > > |> async.new_async -00:35:25 v #30315 > > -00:35:25 v #30316 > > fun () => -00:35:25 v #30317 > > inl file_name = "test.txt" -00:35:25 v #30318 > > inl text = "0" -00:35:25 v #30319 > > -00:35:25 v #30320 > > inl temp_dir, disposable = -00:35:25 v #30321 > > (file_name, text) -00:35:25 v #30322 > > |> sm'.format_debug -00:35:25 v #30323 > > |> crypto.hash_text -00:35:25 v #30324 > > |> create_temp_dir' -00:35:25 v #30325 > > disposable |> use |> ignore -00:35:25 v #30326 > > inl path = temp_dir </> file_name -00:35:25 v #30327 > > -00:35:25 v #30328 > > trace Debug (fun () => "1") id -00:35:25 v #30329 > > text |> write_all_text_async path |> async.do -00:35:25 v #30330 > > trace Debug (fun () => "2") id -00:35:25 v #30331 > > inl child = lock_file path |> async.start_child |> async.let' -00:35:25 v #30332 > > trace Debug (fun () => "3") id -00:35:25 v #30333 > > async.sleep 1 |> async.do -00:35:25 v #30334 > > trace Debug (fun () => "4") id -00:35:25 v #30335 > > inl retries = delete_file_async path |> async.let' -00:35:25 v #30336 > > trace Debug (fun () => "5") id -00:35:25 v #30337 > > child |> async.do -00:35:25 v #30338 > > trace Debug (fun () => "6") id -00:35:25 v #30339 > > return retries -00:35:25 v #30340 > > |> async.new_async_unit -00:35:25 v #30341 > > |> async.run_with_timeout 3000 -00:35:25 v #30342 > > |> function -00:35:25 v #30343 > > | Some (retries : i64) => -00:35:25 v #30344 > > retries -00:35:25 v #30345 > > |> _assert_between -00:35:25 v #30346 > > (if platform.is_windows () then 50 else 0) -00:35:25 v #30347 > > (if platform.is_windows () then 180 else 0) -00:35:25 v #30348 > > -00:35:25 v #30349 > > true -00:35:25 v #30350 > > | _ => false -00:35:25 v #30351 > > |> _assert_eq true -00:35:35 v #30352 > > -00:35:35 v #30353 > > ── [ 10.97s - stdout ] ───────────────────────────────────────────────────────── -00:35:35 v #30354 > > │ 00:00:00 d #1 1 -00:35:35 v #30355 > > │ 00:00:00 d #2 2 -00:35:35 v #30356 > > │ 00:00:00 d #3 3 -00:35:35 v #30357 > > │ 00:00:00 d #4 _1 -00:35:35 v #30358 > > │ 00:00:00 d #5 _2 -00:35:35 v #30359 > > │ 00:00:00 d #6 4 -00:35:35 v #30360 > > │ 00:00:00 w #7 delete_file_async / { path = test.txt; ex -00:35:35 v #30361 > > = System.IO.IOException: The process cannot access the file -00:35:35 v #30362 > > 'C:\Users\i574n\AppData\Local\Temp\!create_temp_path_\dotnet-repl\613830ed-016e- -00:35:35 v #30363 > > d959-8d21-02dc1c63c252\test.txt' because it is being used by another process. } -00:35:35 v #30364 > > │ 00:00:01 w #8 delete_file_async / { path = test.txt; ex -00:35:35 v #30365 > > = System.IO.IOException: The process cannot access the file -00:35:35 v #30366 > > 'C:\Users\i574n\AppData\Local\Temp\!create_temp_path_\dotnet-repl\613830ed-016e- -00:35:35 v #30367 > > d959-8d21-02dc1c63c252\test.txt' because it is being used by another process. } -00:35:35 v #30368 > > │ 00:00:02 d #9 _3 -00:35:35 v #30369 > > │ 00:00:02 d #10 5 -00:35:35 v #30370 > > │ 00:00:02 d #11 6 -00:35:35 v #30371 > > │ __assert_between / actual: 128L / expected: struct (50L, -00:35:35 v #30372 > > 180L) -00:35:35 v #30373 > > │ __assert_eq / actual: true / expected: true -00:35:35 v #30374 > > │ -00:35:35 v #30375 > > -00:35:35 v #30376 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:35:35 v #30377 > > │ ## main -00:35:35 v #30378 > > -00:35:35 v #30379 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:35:35 v #30380 > > inl main () = -00:35:35 v #30381 > > init_trace_state None -00:35:35 v #30382 > > $'let delete_directory_async x = !delete_directory_async x' : () -00:35:35 v #30383 > > $'let wait_for_file_access x = !wait_for_file_access x' : () -00:35:35 v #30384 > > $'let wait_for_file_access_read x = !wait_for_file_access_read x' : () -00:35:35 v #30385 > > $'let read_all_text_async x = !read_all_text_async x' : () -00:35:35 v #30386 > > $'let file_exists_content x = !file_exists_content x' : () -00:35:35 v #30387 > > $'let write_all_text_async x = !write_all_text_async x' : () -00:35:35 v #30388 > > $'let write_all_text_exists x = !write_all_text_exists_async x' : () -00:35:35 v #30389 > > $'let delete_file_async x = !delete_file_async x' : () -00:35:35 v #30390 > > $'let move_file_async x = !move_file_async x' : () -00:35:35 v #30391 > > $'let read_all_text_retry_async x = !read_all_text_retry_async x' : () -00:35:35 v #30392 > > $'let create_temp_path () = !create_temp_path ()' : () -00:35:35 v #30393 > > $'let create_temp_dir () = !create_temp_dir ()' : () -00:35:35 v #30394 > > $'let create_temp_dir\' x = !create_temp_dir' x' : () -00:35:35 v #30395 > > $'let get_source_directory () = !get_source_directory ()' : () -00:35:35 v #30396 > > $'let normalize_path x = !normalize_path x' : () -00:35:35 v #30397 > > $'let new_file_uri x = !new_file_uri x' : () -00:35:35 v #30398 > > $'let get_workspace_root () = !get_workspace_root ()' : () -00:35:35 v #30399 > > $'let trace_file x = !trace_file x' : () -00:35:35 v #30400 > > $'let init_trace_file x = !init_trace_file x' : () -00:35:35 v #30401 > > $'let link_directory x = !link_directory x' : () -00:35:35 v #30402 > > inl combine x = (</>) x -00:35:35 v #30403 > > $'let (</>) x = !combine x' : () -00:35:48 v #30404 > 00:07:02 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 87787 } -00:35:48 v #30405 > 00:07:02 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/lib/spiral/file_system.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/lib/spiral/file_system.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:35:50 v #30406 > 00:07:04 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/lib/spiral/file_system.dib.ipynb to html -00:35:50 v #30407 > 00:07:04 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. -00:35:50 v #30408 > 00:07:04 v #7 ! validate(nb) -00:35:51 v #30409 > 00:07:05 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 -00:35:51 v #30410 > 00:07:05 v #9 ! return _pygments_highlight( -00:35:54 v #30411 > 00:07:07 v #10 ! [NbConvertApp] Writing 632903 bytes to c:\home\git\polyglot\lib\spiral\file_system.dib.html -00:35:54 v #30412 > 00:07:08 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 864 } -00:35:54 v #30413 > 00:07:08 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 864 } -00:35:54 v #30414 > 00:07:08 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/file_system.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/file_system.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:35:55 v #30415 > 00:07:08 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } -00:35:55 v #30416 > 00:07:08 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } -00:35:55 v #30417 > 00:07:08 d #16 spiral.run / dib / { exit_code = 0; result_length = 88710 } -00:35:55 d #30418 runtime.execute_with_options_async / { exit_code = 0; output_length = 95770 } -00:35:55 d #39 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path file_system.dib --retries 3 -00:35:55 d #30419 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path networking.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path networking.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } -00:35:55 v #30420 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "networking.dib", "--retries", "3"])) } -00:35:55 v #30421 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/lib/spiral/networking.dib", "--output-path", "c:/home/git/polyglot/lib/spiral/networking.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/lib/spiral/networking.dib" --output-path "c:/home/git/polyglot/lib/spiral/networking.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } -00:35:57 v #30422 > > -00:35:57 v #30423 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:35:57 v #30424 > > │ # networking -00:36:01 v #30425 > > -00:36:01 v #30426 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:36:01 v #30427 > > open rust.rust_operators -00:36:02 v #30428 > > -00:36:02 v #30429 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:36:02 v #30430 > > //// test -00:36:02 v #30431 > > -00:36:02 v #30432 > > open testing -00:36:03 v #30433 > > -00:36:03 v #30434 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:36:03 v #30435 > > │ ## rust -00:36:03 v #30436 > > -00:36:03 v #30437 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:36:03 v #30438 > > │ ### reqwest_response -00:36:03 v #30439 > > -00:36:03 v #30440 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:36:03 v #30441 > > nominal reqwest_response = -00:36:03 v #30442 > > `( -00:36:03 v #30443 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:36:03 v #30444 > > Fable.Core.Emit(\"reqwest_wasm::Response\")>]]\n#endif\ntype reqwest_Response = -00:36:03 v #30445 > > class end" -00:36:03 v #30446 > > $'' : $'reqwest_Response' -00:36:03 v #30447 > > ) -00:36:03 v #30448 > > -00:36:03 v #30449 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:36:03 v #30450 > > │ ### reqwest_error -00:36:03 v #30451 > > -00:36:03 v #30452 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:36:03 v #30453 > > nominal reqwest_error = -00:36:03 v #30454 > > `( -00:36:03 v #30455 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:36:03 v #30456 > > Fable.Core.Emit(\"reqwest_wasm::Error\")>]]\n#endif\ntype reqwest_Error = class -00:36:03 v #30457 > > end" -00:36:03 v #30458 > > $'' : $'reqwest_Error' -00:36:03 v #30459 > > ) -00:36:04 v #30460 > > -00:36:04 v #30461 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:36:04 v #30462 > > │ ### request_builder -00:36:04 v #30463 > > -00:36:04 v #30464 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:36:04 v #30465 > > nominal request_builder = -00:36:04 v #30466 > > `( -00:36:04 v #30467 > > global "#if FABLE_COMPILER\n[[<Fable.Core.Erase; -00:36:04 v #30468 > > Fable.Core.Emit(\"reqwest_wasm::RequestBuilder\")>]]\n#endif\ntype -00:36:04 v #30469 > > reqwest_RequestBuilder = class end" -00:36:04 v #30470 > > $'' : $'reqwest_RequestBuilder' -00:36:04 v #30471 > > ) -00:36:04 v #30472 > > -00:36:04 v #30473 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:36:04 v #30474 > > │ ### request_type -00:36:04 v #30475 > > -00:36:04 v #30476 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:36:04 v #30477 > > union request_type = -00:36:04 v #30478 > > | Get -00:36:04 v #30479 > > | Post -00:36:05 v #30480 > > -00:36:05 v #30481 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:36:05 v #30482 > > │ ### request -00:36:05 v #30483 > > -00:36:05 v #30484 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:36:05 v #30485 > > type request = -00:36:05 v #30486 > > { -00:36:05 v #30487 > > url : string -00:36:05 v #30488 > > request_type : request_type -00:36:05 v #30489 > > body : string -00:36:05 v #30490 > > json : bool -00:36:05 v #30491 > > auto_refresh : bool -00:36:05 v #30492 > > } -00:36:05 v #30493 > > -00:36:05 v #30494 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:36:05 v #30495 > > │ ### new_request_get -00:36:05 v #30496 > > -00:36:05 v #30497 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:36:05 v #30498 > > inl new_request_get (url : string) : request_builder = -00:36:05 v #30499 > > inl url = join url -00:36:05 v #30500 > > inl url = url |> sm'.to_std_string -00:36:05 v #30501 > > inl url = join url -00:36:05 v #30502 > > !\($'"reqwest_wasm::Client::builder().build().map_err(|err| -00:36:05 v #30503 > > err.to_string())?.get(!url)"') -00:36:05 v #30504 > > -00:36:05 v #30505 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:36:05 v #30506 > > │ ### new_request_post -00:36:05 v #30507 > > -00:36:05 v #30508 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:36:05 v #30509 > > inl new_request_post (url : string) : request_builder = -00:36:05 v #30510 > > inl url = join url -00:36:05 v #30511 > > inl url = url |> sm'.to_std_string -00:36:05 v #30512 > > inl url = join url -00:36:05 v #30513 > > !\($'"reqwest_wasm::Client::builder().build().map_err(|err| -00:36:05 v #30514 > > err.to_string())?.post(!url)"') -00:36:06 v #30515 > > -00:36:06 v #30516 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:36:06 v #30517 > > │ ### request_send -00:36:06 v #30518 > > -00:36:06 v #30519 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:36:06 v #30520 > > inl request_send (request : request_builder) : async.future_pin (resultm.result' -00:36:06 v #30521 > > reqwest_response reqwest_error) = -00:36:06 v #30522 > > inl request = join request -00:36:06 v #30523 > > !\($'"Box::pin(reqwest_wasm::RequestBuilder::send(!request))"') -00:36:06 v #30524 > > -00:36:06 v #30525 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:36:06 v #30526 > > │ ### request_body -00:36:06 v #30527 > > -00:36:06 v #30528 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:36:06 v #30529 > > inl request_body (body : string) (request : request_builder) : request_builder = -00:36:06 v #30530 > > inl body = body |> sm'.to_std_string -00:36:06 v #30531 > > !\\(body, $'"reqwest_wasm::RequestBuilder::body(!request, $0)"') -00:36:07 v #30532 > > -00:36:07 v #30533 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:36:07 v #30534 > > │ ### request_header -00:36:07 v #30535 > > -00:36:07 v #30536 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:36:07 v #30537 > > inl request_header (key : string) (value : string) (request : request_builder) : -00:36:07 v #30538 > > request_builder = -00:36:07 v #30539 > > inl request = join request -00:36:07 v #30540 > > inl key = key |> sm'.to_std_string -00:36:07 v #30541 > > inl value = value |> sm'.to_std_string -00:36:07 v #30542 > > !\\((key, value), $'"reqwest_wasm::RequestBuilder::header(!request, $0, -00:36:07 v #30543 > > $1)"') -00:36:07 v #30544 > > -00:36:07 v #30545 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:36:07 v #30546 > > │ ### request_json -00:36:07 v #30547 > > -00:36:07 v #30548 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:36:07 v #30549 > > inl request_json forall t. (obj : t) (request : request_builder) : -00:36:07 v #30550 > > request_builder = -00:36:07 v #30551 > > !\($'"reqwest_wasm::RequestBuilder::json(!request, &!obj)"') -00:36:08 v #30552 > > -00:36:08 v #30553 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:36:08 v #30554 > > │ ### response_text -00:36:08 v #30555 > > -00:36:08 v #30556 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:36:08 v #30557 > > inl response_text (response : reqwest_response) : async.future_pin -00:36:08 v #30558 > > (resultm.result' sm'.std_string reqwest_error) = -00:36:08 v #30559 > > !\($'"Box::pin(reqwest_wasm::Response::text(!response))"') -00:36:08 v #30560 > > -00:36:08 v #30561 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:36:08 v #30562 > > │ ## fsharp -00:36:08 v #30563 > > -00:36:08 v #30564 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:36:08 v #30565 > > │ ### tcp_client -00:36:08 v #30566 > > -00:36:08 v #30567 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:36:08 v #30568 > > nominal tcp_client = -00:36:08 v #30569 > > `( -00:36:08 v #30570 > > global "#if FABLE_COMPILER\n\ntype System_Net_Sockets_TcpClient = -00:36:08 v #30571 > > System.IDisposable\n#else\ntype System_Net_Sockets_TcpClient = -00:36:08 v #30572 > > System.Net.Sockets.TcpClient\n#endif\n" -00:36:08 v #30573 > > $'' : $'System_Net_Sockets_TcpClient' -00:36:08 v #30574 > > ) -00:36:09 v #30575 > > -00:36:09 v #30576 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:36:09 v #30577 > > │ ### new_tcp_client -00:36:09 v #30578 > > -00:36:09 v #30579 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:36:09 v #30580 > > inl new_tcp_client () : tcp_client = -00:36:09 v #30581 > > run_target function -00:36:09 v #30582 > > | Fsharp (Native) => fun () => $'new `tcp_client ()' -00:36:09 v #30583 > > | _ => fun () => null () -00:36:09 v #30584 > > -00:36:09 v #30585 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:36:09 v #30586 > > │ ### ip_address -00:36:09 v #30587 > > -00:36:09 v #30588 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:36:09 v #30589 > > nominal ip_address = $'System.Net.IPAddress' -00:36:09 v #30590 > > -00:36:09 v #30591 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:36:09 v #30592 > > │ ### ip_address_parse -00:36:09 v #30593 > > -00:36:09 v #30594 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:36:09 v #30595 > > inl ip_address_parse (s : string) : ip_address = -00:36:09 v #30596 > > s |> $'`ip_address.Parse' -00:36:10 v #30597 > > -00:36:10 v #30598 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:36:10 v #30599 > > │ ### tcp_listener -00:36:10 v #30600 > > -00:36:10 v #30601 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:36:10 v #30602 > > nominal tcp_listener = $'System.Net.Sockets.TcpListener' -00:36:10 v #30603 > > -00:36:10 v #30604 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:36:10 v #30605 > > │ ### new_tcp_listener -00:36:10 v #30606 > > -00:36:10 v #30607 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:36:10 v #30608 > > inl new_tcp_listener (ip_address : ip_address) (port : i32) : tcp_listener = -00:36:10 v #30609 > > $'new `tcp_listener (!ip_address, !port)' -00:36:11 v #30610 > > -00:36:11 v #30611 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:36:11 v #30612 > > │ ### listener_start -00:36:11 v #30613 > > -00:36:11 v #30614 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:36:11 v #30615 > > inl listener_start (listener : tcp_listener) : () = -00:36:11 v #30616 > > listener |> $'_.Start()' -00:36:11 v #30617 > > -00:36:11 v #30618 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:36:11 v #30619 > > │ ### listener_stop -00:36:11 v #30620 > > -00:36:11 v #30621 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:36:11 v #30622 > > inl listener_stop (listener : tcp_listener) : () = -00:36:11 v #30623 > > listener |> $'_.Stop()' -00:36:12 v #30624 > > -00:36:12 v #30625 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:36:12 v #30626 > > │ ### client_connect_async -00:36:12 v #30627 > > -00:36:12 v #30628 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:36:12 v #30629 > > inl client_connect_async -00:36:12 v #30630 > > (host : string) -00:36:12 v #30631 > > (port : i32) -00:36:12 v #30632 > > (ct : threading.cancellation_token) -00:36:12 v #30633 > > (client : tcp_client) -00:36:12 v #30634 > > : async.value_task -00:36:12 v #30635 > > = -00:36:12 v #30636 > > run_target function -00:36:12 v #30637 > > | Fsharp (Native) => fun () => $'!client.ConnectAsync (!host, !port, -00:36:12 v #30638 > > !ct)' -00:36:12 v #30639 > > | _ => fun () => null () -00:36:12 v #30640 > > -00:36:12 v #30641 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:36:12 v #30642 > > │ ### test_port_open -00:36:12 v #30643 > > -00:36:12 v #30644 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:36:12 v #30645 > > let test_port_open host port : _ bool = async.new_async fun () => -00:36:12 v #30646 > > inl ct = async.cancellation_token () |> async.let' -00:36:12 v #30647 > > inl client = new_tcp_client () |> use -00:36:12 v #30648 > > try_unit -00:36:12 v #30649 > > fun () => -00:36:12 v #30650 > > client |> client_connect_async host port ct |> -00:36:12 v #30651 > > async.await_value_task_unit |> async.do -00:36:12 v #30652 > > return true -00:36:12 v #30653 > > fun ex => -00:36:12 v #30654 > > trace Verbose -00:36:12 v #30655 > > fun () => "networking.test_port_open" -00:36:12 v #30656 > > fun () => { port ex = ex () |> sm'.format_exception } -00:36:12 v #30657 > > return false -00:36:13 v #30658 > > -00:36:13 v #30659 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:36:13 v #30660 > > //// test -00:36:13 v #30661 > > -00:36:13 v #30662 > > test_port_open "127.0.0.1" 65536 -00:36:13 v #30663 > > |> async.run_with_timeout 120 -00:36:13 v #30664 > > |> _assert_eq (Some false) -00:36:17 v #30665 > > -00:36:17 v #30666 > > ── [ 4.44s - stdout ] ────────────────────────────────────────────────────────── -00:36:17 v #30667 > > │ 00:00:00 v #1 networking.test_port_open / { port = -00:36:17 v #30668 > > 65536; ex = System.ArgumentOutOfRangeException: Specified argument was out of -00:36:17 v #30669 > > the range of valid values. (Parameter 'port') } -00:36:17 v #30670 > > │ __assert_eq / actual: US6_0 false / expected: US6_0 false -00:36:17 v #30671 > > │ -00:36:17 v #30672 > > -00:36:17 v #30673 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:36:17 v #30674 > > │ ### test_port_open_timeout -00:36:17 v #30675 > > -00:36:17 v #30676 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:36:17 v #30677 > > let test_port_open_timeout timeout host port : _ bool = async.new_async_unit fun -00:36:17 v #30678 > > () => -00:36:17 v #30679 > > test_port_open host port -00:36:17 v #30680 > > |> async.run_with_timeout_async timeout -00:36:17 v #30681 > > |> async.let' -00:36:17 v #30682 > > |> function -00:36:17 v #30683 > > | None => false -00:36:17 v #30684 > > | Some result => result -00:36:17 v #30685 > > |> return -00:36:18 v #30686 > > -00:36:18 v #30687 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:36:18 v #30688 > > //// test -00:36:18 v #30689 > > -00:36:18 v #30690 > > test_port_open_timeout 120 "127.0.0.1" 65535 -00:36:18 v #30691 > > |> async.run_synchronously -00:36:18 v #30692 > > |> _assert_eq false -00:36:21 v #30693 > > -00:36:21 v #30694 > > ── [ 3.50s - stdout ] ────────────────────────────────────────────────────────── -00:36:21 v #30695 > > │ 00:00:00 v #1 async.run_with_timeout_async / { timeout = -00:36:21 v #30696 > > 120 } -00:36:21 v #30697 > > │ __assert_eq / actual: false / expected: false -00:36:21 v #30698 > > │ -00:36:21 v #30699 > > -00:36:21 v #30700 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:36:21 v #30701 > > │ ### wait_for_port_access -00:36:21 v #30702 > > -00:36:21 v #30703 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:36:21 v #30704 > > let wait_for_port_access timeout status host port : _ i64 = -00:36:21 v #30705 > > let rec loop retry : _ i64 = -00:36:21 v #30706 > > fun () => -00:36:21 v #30707 > > inl is_port_open = -00:36:21 v #30708 > > match timeout |> optionm'.unbox with -00:36:21 v #30709 > > | None => test_port_open host port -00:36:21 v #30710 > > | Some timeout => test_port_open_timeout timeout host port -00:36:21 v #30711 > > |> async.let' -00:36:21 v #30712 > > fix_condition -00:36:21 v #30713 > > fun () => is_port_open = status -00:36:21 v #30714 > > fun () => retry |> return -00:36:21 v #30715 > > fun () => -00:36:21 v #30716 > > if retry % 100 = 0 then -00:36:21 v #30717 > > trace Verbose -00:36:21 v #30718 > > fun () => "networking.wait_for_port_access" -00:36:21 v #30719 > > fun () => { port retry timeout status } -00:36:21 v #30720 > > async.sleep 10 |> async.do -00:36:21 v #30721 > > loop (retry + 1) |> async.return_await -00:36:21 v #30722 > > |> async.new_async_unit -00:36:21 v #30723 > > loop 1i64 -00:36:21 v #30724 > > -00:36:21 v #30725 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:36:21 v #30726 > > //// test -00:36:21 v #30727 > > -00:36:21 v #30728 > > inl lock_port host port = async.new_async fun () => -00:36:21 v #30729 > > trace Debug (fun () => "_1") id -00:36:21 v #30730 > > async.sleep 5000 |> async.do -00:36:21 v #30731 > > inl listener = new_tcp_listener (host |> ip_address_parse) port |> use -00:36:21 v #30732 > > trace Debug (fun () => "_2") id -00:36:21 v #30733 > > listener |> listener_start -00:36:21 v #30734 > > trace Debug (fun () => "_3") id -00:36:21 v #30735 > > async.sleep 2000 |> async.do -00:36:21 v #30736 > > trace Debug (fun () => "_4") id -00:36:21 v #30737 > > $'!listener.Stop' () -00:36:21 v #30738 > > trace Debug (fun () => "_5") id -00:36:21 v #30739 > > -00:36:21 v #30740 > > inl host = "127.0.0.1" -00:36:21 v #30741 > > inl port = 5555i32 -00:36:21 v #30742 > > -00:36:21 v #30743 > > fun () => -00:36:21 v #30744 > > trace Debug (fun () => "1") id -00:36:21 v #30745 > > inl child = lock_port host port |> async.start_child |> async.let' -00:36:21 v #30746 > > trace Debug (fun () => "2") id -00:36:21 v #30747 > > async.sleep 1 |> async.do -00:36:21 v #30748 > > trace Debug (fun () => "3") id -00:36:21 v #30749 > > inl retries1 = wait_for_port_access (None |> optionm'.box) true host port |> -00:36:21 v #30750 > > async.let' -00:36:21 v #30751 > > trace Debug (fun () => "4") id -00:36:21 v #30752 > > inl retries2 = wait_for_port_access (None |> optionm'.box) false host port -00:36:21 v #30753 > > |> async.let' -00:36:21 v #30754 > > trace Debug (fun () => "5") id -00:36:21 v #30755 > > child |> async.do -00:36:21 v #30756 > > trace Debug (fun () => "6") id -00:36:21 v #30757 > > (retries1, retries2) |> return -00:36:21 v #30758 > > |> async.new_async_unit -00:36:21 v #30759 > > |> async.run_with_timeout 20000 -00:36:21 v #30760 > > |> function -00:36:21 v #30761 > > | Some (retries1, retries2) => -00:36:21 v #30762 > > retries1 -00:36:21 v #30763 > > |> _assert_between -00:36:21 v #30764 > > if platform.is_windows () then 2i64 else 2 -00:36:21 v #30765 > > if platform.is_windows () then 5 else 1500 -00:36:21 v #30766 > > -00:36:21 v #30767 > > retries2 -00:36:21 v #30768 > > |> _assert_between -00:36:21 v #30769 > > if platform.is_windows () then 80i64 else 80 -00:36:21 v #30770 > > if platform.is_windows () then 200 else 600 -00:36:21 v #30771 > > -00:36:21 v #30772 > > true -00:36:21 v #30773 > > | _ => false -00:36:21 v #30774 > > |> _assert_eq true -00:36:37 v #30775 > > -00:36:37 v #30776 > > ── [ 15.85s - stdout ] ───────────────────────────────────────────────────────── -00:36:37 v #30777 > > │ 00:00:00 d #1 1 -00:36:37 v #30778 > > │ 00:00:00 d #2 _1 -00:36:37 v #30779 > > │ 00:00:00 d #3 2 -00:36:37 v #30780 > > │ 00:00:00 d #4 3 -00:36:37 v #30781 > > │ 00:00:02 v #5 networking.test_port_open / { port = 5555; -00:36:37 v #30782 > > ex = System.AggregateException: One or more errors occurred. (No connection -00:36:37 v #30783 > > could be made because the target machine actively refused it.) } -00:36:37 v #30784 > > │ 00:00:04 v #6 networking.test_port_open / { port = 5555; -00:36:37 v #30785 > > ex = System.AggregateException: One or more errors occurred. (No connection -00:36:37 v #30786 > > could be made because the target machine actively refused it.) } -00:36:37 v #30787 > > │ 00:00:05 d #7 _2 -00:36:37 v #30788 > > │ 00:00:05 d #8 _3 -00:36:37 v #30789 > > │ 00:00:05 d #9 4 -00:36:37 v #30790 > > │ 00:00:06 v #10 networking.wait_for_port_access / { port -00:36:37 v #30791 > > = 5555; retry = 100; timeout = None; status = false } -00:36:37 v #30792 > > │ 00:00:07 d #11 _4 -00:36:37 v #30793 > > │ 00:00:07 d #12 _5 -00:36:37 v #30794 > > │ 00:00:09 v #13 networking.test_port_open / { port = -00:36:37 v #30795 > > 5555; ex = System.AggregateException: One or more errors occurred. (No -00:36:37 v #30796 > > connection could be made because the target machine actively refused it.) } -00:36:37 v #30797 > > │ 00:00:09 d #14 5 -00:36:37 v #30798 > > │ 00:00:09 d #15 6 -00:36:37 v #30799 > > │ __assert_between / actual: 3L / expected: struct (2L, 5L) -00:36:37 v #30800 > > │ __assert_between / actual: 122L / expected: struct (80L, -00:36:37 v #30801 > > 200L) -00:36:37 v #30802 > > │ __assert_eq / actual: true / expected: true -00:36:37 v #30803 > > │ -00:36:37 v #30804 > > -00:36:37 v #30805 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:36:37 v #30806 > > //// test -00:36:37 v #30807 > > -00:36:37 v #30808 > > inl lock_port host port = async.new_async_unit fun () => -00:36:37 v #30809 > > trace Debug (fun () => "_1") id -00:36:37 v #30810 > > async.sleep 500 |> async.do -00:36:37 v #30811 > > inl listener = new_tcp_listener (ip_address_parse host) port |> use -00:36:37 v #30812 > > trace Debug (fun () => "_2") id -00:36:37 v #30813 > > listener |> listener_start -00:36:37 v #30814 > > trace Debug (fun () => "_3") id -00:36:37 v #30815 > > async.sleep 200 |> async.do -00:36:37 v #30816 > > trace Debug (fun () => "_4") id -00:36:37 v #30817 > > listener |> listener_stop -00:36:37 v #30818 > > trace Debug (fun () => "_5") id -00:36:37 v #30819 > > -00:36:37 v #30820 > > inl host = "127.0.0.1" -00:36:37 v #30821 > > inl port = 5555 -00:36:37 v #30822 > > -00:36:37 v #30823 > > fun () => -00:36:37 v #30824 > > trace Debug (fun () => "1") id -00:36:37 v #30825 > > inl child = lock_port host port |> async.start_child |> async.let' -00:36:37 v #30826 > > trace Debug (fun () => "2") id -00:36:37 v #30827 > > async.sleep 1 |> async.do -00:36:37 v #30828 > > trace Debug (fun () => "3") id -00:36:37 v #30829 > > inl retries1 = wait_for_port_access (Some 60 |> optionm'.box) true host port -00:36:37 v #30830 > > |> async.let' -00:36:37 v #30831 > > trace Debug (fun () => "4") id -00:36:37 v #30832 > > inl retries2 = wait_for_port_access (Some 60 |> optionm'.box) false host -00:36:37 v #30833 > > port |> async.let' -00:36:37 v #30834 > > trace Debug (fun () => "5") id -00:36:37 v #30835 > > child |> async.do -00:36:37 v #30836 > > trace Debug (fun () => "6") id -00:36:37 v #30837 > > (retries1, retries2) |> return -00:36:37 v #30838 > > |> async.new_async_unit -00:36:37 v #30839 > > |> async.run_with_timeout 2000 -00:36:37 v #30840 > > |> function -00:36:37 v #30841 > > | Some (retries1, retries2) => -00:36:37 v #30842 > > retries1 -00:36:37 v #30843 > > |> _assert_between -00:36:37 v #30844 > > if platform.is_windows () then 4i64 else 2 -00:36:37 v #30845 > > if platform.is_windows () then 15 else 150 -00:36:37 v #30846 > > -00:36:37 v #30847 > > retries2 -00:36:37 v #30848 > > |> _assert_between -00:36:37 v #30849 > > if platform.is_windows () then 5i64 else 0 -00:36:37 v #30850 > > if platform.is_windows () then 20 else 60 -00:36:37 v #30851 > > -00:36:37 v #30852 > > true -00:36:37 v #30853 > > | _ => false -00:36:37 v #30854 > > |> _assert_eq true -00:36:46 v #30855 > > -00:36:46 v #30856 > > ── [ 9.11s - stdout ] ────────────────────────────────────────────────────────── -00:36:46 v #30857 > > │ 00:00:00 d #1 1 -00:36:46 v #30858 > > │ 00:00:00 d #2 2 -00:36:46 v #30859 > > │ 00:00:00 d #3 _1 -00:36:46 v #30860 > > │ 00:00:00 d #4 3 -00:36:46 v #30861 > > │ 00:00:00 v #5 async.run_with_timeout_async / { timeout = -00:36:46 v #30862 > > 60 } -00:36:46 v #30863 > > │ 00:00:00 v #6 async.run_with_timeout_async / { timeout = -00:36:46 v #30864 > > 60 } -00:36:46 v #30865 > > │ 00:00:00 v #7 async.run_with_timeout_async / { timeout = -00:36:46 v #30866 > > 60 } -00:36:46 v #30867 > > │ 00:00:00 v #8 async.run_with_timeout_async / { timeout = -00:36:46 v #30868 > > 60 } -00:36:46 v #30869 > > │ 00:00:00 v #9 async.run_with_timeout_async / { timeout = -00:36:46 v #30870 > > 60 } -00:36:46 v #30871 > > │ 00:00:00 v #10 async.run_with_timeout_async / { timeout -00:36:46 v #30872 > > = 60 } -00:36:46 v #30873 > > │ 00:00:00 d #11 _2 -00:36:46 v #30874 > > │ 00:00:00 d #12 _3 -00:36:46 v #30875 > > │ 00:00:00 v #13 async.run_with_timeout_async / { timeout -00:36:46 v #30876 > > = 60 } -00:36:46 v #30877 > > │ 00:00:00 d #14 4 -00:36:46 v #30878 > > │ 00:00:00 d #15 _4 -00:36:46 v #30879 > > │ 00:00:00 d #16 _5 -00:36:46 v #30880 > > │ 00:00:00 v #17 async.run_with_timeout_async / { timeout -00:36:46 v #30881 > > = 60 } -00:36:46 v #30882 > > │ 00:00:00 d #18 5 -00:36:46 v #30883 > > │ 00:00:00 d #19 6 -00:36:46 v #30884 > > │ __assert_between / actual: 8L / expected: struct (4L, 15L) -00:36:46 v #30885 > > │ __assert_between / actual: 10L / expected: struct (5L, 20L) -00:36:46 v #30886 > > │ __assert_eq / actual: true / expected: true -00:36:46 v #30887 > > │ -00:36:46 v #30888 > > -00:36:46 v #30889 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:36:46 v #30890 > > │ ### get_available_port -00:36:46 v #30891 > > -00:36:46 v #30892 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:36:46 v #30893 > > let get_available_port timeout host initial_port : _ i32 = -00:36:46 v #30894 > > let rec loop port = -00:36:46 v #30895 > > fun () => -00:36:46 v #30896 > > inl is_port_open = -00:36:46 v #30897 > > match timeout |> optionm'.unbox with -00:36:46 v #30898 > > | None => test_port_open host port -00:36:46 v #30899 > > | Some timeout => test_port_open_timeout timeout host port -00:36:46 v #30900 > > |> async.let' -00:36:46 v #30901 > > fix_condition -00:36:46 v #30902 > > fun () => is_port_open |> not -00:36:46 v #30903 > > fun () => port |> return -00:36:46 v #30904 > > fun () => loop (port + 1) |> async.return_await -00:36:46 v #30905 > > |> async.new_async_unit -00:36:46 v #30906 > > loop initial_port -00:36:47 v #30907 > > -00:36:47 v #30908 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:36:47 v #30909 > > //// test -00:36:47 v #30910 > > -00:36:47 v #30911 > > inl lock_ports host port = async.new_async_unit fun () => -00:36:47 v #30912 > > trace Debug (fun () => "_1") id -00:36:47 v #30913 > > inl listener1 = new_tcp_listener (ip_address_parse host) port |> use -00:36:47 v #30914 > > inl listener2 = new_tcp_listener (ip_address_parse host) (port + 1) |> use -00:36:47 v #30915 > > trace Debug (fun () => "_2") id -00:36:47 v #30916 > > listener1 |> listener_start -00:36:47 v #30917 > > listener2 |> listener_start -00:36:47 v #30918 > > trace Debug (fun () => "_3") id -00:36:47 v #30919 > > async.sleep 4000 |> async.do -00:36:47 v #30920 > > trace Debug (fun () => "_4") id -00:36:47 v #30921 > > listener1 |> listener_stop -00:36:47 v #30922 > > listener2 |> listener_stop -00:36:47 v #30923 > > trace Debug (fun () => "_5") id -00:36:47 v #30924 > > -00:36:47 v #30925 > > inl host = "127.0.0.1" -00:36:47 v #30926 > > inl port = 5555 -00:36:47 v #30927 > > -00:36:47 v #30928 > > fun () => -00:36:47 v #30929 > > trace Debug (fun () => "1") id -00:36:47 v #30930 > > inl child = lock_ports host port |> async.start_child |> async.let' -00:36:47 v #30931 > > trace Debug (fun () => "2") id -00:36:47 v #30932 > > async.sleep 240 |> async.do -00:36:47 v #30933 > > trace Debug (fun () => "3") id -00:36:47 v #30934 > > inl available_port = get_available_port (None |> optionm'.box) host port |> -00:36:47 v #30935 > > async.let' -00:36:47 v #30936 > > trace Debug (fun () => "4") id -00:36:47 v #30937 > > inl retries = wait_for_port_access (None |> optionm'.box) false host port |> -00:36:47 v #30938 > > async.let' -00:36:47 v #30939 > > trace Debug (fun () => "5") id -00:36:47 v #30940 > > child |> async.do -00:36:47 v #30941 > > trace Debug (fun () => "6") id -00:36:47 v #30942 > > (available_port, retries) |> return -00:36:47 v #30943 > > |> async.new_async_unit -00:36:47 v #30944 > > |> async.run_with_timeout 15000 -00:36:47 v #30945 > > |> function -00:36:47 v #30946 > > | Some (available_port, retries) => -00:36:47 v #30947 > > available_port |> _assert_eq (port + 2) -00:36:47 v #30948 > > -00:36:47 v #30949 > > retries -00:36:47 v #30950 > > |> _assert_between -00:36:47 v #30951 > > if platform.is_windows () then 50i64 else 50 -00:36:47 v #30952 > > if platform.is_windows () then 150 else 1200 -00:36:47 v #30953 > > -00:36:47 v #30954 > > true -00:36:47 v #30955 > > | _ => false -00:36:47 v #30956 > > |> _assert_eq true -00:37:01 v #30957 > > -00:37:01 v #30958 > > ── [ 14.42s - stdout ] ───────────────────────────────────────────────────────── -00:37:01 v #30959 > > │ 00:00:00 d #1 1 -00:37:01 v #30960 > > │ 00:00:00 d #2 _1 -00:37:01 v #30961 > > │ 00:00:00 d #3 2 -00:37:01 v #30962 > > │ 00:00:00 d #4 _2 -00:37:01 v #30963 > > │ 00:00:00 d #5 _3 -00:37:01 v #30964 > > │ 00:00:00 d #6 3 -00:37:01 v #30965 > > │ 00:00:02 v #7 networking.test_port_open / { port = 5557; -00:37:01 v #30966 > > ex = System.AggregateException: One or more errors occurred. (No connection -00:37:01 v #30967 > > could be made because the target machine actively refused it.) } -00:37:01 v #30968 > > │ 00:00:02 d #8 4 -00:37:01 v #30969 > > │ 00:00:03 v #9 networking.wait_for_port_access / { port = -00:37:01 v #30970 > > 5555; retry = 100; timeout = None; status = false } -00:37:01 v #30971 > > │ 00:00:04 d #10 _4 -00:37:01 v #30972 > > │ 00:00:04 d #11 _5 -00:37:01 v #30973 > > │ 00:00:06 v #12 networking.test_port_open / { port = -00:37:01 v #30974 > > 5555; ex = System.AggregateException: One or more errors occurred. (No -00:37:01 v #30975 > > connection could be made because the target machine actively refused it.) } -00:37:01 v #30976 > > │ 00:00:06 d #13 5 -00:37:01 v #30977 > > │ 00:00:06 d #14 6 -00:37:01 v #30978 > > │ __assert_eq / actual: 5557 / expected: 5557 -00:37:01 v #30979 > > │ __assert_between / actual: 111L / expected: struct (50L, -00:37:01 v #30980 > > 150L) -00:37:01 v #30981 > > │ __assert_eq / actual: true / expected: true -00:37:01 v #30982 > > │ -00:37:01 v #30983 > > -00:37:01 v #30984 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:37:01 v #30985 > > //// test -00:37:01 v #30986 > > -00:37:01 v #30987 > > inl lock_ports host port = async.new_async_unit fun () => -00:37:01 v #30988 > > trace Debug (fun () => "_1") id -00:37:01 v #30989 > > inl listener1 = new_tcp_listener (ip_address_parse host) port |> use -00:37:01 v #30990 > > inl listener2 = new_tcp_listener (ip_address_parse host) (port + 1) |> use -00:37:01 v #30991 > > trace Debug (fun () => "_2") id -00:37:01 v #30992 > > listener1 |> listener_start -00:37:01 v #30993 > > listener2 |> listener_start -00:37:01 v #30994 > > trace Debug (fun () => "_3") id -00:37:01 v #30995 > > async.sleep 400 |> async.do -00:37:01 v #30996 > > trace Debug (fun () => "_4") id -00:37:01 v #30997 > > listener1 |> listener_stop -00:37:01 v #30998 > > listener2 |> listener_stop -00:37:01 v #30999 > > trace Debug (fun () => "_5") id -00:37:01 v #31000 > > -00:37:01 v #31001 > > inl host = "127.0.0.1" -00:37:01 v #31002 > > inl port = 5555 -00:37:01 v #31003 > > -00:37:01 v #31004 > > fun () => -00:37:01 v #31005 > > trace Debug (fun () => "1") id -00:37:01 v #31006 > > inl child = lock_ports host port |> async.start_child |> async.let' -00:37:01 v #31007 > > trace Debug (fun () => "2") id -00:37:01 v #31008 > > async.sleep 240 |> async.do -00:37:01 v #31009 > > trace Debug (fun () => "3") id -00:37:01 v #31010 > > inl available_port = get_available_port (Some 60 |> optionm'.box) host port -00:37:01 v #31011 > > |> async.let' -00:37:01 v #31012 > > trace Debug (fun () => "4") id -00:37:01 v #31013 > > inl retries = wait_for_port_access (Some 60 |> optionm'.box) false host port -00:37:01 v #31014 > > |> async.let' -00:37:01 v #31015 > > trace Debug (fun () => "5") id -00:37:01 v #31016 > > child |> async.do -00:37:01 v #31017 > > trace Debug (fun () => "6") id -00:37:01 v #31018 > > (available_port, retries) |> return -00:37:01 v #31019 > > |> async.new_async_unit -00:37:01 v #31020 > > |> async.run_with_timeout 1500 -00:37:01 v #31021 > > |> function -00:37:01 v #31022 > > | Some (available_port, retries) => -00:37:01 v #31023 > > available_port |> _assert_eq (port + 2) -00:37:01 v #31024 > > -00:37:01 v #31025 > > retries -00:37:01 v #31026 > > |> _assert_between -00:37:01 v #31027 > > (if platform.is_windows () then 2i64 else 1) -00:37:01 v #31028 > > (if platform.is_windows () then 10 else 120) -00:37:01 v #31029 > > -00:37:01 v #31030 > > true -00:37:01 v #31031 > > | _ => false -00:37:01 v #31032 > > |> _assert_eq true -00:37:10 v #31033 > > -00:37:10 v #31034 > > ── [ 9.18s - stdout ] ────────────────────────────────────────────────────────── -00:37:10 v #31035 > > │ 00:00:00 d #1 1 -00:37:10 v #31036 > > │ 00:00:00 d #2 2 -00:37:10 v #31037 > > │ 00:00:00 d #3 _1 -00:37:10 v #31038 > > │ 00:00:00 d #4 _2 -00:37:10 v #31039 > > │ 00:00:00 d #5 _3 -00:37:10 v #31040 > > │ 00:00:00 d #6 3 -00:37:10 v #31041 > > │ 00:00:00 v #7 async.run_with_timeout_async / { timeout = -00:37:10 v #31042 > > 60 } -00:37:10 v #31043 > > │ 00:00:00 d #8 4 -00:37:10 v #31044 > > │ 00:00:00 d #9 _4 -00:37:10 v #31045 > > │ 00:00:00 d #10 _5 -00:37:10 v #31046 > > │ 00:00:00 v #11 async.run_with_timeout_async / { timeout -00:37:10 v #31047 > > = 60 } -00:37:10 v #31048 > > │ 00:00:00 d #12 5 -00:37:10 v #31049 > > │ 00:00:00 d #13 6 -00:37:10 v #31050 > > │ __assert_eq / actual: 5557 / expected: 5557 -00:37:10 v #31051 > > │ __assert_between / actual: 5L / expected: struct (2L, 10L) -00:37:10 v #31052 > > │ __assert_eq / actual: true / expected: true -00:37:10 v #31053 > > │ -00:37:10 v #31054 > > -00:37:10 v #31055 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:37:10 v #31056 > > │ ## main -00:37:10 v #31057 > > -00:37:10 v #31058 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:37:10 v #31059 > > inl main () = -00:37:10 v #31060 > > init_trace_state None -00:37:10 v #31061 > > $'let test_port_open x = !test_port_open x' : () -00:37:10 v #31062 > > $'let test_port_open_timeout x = !test_port_open_timeout x' : () -00:37:10 v #31063 > > $'let wait_for_port_access x = !wait_for_port_access x' : () -00:37:10 v #31064 > > $'let get_available_port x = !get_available_port x' : () -00:37:15 v #31065 > 00:01:20 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 25360 } -00:37:15 v #31066 > 00:01:20 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/lib/spiral/networking.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/lib/spiral/networking.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:37:16 v #31067 > 00:01:21 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/lib/spiral/networking.dib.ipynb to html -00:37:16 v #31068 > 00:01:21 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. -00:37:16 v #31069 > 00:01:21 v #7 ! validate(nb) -00:37:16 v #31070 > 00:01:21 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 -00:37:16 v #31071 > 00:01:21 v #9 ! return _pygments_highlight( -00:37:17 v #31072 > 00:01:22 v #10 ! [NbConvertApp] Writing 370721 bytes to c:\home\git\polyglot\lib\spiral\networking.dib.html -00:37:17 v #31073 > 00:01:22 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 862 } -00:37:17 v #31074 > 00:01:22 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 862 } -00:37:17 v #31075 > 00:01:22 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/networking.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/lib/spiral/networking.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:37:18 v #31076 > 00:01:22 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } -00:37:18 v #31077 > 00:01:22 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } -00:37:18 v #31078 > 00:01:22 d #16 spiral.run / dib / { exit_code = 0; result_length = 26281 } -00:37:18 d #31079 runtime.execute_with_options_async / { exit_code = 0; output_length = 30138 } -00:37:18 d #40 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path networking.dib --retries 3 -00:37:18 v #5 async.run_with_timeout_async / { timeout = 100 } -00:00:00 d #1 writeDibCode / output: Spi / path: crypto.dib -00:00:00 d #1 writeDibCode / output: Spi / path: threading.dib -00:00:00 d #1 writeDibCode / output: Spi / path: async.dib -00:00:00 d #1 writeDibCode / output: Spi / path: common.dib -00:00:00 d #1 writeDibCode / output: Spi / path: trace.dib -00:00:00 d #1 writeDibCode / output: Spi / path: networking.dib -00:00:00 d #1 writeDibCode / output: Spi / path: runtime.dib -00:00:00 d #1 writeDibCode / output: Spi / path: testing.dib -00:00:00 d #3 parseDibCode / output: Spi / file: trace.dib -00:00:00 d #5 parseDibCode / output: Spi / file: threading.dib -00:00:00 d #8 parseDibCode / output: Spi / file: testing.dib -00:00:00 d #3 parseDibCode / output: Spi / file: async.dib -00:00:00 d #3 parseDibCode / output: Spi / file: networking.dib -00:00:00 d #3 parseDibCode / output: Spi / file: crypto.dib -00:00:00 d #5 parseDibCode / output: Spi / file: common.dib -00:00:00 d #9 parseDibCode / output: Spi / file: runtime.dib -00:00:00 d #10 writeDibCode / output: Spi / path: env.dib -00:00:00 d #11 writeDibCode / output: Spi / path: resultm.dib -00:00:00 d #11 writeDibCode / output: Spi / path: iter.dib -00:00:00 d #11 writeDibCode / output: Spi / path: base.dib -00:00:00 d #11 writeDibCode / output: Spi / path: parsing.dib -00:00:00 d #15 parseDibCode / output: Spi / file: resultm.dib -00:00:00 d #16 parseDibCode / output: Spi / file: env.dib -00:00:00 d #17 parseDibCode / output: Spi / file: iter.dib -00:00:00 d #18 parseDibCode / output: Spi / file: base.dib -00:00:00 d #19 parseDibCode / output: Spi / file: parsing.dib -00:00:00 d #20 writeDibCode / output: Spi / path: date_time.dib -00:00:00 d #20 writeDibCode / output: Spi / path: console.dib -00:00:00 d #22 writeDibCode / output: Spi / path: file_system.dib -00:00:00 d #23 writeDibCode / output: Spi / path: guid.dib -00:00:00 d #24 writeDibCode / output: Spi / path: math.dib -00:00:00 d #25 parseDibCode / output: Spi / file: console.dib -00:00:00 d #25 parseDibCode / output: Spi / file: date_time.dib -00:00:00 d #27 parseDibCode / output: Spi / file: file_system.dib -00:00:00 d #28 parseDibCode / output: Spi / file: guid.dib -00:00:00 d #29 parseDibCode / output: Spi / file: math.dib -00:00:00 d #30 writeDibCode / output: Spi / path: mapm.dib -00:00:00 d #31 writeDibCode / output: Spi / path: optionm'.dib -00:00:00 d #32 writeDibCode / output: Spi / path: sm'.dib -00:00:00 d #32 writeDibCode / output: Spi / path: am'.dib -00:00:00 d #34 parseDibCode / output: Spi / file: mapm.dib -00:00:00 d #35 parseDibCode / output: Spi / file: optionm'.dib -00:00:00 d #36 parseDibCode / output: Spi / file: sm'.dib -00:00:00 d #37 parseDibCode / output: Spi / file: am'.dib -00:00:00 d #38 writeDibCode / output: Spir / path: sm'.dib -00:00:00 d #39 writeDibCode / output: Spi / path: listm'.dib -00:00:00 d #40 parseDibCode / output: Spir / file: sm'.dib -00:00:00 d #41 writeDibCode / output: Spi / path: reflection.dib -00:00:00 d #42 writeDibCode / output: Spi / path: python.dib -00:00:00 d #43 parseDibCode / output: Spi / file: listm'.dib -00:00:00 d #44 parseDibCode / output: Spi / file: reflection.dib -00:00:00 d #45 parseDibCode / output: Spi / file: python.dib -00:00:00 d #46 writeDibCode / output: Spi / path: typescript.dib -00:00:00 d #47 parseDibCode / output: Spi / file: typescript.dib -00:00:00 d #48 writeDibCode / output: Spi / path: benchmark.dib -00:00:00 d #49 parseDibCode / output: Spi / file: benchmark.dib -00:00:00 d #49 writeDibCode / output: Spi / path: stream.dib -00:00:00 d #51 parseDibCode / output: Spi / file: stream.dib -00:00:00 d #52 writeDibCode / output: Spi / path: seq.dib -00:00:00 d #53 parseDibCode / output: Spi / file: seq.dib -00:00:00 d #54 writeDibCode / output: Spi / path: util.dib -00:00:00 d #55 parseDibCode / output: Spi / file: util.dib -00:00:00 d #56 writeDibCode / output: Spi / path: platform.dib -00:00:00 d #57 parseDibCode / output: Spi / file: platform.dib -00:00:00 d #58 writeDibCode / output: Spi / path: rust/rust.dib -00:00:00 d #59 parseDibCode / output: Spi / file: rust/rust.dib -00:00:00 d #60 writeDibCode / output: Spi / path: rust/testing.dib -00:00:00 d #61 parseDibCode / output: Spi / file: rust/testing.dib -00:00:00 d #62 writeDibCode / output: Spi / path: rust/near.dib -00:00:00 d #63 parseDibCode / output: Spi / file: rust/near.dib -00:00:00 d #64 writeDibCode / output: Spi / path: rust/near_workspaces.dib -00:00:00 d #65 writeDibCode / output: Spi / path: physics.dib -00:00:00 d #66 parseDibCode / output: Spi / file: rust/near_workspaces.dib -00:00:00 d #67 parseDibCode / output: Spi / file: physics.dib -00:00:00 d #68 writeDibCode / output: Spi / path: wasm.dib -00:00:00 d #69 parseDibCode / output: Spi / file: wasm.dib -00:00:00 d #68 writeDibCode / output: Spi / path: leptos/leptos.dib -00:00:00 d #70 parseDibCode / output: Spi / file: leptos/leptos.dib -00:00:00 v #1 async.run_with_timeout_async / { timeout = 180 } -00:00:00 d #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0 - ""C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 --default-int i32 --default-float f64"; options = { command = dotnet "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 --default-int i32 --default-float f64; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = Some <fun:compiler@87-4>; stdin = None; trace = true; working_directory = Some "C:\home\git\polyglot" } } -00:00:01 v #2 > 00:00:00 d #1 pwd: C:\home\git\polyglot -00:00:01 v #3 > 00:00:00 d #2 dllPath: C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release -00:00:01 v #4 > 00:00:00 d #3 targetDir: C:\home\git\polyglot\target/spiral_Eval -00:00:01 v #2 async.run_with_timeout_async / { timeout = 100 } -00:00:01 v #3 async.run_with_timeout_async / { timeout = 100 } -00:00:01 v #4 async.run_with_timeout_async / { timeout = 100 } -00:00:01 v #5 async.run_with_timeout_async / { timeout = 100 } -00:00:01 d #1 Async.runWithTimeoutAsync / timeout: 500 -00:00:01 v #5 > Starting the Spiral Server. It is bound to: http://localhost:13805 -00:00:02 v #2 Supervisor.sendJson / port: 13805 / json: {"Ping":true} / result: -00:00:02 v #3 Supervisor.awaitCompiler / Ping / result: 'Some null' / port: 13805 / retry: 1 -00:00:02 v #6 > Server bound to: http://localhost:13805 -00:00:02 v #6 async.run_with_timeout_async / { timeout = 180 } -00:00:02 v #6 async.run_with_timeout_async / { timeout = 180 } -00:00:02 v #6 async.run_with_timeout_async / { timeout = 180 } -00:00:02 v #6 async.run_with_timeout_async / { timeout = 180 } -00:00:02 v #6 async.run_with_timeout_async / { timeout = 180 } -00:00:02 d #4 Supervisor.buildFile / takeWhileInclusive / path: async.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:02 d #6 Supervisor.buildFile / takeWhileInclusive / path: trace.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:02 d #5 Supervisor.buildFile / takeWhileInclusive / path: threading.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:02 d #7 Supervisor.buildFile / takeWhileInclusive / path: networking.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:02 d #8 Supervisor.buildFile / takeWhileInclusive / path: runtime.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:02 d #9 Supervisor.buildFile / AsyncSeq.scan / path: threading.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:02 d #10 Supervisor.buildFile / AsyncSeq.scan / path: trace.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:02 d #11 Supervisor.buildFile / AsyncSeq.scan / path: networking.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:02 d #12 Supervisor.buildFile / AsyncSeq.scan / path: runtime.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:02 d #13 Supervisor.buildFile / AsyncSeq.scan / path: async.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:02 d #14 Supervisor.buildFile / takeWhileInclusive / path: runtime.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:02 d #16 Supervisor.buildFile / takeWhileInclusive / path: threading.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:02 d #14 Supervisor.buildFile / takeWhileInclusive / path: networking.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:02 d #14 Supervisor.buildFile / takeWhileInclusive / path: trace.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:02 d #14 Supervisor.buildFile / takeWhileInclusive / path: async.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:02 v #19 Supervisor.sendJson / port: 13805 / json: {"FileOpen":{"spiText":"/// # threading\nopen rust\nopen rust_operators\n\n/// ## rust\n\n/// ### sl...new_disposable_token x\u0027 : ()\n","uri":"file:///c:/home/git/polyglot/lib/spiral/threading.spi"}} / result: -00:00:02 v #21 Supervisor.sendJson / port: 13805 / json: {"FileOpen":{"spiText":"/// # trace\n\n/// ## trace\n\n/// ### trace_level\nunion trace_level =\n ...0027let trace x = !trace x\u0027 : ()\n","uri":"file:///c:/home/git/polyglot/lib/spiral/trace.spi"}} / result: -00:00:02 v #19 Supervisor.sendJson / port: 13805 / json: {"FileOpen":{"spiText":"/// # async\nopen rust\nopen rust_operators\n\n/// ### base_let\u0027\ninl b...token_with_default_async x\u0027 : ()\n","uri":"file:///c:/home/git/polyglot/lib/spiral/async.spi"}} / result: -00:00:02 v #19 Supervisor.sendJson / port: 13805 / json: {"FileOpen":{"spiText":"/// # networking\nopen rust.rust_operators\n\n/// ## rust\n\n/// ### reqwest...!get_available_port x\u0027 : ()\n","uri":"file:///c:/home/git/polyglot/lib/spiral/networking.spi"}} / result: -00:00:02 v #20 Supervisor.sendJson / port: 13805 / json: {"FileOpen":{"spiText":"/// # runtime\nopen rust\nopen rust_operators\nopen sm\u0027_operators\n\n//...t_args x = !split_args x\u0027 : ()\n","uri":"file:///c:/home/git/polyglot/lib/spiral/runtime.spi"}} / result: -00:00:03 v #22 Supervisor.sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/lib/spiral/networking.spi"}} / result: -00:00:03 v #22 Supervisor.sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/lib/spiral/async.spi"}} / result: -00:00:03 v #24 Supervisor.sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/lib/spiral/runtime.spi"}} / result: -00:00:03 v #25 Supervisor.sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/lib/spiral/trace.spi"}} / result: -00:00:03 v #25 Supervisor.sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/lib/spiral/threading.spi"}} / result: -00:00:03 d #27 Supervisor.buildFile / AsyncSeq.scan / path: networking.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:03 d #28 Supervisor.buildFile / AsyncSeq.scan / path: runtime.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:03 d #29 Supervisor.buildFile / takeWhileInclusive / path: networking.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:03 d #30 Supervisor.buildFile / takeWhileInclusive / path: runtime.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:03 d #31 Supervisor.buildFile / AsyncSeq.scan / path: threading.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:03 d #32 Supervisor.buildFile / AsyncSeq.scan / path: async.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:03 d #33 Supervisor.buildFile / takeWhileInclusive / path: threading.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:03 d #32 Supervisor.buildFile / AsyncSeq.scan / path: trace.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:03 d #35 Supervisor.buildFile / takeWhileInclusive / path: trace.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:03 d #34 Supervisor.buildFile / takeWhileInclusive / path: async.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:03 d #36 Supervisor.buildFile / AsyncSeq.scan / path: runtime.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:03 d #36 Supervisor.buildFile / AsyncSeq.scan / path: networking.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:03 d #36 Supervisor.buildFile / AsyncSeq.scan / path: async.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:03 d #41 Supervisor.buildFile / takeWhileInclusive / path: runtime.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:03 d #36 Supervisor.buildFile / AsyncSeq.scan / path: trace.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:03 d #42 Supervisor.buildFile / takeWhileInclusive / path: networking.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:03 d #36 Supervisor.buildFile / AsyncSeq.scan / path: threading.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:03 d #43 Supervisor.buildFile / takeWhileInclusive / path: async.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:03 d #44 Supervisor.buildFile / takeWhileInclusive / path: trace.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:03 d #45 Supervisor.buildFile / takeWhileInclusive / path: threading.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:04 d #46 Supervisor.buildFile / AsyncSeq.scan / path: networking.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:04 d #46 Supervisor.buildFile / AsyncSeq.scan / path: threading.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:04 d #48 Supervisor.buildFile / takeWhileInclusive / path: networking.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:04 d #49 Supervisor.buildFile / AsyncSeq.scan / path: async.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:04 d #50 Supervisor.buildFile / takeWhileInclusive / path: async.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:04 d #51 Supervisor.buildFile / AsyncSeq.scan / path: trace.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:04 d #52 Supervisor.buildFile / takeWhileInclusive / path: trace.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:04 d #53 Supervisor.buildFile / takeWhileInclusive / path: threading.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:04 d #53 Supervisor.buildFile / AsyncSeq.scan / path: runtime.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:04 d #55 Supervisor.buildFile / takeWhileInclusive / path: runtime.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:04 d #56 Supervisor.buildFile / AsyncSeq.scan / path: runtime.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:04 d #59 Supervisor.buildFile / AsyncSeq.scan / path: trace.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:04 d #58 Supervisor.buildFile / AsyncSeq.scan / path: networking.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:04 d #56 Supervisor.buildFile / AsyncSeq.scan / path: threading.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:04 d #60 Supervisor.buildFile / takeWhileInclusive / path: trace.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:04 d #61 Supervisor.buildFile / AsyncSeq.scan / path: async.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:04 d #62 Supervisor.buildFile / takeWhileInclusive / path: networking.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:04 d #63 Supervisor.buildFile / takeWhileInclusive / path: threading.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:04 d #64 Supervisor.buildFile / takeWhileInclusive / path: runtime.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:04 d #65 Supervisor.buildFile / takeWhileInclusive / path: async.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:05 d #66 Supervisor.buildFile / AsyncSeq.scan / path: runtime.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:05 d #68 Supervisor.buildFile / AsyncSeq.scan / path: async.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:05 d #66 Supervisor.buildFile / AsyncSeq.scan / path: networking.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:05 d #67 Supervisor.buildFile / AsyncSeq.scan / path: threading.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:05 d #66 Supervisor.buildFile / AsyncSeq.scan / path: trace.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:05 d #69 Supervisor.buildFile / takeWhileInclusive / path: runtime.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:05 d #70 Supervisor.buildFile / takeWhileInclusive / path: networking.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:05 d #71 Supervisor.buildFile / takeWhileInclusive / path: threading.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:05 d #72 Supervisor.buildFile / takeWhileInclusive / path: trace.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:05 d #73 Supervisor.buildFile / takeWhileInclusive / path: async.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:05 d #74 Supervisor.buildFile / AsyncSeq.scan / path: threading.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:05 d #75 Supervisor.buildFile / AsyncSeq.scan / path: networking.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:05 d #76 Supervisor.buildFile / AsyncSeq.scan / path: runtime.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:05 d #77 Supervisor.buildFile / takeWhileInclusive / path: runtime.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:05 d #78 Supervisor.buildFile / takeWhileInclusive / path: threading.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:05 d #79 Supervisor.buildFile / takeWhileInclusive / path: networking.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:05 d #77 Supervisor.buildFile / AsyncSeq.scan / path: trace.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:05 d #81 Supervisor.buildFile / AsyncSeq.scan / path: async.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:05 d #82 Supervisor.buildFile / takeWhileInclusive / path: async.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:05 d #83 Supervisor.buildFile / takeWhileInclusive / path: trace.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:06 d #84 Supervisor.buildFile / AsyncSeq.scan / path: runtime.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:06 d #84 Supervisor.buildFile / AsyncSeq.scan / path: trace.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:06 d #85 Supervisor.buildFile / takeWhileInclusive / path: trace.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:06 d #86 Supervisor.buildFile / AsyncSeq.scan / path: async.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:06 d #87 Supervisor.buildFile / takeWhileInclusive / path: runtime.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:06 d #88 Supervisor.buildFile / takeWhileInclusive / path: async.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:06 d #89 Supervisor.buildFile / AsyncSeq.scan / path: threading.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:06 d #90 Supervisor.buildFile / takeWhileInclusive / path: threading.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:06 d #91 Supervisor.buildFile / AsyncSeq.scan / path: networking.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:06 d #92 Supervisor.buildFile / takeWhileInclusive / path: networking.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:06 d #93 Supervisor.buildFile / AsyncSeq.scan / path: threading.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: -type Disposable (f : unit -> unit) = interface System.IDisposable with member _.Dispose () = f () -type [<Struct>] US0 = - | US0_0 of f0_0 : System.Threading.CancellationToken - | US0_1 -let rec closure1 () (v0 : System.Threading.CancellationToken) : US0 = - US0_0(v0) -and method0 () : (System.Threading.CancellationToken -> US0) = - closure1() -and closure2 (v0 : System.Threading.CancellationTokenSource) () : unit = - (* run_target_args' - let v1 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - null |> unbox<unit> - #endif -#if FABLE_COMPILER_RUST && WASM - null |> unbox<unit> - #endif -#if FABLE_COMPILER_RUST && CONTRACT - null |> unbox<unit...er _.Dispose () = v74 () } - let _run_target_args'_v63 = v75 - #endif -#else - let v76 : (unit -> unit) = method2(v62) - let v77 : System.IDisposable = { new System.IDisposable with member _.Dispose () = v76 () } - let _run_target_args'_v63 = v77 - #endif - let v78 : System.IDisposable = _run_target_args'_v63 - let v82 : System.Threading.CancellationToken = v62.Token - let _run_target_args'_v1 = struct (v82, v78) - #endif - let struct (v83 : System.Threading.CancellationToken, v84 : System.IDisposable) = _run_target_args'_v1 - struct (v83, v84) -let v0 : (System.Threading.CancellationToken option -> struct (System.Threading.CancellationToken * System.IDisposable)) = closure0() -let new_disposable_token x = v0 x -() - -00:00:06 d #94 Supervisor.buildFile / takeWhileInclusive / path: threading.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: -type Disposable (f : unit -> unit) = interface System.IDisposable with member _.Dispose () = f () -type [<Struct>] US0 = - | US0_0 of f0_0 : System.Threading.CancellationToken - | US0_1 -let rec closure1 () (v0 : System.Threading.CancellationToken) : US0 = - US0_0(v0) -and method0 () : (System.Threading.CancellationToken -> US0) = - closure1() -and closure2 (v0 : System.Threading.CancellationTokenSource) () : unit = - (* run_target_args' - let v1 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - null |> unbox<unit> - #endif -#if FABLE_COMPILER_RUST && WASM - null |> unbox<unit> - #endif -#if FABLE_COMPILER_RUST && CONTRACT - null |> unbox<unit...er _.Dispose () = v74 () } - let _run_target_args'_v63 = v75 - #endif -#else - let v76 : (unit -> unit) = method2(v62) - let v77 : System.IDisposable = { new System.IDisposable with member _.Dispose () = v76 () } - let _run_target_args'_v63 = v77 - #endif - let v78 : System.IDisposable = _run_target_args'_v63 - let v82 : System.Threading.CancellationToken = v62.Token - let _run_target_args'_v1 = struct (v82, v78) - #endif - let struct (v83 : System.Threading.CancellationToken, v84 : System.IDisposable) = _run_target_args'_v1 - struct (v83, v84) -let v0 : (System.Threading.CancellationToken option -> struct (System.Threading.CancellationToken * System.IDisposable)) = closure0() -let new_disposable_token x = v0 x -() - -00:00:06 d #95 FileSystem.watchWithFilter / Disposing watch stream / filter: FileName, LastWrite -00:00:06 v #8 async.run_with_timeout_async / { timeout = 180 } -00:00:07 d #96 Supervisor.buildFile / AsyncSeq.scan / path: trace.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:07 d #98 Supervisor.buildFile / takeWhileInclusive / path: trace.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:07 d #98 Supervisor.buildFile / AsyncSeq.scan / path: runtime.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:07 d #97 Supervisor.buildFile / AsyncSeq.scan / path: networking.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:07 d #100 Supervisor.buildFile / takeWhileInclusive / path: networking.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:07 d #101 Supervisor.buildFile / takeWhileInclusive / path: runtime.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:07 d #102 Supervisor.buildFile / AsyncSeq.scan / path: async.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:07 d #103 Supervisor.buildFile / takeWhileInclusive / path: async.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:07 d #104 Supervisor.buildFile / AsyncSeq.scan / path: async.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: -let rec method0 (v0 : System.Threading.CancellationToken) : Async<System.Threading.CancellationToken> = - (* run_target_args' - let v1 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v2 : Async<System.Threading.CancellationToken> = null |> unbox<Async<System.Threading.CancellationToken>> - let _run_target_args'_v1 = v2 - #endif -#if FABLE_COMPILER_RUST && WASM - let v5 : Async<System.Threading.CancellationToken> = null |> unbox<Async<System.Threading.CancellationToken>> - let _run_target_args'_v1 = v5 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v8 : Async<System.Threading.CancellationToken> = null |> unbox<Async<System.Threadin... let v747 : System.Threading.CancellationToken = v746.Token - return v747 - #endif - // run_target_args' is_unit - (* indent - () - indent *) - } - (* indent - () - indent *) - let v954 : Async<System.Threading.CancellationToken> = _let'_v719 - let _run_target_args'_v1 = v954 - #endif - let v955 : Async<System.Threading.CancellationToken> = _run_target_args'_v1 - v955 -and closure0 () (v0 : System.Threading.CancellationToken) : Async<System.Threading.CancellationToken> = - method0(v0) -let v0 : (System.Threading.CancellationToken -> Async<System.Threading.CancellationToken>) = closure0() -let merge_cancellation_token_with_default_async x = v0 x -() - -00:00:07 d #105 Supervisor.buildFile / takeWhileInclusive / path: async.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: -let rec method0 (v0 : System.Threading.CancellationToken) : Async<System.Threading.CancellationToken> = - (* run_target_args' - let v1 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v2 : Async<System.Threading.CancellationToken> = null |> unbox<Async<System.Threading.CancellationToken>> - let _run_target_args'_v1 = v2 - #endif -#if FABLE_COMPILER_RUST && WASM - let v5 : Async<System.Threading.CancellationToken> = null |> unbox<Async<System.Threading.CancellationToken>> - let _run_target_args'_v1 = v5 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v8 : Async<System.Threading.CancellationToken> = null |> unbox<Async<System.Threadin... let v747 : System.Threading.CancellationToken = v746.Token - return v747 - #endif - // run_target_args' is_unit - (* indent - () - indent *) - } - (* indent - () - indent *) - let v954 : Async<System.Threading.CancellationToken> = _let'_v719 - let _run_target_args'_v1 = v954 - #endif - let v955 : Async<System.Threading.CancellationToken> = _run_target_args'_v1 - v955 -and closure0 () (v0 : System.Threading.CancellationToken) : Async<System.Threading.CancellationToken> = - method0(v0) -let v0 : (System.Threading.CancellationToken -> Async<System.Threading.CancellationToken>) = closure0() -let merge_cancellation_token_with_default_async x = v0 x -() - -00:00:07 d #106 Supervisor.buildFile / AsyncSeq.scan / path: trace.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::string::String")>] -type std_string_String = class end -#else -type std_string_String = string -#endif - -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("&$0")>] -type Ref<'T> = class end -#else -type Ref<'T> = 'T -#endif - -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("mut $0")>] -#endif -type Mut<'T> = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("Vec<$0>")>] -#endif -type Vec<'T> = class end -module TraceState = let mutable trace_state = None -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::env::VarError")>] -#endif -type std_env_VarError = class end -type IOsEnviron = abstract environ: x: unit -> obj -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Co... else - let v43 : string = v2 () - method15(v20, v21, v22, v23, v24, v25, v38, v39, v40, v43) - method18(v45) -and closure5 (v0 : US0, v1 : (unit -> string)) (v2 : (unit -> string)) : unit = - let v3 : unit = () - let v4 : (unit -> unit) = closure6(v0, v1, v2) - let v5 : unit = (fun () -> v4 (); v3) () - () -and closure4 (v0 : US0) (v1 : (unit -> string)) : ((unit -> string) -> unit) = - closure5(v0, v1) -and closure3 () (v0 : US0) : ((unit -> string) -> ((unit -> string) -> unit)) = - closure4(v0) -let v0 : unit = () -let v1 : (unit -> unit) = closure0() -let v2 : unit = (fun () -> v1 (); v0) () -let v16 : (US0 -> ((unit -> string) -> ((unit -> string) -> unit))) = closure3() -let trace x = v16 x -() - -00:00:07 d #107 Supervisor.buildFile / takeWhileInclusive / path: trace.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::string::String")>] -type std_string_String = class end -#else -type std_string_String = string -#endif - -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("&$0")>] -type Ref<'T> = class end -#else -type Ref<'T> = 'T -#endif - -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("mut $0")>] -#endif -type Mut<'T> = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("Vec<$0>")>] -#endif -type Vec<'T> = class end -module TraceState = let mutable trace_state = None -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::env::VarError")>] -#endif -type std_env_VarError = class end -type IOsEnviron = abstract environ: x: unit -> obj -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Co... else - let v43 : string = v2 () - method15(v20, v21, v22, v23, v24, v25, v38, v39, v40, v43) - method18(v45) -and closure5 (v0 : US0, v1 : (unit -> string)) (v2 : (unit -> string)) : unit = - let v3 : unit = () - let v4 : (unit -> unit) = closure6(v0, v1, v2) - let v5 : unit = (fun () -> v4 (); v3) () - () -and closure4 (v0 : US0) (v1 : (unit -> string)) : ((unit -> string) -> unit) = - closure5(v0, v1) -and closure3 () (v0 : US0) : ((unit -> string) -> ((unit -> string) -> unit)) = - closure4(v0) -let v0 : unit = () -let v1 : (unit -> unit) = closure0() -let v2 : unit = (fun () -> v1 (); v0) () -let v16 : (US0 -> ((unit -> string) -> ((unit -> string) -> unit))) = closure3() -let trace x = v16 x -() - -00:00:07 d #108 FileSystem.watchWithFilter / Disposing watch stream / filter: FileName, LastWrite -00:00:07 d #109 FileSystem.watchWithFilter / Disposing watch stream / filter: FileName, LastWrite -00:00:07 v #9 async.run_with_timeout_async / { timeout = 180 } -00:00:07 v #10 async.run_with_timeout_async / { timeout = 180 } -00:00:07 d #110 Supervisor.buildFile / AsyncSeq.scan / path: networking.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:07 d #110 Supervisor.buildFile / AsyncSeq.scan / path: runtime.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:07 d #112 Supervisor.buildFile / takeWhileInclusive / path: networking.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:07 d #113 Supervisor.buildFile / takeWhileInclusive / path: runtime.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:07 d #114 Supervisor.buildFile / takeWhileInclusive / path: date_time.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:07 d #114 Supervisor.buildFile / takeWhileInclusive / path: crypto.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:07 d #116 Supervisor.buildFile / takeWhileInclusive / path: common.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:07 d #117 Supervisor.buildFile / AsyncSeq.scan / path: crypto.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:07 d #118 Supervisor.buildFile / AsyncSeq.scan / path: date_time.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:07 d #119 Supervisor.buildFile / takeWhileInclusive / path: crypto.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:07 d #120 Supervisor.buildFile / takeWhileInclusive / path: date_time.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:07 d #121 Supervisor.buildFile / AsyncSeq.scan / path: common.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:07 d #122 Supervisor.buildFile / takeWhileInclusive / path: common.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:07 v #123 Supervisor.sendJson / port: 13805 / json: {"FileOpen":{"spiText":"/// # common\n\n/// ## common\n\n/// ### retry_fn\u0027\ninl retry_fn\u0027 ...et memoize x = !memoize x\u0027 : ()\n","uri":"file:///c:/home/git/polyglot/lib/spiral/common.spi"}} / result: -00:00:07 v #124 Supervisor.sendJson / port: 13805 / json: {"FileOpen":{"spiText":"/// # date_time\nopen rust.rust_operators\nopen sm\u0027_operators\n\n/// ##... x = !format_iso8601 x\u0027 : ()\n","uri":"file:///c:/home/git/polyglot/lib/spiral/date_time.spi"}} / result: -00:00:07 v #125 Supervisor.sendJson / port: 13805 / json: {"FileOpen":{"spiText":"/// # crypto\nopen rust\nopen rust_operators\n\n/// ## fsharp\n\n/// ### sha..._port x = !hash_to_port x\u0027 : ()\n","uri":"file:///c:/home/git/polyglot/lib/spiral/crypto.spi"}} / result: -00:00:07 v #126 Supervisor.sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/lib/spiral/common.spi"}} / result: -00:00:07 v #127 Supervisor.sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/lib/spiral/date_time.spi"}} / result: -00:00:07 v #128 Supervisor.sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/lib/spiral/crypto.spi"}} / result: -00:00:08 d #129 Supervisor.buildFile / AsyncSeq.scan / path: networking.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:08 d #130 Supervisor.buildFile / takeWhileInclusive / path: networking.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:08 d #131 Supervisor.buildFile / AsyncSeq.scan / path: runtime.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:08 d #132 Supervisor.buildFile / takeWhileInclusive / path: runtime.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:08 d #133 Supervisor.buildFile / AsyncSeq.scan / path: crypto.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:08 d #134 Supervisor.buildFile / AsyncSeq.scan / path: date_time.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:08 d #135 Supervisor.buildFile / takeWhileInclusive / path: crypto.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:08 d #136 Supervisor.buildFile / takeWhileInclusive / path: date_time.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:08 d #137 Supervisor.buildFile / AsyncSeq.scan / path: common.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:08 d #138 Supervisor.buildFile / takeWhileInclusive / path: common.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:08 d #139 Supervisor.buildFile / AsyncSeq.scan / path: runtime.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:08 d #140 Supervisor.buildFile / takeWhileInclusive / path: runtime.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:08 d #141 Supervisor.buildFile / AsyncSeq.scan / path: networking.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:08 d #142 Supervisor.buildFile / takeWhileInclusive / path: networking.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:08 d #143 Supervisor.buildFile / AsyncSeq.scan / path: date_time.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:08 d #144 Supervisor.buildFile / takeWhileInclusive / path: date_time.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:08 d #145 Supervisor.buildFile / AsyncSeq.scan / path: common.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:08 d #146 Supervisor.buildFile / takeWhileInclusive / path: common.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:08 d #147 Supervisor.buildFile / AsyncSeq.scan / path: crypto.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:08 d #148 Supervisor.buildFile / takeWhileInclusive / path: crypto.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:09 d #149 Supervisor.buildFile / AsyncSeq.scan / path: runtime.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:09 d #150 Supervisor.buildFile / takeWhileInclusive / path: runtime.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:09 d #151 Supervisor.buildFile / AsyncSeq.scan / path: networking.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:09 d #152 Supervisor.buildFile / takeWhileInclusive / path: networking.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:09 d #153 Supervisor.buildFile / AsyncSeq.scan / path: crypto.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:09 d #154 Supervisor.buildFile / takeWhileInclusive / path: crypto.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:09 d #155 Supervisor.buildFile / AsyncSeq.scan / path: common.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:09 d #156 Supervisor.buildFile / takeWhileInclusive / path: common.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:09 d #157 Supervisor.buildFile / AsyncSeq.scan / path: date_time.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:09 d #158 Supervisor.buildFile / takeWhileInclusive / path: date_time.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:09 d #159 Supervisor.buildFile / AsyncSeq.scan / path: common.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::string::String")>] -type std_string_String = class end -#else -type std_string_String = string -#endif - -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("&$0")>] -type Ref<'T> = class end -#else -type Ref<'T> = 'T -#endif - -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("mut $0")>] -#endif -type Mut<'T> = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("Vec<$0>")>] -#endif -type Vec<'T> = class end -module TraceState = let mutable trace_state = None -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::env::VarError")>] -#endif -type std_env_VarError = class end -type IOsEnviron = abstract environ: x: unit -> obj -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Co...ion = Some () - v4 -and closure4 () (v0 : int32) : ((unit -> unit) -> unit option) = - closure5(v0) -and method22 (v0 : (unit -> unit)) : (unit -> unit) = - v0 -and closure16 (v0 : Lazy<unit>) () : unit = - v0.Value - () -and closure15 () (v0 : (unit -> unit)) : (unit -> unit) = - let v1 : (unit -> unit) = method22(v0) - let v2 : Lazy<unit> = lazy v1 () - closure16(v2) -let v0 : unit = () -let v1 : (unit -> unit) = closure0() -let v2 : unit = (fun () -> v1 (); v0) () -let v16 : ((unit -> unit) -> System.IDisposable) = closure3() -let new_disposable x = v16 x -let v17 : (int32 -> ((unit -> unit) -> unit option)) = closure4() -let retry_fn x = v17 x -let v18 : ((unit -> unit) -> (unit -> unit)) = closure15() -let memoize x = v18 x -() - -00:00:09 d #160 Supervisor.buildFile / takeWhileInclusive / path: common.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::string::String")>] -type std_string_String = class end -#else -type std_string_String = string -#endif - -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("&$0")>] -type Ref<'T> = class end -#else -type Ref<'T> = 'T -#endif - -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("mut $0")>] -#endif -type Mut<'T> = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("Vec<$0>")>] -#endif -type Vec<'T> = class end -module TraceState = let mutable trace_state = None -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::env::VarError")>] -#endif -type std_env_VarError = class end -type IOsEnviron = abstract environ: x: unit -> obj -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Co...ion = Some () - v4 -and closure4 () (v0 : int32) : ((unit -> unit) -> unit option) = - closure5(v0) -and method22 (v0 : (unit -> unit)) : (unit -> unit) = - v0 -and closure16 (v0 : Lazy<unit>) () : unit = - v0.Value - () -and closure15 () (v0 : (unit -> unit)) : (unit -> unit) = - let v1 : (unit -> unit) = method22(v0) - let v2 : Lazy<unit> = lazy v1 () - closure16(v2) -let v0 : unit = () -let v1 : (unit -> unit) = closure0() -let v2 : unit = (fun () -> v1 (); v0) () -let v16 : ((unit -> unit) -> System.IDisposable) = closure3() -let new_disposable x = v16 x -let v17 : (int32 -> ((unit -> unit) -> unit option)) = closure4() -let retry_fn x = v17 x -let v18 : ((unit -> unit) -> (unit -> unit)) = closure15() -let memoize x = v18 x -() - -00:00:09 d #161 FileSystem.watchWithFilter / Disposing watch stream / filter: FileName, LastWrite -00:00:09 d #162 Supervisor.buildFile / AsyncSeq.scan / path: date_time.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("chrono::DateTime<$0>")>] -#endif -type chrono_DateTime<'T> = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("chrono::NaiveDateTime")>] -#endif -type chrono_NaiveDateTime = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("&$0")>] -type Ref<'T> = class end -#else -type Ref<'T> = 'T -#endif - -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::string::String")>] -type std_string_String = class end -#else -type std_string_String = string -#endif - -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("chrono::Utc")>] -#endif -type chrono_Utc = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("chrono::Local")>] -#endif -type chrono_Local = class en...HH-mm-ss.fff" - v1 v2 -let v0 : (System.Guid -> (System.DateTime -> System.Guid)) = closure0() -let date_time_guid_from_date_time x = v0 x -let v1 : (System.Guid -> System.DateTime) = closure3() -let date_time_from_guid x = v1 x -let v2 : (System.Guid -> (int64 -> System.Guid)) = closure5() -let timestamp_guid_from_timestamp x = v2 x -let v3 : (System.Guid -> int64) = closure8() -let timestamp_from_guid x = v3 x -let v4 : (System.DateTime -> System.Guid) = closure9() -let new_guid_from_date_time x = v4 x -let v5 : (int64 -> System.Guid) = closure10() -let new_guid_from_timestamp x = v5 x -let v6 : (string -> (System.DateTime -> string)) = closure11() -let format x = v6 x -let v7 : (System.DateTime -> string) = closure13() -let format_iso8601 x = v7 x -() - -00:00:09 d #163 Supervisor.buildFile / takeWhileInclusive / path: date_time.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("chrono::DateTime<$0>")>] -#endif -type chrono_DateTime<'T> = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("chrono::NaiveDateTime")>] -#endif -type chrono_NaiveDateTime = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("&$0")>] -type Ref<'T> = class end -#else -type Ref<'T> = 'T -#endif - -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::string::String")>] -type std_string_String = class end -#else -type std_string_String = string -#endif - -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("chrono::Utc")>] -#endif -type chrono_Utc = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("chrono::Local")>] -#endif -type chrono_Local = class en...HH-mm-ss.fff" - v1 v2 -let v0 : (System.Guid -> (System.DateTime -> System.Guid)) = closure0() -let date_time_guid_from_date_time x = v0 x -let v1 : (System.Guid -> System.DateTime) = closure3() -let date_time_from_guid x = v1 x -let v2 : (System.Guid -> (int64 -> System.Guid)) = closure5() -let timestamp_guid_from_timestamp x = v2 x -let v3 : (System.Guid -> int64) = closure8() -let timestamp_from_guid x = v3 x -let v4 : (System.DateTime -> System.Guid) = closure9() -let new_guid_from_date_time x = v4 x -let v5 : (int64 -> System.Guid) = closure10() -let new_guid_from_timestamp x = v5 x -let v6 : (string -> (System.DateTime -> string)) = closure11() -let format x = v6 x -let v7 : (System.DateTime -> string) = closure13() -let format_iso8601 x = v7 x -() - -00:00:09 d #164 FileSystem.watchWithFilter / Disposing watch stream / filter: FileName, LastWrite -00:00:09 d #165 Supervisor.buildFile / AsyncSeq.scan / path: networking.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:09 d #165 Supervisor.buildFile / AsyncSeq.scan / path: runtime.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:09 d #167 Supervisor.buildFile / takeWhileInclusive / path: networking.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:09 d #168 Supervisor.buildFile / takeWhileInclusive / path: runtime.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:09 v #11 async.run_with_timeout_async / { timeout = 180 } -00:00:09 d #169 Supervisor.buildFile / takeWhileInclusive / path: platform.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:09 d #170 Supervisor.buildFile / AsyncSeq.scan / path: platform.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:09 d #171 Supervisor.buildFile / takeWhileInclusive / path: platform.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:09 v #172 Supervisor.sendJson / port: 13805 / json: {"FileOpen":{"spiText":"/// # platform\nopen rust.rust_operators\n\n/// ## fsharp\n\n/// ### os_plat...et_executable_suffix ()\u0027 : ()\n","uri":"file:///c:/home/git/polyglot/lib/spiral/platform.spi"}} / result: -00:00:09 v #173 Supervisor.sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/lib/spiral/platform.spi"}} / result: -00:00:09 d #174 Supervisor.buildFile / AsyncSeq.scan / path: crypto.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:09 d #175 Supervisor.buildFile / takeWhileInclusive / path: crypto.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:09 v #12 async.run_with_timeout_async / { timeout = 180 } -00:00:09 d #176 Supervisor.buildFile / takeWhileInclusive / path: file_system.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:09 d #177 Supervisor.buildFile / AsyncSeq.scan / path: file_system.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:09 d #178 Supervisor.buildFile / takeWhileInclusive / path: file_system.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:09 v #179 Supervisor.sendJson / port: 13805 / json: {"FileOpen":{"spiText":"/// # file_system\nopen sm\u0027_operators\nopen rust\nopen rust_operators\n...003E) x = !combine x\u0027 : ()\n","uri":"file:///c:/home/git/polyglot/lib/spiral/file_system.spi"}} / result: -00:00:09 v #180 Supervisor.sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/lib/spiral/file_system.spi"}} / result: -00:00:10 d #181 Supervisor.buildFile / AsyncSeq.scan / path: crypto.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("Vec<$0>")>] -#endif -type Vec<'T> = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::io::Cursor<$0>")>] -#endif -type std_io_Cursor<'T> = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::io::BufReader<$0>")>] -#endif -type std_io_BufReader<'T> = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("sha2::Sha256")>] -#endif -type sha2_Sha256 = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("_")>] -#endif -type Slice'<'T> = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("&$0")>] -type Ref<'T> = class end -#else -type Ref<'T> = 'T -#endif - -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::string::Stri...let _run_target_args'_v2 = v38 - #endif -#else - let v45 : int32 = System.Char.ConvertToUtf32 (string v1, 0) - let _run_target_args'_v2 = v45 - #endif - let v46 : int32 = _run_target_args'_v2 - let v57 : string = v0.[int 0..int 7] - let v60 : int32 = System.Convert.ToInt32 (v57, 16) - let v63 : int32 = v60 + v46 - let v64 : (int32 -> uint16) = uint16 - let v65 : uint16 = v64 v63 - let v68 : unit = () - let v69 : (unit -> unit) = closure2(v46, v57, v65) - let v70 : unit = (fun () -> v69 (); v68) () - let v110 : uint16 = v65 % 48128us - let v111 : uint16 = v110 + 1024us - v111 -let v0 : (string -> string) = closure0() -let hash_text x = v0 x -let v1 : (string -> uint16) = closure1() -let hash_to_port x = v1 x -() - -00:00:10 d #182 Supervisor.buildFile / takeWhileInclusive / path: crypto.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("Vec<$0>")>] -#endif -type Vec<'T> = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::io::Cursor<$0>")>] -#endif -type std_io_Cursor<'T> = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::io::BufReader<$0>")>] -#endif -type std_io_BufReader<'T> = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("sha2::Sha256")>] -#endif -type sha2_Sha256 = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("_")>] -#endif -type Slice'<'T> = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("&$0")>] -type Ref<'T> = class end -#else -type Ref<'T> = 'T -#endif - -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::string::Stri...let _run_target_args'_v2 = v38 - #endif -#else - let v45 : int32 = System.Char.ConvertToUtf32 (string v1, 0) - let _run_target_args'_v2 = v45 - #endif - let v46 : int32 = _run_target_args'_v2 - let v57 : string = v0.[int 0..int 7] - let v60 : int32 = System.Convert.ToInt32 (v57, 16) - let v63 : int32 = v60 + v46 - let v64 : (int32 -> uint16) = uint16 - let v65 : uint16 = v64 v63 - let v68 : unit = () - let v69 : (unit -> unit) = closure2(v46, v57, v65) - let v70 : unit = (fun () -> v69 (); v68) () - let v110 : uint16 = v65 % 48128us - let v111 : uint16 = v110 + 1024us - v111 -let v0 : (string -> string) = closure0() -let hash_text x = v0 x -let v1 : (string -> uint16) = closure1() -let hash_to_port x = v1 x -() - -00:00:10 d #183 FileSystem.watchWithFilter / Disposing watch stream / filter: FileName, LastWrite -00:00:10 d #184 Supervisor.buildFile / AsyncSeq.scan / path: runtime.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:10 d #184 Supervisor.buildFile / AsyncSeq.scan / path: networking.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:10 d #186 Supervisor.buildFile / takeWhileInclusive / path: runtime.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:10 d #187 Supervisor.buildFile / takeWhileInclusive / path: networking.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:10 d #188 Supervisor.buildFile / AsyncSeq.scan / path: platform.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:10 d #189 Supervisor.buildFile / takeWhileInclusive / path: platform.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:10 d #190 Supervisor.buildFile / AsyncSeq.scan / path: file_system.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:10 d #191 Supervisor.buildFile / takeWhileInclusive / path: file_system.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:10 v #13 async.run_with_timeout_async / { timeout = 180 } -00:00:10 d #192 Supervisor.buildFile / takeWhileInclusive / path: guid.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:10 d #193 Supervisor.buildFile / AsyncSeq.scan / path: guid.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:10 d #194 Supervisor.buildFile / takeWhileInclusive / path: guid.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:10 v #195 Supervisor.sendJson / port: 13805 / json: {"FileOpen":{"spiText":"/// # guid\n\n/// ## guid\n\n/// ### guid\nnominal guid_python =\n \u0060...aw_guid x = !new_raw_guid x\u0027 : ()\n","uri":"file:///c:/home/git/polyglot/lib/spiral/guid.spi"}} / result: -00:00:10 v #196 Supervisor.sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/lib/spiral/guid.spi"}} / result: -00:00:10 d #197 Supervisor.buildFile / AsyncSeq.scan / path: networking.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:10 d #198 Supervisor.buildFile / takeWhileInclusive / path: networking.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:10 d #199 Supervisor.buildFile / AsyncSeq.scan / path: platform.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: -type [<Struct>] US0 = - | US0_0 - | US0_1 - | US0_2 -and [<Struct>] US1 = - | US1_0 of f0_0 : US0 - | US1_1 of f1_0 : US0 - | US1_2 of f2_0 : US0 - | US1_3 of f3_0 : US0 - | US1_4 of f4_0 : US0 -let rec closure0 () () : bool = - (* run_target_args' - let v0 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v1 : string = "cfg!(windows)" - let v2 : bool = Fable.Core.RustInterop.emitRustExpr () v1 - let _run_target_args'_v0 = v2 - #endif -#if FABLE_COMPILER_RUST && WASM - let v3 : string = "cfg!(windows)" - let v4 : bool = Fable.Core.RustInterop.emitRustExpr () v3 - let _run_target_args'_v0 = v4 - #endif -#if FABLE_COMPILE...untime.InteropServices.RuntimeInformation.IsOSPlatform - let v17 : bool = v16 v15 - let _run_target_args'_v0 = v17 - #endif -#else - let v18 : System.Runtime.InteropServices.OSPlatform = System.Runtime.InteropServices.OSPlatform.Windows - let v19 : (System.Runtime.InteropServices.OSPlatform -> bool) = System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform - let v20 : bool = v19 v18 - let _run_target_args'_v0 = v20 - #endif - let v21 : bool = _run_target_args'_v0 - if v21 then - let v27 : string = ".exe" - v27 - else - let v28 : string = "" - v28 -let v0 : (unit -> bool) = closure0() -let is_windows () = v0 () -let v1 : (unit -> string) = closure1() -let get_executable_suffix () = v1 () -() - -00:00:10 d #200 Supervisor.buildFile / takeWhileInclusive / path: platform.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: -type [<Struct>] US0 = - | US0_0 - | US0_1 - | US0_2 -and [<Struct>] US1 = - | US1_0 of f0_0 : US0 - | US1_1 of f1_0 : US0 - | US1_2 of f2_0 : US0 - | US1_3 of f3_0 : US0 - | US1_4 of f4_0 : US0 -let rec closure0 () () : bool = - (* run_target_args' - let v0 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v1 : string = "cfg!(windows)" - let v2 : bool = Fable.Core.RustInterop.emitRustExpr () v1 - let _run_target_args'_v0 = v2 - #endif -#if FABLE_COMPILER_RUST && WASM - let v3 : string = "cfg!(windows)" - let v4 : bool = Fable.Core.RustInterop.emitRustExpr () v3 - let _run_target_args'_v0 = v4 - #endif -#if FABLE_COMPILE...untime.InteropServices.RuntimeInformation.IsOSPlatform - let v17 : bool = v16 v15 - let _run_target_args'_v0 = v17 - #endif -#else - let v18 : System.Runtime.InteropServices.OSPlatform = System.Runtime.InteropServices.OSPlatform.Windows - let v19 : (System.Runtime.InteropServices.OSPlatform -> bool) = System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform - let v20 : bool = v19 v18 - let _run_target_args'_v0 = v20 - #endif - let v21 : bool = _run_target_args'_v0 - if v21 then - let v27 : string = ".exe" - v27 - else - let v28 : string = "" - v28 -let v0 : (unit -> bool) = closure0() -let is_windows () = v0 () -let v1 : (unit -> string) = closure1() -let get_executable_suffix () = v1 () -() - -00:00:10 d #201 Supervisor.buildFile / AsyncSeq.scan / path: runtime.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:10 d #202 Supervisor.buildFile / takeWhileInclusive / path: runtime.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:10 d #203 FileSystem.watchWithFilter / Disposing watch stream / filter: FileName, LastWrite -00:00:10 d #204 Supervisor.buildFile / AsyncSeq.scan / path: file_system.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:10 d #205 Supervisor.buildFile / takeWhileInclusive / path: file_system.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:10 d #206 Supervisor.buildFile / AsyncSeq.scan / path: guid.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:10 d #207 Supervisor.buildFile / takeWhileInclusive / path: guid.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:10 v #14 async.run_with_timeout_async / { timeout = 180 } -00:00:10 d #208 Supervisor.buildFile / takeWhileInclusive / path: sm'.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:10 d #209 Supervisor.buildFile / AsyncSeq.scan / path: sm'.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:10 d #210 Supervisor.buildFile / takeWhileInclusive / path: sm'.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:10 v #211 Supervisor.sendJson / port: 13805 / json: {"FileOpen":{"spiText":"/// # sm\u0027\nopen rust\nopen rust_operators\nopen sm\u0027_real\n\n/// ##...tring std_string = from_std_string\n","uri":"file:///c:/home/git/polyglot/lib/spiral/sm\u0027.spi"}} / result: -00:00:10 v #212 Supervisor.sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/lib/spiral/sm\u0027.spi"}} / result: -00:00:11 d #213 Supervisor.buildFile / AsyncSeq.scan / path: networking.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:11 d #214 Supervisor.buildFile / takeWhileInclusive / path: networking.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:11 d #215 Supervisor.buildFile / AsyncSeq.scan / path: runtime.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:11 d #216 Supervisor.buildFile / takeWhileInclusive / path: runtime.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:11 d #217 Supervisor.buildFile / AsyncSeq.scan / path: file_system.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:11 d #218 Supervisor.buildFile / takeWhileInclusive / path: file_system.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:11 d #219 Supervisor.buildFile / AsyncSeq.scan / path: guid.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:11 d #220 Supervisor.buildFile / takeWhileInclusive / path: guid.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:11 d #221 Supervisor.buildFile / AsyncSeq.scan / path: sm'.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:11 d #222 Supervisor.buildFile / takeWhileInclusive / path: sm'.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:11 d #223 Supervisor.buildFile / AsyncSeq.scan / path: guid.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: -let rec closure0 () (v0 : string) : System.Guid = - (* run_target_args' - let v1 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v2 : System.Guid = v0 |> System.Guid - let _run_target_args'_v1 = v2 - #endif -#if FABLE_COMPILER_RUST && WASM - let v5 : System.Guid = v0 |> System.Guid - let _run_target_args'_v1 = v5 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v8 : System.Guid = null |> unbox<System.Guid> - let _run_target_args'_v1 = v8 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v11 : System.Guid = v0 |> System.Guid - let _run_target_args'_v1 = v11 - #endif -#if FABLE_COMPILER_PYTHON - let v14 : System.Guid = v0 |...PYTHON - let v743 : System.Guid = v726 |> System.Guid - let _run_target_args'_v727 = v743 - #endif -#else - let v746 : System.Guid = v726 |> System.Guid - let _run_target_args'_v727 = v746 - #endif - let v749 : System.Guid = _run_target_args'_v727 - let _run_target_args'_v12 = v749 - #endif - let v754 : System.Guid = _run_target_args'_v12 - v754 -and closure1 () (v0 : string) : System.Guid = - method0(v0) -and closure3 () () : System.Guid = - let v0 : (unit -> System.Guid) = System.Guid.NewGuid - v0 () -let v0 : (string -> System.Guid) = closure0() -let new_guid x = v0 x -let v1 : (string -> System.Guid) = closure1() -let hash_guid x = v1 x -let v2 : (unit -> System.Guid) = closure3() -let new_raw_guid x = v2 x -() - -00:00:11 d #224 Supervisor.buildFile / takeWhileInclusive / path: guid.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: -let rec closure0 () (v0 : string) : System.Guid = - (* run_target_args' - let v1 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v2 : System.Guid = v0 |> System.Guid - let _run_target_args'_v1 = v2 - #endif -#if FABLE_COMPILER_RUST && WASM - let v5 : System.Guid = v0 |> System.Guid - let _run_target_args'_v1 = v5 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v8 : System.Guid = null |> unbox<System.Guid> - let _run_target_args'_v1 = v8 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v11 : System.Guid = v0 |> System.Guid - let _run_target_args'_v1 = v11 - #endif -#if FABLE_COMPILER_PYTHON - let v14 : System.Guid = v0 |...PYTHON - let v743 : System.Guid = v726 |> System.Guid - let _run_target_args'_v727 = v743 - #endif -#else - let v746 : System.Guid = v726 |> System.Guid - let _run_target_args'_v727 = v746 - #endif - let v749 : System.Guid = _run_target_args'_v727 - let _run_target_args'_v12 = v749 - #endif - let v754 : System.Guid = _run_target_args'_v12 - v754 -and closure1 () (v0 : string) : System.Guid = - method0(v0) -and closure3 () () : System.Guid = - let v0 : (unit -> System.Guid) = System.Guid.NewGuid - v0 () -let v0 : (string -> System.Guid) = closure0() -let new_guid x = v0 x -let v1 : (string -> System.Guid) = closure1() -let hash_guid x = v1 x -let v2 : (unit -> System.Guid) = closure3() -let new_raw_guid x = v2 x -() - -00:00:11 d #225 FileSystem.watchWithFilter / Disposing watch stream / filter: FileName, LastWrite -00:00:11 d #226 FileSystem.watchWithFilter / Disposing watch stream / filter: FileName, LastWrite -00:00:11 d #227 FileSystem.watchWithFilter / Disposing watch stream / filter: FileName, LastWrite -00:00:11 d #228 FileSystem.watchWithFilter / Disposing watch stream / filter: FileName, LastWrite -00:00:11 d #229 FileSystem.watchWithFilter / Disposing watch stream / filter: FileName, LastWrite -00:00:11 v #15 async.run_with_timeout_async / { timeout = 100 } -00:00:11 c #230 Async.runWithTimeoutAsync** / ex: System.AggregateException: One or more errors occurred. (The process cannot access the file 'C:\home\git\polyglot\lib\spiral\guid.fsx' because it is being used by another process.) - ---> System.IO.IOException: The process cannot access the file 'C:\home\git\polyglot\lib\spiral\guid.fsx' because it is being used by another process. - at Microsoft.Win32.SafeHandles.SafeFileHandle.CreateFile(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options) - at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, Nullable`1 unixCreateMode) - at System.IO.File.OpenHandle(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize) - at System.IO.File.WriteToFileAsync(String path, FileMode mode, ReadOnlyMemory`1 contents, Encoding encoding, CancellationToken cancellationToken) - --- End of inner exception stack trace --- - at Microsoft.FSharp.Control.AsyncResult`1.Commit() in D:\a\_work\1\s\src\FSharp.Core\async.fs:line 454 - at <StartupCode$FSharp-Core>.$Async.AwaitAndBindChildResult@1976-6.Invoke(Boolean ok) in D:\a\_work\1\s\src\FSharp.Core\async.fs:line 1978 - at Microsoft.FSharp.Control.AsyncPrimitives.CallThenInvokeNoHijackCheck[a,b](AsyncActivation`1 ctxt, b result1, FSharpFunc`2 userCode) in D:\a\_work\1\s\src\FSharp.Core\async.fs:line 528 - at Microsoft.FSharp.Control.Trampoline.Execute(FSharpFunc`2 firstAction) in D:\a\_work\1\s\src\FSharp.Core\async.fs:line 112 / timeout: 3600000 - -# Invoke-Block / $retry: 1/3 / $Location: / Get-Location: C:\home\git\polyglot\lib\spiral / $OnError: Stop / $exitcode: 1 / $EnvVars: { - "PATH": "C:\\Users\\i574n\\scoop\\apps\\pwsh\\current;C:\\Program Files\\NVIDIA\\CUDNN\\v9.1\\bin;C:\\ProgramData\\scoop\\shims;C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\;C:\\WINDOWS\\System32\\OpenSSH\\;C:\\ProgramData\\chocolatey\\bin;C:\\Program Files\\dotnet\\;C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\;C:\\WINDOWS\\System32\\OpenSSH\\;C:\\Program Files\\Intel\\WiFi\\bin\\;C:\\Program Files\\Common Files\\Intel\\WirelessCommon\\;C:\\Program Files\\Perforce;C:\\Program Files\\Wasmtime\\bin;C:\\Program Files\\Perforce\\;C:\\Program Files\\Microsoft SQL Server\\150\\Tools\\Binn\\;C:\\Program Files (x86)\\Windows Kits\\10\\Windows Performance Toolkit\\;C:\\Users\\i574n\\scoop\\apps\\vscode-insiders\\current\\bin;C:\\Users\\i574n\\scoop\\apps\\elixir\\current\\bin;C:\\Users\\i574n\\scoop\\apps\\openssl\\current\\bin;C:\\Users\\i574n\\scoop\\apps\\vulkan\\current\\Bin;C:\\Users\\i574n\\scoop\\apps\\vulkan\\current\\Tools;C:\\Users\\i574n\\scoop\\apps\\python312\\current\\Scripts;C:\\Users\\i574n\\scoop\\apps\\python312\\current\\.;C:\\Users\\i574n\\scoop\\apps\\dotnet-sdk\\current\\.;C:\\Users\\i574n\\scoop\\apps\\perl\\current\\perl\\site\\bin;C:\\Users\\i574n\\scoop\\apps\\perl\\current\\perl\\bin;C:\\Users\\i574n\\scoop\\apps\\rustup\\current\\.cargo\\bin;C:\\Users\\i574n\\scoop\\apps\\latex\\current\\texmfs\\install\\miktex\\bin\\x64;C:\\Users\\i574n\\scoop\\apps\\dotnet-sdk-preview\\current;C:\\Users\\i574n\\scoop\\apps\\dotnet-sdk\\current;C:\\Users\\i574n\\scoop\\apps\\gsudo\\current;C:\\Users\\i574n\\scoop\\apps\\python\\current;C:\\Users\\i574n\\scoop\\apps\\nircmd\\current;C:\\Users\\i574n\\AppData\\Local\\Microsoft\\WindowsApps;C:\\Users\\i574n/scoop/buckets/mold/home/windows/path;C:\\Users\\i574n/scoop/persist/rustup/.cargo/bin;C:\\Users\\i574n/scoop/apps/nvm/current/nodejs/nodejs;C:\\Users\\i574n/scoop/apps/cygwin/current/root/bin;C:\\Users\\i574n\\AppData\\Local\\Programs\\Microsoft VS Code\\bin;C:\\Users\\i574n\\AppData\\Local\\Microsoft\\WindowsApps;C:\\Users\\i574n\\.bun\\bin;C:\\Users\\i574n\\.dotnet\\tools;C:\\Users\\i574n\\scoop\\shims;C:\\Users\\i574n\\.fly\\bin;C:\\Program Files\\Wasmtime\\bin;C:\\Users\\i574n\\.dotnet\\tools;C:\\Users\\i574n/.cargo/bin;C:\\Users\\i574n/.bun/bin;C:\\Users\\i574n/.cargo/bin;C:\\Users\\i574n/.bun/bin;C:\\Users\\i574n/.cargo/bin;C:\\Users\\i574n/.bun/bin" -} / $Error: '' / $ScriptBlock: -'. ../../apps/spiral/dist/Supervisor$(_exe) --parallel --build-file async.spi async_.fsx --build-file runtime.spi runtime.fsx --build-file trace.spi trace.fsx --build-file threading.spi threading.fsx --build-file networking.spi networking.fsx --build-file crypto.spi crypto.fsx --build-file common.spi common.fsx --build-file date_time.spi date_time.fsx --build-file platform.spi platform.fsx --build-file file_system.spi file_system.fsx --build-file guid.spi guid.fsx --build-file "sm'.spi" sm.fsx' - -00:00:00 v #1 async.run_with_timeout_async / { timeout = 180 } -00:00:00 d #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0 - ""C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 --default-int i32 --default-float f64"; options = { command = dotnet "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 --default-int i32 --default-float f64; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = Some <fun:compiler@87-4>; stdin = None; trace = true; working_directory = Some "C:\home\git\polyglot" } } -00:00:01 v #2 > 00:00:00 d #1 pwd: C:\home\git\polyglot -00:00:01 v #3 > 00:00:00 d #2 dllPath: C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release -00:00:01 v #4 > 00:00:00 d #3 targetDir: C:\home\git\polyglot\target/spiral_Eval -00:00:01 v #2 async.run_with_timeout_async / { timeout = 100 } -00:00:01 v #3 async.run_with_timeout_async / { timeout = 100 } -00:00:01 v #5 > Starting the Spiral Server. It is bound to: http://localhost:13805 -00:00:01 v #4 async.run_with_timeout_async / { timeout = 100 } -00:00:01 v #1 Supervisor.sendJson / port: 13805 / json: {"Ping":true} / result: -00:00:01 v #2 Supervisor.awaitCompiler / Ping / result: 'Some null' / port: 13805 / retry: 1 -00:00:01 v #6 > Server bound to: http://localhost:13805 -00:00:02 v #5 async.run_with_timeout_async / { timeout = 180 } -00:00:02 v #5 async.run_with_timeout_async / { timeout = 180 } -00:00:02 v #5 async.run_with_timeout_async / { timeout = 180 } -00:00:02 v #5 async.run_with_timeout_async / { timeout = 180 } -00:00:02 v #5 async.run_with_timeout_async / { timeout = 180 } -00:00:02 d #3 Supervisor.buildFile / takeWhileInclusive / path: async.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:02 d #5 Supervisor.buildFile / takeWhileInclusive / path: trace.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:02 d #6 Supervisor.buildFile / takeWhileInclusive / path: threading.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:02 d #7 Supervisor.buildFile / takeWhileInclusive / path: runtime.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:02 d #3 Supervisor.buildFile / takeWhileInclusive / path: networking.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:02 d #8 Supervisor.buildFile / AsyncSeq.scan / path: threading.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:02 d #9 Supervisor.buildFile / AsyncSeq.scan / path: runtime.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:02 d #10 Supervisor.buildFile / AsyncSeq.scan / path: async.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:02 d #10 Supervisor.buildFile / AsyncSeq.scan / path: trace.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:02 d #12 Supervisor.buildFile / AsyncSeq.scan / path: networking.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:02 d #13 Supervisor.buildFile / takeWhileInclusive / path: trace.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:02 d #14 Supervisor.buildFile / takeWhileInclusive / path: runtime.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:02 d #15 Supervisor.buildFile / takeWhileInclusive / path: async.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:02 d #14 Supervisor.buildFile / takeWhileInclusive / path: threading.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:02 d #17 Supervisor.buildFile / takeWhileInclusive / path: networking.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:02 v #18 Supervisor.sendJson / port: 13805 / json: {"FileOpen":{"spiText":"/// # threading\nopen rust\nopen rust_operators\n\n/// ## rust\n\n/// ### sl...new_disposable_token x\u0027 : ()\n","uri":"file:///c:/home/git/polyglot/lib/spiral/threading.spi"}} / result: -00:00:02 v #18 Supervisor.sendJson / port: 13805 / json: {"FileOpen":{"spiText":"/// # networking\nopen rust.rust_operators\n\n/// ## rust\n\n/// ### reqwest...!get_available_port x\u0027 : ()\n","uri":"file:///c:/home/git/polyglot/lib/spiral/networking.spi"}} / result: -00:00:02 v #18 Supervisor.sendJson / port: 13805 / json: {"FileOpen":{"spiText":"/// # trace\n\n/// ## trace\n\n/// ### trace_level\nunion trace_level =\n ...0027let trace x = !trace x\u0027 : ()\n","uri":"file:///c:/home/git/polyglot/lib/spiral/trace.spi"}} / result: -00:00:02 v #18 Supervisor.sendJson / port: 13805 / json: {"FileOpen":{"spiText":"/// # runtime\nopen rust\nopen rust_operators\nopen sm\u0027_operators\n\n//...t_args x = !split_args x\u0027 : ()\n","uri":"file:///c:/home/git/polyglot/lib/spiral/runtime.spi"}} / result: -00:00:02 v #20 Supervisor.sendJson / port: 13805 / json: {"FileOpen":{"spiText":"/// # async\nopen rust\nopen rust_operators\n\n/// ### base_let\u0027\ninl b...token_with_default_async x\u0027 : ()\n","uri":"file:///c:/home/git/polyglot/lib/spiral/async.spi"}} / result: -00:00:02 v #22 Supervisor.sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/lib/spiral/trace.spi"}} / result: -00:00:02 v #23 Supervisor.sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/lib/spiral/networking.spi"}} / result: -00:00:02 v #22 Supervisor.sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/lib/spiral/async.spi"}} / result: -00:00:02 v #24 Supervisor.sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/lib/spiral/runtime.spi"}} / result: -00:00:02 v #26 Supervisor.sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/lib/spiral/threading.spi"}} / result: -00:00:02 d #27 Supervisor.buildFile / AsyncSeq.scan / path: threading.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:02 d #27 Supervisor.buildFile / AsyncSeq.scan / path: runtime.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:02 d #27 Supervisor.buildFile / AsyncSeq.scan / path: async.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:02 d #27 Supervisor.buildFile / AsyncSeq.scan / path: trace.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:02 d #32 Supervisor.buildFile / takeWhileInclusive / path: threading.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:02 d #33 Supervisor.buildFile / takeWhileInclusive / path: runtime.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:02 d #34 Supervisor.buildFile / takeWhileInclusive / path: async.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:02 d #35 Supervisor.buildFile / takeWhileInclusive / path: trace.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:02 d #27 Supervisor.buildFile / AsyncSeq.scan / path: networking.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:02 d #36 Supervisor.buildFile / takeWhileInclusive / path: networking.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:03 d #37 Supervisor.buildFile / AsyncSeq.scan / path: networking.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:03 d #37 Supervisor.buildFile / AsyncSeq.scan / path: async.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:03 d #37 Supervisor.buildFile / AsyncSeq.scan / path: trace.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:03 d #40 Supervisor.buildFile / takeWhileInclusive / path: networking.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:03 d #41 Supervisor.buildFile / takeWhileInclusive / path: async.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:03 d #42 Supervisor.buildFile / takeWhileInclusive / path: trace.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:03 d #43 Supervisor.buildFile / AsyncSeq.scan / path: threading.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:03 d #37 Supervisor.buildFile / AsyncSeq.scan / path: runtime.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:03 d #44 Supervisor.buildFile / takeWhileInclusive / path: threading.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:03 d #45 Supervisor.buildFile / takeWhileInclusive / path: runtime.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:03 d #46 Supervisor.buildFile / AsyncSeq.scan / path: threading.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:03 d #46 Supervisor.buildFile / AsyncSeq.scan / path: runtime.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:03 d #46 Supervisor.buildFile / AsyncSeq.scan / path: networking.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:03 d #50 Supervisor.buildFile / takeWhileInclusive / path: threading.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:03 d #51 Supervisor.buildFile / takeWhileInclusive / path: runtime.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:03 d #46 Supervisor.buildFile / AsyncSeq.scan / path: trace.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:03 d #52 Supervisor.buildFile / takeWhileInclusive / path: networking.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:03 d #53 Supervisor.buildFile / takeWhileInclusive / path: trace.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:03 d #54 Supervisor.buildFile / AsyncSeq.scan / path: async.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:03 d #55 Supervisor.buildFile / takeWhileInclusive / path: async.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:04 d #56 Supervisor.buildFile / AsyncSeq.scan / path: runtime.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:04 d #57 Supervisor.buildFile / takeWhileInclusive / path: runtime.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:04 d #58 Supervisor.buildFile / AsyncSeq.scan / path: networking.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:04 d #59 Supervisor.buildFile / takeWhileInclusive / path: networking.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:04 d #60 Supervisor.buildFile / AsyncSeq.scan / path: threading.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:04 d #61 Supervisor.buildFile / takeWhileInclusive / path: threading.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:04 d #62 Supervisor.buildFile / AsyncSeq.scan / path: async.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:04 d #63 Supervisor.buildFile / takeWhileInclusive / path: async.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:04 d #64 Supervisor.buildFile / AsyncSeq.scan / path: trace.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:04 d #65 Supervisor.buildFile / takeWhileInclusive / path: trace.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:04 d #66 Supervisor.buildFile / AsyncSeq.scan / path: trace.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:04 d #68 Supervisor.buildFile / takeWhileInclusive / path: trace.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:04 d #67 Supervisor.buildFile / AsyncSeq.scan / path: async.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:04 d #69 Supervisor.buildFile / takeWhileInclusive / path: async.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:04 d #70 Supervisor.buildFile / AsyncSeq.scan / path: threading.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:04 d #71 Supervisor.buildFile / AsyncSeq.scan / path: networking.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:04 d #72 Supervisor.buildFile / takeWhileInclusive / path: networking.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:04 d #73 Supervisor.buildFile / takeWhileInclusive / path: threading.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:04 d #74 Supervisor.buildFile / AsyncSeq.scan / path: runtime.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:04 d #75 Supervisor.buildFile / takeWhileInclusive / path: runtime.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:05 d #76 Supervisor.buildFile / AsyncSeq.scan / path: trace.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:05 d #76 Supervisor.buildFile / AsyncSeq.scan / path: threading.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:05 d #80 Supervisor.buildFile / takeWhileInclusive / path: threading.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:05 d #76 Supervisor.buildFile / AsyncSeq.scan / path: networking.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:05 d #81 Supervisor.buildFile / takeWhileInclusive / path: networking.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:05 d #79 Supervisor.buildFile / AsyncSeq.scan / path: async.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:05 d #76 Supervisor.buildFile / AsyncSeq.scan / path: runtime.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:05 d #83 Supervisor.buildFile / takeWhileInclusive / path: runtime.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:05 d #82 Supervisor.buildFile / takeWhileInclusive / path: async.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:05 d #84 Supervisor.buildFile / takeWhileInclusive / path: trace.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:05 d #85 Supervisor.buildFile / AsyncSeq.scan / path: networking.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:05 d #85 Supervisor.buildFile / AsyncSeq.scan / path: trace.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:05 d #86 Supervisor.buildFile / takeWhileInclusive / path: trace.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:05 d #87 Supervisor.buildFile / AsyncSeq.scan / path: threading.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:05 d #88 Supervisor.buildFile / takeWhileInclusive / path: threading.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:05 d #89 Supervisor.buildFile / takeWhileInclusive / path: networking.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:05 d #90 Supervisor.buildFile / AsyncSeq.scan / path: runtime.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:05 d #91 Supervisor.buildFile / takeWhileInclusive / path: runtime.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:05 d #92 Supervisor.buildFile / AsyncSeq.scan / path: async.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:05 d #93 Supervisor.buildFile / takeWhileInclusive / path: async.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:05 d #94 Supervisor.buildFile / AsyncSeq.scan / path: threading.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: -type Disposable (f : unit -> unit) = interface System.IDisposable with member _.Dispose () = f () -type [<Struct>] US0 = - | US0_0 of f0_0 : System.Threading.CancellationToken - | US0_1 -let rec closure1 () (v0 : System.Threading.CancellationToken) : US0 = - US0_0(v0) -and method0 () : (System.Threading.CancellationToken -> US0) = - closure1() -and closure2 (v0 : System.Threading.CancellationTokenSource) () : unit = - (* run_target_args' - let v1 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - null |> unbox<unit> - #endif -#if FABLE_COMPILER_RUST && WASM - null |> unbox<unit> - #endif -#if FABLE_COMPILER_RUST && CONTRACT - null |> unbox<unit...er _.Dispose () = v74 () } - let _run_target_args'_v63 = v75 - #endif -#else - let v76 : (unit -> unit) = method2(v62) - let v77 : System.IDisposable = { new System.IDisposable with member _.Dispose () = v76 () } - let _run_target_args'_v63 = v77 - #endif - let v78 : System.IDisposable = _run_target_args'_v63 - let v82 : System.Threading.CancellationToken = v62.Token - let _run_target_args'_v1 = struct (v82, v78) - #endif - let struct (v83 : System.Threading.CancellationToken, v84 : System.IDisposable) = _run_target_args'_v1 - struct (v83, v84) -let v0 : (System.Threading.CancellationToken option -> struct (System.Threading.CancellationToken * System.IDisposable)) = closure0() -let new_disposable_token x = v0 x -() - -00:00:05 d #95 Supervisor.buildFile / takeWhileInclusive / path: threading.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: -type Disposable (f : unit -> unit) = interface System.IDisposable with member _.Dispose () = f () -type [<Struct>] US0 = - | US0_0 of f0_0 : System.Threading.CancellationToken - | US0_1 -let rec closure1 () (v0 : System.Threading.CancellationToken) : US0 = - US0_0(v0) -and method0 () : (System.Threading.CancellationToken -> US0) = - closure1() -and closure2 (v0 : System.Threading.CancellationTokenSource) () : unit = - (* run_target_args' - let v1 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - null |> unbox<unit> - #endif -#if FABLE_COMPILER_RUST && WASM - null |> unbox<unit> - #endif -#if FABLE_COMPILER_RUST && CONTRACT - null |> unbox<unit...er _.Dispose () = v74 () } - let _run_target_args'_v63 = v75 - #endif -#else - let v76 : (unit -> unit) = method2(v62) - let v77 : System.IDisposable = { new System.IDisposable with member _.Dispose () = v76 () } - let _run_target_args'_v63 = v77 - #endif - let v78 : System.IDisposable = _run_target_args'_v63 - let v82 : System.Threading.CancellationToken = v62.Token - let _run_target_args'_v1 = struct (v82, v78) - #endif - let struct (v83 : System.Threading.CancellationToken, v84 : System.IDisposable) = _run_target_args'_v1 - struct (v83, v84) -let v0 : (System.Threading.CancellationToken option -> struct (System.Threading.CancellationToken * System.IDisposable)) = closure0() -let new_disposable_token x = v0 x -() - -00:00:05 d #96 FileSystem.watchWithFilter / Disposing watch stream / filter: FileName, LastWrite -00:00:06 v #8 async.run_with_timeout_async / { timeout = 180 } -00:00:06 d #97 Supervisor.buildFile / takeWhileInclusive / path: crypto.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:06 d #98 Supervisor.buildFile / AsyncSeq.scan / path: crypto.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:06 d #99 Supervisor.buildFile / takeWhileInclusive / path: crypto.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:06 d #100 Supervisor.buildFile / AsyncSeq.scan / path: trace.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::string::String")>] -type std_string_String = class end -#else -type std_string_String = string -#endif - -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("&$0")>] -type Ref<'T> = class end -#else -type Ref<'T> = 'T -#endif - -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("mut $0")>] -#endif -type Mut<'T> = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("Vec<$0>")>] -#endif -type Vec<'T> = class end -module TraceState = let mutable trace_state = None -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::env::VarError")>] -#endif -type std_env_VarError = class end -type IOsEnviron = abstract environ: x: unit -> obj -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Co... else - let v43 : string = v2 () - method15(v20, v21, v22, v23, v24, v25, v38, v39, v40, v43) - method18(v45) -and closure5 (v0 : US0, v1 : (unit -> string)) (v2 : (unit -> string)) : unit = - let v3 : unit = () - let v4 : (unit -> unit) = closure6(v0, v1, v2) - let v5 : unit = (fun () -> v4 (); v3) () - () -and closure4 (v0 : US0) (v1 : (unit -> string)) : ((unit -> string) -> unit) = - closure5(v0, v1) -and closure3 () (v0 : US0) : ((unit -> string) -> ((unit -> string) -> unit)) = - closure4(v0) -let v0 : unit = () -let v1 : (unit -> unit) = closure0() -let v2 : unit = (fun () -> v1 (); v0) () -let v16 : (US0 -> ((unit -> string) -> ((unit -> string) -> unit))) = closure3() -let trace x = v16 x -() - -00:00:06 d #101 Supervisor.buildFile / takeWhileInclusive / path: trace.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::string::String")>] -type std_string_String = class end -#else -type std_string_String = string -#endif - -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("&$0")>] -type Ref<'T> = class end -#else -type Ref<'T> = 'T -#endif - -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("mut $0")>] -#endif -type Mut<'T> = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("Vec<$0>")>] -#endif -type Vec<'T> = class end -module TraceState = let mutable trace_state = None -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::env::VarError")>] -#endif -type std_env_VarError = class end -type IOsEnviron = abstract environ: x: unit -> obj -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Co... else - let v43 : string = v2 () - method15(v20, v21, v22, v23, v24, v25, v38, v39, v40, v43) - method18(v45) -and closure5 (v0 : US0, v1 : (unit -> string)) (v2 : (unit -> string)) : unit = - let v3 : unit = () - let v4 : (unit -> unit) = closure6(v0, v1, v2) - let v5 : unit = (fun () -> v4 (); v3) () - () -and closure4 (v0 : US0) (v1 : (unit -> string)) : ((unit -> string) -> unit) = - closure5(v0, v1) -and closure3 () (v0 : US0) : ((unit -> string) -> ((unit -> string) -> unit)) = - closure4(v0) -let v0 : unit = () -let v1 : (unit -> unit) = closure0() -let v2 : unit = (fun () -> v1 (); v0) () -let v16 : (US0 -> ((unit -> string) -> ((unit -> string) -> unit))) = closure3() -let trace x = v16 x -() - -00:00:06 v #102 Supervisor.sendJson / port: 13805 / json: {"FileOpen":{"spiText":"/// # crypto\nopen rust\nopen rust_operators\n\n/// ## fsharp\n\n/// ### sha..._port x = !hash_to_port x\u0027 : ()\n","uri":"file:///c:/home/git/polyglot/lib/spiral/crypto.spi"}} / result: -00:00:06 d #103 FileSystem.watchWithFilter / Disposing watch stream / filter: FileName, LastWrite -00:00:06 v #104 Supervisor.sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/lib/spiral/crypto.spi"}} / result: -00:00:06 d #105 Supervisor.buildFile / AsyncSeq.scan / path: async.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: -let rec method0 (v0 : System.Threading.CancellationToken) : Async<System.Threading.CancellationToken> = - (* run_target_args' - let v1 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v2 : Async<System.Threading.CancellationToken> = null |> unbox<Async<System.Threading.CancellationToken>> - let _run_target_args'_v1 = v2 - #endif -#if FABLE_COMPILER_RUST && WASM - let v5 : Async<System.Threading.CancellationToken> = null |> unbox<Async<System.Threading.CancellationToken>> - let _run_target_args'_v1 = v5 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v8 : Async<System.Threading.CancellationToken> = null |> unbox<Async<System.Threadin... let v747 : System.Threading.CancellationToken = v746.Token - return v747 - #endif - // run_target_args' is_unit - (* indent - () - indent *) - } - (* indent - () - indent *) - let v954 : Async<System.Threading.CancellationToken> = _let'_v719 - let _run_target_args'_v1 = v954 - #endif - let v955 : Async<System.Threading.CancellationToken> = _run_target_args'_v1 - v955 -and closure0 () (v0 : System.Threading.CancellationToken) : Async<System.Threading.CancellationToken> = - method0(v0) -let v0 : (System.Threading.CancellationToken -> Async<System.Threading.CancellationToken>) = closure0() -let merge_cancellation_token_with_default_async x = v0 x -() - -00:00:06 d #106 Supervisor.buildFile / takeWhileInclusive / path: async.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: -let rec method0 (v0 : System.Threading.CancellationToken) : Async<System.Threading.CancellationToken> = - (* run_target_args' - let v1 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v2 : Async<System.Threading.CancellationToken> = null |> unbox<Async<System.Threading.CancellationToken>> - let _run_target_args'_v1 = v2 - #endif -#if FABLE_COMPILER_RUST && WASM - let v5 : Async<System.Threading.CancellationToken> = null |> unbox<Async<System.Threading.CancellationToken>> - let _run_target_args'_v1 = v5 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v8 : Async<System.Threading.CancellationToken> = null |> unbox<Async<System.Threadin... let v747 : System.Threading.CancellationToken = v746.Token - return v747 - #endif - // run_target_args' is_unit - (* indent - () - indent *) - } - (* indent - () - indent *) - let v954 : Async<System.Threading.CancellationToken> = _let'_v719 - let _run_target_args'_v1 = v954 - #endif - let v955 : Async<System.Threading.CancellationToken> = _run_target_args'_v1 - v955 -and closure0 () (v0 : System.Threading.CancellationToken) : Async<System.Threading.CancellationToken> = - method0(v0) -let v0 : (System.Threading.CancellationToken -> Async<System.Threading.CancellationToken>) = closure0() -let merge_cancellation_token_with_default_async x = v0 x -() - -00:00:06 d #107 FileSystem.watchWithFilter / Disposing watch stream / filter: FileName, LastWrite -00:00:06 d #108 Supervisor.buildFile / AsyncSeq.scan / path: networking.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:06 d #109 Supervisor.buildFile / takeWhileInclusive / path: networking.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:06 d #110 Supervisor.buildFile / AsyncSeq.scan / path: runtime.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:06 d #111 Supervisor.buildFile / takeWhileInclusive / path: runtime.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:06 v #9 async.run_with_timeout_async / { timeout = 180 } -00:00:06 d #112 Supervisor.buildFile / takeWhileInclusive / path: common.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:06 d #113 Supervisor.buildFile / AsyncSeq.scan / path: common.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:06 d #114 Supervisor.buildFile / takeWhileInclusive / path: common.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:06 v #115 Supervisor.sendJson / port: 13805 / json: {"FileOpen":{"spiText":"/// # common\n\n/// ## common\n\n/// ### retry_fn\u0027\ninl retry_fn\u0027 ...et memoize x = !memoize x\u0027 : ()\n","uri":"file:///c:/home/git/polyglot/lib/spiral/common.spi"}} / result: -00:00:06 v #10 async.run_with_timeout_async / { timeout = 180 } -00:00:06 d #116 Supervisor.buildFile / takeWhileInclusive / path: date_time.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:06 d #117 Supervisor.buildFile / AsyncSeq.scan / path: date_time.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:06 d #118 Supervisor.buildFile / takeWhileInclusive / path: date_time.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:06 v #119 Supervisor.sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/lib/spiral/common.spi"}} / result: -00:00:06 v #120 Supervisor.sendJson / port: 13805 / json: {"FileOpen":{"spiText":"/// # date_time\nopen rust.rust_operators\nopen sm\u0027_operators\n\n/// ##... x = !format_iso8601 x\u0027 : ()\n","uri":"file:///c:/home/git/polyglot/lib/spiral/date_time.spi"}} / result: -00:00:06 v #121 Supervisor.sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/lib/spiral/date_time.spi"}} / result: -00:00:06 d #122 Supervisor.buildFile / AsyncSeq.scan / path: crypto.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:06 d #123 Supervisor.buildFile / takeWhileInclusive / path: crypto.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:06 d #124 Supervisor.buildFile / AsyncSeq.scan / path: runtime.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:06 d #124 Supervisor.buildFile / AsyncSeq.scan / path: networking.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:06 d #126 Supervisor.buildFile / takeWhileInclusive / path: runtime.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:06 d #127 Supervisor.buildFile / takeWhileInclusive / path: networking.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:06 d #128 Supervisor.buildFile / AsyncSeq.scan / path: common.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:06 d #129 Supervisor.buildFile / takeWhileInclusive / path: common.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:06 d #130 Supervisor.buildFile / AsyncSeq.scan / path: date_time.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:06 d #131 Supervisor.buildFile / takeWhileInclusive / path: date_time.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:07 d #132 Supervisor.buildFile / AsyncSeq.scan / path: crypto.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:07 d #133 Supervisor.buildFile / takeWhileInclusive / path: crypto.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:07 d #134 Supervisor.buildFile / AsyncSeq.scan / path: runtime.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:07 d #135 Supervisor.buildFile / takeWhileInclusive / path: runtime.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:07 d #136 Supervisor.buildFile / AsyncSeq.scan / path: networking.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:07 d #137 Supervisor.buildFile / takeWhileInclusive / path: networking.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:07 d #138 Supervisor.buildFile / AsyncSeq.scan / path: common.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:07 d #139 Supervisor.buildFile / takeWhileInclusive / path: common.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:07 d #140 Supervisor.buildFile / AsyncSeq.scan / path: date_time.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:07 d #141 Supervisor.buildFile / takeWhileInclusive / path: date_time.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:07 d #142 Supervisor.buildFile / AsyncSeq.scan / path: crypto.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:07 d #143 Supervisor.buildFile / takeWhileInclusive / path: crypto.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:07 d #144 Supervisor.buildFile / AsyncSeq.scan / path: runtime.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:07 d #145 Supervisor.buildFile / takeWhileInclusive / path: runtime.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:07 d #146 Supervisor.buildFile / AsyncSeq.scan / path: networking.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:07 d #147 Supervisor.buildFile / takeWhileInclusive / path: networking.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:07 d #148 Supervisor.buildFile / AsyncSeq.scan / path: common.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:07 d #148 Supervisor.buildFile / AsyncSeq.scan / path: date_time.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:07 d #150 Supervisor.buildFile / takeWhileInclusive / path: common.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:07 d #151 Supervisor.buildFile / takeWhileInclusive / path: date_time.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:08 d #152 Supervisor.buildFile / AsyncSeq.scan / path: common.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::string::String")>] -type std_string_String = class end -#else -type std_string_String = string -#endif - -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("&$0")>] -type Ref<'T> = class end -#else -type Ref<'T> = 'T -#endif - -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("mut $0")>] -#endif -type Mut<'T> = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("Vec<$0>")>] -#endif -type Vec<'T> = class end -module TraceState = let mutable trace_state = None -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::env::VarError")>] -#endif -type std_env_VarError = class end -type IOsEnviron = abstract environ: x: unit -> obj -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Co...ion = Some () - v4 -and closure4 () (v0 : int32) : ((unit -> unit) -> unit option) = - closure5(v0) -and method22 (v0 : (unit -> unit)) : (unit -> unit) = - v0 -and closure16 (v0 : Lazy<unit>) () : unit = - v0.Value - () -and closure15 () (v0 : (unit -> unit)) : (unit -> unit) = - let v1 : (unit -> unit) = method22(v0) - let v2 : Lazy<unit> = lazy v1 () - closure16(v2) -let v0 : unit = () -let v1 : (unit -> unit) = closure0() -let v2 : unit = (fun () -> v1 (); v0) () -let v16 : ((unit -> unit) -> System.IDisposable) = closure3() -let new_disposable x = v16 x -let v17 : (int32 -> ((unit -> unit) -> unit option)) = closure4() -let retry_fn x = v17 x -let v18 : ((unit -> unit) -> (unit -> unit)) = closure15() -let memoize x = v18 x -() - -00:00:08 d #153 Supervisor.buildFile / takeWhileInclusive / path: common.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::string::String")>] -type std_string_String = class end -#else -type std_string_String = string -#endif - -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("&$0")>] -type Ref<'T> = class end -#else -type Ref<'T> = 'T -#endif - -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("mut $0")>] -#endif -type Mut<'T> = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("Vec<$0>")>] -#endif -type Vec<'T> = class end -module TraceState = let mutable trace_state = None -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::env::VarError")>] -#endif -type std_env_VarError = class end -type IOsEnviron = abstract environ: x: unit -> obj -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Co...ion = Some () - v4 -and closure4 () (v0 : int32) : ((unit -> unit) -> unit option) = - closure5(v0) -and method22 (v0 : (unit -> unit)) : (unit -> unit) = - v0 -and closure16 (v0 : Lazy<unit>) () : unit = - v0.Value - () -and closure15 () (v0 : (unit -> unit)) : (unit -> unit) = - let v1 : (unit -> unit) = method22(v0) - let v2 : Lazy<unit> = lazy v1 () - closure16(v2) -let v0 : unit = () -let v1 : (unit -> unit) = closure0() -let v2 : unit = (fun () -> v1 (); v0) () -let v16 : ((unit -> unit) -> System.IDisposable) = closure3() -let new_disposable x = v16 x -let v17 : (int32 -> ((unit -> unit) -> unit option)) = closure4() -let retry_fn x = v17 x -let v18 : ((unit -> unit) -> (unit -> unit)) = closure15() -let memoize x = v18 x -() - -00:00:08 d #154 FileSystem.watchWithFilter / Disposing watch stream / filter: FileName, LastWrite -00:00:08 d #155 Supervisor.buildFile / AsyncSeq.scan / path: crypto.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:08 d #156 Supervisor.buildFile / takeWhileInclusive / path: crypto.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:08 d #157 Supervisor.buildFile / AsyncSeq.scan / path: networking.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:08 d #157 Supervisor.buildFile / AsyncSeq.scan / path: runtime.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:08 d #158 Supervisor.buildFile / takeWhileInclusive / path: networking.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:08 d #159 Supervisor.buildFile / takeWhileInclusive / path: runtime.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:08 v #11 async.run_with_timeout_async / { timeout = 180 } -00:00:08 d #160 Supervisor.buildFile / takeWhileInclusive / path: platform.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:08 d #161 Supervisor.buildFile / AsyncSeq.scan / path: platform.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:08 d #162 Supervisor.buildFile / takeWhileInclusive / path: platform.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:08 v #163 Supervisor.sendJson / port: 13805 / json: {"FileOpen":{"spiText":"/// # platform\nopen rust.rust_operators\n\n/// ## fsharp\n\n/// ### os_plat...et_executable_suffix ()\u0027 : ()\n","uri":"file:///c:/home/git/polyglot/lib/spiral/platform.spi"}} / result: -00:00:08 v #164 Supervisor.sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/lib/spiral/platform.spi"}} / result: -00:00:08 d #165 Supervisor.buildFile / AsyncSeq.scan / path: date_time.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:08 d #166 Supervisor.buildFile / takeWhileInclusive / path: date_time.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:08 d #167 Supervisor.buildFile / AsyncSeq.scan / path: date_time.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("chrono::DateTime<$0>")>] -#endif -type chrono_DateTime<'T> = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("chrono::NaiveDateTime")>] -#endif -type chrono_NaiveDateTime = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("&$0")>] -type Ref<'T> = class end -#else -type Ref<'T> = 'T -#endif - -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::string::String")>] -type std_string_String = class end -#else -type std_string_String = string -#endif - -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("chrono::Utc")>] -#endif -type chrono_Utc = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("chrono::Local")>] -#endif -type chrono_Local = class en...HH-mm-ss.fff" - v1 v2 -let v0 : (System.Guid -> (System.DateTime -> System.Guid)) = closure0() -let date_time_guid_from_date_time x = v0 x -let v1 : (System.Guid -> System.DateTime) = closure3() -let date_time_from_guid x = v1 x -let v2 : (System.Guid -> (int64 -> System.Guid)) = closure5() -let timestamp_guid_from_timestamp x = v2 x -let v3 : (System.Guid -> int64) = closure8() -let timestamp_from_guid x = v3 x -let v4 : (System.DateTime -> System.Guid) = closure9() -let new_guid_from_date_time x = v4 x -let v5 : (int64 -> System.Guid) = closure10() -let new_guid_from_timestamp x = v5 x -let v6 : (string -> (System.DateTime -> string)) = closure11() -let format x = v6 x -let v7 : (System.DateTime -> string) = closure13() -let format_iso8601 x = v7 x -() - -00:00:08 d #168 Supervisor.buildFile / takeWhileInclusive / path: date_time.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("chrono::DateTime<$0>")>] -#endif -type chrono_DateTime<'T> = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("chrono::NaiveDateTime")>] -#endif -type chrono_NaiveDateTime = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("&$0")>] -type Ref<'T> = class end -#else -type Ref<'T> = 'T -#endif - -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::string::String")>] -type std_string_String = class end -#else -type std_string_String = string -#endif - -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("chrono::Utc")>] -#endif -type chrono_Utc = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("chrono::Local")>] -#endif -type chrono_Local = class en...HH-mm-ss.fff" - v1 v2 -let v0 : (System.Guid -> (System.DateTime -> System.Guid)) = closure0() -let date_time_guid_from_date_time x = v0 x -let v1 : (System.Guid -> System.DateTime) = closure3() -let date_time_from_guid x = v1 x -let v2 : (System.Guid -> (int64 -> System.Guid)) = closure5() -let timestamp_guid_from_timestamp x = v2 x -let v3 : (System.Guid -> int64) = closure8() -let timestamp_from_guid x = v3 x -let v4 : (System.DateTime -> System.Guid) = closure9() -let new_guid_from_date_time x = v4 x -let v5 : (int64 -> System.Guid) = closure10() -let new_guid_from_timestamp x = v5 x -let v6 : (string -> (System.DateTime -> string)) = closure11() -let format x = v6 x -let v7 : (System.DateTime -> string) = closure13() -let format_iso8601 x = v7 x -() - -00:00:08 d #169 FileSystem.watchWithFilter / Disposing watch stream / filter: FileName, LastWrite -00:00:08 d #170 Supervisor.buildFile / AsyncSeq.scan / path: crypto.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:08 d #171 Supervisor.buildFile / takeWhileInclusive / path: crypto.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:08 d #172 Supervisor.buildFile / AsyncSeq.scan / path: crypto.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("Vec<$0>")>] -#endif -type Vec<'T> = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::io::Cursor<$0>")>] -#endif -type std_io_Cursor<'T> = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::io::BufReader<$0>")>] -#endif -type std_io_BufReader<'T> = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("sha2::Sha256")>] -#endif -type sha2_Sha256 = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("_")>] -#endif -type Slice'<'T> = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("&$0")>] -type Ref<'T> = class end -#else -type Ref<'T> = 'T -#endif - -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::string::Stri...let _run_target_args'_v2 = v38 - #endif -#else - let v45 : int32 = System.Char.ConvertToUtf32 (string v1, 0) - let _run_target_args'_v2 = v45 - #endif - let v46 : int32 = _run_target_args'_v2 - let v57 : string = v0.[int 0..int 7] - let v60 : int32 = System.Convert.ToInt32 (v57, 16) - let v63 : int32 = v60 + v46 - let v64 : (int32 -> uint16) = uint16 - let v65 : uint16 = v64 v63 - let v68 : unit = () - let v69 : (unit -> unit) = closure2(v46, v57, v65) - let v70 : unit = (fun () -> v69 (); v68) () - let v110 : uint16 = v65 % 48128us - let v111 : uint16 = v110 + 1024us - v111 -let v0 : (string -> string) = closure0() -let hash_text x = v0 x -let v1 : (string -> uint16) = closure1() -let hash_to_port x = v1 x -() - -00:00:08 d #173 Supervisor.buildFile / takeWhileInclusive / path: crypto.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("Vec<$0>")>] -#endif -type Vec<'T> = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::io::Cursor<$0>")>] -#endif -type std_io_Cursor<'T> = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::io::BufReader<$0>")>] -#endif -type std_io_BufReader<'T> = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("sha2::Sha256")>] -#endif -type sha2_Sha256 = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("_")>] -#endif -type Slice'<'T> = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("&$0")>] -type Ref<'T> = class end -#else -type Ref<'T> = 'T -#endif - -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::string::Stri...let _run_target_args'_v2 = v38 - #endif -#else - let v45 : int32 = System.Char.ConvertToUtf32 (string v1, 0) - let _run_target_args'_v2 = v45 - #endif - let v46 : int32 = _run_target_args'_v2 - let v57 : string = v0.[int 0..int 7] - let v60 : int32 = System.Convert.ToInt32 (v57, 16) - let v63 : int32 = v60 + v46 - let v64 : (int32 -> uint16) = uint16 - let v65 : uint16 = v64 v63 - let v68 : unit = () - let v69 : (unit -> unit) = closure2(v46, v57, v65) - let v70 : unit = (fun () -> v69 (); v68) () - let v110 : uint16 = v65 % 48128us - let v111 : uint16 = v110 + 1024us - v111 -let v0 : (string -> string) = closure0() -let hash_text x = v0 x -let v1 : (string -> uint16) = closure1() -let hash_to_port x = v1 x -() - -00:00:08 d #174 Supervisor.buildFile / AsyncSeq.scan / path: networking.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:08 d #175 Supervisor.buildFile / takeWhileInclusive / path: networking.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:08 d #176 FileSystem.watchWithFilter / Disposing watch stream / filter: FileName, LastWrite -00:00:08 d #177 Supervisor.buildFile / AsyncSeq.scan / path: runtime.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:08 d #178 Supervisor.buildFile / takeWhileInclusive / path: runtime.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:08 d #179 FileSystem.watchWithFilter / Disposing watch stream / filter: FileName, LastWrite -00:00:08 d #180 FileSystem.watchWithFilter / Disposing watch stream / filter: FileName, LastWrite -00:00:08 d #181 FileSystem.watchWithFilter / Disposing watch stream / filter: FileName, LastWrite -00:00:08 d #182 FileSystem.watchWithFilter / Disposing watch stream / filter: FileName, LastWrite -00:00:08 v #12 async.run_with_timeout_async / { timeout = 100 } -00:00:08 c #183 Async.runWithTimeoutAsync** / ex: System.AggregateException: One or more errors occurred. (The process cannot access the file 'C:\home\git\polyglot\lib\spiral\crypto.fsx' because it is being used by another process.) - ---> System.IO.IOException: The process cannot access the file 'C:\home\git\polyglot\lib\spiral\crypto.fsx' because it is being used by another process. - at Microsoft.Win32.SafeHandles.SafeFileHandle.CreateFile(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options) - at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, Nullable`1 unixCreateMode) - at System.IO.File.OpenHandle(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize) - at System.IO.File.WriteToFileAsync(String path, FileMode mode, ReadOnlyMemory`1 contents, Encoding encoding, CancellationToken cancellationToken) - --- End of inner exception stack trace --- - at Microsoft.FSharp.Control.AsyncResult`1.Commit() in D:\a\_work\1\s\src\FSharp.Core\async.fs:line 454 - at <StartupCode$FSharp-Core>.$Async.AwaitAndBindChildResult@1976-6.Invoke(Boolean ok) in D:\a\_work\1\s\src\FSharp.Core\async.fs:line 1978 - at Microsoft.FSharp.Control.AsyncPrimitives.CallThenInvokeNoHijackCheck[a,b](AsyncActivation`1 ctxt, b result1, FSharpFunc`2 userCode) in D:\a\_work\1\s\src\FSharp.Core\async.fs:line 528 - at Microsoft.FSharp.Control.Trampoline.Execute(FSharpFunc`2 firstAction) in D:\a\_work\1\s\src\FSharp.Core\async.fs:line 112 / timeout: 3600000 - -# Invoke-Block / $retry: 2/3 / $Location: / Get-Location: C:\home\git\polyglot\lib\spiral / $OnError: Stop / $exitcode: 1 / $EnvVars: { - "PATH": "C:\\Users\\i574n\\scoop\\apps\\pwsh\\current;C:\\Program Files\\NVIDIA\\CUDNN\\v9.1\\bin;C:\\ProgramData\\scoop\\shims;C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\;C:\\WINDOWS\\System32\\OpenSSH\\;C:\\ProgramData\\chocolatey\\bin;C:\\Program Files\\dotnet\\;C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\;C:\\WINDOWS\\System32\\OpenSSH\\;C:\\Program Files\\Intel\\WiFi\\bin\\;C:\\Program Files\\Common Files\\Intel\\WirelessCommon\\;C:\\Program Files\\Perforce;C:\\Program Files\\Wasmtime\\bin;C:\\Program Files\\Perforce\\;C:\\Program Files\\Microsoft SQL Server\\150\\Tools\\Binn\\;C:\\Program Files (x86)\\Windows Kits\\10\\Windows Performance Toolkit\\;C:\\Users\\i574n\\scoop\\apps\\vscode-insiders\\current\\bin;C:\\Users\\i574n\\scoop\\apps\\elixir\\current\\bin;C:\\Users\\i574n\\scoop\\apps\\openssl\\current\\bin;C:\\Users\\i574n\\scoop\\apps\\vulkan\\current\\Bin;C:\\Users\\i574n\\scoop\\apps\\vulkan\\current\\Tools;C:\\Users\\i574n\\scoop\\apps\\python312\\current\\Scripts;C:\\Users\\i574n\\scoop\\apps\\python312\\current\\.;C:\\Users\\i574n\\scoop\\apps\\dotnet-sdk\\current\\.;C:\\Users\\i574n\\scoop\\apps\\perl\\current\\perl\\site\\bin;C:\\Users\\i574n\\scoop\\apps\\perl\\current\\perl\\bin;C:\\Users\\i574n\\scoop\\apps\\rustup\\current\\.cargo\\bin;C:\\Users\\i574n\\scoop\\apps\\latex\\current\\texmfs\\install\\miktex\\bin\\x64;C:\\Users\\i574n\\scoop\\apps\\dotnet-sdk-preview\\current;C:\\Users\\i574n\\scoop\\apps\\dotnet-sdk\\current;C:\\Users\\i574n\\scoop\\apps\\gsudo\\current;C:\\Users\\i574n\\scoop\\apps\\python\\current;C:\\Users\\i574n\\scoop\\apps\\nircmd\\current;C:\\Users\\i574n\\AppData\\Local\\Microsoft\\WindowsApps;C:\\Users\\i574n/scoop/buckets/mold/home/windows/path;C:\\Users\\i574n/scoop/persist/rustup/.cargo/bin;C:\\Users\\i574n/scoop/apps/nvm/current/nodejs/nodejs;C:\\Users\\i574n/scoop/apps/cygwin/current/root/bin;C:\\Users\\i574n\\AppData\\Local\\Programs\\Microsoft VS Code\\bin;C:\\Users\\i574n\\AppData\\Local\\Microsoft\\WindowsApps;C:\\Users\\i574n\\.bun\\bin;C:\\Users\\i574n\\.dotnet\\tools;C:\\Users\\i574n\\scoop\\shims;C:\\Users\\i574n\\.fly\\bin;C:\\Program Files\\Wasmtime\\bin;C:\\Users\\i574n\\.dotnet\\tools;C:\\Users\\i574n/.cargo/bin;C:\\Users\\i574n/.bun/bin;C:\\Users\\i574n/.cargo/bin;C:\\Users\\i574n/.bun/bin;C:\\Users\\i574n/.cargo/bin;C:\\Users\\i574n/.bun/bin" -} / $Error: '' / $ScriptBlock: -'. ../../apps/spiral/dist/Supervisor$(_exe) --parallel --build-file async.spi async_.fsx --build-file runtime.spi runtime.fsx --build-file trace.spi trace.fsx --build-file threading.spi threading.fsx --build-file networking.spi networking.fsx --build-file crypto.spi crypto.fsx --build-file common.spi common.fsx --build-file date_time.spi date_time.fsx --build-file platform.spi platform.fsx --build-file file_system.spi file_system.fsx --build-file guid.spi guid.fsx --build-file "sm'.spi" sm.fsx' - -00:00:00 v #1 async.run_with_timeout_async / { timeout = 180 } -00:00:00 d #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0 - ""C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 --default-int i32 --default-float f64"; options = { command = dotnet "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 --default-int i32 --default-float f64; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = Some <fun:compiler@87-4>; stdin = None; trace = true; working_directory = Some "C:\home\git\polyglot" } } -00:00:00 v #2 > 00:00:00 d #1 pwd: C:\home\git\polyglot -00:00:00 v #3 > 00:00:00 d #2 dllPath: C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release -00:00:00 v #4 > 00:00:00 d #3 targetDir: C:\home\git\polyglot\target/spiral_Eval -00:00:01 v #2 async.run_with_timeout_async / { timeout = 100 } -00:00:01 v #3 async.run_with_timeout_async / { timeout = 100 } -00:00:01 v #5 > Starting the Spiral Server. It is bound to: http://localhost:13805 -00:00:01 v #4 async.run_with_timeout_async / { timeout = 100 } -00:00:01 v #1 Supervisor.sendJson / port: 13805 / json: {"Ping":true} / result: -00:00:01 v #2 Supervisor.awaitCompiler / Ping / result: 'Some null' / port: 13805 / retry: 1 -00:00:01 v #6 > Server bound to: http://localhost:13805 -00:00:02 v #5 async.run_with_timeout_async / { timeout = 180 } -00:00:02 v #5 async.run_with_timeout_async / { timeout = 180 } -00:00:02 v #5 async.run_with_timeout_async / { timeout = 180 } -00:00:02 v #5 async.run_with_timeout_async / { timeout = 180 } -00:00:02 v #5 async.run_with_timeout_async / { timeout = 180 } -00:00:02 d #3 Supervisor.buildFile / takeWhileInclusive / path: networking.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:02 d #4 Supervisor.buildFile / takeWhileInclusive / path: async.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:02 d #5 Supervisor.buildFile / takeWhileInclusive / path: threading.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:02 d #3 Supervisor.buildFile / takeWhileInclusive / path: runtime.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:02 d #7 Supervisor.buildFile / takeWhileInclusive / path: trace.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:02 d #8 Supervisor.buildFile / AsyncSeq.scan / path: trace.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:02 d #10 Supervisor.buildFile / AsyncSeq.scan / path: runtime.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:02 d #10 Supervisor.buildFile / AsyncSeq.scan / path: networking.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:02 d #11 Supervisor.buildFile / AsyncSeq.scan / path: threading.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:02 d #8 Supervisor.buildFile / AsyncSeq.scan / path: async.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:02 d #13 Supervisor.buildFile / takeWhileInclusive / path: threading.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:02 d #13 Supervisor.buildFile / takeWhileInclusive / path: networking.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:02 d #16 Supervisor.buildFile / takeWhileInclusive / path: runtime.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:02 d #13 Supervisor.buildFile / takeWhileInclusive / path: async.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:02 d #16 Supervisor.buildFile / takeWhileInclusive / path: trace.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:02 v #18 Supervisor.sendJson / port: 13805 / json: {"FileOpen":{"spiText":"/// # networking\nopen rust.rust_operators\n\n/// ## rust\n\n/// ### reqwest...!get_available_port x\u0027 : ()\n","uri":"file:///c:/home/git/polyglot/lib/spiral/networking.spi"}} / result: -00:00:02 v #22 Supervisor.sendJson / port: 13805 / json: {"FileOpen":{"spiText":"/// # trace\n\n/// ## trace\n\n/// ### trace_level\nunion trace_level =\n ...0027let trace x = !trace x\u0027 : ()\n","uri":"file:///c:/home/git/polyglot/lib/spiral/trace.spi"}} / result: -00:00:02 v #18 Supervisor.sendJson / port: 13805 / json: {"FileOpen":{"spiText":"/// # async\nopen rust\nopen rust_operators\n\n/// ### base_let\u0027\ninl b...token_with_default_async x\u0027 : ()\n","uri":"file:///c:/home/git/polyglot/lib/spiral/async.spi"}} / result: -00:00:02 v #18 Supervisor.sendJson / port: 13805 / json: {"FileOpen":{"spiText":"/// # runtime\nopen rust\nopen rust_operators\nopen sm\u0027_operators\n\n//...t_args x = !split_args x\u0027 : ()\n","uri":"file:///c:/home/git/polyglot/lib/spiral/runtime.spi"}} / result: -00:00:02 v #18 Supervisor.sendJson / port: 13805 / json: {"FileOpen":{"spiText":"/// # threading\nopen rust\nopen rust_operators\n\n/// ## rust\n\n/// ### sl...new_disposable_token x\u0027 : ()\n","uri":"file:///c:/home/git/polyglot/lib/spiral/threading.spi"}} / result: -00:00:02 v #23 Supervisor.sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/lib/spiral/networking.spi"}} / result: -00:00:02 v #24 Supervisor.sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/lib/spiral/trace.spi"}} / result: -00:00:02 v #25 Supervisor.sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/lib/spiral/runtime.spi"}} / result: -00:00:02 v #26 Supervisor.sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/lib/spiral/async.spi"}} / result: -00:00:02 v #27 Supervisor.sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/lib/spiral/threading.spi"}} / result: -00:00:02 d #28 Supervisor.buildFile / AsyncSeq.scan / path: threading.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:02 d #30 Supervisor.buildFile / AsyncSeq.scan / path: runtime.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:02 d #31 Supervisor.buildFile / AsyncSeq.scan / path: networking.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:02 d #32 Supervisor.buildFile / takeWhileInclusive / path: threading.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:02 d #28 Supervisor.buildFile / AsyncSeq.scan / path: trace.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:02 d #33 Supervisor.buildFile / takeWhileInclusive / path: runtime.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:02 d #28 Supervisor.buildFile / AsyncSeq.scan / path: async.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:02 d #35 Supervisor.buildFile / takeWhileInclusive / path: trace.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:02 d #33 Supervisor.buildFile / takeWhileInclusive / path: networking.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:02 d #36 Supervisor.buildFile / takeWhileInclusive / path: async.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:03 d #37 Supervisor.buildFile / AsyncSeq.scan / path: networking.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:03 d #37 Supervisor.buildFile / AsyncSeq.scan / path: trace.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:03 d #37 Supervisor.buildFile / AsyncSeq.scan / path: threading.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:03 d #37 Supervisor.buildFile / AsyncSeq.scan / path: async.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:03 d #41 Supervisor.buildFile / takeWhileInclusive / path: trace.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:03 d #42 Supervisor.buildFile / takeWhileInclusive / path: threading.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:03 d #43 Supervisor.buildFile / takeWhileInclusive / path: async.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:03 d #44 Supervisor.buildFile / takeWhileInclusive / path: networking.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:03 d #45 Supervisor.buildFile / AsyncSeq.scan / path: runtime.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:03 d #46 Supervisor.buildFile / takeWhileInclusive / path: runtime.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:03 d #47 Supervisor.buildFile / AsyncSeq.scan / path: networking.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:03 d #47 Supervisor.buildFile / AsyncSeq.scan / path: trace.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:03 d #47 Supervisor.buildFile / AsyncSeq.scan / path: threading.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:03 d #52 Supervisor.buildFile / takeWhileInclusive / path: networking.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:03 d #47 Supervisor.buildFile / AsyncSeq.scan / path: runtime.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:03 d #53 Supervisor.buildFile / takeWhileInclusive / path: trace.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:03 d #54 Supervisor.buildFile / takeWhileInclusive / path: threading.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:03 d #47 Supervisor.buildFile / AsyncSeq.scan / path: async.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:03 d #55 Supervisor.buildFile / takeWhileInclusive / path: runtime.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:03 d #56 Supervisor.buildFile / takeWhileInclusive / path: async.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:04 d #57 Supervisor.buildFile / AsyncSeq.scan / path: threading.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:04 d #59 Supervisor.buildFile / AsyncSeq.scan / path: trace.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:04 d #57 Supervisor.buildFile / AsyncSeq.scan / path: networking.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:04 d #60 Supervisor.buildFile / AsyncSeq.scan / path: runtime.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:04 d #60 Supervisor.buildFile / takeWhileInclusive / path: threading.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:04 d #62 Supervisor.buildFile / takeWhileInclusive / path: runtime.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:04 d #63 Supervisor.buildFile / AsyncSeq.scan / path: async.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:04 d #64 Supervisor.buildFile / takeWhileInclusive / path: trace.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:04 d #64 Supervisor.buildFile / takeWhileInclusive / path: networking.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:04 d #66 Supervisor.buildFile / takeWhileInclusive / path: async.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:04 d #67 Supervisor.buildFile / AsyncSeq.scan / path: trace.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:04 d #67 Supervisor.buildFile / AsyncSeq.scan / path: async.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:04 d #67 Supervisor.buildFile / AsyncSeq.scan / path: threading.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:04 d #69 Supervisor.buildFile / takeWhileInclusive / path: trace.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:04 d #67 Supervisor.buildFile / AsyncSeq.scan / path: networking.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:04 d #70 Supervisor.buildFile / AsyncSeq.scan / path: runtime.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:04 d #71 Supervisor.buildFile / takeWhileInclusive / path: async.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:04 d #72 Supervisor.buildFile / takeWhileInclusive / path: threading.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:04 d #72 Supervisor.buildFile / takeWhileInclusive / path: runtime.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:04 d #72 Supervisor.buildFile / takeWhileInclusive / path: networking.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:05 d #75 Supervisor.buildFile / AsyncSeq.scan / path: threading.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:05 d #76 Supervisor.buildFile / AsyncSeq.scan / path: runtime.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:05 d #77 Supervisor.buildFile / takeWhileInclusive / path: runtime.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:05 d #78 Supervisor.buildFile / AsyncSeq.scan / path: networking.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:05 d #79 Supervisor.buildFile / takeWhileInclusive / path: threading.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:05 d #80 Supervisor.buildFile / takeWhileInclusive / path: networking.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:05 d #81 Supervisor.buildFile / AsyncSeq.scan / path: async.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:05 d #82 Supervisor.buildFile / AsyncSeq.scan / path: trace.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:05 d #83 Supervisor.buildFile / takeWhileInclusive / path: async.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:05 d #84 Supervisor.buildFile / takeWhileInclusive / path: trace.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:05 d #85 Supervisor.buildFile / AsyncSeq.scan / path: trace.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:05 d #86 Supervisor.buildFile / takeWhileInclusive / path: trace.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:05 d #87 Supervisor.buildFile / AsyncSeq.scan / path: networking.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:05 d #88 Supervisor.buildFile / AsyncSeq.scan / path: async.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:05 d #89 Supervisor.buildFile / takeWhileInclusive / path: async.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:05 d #90 Supervisor.buildFile / takeWhileInclusive / path: networking.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:05 d #91 Supervisor.buildFile / AsyncSeq.scan / path: threading.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:05 d #92 Supervisor.buildFile / takeWhileInclusive / path: threading.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:05 d #93 Supervisor.buildFile / AsyncSeq.scan / path: runtime.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:05 d #94 Supervisor.buildFile / takeWhileInclusive / path: runtime.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:06 d #95 Supervisor.buildFile / AsyncSeq.scan / path: threading.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: -type Disposable (f : unit -> unit) = interface System.IDisposable with member _.Dispose () = f () -type [<Struct>] US0 = - | US0_0 of f0_0 : System.Threading.CancellationToken - | US0_1 -let rec closure1 () (v0 : System.Threading.CancellationToken) : US0 = - US0_0(v0) -and method0 () : (System.Threading.CancellationToken -> US0) = - closure1() -and closure2 (v0 : System.Threading.CancellationTokenSource) () : unit = - (* run_target_args' - let v1 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - null |> unbox<unit> - #endif -#if FABLE_COMPILER_RUST && WASM - null |> unbox<unit> - #endif -#if FABLE_COMPILER_RUST && CONTRACT - null |> unbox<unit...er _.Dispose () = v74 () } - let _run_target_args'_v63 = v75 - #endif -#else - let v76 : (unit -> unit) = method2(v62) - let v77 : System.IDisposable = { new System.IDisposable with member _.Dispose () = v76 () } - let _run_target_args'_v63 = v77 - #endif - let v78 : System.IDisposable = _run_target_args'_v63 - let v82 : System.Threading.CancellationToken = v62.Token - let _run_target_args'_v1 = struct (v82, v78) - #endif - let struct (v83 : System.Threading.CancellationToken, v84 : System.IDisposable) = _run_target_args'_v1 - struct (v83, v84) -let v0 : (System.Threading.CancellationToken option -> struct (System.Threading.CancellationToken * System.IDisposable)) = closure0() -let new_disposable_token x = v0 x -() - -00:00:06 d #96 Supervisor.buildFile / takeWhileInclusive / path: threading.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: -type Disposable (f : unit -> unit) = interface System.IDisposable with member _.Dispose () = f () -type [<Struct>] US0 = - | US0_0 of f0_0 : System.Threading.CancellationToken - | US0_1 -let rec closure1 () (v0 : System.Threading.CancellationToken) : US0 = - US0_0(v0) -and method0 () : (System.Threading.CancellationToken -> US0) = - closure1() -and closure2 (v0 : System.Threading.CancellationTokenSource) () : unit = - (* run_target_args' - let v1 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - null |> unbox<unit> - #endif -#if FABLE_COMPILER_RUST && WASM - null |> unbox<unit> - #endif -#if FABLE_COMPILER_RUST && CONTRACT - null |> unbox<unit...er _.Dispose () = v74 () } - let _run_target_args'_v63 = v75 - #endif -#else - let v76 : (unit -> unit) = method2(v62) - let v77 : System.IDisposable = { new System.IDisposable with member _.Dispose () = v76 () } - let _run_target_args'_v63 = v77 - #endif - let v78 : System.IDisposable = _run_target_args'_v63 - let v82 : System.Threading.CancellationToken = v62.Token - let _run_target_args'_v1 = struct (v82, v78) - #endif - let struct (v83 : System.Threading.CancellationToken, v84 : System.IDisposable) = _run_target_args'_v1 - struct (v83, v84) -let v0 : (System.Threading.CancellationToken option -> struct (System.Threading.CancellationToken * System.IDisposable)) = closure0() -let new_disposable_token x = v0 x -() - -00:00:06 d #97 FileSystem.watchWithFilter / Disposing watch stream / filter: FileName, LastWrite -00:00:06 d #98 Supervisor.buildFile / AsyncSeq.scan / path: runtime.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:06 d #98 Supervisor.buildFile / AsyncSeq.scan / path: trace.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:06 d #100 Supervisor.buildFile / takeWhileInclusive / path: runtime.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:06 d #101 Supervisor.buildFile / takeWhileInclusive / path: trace.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:06 d #102 Supervisor.buildFile / AsyncSeq.scan / path: networking.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:06 d #102 Supervisor.buildFile / AsyncSeq.scan / path: async.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:06 d #104 Supervisor.buildFile / takeWhileInclusive / path: async.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:06 d #104 Supervisor.buildFile / takeWhileInclusive / path: networking.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:06 d #106 Supervisor.buildFile / AsyncSeq.scan / path: trace.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::string::String")>] -type std_string_String = class end -#else -type std_string_String = string -#endif - -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("&$0")>] -type Ref<'T> = class end -#else -type Ref<'T> = 'T -#endif - -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("mut $0")>] -#endif -type Mut<'T> = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("Vec<$0>")>] -#endif -type Vec<'T> = class end -module TraceState = let mutable trace_state = None -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::env::VarError")>] -#endif -type std_env_VarError = class end -type IOsEnviron = abstract environ: x: unit -> obj -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Co... else - let v43 : string = v2 () - method15(v20, v21, v22, v23, v24, v25, v38, v39, v40, v43) - method18(v45) -and closure5 (v0 : US0, v1 : (unit -> string)) (v2 : (unit -> string)) : unit = - let v3 : unit = () - let v4 : (unit -> unit) = closure6(v0, v1, v2) - let v5 : unit = (fun () -> v4 (); v3) () - () -and closure4 (v0 : US0) (v1 : (unit -> string)) : ((unit -> string) -> unit) = - closure5(v0, v1) -and closure3 () (v0 : US0) : ((unit -> string) -> ((unit -> string) -> unit)) = - closure4(v0) -let v0 : unit = () -let v1 : (unit -> unit) = closure0() -let v2 : unit = (fun () -> v1 (); v0) () -let v16 : (US0 -> ((unit -> string) -> ((unit -> string) -> unit))) = closure3() -let trace x = v16 x -() - -00:00:06 d #107 Supervisor.buildFile / takeWhileInclusive / path: trace.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::string::String")>] -type std_string_String = class end -#else -type std_string_String = string -#endif - -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("&$0")>] -type Ref<'T> = class end -#else -type Ref<'T> = 'T -#endif - -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("mut $0")>] -#endif -type Mut<'T> = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("Vec<$0>")>] -#endif -type Vec<'T> = class end -module TraceState = let mutable trace_state = None -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::env::VarError")>] -#endif -type std_env_VarError = class end -type IOsEnviron = abstract environ: x: unit -> obj -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Co... else - let v43 : string = v2 () - method15(v20, v21, v22, v23, v24, v25, v38, v39, v40, v43) - method18(v45) -and closure5 (v0 : US0, v1 : (unit -> string)) (v2 : (unit -> string)) : unit = - let v3 : unit = () - let v4 : (unit -> unit) = closure6(v0, v1, v2) - let v5 : unit = (fun () -> v4 (); v3) () - () -and closure4 (v0 : US0) (v1 : (unit -> string)) : ((unit -> string) -> unit) = - closure5(v0, v1) -and closure3 () (v0 : US0) : ((unit -> string) -> ((unit -> string) -> unit)) = - closure4(v0) -let v0 : unit = () -let v1 : (unit -> unit) = closure0() -let v2 : unit = (fun () -> v1 (); v0) () -let v16 : (US0 -> ((unit -> string) -> ((unit -> string) -> unit))) = closure3() -let trace x = v16 x -() - -00:00:06 d #108 FileSystem.watchWithFilter / Disposing watch stream / filter: FileName, LastWrite -00:00:06 v #8 async.run_with_timeout_async / { timeout = 180 } -00:00:06 d #109 Supervisor.buildFile / takeWhileInclusive / path: crypto.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:06 d #110 Supervisor.buildFile / AsyncSeq.scan / path: crypto.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:06 d #111 Supervisor.buildFile / takeWhileInclusive / path: crypto.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:06 v #112 Supervisor.sendJson / port: 13805 / json: {"FileOpen":{"spiText":"/// # crypto\nopen rust\nopen rust_operators\n\n/// ## fsharp\n\n/// ### sha..._port x = !hash_to_port x\u0027 : ()\n","uri":"file:///c:/home/git/polyglot/lib/spiral/crypto.spi"}} / result: -00:00:06 v #113 Supervisor.sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/lib/spiral/crypto.spi"}} / result: -00:00:06 d #114 Supervisor.buildFile / AsyncSeq.scan / path: async.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: -let rec method0 (v0 : System.Threading.CancellationToken) : Async<System.Threading.CancellationToken> = - (* run_target_args' - let v1 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v2 : Async<System.Threading.CancellationToken> = null |> unbox<Async<System.Threading.CancellationToken>> - let _run_target_args'_v1 = v2 - #endif -#if FABLE_COMPILER_RUST && WASM - let v5 : Async<System.Threading.CancellationToken> = null |> unbox<Async<System.Threading.CancellationToken>> - let _run_target_args'_v1 = v5 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v8 : Async<System.Threading.CancellationToken> = null |> unbox<Async<System.Threadin... let v747 : System.Threading.CancellationToken = v746.Token - return v747 - #endif - // run_target_args' is_unit - (* indent - () - indent *) - } - (* indent - () - indent *) - let v954 : Async<System.Threading.CancellationToken> = _let'_v719 - let _run_target_args'_v1 = v954 - #endif - let v955 : Async<System.Threading.CancellationToken> = _run_target_args'_v1 - v955 -and closure0 () (v0 : System.Threading.CancellationToken) : Async<System.Threading.CancellationToken> = - method0(v0) -let v0 : (System.Threading.CancellationToken -> Async<System.Threading.CancellationToken>) = closure0() -let merge_cancellation_token_with_default_async x = v0 x -() - -00:00:06 d #115 Supervisor.buildFile / takeWhileInclusive / path: async.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: -let rec method0 (v0 : System.Threading.CancellationToken) : Async<System.Threading.CancellationToken> = - (* run_target_args' - let v1 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v2 : Async<System.Threading.CancellationToken> = null |> unbox<Async<System.Threading.CancellationToken>> - let _run_target_args'_v1 = v2 - #endif -#if FABLE_COMPILER_RUST && WASM - let v5 : Async<System.Threading.CancellationToken> = null |> unbox<Async<System.Threading.CancellationToken>> - let _run_target_args'_v1 = v5 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v8 : Async<System.Threading.CancellationToken> = null |> unbox<Async<System.Threadin... let v747 : System.Threading.CancellationToken = v746.Token - return v747 - #endif - // run_target_args' is_unit - (* indent - () - indent *) - } - (* indent - () - indent *) - let v954 : Async<System.Threading.CancellationToken> = _let'_v719 - let _run_target_args'_v1 = v954 - #endif - let v955 : Async<System.Threading.CancellationToken> = _run_target_args'_v1 - v955 -and closure0 () (v0 : System.Threading.CancellationToken) : Async<System.Threading.CancellationToken> = - method0(v0) -let v0 : (System.Threading.CancellationToken -> Async<System.Threading.CancellationToken>) = closure0() -let merge_cancellation_token_with_default_async x = v0 x -() - -00:00:06 d #116 FileSystem.watchWithFilter / Disposing watch stream / filter: FileName, LastWrite -00:00:06 v #9 async.run_with_timeout_async / { timeout = 180 } -00:00:06 d #117 Supervisor.buildFile / takeWhileInclusive / path: common.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:06 d #118 Supervisor.buildFile / AsyncSeq.scan / path: common.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:06 d #119 Supervisor.buildFile / takeWhileInclusive / path: common.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:06 v #120 Supervisor.sendJson / port: 13805 / json: {"FileOpen":{"spiText":"/// # common\n\n/// ## common\n\n/// ### retry_fn\u0027\ninl retry_fn\u0027 ...et memoize x = !memoize x\u0027 : ()\n","uri":"file:///c:/home/git/polyglot/lib/spiral/common.spi"}} / result: -00:00:06 v #10 async.run_with_timeout_async / { timeout = 180 } -00:00:06 v #121 Supervisor.sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/lib/spiral/common.spi"}} / result: -00:00:06 d #122 Supervisor.buildFile / takeWhileInclusive / path: date_time.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:06 d #123 Supervisor.buildFile / AsyncSeq.scan / path: date_time.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:06 d #124 Supervisor.buildFile / takeWhileInclusive / path: date_time.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:06 v #125 Supervisor.sendJson / port: 13805 / json: {"FileOpen":{"spiText":"/// # date_time\nopen rust.rust_operators\nopen sm\u0027_operators\n\n/// ##... x = !format_iso8601 x\u0027 : ()\n","uri":"file:///c:/home/git/polyglot/lib/spiral/date_time.spi"}} / result: -00:00:06 v #126 Supervisor.sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/lib/spiral/date_time.spi"}} / result: -00:00:06 d #127 Supervisor.buildFile / AsyncSeq.scan / path: networking.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:06 d #128 Supervisor.buildFile / AsyncSeq.scan / path: runtime.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:06 d #129 Supervisor.buildFile / takeWhileInclusive / path: runtime.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:06 d #130 Supervisor.buildFile / takeWhileInclusive / path: networking.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:06 d #131 Supervisor.buildFile / AsyncSeq.scan / path: crypto.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:06 d #132 Supervisor.buildFile / takeWhileInclusive / path: crypto.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:07 d #133 Supervisor.buildFile / AsyncSeq.scan / path: common.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:07 d #134 Supervisor.buildFile / takeWhileInclusive / path: common.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:07 d #135 Supervisor.buildFile / AsyncSeq.scan / path: date_time.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:07 d #136 Supervisor.buildFile / takeWhileInclusive / path: date_time.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:07 d #137 Supervisor.buildFile / AsyncSeq.scan / path: runtime.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:07 d #137 Supervisor.buildFile / AsyncSeq.scan / path: networking.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:07 d #138 Supervisor.buildFile / takeWhileInclusive / path: runtime.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:07 d #139 Supervisor.buildFile / takeWhileInclusive / path: networking.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:07 d #140 Supervisor.buildFile / AsyncSeq.scan / path: crypto.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:07 d #141 Supervisor.buildFile / takeWhileInclusive / path: crypto.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:07 d #142 Supervisor.buildFile / AsyncSeq.scan / path: common.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:07 d #143 Supervisor.buildFile / takeWhileInclusive / path: common.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:07 d #144 Supervisor.buildFile / AsyncSeq.scan / path: date_time.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:07 d #145 Supervisor.buildFile / takeWhileInclusive / path: date_time.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:07 d #146 Supervisor.buildFile / AsyncSeq.scan / path: networking.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:07 d #147 Supervisor.buildFile / takeWhileInclusive / path: networking.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:07 d #148 Supervisor.buildFile / AsyncSeq.scan / path: runtime.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:07 d #149 Supervisor.buildFile / takeWhileInclusive / path: runtime.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:08 d #150 Supervisor.buildFile / AsyncSeq.scan / path: crypto.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:08 d #151 Supervisor.buildFile / takeWhileInclusive / path: crypto.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:08 d #152 Supervisor.buildFile / AsyncSeq.scan / path: common.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:08 d #153 Supervisor.buildFile / takeWhileInclusive / path: common.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:08 d #154 Supervisor.buildFile / AsyncSeq.scan / path: date_time.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:08 d #155 Supervisor.buildFile / takeWhileInclusive / path: date_time.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:08 d #156 Supervisor.buildFile / AsyncSeq.scan / path: networking.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:08 d #157 Supervisor.buildFile / takeWhileInclusive / path: networking.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:08 d #158 Supervisor.buildFile / AsyncSeq.scan / path: runtime.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:08 d #159 Supervisor.buildFile / takeWhileInclusive / path: runtime.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:08 d #160 Supervisor.buildFile / AsyncSeq.scan / path: common.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::string::String")>] -type std_string_String = class end -#else -type std_string_String = string -#endif - -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("&$0")>] -type Ref<'T> = class end -#else -type Ref<'T> = 'T -#endif - -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("mut $0")>] -#endif -type Mut<'T> = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("Vec<$0>")>] -#endif -type Vec<'T> = class end -module TraceState = let mutable trace_state = None -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::env::VarError")>] -#endif -type std_env_VarError = class end -type IOsEnviron = abstract environ: x: unit -> obj -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Co...ion = Some () - v4 -and closure4 () (v0 : int32) : ((unit -> unit) -> unit option) = - closure5(v0) -and method22 (v0 : (unit -> unit)) : (unit -> unit) = - v0 -and closure16 (v0 : Lazy<unit>) () : unit = - v0.Value - () -and closure15 () (v0 : (unit -> unit)) : (unit -> unit) = - let v1 : (unit -> unit) = method22(v0) - let v2 : Lazy<unit> = lazy v1 () - closure16(v2) -let v0 : unit = () -let v1 : (unit -> unit) = closure0() -let v2 : unit = (fun () -> v1 (); v0) () -let v16 : ((unit -> unit) -> System.IDisposable) = closure3() -let new_disposable x = v16 x -let v17 : (int32 -> ((unit -> unit) -> unit option)) = closure4() -let retry_fn x = v17 x -let v18 : ((unit -> unit) -> (unit -> unit)) = closure15() -let memoize x = v18 x -() - -00:00:08 d #161 Supervisor.buildFile / takeWhileInclusive / path: common.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::string::String")>] -type std_string_String = class end -#else -type std_string_String = string -#endif - -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("&$0")>] -type Ref<'T> = class end -#else -type Ref<'T> = 'T -#endif - -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("mut $0")>] -#endif -type Mut<'T> = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("Vec<$0>")>] -#endif -type Vec<'T> = class end -module TraceState = let mutable trace_state = None -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::env::VarError")>] -#endif -type std_env_VarError = class end -type IOsEnviron = abstract environ: x: unit -> obj -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Co...ion = Some () - v4 -and closure4 () (v0 : int32) : ((unit -> unit) -> unit option) = - closure5(v0) -and method22 (v0 : (unit -> unit)) : (unit -> unit) = - v0 -and closure16 (v0 : Lazy<unit>) () : unit = - v0.Value - () -and closure15 () (v0 : (unit -> unit)) : (unit -> unit) = - let v1 : (unit -> unit) = method22(v0) - let v2 : Lazy<unit> = lazy v1 () - closure16(v2) -let v0 : unit = () -let v1 : (unit -> unit) = closure0() -let v2 : unit = (fun () -> v1 (); v0) () -let v16 : ((unit -> unit) -> System.IDisposable) = closure3() -let new_disposable x = v16 x -let v17 : (int32 -> ((unit -> unit) -> unit option)) = closure4() -let retry_fn x = v17 x -let v18 : ((unit -> unit) -> (unit -> unit)) = closure15() -let memoize x = v18 x -() - -00:00:08 d #162 FileSystem.watchWithFilter / Disposing watch stream / filter: FileName, LastWrite -00:00:08 d #163 Supervisor.buildFile / AsyncSeq.scan / path: crypto.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:08 d #164 Supervisor.buildFile / takeWhileInclusive / path: crypto.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:08 v #11 async.run_with_timeout_async / { timeout = 180 } -00:00:08 d #165 Supervisor.buildFile / takeWhileInclusive / path: platform.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:08 d #166 Supervisor.buildFile / AsyncSeq.scan / path: platform.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:08 d #167 Supervisor.buildFile / takeWhileInclusive / path: platform.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:08 v #168 Supervisor.sendJson / port: 13805 / json: {"FileOpen":{"spiText":"/// # platform\nopen rust.rust_operators\n\n/// ## fsharp\n\n/// ### os_plat...et_executable_suffix ()\u0027 : ()\n","uri":"file:///c:/home/git/polyglot/lib/spiral/platform.spi"}} / result: -00:00:08 v #169 Supervisor.sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/lib/spiral/platform.spi"}} / result: -00:00:08 d #170 Supervisor.buildFile / AsyncSeq.scan / path: date_time.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:08 d #171 Supervisor.buildFile / takeWhileInclusive / path: date_time.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:08 d #172 Supervisor.buildFile / AsyncSeq.scan / path: networking.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:08 d #173 Supervisor.buildFile / takeWhileInclusive / path: networking.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:08 d #174 Supervisor.buildFile / AsyncSeq.scan / path: runtime.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:08 d #175 Supervisor.buildFile / takeWhileInclusive / path: runtime.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:08 d #176 Supervisor.buildFile / AsyncSeq.scan / path: date_time.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("chrono::DateTime<$0>")>] -#endif -type chrono_DateTime<'T> = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("chrono::NaiveDateTime")>] -#endif -type chrono_NaiveDateTime = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("&$0")>] -type Ref<'T> = class end -#else -type Ref<'T> = 'T -#endif - -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::string::String")>] -type std_string_String = class end -#else -type std_string_String = string -#endif - -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("chrono::Utc")>] -#endif -type chrono_Utc = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("chrono::Local")>] -#endif -type chrono_Local = class en...HH-mm-ss.fff" - v1 v2 -let v0 : (System.Guid -> (System.DateTime -> System.Guid)) = closure0() -let date_time_guid_from_date_time x = v0 x -let v1 : (System.Guid -> System.DateTime) = closure3() -let date_time_from_guid x = v1 x -let v2 : (System.Guid -> (int64 -> System.Guid)) = closure5() -let timestamp_guid_from_timestamp x = v2 x -let v3 : (System.Guid -> int64) = closure8() -let timestamp_from_guid x = v3 x -let v4 : (System.DateTime -> System.Guid) = closure9() -let new_guid_from_date_time x = v4 x -let v5 : (int64 -> System.Guid) = closure10() -let new_guid_from_timestamp x = v5 x -let v6 : (string -> (System.DateTime -> string)) = closure11() -let format x = v6 x -let v7 : (System.DateTime -> string) = closure13() -let format_iso8601 x = v7 x -() - -00:00:08 d #177 Supervisor.buildFile / takeWhileInclusive / path: date_time.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("chrono::DateTime<$0>")>] -#endif -type chrono_DateTime<'T> = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("chrono::NaiveDateTime")>] -#endif -type chrono_NaiveDateTime = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("&$0")>] -type Ref<'T> = class end -#else -type Ref<'T> = 'T -#endif - -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::string::String")>] -type std_string_String = class end -#else -type std_string_String = string -#endif - -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("chrono::Utc")>] -#endif -type chrono_Utc = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("chrono::Local")>] -#endif -type chrono_Local = class en...HH-mm-ss.fff" - v1 v2 -let v0 : (System.Guid -> (System.DateTime -> System.Guid)) = closure0() -let date_time_guid_from_date_time x = v0 x -let v1 : (System.Guid -> System.DateTime) = closure3() -let date_time_from_guid x = v1 x -let v2 : (System.Guid -> (int64 -> System.Guid)) = closure5() -let timestamp_guid_from_timestamp x = v2 x -let v3 : (System.Guid -> int64) = closure8() -let timestamp_from_guid x = v3 x -let v4 : (System.DateTime -> System.Guid) = closure9() -let new_guid_from_date_time x = v4 x -let v5 : (int64 -> System.Guid) = closure10() -let new_guid_from_timestamp x = v5 x -let v6 : (string -> (System.DateTime -> string)) = closure11() -let format x = v6 x -let v7 : (System.DateTime -> string) = closure13() -let format_iso8601 x = v7 x -() - -00:00:08 d #178 FileSystem.watchWithFilter / Disposing watch stream / filter: FileName, LastWrite -00:00:08 d #179 Supervisor.buildFile / AsyncSeq.scan / path: crypto.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("Vec<$0>")>] -#endif -type Vec<'T> = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::io::Cursor<$0>")>] -#endif -type std_io_Cursor<'T> = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::io::BufReader<$0>")>] -#endif -type std_io_BufReader<'T> = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("sha2::Sha256")>] -#endif -type sha2_Sha256 = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("_")>] -#endif -type Slice'<'T> = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("&$0")>] -type Ref<'T> = class end -#else -type Ref<'T> = 'T -#endif - -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::string::Stri...let _run_target_args'_v2 = v38 - #endif -#else - let v45 : int32 = System.Char.ConvertToUtf32 (string v1, 0) - let _run_target_args'_v2 = v45 - #endif - let v46 : int32 = _run_target_args'_v2 - let v57 : string = v0.[int 0..int 7] - let v60 : int32 = System.Convert.ToInt32 (v57, 16) - let v63 : int32 = v60 + v46 - let v64 : (int32 -> uint16) = uint16 - let v65 : uint16 = v64 v63 - let v68 : unit = () - let v69 : (unit -> unit) = closure2(v46, v57, v65) - let v70 : unit = (fun () -> v69 (); v68) () - let v110 : uint16 = v65 % 48128us - let v111 : uint16 = v110 + 1024us - v111 -let v0 : (string -> string) = closure0() -let hash_text x = v0 x -let v1 : (string -> uint16) = closure1() -let hash_to_port x = v1 x -() - -00:00:08 d #180 Supervisor.buildFile / takeWhileInclusive / path: crypto.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("Vec<$0>")>] -#endif -type Vec<'T> = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::io::Cursor<$0>")>] -#endif -type std_io_Cursor<'T> = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::io::BufReader<$0>")>] -#endif -type std_io_BufReader<'T> = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("sha2::Sha256")>] -#endif -type sha2_Sha256 = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("_")>] -#endif -type Slice'<'T> = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("&$0")>] -type Ref<'T> = class end -#else -type Ref<'T> = 'T -#endif - -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::string::Stri...let _run_target_args'_v2 = v38 - #endif -#else - let v45 : int32 = System.Char.ConvertToUtf32 (string v1, 0) - let _run_target_args'_v2 = v45 - #endif - let v46 : int32 = _run_target_args'_v2 - let v57 : string = v0.[int 0..int 7] - let v60 : int32 = System.Convert.ToInt32 (v57, 16) - let v63 : int32 = v60 + v46 - let v64 : (int32 -> uint16) = uint16 - let v65 : uint16 = v64 v63 - let v68 : unit = () - let v69 : (unit -> unit) = closure2(v46, v57, v65) - let v70 : unit = (fun () -> v69 (); v68) () - let v110 : uint16 = v65 % 48128us - let v111 : uint16 = v110 + 1024us - v111 -let v0 : (string -> string) = closure0() -let hash_text x = v0 x -let v1 : (string -> uint16) = closure1() -let hash_to_port x = v1 x -() - -00:00:09 d #181 FileSystem.watchWithFilter / Disposing watch stream / filter: FileName, LastWrite -00:00:09 d #182 Supervisor.buildFile / AsyncSeq.scan / path: platform.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:09 d #183 Supervisor.buildFile / takeWhileInclusive / path: platform.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:09 v #12 async.run_with_timeout_async / { timeout = 180 } -00:00:09 d #184 Supervisor.buildFile / takeWhileInclusive / path: file_system.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:09 d #185 Supervisor.buildFile / AsyncSeq.scan / path: file_system.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:09 d #186 Supervisor.buildFile / takeWhileInclusive / path: file_system.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:09 v #187 Supervisor.sendJson / port: 13805 / json: {"FileOpen":{"spiText":"/// # file_system\nopen sm\u0027_operators\nopen rust\nopen rust_operators\n...003E) x = !combine x\u0027 : ()\n","uri":"file:///c:/home/git/polyglot/lib/spiral/file_system.spi"}} / result: -00:00:09 v #188 Supervisor.sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/lib/spiral/file_system.spi"}} / result: -00:00:09 v #13 async.run_with_timeout_async / { timeout = 180 } -00:00:09 d #189 Supervisor.buildFile / takeWhileInclusive / path: guid.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:09 d #190 Supervisor.buildFile / AsyncSeq.scan / path: guid.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:09 d #191 Supervisor.buildFile / takeWhileInclusive / path: guid.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:09 v #192 Supervisor.sendJson / port: 13805 / json: {"FileOpen":{"spiText":"/// # guid\n\n/// ## guid\n\n/// ### guid\nnominal guid_python =\n \u0060...aw_guid x = !new_raw_guid x\u0027 : ()\n","uri":"file:///c:/home/git/polyglot/lib/spiral/guid.spi"}} / result: -00:00:09 v #193 Supervisor.sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/lib/spiral/guid.spi"}} / result: -00:00:09 d #194 Supervisor.buildFile / AsyncSeq.scan / path: networking.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:09 d #195 Supervisor.buildFile / takeWhileInclusive / path: networking.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:09 d #196 Supervisor.buildFile / AsyncSeq.scan / path: runtime.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:09 d #197 Supervisor.buildFile / takeWhileInclusive / path: runtime.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:09 d #198 Supervisor.buildFile / AsyncSeq.scan / path: platform.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: -type [<Struct>] US0 = - | US0_0 - | US0_1 - | US0_2 -and [<Struct>] US1 = - | US1_0 of f0_0 : US0 - | US1_1 of f1_0 : US0 - | US1_2 of f2_0 : US0 - | US1_3 of f3_0 : US0 - | US1_4 of f4_0 : US0 -let rec closure0 () () : bool = - (* run_target_args' - let v0 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v1 : string = "cfg!(windows)" - let v2 : bool = Fable.Core.RustInterop.emitRustExpr () v1 - let _run_target_args'_v0 = v2 - #endif -#if FABLE_COMPILER_RUST && WASM - let v3 : string = "cfg!(windows)" - let v4 : bool = Fable.Core.RustInterop.emitRustExpr () v3 - let _run_target_args'_v0 = v4 - #endif -#if FABLE_COMPILE...untime.InteropServices.RuntimeInformation.IsOSPlatform - let v17 : bool = v16 v15 - let _run_target_args'_v0 = v17 - #endif -#else - let v18 : System.Runtime.InteropServices.OSPlatform = System.Runtime.InteropServices.OSPlatform.Windows - let v19 : (System.Runtime.InteropServices.OSPlatform -> bool) = System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform - let v20 : bool = v19 v18 - let _run_target_args'_v0 = v20 - #endif - let v21 : bool = _run_target_args'_v0 - if v21 then - let v27 : string = ".exe" - v27 - else - let v28 : string = "" - v28 -let v0 : (unit -> bool) = closure0() -let is_windows () = v0 () -let v1 : (unit -> string) = closure1() -let get_executable_suffix () = v1 () -() - -00:00:09 d #199 Supervisor.buildFile / takeWhileInclusive / path: platform.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: -type [<Struct>] US0 = - | US0_0 - | US0_1 - | US0_2 -and [<Struct>] US1 = - | US1_0 of f0_0 : US0 - | US1_1 of f1_0 : US0 - | US1_2 of f2_0 : US0 - | US1_3 of f3_0 : US0 - | US1_4 of f4_0 : US0 -let rec closure0 () () : bool = - (* run_target_args' - let v0 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v1 : string = "cfg!(windows)" - let v2 : bool = Fable.Core.RustInterop.emitRustExpr () v1 - let _run_target_args'_v0 = v2 - #endif -#if FABLE_COMPILER_RUST && WASM - let v3 : string = "cfg!(windows)" - let v4 : bool = Fable.Core.RustInterop.emitRustExpr () v3 - let _run_target_args'_v0 = v4 - #endif -#if FABLE_COMPILE...untime.InteropServices.RuntimeInformation.IsOSPlatform - let v17 : bool = v16 v15 - let _run_target_args'_v0 = v17 - #endif -#else - let v18 : System.Runtime.InteropServices.OSPlatform = System.Runtime.InteropServices.OSPlatform.Windows - let v19 : (System.Runtime.InteropServices.OSPlatform -> bool) = System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform - let v20 : bool = v19 v18 - let _run_target_args'_v0 = v20 - #endif - let v21 : bool = _run_target_args'_v0 - if v21 then - let v27 : string = ".exe" - v27 - else - let v28 : string = "" - v28 -let v0 : (unit -> bool) = closure0() -let is_windows () = v0 () -let v1 : (unit -> string) = closure1() -let get_executable_suffix () = v1 () -() - -00:00:09 d #200 FileSystem.watchWithFilter / Disposing watch stream / filter: FileName, LastWrite -00:00:09 v #14 async.run_with_timeout_async / { timeout = 180 } -00:00:09 d #201 Supervisor.buildFile / takeWhileInclusive / path: sm'.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:09 d #202 Supervisor.buildFile / AsyncSeq.scan / path: sm'.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:09 d #203 Supervisor.buildFile / takeWhileInclusive / path: sm'.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:09 v #204 Supervisor.sendJson / port: 13805 / json: {"FileOpen":{"spiText":"/// # sm\u0027\nopen rust\nopen rust_operators\nopen sm\u0027_real\n\n/// ##...tring std_string = from_std_string\n","uri":"file:///c:/home/git/polyglot/lib/spiral/sm\u0027.spi"}} / result: -00:00:09 v #205 Supervisor.sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/lib/spiral/sm\u0027.spi"}} / result: -00:00:09 d #206 Supervisor.buildFile / AsyncSeq.scan / path: file_system.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:09 d #207 Supervisor.buildFile / takeWhileInclusive / path: file_system.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:09 d #208 Supervisor.buildFile / AsyncSeq.scan / path: guid.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:09 d #209 Supervisor.buildFile / takeWhileInclusive / path: guid.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:09 d #210 Supervisor.buildFile / AsyncSeq.scan / path: networking.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:09 d #211 Supervisor.buildFile / takeWhileInclusive / path: networking.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:09 d #212 Supervisor.buildFile / AsyncSeq.scan / path: runtime.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:09 d #213 Supervisor.buildFile / takeWhileInclusive / path: runtime.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:10 d #214 Supervisor.buildFile / AsyncSeq.scan / path: sm'.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:10 d #215 Supervisor.buildFile / takeWhileInclusive / path: sm'.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:10 d #216 Supervisor.buildFile / AsyncSeq.scan / path: file_system.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:10 d #217 Supervisor.buildFile / takeWhileInclusive / path: file_system.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:10 d #218 Supervisor.buildFile / AsyncSeq.scan / path: guid.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:10 d #219 Supervisor.buildFile / takeWhileInclusive / path: guid.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:10 d #220 Supervisor.buildFile / AsyncSeq.scan / path: networking.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:10 d #221 Supervisor.buildFile / takeWhileInclusive / path: networking.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:10 d #222 Supervisor.buildFile / AsyncSeq.scan / path: runtime.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:10 d #223 Supervisor.buildFile / takeWhileInclusive / path: runtime.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:10 d #224 Supervisor.buildFile / AsyncSeq.scan / path: guid.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: -let rec closure0 () (v0 : string) : System.Guid = - (* run_target_args' - let v1 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v2 : System.Guid = v0 |> System.Guid - let _run_target_args'_v1 = v2 - #endif -#if FABLE_COMPILER_RUST && WASM - let v5 : System.Guid = v0 |> System.Guid - let _run_target_args'_v1 = v5 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v8 : System.Guid = null |> unbox<System.Guid> - let _run_target_args'_v1 = v8 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v11 : System.Guid = v0 |> System.Guid - let _run_target_args'_v1 = v11 - #endif -#if FABLE_COMPILER_PYTHON - let v14 : System.Guid = v0 |...PYTHON - let v743 : System.Guid = v726 |> System.Guid - let _run_target_args'_v727 = v743 - #endif -#else - let v746 : System.Guid = v726 |> System.Guid - let _run_target_args'_v727 = v746 - #endif - let v749 : System.Guid = _run_target_args'_v727 - let _run_target_args'_v12 = v749 - #endif - let v754 : System.Guid = _run_target_args'_v12 - v754 -and closure1 () (v0 : string) : System.Guid = - method0(v0) -and closure3 () () : System.Guid = - let v0 : (unit -> System.Guid) = System.Guid.NewGuid - v0 () -let v0 : (string -> System.Guid) = closure0() -let new_guid x = v0 x -let v1 : (string -> System.Guid) = closure1() -let hash_guid x = v1 x -let v2 : (unit -> System.Guid) = closure3() -let new_raw_guid x = v2 x -() - -00:00:10 d #225 Supervisor.buildFile / takeWhileInclusive / path: guid.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: -let rec closure0 () (v0 : string) : System.Guid = - (* run_target_args' - let v1 : unit = () - run_target_args' *) - -#if FABLE_COMPILER || WASM || CONTRACT - -#if FABLE_COMPILER_RUST && !WASM && !CONTRACT - let v2 : System.Guid = v0 |> System.Guid - let _run_target_args'_v1 = v2 - #endif -#if FABLE_COMPILER_RUST && WASM - let v5 : System.Guid = v0 |> System.Guid - let _run_target_args'_v1 = v5 - #endif -#if FABLE_COMPILER_RUST && CONTRACT - let v8 : System.Guid = null |> unbox<System.Guid> - let _run_target_args'_v1 = v8 - #endif -#if FABLE_COMPILER_TYPESCRIPT - let v11 : System.Guid = v0 |> System.Guid - let _run_target_args'_v1 = v11 - #endif -#if FABLE_COMPILER_PYTHON - let v14 : System.Guid = v0 |...PYTHON - let v743 : System.Guid = v726 |> System.Guid - let _run_target_args'_v727 = v743 - #endif -#else - let v746 : System.Guid = v726 |> System.Guid - let _run_target_args'_v727 = v746 - #endif - let v749 : System.Guid = _run_target_args'_v727 - let _run_target_args'_v12 = v749 - #endif - let v754 : System.Guid = _run_target_args'_v12 - v754 -and closure1 () (v0 : string) : System.Guid = - method0(v0) -and closure3 () () : System.Guid = - let v0 : (unit -> System.Guid) = System.Guid.NewGuid - v0 () -let v0 : (string -> System.Guid) = closure0() -let new_guid x = v0 x -let v1 : (string -> System.Guid) = closure1() -let hash_guid x = v1 x -let v2 : (unit -> System.Guid) = closure3() -let new_raw_guid x = v2 x -() - -00:00:10 d #226 FileSystem.watchWithFilter / Disposing watch stream / filter: FileName, LastWrite -00:00:10 d #227 Supervisor.buildFile / AsyncSeq.scan / path: sm'.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:10 d #228 Supervisor.buildFile / takeWhileInclusive / path: sm'.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:10 d #229 Supervisor.buildFile / AsyncSeq.scan / path: file_system.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:10 d #230 Supervisor.buildFile / takeWhileInclusive / path: file_system.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:10 d #231 Supervisor.buildFile / AsyncSeq.scan / path: runtime.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:10 d #233 Supervisor.buildFile / takeWhileInclusive / path: runtime.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:10 d #231 Supervisor.buildFile / AsyncSeq.scan / path: networking.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:10 d #234 Supervisor.buildFile / takeWhileInclusive / path: networking.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:11 d #235 Supervisor.buildFile / AsyncSeq.scan / path: sm'.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("regex::Regex")>] -#endif -type regex_Regex = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::borrow::Cow<$0>")>] -#endif -type std_borrow_Cow<'T> = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::string::String")>] -type std_string_String = class end -#else -type std_string_String = string -#endif - -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("regex::Error")>] -#endif -type regex_Error = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("str")>] -type Str = class end -#else -type Str = string -#endif - -type UH0 = - | UH0_0 - | UH0_1 of char * UH0 -and Mut0 = {mutable l0 : int32; mutable l1 : string; mutable l2 : string} -and Mut...= closure31() -let trim x = v13 x -let v14 : ((char []) -> (string -> string)) = closure32() -let trim_end x = v14 x -let v15 : ((char []) -> (string -> string)) = closure36() -let trim_start x = v15 x -let v16 : (int32 -> (string -> string)) = closure38() -let ellipsis x = v16 x -let v17 : (int64 -> (string -> string)) = closure40() -let ellipsis_end x = v17 x -let v18 : (exn -> string) = closure42() -let format_exception x = v18 x -let v19 : (string -> ((string []) -> string)) = closure43() -let concat_array x = v19 x -let v20 : (string -> (string seq -> string)) = closure45() -let concat x = v20 x -let v21 : (string -> ((string []) -> string)) = closure47() -let join' x = v21 x -let v22 : (string -> (char [])) = closure49() -let to_char_array x = v22 x -() - -00:00:11 d #236 Supervisor.buildFile / takeWhileInclusive / path: sm'.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("regex::Regex")>] -#endif -type regex_Regex = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::borrow::Cow<$0>")>] -#endif -type std_borrow_Cow<'T> = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::string::String")>] -type std_string_String = class end -#else -type std_string_String = string -#endif - -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("regex::Error")>] -#endif -type regex_Error = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("str")>] -type Str = class end -#else -type Str = string -#endif - -type UH0 = - | UH0_0 - | UH0_1 of char * UH0 -and Mut0 = {mutable l0 : int32; mutable l1 : string; mutable l2 : string} -and Mut...= closure31() -let trim x = v13 x -let v14 : ((char []) -> (string -> string)) = closure32() -let trim_end x = v14 x -let v15 : ((char []) -> (string -> string)) = closure36() -let trim_start x = v15 x -let v16 : (int32 -> (string -> string)) = closure38() -let ellipsis x = v16 x -let v17 : (int64 -> (string -> string)) = closure40() -let ellipsis_end x = v17 x -let v18 : (exn -> string) = closure42() -let format_exception x = v18 x -let v19 : (string -> ((string []) -> string)) = closure43() -let concat_array x = v19 x -let v20 : (string -> (string seq -> string)) = closure45() -let concat x = v20 x -let v21 : (string -> ((string []) -> string)) = closure47() -let join' x = v21 x -let v22 : (string -> (char [])) = closure49() -let to_char_array x = v22 x -() - -00:00:11 d #237 FileSystem.watchWithFilter / Disposing watch stream / filter: FileName, LastWrite -00:00:11 d #238 Supervisor.buildFile / AsyncSeq.scan / path: file_system.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:11 d #239 Supervisor.buildFile / takeWhileInclusive / path: file_system.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:11 d #240 Supervisor.buildFile / AsyncSeq.scan / path: runtime.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:11 d #240 Supervisor.buildFile / AsyncSeq.scan / path: networking.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:11 d #242 Supervisor.buildFile / takeWhileInclusive / path: networking.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:11 d #242 Supervisor.buildFile / takeWhileInclusive / path: runtime.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:11 d #244 Supervisor.buildFile / AsyncSeq.scan / path: file_system.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:11 d #245 Supervisor.buildFile / takeWhileInclusive / path: file_system.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:11 d #246 Supervisor.buildFile / AsyncSeq.scan / path: runtime.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:11 d #246 Supervisor.buildFile / AsyncSeq.scan / path: networking.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:11 d #248 Supervisor.buildFile / takeWhileInclusive / path: runtime.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:11 d #249 Supervisor.buildFile / takeWhileInclusive / path: networking.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:12 d #250 Supervisor.buildFile / AsyncSeq.scan / path: file_system.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:12 d #251 Supervisor.buildFile / takeWhileInclusive / path: file_system.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:12 d #252 Supervisor.buildFile / AsyncSeq.scan / path: runtime.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:12 d #254 Supervisor.buildFile / takeWhileInclusive / path: runtime.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:12 d #252 Supervisor.buildFile / AsyncSeq.scan / path: networking.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:12 d #255 Supervisor.buildFile / takeWhileInclusive / path: networking.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:12 d #256 Supervisor.buildFile / AsyncSeq.scan / path: file_system.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:12 d #257 Supervisor.buildFile / takeWhileInclusive / path: file_system.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:12 d #258 Supervisor.buildFile / AsyncSeq.scan / path: networking.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:12 d #258 Supervisor.buildFile / AsyncSeq.scan / path: runtime.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:12 d #260 Supervisor.buildFile / takeWhileInclusive / path: networking.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:12 d #261 Supervisor.buildFile / takeWhileInclusive / path: runtime.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:13 d #262 Supervisor.buildFile / AsyncSeq.scan / path: file_system.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:13 d #263 Supervisor.buildFile / takeWhileInclusive / path: file_system.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:13 d #264 Supervisor.buildFile / AsyncSeq.scan / path: networking.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:13 d #264 Supervisor.buildFile / AsyncSeq.scan / path: runtime.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:13 d #265 Supervisor.buildFile / takeWhileInclusive / path: runtime.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:13 d #266 Supervisor.buildFile / takeWhileInclusive / path: networking.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:13 d #267 Supervisor.buildFile / AsyncSeq.scan / path: file_system.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:13 d #268 Supervisor.buildFile / takeWhileInclusive / path: file_system.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:13 d #269 Supervisor.buildFile / AsyncSeq.scan / path: networking.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:13 d #269 Supervisor.buildFile / AsyncSeq.scan / path: runtime.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:13 d #271 Supervisor.buildFile / takeWhileInclusive / path: networking.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:13 d #272 Supervisor.buildFile / takeWhileInclusive / path: runtime.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:14 d #273 Supervisor.buildFile / AsyncSeq.scan / path: file_system.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:14 d #274 Supervisor.buildFile / takeWhileInclusive / path: file_system.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:14 d #275 Supervisor.buildFile / AsyncSeq.scan / path: networking.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:14 d #275 Supervisor.buildFile / AsyncSeq.scan / path: runtime.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:14 d #277 Supervisor.buildFile / takeWhileInclusive / path: networking.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:14 d #278 Supervisor.buildFile / takeWhileInclusive / path: runtime.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:14 d #279 Supervisor.buildFile / AsyncSeq.scan / path: file_system.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:14 d #280 Supervisor.buildFile / takeWhileInclusive / path: file_system.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:14 d #281 Supervisor.buildFile / AsyncSeq.scan / path: networking.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:14 d #281 Supervisor.buildFile / AsyncSeq.scan / path: runtime.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:14 d #282 Supervisor.buildFile / takeWhileInclusive / path: networking.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:14 d #283 Supervisor.buildFile / takeWhileInclusive / path: runtime.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:15 d #284 Supervisor.buildFile / AsyncSeq.scan / path: file_system.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:15 d #285 Supervisor.buildFile / takeWhileInclusive / path: file_system.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:15 d #286 Supervisor.buildFile / AsyncSeq.scan / path: runtime.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:15 d #286 Supervisor.buildFile / AsyncSeq.scan / path: networking.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:15 d #287 Supervisor.buildFile / takeWhileInclusive / path: runtime.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:15 d #288 Supervisor.buildFile / takeWhileInclusive / path: networking.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:15 d #289 Supervisor.buildFile / AsyncSeq.scan / path: networking.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::string::String")>] -type std_string_String = class end -#else -type std_string_String = string -#endif - -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("&$0")>] -type Ref<'T> = class end -#else -type Ref<'T> = 'T -#endif - -#if FABLE_COMPILER - -type System_Net_Sockets_TcpClient = System.IDisposable -#else -type System_Net_Sockets_TcpClient = System.Net.Sockets.TcpClient -#endif - -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("mut $0")>] -#endif -type Mut<'T> = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("Vec<$0>")>] -#endif -type Vec<'T> = class end -module TraceState = let mutable trace_state = None -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::env...> = - method41(v0, v1, v2) -and closure25 (v0 : int32 option) (v1 : string) : (int32 -> Async<int32>) = - closure26(v0, v1) -and closure24 () (v0 : int32 option) : (string -> (int32 -> Async<int32>)) = - closure25(v0) -let v0 : unit = () -let v1 : (unit -> unit) = closure0() -let v2 : unit = (fun () -> v1 (); v0) () -let v16 : (string -> (int32 -> Async<bool>)) = closure3() -let test_port_open x = v16 x -let v17 : (int32 -> (string -> (int32 -> Async<bool>))) = closure11() -let test_port_open_timeout x = v17 x -let v18 : (int32 option -> (bool -> (string -> (int32 -> Async<int64>)))) = closure18() -let wait_for_port_access x = v18 x -let v19 : (int32 option -> (string -> (int32 -> Async<int32>))) = closure24() -let get_available_port x = v19 x -() - -00:00:15 d #290 Supervisor.buildFile / takeWhileInclusive / path: networking.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::string::String")>] -type std_string_String = class end -#else -type std_string_String = string -#endif - -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("&$0")>] -type Ref<'T> = class end -#else -type Ref<'T> = 'T -#endif - -#if FABLE_COMPILER - -type System_Net_Sockets_TcpClient = System.IDisposable -#else -type System_Net_Sockets_TcpClient = System.Net.Sockets.TcpClient -#endif - -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("mut $0")>] -#endif -type Mut<'T> = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("Vec<$0>")>] -#endif -type Vec<'T> = class end -module TraceState = let mutable trace_state = None -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::env...> = - method41(v0, v1, v2) -and closure25 (v0 : int32 option) (v1 : string) : (int32 -> Async<int32>) = - closure26(v0, v1) -and closure24 () (v0 : int32 option) : (string -> (int32 -> Async<int32>)) = - closure25(v0) -let v0 : unit = () -let v1 : (unit -> unit) = closure0() -let v2 : unit = (fun () -> v1 (); v0) () -let v16 : (string -> (int32 -> Async<bool>)) = closure3() -let test_port_open x = v16 x -let v17 : (int32 -> (string -> (int32 -> Async<bool>))) = closure11() -let test_port_open_timeout x = v17 x -let v18 : (int32 option -> (bool -> (string -> (int32 -> Async<int64>)))) = closure18() -let wait_for_port_access x = v18 x -let v19 : (int32 option -> (string -> (int32 -> Async<int32>))) = closure24() -let get_available_port x = v19 x -() - -00:00:15 d #291 FileSystem.watchWithFilter / Disposing watch stream / filter: FileName, LastWrite -00:00:15 d #292 Supervisor.buildFile / AsyncSeq.scan / path: file_system.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:15 d #293 Supervisor.buildFile / takeWhileInclusive / path: file_system.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:15 d #294 Supervisor.buildFile / AsyncSeq.scan / path: runtime.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:15 d #295 Supervisor.buildFile / takeWhileInclusive / path: runtime.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:16 d #296 Supervisor.buildFile / AsyncSeq.scan / path: file_system.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:16 d #297 Supervisor.buildFile / takeWhileInclusive / path: file_system.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:16 d #298 Supervisor.buildFile / AsyncSeq.scan / path: runtime.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:16 d #299 Supervisor.buildFile / takeWhileInclusive / path: runtime.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:16 d #300 Supervisor.buildFile / AsyncSeq.scan / path: runtime.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::string::String")>] -type std_string_String = class end -#else -type std_string_String = string -#endif - -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("&$0")>] -type Ref<'T> = class end -#else -type Ref<'T> = 'T -#endif - -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("mut $0")>] -#endif -type Mut<'T> = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("Vec<$0>")>] -#endif -type Vec<'T> = class end -module TraceState = let mutable trace_state = None -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::env::VarError")>] -#endif -type std_env_VarError = class end -type IOsEnviron = abstract environ: x: unit -> obj -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Co... (struct (string * System.Threading.CancellationToken option * (struct (string * string) []) * (struct (int32 * string * bool) -> Async<unit>) option * (std_sync_Arc<std_sync_Mutex<std_process_ChildStdin>> -> unit) option * bool * string option) -> Async<struct (int32 * string)>) = closure27() -let execute_with_options_async x = v18 x -let v19 : ((Heap0 -> Heap0) -> struct (string * System.Threading.CancellationToken option * (struct (string * string) []) * (struct (int32 * string * bool) -> Async<unit>) option * (std_sync_Arc<std_sync_Mutex<std_process_ChildStdin>> -> unit) option * bool * string option)) = closure28() -let execution_options x = v19 x -let v20 : (string -> Result<(string []), string>) = closure29() -let split_args x = v20 x -() - -00:00:16 d #301 Supervisor.buildFile / takeWhileInclusive / path: runtime.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::string::String")>] -type std_string_String = class end -#else -type std_string_String = string -#endif - -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("&$0")>] -type Ref<'T> = class end -#else -type Ref<'T> = 'T -#endif - -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("mut $0")>] -#endif -type Mut<'T> = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("Vec<$0>")>] -#endif -type Vec<'T> = class end -module TraceState = let mutable trace_state = None -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::env::VarError")>] -#endif -type std_env_VarError = class end -type IOsEnviron = abstract environ: x: unit -> obj -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Co... (struct (string * System.Threading.CancellationToken option * (struct (string * string) []) * (struct (int32 * string * bool) -> Async<unit>) option * (std_sync_Arc<std_sync_Mutex<std_process_ChildStdin>> -> unit) option * bool * string option) -> Async<struct (int32 * string)>) = closure27() -let execute_with_options_async x = v18 x -let v19 : ((Heap0 -> Heap0) -> struct (string * System.Threading.CancellationToken option * (struct (string * string) []) * (struct (int32 * string * bool) -> Async<unit>) option * (std_sync_Arc<std_sync_Mutex<std_process_ChildStdin>> -> unit) option * bool * string option)) = closure28() -let execution_options x = v19 x -let v20 : (string -> Result<(string []), string>) = closure29() -let split_args x = v20 x -() - -00:00:16 d #302 FileSystem.watchWithFilter / Disposing watch stream / filter: FileName, LastWrite -00:00:16 d #303 Supervisor.buildFile / AsyncSeq.scan / path: file_system.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:16 d #304 Supervisor.buildFile / takeWhileInclusive / path: file_system.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:17 d #305 Supervisor.buildFile / AsyncSeq.scan / path: file_system.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:17 d #306 Supervisor.buildFile / takeWhileInclusive / path: file_system.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:17 d #307 Supervisor.buildFile / AsyncSeq.scan / path: file_system.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:17 d #308 Supervisor.buildFile / takeWhileInclusive / path: file_system.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:18 d #309 Supervisor.buildFile / AsyncSeq.scan / path: file_system.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:18 d #310 Supervisor.buildFile / takeWhileInclusive / path: file_system.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:18 d #311 Supervisor.buildFile / AsyncSeq.scan / path: file_system.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:18 d #312 Supervisor.buildFile / takeWhileInclusive / path: file_system.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:19 d #313 Supervisor.buildFile / AsyncSeq.scan / path: file_system.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:19 d #314 Supervisor.buildFile / takeWhileInclusive / path: file_system.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:19 d #315 Supervisor.buildFile / AsyncSeq.scan / path: file_system.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:19 d #316 Supervisor.buildFile / takeWhileInclusive / path: file_system.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:20 d #317 Supervisor.buildFile / AsyncSeq.scan / path: file_system.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:20 d #318 Supervisor.buildFile / takeWhileInclusive / path: file_system.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:20 d #319 Supervisor.buildFile / AsyncSeq.scan / path: file_system.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:20 d #320 Supervisor.buildFile / takeWhileInclusive / path: file_system.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:21 d #321 Supervisor.buildFile / AsyncSeq.scan / path: file_system.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:21 d #322 Supervisor.buildFile / takeWhileInclusive / path: file_system.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:21 d #323 Supervisor.buildFile / AsyncSeq.scan / path: file_system.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:21 d #324 Supervisor.buildFile / takeWhileInclusive / path: file_system.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:22 d #325 Supervisor.buildFile / AsyncSeq.scan / path: file_system.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:22 d #326 Supervisor.buildFile / takeWhileInclusive / path: file_system.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:22 d #327 Supervisor.buildFile / AsyncSeq.scan / path: file_system.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:22 d #328 Supervisor.buildFile / takeWhileInclusive / path: file_system.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:23 d #329 Supervisor.buildFile / AsyncSeq.scan / path: file_system.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:23 d #330 Supervisor.buildFile / takeWhileInclusive / path: file_system.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:23 d #331 Supervisor.buildFile / AsyncSeq.scan / path: file_system.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:23 d #332 Supervisor.buildFile / takeWhileInclusive / path: file_system.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:23 d #333 Supervisor.buildFile / AsyncSeq.scan / path: file_system.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::string::String")>] -type std_string_String = class end -#else -type std_string_String = string -#endif - -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("&$0")>] -type Ref<'T> = class end -#else -type Ref<'T> = 'T -#endif - -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::path::PathBuf")>] -type std_path_PathBuf = class end -#else -type std_path_PathBuf = string -#endif - -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::ffi::OsString")>] -#endif -type std_ffi_OsString = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("mut $0")>] -#endif -type Mut<'T> = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("Vec<$0>")>] -#endif -type Vec<'T> = c...osable)) = closure38() -let create_temp_dir () = v27 () -let v28 : (string -> struct (string * System.IDisposable)) = closure47() -let create_temp_dir' x = v28 x -let v29 : (unit -> string) = closure49() -let get_source_directory () = v29 () -let v30 : (string -> string) = closure50() -let normalize_path x = v30 x -let v31 : (string -> string) = closure58() -let new_file_uri x = v31 x -let v32 : (unit -> string) = closure59() -let get_workspace_root () = v32 () -let v33 : (string -> unit) = closure61() -let trace_file x = v33 x -let v34 : (bool -> unit) = closure63() -let init_trace_file x = v34 x -let v35 : (string -> (string -> unit)) = closure64() -let link_directory x = v35 x -let v36 : (string -> (string -> string)) = closure66() -let (</>) x = v36 x -() - -00:00:23 d #334 Supervisor.buildFile / takeWhileInclusive / path: file_system.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::string::String")>] -type std_string_String = class end -#else -type std_string_String = string -#endif - -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("&$0")>] -type Ref<'T> = class end -#else -type Ref<'T> = 'T -#endif - -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::path::PathBuf")>] -type std_path_PathBuf = class end -#else -type std_path_PathBuf = string -#endif - -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("std::ffi::OsString")>] -#endif -type std_ffi_OsString = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("mut $0")>] -#endif -type Mut<'T> = class end -#if FABLE_COMPILER -[<Fable.Core.Erase; Fable.Core.Emit("Vec<$0>")>] -#endif -type Vec<'T> = c...osable)) = closure38() -let create_temp_dir () = v27 () -let v28 : (string -> struct (string * System.IDisposable)) = closure47() -let create_temp_dir' x = v28 x -let v29 : (unit -> string) = closure49() -let get_source_directory () = v29 () -let v30 : (string -> string) = closure50() -let normalize_path x = v30 x -let v31 : (string -> string) = closure58() -let new_file_uri x = v31 x -let v32 : (unit -> string) = closure59() -let get_workspace_root () = v32 () -let v33 : (string -> unit) = closure61() -let trace_file x = v33 x -let v34 : (bool -> unit) = closure63() -let init_trace_file x = v34 x -let v35 : (string -> (string -> unit)) = closure64() -let link_directory x = v35 x -let v36 : (string -> (string -> string)) = closure66() -let (</>) x = v36 x -() - -00:00:23 d #335 FileSystem.watchWithFilter / Disposing watch stream / filter: FileName, LastWrite -00:00:24 v #15 async.run_with_timeout_async / { timeout = 100 } +
00:00:00 v #1 async.run_with_timeout_async / { timeout = 180 } +00:00:00 d #1 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path DirTreeHtml.dib"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path DirTreeHtml.dib; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } +00:00:00 v #2 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "DirTreeHtml.dib"])) } +00:00:00 v #3 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/apps/dir-tree-html/DirTreeHtml.dib", "--output-path", "c:/home/git/polyglot/apps/dir-tree-html/DirTreeHtml.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/apps/dir-tree-html/DirTreeHtml.dib" --output-path "c:/home/git/polyglot/apps/dir-tree-html/DirTreeHtml.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } +00:00:02 v #4 > > +00:00:02 v #5 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:02 v #6 > > │ # DirTreeHtml (Polyglot) +00:00:07 v #7 > > +00:00:07 v #8 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:07 v #9 > > #r +00:00:07 v #10 > > @"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan +00:00:07 v #11 > > dard2.1/FSharp.Control.AsyncSeq.dll" +00:00:07 v #12 > > #r +00:00:07 v #13 > > @"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6. +00:00:07 v #14 > > 0/System.Reactive.dll" +00:00:07 v #15 > > #r +00:00:07 v #16 > > @"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib +00:00:07 v #17 > > netstandard2.0/System.Reactive.Linq.dll" +00:00:07 v #18 > > #r +00:00:07 v #19 > > @"../../../../../../../.nuget/packages/argu/6.2.4/lib/netstandard2.0/Argu.dll" +00:00:07 v #20 > > #r +00:00:07 v #21 > > @"../../../../../../../.nuget/packages/falco.markup/1.1.1/lib/netstandard2.0/Fal +00:00:07 v #22 > > co.Markup.dll" +00:00:23 v #23 > > +00:00:23 v #24 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:23 v #25 > > #if !INTERACTIVE +00:00:23 v #26 > > open Lib +00:00:23 v #27 > > #endif +00:00:23 v #28 > > +00:00:23 v #29 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:23 v #30 > > open SpiralFileSystem.Operators +00:00:23 v #31 > > open Falco.Markup +00:00:23 v #32 > > +00:00:23 v #33 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:23 v #34 > > type FileSystemNode = +00:00:23 v #35 > > | File of string * string * int64 +00:00:23 v #36 > > | Folder of string * string * FileSystemNode list +00:00:23 v #37 > > | Root of FileSystemNode list +00:00:23 v #38 > > +00:00:23 v #39 > > let rec scanDirectory isRoot (basePath : string) (path : string) = +00:00:23 v #40 > > let relativePath = +00:00:23 v #41 > > path +00:00:23 v #42 > > |> SpiralSm.replace basePath "" +00:00:23 v #43 > > |> SpiralSm.replace "\\" "/" +00:00:23 v #44 > > |> SpiralSm.replace "//" "/" +00:00:23 v #45 > > |> SpiralSm.trim_start [[| '/' |]] +00:00:23 v #46 > > +00:00:23 v #47 > > let directories = +00:00:23 v #48 > > path +00:00:23 v #49 > > |> System.IO.Directory.GetDirectories +00:00:23 v #50 > > |> Array.toList +00:00:23 v #51 > > |> List.sort +00:00:23 v #52 > > |> List.map (scanDirectory false basePath) +00:00:23 v #53 > > let files = +00:00:23 v #54 > > path +00:00:23 v #55 > > |> System.IO.Directory.GetFiles +00:00:23 v #56 > > |> Array.toList +00:00:23 v #57 > > |> List.sort +00:00:23 v #58 > > |> List.map (fun f -> File (System.IO.Path.GetFileName f, relativePath, +00:00:23 v #59 > > System.IO.FileInfo(f).Length)) +00:00:23 v #60 > > +00:00:23 v #61 > > let children = directories @ files +00:00:23 v #62 > > if isRoot +00:00:23 v #63 > > then Root children +00:00:23 v #64 > > else Folder (path |> System.IO.Path.GetFileName, relativePath, children) +00:00:23 v #65 > > +00:00:23 v #66 > > let rec generateHtml fsNode = +00:00:23 v #67 > > let sizeLabel size = +00:00:23 v #68 > > match float size with +00:00:23 v #69 > > | size when size > 1024.0 * 1024.0 -> $"%.2f{size / 1024.0 / 1024.0} MB" +00:00:23 v #70 > > | size when size > 1024.0 -> $"%.2f{size / 1024.0} KB" +00:00:23 v #71 > > | size -> $"%.2f{size} B" +00:00:23 v #72 > > match fsNode with +00:00:23 v #73 > > | File (fileName, relativePath, size) -> +00:00:23 v #74 > > Elem.div [[]] [[ +00:00:23 v #75 > > Text.raw "📄 " +00:00:23 v #76 > > Elem.a [[ +00:00:23 v #77 > > Attr.href $"""{relativePath}{if relativePath = "" then "" else +00:00:23 v #78 > > "/"}{fileName}""" +00:00:23 v #79 > > ]] [[ +00:00:23 v #80 > > Text.raw fileName +00:00:23 v #81 > > ]] +00:00:23 v #82 > > Elem.span [[]] [[ +00:00:23 v #83 > > Text.raw $" ({size |> sizeLabel})" +00:00:23 v #84 > > ]] +00:00:23 v #85 > > ]] +00:00:23 v #86 > > | Folder (folderName, relativePath, children) -> +00:00:23 v #87 > > let size = +00:00:23 v #88 > > let rec loop children = +00:00:23 v #89 > > children +00:00:23 v #90 > > |> List.sumBy (function +00:00:23 v #91 > > | File (_, _, size) -> size +00:00:23 v #92 > > | Folder (_, _, children) +00:00:23 v #93 > > | Root children -> loop children +00:00:23 v #94 > > ) +00:00:23 v #95 > > loop children +00:00:23 v #96 > > Elem.details [[ +00:00:23 v #97 > > Attr.open' "true" +00:00:23 v #98 > > ]] [[ +00:00:23 v #99 > > Elem.summary [[]] [[ +00:00:23 v #100 > > Text.raw "📂 " +00:00:23 v #101 > > Elem.a [[ +00:00:23 v #102 > > Attr.href relativePath +00:00:23 v #103 > > ]] [[ +00:00:23 v #104 > > Text.raw folderName +00:00:23 v #105 > > ]] +00:00:23 v #106 > > Elem.span [[]] [[ +00:00:23 v #107 > > Text.raw $" ({size |> sizeLabel})" +00:00:23 v #108 > > ]] +00:00:23 v #109 > > ]] +00:00:23 v #110 > > Elem.div [[]] [[ +00:00:23 v #111 > > yield! children |> List.map generateHtml +00:00:23 v #112 > > ]] +00:00:23 v #113 > > ]] +00:00:23 v #114 > > | Root children -> +00:00:23 v #115 > > Elem.div [[]] [[ +00:00:23 v #116 > > yield! children |> List.map generateHtml +00:00:23 v #117 > > ]] +00:00:23 v #118 > > +00:00:23 v #119 > > let generateHtmlForFileSystem root = +00:00:23 v #120 > > $"""<!DOCTYPE html> +00:00:23 v #121 > > <html lang="en"> +00:00:23 v #122 > > <head> +00:00:23 v #123 > > <meta charset="UTF-8"> +00:00:23 v #124 > > <style> +00:00:23 v #125 > > body {{ +00:00:23 v #126 > > background-color: #222; +00:00:23 v #127 > > color: #ccc; +00:00:23 v #128 > > }} +00:00:23 v #129 > > a {{ +00:00:23 v #130 > > color: #777; +00:00:23 v #131 > > font-size: 15px; +00:00:23 v #132 > > }} +00:00:23 v #133 > > span {{ +00:00:23 v #134 > > font-size: 11px; +00:00:23 v #135 > > }} +00:00:23 v #136 > > div > div {{ +00:00:23 v #137 > > padding-left: 10px; +00:00:23 v #138 > > }} +00:00:23 v #139 > > details > div {{ +00:00:23 v #140 > > padding-left: 19px; +00:00:23 v #141 > > }} +00:00:23 v #142 > > </style> +00:00:23 v #143 > > </head> +00:00:23 v #144 > > <body> +00:00:23 v #145 > > {root |> generateHtml |> renderNode} +00:00:23 v #146 > > </body> +00:00:23 v #147 > > </html> +00:00:23 v #148 > > """ +00:00:23 v #149 > > +00:00:23 v #150 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:23 v #151 > > //// test +00:00:23 v #152 > > +00:00:23 v #153 > > let expected = """<!DOCTYPE html> +00:00:23 v #154 > > <html lang="en"> +00:00:23 v #155 > > <head> +00:00:23 v #156 > > <meta charset="UTF-8"> +00:00:23 v #157 > > <style> +00:00:23 v #158 > > body { +00:00:23 v #159 > > background-color: #222; +00:00:23 v #160 > > color: #ccc; +00:00:23 v #161 > > } +00:00:23 v #162 > > a { +00:00:23 v #163 > > color: #777; +00:00:23 v #164 > > font-size: 15px; +00:00:23 v #165 > > } +00:00:23 v #166 > > span { +00:00:23 v #167 > > font-size: 11px; +00:00:23 v #168 > > } +00:00:23 v #169 > > div > div { +00:00:23 v #170 > > padding-left: 10px; +00:00:23 v #171 > > } +00:00:23 v #172 > > details > div { +00:00:23 v #173 > > padding-left: 19px; +00:00:23 v #174 > > } +00:00:23 v #175 > > </style> +00:00:23 v #176 > > </head> +00:00:23 v #177 > > <body> +00:00:23 v #178 > > <div><details open="true"><summary>📂 <a href="_.root">_.root</a><span> +00:00:23 v #179 > > (10.00 B)</span></summary><div><details open="true"><summary>📂 <a +00:00:23 v #180 > > href="_.root/3">3</a><span> (6.00 B)</span></summary><div><details +00:00:23 v #181 > > open="true"><summary>📂 <a href="_.root/3/2">2</a><span> (3.00 +00:00:23 v #182 > > B)</span></summary><div><details open="true"><summary>📂 <a +00:00:23 v #183 > > href="_.root/3/2/1">1</a><span> (1.00 B)</span></summary><div><div>📄 <a +00:00:23 v #184 > > href="_.root/3/2/1/file.txt">file.txt</a><span> (1.00 +00:00:23 v #185 > > B)</span></div></div></details><div>📄 <a +00:00:23 v #186 > > href="_.root/3/2/file.txt">file.txt</a><span> (2.00 +00:00:23 v #187 > > B)</span></div></div></details><div>📄 <a +00:00:23 v #188 > > href="_.root/3/file.txt">file.txt</a><span> (3.00 +00:00:23 v #189 > > B)</span></div></div></details><div>📄 <a +00:00:23 v #190 > > href="_.root/file.txt">file.txt</a><span> (4.00 +00:00:23 v #191 > > B)</span></div></div></details></div> +00:00:23 v #192 > > </body> +00:00:23 v #193 > > </html> +00:00:23 v #194 > > """ +00:00:23 v #195 > > +00:00:23 v #196 > > let struct (tempFolder, disposable) = expected |> SpiralCrypto.hash_text |> +00:00:23 v #197 > > SpiralFileSystem.create_temp_dir' +00:00:23 v #198 > > let rec loop d n = async { +00:00:23 v #199 > > if n >= 0 then +00:00:23 v #200 > > tempFolder </> d |> System.IO.Directory.CreateDirectory |> ignore +00:00:23 v #201 > > do! +00:00:23 v #202 > > n +00:00:23 v #203 > > |> string +00:00:23 v #204 > > |> String.replicate (n + 1) +00:00:23 v #205 > > |> SpiralFileSystem.write_all_text_async (tempFolder </> d </> +00:00:23 v #206 > > $"file.txt") +00:00:23 v #207 > > do! loop $"{d}/{n}" (n - 1) +00:00:23 v #208 > > } +00:00:23 v #209 > > loop "_.root" 3 +00:00:23 v #210 > > |> Async.RunSynchronously +00:00:23 v #211 > > +00:00:23 v #212 > > let html = +00:00:23 v #213 > > scanDirectory true tempFolder tempFolder +00:00:23 v #214 > > |> generateHtmlForFileSystem +00:00:23 v #215 > > +00:00:23 v #216 > > html +00:00:23 v #217 > > |> _assertEqual expected +00:00:23 v #218 > > +00:00:23 v #219 > > disposable.Dispose () +00:00:23 v #220 > > +00:00:23 v #221 > > html |> Microsoft.DotNet.Interactive.Formatting.Html.ToHtmlContent +00:00:23 v #222 > > +00:00:23 v #223 > > ── [ 201.95ms - return value ] ───────────────────────────────────────────────── +00:00:23 v #224 > > │ <!DOCTYPE html> +00:00:23 v #225 > > │ <html lang="en"> +00:00:23 v #226 > > │ <head> +00:00:23 v #227 > > │ <meta charset="UTF-8"> +00:00:23 v #228 > > │ <style> +00:00:23 v #229 > > │ body { +00:00:23 v #230 > > │ background-color: #222; +00:00:23 v #231 > > │ color: #ccc; +00:00:23 v #232 > > │ } +00:00:23 v #233 > > │ a { +00:00:23 v #234 > > │ color: #777; +00:00:23 v #235 > > │ font-size: 15px; +00:00:23 v #236 > > │ } +00:00:23 v #237 > > │ span { +00:00:23 v #238 > > │ font-size: 11px; +00:00:23 v #239 > > │ } +00:00:23 v #240 > > │ div > div { +00:00:23 v #241 > > │ padding-left: 10px; +00:00:23 v #242 > > │ } +00:00:23 v #243 > > │ details > div { +00:00:23 v #244 > > │ padding-left: 19px; +00:00:23 v #245 > > │ } +00:00:23 v #246 > > │ </style> +00:00:23 v #247 > > │ </head> +00:00:23 v #248 > > │ <body> +00:00:23 v #249 > > │ <div><details open="true"><summary>📂 <a +00:00:23 v #250 > > href="_.root">_.root</a><span> (10.00 B)</span></summary><div><details +00:00:23 v #251 > > open="true"><summary>📂 <a href="_.root/3">3</a><span> (6.00 +00:00:23 v #252 > > B)</span></summary><div><details open="true"><summary>📂 <a +00:00:23 v #253 > > href="_.root/3/2">2</a><span> (3.00 B)</span></summary><div><details +00:00:23 v #254 > > open="true"><summary>📂 <a href="_.root/3/2/1">1</a><span> (1.00 +00:00:23 v #255 > > B)</span></summary><div><div>📄 <a +00:00:23 v #256 > > href="_.root/3/2/1/file.txt">file.txt</a><span> (1.00 +00:00:23 v #257 > > B)</span></div></div></details><div>📄 <a +00:00:23 v #258 > > href="_.root/3/2/file.txt">file.txt</a><span> (2.00 +00:00:23 v #259 > > B)</span></div></div></details><div>📄 <a +00:00:23 v #260 > > href="_.root/3/file.txt">file.txt</a><span> (3.00 +00:00:23 v #261 > > B)</span></div></div></details><div>📄 <a +00:00:23 v #262 > > href="_.root/file.txt">file.txt</a><span> (4.00 +00:00:23 v #263 > > B)</span></div></div></details></div> +00:00:23 v #264 > > │ </body> +00:00:23 v #265 > > │ </html> +00:00:23 v #266 > > │ +00:00:23 v #267 > > +00:00:23 v #268 > > ── [ 206.75ms - stdout ] ─────────────────────────────────────────────────────── +00:00:23 v #269 > > │ "<!DOCTYPE html> +00:00:23 v #270 > > │ <html lang="en"> +00:00:23 v #271 > > │ <head> +00:00:23 v #272 > > │ <meta charset="UTF-8"> +00:00:23 v #273 > > │ <style> +00:00:23 v #274 > > │ body { +00:00:23 v #275 > > │ background-color: #222; +00:00:23 v #276 > > │ color: #ccc; +00:00:23 v #277 > > │ } +00:00:23 v #278 > > │ a { +00:00:23 v #279 > > │ color: #777; +00:00:23 v #280 > > │ font-size: 15px; +00:00:23 v #281 > > │ } +00:00:23 v #282 > > │ span { +00:00:23 v #283 > > │ font-size: 11px; +00:00:23 v #284 > > │ } +00:00:23 v #285 > > │ div > div { +00:00:23 v #286 > > │ padding-left: 10px; +00:00:23 v #287 > > │ } +00:00:23 v #288 > > │ details > div { +00:00:23 v #289 > > │ padding-left: 19px; +00:00:23 v #290 > > │ } +00:00:23 v #291 > > │ </style> +00:00:23 v #292 > > │ </head> +00:00:23 v #293 > > │ <body> +00:00:23 v #294 > > │ <div><details open="true"><summary>📂 <a +00:00:23 v #295 > > href="_.root">_.root</a><span> (10.00 B)</span></summary><div><details +00:00:23 v #296 > > open="true"><summary>📂 <a href="_.root/3">3</a><span> (6.00 +00:00:23 v #297 > > B)</span></summary><div><details open="true"><summary>📂 <a +00:00:23 v #298 > > href="_.root/3/2">2</a><span> (3.00 B)</span></summary><div><details +00:00:23 v #299 > > open="true"><summary>📂 <a href="_.root/3/2/1">1</a><span> (1.00 +00:00:23 v #300 > > B)</span></summary><div><div>📄 <a +00:00:23 v #301 > > href="_.root/3/2/1/file.txt">file.txt</a><span> (1.00 +00:00:23 v #302 > > B)</span></div></div></details><div>📄 <a +00:00:23 v #303 > > href="_.root/3/2/file.txt">file.txt</a><span> (2.00 +00:00:23 v #304 > > B)</span></div></div></details><div>📄 <a +00:00:23 v #305 > > href="_.root/3/file.txt">file.txt</a><span> (3.00 +00:00:23 v #306 > > B)</span></div></div></details><div>📄 <a +00:00:23 v #307 > > href="_.root/file.txt">file.txt</a><span> (4.00 +00:00:23 v #308 > > B)</span></div></div></details></div> +00:00:23 v #309 > > │ </body> +00:00:23 v #310 > > │ </html> +00:00:23 v #311 > > │ " +00:00:23 v #312 > > │ +00:00:23 v #313 > > │ +00:00:23 v #314 > > +00:00:23 v #315 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:23 v #316 > > │ ## Arguments +00:00:23 v #317 > > +00:00:23 v #318 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:23 v #319 > > [[<RequireQualifiedAccess>]] +00:00:23 v #320 > > type Arguments = +00:00:23 v #321 > > | [[<Argu.ArguAttributes.ExactlyOnce>]] Dir of string +00:00:23 v #322 > > | [[<Argu.ArguAttributes.ExactlyOnce>]] Html of string +00:00:23 v #323 > > +00:00:23 v #324 > > interface Argu.IArgParserTemplate with +00:00:23 v #325 > > member s.Usage = +00:00:23 v #326 > > match s with +00:00:23 v #327 > > | Dir _ -> nameof Dir +00:00:23 v #328 > > | Html _ -> nameof Html +00:00:23 v #329 > > +00:00:23 v #330 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:23 v #331 > > //// test +00:00:23 v #332 > > +00:00:23 v #333 > > Argu.ArgumentParser.Create<Arguments>().PrintUsage () +00:00:23 v #334 > > +00:00:23 v #335 > > ── [ 104.73ms - return value ] ───────────────────────────────────────────────── +00:00:23 v #336 > > │ "USAGE: dotnet-repl [--help] --dir <string> --html <string> +00:00:23 v #337 > > │ +00:00:23 v #338 > > │ OPTIONS: +00:00:23 v #339 > > │ +00:00:23 v #340 > > │ --dir <string> Dir +00:00:23 v #341 > > │ --html <string> Html +00:00:23 v #342 > > │ --help display this list of options. +00:00:23 v #343 > > │ " +00:00:23 v #344 > > │ +00:00:23 v #345 > > +00:00:23 v #346 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:23 v #347 > > │ ## main +00:00:23 v #348 > > +00:00:23 v #349 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:23 v #350 > > let main args = +00:00:23 v #351 > > let argsMap = args |> Runtime.parseArgsMap<Arguments> +00:00:23 v #352 > > +00:00:23 v #353 > > let dir = +00:00:23 v #354 > > match argsMap.[[nameof Arguments.Dir]] with +00:00:23 v #355 > > | [[ Arguments.Dir dir ]] -> Some dir +00:00:23 v #356 > > | _ -> None +00:00:23 v #357 > > |> Option.get +00:00:23 v #358 > > +00:00:23 v #359 > > let htmlPath = +00:00:23 v #360 > > match argsMap.[[nameof Arguments.Html]] with +00:00:23 v #361 > > | [[ Arguments.Html html ]] -> Some html +00:00:23 v #362 > > | _ -> None +00:00:23 v #363 > > |> Option.get +00:00:23 v #364 > > +00:00:23 v #365 > > let fileSystem = scanDirectory true dir dir +00:00:23 v #366 > > let html = generateHtmlForFileSystem fileSystem +00:00:23 v #367 > > +00:00:23 v #368 > > html |> SpiralFileSystem.write_all_text_async htmlPath +00:00:23 v #369 > > |> Async.runWithTimeout 30000 +00:00:23 v #370 > > |> function +00:00:23 v #371 > > | Some () -> 0 +00:00:23 v #372 > > | None -> 1 +00:00:23 v #373 > > +00:00:23 v #374 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:23 v #375 > > //// test +00:00:23 v #376 > > +00:00:23 v #377 > > let args = +00:00:23 v #378 > > System.Environment.GetEnvironmentVariable "ARGS" +00:00:23 v #379 > > |> SpiralRuntime.split_args +00:00:23 v #380 > > |> Result.toArray +00:00:23 v #381 > > |> Array.collect id +00:00:23 v #382 > > +00:00:23 v #383 > > match args with +00:00:23 v #384 > > | [[||]] -> 0 +00:00:23 v #385 > > | args -> if main args = 0 then 0 else failwith "main failed" +00:00:23 v #386 > > +00:00:23 v #387 > > ── [ 94.08ms - return value ] ────────────────────────────────────────────────── +00:00:23 v #388 > > │ <div class="dni-plaintext"><pre>0 +00:00:23 v #389 > > │ </pre></div><style> +00:00:23 v #390 > > │ .dni-code-hint { +00:00:23 v #391 > > │ font-style: italic; +00:00:23 v #392 > > │ overflow: hidden; +00:00:23 v #393 > > │ white-space: nowrap; +00:00:23 v #394 > > │ } +00:00:23 v #395 > > │ .dni-treeview { +00:00:23 v #396 > > │ white-space: nowrap; +00:00:23 v #397 > > │ } +00:00:23 v #398 > > │ .dni-treeview td { +00:00:23 v #399 > > │ vertical-align: top; +00:00:23 v #400 > > │ text-align: start; +00:00:23 v #401 > > │ } +00:00:23 v #402 > > │ details.dni-treeview { +00:00:23 v #403 > > │ padding-left: 1em; +00:00:23 v #404 > > │ } +00:00:23 v #405 > > │ table td { +00:00:23 v #406 > > │ text-align: start; +00:00:23 v #407 > > │ } +00:00:23 v #408 > > │ table tr { +00:00:23 v #409 > > │ vertical-align: top; +00:00:23 v #410 > > │ margin: 0em 0px; +00:00:23 v #411 > > │ } +00:00:23 v #412 > > │ table tr td pre +00:00:23 v #413 > > │ { +00:00:23 v #414 > > │ vertical-align: top !important; +00:00:23 v #415 > > │ margin: 0em 0px !important; +00:00:23 v #416 > > │ } +00:00:23 v #417 > > │ table th { +00:00:23 v #418 > > │ text-align: start; +00:00:23 v #419 > > │ } +00:00:23 v #420 > > │ </style> +00:00:23 v #421 > 00:00:23 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 13688 } +00:00:23 v #422 > 00:00:23 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/apps/dir-tree-html/DirTreeHtml.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/apps/dir-tree-html/DirTreeHtml.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } +00:00:25 v #423 > 00:00:24 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/apps/dir-tree-html/DirTreeHtml.dib.ipynb to html +00:00:25 v #424 > 00:00:24 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. +00:00:25 v #425 > 00:00:24 v #7 ! validate(nb) +00:00:26 v #426 > 00:00:25 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 +00:00:26 v #427 > 00:00:25 v #9 ! return _pygments_highlight( +00:00:26 v #428 > 00:00:25 v #10 ! [NbConvertApp] Writing 310059 bytes to c:\home\git\polyglot\apps\dir-tree-html\DirTreeHtml.dib.html +00:00:26 v #429 > 00:00:25 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 880 } +00:00:26 v #430 > 00:00:25 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 880 } +00:00:26 v #431 > 00:00:25 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/apps/dir-tree-html/DirTreeHtml.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/apps/dir-tree-html/DirTreeHtml.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } +00:00:26 v #432 > 00:00:25 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } +00:00:26 v #433 > 00:00:25 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } +00:00:26 v #434 > 00:00:25 d #16 spiral.run / dib / { exit_code = 0; result_length = 14627 } +00:00:26 d #435 runtime.execute_with_options_async / { exit_code = 0; output_length = 18087 } +00:00:26 d #1 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path DirTreeHtml.dib +00:00:00 d #1 writeDibCode / output: Fs / path: DirTreeHtml.dib +00:00:00 d #2 parseDibCode / output: Fs / file: DirTreeHtml.dib +00:00:00 d #1 persistCodeProject / packages: [Argu; Falco.Markup; FSharp.Control.AsyncSeq; ... ] / modules: [deps/spiral/lib/spiral/common.fsx; deps/spiral/lib/spiral/sm.fsx; deps/spiral/lib/spiral/crypto.fsx; ... ] / name: DirTreeHtml / hash: / code.Length: 4638 +00:00:00 d #2 buildProject / fullPath: c:\home\git\polyglot\target\Builder\DirTreeHtml\DirTreeHtml.fsproj +00:00:00 d #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0 + "publish "c:/home/git\polyglot\target/Builder\DirTreeHtml\DirTreeHtml.fsproj" --configuration Release --output "C:\home\git\polyglot\apps\dir-tree-html\dist" --runtime linux-x64"; options = { command = dotnet publish "c:/home/git\polyglot\target/Builder\DirTreeHtml\DirTreeHtml.fsproj" --configuration Release --output "C:\home\git\polyglot\apps\dir-tree-html\dist" --runtime linux-x64; cancellation_token = None; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = Some "c:\home\git\polyglot\target\Builder\DirTreeHtml" } } +00:00:01 v #2 > Determining projects to restore... +00:00:01 v #3 > Paket version 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0 +00:00:01 v #4 > The last full restore is still up to date. Nothing left to do. +00:00:01 v #5 > Total time taken: 0 milliseconds +00:00:02 v #6 > Restored c:\home\git\polyglot\target\Builder\DirTreeHtml\DirTreeHtml.fsproj (in 390 ms). +00:00:13 v #7 > DirTreeHtml -> c:\home\git\polyglot\target\Builder\DirTreeHtml\bin\Release\net9.0\linux-x64\DirTreeHtml.dll +00:00:15 v #8 > DirTreeHtml -> C:\home\git\polyglot\apps\dir-tree-html\dist\ +00:00:15 v #9 > +00:00:15 v #10 > Workload updates are available. Run `dotnet workload list` for more information. +00:00:15 d #11 runtime.execute_with_options_async / { exit_code = 0; output_length = 545 } +00:00:15 d #12 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0 + "publish "c:/home/git\polyglot\target/Builder\DirTreeHtml\DirTreeHtml.fsproj" --configuration Release --output "C:\home\git\polyglot\apps\dir-tree-html\dist" --runtime win-x64"; options = { command = dotnet publish "c:/home/git\polyglot\target/Builder\DirTreeHtml\DirTreeHtml.fsproj" --configuration Release --output "C:\home\git\polyglot\apps\dir-tree-html\dist" --runtime win-x64; cancellation_token = None; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = Some "c:\home\git\polyglot\target\Builder\DirTreeHtml" } } +00:00:16 v #13 > Determining projects to restore... +00:00:16 v #14 > Paket version 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0 +00:00:16 v #15 > The last full restore is still up to date. Nothing left to do. +00:00:16 v #16 > Total time taken: 0 milliseconds +00:00:17 v #17 > Restored c:\home\git\polyglot\target\Builder\DirTreeHtml\DirTreeHtml.fsproj (in 415 ms). +00:00:29 v #18 > DirTreeHtml -> c:\home\git\polyglot\target\Builder\DirTreeHtml\bin\Release\net9.0\win-x64\DirTreeHtml.dll +00:00:30 v #19 > DirTreeHtml -> C:\home\git\polyglot\apps\dir-tree-html\dist\ +00:00:30 v #20 > +00:00:30 v #21 > Workload updates are available. Run `dotnet workload list` for more information. +00:00:30 d #22 runtime.execute_with_options_async / { exit_code = 0; output_length = 543 }
00:00:00 v #1 async.run_with_timeout_async / { timeout = 180 } -00:00:00 d #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0 - ""C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 --default-int i32 --default-float f64"; options = { command = dotnet "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 --default-int i32 --default-float f64; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = Some <fun:compiler@87-4>; stdin = None; trace = true; working_directory = Some "C:\home\git\polyglot" } } -00:00:00 v #2 > 00:00:00 d #1 pwd: C:\home\git\polyglot -00:00:00 v #3 > 00:00:00 d #2 dllPath: C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release -00:00:00 v #4 > 00:00:00 d #3 targetDir: C:\home\git\polyglot\target/spiral_Eval -00:00:01 v #2 async.run_with_timeout_async / { timeout = 100 } -00:00:01 v #3 async.run_with_timeout_async / { timeout = 100 } -00:00:01 v #5 > Starting the Spiral Server. It is bound to: http://localhost:13805 -00:00:01 v #4 async.run_with_timeout_async / { timeout = 100 } -00:00:01 v #1 Supervisor.sendJson / port: 13805 / json: {"Ping":true} / result: -00:00:01 v #2 Supervisor.awaitCompiler / Ping / result: 'Some null' / port: 13805 / retry: 1 -00:00:01 v #6 > Server bound to: http://localhost:13805 -00:00:01 d #7 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path Tasks.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path Tasks.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } -00:00:01 v #8 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "Tasks.dib", "--retries", "3"])) } -00:00:01 v #9 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/apps/scheduler/Tasks.dib", "--output-path", "c:/home/git/polyglot/apps/scheduler/Tasks.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/apps/scheduler/Tasks.dib" --output-path "c:/home/git/polyglot/apps/scheduler/Tasks.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } -00:00:03 v #10 > > -00:00:03 v #11 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:03 v #12 > > │ ## Tasks (Polyglot) -00:00:06 v #13 > > -00:00:06 v #14 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:06 v #15 > > //// test -00:00:06 v #16 > > -00:00:06 v #17 > > open testing -00:00:11 v #18 > > -00:00:11 v #19 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:11 v #20 > > │ ## task_name -00:00:11 v #21 > > -00:00:11 v #22 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:11 v #23 > > nominal task_name = string -00:00:11 v #24 > > -00:00:11 v #25 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:11 v #26 > > │ ## manual_scheduling -00:00:11 v #27 > > -00:00:11 v #28 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:11 v #29 > > union manual_scheduling = -00:00:11 v #30 > > | WithSuggestion -00:00:11 v #31 > > | WithoutSuggestion -00:00:12 v #32 > > -00:00:12 v #33 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:12 v #34 > > │ ## recurrency_offset -00:00:12 v #35 > > -00:00:12 v #36 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:12 v #37 > > union recurrency_offset = -00:00:12 v #38 > > | Days : i32 -00:00:12 v #39 > > | Weeks : i32 -00:00:12 v #40 > > | Months : i32 -00:00:12 v #41 > > -00:00:12 v #42 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:12 v #43 > > │ ## day_of_week -00:00:12 v #44 > > -00:00:12 v #45 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:12 v #46 > > union day_of_week = -00:00:12 v #47 > > | Sunday -00:00:12 v #48 > > | Monday -00:00:12 v #49 > > | Tuesday -00:00:12 v #50 > > | Wednesday -00:00:12 v #51 > > | Thursday -00:00:12 v #52 > > | Friday -00:00:12 v #53 > > | Saturday -00:00:13 v #54 > > -00:00:13 v #55 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:13 v #56 > > │ ## month -00:00:13 v #57 > > -00:00:13 v #58 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:13 v #59 > > union month = -00:00:13 v #60 > > | January -00:00:13 v #61 > > | February -00:00:13 v #62 > > | March -00:00:13 v #63 > > | April -00:00:13 v #64 > > | May -00:00:13 v #65 > > | June -00:00:13 v #66 > > | July -00:00:13 v #67 > > | August -00:00:13 v #68 > > | September -00:00:13 v #69 > > | October -00:00:13 v #70 > > | November -00:00:13 v #71 > > | December -00:00:13 v #72 > > -00:00:13 v #73 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:13 v #74 > > │ ## day -00:00:13 v #75 > > -00:00:13 v #76 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:13 v #77 > > nominal day = i32 -00:00:14 v #78 > > -00:00:14 v #79 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:14 v #80 > > │ ## year -00:00:14 v #81 > > -00:00:14 v #82 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:14 v #83 > > nominal year = i32 -00:00:14 v #84 > > -00:00:14 v #85 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:14 v #86 > > │ ## fixed_recurrency -00:00:14 v #87 > > -00:00:14 v #88 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:14 v #89 > > union fixed_recurrency = -00:00:14 v #90 > > | Weekly : day_of_week -00:00:14 v #91 > > | Monthly : day -00:00:14 v #92 > > | Yearly : day * month -00:00:15 v #93 > > -00:00:15 v #94 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:15 v #95 > > │ ## recurrency -00:00:15 v #96 > > -00:00:15 v #97 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:15 v #98 > > union recurrency = -00:00:15 v #99 > > | Offset : recurrency_offset -00:00:15 v #100 > > | Fixed : list fixed_recurrency -00:00:15 v #101 > > -00:00:15 v #102 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:15 v #103 > > │ ## scheduling -00:00:15 v #104 > > -00:00:15 v #105 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:15 v #106 > > union scheduling = -00:00:15 v #107 > > | Manual : manual_scheduling -00:00:15 v #108 > > | Recurrent : recurrency -00:00:15 v #109 > > -00:00:15 v #110 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:15 v #111 > > │ ## task -00:00:15 v #112 > > -00:00:15 v #113 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:15 v #114 > > type task = -00:00:15 v #115 > > { -00:00:15 v #116 > > name : task_name -00:00:15 v #117 > > scheduling : scheduling -00:00:15 v #118 > > } -00:00:16 v #119 > > -00:00:16 v #120 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:16 v #121 > > │ ## date -00:00:16 v #122 > > -00:00:16 v #123 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:16 v #124 > > type date = -00:00:16 v #125 > > { -00:00:16 v #126 > > year : year -00:00:16 v #127 > > month : month -00:00:16 v #128 > > day : day -00:00:16 v #129 > > } -00:00:16 v #130 > > -00:00:16 v #131 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:16 v #132 > > │ ## status -00:00:16 v #133 > > -00:00:16 v #134 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:16 v #135 > > union status = -00:00:16 v #136 > > | Postponed : option () -00:00:17 v #137 > > -00:00:17 v #138 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:17 v #139 > > │ ## event -00:00:17 v #140 > > -00:00:17 v #141 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:17 v #142 > > type event = -00:00:17 v #143 > > { -00:00:17 v #144 > > date : date -00:00:17 v #145 > > status : status -00:00:17 v #146 > > } -00:00:17 v #147 > > -00:00:17 v #148 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:17 v #149 > > │ ## task_template -00:00:17 v #150 > > -00:00:17 v #151 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:17 v #152 > > type task_template = -00:00:17 v #153 > > { -00:00:17 v #154 > > task : task -00:00:17 v #155 > > events : list event -00:00:17 v #156 > > } -00:00:18 v #157 > > -00:00:18 v #158 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:18 v #159 > > │ ## get_tasks (test) -00:00:18 v #160 > > -00:00:18 v #161 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:18 v #162 > > //// test -00:00:18 v #163 > > -00:00:18 v #164 > > inl get_tasks () : list task_template = -00:00:18 v #165 > > [[ -00:00:18 v #166 > > { -00:00:18 v #167 > > task = -00:00:18 v #168 > > { -00:00:18 v #169 > > name = task_name "01" -00:00:18 v #170 > > scheduling = Manual WithSuggestion -00:00:18 v #171 > > } -00:00:18 v #172 > > events = [[]] -00:00:18 v #173 > > } -00:00:18 v #174 > > { -00:00:18 v #175 > > task = -00:00:18 v #176 > > { -00:00:18 v #177 > > name = task_name "02" -00:00:18 v #178 > > scheduling = Manual WithSuggestion -00:00:18 v #179 > > } -00:00:18 v #180 > > events = [[]] -00:00:18 v #181 > > } -00:00:18 v #182 > > { -00:00:18 v #183 > > task = -00:00:18 v #184 > > { -00:00:18 v #185 > > name = task_name "03" -00:00:18 v #186 > > scheduling = Manual WithSuggestion -00:00:18 v #187 > > } -00:00:18 v #188 > > events = [[]] -00:00:18 v #189 > > } -00:00:18 v #190 > > ]] -00:00:18 v #191 > > -00:00:18 v #192 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:18 v #193 > > //// test -00:00:18 v #194 > > ///! fsharp -00:00:18 v #195 > > ///! cuda -00:00:18 v #196 > > ///! rust -00:00:18 v #197 > > ///! typescript -00:00:18 v #198 > > ///! python -00:00:18 v #199 > > -00:00:18 v #200 > > get_tasks () -00:00:18 v #201 > > |> sm'.format_debug -00:00:18 v #202 > > |> _assert sm'.contains "01" -00:00:23 v #203 > > -00:00:23 v #204 > > ── [ 5.19s - return value ] ──────────────────────────────────────────────────── -00:00:23 v #205 > > │ .py output (Cuda): -00:00:23 v #206 > > │ __assert / actual: 01 / expected: UH2_1(v0='01', -00:00:23 v #207 > > v1=US1_0(v0=US0_0()), v2=UH1_0(), v3=UH2_1(v0='02', v1=US1_0(v0=US0_0()), -00:00:23 v #208 > > v2=UH1_0(), v3=UH2_1(v0='03', v1=US1_0(v0=US0_0()), v2=UH1_0(), v3=UH2_0()))) -00:00:23 v #209 > > │ -00:00:23 v #210 > > │ .rs output: -00:00:23 v #211 > > │ __assert / actual: "01" / expected: "UH2_1("01", -00:00:23 v #212 > > US1_0(US0_0), UH1_0, UH2_1("02", US1_0(US0_0), UH1_0, UH2_1("03", US1_0(US0_0), -00:00:23 v #213 > > UH1_0, UH2_0)))" -00:00:23 v #214 > > │ -00:00:23 v #215 > > │ .ts output: -00:00:23 v #216 > > │ __assert / actual: 01 / expected: UH2_1 (01, US1_0 US0_0, -00:00:23 v #217 > > UH1_0, UH2_1 (02, US1_0 US0_0, UH1_0, UH2_1 (03, US1_0 US0_0, UH1_0, UH2_0))) -00:00:23 v #218 > > │ -00:00:23 v #219 > > │ .py output: -00:00:23 v #220 > > │ __assert / actual: 01 / expected: UH2_1 ("01", US1_0 US0_0, -00:00:23 v #221 > > UH1_0, UH2_1 ("02", US1_0 US0_0, UH1_0, UH2_1 ("03", US1_0 US0_0, UH1_0, -00:00:23 v #222 > > UH2_0))) -00:00:23 v #223 > > │ -00:00:23 v #224 > > │ -00:00:23 v #225 > > -00:00:23 v #226 > > ── [ 5.20s - stdout ] ────────────────────────────────────────────────────────── -00:00:23 v #227 > > │ .fsx output: -00:00:23 v #228 > > │ __assert / actual: "01" / expected: "UH2_1 -00:00:23 v #229 > > │ ("01", US1_0 US0_0, UH1_0, -00:00:23 v #230 > > │ UH2_1 ("02", US1_0 US0_0, UH1_0, UH2_1 ("03", US1_0 US0_0, -00:00:23 v #231 > > UH1_0, UH2_0)))" -00:00:23 v #232 > > │ -00:00:23 v #233 > > -00:00:23 v #234 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:23 v #235 > > //// test -00:00:23 v #236 > > ///! fsharp -00:00:23 v #237 > > ///! cuda -00:00:23 v #238 > > ///! rust -00:00:23 v #239 > > ///! typescript -00:00:23 v #240 > > ///! python -00:00:23 v #241 > > -00:00:23 v #242 > > get_tasks () -00:00:23 v #243 > > |> listm'.try_item 0i32 -00:00:23 v #244 > > |> fun (Some task) => task.task.name -00:00:23 v #245 > > |> _assert_eq (task_name "01") -00:00:26 v #246 > > -00:00:26 v #247 > > ── [ 2.72s - return value ] ──────────────────────────────────────────────────── -00:00:26 v #248 > > │ .py output (Cuda): -00:00:26 v #249 > > │ __assert_eq / actual: 01 / expected: 01 -00:00:26 v #250 > > │ -00:00:26 v #251 > > │ .rs output: -00:00:26 v #252 > > │ __assert_eq / actual: "01" / expected: "01" -00:00:26 v #253 > > │ -00:00:26 v #254 > > │ .ts output: -00:00:26 v #255 > > │ __assert_eq / actual: 01 / expected: 01 -00:00:26 v #256 > > │ -00:00:26 v #257 > > │ .py output: -00:00:26 v #258 > > │ __assert_eq / actual: 01 / expected: 01 -00:00:26 v #259 > > │ -00:00:26 v #260 > > │ -00:00:26 v #261 > > -00:00:26 v #262 > > ── [ 2.72s - stdout ] ────────────────────────────────────────────────────────── -00:00:26 v #263 > > │ .fsx output: -00:00:26 v #264 > > │ __assert_eq / actual: "01" / expected: "01" -00:00:26 v #265 > > │ -00:00:26 v #266 > > -00:00:26 v #267 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:26 v #268 > > //// test -00:00:26 v #269 > > ///! fsharp -00:00:26 v #270 > > ////! cuda -00:00:26 v #271 > > ////! typescript -00:00:26 v #272 > > ////! python -00:00:26 v #273 > > ///// print_code -00:00:26 v #274 > > -00:00:26 v #275 > > inl print padding cols = -00:00:26 v #276 > > ({ lines = [[]]; last_lines = [[]]; max_acc = 0i32 }, cols) -00:00:26 v #277 > > ||> listm.fold fun { last_lines max_acc } lines => -00:00:26 v #278 > > inl { count max } = -00:00:26 v #279 > > (lines, { count = 0i32; max = 0i32 }) -00:00:26 v #280 > > ||> listm.foldBack fun line { count max } => { -00:00:26 v #281 > > count = count + 1 -00:00:26 v #282 > > max = -00:00:26 v #283 > > inl len = line |> sm'.length -00:00:26 v #284 > > if len > max -00:00:26 v #285 > > then len -00:00:26 v #286 > > else max -00:00:26 v #287 > > } -00:00:26 v #288 > > inl { lines } = -00:00:26 v #289 > > (lines, { lines = [[]]; i = 0i32 }) -00:00:26 v #290 > > ||> listm.foldBack fun line { lines i } => { -00:00:26 v #291 > > lines = -00:00:26 v #292 > > inl last_line = -00:00:26 v #293 > > last_lines -00:00:26 v #294 > > |> listm'.try_item (count - i - 1) -00:00:26 v #295 > > |> optionm'.default_with fun () => -00:00:26 v #296 > > " " |> sm'.replicate max_acc -00:00:26 v #297 > > inl line = -00:00:26 v #298 > > if padding = 0 -00:00:26 v #299 > > then line -00:00:26 v #300 > > else -00:00:26 v #301 > > inl padding = " " |> sm'.replicate padding -00:00:26 v #302 > > $'$"{!line}{!padding}"' -00:00:26 v #303 > > inl line = line |> sm'.pad_right (max + padding) ' ' -00:00:26 v #304 > > $'$"{!last_line}{!line}"' :: lines -00:00:26 v #305 > > i = i + 1 -00:00:26 v #306 > > } -00:00:26 v #307 > > { -00:00:26 v #308 > > lines -00:00:26 v #309 > > last_lines = lines -00:00:26 v #310 > > max_acc = max_acc + max + padding -00:00:26 v #311 > > } -00:00:26 v #312 > > |> fun x => x.lines -00:00:26 v #313 > > |> listm'.box -00:00:26 v #314 > > |> seq.of_list' -00:00:26 v #315 > > |> sm'.concat "\n" -00:00:26 v #316 > > -00:00:26 v #317 > > inl col () = -00:00:26 v #318 > > [[ "Task" ]] -00:00:26 v #319 > > ++ ( -00:00:26 v #320 > > get_tasks () -00:00:26 v #321 > > |> listm.map fun task => -00:00:26 v #322 > > inl (task_name name) = task.task.name -00:00:26 v #323 > > name -00:00:26 v #324 > > ) -00:00:26 v #325 > > -00:00:26 v #326 > > inl cols () = -00:00:26 v #327 > > [[ -00:00:26 v #328 > > col () -00:00:26 v #329 > > col () -00:00:26 v #330 > > [[ "a"; "b"; "c"; "d"; "e" ]] -00:00:26 v #331 > > ]] -00:00:26 v #332 > > -00:00:26 v #333 > > inl main () = -00:00:26 v #334 > > cols () -00:00:26 v #335 > > |> print 1i32 -00:00:26 v #336 > > |> console.write_line -00:00:27 v #337 > > -00:00:27 v #338 > > ── [ 888.31ms - stdout ] ─────────────────────────────────────────────────────── -00:00:27 v #339 > > │ Task Task a -00:00:27 v #340 > > │ 01 01 b -00:00:27 v #341 > > │ 02 02 c -00:00:27 v #342 > > │ 03 03 d -00:00:27 v #343 > > │ e -00:00:27 v #344 > > │ -00:00:27 v #345 > 00:00:25 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 10281 } -00:00:27 v #346 > 00:00:25 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/apps/scheduler/Tasks.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/apps/scheduler/Tasks.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:00:28 v #347 > 00:00:26 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/apps/scheduler/Tasks.dib.ipynb to html -00:00:28 v #348 > 00:00:26 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. -00:00:28 v #349 > 00:00:26 v #7 ! validate(nb) -00:00:29 v #350 > 00:00:27 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 -00:00:29 v #351 > 00:00:27 v #9 ! return _pygments_highlight( -00:00:29 v #352 > 00:00:27 v #10 ! [NbConvertApp] Writing 309919 bytes to c:\home\git\polyglot\apps\scheduler\Tasks.dib.html -00:00:29 v #353 > 00:00:28 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 860 } -00:00:29 v #354 > 00:00:28 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 860 } -00:00:29 v #355 > 00:00:28 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/apps/scheduler/Tasks.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/apps/scheduler/Tasks.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:00:30 v #356 > 00:00:28 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } -00:00:30 v #357 > 00:00:28 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } -00:00:30 v #358 > 00:00:28 d #16 spiral.run / dib / { exit_code = 0; result_length = 11200 } -00:00:30 d #359 runtime.execute_with_options_async / { exit_code = 0; output_length = 14428 } -00:00:30 d #3 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path Tasks.dib --retries 3 -00:00:30 v #5 async.run_with_timeout_async / { timeout = 100 } +00:00:00 d #1 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path Tasks.dib --retries 3"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path Tasks.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } +00:00:00 v #2 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "Tasks.dib", "--retries", "3"])) } +00:00:00 v #3 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/apps/scheduler/Tasks.dib", "--output-path", "c:/home/git/polyglot/apps/scheduler/Tasks.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/apps/scheduler/Tasks.dib" --output-path "c:/home/git/polyglot/apps/scheduler/Tasks.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } +00:00:02 v #4 > > +00:00:02 v #5 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:02 v #6 > > │ ## Tasks (Polyglot) +00:00:06 v #7 > > +00:00:06 v #8 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:06 v #9 > > //// test +00:00:06 v #10 > > +00:00:06 v #11 > > open testing +00:00:08 v #12 > > +00:00:08 v #13 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:08 v #14 > > │ ## task_name +00:00:08 v #15 > > +00:00:08 v #16 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:08 v #17 > > nominal task_name = string +00:00:08 v #18 > > +00:00:08 v #19 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:08 v #20 > > │ ## manual_scheduling +00:00:08 v #21 > > +00:00:08 v #22 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:08 v #23 > > union manual_scheduling = +00:00:08 v #24 > > | WithSuggestion +00:00:08 v #25 > > | WithoutSuggestion +00:00:08 v #26 > > +00:00:08 v #27 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:08 v #28 > > │ ## recurrency_offset +00:00:08 v #29 > > +00:00:08 v #30 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:08 v #31 > > union recurrency_offset = +00:00:08 v #32 > > | Days : i32 +00:00:08 v #33 > > | Weeks : i32 +00:00:08 v #34 > > | Months : i32 +00:00:09 v #35 > > +00:00:09 v #36 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:09 v #37 > > │ ## day_of_week +00:00:09 v #38 > > +00:00:09 v #39 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:09 v #40 > > union day_of_week = +00:00:09 v #41 > > | Sunday +00:00:09 v #42 > > | Monday +00:00:09 v #43 > > | Tuesday +00:00:09 v #44 > > | Wednesday +00:00:09 v #45 > > | Thursday +00:00:09 v #46 > > | Friday +00:00:09 v #47 > > | Saturday +00:00:09 v #48 > > +00:00:09 v #49 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:09 v #50 > > │ ## month +00:00:09 v #51 > > +00:00:09 v #52 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:09 v #53 > > union month = +00:00:09 v #54 > > | January +00:00:09 v #55 > > | February +00:00:09 v #56 > > | March +00:00:09 v #57 > > | April +00:00:09 v #58 > > | May +00:00:09 v #59 > > | June +00:00:09 v #60 > > | July +00:00:09 v #61 > > | August +00:00:09 v #62 > > | September +00:00:09 v #63 > > | October +00:00:09 v #64 > > | November +00:00:09 v #65 > > | December +00:00:10 v #66 > > +00:00:10 v #67 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:10 v #68 > > │ ## day +00:00:10 v #69 > > +00:00:10 v #70 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:10 v #71 > > nominal day = i32 +00:00:10 v #72 > > +00:00:10 v #73 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:10 v #74 > > │ ## year +00:00:10 v #75 > > +00:00:10 v #76 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:10 v #77 > > nominal year = i32 +00:00:11 v #78 > > +00:00:11 v #79 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:11 v #80 > > │ ## fixed_recurrency +00:00:11 v #81 > > +00:00:11 v #82 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:11 v #83 > > union fixed_recurrency = +00:00:11 v #84 > > | Weekly : day_of_week +00:00:11 v #85 > > | Monthly : day +00:00:11 v #86 > > | Yearly : day * month +00:00:11 v #87 > > +00:00:11 v #88 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:11 v #89 > > │ ## recurrency +00:00:11 v #90 > > +00:00:11 v #91 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:11 v #92 > > union recurrency = +00:00:11 v #93 > > | Offset : recurrency_offset +00:00:11 v #94 > > | Fixed : list fixed_recurrency +00:00:12 v #95 > > +00:00:12 v #96 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:12 v #97 > > │ ## scheduling +00:00:12 v #98 > > +00:00:12 v #99 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:12 v #100 > > union scheduling = +00:00:12 v #101 > > | Manual : manual_scheduling +00:00:12 v #102 > > | Recurrent : recurrency +00:00:12 v #103 > > +00:00:12 v #104 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:12 v #105 > > │ ## task +00:00:12 v #106 > > +00:00:12 v #107 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:12 v #108 > > type task = +00:00:12 v #109 > > { +00:00:12 v #110 > > name : task_name +00:00:12 v #111 > > scheduling : scheduling +00:00:12 v #112 > > } +00:00:12 v #113 > > +00:00:12 v #114 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:12 v #115 > > │ ## date +00:00:12 v #116 > > +00:00:12 v #117 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:12 v #118 > > type date = +00:00:12 v #119 > > { +00:00:12 v #120 > > year : year +00:00:12 v #121 > > month : month +00:00:12 v #122 > > day : day +00:00:12 v #123 > > } +00:00:13 v #124 > > +00:00:13 v #125 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:13 v #126 > > │ ## status +00:00:13 v #127 > > +00:00:13 v #128 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:13 v #129 > > union status = +00:00:13 v #130 > > | Postponed : option () +00:00:13 v #131 > > +00:00:13 v #132 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:13 v #133 > > │ ## event +00:00:13 v #134 > > +00:00:13 v #135 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:13 v #136 > > type event = +00:00:13 v #137 > > { +00:00:13 v #138 > > date : date +00:00:13 v #139 > > status : status +00:00:13 v #140 > > } +00:00:14 v #141 > > +00:00:14 v #142 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:14 v #143 > > │ ## task_template +00:00:14 v #144 > > +00:00:14 v #145 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:14 v #146 > > type task_template = +00:00:14 v #147 > > { +00:00:14 v #148 > > task : task +00:00:14 v #149 > > events : list event +00:00:14 v #150 > > } +00:00:14 v #151 > > +00:00:14 v #152 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:14 v #153 > > │ ## get_tasks (test) +00:00:14 v #154 > > +00:00:14 v #155 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:14 v #156 > > //// test +00:00:14 v #157 > > +00:00:14 v #158 > > inl get_tasks () : list task_template = +00:00:14 v #159 > > [[ +00:00:14 v #160 > > { +00:00:14 v #161 > > task = +00:00:14 v #162 > > { +00:00:14 v #163 > > name = task_name "01" +00:00:14 v #164 > > scheduling = Manual WithSuggestion +00:00:14 v #165 > > } +00:00:14 v #166 > > events = [[]] +00:00:14 v #167 > > } +00:00:14 v #168 > > { +00:00:14 v #169 > > task = +00:00:14 v #170 > > { +00:00:14 v #171 > > name = task_name "02" +00:00:14 v #172 > > scheduling = Manual WithSuggestion +00:00:14 v #173 > > } +00:00:14 v #174 > > events = [[]] +00:00:14 v #175 > > } +00:00:14 v #176 > > { +00:00:14 v #177 > > task = +00:00:14 v #178 > > { +00:00:14 v #179 > > name = task_name "03" +00:00:14 v #180 > > scheduling = Manual WithSuggestion +00:00:14 v #181 > > } +00:00:14 v #182 > > events = [[]] +00:00:14 v #183 > > } +00:00:14 v #184 > > ]] +00:00:15 v #185 > > +00:00:15 v #186 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:15 v #187 > > //// test +00:00:15 v #188 > > ///! fsharp +00:00:15 v #189 > > ///! cuda +00:00:15 v #190 > > ///! rust +00:00:15 v #191 > > ///! typescript +00:00:15 v #192 > > ///! python +00:00:15 v #193 > > +00:00:15 v #194 > > get_tasks () +00:00:15 v #195 > > |> sm'.format_debug +00:00:15 v #196 > > |> _assert sm'.contains "01" +00:00:21 v #197 > > +00:00:21 v #198 > > ── [ 5.94s - return value ] ──────────────────────────────────────────────────── +00:00:21 v #199 > > │ .py output (Cuda): +00:00:21 v #200 > > │ __assert / actual: 01 / expected: UH2_1(v0='01', +00:00:21 v #201 > > v1=US1_0(v0=US0_0()), v2=UH1_0(), v3=UH2_1(v0='02', v1=US1_0(v0=US0_0()), +00:00:21 v #202 > > v2=UH1_0(), v3=UH2_1(v0='03', v1=US1_0(v0=US0_0()), v2=UH1_0(), v3=UH2_0()))) +00:00:21 v #203 > > │ +00:00:21 v #204 > > │ .rs output: +00:00:21 v #205 > > │ __assert / actual: "01" / expected: "UH2_1("01", +00:00:21 v #206 > > US1_0(US0_0), UH1_0, UH2_1("02", US1_0(US0_0), UH1_0, UH2_1("03", US1_0(US0_0), +00:00:21 v #207 > > UH1_0, UH2_0)))" +00:00:21 v #208 > > │ +00:00:21 v #209 > > │ .ts output: +00:00:21 v #210 > > │ __assert / actual: 01 / expected: UH2_1 (01, US1_0 US0_0, +00:00:21 v #211 > > UH1_0, UH2_1 (02, US1_0 US0_0, UH1_0, UH2_1 (03, US1_0 US0_0, UH1_0, UH2_0))) +00:00:21 v #212 > > │ +00:00:21 v #213 > > │ .py output: +00:00:21 v #214 > > │ __assert / actual: 01 / expected: UH2_1 ("01", US1_0 US0_0, +00:00:21 v #215 > > UH1_0, UH2_1 ("02", US1_0 US0_0, UH1_0, UH2_1 ("03", US1_0 US0_0, UH1_0, +00:00:21 v #216 > > UH2_0))) +00:00:21 v #217 > > │ +00:00:21 v #218 > > │ +00:00:21 v #219 > > +00:00:21 v #220 > > ── [ 5.95s - stdout ] ────────────────────────────────────────────────────────── +00:00:21 v #221 > > │ .fsx output: +00:00:21 v #222 > > │ __assert / actual: "01" / expected: "UH2_1 +00:00:21 v #223 > > │ ("01", US1_0 US0_0, UH1_0, +00:00:21 v #224 > > │ UH2_1 ("02", US1_0 US0_0, UH1_0, UH2_1 ("03", US1_0 US0_0, +00:00:21 v #225 > > UH1_0, UH2_0)))" +00:00:21 v #226 > > │ +00:00:21 v #227 > > +00:00:21 v #228 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:21 v #229 > > //// test +00:00:21 v #230 > > ///! fsharp +00:00:21 v #231 > > ///! cuda +00:00:21 v #232 > > ///! rust +00:00:21 v #233 > > ///! typescript +00:00:21 v #234 > > ///! python +00:00:21 v #235 > > +00:00:21 v #236 > > get_tasks () +00:00:21 v #237 > > |> listm'.try_item 0i32 +00:00:21 v #238 > > |> fun (Some task) => task.task.name +00:00:21 v #239 > > |> _assert_eq (task_name "01") +00:00:24 v #240 > > +00:00:24 v #241 > > ── [ 3.47s - return value ] ──────────────────────────────────────────────────── +00:00:24 v #242 > > │ .py output (Cuda): +00:00:24 v #243 > > │ __assert_eq / actual: 01 / expected: 01 +00:00:24 v #244 > > │ +00:00:24 v #245 > > │ .rs output: +00:00:24 v #246 > > │ __assert_eq / actual: "01" / expected: "01" +00:00:24 v #247 > > │ +00:00:24 v #248 > > │ .ts output: +00:00:24 v #249 > > │ __assert_eq / actual: 01 / expected: 01 +00:00:24 v #250 > > │ +00:00:24 v #251 > > │ .py output: +00:00:24 v #252 > > │ __assert_eq / actual: 01 / expected: 01 +00:00:24 v #253 > > │ +00:00:24 v #254 > > │ +00:00:24 v #255 > > +00:00:24 v #256 > > ── [ 3.47s - stdout ] ────────────────────────────────────────────────────────── +00:00:24 v #257 > > │ .fsx output: +00:00:24 v #258 > > │ __assert_eq / actual: "01" / expected: "01" +00:00:24 v #259 > > │ +00:00:24 v #260 > > +00:00:24 v #261 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:24 v #262 > > //// test +00:00:24 v #263 > > ///! fsharp +00:00:24 v #264 > > ////! cuda +00:00:24 v #265 > > ////! typescript +00:00:24 v #266 > > ////! python +00:00:24 v #267 > > ///// print_code +00:00:24 v #268 > > +00:00:24 v #269 > > inl print padding cols = +00:00:24 v #270 > > ({ lines = [[]]; last_lines = [[]]; max_acc = 0i32 }, cols) +00:00:24 v #271 > > ||> listm.fold fun { last_lines max_acc } lines => +00:00:24 v #272 > > inl { count max } = +00:00:24 v #273 > > (lines, { count = 0i32; max = 0i32 }) +00:00:24 v #274 > > ||> listm.foldBack fun line { count max } => { +00:00:24 v #275 > > count = count + 1 +00:00:24 v #276 > > max = +00:00:24 v #277 > > inl len = line |> sm'.length +00:00:24 v #278 > > if len > max +00:00:24 v #279 > > then len +00:00:24 v #280 > > else max +00:00:24 v #281 > > } +00:00:24 v #282 > > inl { lines } = +00:00:24 v #283 > > (lines, { lines = [[]]; i = 0i32 }) +00:00:24 v #284 > > ||> listm.foldBack fun line { lines i } => { +00:00:24 v #285 > > lines = +00:00:24 v #286 > > inl last_line = +00:00:24 v #287 > > last_lines +00:00:24 v #288 > > |> listm'.try_item (count - i - 1) +00:00:24 v #289 > > |> optionm'.default_with fun () => +00:00:24 v #290 > > " " |> sm'.replicate max_acc +00:00:24 v #291 > > inl line = +00:00:24 v #292 > > if padding = 0 +00:00:24 v #293 > > then line +00:00:24 v #294 > > else +00:00:24 v #295 > > inl padding = " " |> sm'.replicate padding +00:00:24 v #296 > > $'$"{!line}{!padding}"' +00:00:24 v #297 > > inl line = line |> sm'.pad_right (max + padding) ' ' +00:00:24 v #298 > > $'$"{!last_line}{!line}"' :: lines +00:00:24 v #299 > > i = i + 1 +00:00:24 v #300 > > } +00:00:24 v #301 > > { +00:00:24 v #302 > > lines +00:00:24 v #303 > > last_lines = lines +00:00:24 v #304 > > max_acc = max_acc + max + padding +00:00:24 v #305 > > } +00:00:24 v #306 > > |> fun x => x.lines +00:00:24 v #307 > > |> listm'.box +00:00:24 v #308 > > |> seq.of_list' +00:00:24 v #309 > > |> sm'.concat "\n" +00:00:24 v #310 > > +00:00:24 v #311 > > inl col () = +00:00:24 v #312 > > [[ "Task" ]] +00:00:24 v #313 > > ++ ( +00:00:24 v #314 > > get_tasks () +00:00:24 v #315 > > |> listm.map fun task => +00:00:24 v #316 > > inl (task_name name) = task.task.name +00:00:24 v #317 > > name +00:00:24 v #318 > > ) +00:00:24 v #319 > > +00:00:24 v #320 > > inl cols () = +00:00:24 v #321 > > [[ +00:00:24 v #322 > > col () +00:00:24 v #323 > > col () +00:00:24 v #324 > > [[ "a"; "b"; "c"; "d"; "e" ]] +00:00:24 v #325 > > ]] +00:00:24 v #326 > > +00:00:24 v #327 > > inl main () = +00:00:24 v #328 > > cols () +00:00:24 v #329 > > |> print 1i32 +00:00:24 v #330 > > |> console.write_line +00:00:25 v #331 > > +00:00:25 v #332 > > ── [ 818.61ms - stdout ] ─────────────────────────────────────────────────────── +00:00:25 v #333 > > │ Task Task a +00:00:25 v #334 > > │ 01 01 b +00:00:25 v #335 > > │ 02 02 c +00:00:25 v #336 > > │ 03 03 d +00:00:25 v #337 > > │ e +00:00:25 v #338 > > │ +00:00:25 v #339 > 00:00:24 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 10281 } +00:00:25 v #340 > 00:00:24 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/apps/scheduler/Tasks.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/apps/scheduler/Tasks.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } +00:00:26 v #341 > 00:00:25 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/apps/scheduler/Tasks.dib.ipynb to html +00:00:26 v #342 > 00:00:25 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. +00:00:26 v #343 > 00:00:25 v #7 ! validate(nb) +00:00:27 v #344 > 00:00:26 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 +00:00:27 v #345 > 00:00:26 v #9 ! return _pygments_highlight( +00:00:27 v #346 > 00:00:26 v #10 ! [NbConvertApp] Writing 309919 bytes to c:\home\git\polyglot\apps\scheduler\Tasks.dib.html +00:00:27 v #347 > 00:00:27 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 860 } +00:00:27 v #348 > 00:00:27 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 860 } +00:00:27 v #349 > 00:00:27 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/apps/scheduler/Tasks.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/apps/scheduler/Tasks.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } +00:00:28 v #350 > 00:00:27 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } +00:00:28 v #351 > 00:00:27 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } +00:00:28 v #352 > 00:00:27 d #16 spiral.run / dib / { exit_code = 0; result_length = 11200 } +00:00:28 d #353 runtime.execute_with_options_async / { exit_code = 0; output_length = 14428 } +00:00:28 d #1 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path Tasks.dib --retries 3 00:00:00 d #1 writeDibCode / output: Spi / path: Tasks.dib 00:00:00 d #2 parseDibCode / output: Spi / file: Tasks.dib@@ -68958,7 +26588,7 @@
00:00:00 v #1 async.run_with_timeout_async / { timeout = 180 } -00:00:00 d #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0 - ""C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 --default-int i32 --default-float f64"; options = { command = dotnet "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 --default-int i32 --default-float f64; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = Some <fun:compiler@87-4>; stdin = None; trace = true; working_directory = Some "C:\home\git\polyglot" } } -00:00:00 v #2 > 00:00:00 d #1 pwd: C:\home\git\polyglot -00:00:00 v #3 > 00:00:00 d #2 dllPath: C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release -00:00:00 v #4 > 00:00:00 d #3 targetDir: C:\home\git\polyglot\target/spiral_Eval -00:00:01 v #2 async.run_with_timeout_async / { timeout = 100 } -00:00:01 v #5 > Starting the Spiral Server. It is bound to: http://localhost:13805 -00:00:01 v #3 async.run_with_timeout_async / { timeout = 100 } -00:00:01 v #1 Supervisor.sendJson / port: 13805 / json: {"Ping":true} / result: -00:00:01 v #2 Supervisor.awaitCompiler / Ping / result: 'Some null' / port: 13805 / retry: 1 -00:00:01 v #6 > Server bound to: http://localhost:13805 -00:00:01 d #7 runtime.execute_with_options_async / { file_name = ../../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path chat_contract.dib --retries 1"; options = { command = ../../../deps/spiral/workspace/target/release/spiral.exe dib --path chat_contract.dib --retries 1; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } -00:00:01 v #8 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "chat_contract.dib", "--retries", "1"])) } -00:00:01 v #9 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/apps/chat/contract/chat_contract.dib", "--output-path", "c:/home/git/polyglot/apps/chat/contract/chat_contract.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/apps/chat/contract/chat_contract.dib" --output-path "c:/home/git/polyglot/apps/chat/contract/chat_contract.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } -00:00:03 v #10 > > -00:00:03 v #11 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:03 v #12 > > │ # chat_contract -00:00:06 v #13 > > -00:00:06 v #14 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:06 v #15 > > open rust -00:00:06 v #16 > > open rust.rust_operators -00:00:11 v #17 > > -00:00:11 v #18 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:11 v #19 > > //// test -00:00:11 v #20 > > -00:00:11 v #21 > > open testing -00:00:11 v #22 > > -00:00:11 v #23 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:11 v #24 > > │ ## chat_contract -00:00:11 v #25 > > -00:00:11 v #26 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:11 v #27 > > │ ### state -00:00:11 v #28 > > -00:00:11 v #29 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:11 v #30 > > type state = -00:00:11 v #31 > > { -00:00:11 v #32 > > version : u32 -00:00:11 v #33 > > account_set : near.iterable_set near.account_id -00:00:11 v #34 > > alias_set : near.iterable_set sm'.std_string -00:00:11 v #35 > > account_map : near.lookup_map near.account_id sm'.std_string -00:00:11 v #36 > > alias_map : near.lookup_map sm'.std_string (mapm.hash_map -00:00:11 v #37 > > near.account_id (u64 * u32)) -00:00:11 v #38 > > } -00:00:12 v #39 > > -00:00:12 v #40 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:12 v #41 > > //// test -00:00:12 v #42 > > ///! rust -c -00:00:12 v #43 > > -00:00:12 v #44 > > () -00:01:02 v #45 > > -00:01:02 v #46 > > ── [ 50.20s - return value ] ─────────────────────────────────────────────────── -00:01:02 v #47 > > │ -00:01:02 v #48 > > │ 00:00:10 i #2 near_workspaces.print_usd / { retry = 1; -00:01:02 v #49 > > total_gas_burnt_usd = +0.000808; total_gas_burnt = 1209371440851 } -00:01:02 v #50 > > │ 00:00:10 i #3 near_workspaces.print_usd / outcome / { -00:01:02 v #51 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; -00:01:02 v #52 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } -00:01:02 v #53 > > │ 00:00:10 i #4 near_workspaces.print_usd / outcome / { -00:01:02 v #54 > > is_success = true; gas_burnt_usd = +0.000602; tokens_burnt_usd = +0.000602; -00:01:02 v #55 > > gas_burnt = 901289581511; tokens_burnt = 90128958151100000000 } -00:01:02 v #56 > > │ 00:00:10 w #5 spiral_wasm.run / Error error / { retry = -00:01:02 v #57 > > 1; error = "{ receipt_outcomes_len = 1; retry = 1; receipt_failures = [] }" } -00:01:02 v #58 > > │ -00:01:02 v #59 > > │ -00:01:02 v #60 > > │ -00:01:02 v #61 > > │ 00:00:17 i #8 near_workspaces.print_usd / { retry = 2; -00:01:02 v #62 > > total_gas_burnt_usd = +0.000808; total_gas_burnt = 1209371440851 } -00:01:02 v #63 > > │ 00:00:17 i #9 near_workspaces.print_usd / outcome / { -00:01:02 v #64 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; -00:01:02 v #65 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } -00:01:02 v #66 > > │ 00:00:17 i #10 near_workspaces.print_usd / outcome / { -00:01:02 v #67 > > is_success = true; gas_burnt_usd = +0.000602; tokens_burnt_usd = +0.000602; -00:01:02 v #68 > > gas_burnt = 901289581511; tokens_burnt = 90128958151100000000 } -00:01:02 v #69 > > │ 00:00:17 w #11 spiral_wasm.run / Error error / { retry -00:01:02 v #70 > > = 2; error = "{ receipt_outcomes_len = 1; retry = 2; receipt_failures = [] }" } -00:01:02 v #71 > > │ -00:01:02 v #72 > > │ -00:01:02 v #73 > > │ -00:01:02 v #74 > > │ 00:00:24 i #14 near_workspaces.print_usd / { retry = 3; -00:01:02 v #75 > > total_gas_burnt_usd = +0.000808; total_gas_burnt = 1209371440851 } -00:01:02 v #76 > > │ 00:00:24 i #15 near_workspaces.print_usd / outcome / { -00:01:02 v #77 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; -00:01:02 v #78 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } -00:01:02 v #79 > > │ 00:00:24 i #16 near_workspaces.print_usd / outcome / { -00:01:02 v #80 > > is_success = true; gas_burnt_usd = +0.000602; tokens_burnt_usd = +0.000602; -00:01:02 v #81 > > gas_burnt = 901289581511; tokens_burnt = 90128958151100000000 } -00:01:02 v #82 > > │ 00:00:24 w #17 spiral_wasm.run / Error error / { retry -00:01:02 v #83 > > = 3; error = "{ receipt_outcomes_len = 1; retry = 3; receipt_failures = [] }" } -00:01:02 v #84 > > │ -00:01:02 v #85 > > │ -00:01:02 v #86 > > │ -00:01:02 v #87 > > │ 00:00:30 i #20 near_workspaces.print_usd / { retry = 4; -00:01:02 v #88 > > total_gas_burnt_usd = +0.000957; total_gas_burnt = 1432554003351 } -00:01:02 v #89 > > │ 00:00:30 i #21 near_workspaces.print_usd / outcome / { -00:01:02 v #90 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; -00:01:02 v #91 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } -00:01:02 v #92 > > │ 00:00:30 i #22 near_workspaces.print_usd / outcome / { -00:01:02 v #93 > > is_success = true; gas_burnt_usd = +0.000602; tokens_burnt_usd = +0.000602; -00:01:02 v #94 > > gas_burnt = 901289581511; tokens_burnt = 90128958151100000000 } -00:01:02 v #95 > > │ 00:00:30 i #23 near_workspaces.print_usd / outcome / { -00:01:02 v #96 > > is_success = true; gas_burnt_usd = +0.000149; tokens_burnt_usd = +0.000000; -00:01:02 v #97 > > gas_burnt = 223182562500; tokens_burnt = 0 } -00:01:02 v #98 > > │ -00:01:02 v #99 > > -00:01:02 v #100 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:02 v #101 > > //// test -00:01:02 v #102 > > ///! rust -c -00:01:02 v #103 > > -00:01:02 v #104 > > trace Verbose (fun () => "") id -00:01:21 v #105 > > -00:01:21 v #106 > > ── [ 18.65s - return value ] ─────────────────────────────────────────────────── -00:01:21 v #107 > > │ -00:01:21 v #108 > > │ 00:00:06 i #2 near_workspaces.print_usd / { retry = 1; -00:01:21 v #109 > > total_gas_burnt_usd = +0.000884; total_gas_burnt = 1323839559015 } -00:01:21 v #110 > > │ 00:00:06 i #3 near_workspaces.print_usd / outcome / { -00:01:21 v #111 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; -00:01:21 v #112 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } -00:01:21 v #113 > > │ 00:00:06 i #4 near_workspaces.print_usd / outcome / { -00:01:21 v #114 > > is_success = true; gas_burnt_usd = +0.000679; tokens_burnt_usd = +0.000679; -00:01:21 v #115 > > gas_burnt = 1015757699675; tokens_burnt = 101575769967500000000 } -00:01:21 v #116 > > │ 00:00:06 w #5 spiral_wasm.run / Error error / { retry = -00:01:21 v #117 > > 1; error = "{ receipt_outcomes_len = 1; retry = 1; receipt_failures = [] }" } -00:01:21 v #118 > > │ -00:01:21 v #119 > > │ -00:01:21 v #120 > > │ -00:01:21 v #121 > > │ 00:00:13 i #8 near_workspaces.print_usd / { retry = 2; -00:01:21 v #122 > > total_gas_burnt_usd = +0.001033; total_gas_burnt = 1547022121515 } -00:01:21 v #123 > > │ 00:00:13 i #9 near_workspaces.print_usd / outcome / { -00:01:21 v #124 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; -00:01:21 v #125 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } -00:01:21 v #126 > > │ 00:00:13 i #10 near_workspaces.print_usd / outcome / { -00:01:21 v #127 > > is_success = true; gas_burnt_usd = +0.000679; tokens_burnt_usd = +0.000679; -00:01:21 v #128 > > gas_burnt = 1015757699675; tokens_burnt = 101575769967500000000 } -00:01:21 v #129 > > │ 00:00:13 i #11 near_workspaces.print_usd / outcome / { -00:01:21 v #130 > > is_success = true; gas_burnt_usd = +0.000149; tokens_burnt_usd = +0.000000; -00:01:21 v #131 > > gas_burnt = 223182562500; tokens_burnt = 0 } -00:01:21 v #132 > > │ -00:01:21 v #133 > > -00:01:21 v #134 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:01:21 v #135 > > │ ### new -00:01:21 v #136 > > -00:01:21 v #137 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:21 v #138 > > inl new () : state = -00:01:21 v #139 > > { -00:01:21 v #140 > > version = 2 -00:01:21 v #141 > > account_set = "account_set" |> sm'.byte_slice |> near.new_iterable_set -00:01:21 v #142 > > alias_set = "alias_set" |> sm'.byte_slice |> near.new_iterable_set -00:01:21 v #143 > > account_map = "account_map" |> sm'.byte_slice |> near.new_lookup_map -00:01:21 v #144 > > alias_map = "alias_map" |> sm'.byte_slice |> near.new_lookup_map -00:01:21 v #145 > > } -00:01:21 v #146 > > -00:01:21 v #147 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:21 v #148 > > //// test -00:01:21 v #149 > > ///! rust -c -00:01:21 v #150 > > -00:01:21 v #151 > > inl state = new () -00:01:21 v #152 > > trace Verbose (fun () => "chat_contract") fun () => { state = state |> -00:01:21 v #153 > > sm'.format_debug } -00:01:21 v #154 > > trace Verbose (fun () => "") id -00:01:51 v #155 > > -00:01:51 v #156 > > ── [ 30.15s - return value ] ─────────────────────────────────────────────────── -00:01:51 v #157 > > │ 00:00:00 v #1 chat_contract / { state = (2, IterableSet -00:01:51 v #158 > > { elements: Vector { len: 0, prefix: [97, 99, 99, 111, 117, 110, 116, 95, 115, -00:01:51 v #159 > > 101, 116, 118] }, index: LookupMap { prefix: [97, 99, 99, 111, 117, 110, 116, -00:01:51 v #160 > > 95, 115, 101, 116, 109] } }, IterableSet { elements: Vector { len: 0, prefix: -00:01:51 v #161 > > [97, 108, 105, 97, 115, 95, 115, 101, 116, 118] }, index: LookupMap { prefix: -00:01:51 v #162 > > [97, 108, 105, 97, 115, 95, 115, 101, 116, 109] } }, LookupMap { prefix: [97, -00:01:51 v #163 > > 99, 99, 111, 117, 110, 116, 95, 109, 97, 112] }, LookupMap { prefix: [97, 108, -00:01:51 v #164 > > 105, 97, 115, 95, 109, 97, 112] }) } -00:01:51 v #165 > > │ -00:01:51 v #166 > > │ 00:00:07 i #2 near_workspaces.print_usd / { retry = 1; -00:01:51 v #167 > > total_gas_burnt_usd = +0.001475; total_gas_burnt = 2207716344127 } -00:01:51 v #168 > > │ 00:00:07 i #3 near_workspaces.print_usd / outcome / { -00:01:51 v #169 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; -00:01:51 v #170 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } -00:01:51 v #171 > > │ 00:00:07 i #4 near_workspaces.print_usd / outcome / { -00:01:51 v #172 > > is_success = true; gas_burnt_usd = +0.001120; tokens_burnt_usd = +0.001120; -00:01:51 v #173 > > gas_burnt = 1676451922287; tokens_burnt = 167645192228700000000 } -00:01:51 v #174 > > │ 00:00:07 i #5 near_workspaces.print_usd / outcome / { -00:01:51 v #175 > > is_success = true; gas_burnt_usd = +0.000149; tokens_burnt_usd = +0.000000; -00:01:51 v #176 > > gas_burnt = 223182562500; tokens_burnt = 0 } -00:01:51 v #177 > > │ -00:01:51 v #178 > > -00:01:51 v #179 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:01:51 v #180 > > │ ### is_valid_alias -00:01:51 v #181 > > -00:01:51 v #182 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:51 v #183 > > inl is_valid_alias (alias : sm'.std_string) : bool = -00:01:51 v #184 > > inl alias' = alias |> sm'.from_std_string -00:01:51 v #185 > > inl alias_len = alias' |> sm'.length -00:01:51 v #186 > > -00:01:51 v #187 > > alias_len > 0i32 -00:01:51 v #188 > > && alias_len < 64 -00:01:51 v #189 > > && (alias' |> sm'.starts_with "-" |> not) -00:01:51 v #190 > > && (alias' |> sm'.ends_with "-" |> not) -00:01:51 v #191 > > && (alias' |> sm'.as_str |> sm'.chars |> iter.all (fun c => (c |> -00:01:51 v #192 > > sm'.char_is_alphanumeric) || c = '-')) -00:01:52 v #193 > > -00:01:52 v #194 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:01:52 v #195 > > //// test -00:01:52 v #196 > > ///! rust -c -00:01:52 v #197 > > -00:01:52 v #198 > > "" -00:01:52 v #199 > > |> sm'.to_std_string -00:01:52 v #200 > > |> is_valid_alias -00:01:52 v #201 > > |> _assert_eq false -00:02:13 v #202 > > -00:02:13 v #203 > > ── [ 21.04s - return value ] ─────────────────────────────────────────────────── -00:02:13 v #204 > > │ -00:02:13 v #205 > > │ 00:00:06 i #2 near_workspaces.print_usd / { retry = 1; -00:02:13 v #206 > > total_gas_burnt_usd = +0.000971; total_gas_burnt = 1454118867078 } -00:02:13 v #207 > > │ 00:00:06 i #3 near_workspaces.print_usd / outcome / { -00:02:13 v #208 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; -00:02:13 v #209 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } -00:02:13 v #210 > > │ 00:00:06 i #4 near_workspaces.print_usd / outcome / { -00:02:13 v #211 > > is_success = true; gas_burnt_usd = +0.000616; tokens_burnt_usd = +0.000616; -00:02:13 v #212 > > gas_burnt = 922854445238; tokens_burnt = 92285444523800000000 } -00:02:13 v #213 > > │ 00:00:06 i #5 near_workspaces.print_usd / outcome / { -00:02:13 v #214 > > is_success = true; gas_burnt_usd = +0.000149; tokens_burnt_usd = +0.000000; -00:02:13 v #215 > > gas_burnt = 223182562500; tokens_burnt = 0 } -00:02:13 v #216 > > │ -00:02:13 v #217 > > -00:02:13 v #218 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:13 v #219 > > //// test -00:02:13 v #220 > > ///! rust -c -00:02:13 v #221 > > -00:02:13 v #222 > > "a-" -00:02:13 v #223 > > |> sm'.to_std_string -00:02:13 v #224 > > |> is_valid_alias -00:02:13 v #225 > > |> _assert_eq false -00:02:34 v #226 > > -00:02:34 v #227 > > ── [ 20.83s - return value ] ─────────────────────────────────────────────────── -00:02:34 v #228 > > │ -00:02:34 v #229 > > │ 00:00:06 i #2 near_workspaces.print_usd / { retry = 1; -00:02:34 v #230 > > total_gas_burnt_usd = +0.000973; total_gas_burnt = 1456085184501 } -00:02:34 v #231 > > │ 00:00:06 i #3 near_workspaces.print_usd / outcome / { -00:02:34 v #232 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; -00:02:34 v #233 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } -00:02:34 v #234 > > │ 00:00:06 i #4 near_workspaces.print_usd / outcome / { -00:02:34 v #235 > > is_success = true; gas_burnt_usd = +0.000618; tokens_burnt_usd = +0.000618; -00:02:34 v #236 > > gas_burnt = 924820762661; tokens_burnt = 92482076266100000000 } -00:02:34 v #237 > > │ 00:00:06 i #5 near_workspaces.print_usd / outcome / { -00:02:34 v #238 > > is_success = true; gas_burnt_usd = +0.000149; tokens_burnt_usd = +0.000000; -00:02:34 v #239 > > gas_burnt = 223182562500; tokens_burnt = 0 } -00:02:34 v #240 > > │ -00:02:34 v #241 > > -00:02:34 v #242 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:02:34 v #243 > > //// test -00:02:34 v #244 > > ///! rust -c -00:02:34 v #245 > > -00:02:34 v #246 > > "a-a" -00:02:34 v #247 > > |> sm'.to_std_string -00:02:34 v #248 > > |> is_valid_alias -00:02:34 v #249 > > |> _assert_eq true -00:03:33 v #250 > > -00:03:33 v #251 > > ── [ 59.11s - return value ] ─────────────────────────────────────────────────── -00:03:33 v #252 > > │ -00:03:33 v #253 > > │ 00:00:06 i #2 near_workspaces.print_usd / { retry = 1; -00:03:33 v #254 > > total_gas_burnt_usd = +0.000825; total_gas_burnt = 1234496381800 } -00:03:33 v #255 > > │ 00:00:06 i #3 near_workspaces.print_usd / outcome / { -00:03:33 v #256 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; -00:03:33 v #257 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } -00:03:33 v #258 > > │ 00:00:06 i #4 near_workspaces.print_usd / outcome / { -00:03:33 v #259 > > is_success = true; gas_burnt_usd = +0.000619; tokens_burnt_usd = +0.000619; -00:03:33 v #260 > > gas_burnt = 926414522460; tokens_burnt = 92641452246000000000 } -00:03:33 v #261 > > │ 00:00:06 w #5 spiral_wasm.run / Error error / { retry = -00:03:33 v #262 > > 1; error = "{ receipt_outcomes_len = 1; retry = 1; receipt_failures = [] }" } -00:03:33 v #263 > > │ -00:03:33 v #264 > > │ -00:03:33 v #265 > > │ -00:03:33 v #266 > > │ 00:00:13 i #8 near_workspaces.print_usd / { retry = 2; -00:03:33 v #267 > > total_gas_burnt_usd = +0.000825; total_gas_burnt = 1234496381800 } -00:03:33 v #268 > > │ 00:00:13 i #9 near_workspaces.print_usd / outcome / { -00:03:33 v #269 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; -00:03:33 v #270 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } -00:03:33 v #271 > > │ 00:00:13 i #10 near_workspaces.print_usd / outcome / { -00:03:33 v #272 > > is_success = true; gas_burnt_usd = +0.000619; tokens_burnt_usd = +0.000619; -00:03:33 v #273 > > gas_burnt = 926414522460; tokens_burnt = 92641452246000000000 } -00:03:33 v #274 > > │ 00:00:13 w #11 spiral_wasm.run / Error error / { retry -00:03:33 v #275 > > = 2; error = "{ receipt_outcomes_len = 1; retry = 2; receipt_failures = [] }" } -00:03:33 v #276 > > │ -00:03:33 v #277 > > │ -00:03:33 v #278 > > │ -00:03:33 v #279 > > │ 00:00:19 i #14 near_workspaces.print_usd / { retry = 3; -00:03:33 v #280 > > total_gas_burnt_usd = +0.000825; total_gas_burnt = 12...error = "{ -00:03:33 v #281 > > receipt_outcomes_len = 1; retry = 5; receipt_failures = [] }" } -00:03:33 v #282 > > │ -00:03:33 v #283 > > │ -00:03:33 v #284 > > │ -00:03:33 v #285 > > │ 00:00:39 i #32 near_workspaces.print_usd / { retry = 6; -00:03:33 v #286 > > total_gas_burnt_usd = +0.000825; total_gas_burnt = 1234496381800 } -00:03:33 v #287 > > │ 00:00:39 i #33 near_workspaces.print_usd / outcome / { -00:03:33 v #288 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; -00:03:33 v #289 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } -00:03:33 v #290 > > │ 00:00:39 i #34 near_workspaces.print_usd / outcome / { -00:03:33 v #291 > > is_success = true; gas_burnt_usd = +0.000619; tokens_burnt_usd = +0.000619; -00:03:33 v #292 > > gas_burnt = 926414522460; tokens_burnt = 92641452246000000000 } -00:03:33 v #293 > > │ 00:00:39 w #35 spiral_wasm.run / Error error / { retry -00:03:33 v #294 > > = 6; error = "{ receipt_outcomes_len = 1; retry = 6; receipt_failures = [] }" } -00:03:33 v #295 > > │ -00:03:33 v #296 > > │ -00:03:33 v #297 > > │ -00:03:33 v #298 > > │ 00:00:45 i #38 near_workspaces.print_usd / { retry = 7; -00:03:33 v #299 > > total_gas_burnt_usd = +0.000974; total_gas_burnt = 1457678944300 } -00:03:33 v #300 > > │ 00:00:45 i #39 near_workspaces.print_usd / outcome / { -00:03:33 v #301 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; -00:03:33 v #302 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } -00:03:33 v #303 > > │ 00:00:45 i #40 near_workspaces.print_usd / outcome / { -00:03:33 v #304 > > is_success = true; gas_burnt_usd = +0.000619; tokens_burnt_usd = +0.000619; -00:03:33 v #305 > > gas_burnt = 926414522460; tokens_burnt = 92641452246000000000 } -00:03:33 v #306 > > │ 00:00:45 i #41 near_workspaces.print_usd / outcome / { -00:03:33 v #307 > > is_success = true; gas_burnt_usd = +0.000149; tokens_burnt_usd = +0.000000; -00:03:33 v #308 > > gas_burnt = 223182562500; tokens_burnt = 0 } -00:03:33 v #309 > > │ -00:03:33 v #310 > > -00:03:33 v #311 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:33 v #312 > > │ ### generate_cid -00:03:33 v #313 > > -00:03:33 v #314 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:33 v #315 > > inl generate_cid (content : am'.vec u8) : sm'.std_string = -00:03:33 v #316 > > !\($'" fn encode_u64(value: u64) -> Vec<u8> { //"') : () -00:03:33 v #317 > > !\($'" let mut buffer = unsigned_varint::encode::u64_buffer(); //"') : () -00:03:33 v #318 > > !\($'" unsigned_varint::encode::u64(value, &mut buffer).to_vec() //"') : -00:03:33 v #319 > > () -00:03:33 v #320 > > !\($'" } //"') : () -00:03:33 v #321 > > -00:03:33 v #322 > > !\($'" fn sha256_hash(content: &[[u8]]) -> Vec<u8> { //"') : () -00:03:33 v #323 > > !\($'" let mut hasher: sha2::Sha256 = sha2::Digest::new(); //"') : () -00:03:33 v #324 > > !\($'" sha2::Digest::update(&mut hasher, content); //"') : () -00:03:33 v #325 > > !\($'" sha2::Digest::finalize(hasher).to_vec() //"') : () -00:03:33 v #326 > > !\($'" } //"') : () -00:03:33 v #327 > > -00:03:33 v #328 > > !\($'" let version: u8 = 1; //"') : () -00:03:33 v #329 > > !\($'" let codec_raw: u64 = 0x55; //"') : () -00:03:33 v #330 > > -00:03:33 v #331 > > !\($'" let codec_bytes = encode_u64(codec_raw); //"') : () -00:03:33 v #332 > > !\($'" let hash_result = sha256_hash(&!content); //"') : () -00:03:33 v #333 > > !\($'" let multihash = std::iter::once(0x12) //"') : () -00:03:33 v #334 > > !\($'" .chain(std::iter::once(32)) //"') : () -00:03:33 v #335 > > !\($'" .chain(hash_result.into_iter()) //"') : () -00:03:33 v #336 > > !\($'" .collect(); //"') : () -00:03:33 v #337 > > !\($'" let cid_bytes = [[vec\![[version]], codec_bytes, -00:03:33 v #338 > > multihash]].concat(); //"') : () -00:03:33 v #339 > > !\($'" let result = multibase::encode(multibase::Base::Base32Lower, -00:03:33 v #340 > > &cid_bytes); //"') : () -00:03:33 v #341 > > !\($'"result"') -00:03:33 v #342 > > -00:03:33 v #343 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:33 v #344 > > //// test -00:03:33 v #345 > > ///! rust -c -d multibase sha2 unsigned-varint -00:03:33 v #346 > > -00:03:33 v #347 > > ;[[]] -00:03:33 v #348 > > |> am'.to_vec -00:03:33 v #349 > > |> generate_cid -00:03:33 v #350 > > |> sm'.from_std_string -00:03:33 v #351 > > |> _assert_eq "bafkreihdwdcefgh4dqkjv67uzcmw7ojee6xedzdetojuzjevtenxquvyku" -00:03:44 v #352 > > -00:03:44 v #353 > > ── [ 11.36s - return value ] ─────────────────────────────────────────────────── -00:03:44 v #354 > > │ -00:03:44 v #355 > > │ 00:00:06 i #2 near_workspaces.print_usd / { retry = 1; -00:03:44 v #356 > > total_gas_burnt_usd = +0.001026; total_gas_burnt = 1535357206279 } -00:03:44 v #357 > > │ 00:00:06 i #3 near_workspaces.print_usd / outcome / { -00:03:44 v #358 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; -00:03:44 v #359 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } -00:03:44 v #360 > > │ 00:00:06 i #4 near_workspaces.print_usd / outcome / { -00:03:44 v #361 > > is_success = true; gas_burnt_usd = +0.000671; tokens_burnt_usd = +0.000671; -00:03:44 v #362 > > gas_burnt = 1004092784439; tokens_burnt = 100409278443900000000 } -00:03:44 v #363 > > │ 00:00:06 i #5 near_workspaces.print_usd / outcome / { -00:03:44 v #364 > > is_success = true; gas_burnt_usd = +0.000149; tokens_burnt_usd = +0.000000; -00:03:44 v #365 > > gas_burnt = 223182562500; tokens_burnt = 0 } -00:03:44 v #366 > > │ -00:03:44 v #367 > > -00:03:44 v #368 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:03:44 v #369 > > │ ### claim_alias -00:03:44 v #370 > > -00:03:44 v #371 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:44 v #372 > > inl claim_alias (state : rust.ref (rust.mut' state)) (alias : sm'.std_string) : -00:03:44 v #373 > > () = -00:03:44 v #374 > > inl account_set : rust.ref (rust.mut' (near.iterable_set near.account_id)) = -00:03:44 v #375 > > !\($'$"&mut !state.1"') -00:03:44 v #376 > > -00:03:44 v #377 > > inl alias_set : rust.ref (rust.mut' (near.iterable_set sm'.std_string)) = -00:03:44 v #378 > > !\($'$"&mut !state.2"') -00:03:44 v #379 > > -00:03:44 v #380 > > inl account_map : rust.ref (rust.mut' (near.lookup_map near.account_id -00:03:44 v #381 > > sm'.std_string)) = -00:03:44 v #382 > > !\($'$"&mut !state.3"') -00:03:44 v #383 > > -00:03:44 v #384 > > inl alias_map : rust.ref (rust.mut' (near.lookup_map sm'.std_string -00:03:44 v #385 > > (mapm.hash_map near.account_id (u64 * u32)))) = -00:03:44 v #386 > > !\($'$"&mut !state.4"') -00:03:44 v #387 > > -00:03:44 v #388 > > inl signer_account_id = near.signer_account_id () -00:03:44 v #389 > > inl predecessor_account_id = near.predecessor_account_id () -00:03:44 v #390 > > inl block_timestamp = near.block_timestamp () -00:03:44 v #391 > > -00:03:44 v #392 > > trace Debug -00:03:44 v #393 > > fun () => "chat_contract.claim_alias" -00:03:44 v #394 > > fun () => { -00:03:44 v #395 > > alias -00:03:44 v #396 > > block_timestamp -00:03:44 v #397 > > signer_account_id = signer_account_id |> sm'.to_string' -00:03:44 v #398 > > predecessor_account_id = predecessor_account_id |> sm'.to_string' -00:03:44 v #399 > > } -00:03:44 v #400 > > -00:03:44 v #401 > > if alias |> is_valid_alias |> not -00:03:44 v #402 > > then near.panic_str "chat_contract.claim_alias / invalid alias" . true -00:03:44 v #403 > > else false -00:03:44 v #404 > > |> ignore -00:03:44 v #405 > > -00:03:44 v #406 > > inl account_alias = -00:03:44 v #407 > > account_map -00:03:44 v #408 > > |> near.lookup_get signer_account_id -00:03:44 v #409 > > |> optionm'.cloned -00:03:44 v #410 > > -00:03:44 v #411 > > match account_alias |> optionm'.unbox with -00:03:44 v #412 > > | Some account_alias when account_alias =. alias => -00:03:44 v #413 > > trace Warning -00:03:44 v #414 > > fun () => "chat_contract.claim_alias / alias already claimed" -00:03:44 v #415 > > fun () => { account_alias = account_alias |> sm'.format_debug } -00:03:44 v #416 > > | account_alias' => -00:03:44 v #417 > > trace Debug -00:03:44 v #418 > > fun () => "chat_contract.claim_alias" -00:03:44 v #419 > > fun () => { account_alias = account_alias |> sm'.format_debug } -00:03:44 v #420 > > -00:03:44 v #421 > > match account_alias' with -00:03:44 v #422 > > | Some account_alias => -00:03:44 v #423 > > !\($'" !alias_map //"') : () -00:03:44 v #424 > > !\($'" .get_mut(&!account_alias) //"') : () -00:03:44 v #425 > > !\($'" .unwrap() //"') : () -00:03:44 v #426 > > !\\(signer_account_id, $'" .remove(&$0); //"') : () -00:03:44 v #427 > > | None => () -00:03:44 v #428 > > -00:03:44 v #429 > > !\\((signer_account_id, alias), $'" !account_map.insert($0.clone(), -00:03:44 v #430 > > $1.clone()); //"') : () -00:03:44 v #431 > > -00:03:44 v #432 > > account_set |> near.iterable_set_insert signer_account_id |> ignore -00:03:44 v #433 > > alias_set |> near.iterable_set_insert alias |> ignore -00:03:44 v #434 > > -00:03:44 v #435 > > !\\(alias, $'" let new_alias_account_map = match !alias_map.get(&$0) { -00:03:44 v #436 > > //"') : () -00:03:44 v #437 > > !\($'" None => { //"') : () -00:03:44 v #438 > > !\($'" let mut new_map = std::collections::HashMap::new(); //"') : -00:03:44 v #439 > > () -00:03:44 v #440 > > !\\((signer_account_id, block_timestamp), $'" new_map.insert($0, -00:03:44 v #441 > > ($1, 0u32)); //"') : () -00:03:44 v #442 > > !\($'" new_map //"') : () -00:03:44 v #443 > > !\($'" } //"') : () -00:03:44 v #444 > > !\($'" Some(accounts) => { //"') : () -00:03:44 v #445 > > !\($'" let mut accounts_vec = accounts.iter().collect::<Vec<_>>(); -00:03:44 v #446 > > //"') : () -00:03:44 v #447 > > !\($'" accounts_vec.sort_unstable_by_key(|(_, (_, index))| index); -00:03:44 v #448 > > //"') : () -00:03:44 v #449 > > !\($'" let mut new_map = accounts_vec //"') : () -00:03:44 v #450 > > !\($'" .iter() //"') : () -00:03:44 v #451 > > !\($'" .enumerate() //"') : () -00:03:44 v #452 > > !\($'" .map(|(i, (signer_account_id, (timestamp, _)))| { //"') : -00:03:44 v #453 > > () -00:03:44 v #454 > > !\($'" ((*signer_account_id).clone(), (*timestamp, i as u32)) -00:03:44 v #455 > > //"') : () -00:03:44 v #456 > > !\($'" }) //"') : () -00:03:44 v #457 > > !\($'" .collect::<std::collections::HashMap<_, _>>(); //"') : () -00:03:44 v #458 > > !\\(signer_account_id, $'" new_map.insert($0, (!block_timestamp, -00:03:44 v #459 > > accounts_vec.len() as u32)); //"') : () -00:03:44 v #460 > > !\($'" new_map //"') : () -00:03:44 v #461 > > !\($'" } //"') : () -00:03:44 v #462 > > !\($'" }; //"') : () -00:03:44 v #463 > > -00:03:44 v #464 > > !\\(alias, $'" !alias_map.insert($0, new_alias_account_map); //"') : () -00:03:45 v #465 > > -00:03:45 v #466 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:03:45 v #467 > > //// test -00:03:45 v #468 > > ///! rust -c -00:03:45 v #469 > > -00:03:45 v #470 > > inl state = new () -00:03:45 v #471 > > inl version = state.version -00:03:45 v #472 > > inl account_set = state.account_set -00:03:45 v #473 > > inl alias_set = state.alias_set -00:03:45 v #474 > > inl account_map = state.account_map -00:03:45 v #475 > > inl alias_map = state.alias_map -00:03:45 v #476 > > inl version = join version -00:03:45 v #477 > > inl account_set = join account_set -00:03:45 v #478 > > inl alias_set = join alias_set -00:03:45 v #479 > > inl account_map = join account_map -00:03:45 v #480 > > inl alias_map = join alias_map -00:03:45 v #481 > > inl state : rust.ref (rust.mut' state) = -00:03:45 v #482 > > !\\( -00:03:45 v #483 > > version, -00:03:45 v #484 > > $'$"&mut ($0, !account_set, !alias_set, !account_map, !alias_map)"' -00:03:45 v #485 > > ) -00:03:45 v #486 > > -00:03:45 v #487 > > "alias1" -00:03:45 v #488 > > |> sm'.to_std_string -00:03:45 v #489 > > |> claim_alias state -00:03:45 v #490 > > -00:03:45 v #491 > > trace Verbose -00:03:45 v #492 > > fun () => "chat_contract" -00:03:45 v #493 > > fun () => { state = state |> sm'.format_debug } -00:03:45 v #494 > > -00:03:45 v #495 > > trace Debug (fun () => "") id -00:04:20 v #496 > > -00:04:20 v #497 > > ── [ 35.37s - return value ] ─────────────────────────────────────────────────── -00:04:20 v #498 > > │ 00:00:00 d #1 chat_contract.claim_alias / { alias = -00:04:20 v #499 > > "alias1"; block_timestamp = 1736789764855799431; signer_account_id = -00:04:20 v #500 > > "dev-20250113173603-57613786408019"; predecessor_account_id = -00:04:20 v #501 > > "dev-20250113173603-57613786408019" } -00:04:20 v #502 > > │ 00:00:00 d #2 chat_contract.claim_alias / { -00:04:20 v #503 > > account_alias = None } -00:04:20 v #504 > > │ 00:00:00 v #3 chat_contract / { state = (2, IterableSet -00:04:20 v #505 > > { elements: Vector { len: 1, prefix: [97, 99, 99, 111, 117, 110, 116, 95, 115, -00:04:20 v #506 > > 101, 116, 118] }, index: LookupMap { prefix: [97, 99, 99, 111, 117, 110, 116, -00:04:20 v #507 > > 95, 115, 101, 116, 109] } }, IterableSet { elements: Vector { len: 1, prefix: -00:04:20 v #508 > > [97, 108, 105, 97, 115, 95, 115, 101, 116, 118] }, index: LookupMap { prefix: -00:04:20 v #509 > > [97, 108, 105, 97, 115, 95, 115, 101, 116, 109] } }, LookupMap { prefix: [97, -00:04:20 v #510 > > 99, 99, 111, 117, 110, 116, 95, 109, 97, 112] }, LookupMap { prefix: [97, 108, -00:04:20 v #511 > > 105, 97, 115, 95, 109, 97, 112] }) } -00:04:20 v #512 > > │ -00:04:20 v #513 > > │ 00:00:06 i #2 near_workspaces.print_usd / { retry = 1; -00:04:20 v #514 > > total_gas_burnt_usd = +0.002517; total_gas_burnt = 3768568779729 } -00:04:20 v #515 > > │ 00:00:06 i #3 near_workspaces.print_usd / outcome / { -00:04:20 v #516 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; -00:04:20 v #517 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } -00:04:20 v #518 > > │ 00:00:06 i #4 near_workspaces.print_usd / outcome / { -00:04:20 v #519 > > is_success = true; gas_burnt_usd = +0.002312; tokens_burnt_usd = +0.002312; -00:04:20 v #520 > > gas_burnt = 3460486920389; tokens_burnt = 346048692038900000000 } -00:04:20 v #521 > > │ 00:00:06 w #5 spiral_wasm.run / Error error / { retry = -00:04:20 v #522 > > 1; error...igner_account_id = "dev-20250113173610-75607531661986"; -00:04:20 v #523 > > predecessor_account_id = "dev-20250113173610-75607531661986" } -00:04:20 v #524 > > │ 00:00:00 d #2 chat_contract.claim_alias / { -00:04:20 v #525 > > account_alias = None } -00:04:20 v #526 > > │ 00:00:00 v #3 chat_contract / { state = (2, IterableSet -00:04:20 v #527 > > { elements: Vector { len: 1, prefix: [97, 99, 99, 111, 117, 110, 116, 95, 115, -00:04:20 v #528 > > 101, 116, 118] }, index: LookupMap { prefix: [97, 99, 99, 111, 117, 110, 116, -00:04:20 v #529 > > 95, 115, 101, 116, 109] } }, IterableSet { elements: Vector { len: 1, prefix: -00:04:20 v #530 > > [97, 108, 105, 97, 115, 95, 115, 101, 116, 118] }, index: LookupMap { prefix: -00:04:20 v #531 > > [97, 108, 105, 97, 115, 95, 115, 101, 116, 109] } }, LookupMap { prefix: [97, -00:04:20 v #532 > > 99, 99, 111, 117, 110, 116, 95, 109, 97, 112] }, LookupMap { prefix: [97, 108, -00:04:20 v #533 > > 105, 97, 115, 95, 109, 97, 112] }) } -00:04:20 v #534 > > │ -00:04:20 v #535 > > │ 00:00:13 i #8 near_workspaces.print_usd / { retry = 2; -00:04:20 v #536 > > total_gas_burnt_usd = +0.002666; total_gas_burnt = 3991751342229 } -00:04:20 v #537 > > │ 00:00:13 i #9 near_workspaces.print_usd / outcome / { -00:04:20 v #538 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; -00:04:20 v #539 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } -00:04:20 v #540 > > │ 00:00:13 i #10 near_workspaces.print_usd / outcome / { -00:04:20 v #541 > > is_success = true; gas_burnt_usd = +0.002312; tokens_burnt_usd = +0.002312; -00:04:20 v #542 > > gas_burnt = 3460486920389; tokens_burnt = 346048692038900000000 } -00:04:20 v #543 > > │ 00:00:13 i #11 near_workspaces.print_usd / outcome / { -00:04:20 v #544 > > is_success = true; gas_burnt_usd = +0.000149; tokens_burnt_usd = +0.000000; -00:04:20 v #545 > > gas_burnt = 223182562500; tokens_burnt = 0 } -00:04:20 v #546 > > │ -00:04:20 v #547 > > -00:04:20 v #548 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:04:20 v #549 > > //// test -00:04:20 v #550 > > ///! rust \"-c=-e=\\\"chat_contract.claim_alias / invalid alias\\\"\" -00:04:20 v #551 > > -00:04:20 v #552 > > "" -00:04:20 v #553 > > |> sm'.to_std_string -00:04:20 v #554 > > |> claim_alias ( -00:04:20 v #555 > > inl state = new () -00:04:20 v #556 > > inl version = state.version -00:04:20 v #557 > > inl account_set = state.account_set -00:04:20 v #558 > > inl alias_set = state.alias_set -00:04:20 v #559 > > inl account_map = state.account_map -00:04:20 v #560 > > inl alias_map = state.alias_map -00:04:20 v #561 > > !\\(version, $'$"&mut ($0, !account_set, !alias_set, !account_map, -00:04:20 v #562 > > !alias_map)"') -00:04:20 v #563 > > ) -00:04:20 v #564 > > trace Debug (fun () => "") id -00:04:51 v #565 > > -00:04:51 v #566 > > ── [ 30.21s - return value ] ─────────────────────────────────────────────────── -00:04:51 v #567 > > │ -00:04:51 v #568 > > │ 00:00:08 i #2 near_workspaces.print_usd / { retry = 1; -00:04:51 v #569 > > total_gas_burnt_usd = +0.001293; total_gas_burnt = 1935045289911 } -00:04:51 v #570 > > │ 00:00:08 i #3 near_workspaces.print_usd / outcome / { -00:04:51 v #571 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; -00:04:51 v #572 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } -00:04:51 v #573 > > │ 00:00:08 i #4 near_workspaces.print_usd / outcome / { -00:04:51 v #574 > > is_success = false; gas_burnt_usd = +0.000938; tokens_burnt_usd = +0.000938; -00:04:51 v #575 > > gas_burnt = 1403780868071; tokens_burnt = 140378086807100000000 } -00:04:51 v #576 > > │ 00:00:08 i #5 near_workspaces.print_usd / outcome / { -00:04:51 v #577 > > is_success = true; gas_burnt_usd = +0.000149; tokens_burnt_usd = +0.000000; -00:04:51 v #578 > > gas_burnt = 223182562500; tokens_burnt = 0 } -00:04:51 v #579 > > │ 00:00:08 c #6 spiral_wasm.run / Ok (Some error) / { -00:04:51 v #580 > > retry = 1; error = { receipt_outcomes_len = 2; retry = 1; receipt_failures = [ -00:04:51 v #581 > > │ ExecutionOutcome { -00:04:51 v #582 > > │ transaction_hash: -00:04:51 v #583 > > C2hESqHg2JWZ88D51w3FLyvdK1kbHjRc8CEtbqaNYejW, -00:04:51 v #584 > > │ block_hash: -00:04:51 v #585 > > 4vGzDgACPyXhv7JKWZyUoDoUBYu2tRRU7NLT3t2HhBSM, -00:04:51 v #586 > > │ logs: [], -00:04:51 v #587 > > │ receipt_ids: [ -00:04:51 v #588 > > │ BG1F58qxykyaMmGPPnn3xhbDJhmkcXSQPvWPtixgonrY, -00:04:51 v #589 > > │ ], -00:04:51 v #590 > > │ gas_burnt: NearGas { -00:04:51 v #591 > > │ inner: 1403780868071, -00:04:51 v #592 > > │ }, -00:04:51 v #593 > > │ tokens_burnt: NearToken { -00:04:51 v #594 > > │ inner: 140378086807100000000, -00:04:51 v #595 > > │ }, -00:04:51 v #596 > > │ executor_id: AccountId( -00:04:51 v #597 > > │ "dev-20250113173639-48897415843398", -00:04:51 v #598 > > │ ), -00:04:51 v #599 > > │ status: Failure(ActionError(ActionError { index: -00:04:51 v #600 > > Some(0), kind: FunctionCallError(ExecutionError("Smart contract panicked: -00:04:51 v #601 > > chat_contract.claim_alias / invalid alias")) })), -00:04:51 v #602 > > │ }, -00:04:51 v #603 > > │ ] } } -00:04:51 v #604 > > │ -00:04:51 v #605 > > -00:04:51 v #606 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:04:51 v #607 > > //// test -00:04:51 v #608 > > ///! rust -cd borsh -00:04:51 v #609 > > -00:04:51 v #610 > > inl state' = new () -00:04:51 v #611 > > inl state = state' -00:04:51 v #612 > > inl version = state.version -00:04:51 v #613 > > inl account_set = state.account_set -00:04:51 v #614 > > inl alias_set = state.alias_set -00:04:51 v #615 > > inl account_map = state.account_map -00:04:51 v #616 > > inl alias_map = state.alias_map -00:04:51 v #617 > > inl version = join version -00:04:51 v #618 > > inl account_set = join account_set -00:04:51 v #619 > > inl alias_set = join alias_set -00:04:51 v #620 > > inl account_map = join account_map -00:04:51 v #621 > > inl alias_map = join alias_map -00:04:51 v #622 > > -00:04:51 v #623 > > inl state = -00:04:51 v #624 > > !\\( -00:04:51 v #625 > > (version, account_set, alias_set), -00:04:51 v #626 > > $'$"&mut ($0, $1, $2, !account_map, !alias_map)"' -00:04:51 v #627 > > ) -00:04:51 v #628 > > -00:04:51 v #629 > > "alias1" -00:04:51 v #630 > > |> sm'.to_std_string -00:04:51 v #631 > > |> claim_alias state -00:04:51 v #632 > > -00:04:51 v #633 > > "alias1" -00:04:51 v #634 > > |> sm'.to_std_string -00:04:51 v #635 > > |> claim_alias state -00:04:51 v #636 > > -00:04:51 v #637 > > "alias1" -00:04:51 v #638 > > |> sm'.to_std_string -00:04:51 v #639 > > |> claim_alias state -00:04:51 v #640 > > -00:04:51 v #641 > > inl account_set' : rust.ref (near.iterable_set near.account_id) = -00:04:51 v #642 > > !\($'$"&!state.1"') -00:04:51 v #643 > > -00:04:51 v #644 > > inl alias_set' : rust.ref (near.iterable_set sm'.std_string) = -00:04:51 v #645 > > !\($'$"&!state.2"') -00:04:51 v #646 > > -00:04:51 v #647 > > inl account_set' = -00:04:51 v #648 > > account_set' -00:04:51 v #649 > > |> iter.iter_ref'' -00:04:51 v #650 > > |> iter.cloned -00:04:51 v #651 > > |> iter_collect -00:04:51 v #652 > > -00:04:51 v #653 > > inl alias_set' = -00:04:51 v #654 > > alias_set' -00:04:51 v #655 > > |> iter.iter_ref'' -00:04:51 v #656 > > |> iter.cloned -00:04:51 v #657 > > |> iter_collect -00:04:51 v #658 > > |> am'.vec_map sm'.from_std_string -00:04:51 v #659 > > -00:04:51 v #660 > > trace Verbose -00:04:51 v #661 > > fun () => "chat_contract" -00:04:51 v #662 > > fun () => { -00:04:51 v #663 > > account_set' = account_set' |> sm'.format_debug -00:04:51 v #664 > > alias_set' = alias_set' |> sm'.format_debug -00:04:51 v #665 > > state = state |> sm'.format_debug -00:04:51 v #666 > > } -00:04:51 v #667 > > -00:04:51 v #668 > > trace Debug (fun () => "") id -00:04:51 v #669 > > -00:04:51 v #670 > > account_set' -00:04:51 v #671 > > |> am'.vec_len -00:04:51 v #672 > > |> convert -00:04:51 v #673 > > |> _assert_eq 1u32 -00:04:51 v #674 > > -00:04:51 v #675 > > alias_set' -00:04:51 v #676 > > |> am'.from_vec_base -00:04:51 v #677 > > |> _assert_eq' ;[[ "alias1" ]] -00:05:28 v #678 > > -00:05:28 v #679 > > ── [ 37.09s - return value ] ─────────────────────────────────────────────────── -00:05:28 v #680 > > │ 00:00:00 d #1 chat_contract.claim_alias / { alias = -00:05:28 v #681 > > "alias1"; block_timestamp = 1736789832047826270; signer_account_id = -00:05:28 v #682 > > "dev-20250113173710-49164096367862"; predecessor_account_id = -00:05:28 v #683 > > "dev-20250113173710-49164096367862" } -00:05:28 v #684 > > │ 00:00:00 d #2 chat_contract.claim_alias / { -00:05:28 v #685 > > account_alias = None } -00:05:28 v #686 > > │ 00:00:00 d #3 chat_contract.claim_alias / { alias = -00:05:28 v #687 > > "alias1"; block_timestamp = 1736789832047826270; signer_account_id = -00:05:28 v #688 > > "dev-20250113173710-49164096367862"; predecessor_account_id = -00:05:28 v #689 > > "dev-20250113173710-49164096367862" } -00:05:28 v #690 > > │ 00:00:00 d #4 chat_contract.claim_alias / { -00:05:28 v #691 > > account_alias = Some("alias1") } -00:05:28 v #692 > > │ 00:00:00 d #5 chat_contract.claim_alias / { alias = -00:05:28 v #693 > > "alias1"; block_timestamp = 1736789832047826270; signer_account_id = -00:05:28 v #694 > > "dev-20250113173710-49164096367862"; predecessor_account_id = -00:05:28 v #695 > > "dev-20250113173710-49164096367862" } -00:05:28 v #696 > > │ 00:00:00 d #6 chat_contract.claim_alias / { -00:05:28 v #697 > > account_alias = Some("alias1") } -00:05:28 v #698 > > │ 00:00:00 v #7 chat_contract / { account_set' = -00:05:28 v #699 > > [AccountId("dev-20250113173710-49164096367862")]; alias_set' = ["alias1"]; state -00:05:28 v #700 > > = (2, IterableSet { elements: Vector { len: 1, prefix: [97, 99, 99, 111, 117, -00:05:28 v #701 > > 110, 116, 95, 115, 101, 116, 118] }, index: LookupMap { prefix: [97, 99, 99, -00:05:28 v #702 > > 111, 117, 110, 116, 95, 115, 101, 116, 109] } }, IterableSet { elements: Vector -00:05:28 v #703 > > { len: 1, prefix: [97, 108, 105, 97, 115, 95, 115, 101, 116, 118] }, index: -00:05:28 v #704 > > LookupMap { prefix: [97, 108, 105, 97, 115, 95, 115, 101, 116, 109] } }, -00:05:28 v #705 > > LookupMap { prefix: [97, 99, 99, ...-85484927381785" } -00:05:28 v #706 > > │ 00:00:00 d #6 chat_contract.claim_alias / { -00:05:28 v #707 > > account_alias = Some("alias1") } -00:05:28 v #708 > > │ 00:00:00 v #7 chat_contract / { account_set' = -00:05:28 v #709 > > [AccountId("dev-20250113173717-85484927381785")]; alias_set' = ["alias1"]; state -00:05:28 v #710 > > = (2, IterableSet { elements: Vector { len: 1, prefix: [97, 99, 99, 111, 117, -00:05:28 v #711 > > 110, 116, 95, 115, 101, 116, 118] }, index: LookupMap { prefix: [97, 99, 99, -00:05:28 v #712 > > 111, 117, 110, 116, 95, 115, 101, 116, 109] } }, IterableSet { elements: Vector -00:05:28 v #713 > > { len: 1, prefix: [97, 108, 105, 97, 115, 95, 115, 101, 116, 118] }, index: -00:05:28 v #714 > > LookupMap { prefix: [97, 108, 105, 97, 115, 95, 115, 101, 116, 109] } }, -00:05:28 v #715 > > LookupMap { prefix: [97, 99, 99, 111, 117, 110, 116, 95, 109, 97, 112] }, -00:05:28 v #716 > > LookupMap { prefix: [97, 108, 105, 97, 115, 95, 109, 97, 112] }) } -00:05:28 v #717 > > │ -00:05:28 v #718 > > │ 00:00:13 i #8 near_workspaces.print_usd / { retry = 2; -00:05:28 v #719 > > total_gas_burnt_usd = +0.004480; total_gas_burnt = 6706049139764 } -00:05:28 v #720 > > │ 00:00:13 i #9 near_workspaces.print_usd / outcome / { -00:05:28 v #721 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; -00:05:28 v #722 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } -00:05:28 v #723 > > │ 00:00:13 i #10 near_workspaces.print_usd / outcome / { -00:05:28 v #724 > > is_success = true; gas_burnt_usd = +0.004125; tokens_burnt_usd = +0.004125; -00:05:28 v #725 > > gas_burnt = 6174784717924; tokens_burnt = 617478471792400000000 } -00:05:28 v #726 > > │ 00:00:13 i #11 near_workspaces.print_usd / outcome / { -00:05:28 v #727 > > is_success = true; gas_burnt_usd = +0.000149; tokens_burnt_usd = +0.000000; -00:05:28 v #728 > > gas_burnt = 223182562500; tokens_burnt = 0 } -00:05:28 v #729 > > │ -00:05:28 v #730 > > -00:05:28 v #731 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:28 v #732 > > │ ### get_account_info -00:05:28 v #733 > > -00:05:28 v #734 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:28 v #735 > > inl get_account_info -00:05:28 v #736 > > (state : rust.ref state) -00:05:28 v #737 > > (account_id : near.account_id) -00:05:28 v #738 > > : optionm'.option' (sm'.std_string * (u64 * u32)) -00:05:28 v #739 > > = -00:05:28 v #740 > > inl account_map : rust.ref (near.lookup_map near.account_id sm'.std_string) -00:05:28 v #741 > > = -00:05:28 v #742 > > !\($'$"&!state.3"') -00:05:28 v #743 > > -00:05:28 v #744 > > inl alias_map : rust.ref (near.lookup_map sm'.std_string (mapm.hash_map -00:05:28 v #745 > > near.account_id (u64 * u32))) = -00:05:28 v #746 > > !\($'$"&!state.4"') -00:05:28 v #747 > > -00:05:28 v #748 > > !\\(account_id, $'"let result = !account_map.get(&$0).and_then(|alias| { -00:05:28 v #749 > > //"') : () -00:05:28 v #750 > > !\($'" !alias_map //"') : () -00:05:28 v #751 > > !\($'" .get(alias) //"') : () -00:05:28 v #752 > > !\($'" .map(|accounts| { //"') : () -00:05:28 v #753 > > !\($'" let result = (alias.clone(), -00:05:28 v #754 > > *accounts.get(&!account_id).unwrap()); //"') : () -00:05:28 v #755 > > !\($'" (result.0, result.1.0, result.1.1) //"') : () -00:05:28 v #756 > > !\($'" }) //"') : () -00:05:28 v #757 > > !\($'"}); //"') : () -00:05:28 v #758 > > -00:05:28 v #759 > > inl result = !\($'"result"') -00:05:28 v #760 > > -00:05:28 v #761 > > trace Debug -00:05:28 v #762 > > fun () => "chat_contract.get_account_info" -00:05:28 v #763 > > fun () => { account_id result } -00:05:28 v #764 > > -00:05:28 v #765 > > trace Debug (fun () => "") id -00:05:28 v #766 > > -00:05:28 v #767 > > result -00:05:28 v #768 > > -00:05:28 v #769 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:05:28 v #770 > > │ ### main -00:05:28 v #771 > > -00:05:28 v #772 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:05:28 v #773 > > ///! _ -00:05:28 v #774 > > -00:05:28 v #775 > > inl main () = -00:05:28 v #776 > > !\($'"} //"') : () -00:05:28 v #777 > > -00:05:28 v #778 > > !\($'"#[[near_sdk::near_bindgen]] //"') : () -00:05:28 v #779 > > -00:05:28 v #780 > > !\($'"#[[derive( //"') : () -00:05:28 v #781 > > !\($'" near_sdk::PanicOnDefault, //"') : () -00:05:28 v #782 > > !\($'" borsh::BorshDeserialize, //"') : () -00:05:28 v #783 > > !\($'" borsh::BorshSerialize, //"') : () -00:05:28 v #784 > > !\($'")]] //"') : () -00:05:28 v #785 > > -00:05:28 v #786 > > !\($'"pub struct State ( //"') : () -00:05:28 v #787 > > -00:05:28 v #788 > > !\($'"/*"') : () -00:05:28 v #789 > > (null () : rust.type_emit state) |> ignore -00:05:28 v #790 > > !\($'"*/ )"') : () -00:05:28 v #791 > > -00:05:28 v #792 > > inl new_ () = -00:05:28 v #793 > > !\($'"#[[init]] //"') : () -00:05:28 v #794 > > !\($'"pub fn new() -> Self { // 1"') : () -00:05:28 v #795 > > -00:05:28 v #796 > > (!\($'"true; /*"') : bool) |> ignore -00:05:28 v #797 > > -00:05:28 v #798 > > (null () : rust.type_emit ()) |> ignore -00:05:28 v #799 > > -00:05:28 v #800 > > (!\($'"true; */"') : bool) |> ignore -00:05:28 v #801 > > -00:05:28 v #802 > > inl result = new () -00:05:28 v #803 > > -00:05:28 v #804 > > $'let _result = !result in _result |> (fun x -> -00:05:28 v #805 > > Fable.Core.RustInterop.emitRustExpr x $"Self($0) // x") // 2' : () -00:05:28 v #806 > > -00:05:28 v #807 > > !\($'"} // 2."') : () -00:05:28 v #808 > > -00:05:28 v #809 > > !\($'"} // 1."') : () -00:05:28 v #810 > > -00:05:28 v #811 > > 2 -00:05:28 v #812 > > -00:05:28 v #813 > > inl is_valid_alias () = -00:05:28 v #814 > > !\($'"fn is_valid_alias(alias: String) -> bool { //"') : () -00:05:28 v #815 > > inl alias = !\($'$"alias"') -00:05:28 v #816 > > inl result = alias |> is_valid_alias -00:05:28 v #817 > > $'let _result = !result in _result |> (fun x -> -00:05:28 v #818 > > Fable.Core.RustInterop.emitRustExpr x "$0 }") // 2' : () -00:05:28 v #819 > > !\($'"} //"') : () -00:05:28 v #820 > > 1 -00:05:28 v #821 > > -00:05:28 v #822 > > inl generate_cid () = -00:05:28 v #823 > > !\($'"pub fn generate_cid( //"') : () -00:05:28 v #824 > > !\($'" &self, //"') : () -00:05:28 v #825 > > !\($'" content: Vec<u8>, //"') : () -00:05:28 v #826 > > !\($'") -> String { //"') : () -00:05:28 v #827 > > inl content = !\($'$"content"') -00:05:28 v #828 > > inl result = generate_cid content -00:05:28 v #829 > > $'let _result = !result in _result |> (fun x -> -00:05:28 v #830 > > Fable.Core.RustInterop.emitRustExpr x "$0 }") // 2' : () -00:05:28 v #831 > > !\($'"} //"') : () -00:05:28 v #832 > > 2 -00:05:28 v #833 > > -00:05:28 v #834 > > inl generate_cid_borsh () = -00:05:28 v #835 > > !\($'"#[[result_serializer(borsh)]] //"') : () -00:05:28 v #836 > > !\($'"pub fn generate_cid_borsh( //"') : () -00:05:28 v #837 > > !\($'" &self, //"') : () -00:05:28 v #838 > > !\($'" #[[serializer(borsh)]] content: Vec<u8>, //"') : () -00:05:28 v #839 > > !\($'") -> String { //"') : () -00:05:28 v #840 > > !\($'" self.generate_cid(content) //"') : () -00:05:28 v #841 > > !\($'"} //"') : () -00:05:28 v #842 > > 1 -00:05:28 v #843 > > -00:05:28 v #844 > > inl claim_alias () = -00:05:28 v #845 > > !\($'"pub fn claim_alias( //"') : () -00:05:28 v #846 > > !\($'" &mut self, //"') : () -00:05:28 v #847 > > !\($'" alias: String, //"') : () -00:05:28 v #848 > > !\($'") { //"') : () -00:05:28 v #849 > > -00:05:28 v #850 > > inl state = !\($'$"&mut self.0"') -00:05:28 v #851 > > inl alias = !\($'$"alias"') -00:05:28 v #852 > > -00:05:28 v #853 > > inl result = claim_alias state alias -00:05:28 v #854 > > trace Debug (fun () => "") (join id) -00:05:28 v #855 > > -00:05:28 v #856 > > !\($'"} //"') : () -00:05:28 v #857 > > -00:05:28 v #858 > > !\($'"} //"') : () -00:05:28 v #859 > > -00:05:28 v #860 > > !\($'"} //"') : () -00:05:28 v #861 > > -00:05:28 v #862 > > 3 -00:05:28 v #863 > > -00:05:28 v #864 > > inl get_account_info () = -00:05:28 v #865 > > !\($'"pub fn get_account_info( //"') : () -00:05:28 v #866 > > !\($'" &self, //"') : () -00:05:28 v #867 > > !\($'" account_id: near_sdk::AccountId, //"') : () -00:05:28 v #868 > > !\($'") -> Option<(String, u64, u32)> { //"') : () -00:05:28 v #869 > > -00:05:28 v #870 > > inl state = !\($'$"&self.0"') -00:05:28 v #871 > > inl account_id : near.account_id = !\($'$"account_id"') -00:05:28 v #872 > > -00:05:28 v #873 > > inl result = account_id |> get_account_info state -00:05:28 v #874 > > $'let _result = !result in _result |> (fun x -> -00:05:28 v #875 > > Fable.Core.RustInterop.emitRustExpr x "$0 } // 4") // 3' : () -00:05:28 v #876 > > -00:05:28 v #877 > > !\($'"} // 2"') : () -00:05:28 v #878 > > -00:05:28 v #879 > > !\($'"} // 1"') : () -00:05:28 v #880 > > -00:05:28 v #881 > > 2 -00:05:28 v #882 > > -00:05:28 v #883 > > inl get_alias_map () = -00:05:28 v #884 > > !\($'"pub fn get_alias_map( //"') : () -00:05:28 v #885 > > !\($'" &self, //"') : () -00:05:28 v #886 > > !\($'" alias: String, //"') : () -00:05:28 v #887 > > !\($'") -> Option<std::collections::HashMap<near_sdk::AccountId, (u64, -00:05:28 v #888 > > u32)>> { //"') : () -00:05:28 v #889 > > -00:05:28 v #890 > > inl alias_map : rust.ref (near.lookup_map sm'.std_string (mapm.hash_map -00:05:28 v #891 > > near.account_id (u64 * u32))) = -00:05:28 v #892 > > !\($'$"&self.0.4"') -00:05:28 v #893 > > -00:05:28 v #894 > > inl alias : sm'.std_string = !\($'$"alias"') -00:05:28 v #895 > > -00:05:28 v #896 > > trace Debug -00:05:28 v #897 > > fun () => "chat_contract.get_alias_map" -00:05:28 v #898 > > fun () => { alias } -00:05:28 v #899 > > -00:05:28 v #900 > > trace Debug (fun () => "") (join id) -00:05:28 v #901 > > -00:05:28 v #902 > > !\\(alias, $'" !alias_map.get(&$0).cloned() //"') : () -00:05:28 v #903 > > !\($'"} //"') : () -00:05:28 v #904 > > -00:05:28 v #905 > > !\($'"} //"') : () -00:05:28 v #906 > > -00:05:28 v #907 > > 2 -00:05:28 v #908 > > -00:05:28 v #909 > > inl get_alias_map_borsh () = -00:05:28 v #910 > > !\($'"#[[result_serializer(borsh)]] //"') : () -00:05:28 v #911 > > !\($'"pub fn get_alias_map_borsh( //"') : () -00:05:28 v #912 > > !\($'" &self, //"') : () -00:05:28 v #913 > > !\($'" #[[serializer(borsh)]] alias: String, //"') : () -00:05:28 v #914 > > !\($'") -> Option<std::collections::HashMap<near_sdk::AccountId, (u64, -00:05:28 v #915 > > u32)>> { //"') : () -00:05:28 v #916 > > !\($'" self.get_alias_map(alias) //"') : () -00:05:28 v #917 > > !\($'"} //"') : () -00:05:28 v #918 > > 1 -00:05:28 v #919 > > -00:05:28 v #920 > > inl fns = -00:05:28 v #921 > > [[ -00:05:28 v #922 > > new_ -00:05:28 v #923 > > is_valid_alias -00:05:28 v #924 > > generate_cid -00:05:28 v #925 > > generate_cid_borsh -00:05:28 v #926 > > claim_alias -00:05:28 v #927 > > get_account_info -00:05:28 v #928 > > get_alias_map -00:05:28 v #929 > > get_alias_map_borsh -00:05:28 v #930 > > ]] -00:05:28 v #931 > > -00:05:28 v #932 > > inl rec loop acc fns i = -00:05:28 v #933 > > match fns with -00:05:28 v #934 > > | [[]] => acc -00:05:28 v #935 > > | x :: xs => -00:05:28 v #936 > > !\($'"#[[near_sdk::near_bindgen]] //"') : () -00:05:28 v #937 > > !\($'"impl State { //"') : () -00:05:28 v #938 > > inl n = x () -00:05:28 v #939 > > !\($'"} /* c"') : () -00:05:28 v #940 > > inl rec loop' i' = -00:05:28 v #941 > > if i' <> 1 // <= n -00:05:28 v #942 > > then (!\($'"true; */ // ???? / i: !i / i\': !i' / acc: !acc / n: -00:05:28 v #943 > > !n"') : bool) |> ignore -00:05:28 v #944 > > else -00:05:28 v #945 > > (!\($'"true; // ??? / i: !i / i\': !i' / acc: !acc / n: -00:05:28 v #946 > > !n"') : bool) |> ignore -00:05:28 v #947 > > loop' (i' + 1) -00:05:28 v #948 > > loop' 1u8 -00:05:28 v #949 > > loop (acc + n) xs (i + 1) -00:05:28 v #950 > > inl n = loop 0u8 fns 1u8 -00:05:28 v #951 > > -00:05:28 v #952 > > -00:05:28 v #953 > > // !\($'"/* a"') : () -00:05:28 v #954 > > -00:05:28 v #955 > > // !\($'"} // b"') : () -00:05:28 v #956 > > -00:05:28 v #957 > > !\($'"fn _main() //"') : () -00:05:28 v #958 > > !\($'"{ { //"') : () -00:05:28 v #959 > > -00:05:28 v #960 > > inl rec loop' i' = -00:05:28 v #961 > > if i' <= n -00:05:28 v #962 > > then -00:05:28 v #963 > > (!\($'"true; { (); // ?? / i\': !i' / n: !n"') : bool) |> ignore -00:05:28 v #964 > > loop' (i' + 1) -00:05:28 v #965 > > else -00:05:28 v #966 > > (!\($'"true; { { (); // ? / i\': !i' / n: !n"') : bool) |> ignore -00:05:28 v #967 > > // (!\($'"true; */ // ?? / i\': !i' / n: !n"') : bool) |> ignore -00:05:28 v #968 > > loop' 1u8 -00:05:28 v #969 > > -00:05:28 v #970 > > inl main () = -00:05:28 v #971 > > $'!main |> ignore' : () -00:05:29 v #972 > 00:05:27 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 41515 } -00:05:29 v #973 > 00:05:27 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/apps/chat/contract/chat_contract.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/apps/chat/contract/chat_contract.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:05:30 v #974 > 00:05:29 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/apps/chat/contract/chat_contract.dib.ipynb to html -00:05:30 v #975 > 00:05:29 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. -00:05:30 v #976 > 00:05:29 v #7 ! validate(nb) -00:05:31 v #977 > 00:05:29 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 -00:05:31 v #978 > 00:05:29 v #9 ! return _pygments_highlight( -00:05:31 v #979 > 00:05:30 v #10 ! [NbConvertApp] Writing 384576 bytes to c:\home\git\polyglot\apps\chat\contract\chat_contract.dib.html -00:05:32 v #980 > 00:05:30 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 884 } -00:05:32 v #981 > 00:05:30 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 884 } -00:05:32 v #982 > 00:05:30 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/apps/chat/contract/chat_contract.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/apps/chat/contract/chat_contract.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:05:32 v #983 > 00:05:30 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } -00:05:32 v #984 > 00:05:30 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } -00:05:32 v #985 > 00:05:30 d #16 spiral.run / dib / { exit_code = 0; result_length = 42458 } -00:05:32 d #986 runtime.execute_with_options_async / { exit_code = 0; output_length = 47044 } -00:05:32 d #3 main / executeCommand / exitCode: 0 / command: ../../../deps/spiral/workspace/target/release/spiral.exe dib --path chat_contract.dib --retries 1 -00:05:32 v #4 async.run_with_timeout_async / { timeout = 100 } +00:00:00 d #1 runtime.execute_with_options_async / { file_name = ../../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path chat_contract.dib --retries 1"; options = { command = ../../../deps/spiral/workspace/target/release/spiral.exe dib --path chat_contract.dib --retries 1; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } +00:00:00 v #2 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "chat_contract.dib", "--retries", "1"])) } +00:00:00 v #3 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/apps/chat/contract/chat_contract.dib", "--output-path", "c:/home/git/polyglot/apps/chat/contract/chat_contract.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/apps/chat/contract/chat_contract.dib" --output-path "c:/home/git/polyglot/apps/chat/contract/chat_contract.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } +00:00:02 v #4 > > +00:00:02 v #5 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:02 v #6 > > │ # chat_contract +00:00:06 v #7 > > +00:00:06 v #8 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:06 v #9 > > open rust +00:00:06 v #10 > > open rust.rust_operators +00:00:07 v #11 > > +00:00:07 v #12 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:07 v #13 > > //// test +00:00:07 v #14 > > +00:00:07 v #15 > > open testing +00:00:08 v #16 > > +00:00:08 v #17 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:08 v #18 > > │ ## chat_contract +00:00:08 v #19 > > +00:00:08 v #20 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:08 v #21 > > │ ### state +00:00:08 v #22 > > +00:00:08 v #23 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:08 v #24 > > type state = +00:00:08 v #25 > > { +00:00:08 v #26 > > version : u32 +00:00:08 v #27 > > account_set : near.iterable_set near.account_id +00:00:08 v #28 > > alias_set : near.iterable_set sm'.std_string +00:00:08 v #29 > > account_map : near.lookup_map near.account_id sm'.std_string +00:00:08 v #30 > > alias_map : near.lookup_map sm'.std_string (mapm.hash_map +00:00:08 v #31 > > near.account_id (u64 * u32)) +00:00:08 v #32 > > } +00:00:08 v #33 > > +00:00:08 v #34 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:08 v #35 > > //// test +00:00:08 v #36 > > ///! rust -c +00:00:08 v #37 > > +00:00:08 v #38 > > () +00:00:33 v #39 > > +00:00:33 v #40 > > ── [ 24.81s - return value ] ─────────────────────────────────────────────────── +00:00:33 v #41 > > │ +00:00:33 v #42 > > │ 00:00:08 i #2 near_workspaces.print_usd / { retry = 1; +00:00:33 v #43 > > total_gas_burnt_usd = +0.000957; total_gas_burnt = 1432554003351 } +00:00:33 v #44 > > │ 00:00:09 i #3 near_workspaces.print_usd / outcome / { +00:00:33 v #45 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; +00:00:33 v #46 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } +00:00:33 v #47 > > │ 00:00:09 i #4 near_workspaces.print_usd / outcome / { +00:00:33 v #48 > > is_success = true; gas_burnt_usd = +0.000602; tokens_burnt_usd = +0.000602; +00:00:33 v #49 > > gas_burnt = 901289581511; tokens_burnt = 90128958151100000000 } +00:00:33 v #50 > > │ 00:00:09 i #5 near_workspaces.print_usd / outcome / { +00:00:33 v #51 > > is_success = true; gas_burnt_usd = +0.000149; tokens_burnt_usd = +0.000000; +00:00:33 v #52 > > gas_burnt = 223182562500; tokens_burnt = 0 } +00:00:33 v #53 > > │ +00:00:33 v #54 > > +00:00:33 v #55 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:33 v #56 > > //// test +00:00:33 v #57 > > ///! rust -c +00:00:33 v #58 > > +00:00:33 v #59 > > trace Verbose (fun () => "") id +00:00:53 v #60 > > +00:00:53 v #61 > > ── [ 20.46s - return value ] ─────────────────────────────────────────────────── +00:00:53 v #62 > > │ +00:00:53 v #63 > > │ 00:00:06 i #2 near_workspaces.print_usd / { retry = 1; +00:00:53 v #64 > > total_gas_burnt_usd = +0.000884; total_gas_burnt = 1323839559015 } +00:00:53 v #65 > > │ 00:00:06 i #3 near_workspaces.print_usd / outcome / { +00:00:53 v #66 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; +00:00:53 v #67 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } +00:00:53 v #68 > > │ 00:00:06 i #4 near_workspaces.print_usd / outcome / { +00:00:53 v #69 > > is_success = true; gas_burnt_usd = +0.000679; tokens_burnt_usd = +0.000679; +00:00:53 v #70 > > gas_burnt = 1015757699675; tokens_burnt = 101575769967500000000 } +00:00:53 v #71 > > │ 00:00:06 w #5 spiral_wasm.run / Error error / { retry = +00:00:53 v #72 > > 1; error = "{ receipt_outcomes_len = 1; retry = 1; receipt_failures = [] }" } +00:00:53 v #73 > > │ +00:00:53 v #74 > > │ +00:00:53 v #75 > > │ +00:00:53 v #76 > > │ 00:00:15 i #8 near_workspaces.print_usd / { retry = 2; +00:00:53 v #77 > > total_gas_burnt_usd = +0.001033; total_gas_burnt = 1547022121515 } +00:00:53 v #78 > > │ 00:00:15 i #9 near_workspaces.print_usd / outcome / { +00:00:53 v #79 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; +00:00:53 v #80 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } +00:00:53 v #81 > > │ 00:00:15 i #10 near_workspaces.print_usd / outcome / { +00:00:53 v #82 > > is_success = true; gas_burnt_usd = +0.000679; tokens_burnt_usd = +0.000679; +00:00:53 v #83 > > gas_burnt = 1015757699675; tokens_burnt = 101575769967500000000 } +00:00:53 v #84 > > │ 00:00:15 i #11 near_workspaces.print_usd / outcome / { +00:00:53 v #85 > > is_success = true; gas_burnt_usd = +0.000149; tokens_burnt_usd = +0.000000; +00:00:53 v #86 > > gas_burnt = 223182562500; tokens_burnt = 0 } +00:00:53 v #87 > > │ +00:00:53 v #88 > > +00:00:53 v #89 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:53 v #90 > > │ ### new +00:00:53 v #91 > > +00:00:53 v #92 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:53 v #93 > > inl new () : state = +00:00:53 v #94 > > { +00:00:53 v #95 > > version = 2 +00:00:53 v #96 > > account_set = "account_set" |> sm'.byte_slice |> near.new_iterable_set +00:00:53 v #97 > > alias_set = "alias_set" |> sm'.byte_slice |> near.new_iterable_set +00:00:53 v #98 > > account_map = "account_map" |> sm'.byte_slice |> near.new_lookup_map +00:00:53 v #99 > > alias_map = "alias_map" |> sm'.byte_slice |> near.new_lookup_map +00:00:53 v #100 > > } +00:00:54 v #101 > > +00:00:54 v #102 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:54 v #103 > > //// test +00:00:54 v #104 > > ///! rust -c +00:00:54 v #105 > > +00:00:54 v #106 > > inl state = new () +00:00:54 v #107 > > trace Verbose (fun () => "chat_contract") fun () => { state = state |> +00:00:54 v #108 > > sm'.format_debug } +00:00:54 v #109 > > trace Verbose (fun () => "") id +00:01:33 v #110 > > +00:01:33 v #111 > > ── [ 39.62s - return value ] ─────────────────────────────────────────────────── +00:01:33 v #112 > > │ 00:00:00 v #1 chat_contract / { state = (2, IterableSet +00:01:33 v #113 > > { elements: Vector { len: 0, prefix: [97, 99, 99, 111, 117, 110, 116, 95, 115, +00:01:33 v #114 > > 101, 116, 118] }, index: LookupMap { prefix: [97, 99, 99, 111, 117, 110, 116, +00:01:33 v #115 > > 95, 115, 101, 116, 109] } }, IterableSet { elements: Vector { len: 0, prefix: +00:01:33 v #116 > > [97, 108, 105, 97, 115, 95, 115, 101, 116, 118] }, index: LookupMap { prefix: +00:01:33 v #117 > > [97, 108, 105, 97, 115, 95, 115, 101, 116, 109] } }, LookupMap { prefix: [97, +00:01:33 v #118 > > 99, 99, 111, 117, 110, 116, 95, 109, 97, 112] }, LookupMap { prefix: [97, 108, +00:01:33 v #119 > > 105, 97, 115, 95, 109, 97, 112] }) } +00:01:33 v #120 > > │ +00:01:33 v #121 > > │ 00:00:06 i #2 near_workspaces.print_usd / { retry = 1; +00:01:33 v #122 > > total_gas_burnt_usd = +0.001326; total_gas_burnt = 1984533781627 } +00:01:33 v #123 > > │ 00:00:06 i #3 near_workspaces.print_usd / outcome / { +00:01:33 v #124 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; +00:01:33 v #125 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } +00:01:33 v #126 > > │ 00:00:06 i #4 near_workspaces.print_usd / outcome / { +00:01:33 v #127 > > is_success = true; gas_burnt_usd = +0.001120; tokens_burnt_usd = +0.001120; +00:01:33 v #128 > > gas_burnt = 1676451922287; tokens_burnt = 167645192228700000000 } +00:01:33 v #129 > > │ 00:00:06 w #5 spiral_wasm.run / Error error / { retry = +00:01:33 v #130 > > 1; error = "{ receipt_outcomes_len = 1; retry = 1; receipt_failures = [] }" } +00:01:33 v #131 > > │ +00:01:33 v #132 > > │ +00:01:33 v #133 > > │ 00:00:00 v #1 chat_contract / { state = (2, IterableSet +00:01:33 v #134 > > { elements: Vector { len: 0, prefix: [97, 99, 99, 111, 117, 110, 116, 95, 115, +00:01:33 v #135 > > 101, 116, 118] }, index: LookupMap { prefix: [97, 99, 99, 111, 117, 110, 116, +00:01:33 v #136 > > 95, 115, 101,...922287; tokens_burnt = 167645192228700000000 } +00:01:33 v #137 > > │ 00:00:26 w #23 spiral_wasm.run / Error error / { retry +00:01:33 v #138 > > = 4; error = "{ receipt_outcomes_len = 1; retry = 4; receipt_failures = [] }" } +00:01:33 v #139 > > │ +00:01:33 v #140 > > │ +00:01:33 v #141 > > │ 00:00:00 v #1 chat_contract / { state = (2, IterableSet +00:01:33 v #142 > > { elements: Vector { len: 0, prefix: [97, 99, 99, 111, 117, 110, 116, 95, 115, +00:01:33 v #143 > > 101, 116, 118] }, index: LookupMap { prefix: [97, 99, 99, 111, 117, 110, 116, +00:01:33 v #144 > > 95, 115, 101, 116, 109] } }, IterableSet { elements: Vector { len: 0, prefix: +00:01:33 v #145 > > [97, 108, 105, 97, 115, 95, 115, 101, 116, 118] }, index: LookupMap { prefix: +00:01:33 v #146 > > [97, 108, 105, 97, 115, 95, 115, 101, 116, 109] } }, LookupMap { prefix: [97, +00:01:33 v #147 > > 99, 99, 111, 117, 110, 116, 95, 109, 97, 112] }, LookupMap { prefix: [97, 108, +00:01:33 v #148 > > 105, 97, 115, 95, 109, 97, 112] }) } +00:01:33 v #149 > > │ +00:01:33 v #150 > > │ 00:00:32 i #26 near_workspaces.print_usd / { retry = 5; +00:01:33 v #151 > > total_gas_burnt_usd = +0.001475; total_gas_burnt = 2207716344127 } +00:01:33 v #152 > > │ 00:00:32 i #27 near_workspaces.print_usd / outcome / { +00:01:33 v #153 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; +00:01:33 v #154 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } +00:01:33 v #155 > > │ 00:00:32 i #28 near_workspaces.print_usd / outcome / { +00:01:33 v #156 > > is_success = true; gas_burnt_usd = +0.001120; tokens_burnt_usd = +0.001120; +00:01:33 v #157 > > gas_burnt = 1676451922287; tokens_burnt = 167645192228700000000 } +00:01:33 v #158 > > │ 00:00:32 i #29 near_workspaces.print_usd / outcome / { +00:01:33 v #159 > > is_success = true; gas_burnt_usd = +0.000149; tokens_burnt_usd = +0.000000; +00:01:33 v #160 > > gas_burnt = 223182562500; tokens_burnt = 0 } +00:01:33 v #161 > > │ +00:01:33 v #162 > > +00:01:33 v #163 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:01:33 v #164 > > │ ### is_valid_alias +00:01:33 v #165 > > +00:01:33 v #166 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:01:33 v #167 > > inl is_valid_alias (alias : sm'.std_string) : bool = +00:01:33 v #168 > > inl alias' = alias |> sm'.from_std_string +00:01:33 v #169 > > inl alias_len = alias' |> sm'.length +00:01:33 v #170 > > +00:01:33 v #171 > > alias_len > 0i32 +00:01:33 v #172 > > && alias_len < 64 +00:01:33 v #173 > > && (alias' |> sm'.starts_with "-" |> not) +00:01:33 v #174 > > && (alias' |> sm'.ends_with "-" |> not) +00:01:33 v #175 > > && (alias' |> sm'.as_str |> sm'.chars |> iter.all (fun c => (c |> +00:01:33 v #176 > > sm'.char_is_alphanumeric) || c = '-')) +00:01:34 v #177 > > +00:01:34 v #178 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:01:34 v #179 > > //// test +00:01:34 v #180 > > ///! rust -c +00:01:34 v #181 > > +00:01:34 v #182 > > "" +00:01:34 v #183 > > |> sm'.to_std_string +00:01:34 v #184 > > |> is_valid_alias +00:01:34 v #185 > > |> _assert_eq false +00:02:41 v #186 > > +00:02:41 v #187 > > ── [ 1.13m - return value ] ──────────────────────────────────────────────────── +00:02:41 v #188 > > │ +00:02:41 v #189 > > │ 00:00:06 i #2 near_workspaces.print_usd / { retry = 1; +00:02:41 v #190 > > total_gas_burnt_usd = +0.000822; total_gas_burnt = 1230936304578 } +00:02:41 v #191 > > │ 00:00:06 i #3 near_workspaces.print_usd / outcome / { +00:02:41 v #192 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; +00:02:41 v #193 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } +00:02:41 v #194 > > │ 00:00:06 i #4 near_workspaces.print_usd / outcome / { +00:02:41 v #195 > > is_success = true; gas_burnt_usd = +0.000616; tokens_burnt_usd = +0.000616; +00:02:42 v #196 > > gas_burnt = 922854445238; tokens_burnt = 92285444523800000000 } +00:02:42 v #197 > > │ 00:00:06 w #5 spiral_wasm.run / Error error / { retry = +00:02:42 v #198 > > 1; error = "{ receipt_outcomes_len = 1; retry = 1; receipt_failures = [] }" } +00:02:42 v #199 > > │ +00:02:42 v #200 > > │ +00:02:42 v #201 > > │ +00:02:42 v #202 > > │ 00:00:13 i #8 near_workspaces.print_usd / { retry = 2; +00:02:42 v #203 > > total_gas_burnt_usd = +0.000822; total_gas_burnt = 1230936304578 } +00:02:42 v #204 > > │ 00:00:13 i #9 near_workspaces.print_usd / outcome / { +00:02:42 v #205 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; +00:02:42 v #206 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } +00:02:42 v #207 > > │ 00:00:13 i #10 near_workspaces.print_usd / outcome / { +00:02:42 v #208 > > is_success = true; gas_burnt_usd = +0.000616; tokens_burnt_usd = +0.000616; +00:02:42 v #209 > > gas_burnt = 922854445238; tokens_burnt = 92285444523800000000 } +00:02:42 v #210 > > │ 00:00:13 w #11 spiral_wasm.run / Error error / { retry +00:02:42 v #211 > > = 2; error = "{ receipt_outcomes_len = 1; retry = 2; receipt_failures = [] }" } +00:02:42 v #212 > > │ +00:02:42 v #213 > > │ +00:02:42 v #214 > > │ +00:02:42 v #215 > > │ 00:00:19 i #14 near_workspaces.print_usd / { retry = 3; +00:02:42 v #216 > > total_gas_burnt_usd = +0.000822; total_gas_burnt = 12...rror = "{ +00:02:42 v #217 > > receipt_outcomes_len = 1; retry = 8; receipt_failures = [] }" } +00:02:42 v #218 > > │ +00:02:42 v #219 > > │ +00:02:42 v #220 > > │ +00:02:42 v #221 > > │ 00:00:57 i #50 near_workspaces.print_usd / { retry = 9; +00:02:42 v #222 > > total_gas_burnt_usd = +0.000822; total_gas_burnt = 1230936304578 } +00:02:42 v #223 > > │ 00:00:57 i #51 near_workspaces.print_usd / outcome / { +00:02:42 v #224 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; +00:02:42 v #225 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } +00:02:42 v #226 > > │ 00:00:57 i #52 near_workspaces.print_usd / outcome / { +00:02:42 v #227 > > is_success = true; gas_burnt_usd = +0.000616; tokens_burnt_usd = +0.000616; +00:02:42 v #228 > > gas_burnt = 922854445238; tokens_burnt = 92285444523800000000 } +00:02:42 v #229 > > │ 00:00:57 w #53 spiral_wasm.run / Error error / { retry +00:02:42 v #230 > > = 9; error = "{ receipt_outcomes_len = 1; retry = 9; receipt_failures = [] }" } +00:02:42 v #231 > > │ +00:02:42 v #232 > > │ +00:02:42 v #233 > > │ +00:02:42 v #234 > > │ 00:01:03 i #56 near_workspaces.print_usd / { retry = +00:02:42 v #235 > > 10; total_gas_burnt_usd = +0.000971; total_gas_burnt = 1454118867078 } +00:02:42 v #236 > > │ 00:01:03 i #57 near_workspaces.print_usd / outcome / { +00:02:42 v #237 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; +00:02:42 v #238 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } +00:02:42 v #239 > > │ 00:01:03 i #58 near_workspaces.print_usd / outcome / { +00:02:42 v #240 > > is_success = true; gas_burnt_usd = +0.000616; tokens_burnt_usd = +0.000616; +00:02:42 v #241 > > gas_burnt = 922854445238; tokens_burnt = 92285444523800000000 } +00:02:42 v #242 > > │ 00:01:03 i #59 near_workspaces.print_usd / outcome / { +00:02:42 v #243 > > is_success = true; gas_burnt_usd = +0.000149; tokens_burnt_usd = +0.000000; +00:02:42 v #244 > > gas_burnt = 223182562500; tokens_burnt = 0 } +00:02:42 v #245 > > │ +00:02:42 v #246 > > +00:02:42 v #247 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:02:42 v #248 > > //// test +00:02:42 v #249 > > ///! rust -c +00:02:42 v #250 > > +00:02:42 v #251 > > "a-" +00:02:42 v #252 > > |> sm'.to_std_string +00:02:42 v #253 > > |> is_valid_alias +00:02:42 v #254 > > |> _assert_eq false +00:02:52 v #255 > > +00:02:52 v #256 > > ── [ 10.55s - return value ] ─────────────────────────────────────────────────── +00:02:52 v #257 > > │ +00:02:52 v #258 > > │ 00:00:06 i #2 near_workspaces.print_usd / { retry = 1; +00:02:52 v #259 > > total_gas_burnt_usd = +0.000973; total_gas_burnt = 1456085184501 } +00:02:52 v #260 > > │ 00:00:06 i #3 near_workspaces.print_usd / outcome / { +00:02:52 v #261 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; +00:02:52 v #262 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } +00:02:52 v #263 > > │ 00:00:06 i #4 near_workspaces.print_usd / outcome / { +00:02:52 v #264 > > is_success = true; gas_burnt_usd = +0.000618; tokens_burnt_usd = +0.000618; +00:02:52 v #265 > > gas_burnt = 924820762661; tokens_burnt = 92482076266100000000 } +00:02:52 v #266 > > │ 00:00:06 i #5 near_workspaces.print_usd / outcome / { +00:02:52 v #267 > > is_success = true; gas_burnt_usd = +0.000149; tokens_burnt_usd = +0.000000; +00:02:52 v #268 > > gas_burnt = 223182562500; tokens_burnt = 0 } +00:02:52 v #269 > > │ +00:02:52 v #270 > > +00:02:52 v #271 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:02:52 v #272 > > //// test +00:02:52 v #273 > > ///! rust -c +00:02:52 v #274 > > +00:02:52 v #275 > > "a-a" +00:02:52 v #276 > > |> sm'.to_std_string +00:02:52 v #277 > > |> is_valid_alias +00:02:52 v #278 > > |> _assert_eq true +00:03:22 v #279 > > +00:03:22 v #280 > > ── [ 29.56s - return value ] ─────────────────────────────────────────────────── +00:03:22 v #281 > > │ +00:03:22 v #282 > > │ 00:00:06 i #2 near_workspaces.print_usd / { retry = 1; +00:03:22 v #283 > > total_gas_burnt_usd = +0.000825; total_gas_burnt = 1234496381800 } +00:03:22 v #284 > > │ 00:00:06 i #3 near_workspaces.print_usd / outcome / { +00:03:22 v #285 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; +00:03:22 v #286 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } +00:03:22 v #287 > > │ 00:00:06 i #4 near_workspaces.print_usd / outcome / { +00:03:22 v #288 > > is_success = true; gas_burnt_usd = +0.000619; tokens_burnt_usd = +0.000619; +00:03:22 v #289 > > gas_burnt = 926414522460; tokens_burnt = 92641452246000000000 } +00:03:22 v #290 > > │ 00:00:06 w #5 spiral_wasm.run / Error error / { retry = +00:03:22 v #291 > > 1; error = "{ receipt_outcomes_len = 1; retry = 1; receipt_failures = [] }" } +00:03:22 v #292 > > │ +00:03:22 v #293 > > │ +00:03:22 v #294 > > │ +00:03:22 v #295 > > │ 00:00:13 i #8 near_workspaces.print_usd / { retry = 2; +00:03:22 v #296 > > total_gas_burnt_usd = +0.000825; total_gas_burnt = 1234496381800 } +00:03:22 v #297 > > │ 00:00:13 i #9 near_workspaces.print_usd / outcome / { +00:03:22 v #298 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; +00:03:22 v #299 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } +00:03:22 v #300 > > │ 00:00:13 i #10 near_workspaces.print_usd / outcome / { +00:03:22 v #301 > > is_success = true; gas_burnt_usd = +0.000619; tokens_burnt_usd = +0.000619; +00:03:22 v #302 > > gas_burnt = 926414522460; tokens_burnt = 92641452246000000000 } +00:03:22 v #303 > > │ 00:00:13 w #11 spiral_wasm.run / Error error / { retry +00:03:22 v #304 > > = 2; error = "{ receipt_outcomes_len = 1; retry = 2; receipt_failures = [] }" } +00:03:22 v #305 > > │ +00:03:22 v #306 > > │ +00:03:22 v #307 > > │ +00:03:22 v #308 > > │ 00:00:19 i #14 near_workspaces.print_usd / { retry = 3; +00:03:22 v #309 > > total_gas_burnt_usd = +0.000825; total_gas_burnt = 1234496381800 } +00:03:22 v #310 > > │ 00:00:19 i #15 near_workspaces.print_usd / outcome / { +00:03:22 v #311 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; +00:03:22 v #312 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } +00:03:22 v #313 > > │ 00:00:19 i #16 near_workspaces.print_usd / outcome / { +00:03:22 v #314 > > is_success = true; gas_burnt_usd = +0.000619; tokens_burnt_usd = +0.000619; +00:03:22 v #315 > > gas_burnt = 926414522460; tokens_burnt = 92641452246000000000 } +00:03:22 v #316 > > │ 00:00:19 w #17 spiral_wasm.run / Error error / { retry +00:03:22 v #317 > > = 3; error = "{ receipt_outcomes_len = 1; retry = 3; receipt_failures = [] }" } +00:03:22 v #318 > > │ +00:03:22 v #319 > > │ +00:03:22 v #320 > > │ +00:03:22 v #321 > > │ 00:00:25 i #20 near_workspaces.print_usd / { retry = 4; +00:03:22 v #322 > > total_gas_burnt_usd = +0.000974; total_gas_burnt = 1457678944300 } +00:03:22 v #323 > > │ 00:00:25 i #21 near_workspaces.print_usd / outcome / { +00:03:22 v #324 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; +00:03:22 v #325 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } +00:03:22 v #326 > > │ 00:00:25 i #22 near_workspaces.print_usd / outcome / { +00:03:22 v #327 > > is_success = true; gas_burnt_usd = +0.000619; tokens_burnt_usd = +0.000619; +00:03:22 v #328 > > gas_burnt = 926414522460; tokens_burnt = 92641452246000000000 } +00:03:22 v #329 > > │ 00:00:25 i #23 near_workspaces.print_usd / outcome / { +00:03:22 v #330 > > is_success = true; gas_burnt_usd = +0.000149; tokens_burnt_usd = +0.000000; +00:03:22 v #331 > > gas_burnt = 223182562500; tokens_burnt = 0 } +00:03:22 v #332 > > │ +00:03:22 v #333 > > +00:03:22 v #334 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:03:22 v #335 > > │ ### generate_cid +00:03:22 v #336 > > +00:03:22 v #337 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:03:22 v #338 > > inl generate_cid (content : am'.vec u8) : sm'.std_string = +00:03:22 v #339 > > !\($'" fn encode_u64(value: u64) -> Vec<u8> { //"') : () +00:03:22 v #340 > > !\($'" let mut buffer = unsigned_varint::encode::u64_buffer(); //"') : () +00:03:22 v #341 > > !\($'" unsigned_varint::encode::u64(value, &mut buffer).to_vec() //"') : +00:03:22 v #342 > > () +00:03:22 v #343 > > !\($'" } //"') : () +00:03:22 v #344 > > +00:03:22 v #345 > > !\($'" fn sha256_hash(content: &[[u8]]) -> Vec<u8> { //"') : () +00:03:22 v #346 > > !\($'" let mut hasher: sha2::Sha256 = sha2::Digest::new(); //"') : () +00:03:22 v #347 > > !\($'" sha2::Digest::update(&mut hasher, content); //"') : () +00:03:22 v #348 > > !\($'" sha2::Digest::finalize(hasher).to_vec() //"') : () +00:03:22 v #349 > > !\($'" } //"') : () +00:03:22 v #350 > > +00:03:22 v #351 > > !\($'" let version: u8 = 1; //"') : () +00:03:22 v #352 > > !\($'" let codec_raw: u64 = 0x55; //"') : () +00:03:22 v #353 > > +00:03:22 v #354 > > !\($'" let codec_bytes = encode_u64(codec_raw); //"') : () +00:03:22 v #355 > > !\($'" let hash_result = sha256_hash(&!content); //"') : () +00:03:22 v #356 > > !\($'" let multihash = std::iter::once(0x12) //"') : () +00:03:22 v #357 > > !\($'" .chain(std::iter::once(32)) //"') : () +00:03:22 v #358 > > !\($'" .chain(hash_result.into_iter()) //"') : () +00:03:22 v #359 > > !\($'" .collect(); //"') : () +00:03:22 v #360 > > !\($'" let cid_bytes = [[vec\![[version]], codec_bytes, +00:03:22 v #361 > > multihash]].concat(); //"') : () +00:03:22 v #362 > > !\($'" let result = multibase::encode(multibase::Base::Base32Lower, +00:03:22 v #363 > > &cid_bytes); //"') : () +00:03:22 v #364 > > !\($'"result"') +00:03:22 v #365 > > +00:03:22 v #366 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:03:22 v #367 > > //// test +00:03:22 v #368 > > ///! rust -c -d multibase sha2 unsigned-varint +00:03:22 v #369 > > +00:03:22 v #370 > > ;[[]] +00:03:22 v #371 > > |> am'.to_vec +00:03:22 v #372 > > |> generate_cid +00:03:22 v #373 > > |> sm'.from_std_string +00:03:22 v #374 > > |> _assert_eq "bafkreihdwdcefgh4dqkjv67uzcmw7ojee6xedzdetojuzjevtenxquvyku" +00:04:17 v #375 > > +00:04:17 v #376 > > ── [ 55.18s - return value ] ─────────────────────────────────────────────────── +00:04:17 v #377 > > │ +00:04:17 v #378 > > │ 00:00:06 i #2 near_workspaces.print_usd / { retry = 1; +00:04:17 v #379 > > total_gas_burnt_usd = +0.000877; total_gas_burnt = 1312174643779 } +00:04:17 v #380 > > │ 00:00:06 i #3 near_workspaces.print_usd / outcome / { +00:04:17 v #381 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; +00:04:17 v #382 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } +00:04:17 v #383 > > │ 00:00:06 i #4 near_workspaces.print_usd / outcome / { +00:04:17 v #384 > > is_success = true; gas_burnt_usd = +0.000671; tokens_burnt_usd = +0.000671; +00:04:17 v #385 > > gas_burnt = 1004092784439; tokens_burnt = 100409278443900000000 } +00:04:17 v #386 > > │ 00:00:06 w #5 spiral_wasm.run / Error error / { retry = +00:04:17 v #387 > > 1; error = "{ receipt_outcomes_len = 1; retry = 1; receipt_failures = [] }" } +00:04:17 v #388 > > │ +00:04:17 v #389 > > │ +00:04:17 v #390 > > │ +00:04:17 v #391 > > │ 00:00:13 i #8 near_workspaces.print_usd / { retry = 2; +00:04:17 v #392 > > total_gas_burnt_usd = +0.000877; total_gas_burnt = 1312174643779 } +00:04:17 v #393 > > │ 00:00:13 i #9 near_workspaces.print_usd / outcome / { +00:04:17 v #394 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; +00:04:17 v #395 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } +00:04:17 v #396 > > │ 00:00:13 i #10 near_workspaces.print_usd / outcome / { +00:04:17 v #397 > > is_success = true; gas_burnt_usd = +0.000671; tokens_burnt_usd = +0.000671; +00:04:17 v #398 > > gas_burnt = 1004092784439; tokens_burnt = 100409278443900000000 } +00:04:17 v #399 > > │ 00:00:13 w #11 spiral_wasm.run / Error error / { retry +00:04:17 v #400 > > = 2; error = "{ receipt_outcomes_len = 1; retry = 2; receipt_failures = [] }" } +00:04:17 v #401 > > │ +00:04:17 v #402 > > │ +00:04:17 v #403 > > │ +00:04:17 v #404 > > │ 00:00:20 i #14 near_workspaces.print_usd / { retry = 3; +00:04:17 v #405 > > total_gas_burnt_usd = +0.000877; total_gas_burnt ...r = "{ receipt_outcomes_len +00:04:17 v #406 > > = 1; retry = 6; receipt_failures = [] }" } +00:04:17 v #407 > > │ +00:04:17 v #408 > > │ +00:04:17 v #409 > > │ +00:04:17 v #410 > > │ 00:00:44 i #38 near_workspaces.print_usd / { retry = 7; +00:04:17 v #411 > > total_gas_burnt_usd = +0.000877; total_gas_burnt = 1312174643779 } +00:04:17 v #412 > > │ 00:00:44 i #39 near_workspaces.print_usd / outcome / { +00:04:17 v #413 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; +00:04:17 v #414 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } +00:04:17 v #415 > > │ 00:00:44 i #40 near_workspaces.print_usd / outcome / { +00:04:17 v #416 > > is_success = true; gas_burnt_usd = +0.000671; tokens_burnt_usd = +0.000671; +00:04:17 v #417 > > gas_burnt = 1004092784439; tokens_burnt = 100409278443900000000 } +00:04:17 v #418 > > │ 00:00:44 w #41 spiral_wasm.run / Error error / { retry +00:04:17 v #419 > > = 7; error = "{ receipt_outcomes_len = 1; retry = 7; receipt_failures = [] }" } +00:04:17 v #420 > > │ +00:04:17 v #421 > > │ +00:04:17 v #422 > > │ +00:04:17 v #423 > > │ 00:00:50 i #44 near_workspaces.print_usd / { retry = 8; +00:04:17 v #424 > > total_gas_burnt_usd = +0.001026; total_gas_burnt = 1535357206279 } +00:04:17 v #425 > > │ 00:00:50 i #45 near_workspaces.print_usd / outcome / { +00:04:17 v #426 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; +00:04:17 v #427 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } +00:04:17 v #428 > > │ 00:00:50 i #46 near_workspaces.print_usd / outcome / { +00:04:17 v #429 > > is_success = true; gas_burnt_usd = +0.000671; tokens_burnt_usd = +0.000671; +00:04:17 v #430 > > gas_burnt = 1004092784439; tokens_burnt = 100409278443900000000 } +00:04:17 v #431 > > │ 00:00:50 i #47 near_workspaces.print_usd / outcome / { +00:04:17 v #432 > > is_success = true; gas_burnt_usd = +0.000149; tokens_burnt_usd = +0.000000; +00:04:17 v #433 > > gas_burnt = 223182562500; tokens_burnt = 0 } +00:04:17 v #434 > > │ +00:04:17 v #435 > > +00:04:17 v #436 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:04:17 v #437 > > │ ### claim_alias +00:04:17 v #438 > > +00:04:17 v #439 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:04:17 v #440 > > inl claim_alias (state : rust.ref (rust.mut' state)) (alias : sm'.std_string) : +00:04:17 v #441 > > () = +00:04:17 v #442 > > inl account_set : rust.ref (rust.mut' (near.iterable_set near.account_id)) = +00:04:17 v #443 > > !\($'$"&mut !state.1"') +00:04:17 v #444 > > +00:04:17 v #445 > > inl alias_set : rust.ref (rust.mut' (near.iterable_set sm'.std_string)) = +00:04:17 v #446 > > !\($'$"&mut !state.2"') +00:04:17 v #447 > > +00:04:17 v #448 > > inl account_map : rust.ref (rust.mut' (near.lookup_map near.account_id +00:04:17 v #449 > > sm'.std_string)) = +00:04:17 v #450 > > !\($'$"&mut !state.3"') +00:04:17 v #451 > > +00:04:17 v #452 > > inl alias_map : rust.ref (rust.mut' (near.lookup_map sm'.std_string +00:04:17 v #453 > > (mapm.hash_map near.account_id (u64 * u32)))) = +00:04:17 v #454 > > !\($'$"&mut !state.4"') +00:04:17 v #455 > > +00:04:17 v #456 > > inl signer_account_id = near.signer_account_id () +00:04:17 v #457 > > inl predecessor_account_id = near.predecessor_account_id () +00:04:17 v #458 > > inl block_timestamp = near.block_timestamp () +00:04:17 v #459 > > +00:04:17 v #460 > > trace Debug +00:04:17 v #461 > > fun () => "chat_contract.claim_alias" +00:04:17 v #462 > > fun () => { +00:04:17 v #463 > > alias +00:04:17 v #464 > > block_timestamp +00:04:17 v #465 > > signer_account_id = signer_account_id |> sm'.to_string' +00:04:17 v #466 > > predecessor_account_id = predecessor_account_id |> sm'.to_string' +00:04:17 v #467 > > } +00:04:17 v #468 > > +00:04:17 v #469 > > if alias |> is_valid_alias |> not +00:04:17 v #470 > > then near.panic_str "chat_contract.claim_alias / invalid alias" . true +00:04:17 v #471 > > else false +00:04:17 v #472 > > |> ignore +00:04:17 v #473 > > +00:04:17 v #474 > > inl account_alias = +00:04:17 v #475 > > account_map +00:04:17 v #476 > > |> near.lookup_get signer_account_id +00:04:17 v #477 > > |> optionm'.cloned +00:04:17 v #478 > > +00:04:17 v #479 > > match account_alias |> optionm'.unbox with +00:04:17 v #480 > > | Some account_alias when account_alias =. alias => +00:04:17 v #481 > > trace Warning +00:04:17 v #482 > > fun () => "chat_contract.claim_alias / alias already claimed" +00:04:17 v #483 > > fun () => { account_alias = account_alias |> sm'.format_debug } +00:04:17 v #484 > > | account_alias' => +00:04:17 v #485 > > trace Debug +00:04:17 v #486 > > fun () => "chat_contract.claim_alias" +00:04:17 v #487 > > fun () => { account_alias = account_alias |> sm'.format_debug } +00:04:17 v #488 > > +00:04:17 v #489 > > match account_alias' with +00:04:17 v #490 > > | Some account_alias => +00:04:17 v #491 > > !\($'" !alias_map //"') : () +00:04:17 v #492 > > !\($'" .get_mut(&!account_alias) //"') : () +00:04:17 v #493 > > !\($'" .unwrap() //"') : () +00:04:17 v #494 > > !\\(signer_account_id, $'" .remove(&$0); //"') : () +00:04:17 v #495 > > | None => () +00:04:17 v #496 > > +00:04:17 v #497 > > !\\((signer_account_id, alias), $'" !account_map.insert($0.clone(), +00:04:17 v #498 > > $1.clone()); //"') : () +00:04:17 v #499 > > +00:04:17 v #500 > > account_set |> near.iterable_set_insert signer_account_id |> ignore +00:04:17 v #501 > > alias_set |> near.iterable_set_insert alias |> ignore +00:04:17 v #502 > > +00:04:17 v #503 > > !\\(alias, $'" let new_alias_account_map = match !alias_map.get(&$0) { +00:04:17 v #504 > > //"') : () +00:04:17 v #505 > > !\($'" None => { //"') : () +00:04:17 v #506 > > !\($'" let mut new_map = std::collections::HashMap::new(); //"') : +00:04:17 v #507 > > () +00:04:17 v #508 > > !\\((signer_account_id, block_timestamp), $'" new_map.insert($0, +00:04:17 v #509 > > ($1, 0u32)); //"') : () +00:04:17 v #510 > > !\($'" new_map //"') : () +00:04:17 v #511 > > !\($'" } //"') : () +00:04:17 v #512 > > !\($'" Some(accounts) => { //"') : () +00:04:17 v #513 > > !\($'" let mut accounts_vec = accounts.iter().collect::<Vec<_>>(); +00:04:17 v #514 > > //"') : () +00:04:17 v #515 > > !\($'" accounts_vec.sort_unstable_by_key(|(_, (_, index))| index); +00:04:17 v #516 > > //"') : () +00:04:17 v #517 > > !\($'" let mut new_map = accounts_vec //"') : () +00:04:17 v #518 > > !\($'" .iter() //"') : () +00:04:17 v #519 > > !\($'" .enumerate() //"') : () +00:04:17 v #520 > > !\($'" .map(|(i, (signer_account_id, (timestamp, _)))| { //"') : +00:04:17 v #521 > > () +00:04:17 v #522 > > !\($'" ((*signer_account_id).clone(), (*timestamp, i as u32)) +00:04:17 v #523 > > //"') : () +00:04:17 v #524 > > !\($'" }) //"') : () +00:04:17 v #525 > > !\($'" .collect::<std::collections::HashMap<_, _>>(); //"') : () +00:04:17 v #526 > > !\\(signer_account_id, $'" new_map.insert($0, (!block_timestamp, +00:04:17 v #527 > > accounts_vec.len() as u32)); //"') : () +00:04:17 v #528 > > !\($'" new_map //"') : () +00:04:17 v #529 > > !\($'" } //"') : () +00:04:17 v #530 > > !\($'" }; //"') : () +00:04:17 v #531 > > +00:04:17 v #532 > > !\\(alias, $'" !alias_map.insert($0, new_alias_account_map); //"') : () +00:04:18 v #533 > > +00:04:18 v #534 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:04:18 v #535 > > //// test +00:04:18 v #536 > > ///! rust -c +00:04:18 v #537 > > +00:04:18 v #538 > > inl state = new () +00:04:18 v #539 > > inl version = state.version +00:04:18 v #540 > > inl account_set = state.account_set +00:04:18 v #541 > > inl alias_set = state.alias_set +00:04:18 v #542 > > inl account_map = state.account_map +00:04:18 v #543 > > inl alias_map = state.alias_map +00:04:18 v #544 > > inl version = join version +00:04:18 v #545 > > inl account_set = join account_set +00:04:18 v #546 > > inl alias_set = join alias_set +00:04:18 v #547 > > inl account_map = join account_map +00:04:18 v #548 > > inl alias_map = join alias_map +00:04:18 v #549 > > inl state : rust.ref (rust.mut' state) = +00:04:18 v #550 > > !\\( +00:04:18 v #551 > > version, +00:04:18 v #552 > > $'$"&mut ($0, !account_set, !alias_set, !account_map, !alias_map)"' +00:04:18 v #553 > > ) +00:04:18 v #554 > > +00:04:18 v #555 > > "alias1" +00:04:18 v #556 > > |> sm'.to_std_string +00:04:18 v #557 > > |> claim_alias state +00:04:18 v #558 > > +00:04:18 v #559 > > trace Verbose +00:04:18 v #560 > > fun () => "chat_contract" +00:04:18 v #561 > > fun () => { state = state |> sm'.format_debug } +00:04:18 v #562 > > +00:04:18 v #563 > > trace Debug (fun () => "") id +00:05:10 v #564 > > +00:05:10 v #565 > > ── [ 52.19s - return value ] ─────────────────────────────────────────────────── +00:05:10 v #566 > > │ 00:00:00 d #1 chat_contract.claim_alias / { alias = +00:05:10 v #567 > > "alias1"; block_timestamp = 1737642316828615543; signer_account_id = +00:05:10 v #568 > > "dev-20250123142515-64824449708443"; predecessor_account_id = +00:05:10 v #569 > > "dev-20250123142515-64824449708443" } +00:05:10 v #570 > > │ 00:00:00 d #2 chat_contract.claim_alias / { +00:05:10 v #571 > > account_alias = None } +00:05:10 v #572 > > │ 00:00:00 v #3 chat_contract / { state = (2, IterableSet +00:05:10 v #573 > > { elements: Vector { len: 1, prefix: [97, 99, 99, 111, 117, 110, 116, 95, 115, +00:05:10 v #574 > > 101, 116, 118] }, index: LookupMap { prefix: [97, 99, 99, 111, 117, 110, 116, +00:05:10 v #575 > > 95, 115, 101, 116, 109] } }, IterableSet { elements: Vector { len: 1, prefix: +00:05:10 v #576 > > [97, 108, 105, 97, 115, 95, 115, 101, 116, 118] }, index: LookupMap { prefix: +00:05:10 v #577 > > [97, 108, 105, 97, 115, 95, 115, 101, 116, 109] } }, LookupMap { prefix: [97, +00:05:10 v #578 > > 99, 99, 111, 117, 110, 116, 95, 109, 97, 112] }, LookupMap { prefix: [97, 108, +00:05:10 v #579 > > 105, 97, 115, 95, 109, 97, 112] }) } +00:05:10 v #580 > > │ +00:05:10 v #581 > > │ 00:00:06 i #2 near_workspaces.print_usd / { retry = 1; +00:05:10 v #582 > > total_gas_burnt_usd = +0.002517; total_gas_burnt = 3768568779729 } +00:05:10 v #583 > > │ 00:00:06 i #3 near_workspaces.print_usd / outcome / { +00:05:10 v #584 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; +00:05:10 v #585 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } +00:05:10 v #586 > > │ 00:00:06 i #4 near_workspaces.print_usd / outcome / { +00:05:10 v #587 > > is_success = true; gas_burnt_usd = +0.002312; tokens_burnt_usd = +0.002312; +00:05:10 v #588 > > gas_burnt = 3460486920389; tokens_burnt = 346048692038900000000 } +00:05:10 v #589 > > │ 00:00:06 w #5 spiral_wasm.run / Error error / { retry = +00:05:10 v #590 > > 1; error...ner_account_id = "dev-20250123142552-58717767792888"; +00:05:10 v #591 > > predecessor_account_id = "dev-20250123142552-58717767792888" } +00:05:10 v #592 > > │ 00:00:00 d #2 chat_contract.claim_alias / { +00:05:10 v #593 > > account_alias = None } +00:05:10 v #594 > > │ 00:00:00 v #3 chat_contract / { state = (2, IterableSet +00:05:10 v #595 > > { elements: Vector { len: 1, prefix: [97, 99, 99, 111, 117, 110, 116, 95, 115, +00:05:10 v #596 > > 101, 116, 118] }, index: LookupMap { prefix: [97, 99, 99, 111, 117, 110, 116, +00:05:10 v #597 > > 95, 115, 101, 116, 109] } }, IterableSet { elements: Vector { len: 1, prefix: +00:05:10 v #598 > > [97, 108, 105, 97, 115, 95, 115, 101, 116, 118] }, index: LookupMap { prefix: +00:05:10 v #599 > > [97, 108, 105, 97, 115, 95, 115, 101, 116, 109] } }, LookupMap { prefix: [97, +00:05:10 v #600 > > 99, 99, 111, 117, 110, 116, 95, 109, 97, 112] }, LookupMap { prefix: [97, 108, +00:05:10 v #601 > > 105, 97, 115, 95, 109, 97, 112] }) } +00:05:10 v #602 > > │ +00:05:10 v #603 > > │ 00:00:43 i #38 near_workspaces.print_usd / { retry = 7; +00:05:10 v #604 > > total_gas_burnt_usd = +0.002666; total_gas_burnt = 3991751342229 } +00:05:10 v #605 > > │ 00:00:43 i #39 near_workspaces.print_usd / outcome / { +00:05:10 v #606 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; +00:05:10 v #607 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } +00:05:10 v #608 > > │ 00:00:43 i #40 near_workspaces.print_usd / outcome / { +00:05:10 v #609 > > is_success = true; gas_burnt_usd = +0.002312; tokens_burnt_usd = +0.002312; +00:05:10 v #610 > > gas_burnt = 3460486920389; tokens_burnt = 346048692038900000000 } +00:05:10 v #611 > > │ 00:00:43 i #41 near_workspaces.print_usd / outcome / { +00:05:10 v #612 > > is_success = true; gas_burnt_usd = +0.000149; tokens_burnt_usd = +0.000000; +00:05:10 v #613 > > gas_burnt = 223182562500; tokens_burnt = 0 } +00:05:10 v #614 > > │ +00:05:10 v #615 > > +00:05:10 v #616 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:05:10 v #617 > > //// test +00:05:10 v #618 > > ///! rust \"-c=-e=\\\"chat_contract.claim_alias / invalid alias\\\"\" +00:05:10 v #619 > > +00:05:10 v #620 > > "" +00:05:10 v #621 > > |> sm'.to_std_string +00:05:10 v #622 > > |> claim_alias ( +00:05:10 v #623 > > inl state = new () +00:05:10 v #624 > > inl version = state.version +00:05:10 v #625 > > inl account_set = state.account_set +00:05:10 v #626 > > inl alias_set = state.alias_set +00:05:10 v #627 > > inl account_map = state.account_map +00:05:10 v #628 > > inl alias_map = state.alias_map +00:05:10 v #629 > > !\\(version, $'$"&mut ($0, !account_set, !alias_set, !account_map, +00:05:10 v #630 > > !alias_map)"') +00:05:10 v #631 > > ) +00:05:10 v #632 > > trace Debug (fun () => "") id +00:05:25 v #633 > > +00:05:25 v #634 > > ── [ 15.30s - return value ] ─────────────────────────────────────────────────── +00:05:25 v #635 > > │ +00:05:25 v #636 > > │ 00:00:07 i #2 near_workspaces.print_usd / { retry = 1; +00:05:25 v #637 > > total_gas_burnt_usd = +0.001293; total_gas_burnt = 1935045289911 } +00:05:25 v #638 > > │ 00:00:07 i #3 near_workspaces.print_usd / outcome / { +00:05:25 v #639 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; +00:05:25 v #640 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } +00:05:25 v #641 > > │ 00:00:07 i #4 near_workspaces.print_usd / outcome / { +00:05:25 v #642 > > is_success = false; gas_burnt_usd = +0.000938; tokens_burnt_usd = +0.000938; +00:05:25 v #643 > > gas_burnt = 1403780868071; tokens_burnt = 140378086807100000000 } +00:05:25 v #644 > > │ 00:00:07 i #5 near_workspaces.print_usd / outcome / { +00:05:25 v #645 > > is_success = true; gas_burnt_usd = +0.000149; tokens_burnt_usd = +0.000000; +00:05:25 v #646 > > gas_burnt = 223182562500; tokens_burnt = 0 } +00:05:25 v #647 > > │ 00:00:07 c #6 spiral_wasm.run / Ok (Some error) / { +00:05:25 v #648 > > retry = 1; error = { receipt_outcomes_len = 2; retry = 1; receipt_failures = [ +00:05:25 v #649 > > │ ExecutionOutcome { +00:05:25 v #650 > > │ transaction_hash: +00:05:25 v #651 > > D8H1ZHV8RtENQvSb6CAYSuZT2ywmRiJSKVxMedci6Nvj, +00:05:25 v #652 > > │ block_hash: +00:05:25 v #653 > > 8Q4D5Wah7xEFDB7yLa3NLTsGJBGcnYvRvEw392Th2nV8, +00:05:25 v #654 > > │ logs: [], +00:05:25 v #655 > > │ receipt_ids: [ +00:05:25 v #656 > > │ DZvBoEqu2iPWg3pYNGcaQt16btj9pErcBWhr31ndEgnq, +00:05:25 v #657 > > │ ], +00:05:25 v #658 > > │ gas_burnt: NearGas { +00:05:25 v #659 > > │ inner: 1403780868071, +00:05:25 v #660 > > │ }, +00:05:25 v #661 > > │ tokens_burnt: NearToken { +00:05:25 v #662 > > │ inner: 140378086807100000000, +00:05:25 v #663 > > │ }, +00:05:25 v #664 > > │ executor_id: AccountId( +00:05:25 v #665 > > │ "dev-20250123142607-22207511747457", +00:05:25 v #666 > > │ ), +00:05:25 v #667 > > │ status: Failure(ActionError(ActionError { index: +00:05:25 v #668 > > Some(0), kind: FunctionCallError(ExecutionError("Smart contract panicked: +00:05:25 v #669 > > chat_contract.claim_alias / invalid alias")) })), +00:05:25 v #670 > > │ }, +00:05:25 v #671 > > │ ] } } +00:05:25 v #672 > > │ +00:05:25 v #673 > > +00:05:25 v #674 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:05:25 v #675 > > //// test +00:05:25 v #676 > > ///! rust -cd borsh +00:05:25 v #677 > > +00:05:25 v #678 > > inl state' = new () +00:05:25 v #679 > > inl state = state' +00:05:25 v #680 > > inl version = state.version +00:05:25 v #681 > > inl account_set = state.account_set +00:05:25 v #682 > > inl alias_set = state.alias_set +00:05:25 v #683 > > inl account_map = state.account_map +00:05:25 v #684 > > inl alias_map = state.alias_map +00:05:25 v #685 > > inl version = join version +00:05:25 v #686 > > inl account_set = join account_set +00:05:25 v #687 > > inl alias_set = join alias_set +00:05:25 v #688 > > inl account_map = join account_map +00:05:25 v #689 > > inl alias_map = join alias_map +00:05:25 v #690 > > +00:05:25 v #691 > > inl state = +00:05:25 v #692 > > !\\( +00:05:25 v #693 > > (version, account_set, alias_set), +00:05:25 v #694 > > $'$"&mut ($0, $1, $2, !account_map, !alias_map)"' +00:05:25 v #695 > > ) +00:05:25 v #696 > > +00:05:25 v #697 > > "alias1" +00:05:25 v #698 > > |> sm'.to_std_string +00:05:25 v #699 > > |> claim_alias state +00:05:25 v #700 > > +00:05:25 v #701 > > "alias1" +00:05:25 v #702 > > |> sm'.to_std_string +00:05:25 v #703 > > |> claim_alias state +00:05:25 v #704 > > +00:05:25 v #705 > > "alias1" +00:05:25 v #706 > > |> sm'.to_std_string +00:05:25 v #707 > > |> claim_alias state +00:05:25 v #708 > > +00:05:25 v #709 > > inl account_set' : rust.ref (near.iterable_set near.account_id) = +00:05:25 v #710 > > !\($'$"&!state.1"') +00:05:25 v #711 > > +00:05:25 v #712 > > inl alias_set' : rust.ref (near.iterable_set sm'.std_string) = +00:05:25 v #713 > > !\($'$"&!state.2"') +00:05:25 v #714 > > +00:05:25 v #715 > > inl account_set' = +00:05:25 v #716 > > account_set' +00:05:25 v #717 > > |> iter.iter_ref'' +00:05:25 v #718 > > |> iter.cloned +00:05:25 v #719 > > |> iter_collect +00:05:25 v #720 > > +00:05:25 v #721 > > inl alias_set' = +00:05:25 v #722 > > alias_set' +00:05:25 v #723 > > |> iter.iter_ref'' +00:05:25 v #724 > > |> iter.cloned +00:05:25 v #725 > > |> iter_collect +00:05:25 v #726 > > |> am'.vec_map sm'.from_std_string +00:05:25 v #727 > > +00:05:25 v #728 > > trace Verbose +00:05:25 v #729 > > fun () => "chat_contract" +00:05:25 v #730 > > fun () => { +00:05:25 v #731 > > account_set' = account_set' |> sm'.format_debug +00:05:25 v #732 > > alias_set' = alias_set' |> sm'.format_debug +00:05:25 v #733 > > state = state |> sm'.format_debug +00:05:25 v #734 > > } +00:05:25 v #735 > > +00:05:25 v #736 > > trace Debug (fun () => "") id +00:05:25 v #737 > > +00:05:25 v #738 > > account_set' +00:05:25 v #739 > > |> am'.vec_len +00:05:25 v #740 > > |> convert +00:05:25 v #741 > > |> _assert_eq 1u32 +00:05:25 v #742 > > +00:05:25 v #743 > > alias_set' +00:05:25 v #744 > > |> am'.from_vec_base +00:05:25 v #745 > > |> _assert_eq' ;[[ "alias1" ]] +00:05:41 v #746 > > +00:05:41 v #747 > > ── [ 15.75s - return value ] ─────────────────────────────────────────────────── +00:05:41 v #748 > > │ 00:00:00 d #1 chat_contract.claim_alias / { alias = +00:05:41 v #749 > > "alias1"; block_timestamp = 1737642384888397941; signer_account_id = +00:05:41 v #750 > > "dev-20250123142623-83324116341266"; predecessor_account_id = +00:05:41 v #751 > > "dev-20250123142623-83324116341266" } +00:05:41 v #752 > > │ 00:00:00 d #2 chat_contract.claim_alias / { +00:05:41 v #753 > > account_alias = None } +00:05:41 v #754 > > │ 00:00:00 d #3 chat_contract.claim_alias / { alias = +00:05:41 v #755 > > "alias1"; block_timestamp = 1737642384888397941; signer_account_id = +00:05:41 v #756 > > "dev-20250123142623-83324116341266"; predecessor_account_id = +00:05:41 v #757 > > "dev-20250123142623-83324116341266" } +00:05:41 v #758 > > │ 00:00:00 d #4 chat_contract.claim_alias / { +00:05:41 v #759 > > account_alias = Some("alias1") } +00:05:41 v #760 > > │ 00:00:00 d #5 chat_contract.claim_alias / { alias = +00:05:41 v #761 > > "alias1"; block_timestamp = 1737642384888397941; signer_account_id = +00:05:41 v #762 > > "dev-20250123142623-83324116341266"; predecessor_account_id = +00:05:41 v #763 > > "dev-20250123142623-83324116341266" } +00:05:41 v #764 > > │ 00:00:00 d #6 chat_contract.claim_alias / { +00:05:41 v #765 > > account_alias = Some("alias1") } +00:05:41 v #766 > > │ 00:00:00 v #7 chat_contract / { account_set' = +00:05:41 v #767 > > [AccountId("dev-20250123142623-83324116341266")]; alias_set' = ["alias1"]; state +00:05:41 v #768 > > = (2, IterableSet { elements: Vector { len: 1, prefix: [97, 99, 99, 111, 117, +00:05:41 v #769 > > 110, 116, 95, 115, 101, 116, 118] }, index: LookupMap { prefix: [97, 99, 99, +00:05:41 v #770 > > 111, 117, 110, 116, 95, 115, 101, 116, 109] } }, IterableSet { elements: Vector +00:05:41 v #771 > > { len: 1, prefix: [97, 108, 105, 97, 115, 95, 115, 101, 116, 118] }, index: +00:05:41 v #772 > > LookupMap { prefix: [97, 108, 105, 97, 115, 95, 115, 101, 116, 109] } }, +00:05:41 v #773 > > LookupMap { prefix: [97, 99, 99, 111, 117, 110, 116, 95, 109, 97, 112] }, +00:05:41 v #774 > > LookupMap { prefix: [97, 108, 105, 97, 115, 95, 109, 97, 112] }) } +00:05:41 v #775 > > │ +00:05:41 v #776 > > │ 00:00:06 i #2 near_workspaces.print_usd / { retry = 1; +00:05:41 v #777 > > total_gas_burnt_usd = +0.004480; total_gas_burnt = 6706049139764 } +00:05:41 v #778 > > │ 00:00:06 i #3 near_workspaces.print_usd / outcome / { +00:05:41 v #779 > > is_success = true; gas_burnt_usd = +0.000206; tokens_burnt_usd = +0.000206; +00:05:41 v #780 > > gas_burnt = 308081859340; tokens_burnt = 30808185934000000000 } +00:05:41 v #781 > > │ 00:00:06 i #4 near_workspaces.print_usd / outcome / { +00:05:41 v #782 > > is_success = true; gas_burnt_usd = +0.004125; tokens_burnt_usd = +0.004125; +00:05:41 v #783 > > gas_burnt = 6174784717924; tokens_burnt = 617478471792400000000 } +00:05:41 v #784 > > │ 00:00:06 i #5 near_workspaces.print_usd / outcome / { +00:05:41 v #785 > > is_success = true; gas_burnt_usd = +0.000149; tokens_burnt_usd = +0.000000; +00:05:41 v #786 > > gas_burnt = 223182562500; tokens_burnt = 0 } +00:05:41 v #787 > > │ +00:05:41 v #788 > > +00:05:41 v #789 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:05:41 v #790 > > │ ### get_account_info +00:05:41 v #791 > > +00:05:41 v #792 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:05:41 v #793 > > inl get_account_info +00:05:41 v #794 > > (state : rust.ref state) +00:05:41 v #795 > > (account_id : near.account_id) +00:05:41 v #796 > > : optionm'.option' (sm'.std_string * (u64 * u32)) +00:05:41 v #797 > > = +00:05:41 v #798 > > inl account_map : rust.ref (near.lookup_map near.account_id sm'.std_string) +00:05:41 v #799 > > = +00:05:41 v #800 > > !\($'$"&!state.3"') +00:05:41 v #801 > > +00:05:41 v #802 > > inl alias_map : rust.ref (near.lookup_map sm'.std_string (mapm.hash_map +00:05:41 v #803 > > near.account_id (u64 * u32))) = +00:05:41 v #804 > > !\($'$"&!state.4"') +00:05:41 v #805 > > +00:05:41 v #806 > > !\\(account_id, $'"let result = !account_map.get(&$0).and_then(|alias| { +00:05:41 v #807 > > //"') : () +00:05:41 v #808 > > !\($'" !alias_map //"') : () +00:05:41 v #809 > > !\($'" .get(alias) //"') : () +00:05:41 v #810 > > !\($'" .map(|accounts| { //"') : () +00:05:41 v #811 > > !\($'" let result = (alias.clone(), +00:05:41 v #812 > > *accounts.get(&!account_id).unwrap()); //"') : () +00:05:41 v #813 > > !\($'" (result.0, result.1.0, result.1.1) //"') : () +00:05:41 v #814 > > !\($'" }) //"') : () +00:05:41 v #815 > > !\($'"}); //"') : () +00:05:41 v #816 > > +00:05:41 v #817 > > inl result = !\($'"result"') +00:05:41 v #818 > > +00:05:41 v #819 > > trace Debug +00:05:41 v #820 > > fun () => "chat_contract.get_account_info" +00:05:41 v #821 > > fun () => { account_id result } +00:05:41 v #822 > > +00:05:41 v #823 > > trace Debug (fun () => "") id +00:05:41 v #824 > > +00:05:41 v #825 > > result +00:05:41 v #826 > > +00:05:41 v #827 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:05:41 v #828 > > │ ### main +00:05:41 v #829 > > +00:05:41 v #830 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:05:41 v #831 > > ///! _ +00:05:41 v #832 > > +00:05:41 v #833 > > inl main () = +00:05:41 v #834 > > !\($'"} //"') : () +00:05:41 v #835 > > +00:05:41 v #836 > > !\($'"#[[near_sdk::near_bindgen]] //"') : () +00:05:41 v #837 > > +00:05:41 v #838 > > !\($'"#[[derive( //"') : () +00:05:41 v #839 > > !\($'" near_sdk::PanicOnDefault, //"') : () +00:05:41 v #840 > > !\($'" borsh::BorshDeserialize, //"') : () +00:05:41 v #841 > > !\($'" borsh::BorshSerialize, //"') : () +00:05:41 v #842 > > !\($'")]] //"') : () +00:05:41 v #843 > > +00:05:41 v #844 > > !\($'"pub struct State ( //"') : () +00:05:41 v #845 > > +00:05:41 v #846 > > !\($'"/*"') : () +00:05:41 v #847 > > (null () : rust.type_emit state) |> ignore +00:05:41 v #848 > > !\($'"*/ )"') : () +00:05:41 v #849 > > +00:05:41 v #850 > > inl new_ () = +00:05:41 v #851 > > !\($'"#[[init]] //"') : () +00:05:41 v #852 > > !\($'"pub fn new() -> Self { // 1"') : () +00:05:41 v #853 > > +00:05:41 v #854 > > (!\($'"true; /*"') : bool) |> ignore +00:05:41 v #855 > > +00:05:41 v #856 > > (null () : rust.type_emit ()) |> ignore +00:05:41 v #857 > > +00:05:41 v #858 > > (!\($'"true; */"') : bool) |> ignore +00:05:41 v #859 > > +00:05:41 v #860 > > inl result = new () +00:05:41 v #861 > > +00:05:41 v #862 > > $'let _result = !result in _result |> (fun x -> +00:05:41 v #863 > > Fable.Core.RustInterop.emitRustExpr x $"Self($0) // x") // 2' : () +00:05:41 v #864 > > +00:05:41 v #865 > > !\($'"} // 2."') : () +00:05:41 v #866 > > +00:05:41 v #867 > > !\($'"} // 1."') : () +00:05:41 v #868 > > +00:05:41 v #869 > > 2 +00:05:41 v #870 > > +00:05:41 v #871 > > inl is_valid_alias () = +00:05:41 v #872 > > !\($'"fn is_valid_alias(alias: String) -> bool { //"') : () +00:05:41 v #873 > > inl alias = !\($'$"alias"') +00:05:41 v #874 > > inl result = alias |> is_valid_alias +00:05:41 v #875 > > $'let _result = !result in _result |> (fun x -> +00:05:41 v #876 > > Fable.Core.RustInterop.emitRustExpr x "$0 }") // 2' : () +00:05:41 v #877 > > !\($'"} //"') : () +00:05:41 v #878 > > 1 +00:05:41 v #879 > > +00:05:41 v #880 > > inl generate_cid () = +00:05:41 v #881 > > !\($'"pub fn generate_cid( //"') : () +00:05:41 v #882 > > !\($'" &self, //"') : () +00:05:41 v #883 > > !\($'" content: Vec<u8>, //"') : () +00:05:41 v #884 > > !\($'") -> String { //"') : () +00:05:41 v #885 > > inl content = !\($'$"content"') +00:05:41 v #886 > > inl result = generate_cid content +00:05:41 v #887 > > $'let _result = !result in _result |> (fun x -> +00:05:41 v #888 > > Fable.Core.RustInterop.emitRustExpr x "$0 }") // 2' : () +00:05:41 v #889 > > !\($'"} //"') : () +00:05:41 v #890 > > 2 +00:05:41 v #891 > > +00:05:41 v #892 > > inl generate_cid_borsh () = +00:05:41 v #893 > > !\($'"#[[result_serializer(borsh)]] //"') : () +00:05:41 v #894 > > !\($'"pub fn generate_cid_borsh( //"') : () +00:05:41 v #895 > > !\($'" &self, //"') : () +00:05:41 v #896 > > !\($'" #[[serializer(borsh)]] content: Vec<u8>, //"') : () +00:05:41 v #897 > > !\($'") -> String { //"') : () +00:05:41 v #898 > > !\($'" self.generate_cid(content) //"') : () +00:05:41 v #899 > > !\($'"} //"') : () +00:05:41 v #900 > > 1 +00:05:41 v #901 > > +00:05:41 v #902 > > inl claim_alias () = +00:05:41 v #903 > > !\($'"pub fn claim_alias( //"') : () +00:05:41 v #904 > > !\($'" &mut self, //"') : () +00:05:41 v #905 > > !\($'" alias: String, //"') : () +00:05:41 v #906 > > !\($'") { //"') : () +00:05:41 v #907 > > +00:05:41 v #908 > > inl state = !\($'$"&mut self.0"') +00:05:41 v #909 > > inl alias = !\($'$"alias"') +00:05:41 v #910 > > +00:05:41 v #911 > > inl result = claim_alias state alias +00:05:41 v #912 > > trace Debug (fun () => "") (join id) +00:05:41 v #913 > > +00:05:41 v #914 > > !\($'"} //"') : () +00:05:41 v #915 > > +00:05:41 v #916 > > !\($'"} //"') : () +00:05:41 v #917 > > +00:05:41 v #918 > > !\($'"} //"') : () +00:05:41 v #919 > > +00:05:41 v #920 > > 3 +00:05:41 v #921 > > +00:05:41 v #922 > > inl get_account_info () = +00:05:41 v #923 > > !\($'"pub fn get_account_info( //"') : () +00:05:41 v #924 > > !\($'" &self, //"') : () +00:05:41 v #925 > > !\($'" account_id: near_sdk::AccountId, //"') : () +00:05:41 v #926 > > !\($'") -> Option<(String, u64, u32)> { //"') : () +00:05:41 v #927 > > +00:05:41 v #928 > > inl state = !\($'$"&self.0"') +00:05:41 v #929 > > inl account_id : near.account_id = !\($'$"account_id"') +00:05:41 v #930 > > +00:05:41 v #931 > > inl result = account_id |> get_account_info state +00:05:41 v #932 > > $'let _result = !result in _result |> (fun x -> +00:05:41 v #933 > > Fable.Core.RustInterop.emitRustExpr x "$0 } // 4") // 3' : () +00:05:41 v #934 > > +00:05:41 v #935 > > !\($'"} // 2"') : () +00:05:41 v #936 > > +00:05:41 v #937 > > !\($'"} // 1"') : () +00:05:41 v #938 > > +00:05:41 v #939 > > 2 +00:05:41 v #940 > > +00:05:41 v #941 > > inl get_alias_map () = +00:05:41 v #942 > > !\($'"pub fn get_alias_map( //"') : () +00:05:41 v #943 > > !\($'" &self, //"') : () +00:05:41 v #944 > > !\($'" alias: String, //"') : () +00:05:41 v #945 > > !\($'") -> Option<std::collections::HashMap<near_sdk::AccountId, (u64, +00:05:41 v #946 > > u32)>> { //"') : () +00:05:41 v #947 > > +00:05:41 v #948 > > inl alias_map : rust.ref (near.lookup_map sm'.std_string (mapm.hash_map +00:05:41 v #949 > > near.account_id (u64 * u32))) = +00:05:41 v #950 > > !\($'$"&self.0.4"') +00:05:41 v #951 > > +00:05:41 v #952 > > inl alias : sm'.std_string = !\($'$"alias"') +00:05:41 v #953 > > +00:05:41 v #954 > > trace Debug +00:05:41 v #955 > > fun () => "chat_contract.get_alias_map" +00:05:41 v #956 > > fun () => { alias } +00:05:41 v #957 > > +00:05:41 v #958 > > trace Debug (fun () => "") (join id) +00:05:41 v #959 > > +00:05:41 v #960 > > !\\(alias, $'" !alias_map.get(&$0).cloned() //"') : () +00:05:41 v #961 > > !\($'"} //"') : () +00:05:41 v #962 > > +00:05:41 v #963 > > !\($'"} //"') : () +00:05:41 v #964 > > +00:05:41 v #965 > > 2 +00:05:41 v #966 > > +00:05:41 v #967 > > inl get_alias_map_borsh () = +00:05:41 v #968 > > !\($'"#[[result_serializer(borsh)]] //"') : () +00:05:41 v #969 > > !\($'"pub fn get_alias_map_borsh( //"') : () +00:05:41 v #970 > > !\($'" &self, //"') : () +00:05:41 v #971 > > !\($'" #[[serializer(borsh)]] alias: String, //"') : () +00:05:41 v #972 > > !\($'") -> Option<std::collections::HashMap<near_sdk::AccountId, (u64, +00:05:41 v #973 > > u32)>> { //"') : () +00:05:41 v #974 > > !\($'" self.get_alias_map(alias) //"') : () +00:05:41 v #975 > > !\($'"} //"') : () +00:05:41 v #976 > > 1 +00:05:41 v #977 > > +00:05:41 v #978 > > inl fns = +00:05:41 v #979 > > [[ +00:05:41 v #980 > > new_ +00:05:41 v #981 > > is_valid_alias +00:05:41 v #982 > > generate_cid +00:05:41 v #983 > > generate_cid_borsh +00:05:41 v #984 > > claim_alias +00:05:41 v #985 > > get_account_info +00:05:41 v #986 > > get_alias_map +00:05:41 v #987 > > get_alias_map_borsh +00:05:41 v #988 > > ]] +00:05:41 v #989 > > +00:05:41 v #990 > > inl rec loop acc fns i = +00:05:41 v #991 > > match fns with +00:05:41 v #992 > > | [[]] => acc +00:05:41 v #993 > > | x :: xs => +00:05:41 v #994 > > !\($'"#[[near_sdk::near_bindgen]] //"') : () +00:05:41 v #995 > > !\($'"impl State { //"') : () +00:05:41 v #996 > > inl n = x () +00:05:41 v #997 > > !\($'"} /* c"') : () +00:05:41 v #998 > > inl rec loop' i' = +00:05:41 v #999 > > if i' <> 1 // <= n +00:05:41 v #1000 > > then (!\($'"true; */ // ???? / i: !i / i\': !i' / acc: !acc / n: +00:05:41 v #1001 > > !n"') : bool) |> ignore +00:05:41 v #1002 > > else +00:05:41 v #1003 > > (!\($'"true; // ??? / i: !i / i\': !i' / acc: !acc / n: +00:05:41 v #1004 > > !n"') : bool) |> ignore +00:05:41 v #1005 > > loop' (i' + 1) +00:05:41 v #1006 > > loop' 1u8 +00:05:41 v #1007 > > loop (acc + n) xs (i + 1) +00:05:41 v #1008 > > inl n = loop 0u8 fns 1u8 +00:05:41 v #1009 > > +00:05:41 v #1010 > > +00:05:41 v #1011 > > // !\($'"/* a"') : () +00:05:41 v #1012 > > +00:05:41 v #1013 > > // !\($'"} // b"') : () +00:05:41 v #1014 > > +00:05:41 v #1015 > > !\($'"fn _main() //"') : () +00:05:41 v #1016 > > !\($'"{ { //"') : () +00:05:41 v #1017 > > +00:05:41 v #1018 > > inl rec loop' i' = +00:05:41 v #1019 > > if i' <= n +00:05:41 v #1020 > > then +00:05:41 v #1021 > > (!\($'"true; { (); // ?? / i\': !i' / n: !n"') : bool) |> ignore +00:05:41 v #1022 > > loop' (i' + 1) +00:05:41 v #1023 > > else +00:05:41 v #1024 > > (!\($'"true; { { (); // ? / i\': !i' / n: !n"') : bool) |> ignore +00:05:41 v #1025 > > // (!\($'"true; */ // ?? / i\': !i' / n: !n"') : bool) |> ignore +00:05:41 v #1026 > > loop' 1u8 +00:05:41 v #1027 > > +00:05:41 v #1028 > > inl main () = +00:05:41 v #1029 > > $'!main |> ignore' : () +00:05:42 v #1030 > 00:05:41 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 45649 } +00:05:42 v #1031 > 00:05:41 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/apps/chat/contract/chat_contract.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/apps/chat/contract/chat_contract.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } +00:05:44 v #1032 > 00:05:43 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/apps/chat/contract/chat_contract.dib.ipynb to html +00:05:44 v #1033 > 00:05:43 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. +00:05:44 v #1034 > 00:05:43 v #7 ! validate(nb) +00:05:44 v #1035 > 00:05:44 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 +00:05:44 v #1036 > 00:05:44 v #9 ! return _pygments_highlight( +00:05:45 v #1037 > 00:05:44 v #10 ! [NbConvertApp] Writing 404793 bytes to c:\home\git\polyglot\apps\chat\contract\chat_contract.dib.html +00:05:45 v #1038 > 00:05:44 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 884 } +00:05:45 v #1039 > 00:05:44 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 884 } +00:05:45 v #1040 > 00:05:44 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/apps/chat/contract/chat_contract.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/apps/chat/contract/chat_contract.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } +00:05:46 v #1041 > 00:05:45 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } +00:05:46 v #1042 > 00:05:45 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } +00:05:46 v #1043 > 00:05:45 d #16 spiral.run / dib / { exit_code = 0; result_length = 46592 } +00:05:46 d #1044 runtime.execute_with_options_async / { exit_code = 0; output_length = 51306 } +00:05:46 d #1 main / executeCommand / exitCode: 0 / command: ../../../deps/spiral/workspace/target/release/spiral.exe dib --path chat_contract.dib --retries 1 00:00:00 d #1 writeDibCode / output: Spi / path: chat_contract.dib 00:00:00 d #2 parseDibCode / output: Spi / file: chat_contract.dib 00:00:00 v #1 async.run_with_timeout_async / { timeout = 180 } -00:00:00 d #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0 - ""C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 --default-int i32 --default-float f64"; options = { command = dotnet "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 --default-int i32 --default-float f64; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = Some <fun:compiler@87-4>; stdin = None; trace = true; working_directory = Some "C:\home\git\polyglot" } } -00:00:00 v #2 > 00:00:00 d #1 pwd: C:\home\git\polyglot -00:00:00 v #3 > 00:00:00 d #2 dllPath: C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release -00:00:00 v #4 > 00:00:00 d #3 targetDir: C:\home\git\polyglot\target/spiral_Eval -00:00:01 v #2 async.run_with_timeout_async / { timeout = 100 } -00:00:01 v #5 > Starting the Spiral Server. It is bound to: http://localhost:13805 -00:00:01 v #3 async.run_with_timeout_async / { timeout = 100 } -00:00:01 v #1 Supervisor.sendJson / port: 13805 / json: {"Ping":true} / result: -00:00:01 v #2 Supervisor.awaitCompiler / Ping / result: 'Some null' / port: 13805 / retry: 1 -00:00:01 v #6 > Server bound to: http://localhost:13805 -00:00:01 v #4 async.run_with_timeout_async / { timeout = 180 } -00:00:01 d #3 Supervisor.buildFile / takeWhileInclusive / path: chat_contract.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:01 d #4 Supervisor.buildFile / AsyncSeq.scan / path: chat_contract.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:01 d #5 Supervisor.buildFile / takeWhileInclusive / path: chat_contract.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:01 v #6 Supervisor.sendJson / port: 13805 / json: {"FileOpen":{"spiText":"/// # chat_contract\nopen rust\nopen rust.rust_operators\n\n/// ## chat_cont...03E ignore\u0027 : ()\n","uri":"file:///c:/home/git/polyglot/apps/chat/contract/chat_contract.spi"}} / result: -00:00:01 v #7 Supervisor.sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/apps/chat/contract/chat_contract.spi"}} / result: -00:00:02 d #8 Supervisor.buildFile / AsyncSeq.scan / path: chat_contract.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: +00:00:01 v #2 async.run_with_timeout_async / { timeout = 180 } +00:00:01 d #1 Supervisor.buildFile / takeWhileInclusive / path: chat_contract.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: -00:00:02 d #9 Supervisor.buildFile / takeWhileInclusive / path: chat_contract.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: +00:00:01 d #2 Supervisor.buildFile / AsyncSeq.scan / path: chat_contract.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: -00:00:02 d #10 Supervisor.buildFile / AsyncSeq.scan / path: chat_contract.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:02 d #11 Supervisor.buildFile / takeWhileInclusive / path: chat_contract.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:03 d #12 Supervisor.buildFile / AsyncSeq.scan / path: chat_contract.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:03 d #13 Supervisor.buildFile / takeWhileInclusive / path: chat_contract.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:03 d #14 Supervisor.buildFile / AsyncSeq.scan / path: chat_contract.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:03 d #15 Supervisor.buildFile / takeWhileInclusive / path: chat_contract.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:04 d #16 Supervisor.buildFile / AsyncSeq.scan / path: chat_contract.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:04 d #17 Supervisor.buildFile / takeWhileInclusive / path: chat_contract.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:05 d #18 Supervisor.buildFile / AsyncSeq.scan / path: chat_contract.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:05 d #19 Supervisor.buildFile / takeWhileInclusive / path: chat_contract.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: +00:00:01 d #3 Supervisor.buildFile / takeWhileInclusive / path: chat_contract.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: -00:00:05 d #20 Supervisor.buildFile / AsyncSeq.scan / path: chat_contract.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: +00:00:01 v #4 Supervisor.sendJson / port: 13805 / json: {"FileOpen":{"spiText":"/// # chat_contract\nopen rust\nopen rust.rust_operators\n\n/// ## chat_cont...03E ignore\u0027 : ()\n","uri":"file:///c:/home/git/polyglot/apps/chat/contract/chat_contract.spi"}} / result: +00:00:01 v #5 Supervisor.sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/apps/chat/contract/chat_contract.spi"}} / result: +00:00:01 d #6 Supervisor.buildFile / AsyncSeq.scan / path: chat_contract.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: -00:00:05 d #21 Supervisor.buildFile / takeWhileInclusive / path: chat_contract.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: +00:00:01 d #7 Supervisor.buildFile / takeWhileInclusive / path: chat_contract.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: -00:00:05 d #22 Supervisor.buildFile / AsyncSeq.scan / path: chat_contract.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: +00:00:01 d #8 Supervisor.buildFile / AsyncSeq.scan / path: chat_contract.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: #if FABLE_COMPILER [<Fable.Core.Erase; Fable.Core.Emit("*/ $0 /*")>] #endif @@ -70068,7 +27715,7 @@ v0 |> ignore () -00:00:05 d #23 Supervisor.buildFile / takeWhileInclusive / path: chat_contract.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: +00:00:01 d #9 Supervisor.buildFile / takeWhileInclusive / path: chat_contract.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: #if FABLE_COMPILER [<Fable.Core.Erase; Fable.Core.Emit("*/ $0 /*")>] #endif @@ -70112,95 +27759,92 @@ v0 |> ignore () -00:00:06 d #24 FileSystem.watchWithFilter / Disposing watch stream / filter: FileName, LastWrite -00:00:06 v #5 async.run_with_timeout_async / { timeout = 100 } -00:00:00 d #1 persistCodeProject / packages: [Fable.Core] / modules: [lib/spiral/common.fsx; lib/spiral/sm.fsx; lib/spiral/crypto.fsx; ... ] / name: chat_contract / hash: / code.Length: 144141 -00:00:00 d #2 buildProject / fullPath: C:\home\git\polyglot\target\Builder\chat_contract\chat_contract.fsproj +00:00:01 d #10 FileSystem.watchWithFilter / Disposing watch stream / filter: FileName, LastWrite +00:00:00 d #1 persistCodeProject / packages: [Fable.Core] / modules: [deps/spiral/lib/spiral/common.fsx; deps/spiral/lib/spiral/sm.fsx; deps/spiral/lib/spiral/crypto.fsx; ... ] / name: chat_contract / hash: / code.Length: 144141 +00:00:00 d #2 buildProject / fullPath: c:\home\git\polyglot\target\Builder\chat_contract\chat_contract.fsproj 00:00:00 d #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0 - "publish "C:\home\git\polyglot\target/Builder\chat_contract\chat_contract.fsproj" --configuration Release --output "C:\home\git\polyglot\apps\chat\contract\dist" --runtime linux-x64"; options = { command = dotnet publish "C:\home\git\polyglot\target/Builder\chat_contract\chat_contract.fsproj" --configuration Release --output "C:\home\git\polyglot\apps\chat\contract\dist" --runtime linux-x64; cancellation_token = None; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = Some "C:\home\git\polyglot\target\Builder\chat_contract" } } + "publish "c:/home/git\polyglot\target/Builder\chat_contract\chat_contract.fsproj" --configuration Release --output "C:\home\git\polyglot\apps\chat\contract\dist" --runtime linux-x64"; options = { command = dotnet publish "c:/home/git\polyglot\target/Builder\chat_contract\chat_contract.fsproj" --configuration Release --output "C:\home\git\polyglot\apps\chat\contract\dist" --runtime linux-x64; cancellation_token = None; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = Some "c:\home\git\polyglot\target\Builder\chat_contract" } } 00:00:01 v #2 > Determining projects to restore... 00:00:01 v #3 > Paket version 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0 00:00:01 v #4 > The last full restore is still up to date. Nothing left to do. 00:00:01 v #5 > Total time taken: 0 milliseconds -00:00:02 v #6 > Paket version 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0 -00:00:02 v #7 > Restoring C:\home\git\polyglot\target\Builder\chat_contract\chat_contract.fsproj -00:00:02 v #8 > Starting restore process. -00:00:02 v #9 > Total time taken: 0 milliseconds -00:00:03 v #10 > Restored C:\home\git\polyglot\target\Builder\chat_contract\chat_contract.fsproj (in 348 ms). -00:00:10 v #11 > C:\home\git\polyglot\target\Builder\chat_contract\chat_contract.fs(3284,15): warning FS0025: Incomplete pattern matches on this expression. For example, the value 'US6_0 (_)' may indicate a case not covered by the pattern(s). [C:\home\git\polyglot\target\Builder\chat_contract\chat_contract.fsproj] -00:00:15 v #12 > chat_contract -> C:\home\git\polyglot\target\Builder\chat_contract\bin\Release\net9.0\linux-x64\chat_contract.dll -00:00:15 v #13 > chat_contract -> C:\home\git\polyglot\apps\chat\contract\dist\ -00:00:15 v #14 > -00:00:15 v #15 > Workload updates are available. Run `dotnet workload list` for more information. -00:00:16 d #16 runtime.execute_with_options_async / { exit_code = 0; output_length = 1065 } -00:00:16 d #17 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0 - "publish "C:\home\git\polyglot\target/Builder\chat_contract\chat_contract.fsproj" --configuration Release --output "C:\home\git\polyglot\apps\chat\contract\dist" --runtime win-x64"; options = { command = dotnet publish "C:\home\git\polyglot\target/Builder\chat_contract\chat_contract.fsproj" --configuration Release --output "C:\home\git\polyglot\apps\chat\contract\dist" --runtime win-x64; cancellation_token = None; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = Some "C:\home\git\polyglot\target\Builder\chat_contract" } } -00:00:16 v #18 > Determining projects to restore... -00:00:17 v #19 > Paket version 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0 -00:00:17 v #20 > The last full restore is still up to date. Nothing left to do. -00:00:17 v #21 > Total time taken: 0 milliseconds -00:00:17 v #22 > Restored C:\home\git\polyglot\target\Builder\chat_contract\chat_contract.fsproj (in 333 ms). -00:00:24 v #23 > C:\home\git\polyglot\target\Builder\chat_contract\chat_contract.fs(3284,15): warning FS0025: Incomplete pattern matches on this expression. For example, the value 'US6_0 (_)' may indicate a case not covered by the pattern(s). [C:\home\git\polyglot\target\Builder\chat_contract\chat_contract.fsproj] -00:00:28 v #24 > chat_contract -> C:\home\git\polyglot\target\Builder\chat_contract\bin\Release\net9.0\win-x64\chat_contract.dll -00:00:29 v #25 > chat_contract -> C:\home\git\polyglot\apps\chat\contract\dist\ -00:00:29 v #26 > -00:00:29 v #27 > Workload updates are available. Run `dotnet workload list` for more information. -00:00:29 d #28 runtime.execute_with_options_async / { exit_code = 0; output_length = 854 } -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../target/Builder/chat_contract -polyglot/lib/spiral/lib.ps1/GetTargetDir / targetDir: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\chat_contract -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../.. -polyglot/lib/spiral/lib.ps1/BuildFable / TargetDir: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\chat_contract / ProjectName: chat_contract / Language: rs / Runtime: CONTRACT / root: C:\home\git\polyglot\lib\spiral\..\.. -Fable 5.0.0-alpha.2: F# to Rust compiler (status: alpha) - -Thanks to the contributor! @IanManske +00:00:02 v #6 > Restored c:\home\git\polyglot\target\Builder\chat_contract\chat_contract.fsproj (in 334 ms). +00:00:09 v #7 > c:\home\git\polyglot\target\Builder\chat_contract\chat_contract.fs(3284,15): warning FS0025: Incomplete pattern matches on this expression. For example, the value 'US6_0 (_)' may indicate a case not covered by the pattern(s). [c:\home\git\polyglot\target\Builder\chat_contract\chat_contract.fsproj] +00:00:13 v #8 > chat_contract -> c:\home\git\polyglot\target\Builder\chat_contract\bin\Release\net9.0\linux-x64\chat_contract.dll +00:00:14 v #9 > chat_contract -> C:\home\git\polyglot\apps\chat\contract\dist\ +00:00:14 v #10 > +00:00:14 v #11 > Workload updates are available. Run `dotnet workload list` for more information. +00:00:14 d #12 runtime.execute_with_options_async / { exit_code = 0; output_length = 856 } +00:00:14 d #13 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0 + "publish "c:/home/git\polyglot\target/Builder\chat_contract\chat_contract.fsproj" --configuration Release --output "C:\home\git\polyglot\apps\chat\contract\dist" --runtime win-x64"; options = { command = dotnet publish "c:/home/git\polyglot\target/Builder\chat_contract\chat_contract.fsproj" --configuration Release --output "C:\home\git\polyglot\apps\chat\contract\dist" --runtime win-x64; cancellation_token = None; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = Some "c:\home\git\polyglot\target\Builder\chat_contract" } } +00:00:15 v #14 > Determining projects to restore... +00:00:15 v #15 > Paket version 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0 +00:00:15 v #16 > The last full restore is still up to date. Nothing left to do. +00:00:16 v #17 > Total time taken: 0 milliseconds +00:00:16 v #18 > Restored c:\home\git\polyglot\target\Builder\chat_contract\chat_contract.fsproj (in 350 ms). +00:00:23 v #19 > c:\home\git\polyglot\target\Builder\chat_contract\chat_contract.fs(3284,15): warning FS0025: Incomplete pattern matches on this expression. For example, the value 'US6_0 (_)' may indicate a case not covered by the pattern(s). [c:\home\git\polyglot\target\Builder\chat_contract\chat_contract.fsproj] +00:00:27 v #20 > chat_contract -> c:\home\git\polyglot\target\Builder\chat_contract\bin\Release\net9.0\win-x64\chat_contract.dll +00:00:29 v #21 > chat_contract -> C:\home\git\polyglot\apps\chat\contract\dist\ +00:00:29 v #22 > +00:00:29 v #23 > Workload updates are available. Run `dotnet workload list` for more information. +00:00:29 d #24 runtime.execute_with_options_async / { exit_code = 0; output_length = 854 } +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/polyglot/target/Builder/chat_contract +spiral/lib/spiral/lib.ps1/GetTargetDir / targetDir: C:\home\git\polyglot\target\Builder\chat_contract +polyglot/scripts/core.ps1/ResolveLink #4 / Path: C:\home\git\polyglot\deps\spiral\lib\spiral/../../deps/polyglot / parent_target: / path_target: C:\home\git\polyglot / parent: C:\home\git\polyglot\deps\spiral\lib\spiral\..\..\deps / End: polyglot +spiral/lib/spiral/lib.ps1/BuildFable / TargetDir: C:\home\git\polyglot\target\Builder\chat_contract / ProjectName: chat_contract / Language: rs / Runtime: CONTRACT / root: C:\home\git\polyglot +Fable 5.0.0-alpha.5: F# to Rust compiler (status: alpha) + +Thanks to the contributor! @davidpodhola Stand with Ukraine! https://standwithukraine.com.ua/ Parsing target\Builder\chat_contract\chat_contract.fsproj... -Project and references (14 source files) parsed in 3083ms +Retrieving project options from cache, in case of issues run `dotnet fable clean` or try `--noCache` option. +Project and references (14 source files) parsed in 172ms Started Fable compilation... -Fable compilation finished in 9298ms +Fable compilation finished in 8803ms .\target\Builder\chat_contract\chat_contract.fs(3284,15): (3284,19) warning FSHARP: Incomplete pattern matches on this expression. For example, the value 'US6_0 (_)' may indicate a case not covered by the pattern(s). (code 25) -.\lib\spiral\common.fsx(2117,0): (2117,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! -.\lib\spiral\sm.fsx(556,0): (556,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! -.\lib\spiral\async_.fsx(250,0): (250,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! -.\lib\spiral\threading.fsx(139,0): (139,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! -.\lib\spiral\crypto.fsx(2344,0): (2344,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! -.\lib\spiral\date_time.fsx(2527,0): (2527,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! -.\lib\spiral\platform.fsx(120,0): (120,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! -.\lib\spiral\networking.fsx(4935,0): (4935,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! -.\lib\spiral\trace.fsx(2150,0): (2150,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! -.\lib\spiral\runtime.fsx(7101,0): (7101,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! -.\lib\spiral\file_system.fsx(17438,0): (17438,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! +.\deps\spiral\lib\spiral\async_.fsx(250,0): (250,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! +.\deps\spiral\lib\spiral\threading.fsx(139,0): (139,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! +.\deps\spiral\lib\spiral\date_time.fsx(2545,0): (2545,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! +.\deps\spiral\lib\spiral\crypto.fsx(2344,0): (2344,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! +.\deps\spiral\lib\spiral\common.fsx(2117,0): (2117,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! +.\deps\spiral\lib\spiral\sm.fsx(559,0): (559,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! +.\deps\spiral\lib\spiral\platform.fsx(120,0): (120,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! +.\deps\spiral\lib\spiral\networking.fsx(4935,0): (4935,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! +.\deps\spiral\lib\spiral\trace.fsx(2150,0): (2150,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! +.\deps\spiral\lib\spiral\runtime.fsx(7101,0): (7101,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! +.\deps\spiral\lib\spiral\file_system.fsx(17933,0): (17933,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! .\target\Builder\chat_contract\chat_contract.fs(3502,6): (3502,12) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../lib/fsharp/Common_contract.rs -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\chat_contract/target/rs/lib/fsharp/Common.rs / to: C:\home\git\polyglot\lib\spiral\..\..\lib\fsharp\Common_contract.rs -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/common_contract.rs -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\chat_contract/target/rs/lib/spiral/common.rs / to: C:\home\git\polyglot\lib\spiral\..\..\lib\spiral\common_contract.rs -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/date_time_contract.rs -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\chat_contract/target/rs/lib/spiral/date_time.rs / to: C:\home\git\polyglot\lib\spiral\..\..\lib\spiral\date_time_contract.rs -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/async__contract.rs -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\chat_contract/target/rs/lib/spiral/async_.rs / to: C:\home\git\polyglot\lib\spiral\..\..\lib\spiral\async__contract.rs -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/platform_contract.rs -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\chat_contract/target/rs/lib/spiral/platform.rs / to: C:\home\git\polyglot\lib\spiral\..\..\lib\spiral\platform_contract.rs -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/runtime_contract.rs -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\chat_contract/target/rs/lib/spiral/runtime.rs / to: C:\home\git\polyglot\lib\spiral\..\..\lib\spiral\runtime_contract.rs -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/threading_contract.rs -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\chat_contract/target/rs/lib/spiral/threading.rs / to: C:\home\git\polyglot\lib\spiral\..\..\lib\spiral\threading_contract.rs -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/networking_contract.rs -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\chat_contract/target/rs/lib/spiral/networking.rs / to: C:\home\git\polyglot\lib\spiral\..\..\lib\spiral\networking_contract.rs -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/file_system_contract.rs -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\chat_contract/target/rs/lib/spiral/file_system.rs / to: C:\home\git\polyglot\lib\spiral\..\..\lib\spiral\file_system_contract.rs -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/sm_contract.rs -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\chat_contract/target/rs/lib/spiral/sm.rs / to: C:\home\git\polyglot\lib\spiral\..\..\lib\spiral\sm_contract.rs -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/crypto_contract.rs -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\chat_contract/target/rs/lib/spiral/crypto.rs / to: C:\home\git\polyglot\lib\spiral\..\..\lib\spiral\crypto_contract.rs -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/trace_contract.rs -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\chat_contract/target/rs/lib/spiral/trace.rs / to: C:\home\git\polyglot\lib\spiral\..\..\lib\spiral\trace_contract.rs -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/lib_contract.rs -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\chat_contract/target/rs/lib/spiral/lib.rs / to: C:\home\git\polyglot\lib\spiral\..\..\lib\spiral\lib_contract.rs +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/polyglot/target/Builder/chat_contract/target/rs/deps/spiral/lib/fsharp/Common.rs +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/polyglot/lib/fsharp/Common_contract.rs +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\chat_contract/target/rs/lib/fsharp/Common.rs / to: C:\home\git\polyglot\lib\fsharp\Common_contract.rs +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/common_contract.rs +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\chat_contract/target/rs/deps/spiral/lib/spiral/common.rs / to: C:\home\git\spiral\lib\spiral\common_contract.rs +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/date_time_contract.rs +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\chat_contract/target/rs/deps/spiral/lib/spiral/date_time.rs / to: C:\home\git\spiral\lib\spiral\date_time_contract.rs +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/async__contract.rs +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\chat_contract/target/rs/deps/spiral/lib/spiral/async_.rs / to: C:\home\git\spiral\lib\spiral\async__contract.rs +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/platform_contract.rs +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\chat_contract/target/rs/deps/spiral/lib/spiral/platform.rs / to: C:\home\git\spiral\lib\spiral\platform_contract.rs +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/runtime_contract.rs +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\chat_contract/target/rs/deps/spiral/lib/spiral/runtime.rs / to: C:\home\git\spiral\lib\spiral\runtime_contract.rs +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/threading_contract.rs +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\chat_contract/target/rs/deps/spiral/lib/spiral/threading.rs / to: C:\home\git\spiral\lib\spiral\threading_contract.rs +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/networking_contract.rs +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\chat_contract/target/rs/deps/spiral/lib/spiral/networking.rs / to: C:\home\git\spiral\lib\spiral\networking_contract.rs +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/file_system_contract.rs +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\chat_contract/target/rs/deps/spiral/lib/spiral/file_system.rs / to: C:\home\git\spiral\lib\spiral\file_system_contract.rs +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/sm_contract.rs +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\chat_contract/target/rs/deps/spiral/lib/spiral/sm.rs / to: C:\home\git\spiral\lib\spiral\sm_contract.rs +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/crypto_contract.rs +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\chat_contract/target/rs/deps/spiral/lib/spiral/crypto.rs / to: C:\home\git\spiral\lib\spiral\crypto_contract.rs +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/trace_contract.rs +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\chat_contract/target/rs/deps/spiral/lib/spiral/trace.rs / to: C:\home\git\spiral\lib\spiral\trace_contract.rs +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/lib_contract.rs +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\chat_contract/target/rs/deps/spiral/lib/spiral/lib.rs / to: C:\home\git\spiral\lib\spiral\lib_contract.rs Compiling proc-macro2 v1.0.92 Compiling unicode-ident v1.0.14 Compiling typenum v1.17.0 @@ -70232,15 +27876,15 @@ Compiling js-sys v0.3.76 Compiling serde_json v1.0.133 Compiling near-account-id v1.0.0 - Compiling near-token v0.3.0 Compiling near-gas v0.3.0 + Compiling near-token v0.3.0 Compiling near-sdk-macros v5.6.0 Compiling getrandom v0.2.15 Compiling fable_library_rust v0.1.0 (C:\home\git\polyglot\lib\rust\fable\fable_modules\fable-library-rust) Compiling near-sdk v5.6.0 Compiling chat_contract v0.0.1 (C:\home\git\polyglot\apps\chat\contract) - Finished `release` profile [optimized] target(s) in 37.71s - Finished `release` profile [optimized] target(s) in 15.22s + Finished `release` profile [optimized] target(s) in 39.84s + Finished `release` profile [optimized] target(s) in 15.45s Running `/mnt/c/home/git/polyglot/workspace/target/release/chat_contract_tests` @@ -70249,11 +27893,11 @@ inner: 1641878353157, }, transaction: ExecutionOutcome { - transaction_hash: 8ztL4n6AYyMx6HxTNCQ857nkefKTkTSHnqTsCzdwRFGk, - block_hash: 65nAUpDETzvVV3GKY7zWjKEv6XARzjEADgTF3zLoEw9V, + transaction_hash: AsarEYhtn9jKp11T9W6yu9T79L4kCPHmt2kfLw1J1bzp, + block_hash: 5pkdk2uNjKv77K9MpwKEwZXPHNJxHMVPby9Ca2xt2Psr, logs: [], receipt_ids: [ - BmMENHRjC6Rf7WXEcBpfTtFGsA4bRHGfthPWLNpNqtGh, + 27U8pPR3or3KzsV4YfMdeVmWn5L9DK9TDfHUyJuH9Qki, ], gas_burnt: NearGas { inner: 308066207802, @@ -70262,17 +27906,17 @@ inner: 30806620780200000000, }, executor_id: AccountId( - "dev-20250113173923-17409613597254", + "dev-20250123142824-89632897236646", ), - status: SuccessReceiptId(BmMENHRjC6Rf7WXEcBpfTtFGsA4bRHGfthPWLNpNqtGh), + status: SuccessReceiptId(27U8pPR3or3KzsV4YfMdeVmWn5L9DK9TDfHUyJuH9Qki), }, receipts: [ ExecutionOutcome { - transaction_hash: BmMENHRjC6Rf7WXEcBpfTtFGsA4bRHGfthPWLNpNqtGh, - block_hash: 65nAUpDETzvVV3GKY7zWjKEv6XARzjEADgTF3zLoEw9V, + transaction_hash: 27U8pPR3or3KzsV4YfMdeVmWn5L9DK9TDfHUyJuH9Qki, + block_hash: 5pkdk2uNjKv77K9MpwKEwZXPHNJxHMVPby9Ca2xt2Psr, logs: [], receipt_ids: [ - 9hxqiFftLH7LMhS9QgMzRFaU1BBjgWcBjpLA1JGyLXjd, + 4ojWDPsjQd5dGxHpGoG1JnFrNoLkzSUtHi2dZCg6phoF, ], gas_burnt: NearGas { inner: 1333812145355, @@ -70281,7 +27925,7 @@ inner: 133381214535500000000, }, executor_id: AccountId( - "dev-20250113173923-17409613597254", + "dev-20250123142824-89632897236646", ), status: SuccessValue(''), }, @@ -70299,14 +27943,14 @@ claim_alias(contract, ''): ExecutionFinalResult { total_gas_burnt: NearGas { - inner: 2141387412714, + inner: 1918204850214, }, transaction: ExecutionOutcome { - transaction_hash: 2T84WQ6oEYnWjd2mkmVW3ydzwuSB4nMgQHtuqz4fGnqw, - block_hash: BnrGwgppk96zSo8Rg4N6T5UHbfQMTLB9v4SEHLS6EPpq, + transaction_hash: GY8p7Q4bF4gwWS9sUAckeM15a7u5pouRsamAF2z7K3Pg, + block_hash: 9Gsrz6KnFBbgNmLrvKgJ8RTD5kXNTDgCcxgqJkZBQeZr, logs: [], receipt_ids: [ - NypZ5DrjxDu4uzojPsWBahXijFh4ASRUP84QKq78WuE, + 7fq2jGkizsKdtKv9onsJH3WYQTGuK8XNdn1R7BxFaQym, ], gas_burnt: NearGas { inner: 308110926482, @@ -70315,17 +27959,17 @@ inner: 30811092648200000000, }, executor_id: AccountId( - "dev-20250113173923-17409613597254", + "dev-20250123142824-89632897236646", ), - status: SuccessReceiptId(NypZ5DrjxDu4uzojPsWBahXijFh4ASRUP84QKq78WuE), + status: SuccessReceiptId(7fq2jGkizsKdtKv9onsJH3WYQTGuK8XNdn1R7BxFaQym), }, receipts: [ ExecutionOutcome { - transaction_hash: NypZ5DrjxDu4uzojPsWBahXijFh4ASRUP84QKq78WuE, - block_hash: BnrGwgppk96zSo8Rg4N6T5UHbfQMTLB9v4SEHLS6EPpq, + transaction_hash: 7fq2jGkizsKdtKv9onsJH3WYQTGuK8XNdn1R7BxFaQym, + block_hash: 9Gsrz6KnFBbgNmLrvKgJ8RTD5kXNTDgCcxgqJkZBQeZr, logs: [], receipt_ids: [ - 6EDWZeD5je35jVRwuwsmmdtnQsjnYHQF7TknPTCjzgBd, + B8XahGQNHSGipTf9i4z1YHFJpK7RsRMiKu2Ffv1NdZ6a, ], gas_burnt: NearGas { inner: 1610093923732, @@ -70334,44 +27978,25 @@ inner: 161009392373200000000, }, executor_id: AccountId( - "dev-20250113173923-17409613597254", + "dev-20250123142824-89632897236646", ), status: Failure(ActionError(ActionError { index: Some(0), kind: FunctionCallError(ExecutionError("Smart contract panicked: chat_contract.claim_alias / invalid alias")) })), }, - ExecutionOutcome { - transaction_hash: 6EDWZeD5je35jVRwuwsmmdtnQsjnYHQF7TknPTCjzgBd, - block_hash: EihTzYPu6RbAWRQiF32H9smTRZnxruWsQVjTjRiU3VaR, - logs: [], - receipt_ids: [], - gas_burnt: NearGas { - inner: 223182562500, - }, - tokens_burnt: NearToken { - inner: 0, - }, - executor_id: AccountId( - "dev-20250113173923-17409613597254", - ), - status: SuccessValue(''), - }, ], status: Failure(ActionError(ActionError { index: Some(0), kind: FunctionCallError(ExecutionError("Smart contract panicked: chat_contract.claim_alias / invalid alias")) })), } -total_gas_burnt_usd: 0.001430446791692952 +total_gas_burnt_usd: 0.001281360839942952 outcome (success: true): outcome_gas_burnt_usd: 0.000205818098889976 outcome_tokens_burnt_usd: 0.0 outcome (success: false): outcome_gas_burnt_usd: 0.001075542741052976 outcome_tokens_burnt_usd: 0.0 -outcome (success: true): - outcome_gas_burnt_usd: 0.00014908595175 - outcome_tokens_burnt_usd: 0.0 dev_create_account(account1): Account { id: AccountId( - "dev-20250113173925-88808997755721", + "dev-20250123142826-48929324042368", ), } @@ -70384,11 +28009,11 @@ inner: 3516874867458, }, transaction: ExecutionOutcome { - transaction_hash: Fmf2S4gbdNbTGuBebvtn1sR7QscDh3n8RtAJ2TKekYpt, - block_hash: EcmUpHjG96szm1qDHiypuSdZasdbHkTB3EqkSxi9tcpM, + transaction_hash: 5mmhBVFFm6hvrwJeFADhyazG6NNoZfbyofaAJpTezjMh, + block_hash: AntHRReN3UF1E9n4gsBv2BmzuxXqZKARSjgEgfKgXJyr, logs: [], receipt_ids: [ - DqS9tnhK3bgwSN1mXy7oMxkCaWscyMpUrzUT19sjFw7a, + 26MP37wre7GLrUBYFNnSZAgGF8xVHzFoHTcT8cTxZC1D, ], gas_burnt: NearGas { inner: 308124342086, @@ -70397,19 +28022,19 @@ inner: 30812434208600000000, }, executor_id: AccountId( - "dev-20250113173925-88808997755721", + "dev-20250123142826-48929324042368", ), - status: SuccessReceiptId(DqS9tnhK3bgwSN1mXy7oMxkCaWscyMpUrzUT19sjFw7a), + status: SuccessReceiptId(26MP37wre7GLrUBYFNnSZAgGF8xVHzFoHTcT8cTxZC1D), }, receipts: [ ExecutionOutcome { - transaction_hash: DqS9tnhK3bgwSN1mXy7oMxkCaWscyMpUrzUT19sjFw7a, - block_hash: 91d6cAsgFMuUGXc7nyVZUJaHL9x6aspWtm4i4iZEbjoU, + transaction_hash: 26MP37wre7GLrUBYFNnSZAgGF8xVHzFoHTcT8cTxZC1D, + block_hash: 1AWhdLJf8iB4qHL1fRqTsnCmPUzhhXosnBnSjbor6zp, logs: [ - "17:39:26 \u{1b}[94md\u{1b}[39m #1 chat_contract.claim_alias / { alias = \"alias1\"; block_timestamp = 1736789966616160162; signer_account_id = \"dev-20250113173925-88808997755721\"; predecessor_account_id = \"dev-20250113173925-88808997755721\" }\n17:39:26 \u{1b}[94md\u{1b}[39m #2 chat_contract.claim_alias / { account_alias = None }", + "14:28:28 \u{1b}[94md\u{1b}[39m #1 chat_contract.claim_alias / { alias = \"alias1\"; block_timestamp = 1737642508034759205; signer_account_id = \"dev-20250123142826-48929324042368\"; predecessor_account_id = \"dev-20250123142826-48929324042368\" }\n14:28:28 \u{1b}[94md\u{1b}[39m #2 chat_contract.claim_alias / { account_alias = None }", ], receipt_ids: [ - ANbazoUx8XRBGoYqvsTkNnQTFzk8BMBAMg2GNa7ojRYy, + 3rkyqM99HVyRFjLh7PSminfw1pTQYKwpbeC1axoqhoN1, ], gas_burnt: NearGas { inner: 2985567962872, @@ -70418,13 +28043,13 @@ inner: 298556796287200000000, }, executor_id: AccountId( - "dev-20250113173923-17409613597254", + "dev-20250123142824-89632897236646", ), status: SuccessValue(''), }, ExecutionOutcome { - transaction_hash: ANbazoUx8XRBGoYqvsTkNnQTFzk8BMBAMg2GNa7ojRYy, - block_hash: 8NnDhzQxwYWkKVgacfMT8FiKQ89tnv6C9GLB6gCFgwcq, + transaction_hash: 3rkyqM99HVyRFjLh7PSminfw1pTQYKwpbeC1axoqhoN1, + block_hash: BpJ79aFQ31ZCfCe9J2c5eeS8M7mA9UhDif78BurgWZmM, logs: [], receipt_ids: [], gas_burnt: NearGas { @@ -70434,7 +28059,7 @@ inner: 0, }, executor_id: AccountId( - "dev-20250113173925-88808997755721", + "dev-20250123142826-48929324042368", ), status: SuccessValue(''), }, @@ -70458,11 +28083,11 @@ inner: 3649119919788, }, transaction: ExecutionOutcome { - transaction_hash: 7wbhbZdyWWmkRZRX2eTziM5V4vEEHKYEjMwNPzv9jXdk, - block_hash: F8JpEi1tVTSYGf6BJGhXZxmAQh68MJgXGPxgVXyYBtaK, + transaction_hash: 5M4jJ1FbhFd73VJKJEzUjPt8ewML6vemeDeg9UtT5FVc, + block_hash: 7bVazVHbHfzJbc1f7gG95MEfB6sj8L8JLua3bn8yW4vp, logs: [], receipt_ids: [ - AJhUzscnrJYkQXbrgw97ai4ThsU9ZdePSyCsBL3s8sqZ, + GBNwcYnL8tkzYMmtZ7Qg6uZdLB47nWVr1WtGhHD4dyjG, ], gas_burnt: NearGas { inner: 308124342086, @@ -70471,19 +28096,19 @@ inner: 30812434208600000000, }, executor_id: AccountId( - "dev-20250113173925-88808997755721", + "dev-20250123142826-48929324042368", ), - status: SuccessReceiptId(AJhUzscnrJYkQXbrgw97ai4ThsU9ZdePSyCsBL3s8sqZ), + status: SuccessReceiptId(GBNwcYnL8tkzYMmtZ7Qg6uZdLB47nWVr1WtGhHD4dyjG), }, receipts: [ ExecutionOutcome { - transaction_hash: AJhUzscnrJYkQXbrgw97ai4ThsU9ZdePSyCsBL3s8sqZ, - block_hash: Gn7NibGoFxNXK9EAfkteN6TDix6g6CrQDZ5fcYgYPYi5, + transaction_hash: GBNwcYnL8tkzYMmtZ7Qg6uZdLB47nWVr1WtGhHD4dyjG, + block_hash: 9LQd141Locykhy7NWJAeB3D3JuZzH57dugQKQ3w1Qmjy, logs: [ - "17:39:27 \u{1b}[94md\u{1b}[39m #1 chat_contract.claim_alias / { alias = \"alias1\"; block_timestamp = 1736789967628788333; signer_account_id = \"dev-20250113173925-88808997755721\"; predecessor_account_id = \"dev-20250113173925-88808997755721\" }\n17:39:27 \u{1b}[94md\u{1b}[39m #2 chat_contract.claim_alias / { account_alias = Some(\"alias1\") }", + "14:28:29 \u{1b}[94md\u{1b}[39m #1 chat_contract.claim_alias / { alias = \"alias1\"; block_timestamp = 1737642509051201687; signer_account_id = \"dev-20250123142826-48929324042368\"; predecessor_account_id = \"dev-20250123142826-48929324042368\" }\n14:28:29 \u{1b}[94md\u{1b}[39m #2 chat_contract.claim_alias / { account_alias = Some(\"alias1\") }", ], receipt_ids: [ - 99ojkNnQF2Tk3Z5e4A7ordEtsybHhKB7jMe6kZSQJrkg, + GyweGgjgMAfpaf4Qv6ygbRi5LEodcjFh4gPX1KiiywHo, ], gas_burnt: NearGas { inner: 3117813015202, @@ -70492,13 +28117,13 @@ inner: 311781301520200000000, }, executor_id: AccountId( - "dev-20250113173923-17409613597254", + "dev-20250123142824-89632897236646", ), status: SuccessValue(''), }, ExecutionOutcome { - transaction_hash: 99ojkNnQF2Tk3Z5e4A7ordEtsybHhKB7jMe6kZSQJrkg, - block_hash: 9xBfckxNKcWtdDymN9ynBNKhroqruQa9iN4Do31EH12Q, + transaction_hash: GyweGgjgMAfpaf4Qv6ygbRi5LEodcjFh4gPX1KiiywHo, + block_hash: 4ixMGDNzuTB9g71gjWj68sMwak1tMaMGbwFwuNxVadry, logs: [], receipt_ids: [], gas_burnt: NearGas { @@ -70508,7 +28133,7 @@ inner: 0, }, executor_id: AccountId( - "dev-20250113173925-88808997755721", + "dev-20250123142826-48929324042368", ), status: SuccessValue(''), }, @@ -70530,7 +28155,7 @@ get_account_info(account1): Some( ( "alias1", - 1736789967628788333, + 1737642509051201687, 0, ), ) @@ -70539,9 +28164,9 @@ get_alias_map(account1, alias1): Some( { AccountId( - "dev-20250113173925-88808997755721", + "dev-20250123142826-48929324042368", ): ( - 1736789967628788333, + 1737642509051201687, 0, ), }, @@ -70550,7 +28175,7 @@ dev_create_account(account2): Account { id: AccountId( - "dev-20250113173928-97118083217867", + "dev-20250123142829-63481961072258", ), } @@ -70560,11 +28185,11 @@ inner: 3748858338570, }, transaction: ExecutionOutcome { - transaction_hash: GnddKDijzacMCriKZeM99AsswTN1zYuD4f6mHXE9gLn5, - block_hash: 7P5c5nJTxGo5jCrRY3PSRRPcdTgSvPosnQQovSRx9vXX, + transaction_hash: 9WP41Jbkr2dAD9aM1a2cCH7xm9SviVnfDEw1wFTbFPHm, + block_hash: DwvFTCzFCYv3Lq6H1kxj6QS1tuzc3D46vCLaQBPP6BxS, logs: [], receipt_ids: [ - FLqWrBC6Qy2hdi8wXXRdqYZRiNcF39vQUMS9dB2BuCwD, + CdZzzdgVA1EP9V25of8aqU7X1rbVB77tD1n3a1i6joxr, ], gas_burnt: NearGas { inner: 308124342086, @@ -70573,19 +28198,19 @@ inner: 30812434208600000000, }, executor_id: AccountId( - "dev-20250113173928-97118083217867", + "dev-20250123142829-63481961072258", ), - status: SuccessReceiptId(FLqWrBC6Qy2hdi8wXXRdqYZRiNcF39vQUMS9dB2BuCwD), + status: SuccessReceiptId(CdZzzdgVA1EP9V25of8aqU7X1rbVB77tD1n3a1i6joxr), }, receipts: [ ExecutionOutcome { - transaction_hash: FLqWrBC6Qy2hdi8wXXRdqYZRiNcF39vQUMS9dB2BuCwD, - block_hash: 8s1Z8Q1T8wxsWecRix1SXh3tsXnMpvANh8x34Vi1nTGp, + transaction_hash: CdZzzdgVA1EP9V25of8aqU7X1rbVB77tD1n3a1i6joxr, + block_hash: 7kc1ufPpTmSz8A8zZvRFg7g1Ksa9XyFcpYfVgq4PVa1x, logs: [ - "17:39:29 \u{1b}[94md\u{1b}[39m #1 chat_contract.claim_alias / { alias = \"alias2\"; block_timestamp = 1736789969662939868; signer_account_id = \"dev-20250113173928-97118083217867\"; predecessor_account_id = \"dev-20250113173928-97118083217867\" }\n17:39:29 \u{1b}[94md\u{1b}[39m #2 chat_contract.claim_alias / { account_alias = None }", + "14:28:31 \u{1b}[94md\u{1b}[39m #1 chat_contract.claim_alias / { alias = \"alias2\"; block_timestamp = 1737642511079987079; signer_account_id = \"dev-20250123142829-63481961072258\"; predecessor_account_id = \"dev-20250123142829-63481961072258\" }\n14:28:31 \u{1b}[94md\u{1b}[39m #2 chat_contract.claim_alias / { account_alias = None }", ], receipt_ids: [ - qFf7vVYDt4EkhYmFuN3sXi5A5hbvdE2GE3kcF9vjete, + HnYnV8VMSw6SAf7ZzCrhxBmeLGcHwnCX1m8s4sGLiD69, ], gas_burnt: NearGas { inner: 3217551433984, @@ -70594,13 +28219,13 @@ inner: 321755143398400000000, }, executor_id: AccountId( - "dev-20250113173923-17409613597254", + "dev-20250123142824-89632897236646", ), status: SuccessValue(''), }, ExecutionOutcome { - transaction_hash: qFf7vVYDt4EkhYmFuN3sXi5A5hbvdE2GE3kcF9vjete, - block_hash: 2TJaNsskBED1Vk649P3Z3vcpmoLNcSFciESNLiixzgUF, + transaction_hash: HnYnV8VMSw6SAf7ZzCrhxBmeLGcHwnCX1m8s4sGLiD69, + block_hash: DZc9kp5qSNbSrFWxiv1TDkGxax9wejTHZZMct7eYQNw7, logs: [], receipt_ids: [], gas_burnt: NearGas { @@ -70610,7 +28235,7 @@ inner: 0, }, executor_id: AccountId( - "dev-20250113173928-97118083217867", + "dev-20250123142829-63481961072258", ), status: SuccessValue(''), }, @@ -70632,7 +28257,7 @@ get_account_info(account2): Some( ( "alias2", - 1736789969662939868, + 1737642511079987079, 0, ), ) @@ -70641,9 +28266,9 @@ get_alias_map_borsh(alias2): Some( { AccountId( - "dev-20250113173928-97118083217867", + "dev-20250123142829-63481961072258", ): ( - 1736789969662939868, + 1737642511079987079, 0, ), }, @@ -70652,14 +28277,14 @@ claim_alias(account2, alias1): ExecutionFinalResult { total_gas_burnt: NearGas { - inner: 3938860284909, + inner: 3715677722409, }, transaction: ExecutionOutcome { - transaction_hash: J9JT4XL1TmrWtZdTgbdKHkgfkLimb546c4z8hZS7MZso, - block_hash: 9U83pSKRy1ZKccfuXAppj4cWutegV2i8tgZ7cpKX8zX5, + transaction_hash: GWG8gGQfWcgpVqgaHdxRYvAxPXnHNxWe87ZLLbkHiS2J, + block_hash: 2Yr7Zd8iUmbgwBzyvnnsSQHvK3Um6Eft6cj2PjKRqEJB, logs: [], receipt_ids: [ - 41Y4p3CajgwMWgJfH22oxKuHEVA4s6TXwZHsBWHjB7Xu, + DNwe71FFxAzRGNJEvRSidXMxaTr2mJJn3Vhu5LhK2JwZ, ], gas_burnt: NearGas { inner: 308124342086, @@ -70668,19 +28293,19 @@ inner: 30812434208600000000, }, executor_id: AccountId( - "dev-20250113173928-97118083217867", + "dev-20250123142829-63481961072258", ), - status: SuccessReceiptId(41Y4p3CajgwMWgJfH22oxKuHEVA4s6TXwZHsBWHjB7Xu), + status: SuccessReceiptId(DNwe71FFxAzRGNJEvRSidXMxaTr2mJJn3Vhu5LhK2JwZ), }, receipts: [ ExecutionOutcome { - transaction_hash: 41Y4p3CajgwMWgJfH22oxKuHEVA4s6TXwZHsBWHjB7Xu, - block_hash: 9wUfzvRkySuzsyBJM8MX9X9Z91ohj16xTggMWodHnogZ, + transaction_hash: DNwe71FFxAzRGNJEvRSidXMxaTr2mJJn3Vhu5LhK2JwZ, + block_hash: HNRdLxGvBUkax4AqZJK8PK6MZ32ou3mBentBjqHsYB3b, logs: [ - "17:39:30 \u{1b}[94md\u{1b}[39m #1 chat_contract.claim_alias / { alias = \"alias1\"; block_timestamp = 1736789970679313536; signer_account_id = \"dev-20250113173928-97118083217867\"; predecessor_account_id = \"dev-20250113173928-97118083217867\" }\n17:39:30 \u{1b}[94md\u{1b}[39m #2 chat_contract.claim_alias / { account_alias = Some(\"alias2\") }", + "14:28:32 \u{1b}[94md\u{1b}[39m #1 chat_contract.claim_alias / { alias = \"alias1\"; block_timestamp = 1737642512094170122; signer_account_id = \"dev-20250123142829-63481961072258\"; predecessor_account_id = \"dev-20250123142829-63481961072258\" }\n14:28:32 \u{1b}[94md\u{1b}[39m #2 chat_contract.claim_alias / { account_alias = Some(\"alias2\") }", ], receipt_ids: [ - 717iNFvDuCDZZccedQZUvz3AqWhqCNt6xifjjqioXhPy, + 9tSurdoahfZ9GcmuTZrmvDjTep7Azrj7CZaZKbBhAJaq, ], gas_burnt: NearGas { inner: 3407553380323, @@ -70689,45 +28314,26 @@ inner: 340755338032300000000, }, executor_id: AccountId( - "dev-20250113173923-17409613597254", - ), - status: SuccessValue(''), - }, - ExecutionOutcome { - transaction_hash: 717iNFvDuCDZZccedQZUvz3AqWhqCNt6xifjjqioXhPy, - block_hash: 6zd67LB6J3kt7WnNTUcE7jkk5C2V1bv7hd2Ax4PoW9pY, - logs: [], - receipt_ids: [], - gas_burnt: NearGas { - inner: 223182562500, - }, - tokens_burnt: NearToken { - inner: 0, - }, - executor_id: AccountId( - "dev-20250113173928-97118083217867", + "dev-20250123142824-89632897236646", ), status: SuccessValue(''), }, ], status: SuccessValue(''), } -total_gas_burnt_usd: 0.002631158670319212 +total_gas_burnt_usd: 0.002482072718569212 outcome (success: true): outcome_gas_burnt_usd: 0.000205827060513448 outcome_tokens_burnt_usd: 0.0 outcome (success: true): outcome_gas_burnt_usd: 0.002276245658055764 outcome_tokens_burnt_usd: 0.0 -outcome (success: true): - outcome_gas_burnt_usd: 0.00014908595175 - outcome_tokens_burnt_usd: 0.0 get_account_info(account2): Some( ( "alias1", - 1736789970679313536, + 1737642512094170122, 1, ), ) @@ -70736,15 +28342,15 @@ get_alias_map(account2, alias1): Some( { AccountId( - "dev-20250113173925-88808997755721", + "dev-20250123142826-48929324042368", ): ( - 1736789967628788333, + 1737642509051201687, 0, ), AccountId( - "dev-20250113173928-97118083217867", + "dev-20250123142829-63481961072258", ): ( - 1736789970679313536, + 1737642512094170122, 1, ), }, @@ -70758,14 +28364,14 @@ claim_alias(account1, alias2): ExecutionFinalResult { total_gas_burnt: NearGas { - inner: 3713278709037, + inner: 3936461271537, }, transaction: ExecutionOutcome { - transaction_hash: G9os4hftGdGRr3nJTcRhXqY512rW4C3wq4U7uJbuT6YP, - block_hash: AruMQRWHVrrpGpYdbhNWvL9DwcVdgVtrz2UNkgKBWgsh, + transaction_hash: 8vF5Vb5mL74k8LKQksk3J7xnRHrCsbo1LJg7o2WkTm49, + block_hash: 9KjiL6HguHsyGvMLMF7D2eNJZTFhQnsoB6Z8XyHiq2PL, logs: [], receipt_ids: [ - HHFRFDoeoHGaSQAHYFxkGjjhR7gQAkg2Nfj8aay9Q9eL, + 5kZbzSaS2q7EGqnmhiYqfLHn5SPays5BBn3k7AHcJMuA, ], gas_burnt: NearGas { inner: 308124342086, @@ -70774,19 +28380,19 @@ inner: 30812434208600000000, }, executor_id: AccountId( - "dev-20250113173925-88808997755721", + "dev-20250123142826-48929324042368", ), - status: SuccessReceiptId(HHFRFDoeoHGaSQAHYFxkGjjhR7gQAkg2Nfj8aay9Q9eL), + status: SuccessReceiptId(5kZbzSaS2q7EGqnmhiYqfLHn5SPays5BBn3k7AHcJMuA), }, receipts: [ ExecutionOutcome { - transaction_hash: HHFRFDoeoHGaSQAHYFxkGjjhR7gQAkg2Nfj8aay9Q9eL, - block_hash: DsZeGtuFKM8TNgzQri1wRKpGgM8v542BCTNYoMVF4Sq7, + transaction_hash: 5kZbzSaS2q7EGqnmhiYqfLHn5SPays5BBn3k7AHcJMuA, + block_hash: 6YQ3okGdyK6LVBpGnonvg1rXasSiu7Qk5UENzhvrfXdo, logs: [ - "17:39:31 \u{1b}[94md\u{1b}[39m #1 chat_contract.claim_alias / { alias = \"alias2\"; block_timestamp = 1736789971695313803; signer_account_id = \"dev-20250113173925-88808997755721\"; predecessor_account_id = \"dev-20250113173925-88808997755721\" }\n17:39:31 \u{1b}[94md\u{1b}[39m #2 chat_contract.claim_alias / { account_alias = Some(\"alias1\") }", + "14:28:32 \u{1b}[94md\u{1b}[39m #1 chat_contract.claim_alias / { alias = \"alias2\"; block_timestamp = 1737642512702648807; signer_account_id = \"dev-20250123142826-48929324042368\"; predecessor_account_id = \"dev-20250123142826-48929324042368\" }\n14:28:32 \u{1b}[94md\u{1b}[39m #2 chat_contract.claim_alias / { account_alias = Some(\"alias1\") }", ], receipt_ids: [ - 7Pzmqq1h4rjv1hhxH9GW1g4NYftQmVEu46uBHMyWsF5u, + CkmSsDzSzXpfnyge281wSUDZ5PNUBsYMHbb5tyo6p5q8, ], gas_burnt: NearGas { inner: 3405154366951, @@ -70795,26 +28401,45 @@ inner: 340515436695100000000, }, executor_id: AccountId( - "dev-20250113173923-17409613597254", + "dev-20250123142824-89632897236646", + ), + status: SuccessValue(''), + }, + ExecutionOutcome { + transaction_hash: CkmSsDzSzXpfnyge281wSUDZ5PNUBsYMHbb5tyo6p5q8, + block_hash: 5uy8SAN5nSMKjB3A7vW6McjQDkVUn3EeyoRYMoJJrkEJ, + logs: [], + receipt_ids: [], + gas_burnt: NearGas { + inner: 223182562500, + }, + tokens_burnt: NearToken { + inner: 0, + }, + executor_id: AccountId( + "dev-20250123142826-48929324042368", ), status: SuccessValue(''), }, ], status: SuccessValue(''), } -total_gas_burnt_usd: 0.002480470177636716 +total_gas_burnt_usd: 0.0026295561293867157 outcome (success: true): outcome_gas_burnt_usd: 0.000205827060513448 outcome_tokens_burnt_usd: 0.0 outcome (success: true): outcome_gas_burnt_usd: 0.002274643117123268 outcome_tokens_burnt_usd: 0.0 +outcome (success: true): + outcome_gas_burnt_usd: 0.00014908595175 + outcome_tokens_burnt_usd: 0.0 get_account_info(account1): Some( ( "alias2", - 1736789971695313803, + 1737642512702648807, 0, ), ) @@ -70823,9 +28448,9 @@ get_alias_map(account1, alias2): Some( { AccountId( - "dev-20250113173925-88808997755721", + "dev-20250123142826-48929324042368", ): ( - 1736789971695313803, + 1737642512702648807, 0, ), }, @@ -70835,9 +28460,9 @@ get_alias_map(account1, alias1): Some( { AccountId( - "dev-20250113173928-97118083217867", + "dev-20250123142829-63481961072258", ): ( - 1736789970679313536, + 1737642512094170122, 1, ), }, @@ -70846,14 +28471,14 @@ claim_alias(account1, alias1): ExecutionFinalResult { total_gas_burnt: NearGas { - inner: 3938843829789, + inner: 3715661267289, }, transaction: ExecutionOutcome { - transaction_hash: 2ckWCej2rhQ72GFYdRzPuc2nVYCN37n9tn8MNqSji52V, - block_hash: E8mqPePY3jMiHxDaXQBY5DU7PzfTThcs62adBsuAYcbZ, + transaction_hash: 3tsrjTLmhEePJEyBDKXo79ZTvBDP54AvV988wq6cKMTQ, + block_hash: CW8AmdszT1ZpdP9JHYLukH9grFH5Ksb2n9bCvZYFxR2N, logs: [], receipt_ids: [ - 1J8d9nZmYKLz9buzkcHKm9hz1CVcbN7hTYSGpc9Rhxy, + Ci4okGbwcA9hFPrWivH3xqtRE6M7b1x6uLtMrU4t9qBz, ], gas_burnt: NearGas { inner: 308124342086, @@ -70862,19 +28487,19 @@ inner: 30812434208600000000, }, executor_id: AccountId( - "dev-20250113173925-88808997755721", + "dev-20250123142826-48929324042368", ), - status: SuccessReceiptId(1J8d9nZmYKLz9buzkcHKm9hz1CVcbN7hTYSGpc9Rhxy), + status: SuccessReceiptId(Ci4okGbwcA9hFPrWivH3xqtRE6M7b1x6uLtMrU4t9qBz), }, receipts: [ ExecutionOutcome { - transaction_hash: 1J8d9nZmYKLz9buzkcHKm9hz1CVcbN7hTYSGpc9Rhxy, - block_hash: Cj9Wpf5DGk1wkaoDwRBdE6A8fpWePksMWAgwaPLVrUHb, + transaction_hash: Ci4okGbwcA9hFPrWivH3xqtRE6M7b1x6uLtMrU4t9qBz, + block_hash: 4Su87CpcSWyqVg2MyiRd2kpqvXUAxPT6SuVG4mtQJ5v4, logs: [ - "17:39:32 \u{1b}[94md\u{1b}[39m #1 chat_contract.claim_alias / { alias = \"alias1\"; block_timestamp = 1736789972305759764; signer_account_id = \"dev-20250113173925-88808997755721\"; predecessor_account_id = \"dev-20250113173925-88808997755721\" }\n17:39:32 \u{1b}[94md\u{1b}[39m #2 chat_contract.claim_alias / { account_alias = Some(\"alias2\") }", + "14:28:33 \u{1b}[94md\u{1b}[39m #1 chat_contract.claim_alias / { alias = \"alias1\"; block_timestamp = 1737642513720440613; signer_account_id = \"dev-20250123142826-48929324042368\"; predecessor_account_id = \"dev-20250123142826-48929324042368\" }\n14:28:33 \u{1b}[94md\u{1b}[39m #2 chat_contract.claim_alias / { account_alias = Some(\"alias2\") }", ], receipt_ids: [ - 6yyMGKY2KH5ufdepxzWWdwTuMQSBe7yWJpnfKdnkGjRe, + 9wBWX9TJPySDyzaoskFukZakk6xG2KvvSrUt1SRtnzJb, ], gas_burnt: NearGas { inner: 3407536925203, @@ -70883,45 +28508,26 @@ inner: 340753692520300000000, }, executor_id: AccountId( - "dev-20250113173923-17409613597254", - ), - status: SuccessValue(''), - }, - ExecutionOutcome { - transaction_hash: 6yyMGKY2KH5ufdepxzWWdwTuMQSBe7yWJpnfKdnkGjRe, - block_hash: 4S18z52DFCiHguqPKVKMkfw1TajpFPcDUaChjSyWkBaf, - logs: [], - receipt_ids: [], - gas_burnt: NearGas { - inner: 223182562500, - }, - tokens_burnt: NearToken { - inner: 0, - }, - executor_id: AccountId( - "dev-20250113173925-88808997755721", + "dev-20250123142824-89632897236646", ), status: SuccessValue(''), }, ], status: SuccessValue(''), } -total_gas_burnt_usd: 0.002631147678299052 +total_gas_burnt_usd: 0.0024820617265490516 outcome (success: true): outcome_gas_burnt_usd: 0.000205827060513448 outcome_tokens_burnt_usd: 0.0 outcome (success: true): outcome_gas_burnt_usd: 0.002276234666035604 outcome_tokens_burnt_usd: 0.0 -outcome (success: true): - outcome_gas_burnt_usd: 0.00014908595175 - outcome_tokens_burnt_usd: 0.0 get_account_info(account1): Some( ( "alias1", - 1736789972305759764, + 1737642513720440613, 1, ), ) @@ -70930,16 +28536,16 @@ get_alias_map(account1, alias1): Some( { AccountId( - "dev-20250113173925-88808997755721", + "dev-20250123142829-63481961072258", ): ( - 1736789972305759764, - 1, + 1737642512094170122, + 0, ), AccountId( - "dev-20250113173928-97118083217867", + "dev-20250123142826-48929324042368", ): ( - 1736789970679313536, - 0, + 1737642513720440613, + 1, ), }, ) @@ -70953,7 +28559,7 @@
00:00:00 v #1 async.run_with_timeout_async / { timeout = 180 } -00:00:00 d #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0 - ""C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 --default-int i32 --default-float f64"; options = { command = dotnet "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 --default-int i32 --default-float f64; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = Some <fun:compiler@87-4>; stdin = None; trace = true; working_directory = Some "C:\home\git\polyglot" } } -00:00:00 v #2 > 00:00:00 d #1 pwd: C:\home\git\polyglot -00:00:00 v #3 > 00:00:00 d #2 dllPath: C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release -00:00:00 v #4 > 00:00:00 d #3 targetDir: C:\home\git\polyglot\target/spiral_Eval -00:00:01 v #2 async.run_with_timeout_async / { timeout = 100 } -00:00:01 v #5 > Starting the Spiral Server. It is bound to: http://localhost:13805 -00:00:01 v #3 async.run_with_timeout_async / { timeout = 100 } -00:00:01 v #4 async.run_with_timeout_async / { timeout = 100 } -00:00:01 v #1 Supervisor.sendJson / port: 13805 / json: {"Ping":true} / result: -00:00:01 v #2 Supervisor.awaitCompiler / Ping / result: 'Some null' / port: 13805 / retry: 1 -00:00:01 v #6 > Server bound to: http://localhost:13805 -00:00:01 d #7 runtime.execute_with_options_async / { file_name = ../../../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path cube.dib"; options = { command = ../../../../deps/spiral/workspace/target/release/spiral.exe dib --path cube.dib; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } -00:00:01 v #8 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "cube.dib"])) } -00:00:01 v #9 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/apps/spiral/temp/cube/cube.dib", "--output-path", "c:/home/git/polyglot/apps/spiral/temp/cube/cube.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/apps/spiral/temp/cube/cube.dib" --output-path "c:/home/git/polyglot/apps/spiral/temp/cube/cube.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } -00:00:03 v #10 > > -00:00:03 v #11 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:03 v #12 > > │ # cube -00:00:03 v #13 > > -00:00:03 v #14 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:03 v #15 > > │ ## cube -00:00:07 v #16 > > -00:00:07 v #17 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:07 v #18 > > open System -00:00:07 v #19 > > open System.Threading.Tasks -00:00:07 v #20 > > open System.Text -00:00:07 v #21 > > -00:00:07 v #22 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:07 v #23 > > let width = 160 -00:00:07 v #24 > > let height = 44 -00:00:07 v #25 > > let backgroundChar = '.' -00:00:07 v #26 > > let distanceFromCam = 100.0 -00:00:07 v #27 > > let k1 = 40.0 -00:00:07 v #28 > > let incrementSpeed = 0.6 -00:00:07 v #29 > > -00:00:07 v #30 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:07 v #31 > > │ ### get_width -00:00:08 v #32 > > -00:00:08 v #33 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:08 v #34 > > inl get_width () = -00:00:08 v #35 > > 160i32 -00:00:12 v #36 > > -00:00:12 v #37 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:12 v #38 > > │ ### get_height -00:00:12 v #39 > > -00:00:12 v #40 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:12 v #41 > > inl get_height () = -00:00:12 v #42 > > 44i32 -00:00:13 v #43 > > -00:00:13 v #44 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:13 v #45 > > │ ### get_background_char -00:00:13 v #46 > > -00:00:13 v #47 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:13 v #48 > > inl get_background_char () = -00:00:13 v #49 > > '.' -00:00:13 v #50 > > -00:00:13 v #51 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:13 v #52 > > │ ### get_distance_from_cam -00:00:13 v #53 > > -00:00:13 v #54 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:13 v #55 > > inl get_distance_from_cam () = -00:00:13 v #56 > > 100f64 -00:00:14 v #57 > > -00:00:14 v #58 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:14 v #59 > > │ ### get_k1 -00:00:14 v #60 > > -00:00:14 v #61 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:14 v #62 > > inl get_k1 () = -00:00:14 v #63 > > 40f64 -00:00:14 v #64 > > -00:00:14 v #65 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:14 v #66 > > │ ### get_increment_speed -00:00:14 v #67 > > -00:00:14 v #68 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:14 v #69 > > inl get_increment_speed () = -00:00:14 v #70 > > 0.6f64 -00:00:15 v #71 > > -00:00:15 v #72 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:15 v #73 > > │ ### rotation -00:00:15 v #74 > > -00:00:15 v #75 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:15 v #76 > > type Rotation = { a: float; b: float; c: float } -00:00:15 v #77 > > -00:00:15 v #78 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:15 v #79 > > type rotation = -00:00:15 v #80 > > { -00:00:15 v #81 > > a : f64 -00:00:15 v #82 > > b : f64 -00:00:15 v #83 > > c : f64 -00:00:15 v #84 > > } -00:00:15 v #85 > > -00:00:15 v #86 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:15 v #87 > > │ ### cube -00:00:15 v #88 > > -00:00:15 v #89 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:15 v #90 > > type Cube = { cubeWidth: float; horizontalOffset: float } -00:00:16 v #91 > > -00:00:16 v #92 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:16 v #93 > > type cube = -00:00:16 v #94 > > { -00:00:16 v #95 > > cube_width : f64 -00:00:16 v #96 > > horizontal_offset : f64 -00:00:16 v #97 > > } -00:00:16 v #98 > > -00:00:16 v #99 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:16 v #100 > > │ ### get_cubes -00:00:16 v #101 > > -00:00:16 v #102 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:16 v #103 > > let cubes = [[ -00:00:16 v #104 > > { cubeWidth = 20.0; horizontalOffset = -40.0 } -00:00:16 v #105 > > { cubeWidth = 10.0; horizontalOffset = 10.0 } -00:00:16 v #106 > > { cubeWidth = 5.0; horizontalOffset = 40.0 } -00:00:16 v #107 > > ]] -00:00:16 v #108 > > -00:00:16 v #109 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:16 v #110 > > inl get_cubes () : list cube = -00:00:16 v #111 > > [[ -00:00:16 v #112 > > { cube_width = 20; horizontal_offset = -40 } -00:00:16 v #113 > > { cube_width = 10; horizontal_offset = 10 } -00:00:16 v #114 > > { cube_width = 5; horizontal_offset = 40 } -00:00:16 v #115 > > ]] -00:00:16 v #116 > > -00:00:16 v #117 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:16 v #118 > > │ ### calculate_x -00:00:16 v #119 > > -00:00:16 v #120 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:16 v #121 > > let calculateX i j k (rot: Rotation) = -00:00:16 v #122 > > let a, b, c = rot.a, rot.b, rot.c -00:00:16 v #123 > > j * sin a * sin b * cos c - k * cos a * sin b * cos c + -00:00:16 v #124 > > j * cos a * sin c + k * sin a * sin c + i * cos b * cos c -00:00:17 v #125 > > -00:00:17 v #126 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:17 v #127 > > inl calculate_x i j k (rot : rotation) = -00:00:17 v #128 > > inl a, b, c = rot.a, rot.b, rot.c -00:00:17 v #129 > > j * sin a * sin b * cos c - k * cos a * sin b * cos c + -00:00:17 v #130 > > j * cos a * sin c + k * sin a * sin c + i * cos b * cos c -00:00:17 v #131 > > -00:00:17 v #132 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:17 v #133 > > │ ### calculate_y -00:00:17 v #134 > > -00:00:17 v #135 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:17 v #136 > > let calculateY i j k (rot: Rotation) = -00:00:17 v #137 > > let a, b, c = rot.a, rot.b, rot.c -00:00:17 v #138 > > j * cos a * cos c + k * sin a * cos c - -00:00:17 v #139 > > j * sin a * sin b * sin c + k * cos a * sin b * sin c - -00:00:17 v #140 > > i * cos b * sin c -00:00:17 v #141 > > -00:00:17 v #142 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:17 v #143 > > inl calculate_y i j k (rot : rotation) = -00:00:17 v #144 > > inl a, b, c = rot.a, rot.b, rot.c -00:00:17 v #145 > > j * cos a * cos c + k * sin a * cos c - -00:00:17 v #146 > > j * sin a * sin b * sin c + k * cos a * sin b * sin c - -00:00:17 v #147 > > i * cos b * sin c -00:00:18 v #148 > > -00:00:18 v #149 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:18 v #150 > > │ ### calculate_z -00:00:18 v #151 > > -00:00:18 v #152 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:18 v #153 > > let calculateZ i j k (rot: Rotation) = -00:00:18 v #154 > > let a, b, c = rot.a, rot.b, rot.c -00:00:18 v #155 > > k * cos a * cos b - j * sin a * cos b + i * sin b -00:00:18 v #156 > > -00:00:18 v #157 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:18 v #158 > > inl calculate_z i j k (rot : rotation) = -00:00:18 v #159 > > inl a, b, c = rot.a, rot.b, rot.c -00:00:18 v #160 > > k * cos a * cos b - j * sin a * cos b + i * sin b -00:00:18 v #161 > > -00:00:18 v #162 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:18 v #163 > > │ ### calculate_for_surface -00:00:18 v #164 > > -00:00:18 v #165 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:18 v #166 > > let calculateForSurface cubeX cubeY cubeZ ch rot horizontalOffset = -00:00:18 v #167 > > let x = calculateX cubeX cubeY cubeZ rot -00:00:18 v #168 > > let y = calculateY cubeX cubeY cubeZ rot -00:00:18 v #169 > > let z = calculateZ cubeX cubeY cubeZ rot + distanceFromCam -00:00:18 v #170 > > let ooz = 1.0 / z -00:00:18 v #171 > > let xp = int (float width / 2.0 + horizontalOffset + k1 * ooz * x * 2.0) -00:00:18 v #172 > > let yp = int (float height / 2.0 + k1 * ooz * y) -00:00:18 v #173 > > let idx = xp + yp * width -00:00:18 v #174 > > if idx >= 0 && idx < width * height -00:00:18 v #175 > > then Some (idx, (ooz, ch)) -00:00:18 v #176 > > else None -00:00:18 v #177 > > -00:00:18 v #178 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:18 v #179 > > let calculate_for_surface cube_x cube_y cube_z ch rot horizontal_offset = -00:00:18 v #180 > > inl x = calculate_x cube_x cube_y cube_z rot -00:00:18 v #181 > > inl y = calculate_y cube_x cube_y cube_z rot -00:00:18 v #182 > > inl z = calculate_z cube_x cube_y cube_z rot + get_distance_from_cam () -00:00:18 v #183 > > inl ooz = 1.0 / z -00:00:18 v #184 > > inl xp = i32 (f64 (get_width ()) / 2.0 + horizontal_offset + get_k1 () * ooz -00:00:18 v #185 > > * x * 2.0) -00:00:18 v #186 > > inl yp = i32 (f64 (get_height ()) / 2.0 + get_k1 () * ooz * y) -00:00:18 v #187 > > inl idx = xp + yp * get_width () -00:00:18 v #188 > > if idx >= 0 && idx < get_width () * get_height () -00:00:18 v #189 > > then Some (idx, (ooz, ch)) -00:00:18 v #190 > > else None -00:00:19 v #191 > > -00:00:19 v #192 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:19 v #193 > > │ ### frange -00:00:19 v #194 > > -00:00:19 v #195 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:19 v #196 > > let frange start stop step = -00:00:19 v #197 > > seq { -00:00:19 v #198 > > let mutable current = start -00:00:19 v #199 > > while (step > 0.0 && current < stop) || (step < 0.0 && current > stop) -00:00:19 v #200 > > do -00:00:19 v #201 > > yield current -00:00:19 v #202 > > current <- current + step -00:00:19 v #203 > > } -00:00:19 v #204 > > -00:00:19 v #205 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:19 v #206 > > inl frange start stop step : _ f64 = -00:00:19 v #207 > > fun () => -00:00:19 v #208 > > inl current = mut start -00:00:19 v #209 > > loopw.while -00:00:19 v #210 > > fun () => (step > 0f64 && *current < stop) || (step < 0 && *current -00:00:19 v #211 > > > stop) -00:00:19 v #212 > > fun () => -00:00:19 v #213 > > *current |> yield -00:00:19 v #214 > > current <- *current + step -00:00:19 v #215 > > |> seq.new_seq -00:00:19 v #216 > > -00:00:19 v #217 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:19 v #218 > > │ ### get_cube_points -00:00:19 v #219 > > -00:00:19 v #220 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:19 v #221 > > let getCubePoints (cube: Cube) rot = -00:00:19 v #222 > > let cw = cube.cubeWidth -00:00:19 v #223 > > let ho = cube.horizontalOffset -00:00:19 v #224 > > let cubeRange = frange (-cw) cw incrementSpeed -00:00:19 v #225 > > seq { -00:00:19 v #226 > > for cubeX in cubeRange do -00:00:19 v #227 > > for cubeY in cubeRange do -00:00:19 v #228 > > let x = -00:00:19 v #229 > > [[ -00:00:19 v #230 > > calculateForSurface cubeX cubeY (-cw) '@' rot ho -00:00:19 v #231 > > calculateForSurface cw cubeY cubeX '$' rot ho -00:00:19 v #232 > > calculateForSurface (-cw) cubeY (-cubeX) '~' rot ho -00:00:19 v #233 > > calculateForSurface (-cubeX) cubeY cw '#' rot ho -00:00:19 v #234 > > calculateForSurface cubeX (-cw) (-cubeY) ';' rot ho -00:00:19 v #235 > > calculateForSurface cubeX cw cubeY '+' rot ho -00:00:19 v #236 > > ]] -00:00:19 v #237 > > |> Seq.choose id -00:00:19 v #238 > > yield! x -00:00:19 v #239 > > } -00:00:19 v #240 > > -00:00:19 v #241 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:19 v #242 > > inl get_cube_points (cube : cube) rot = -00:00:19 v #243 > > inl cw = cube.cube_width -00:00:19 v #244 > > inl ho = cube.horizontal_offset -00:00:19 v #245 > > inl cube_range = frange -cw cw (get_increment_speed ()) -00:00:19 v #246 > > inl cube_range = join cube_range -00:00:19 v #247 > > inl get cube_x cube_y = -00:00:19 v #248 > > [[ -00:00:19 v #249 > > calculate_for_surface cube_x cube_y -cw ';' rot ho -00:00:19 v #250 > > calculate_for_surface cw cube_y cube_x '\\' rot ho -00:00:19 v #251 > > calculate_for_surface -cw cube_y -cube_x '/' rot ho -00:00:19 v #252 > > calculate_for_surface -cube_x cube_y cw '=' rot ho -00:00:19 v #253 > > calculate_for_surface cube_x -cw -cube_y '>' rot ho -00:00:19 v #254 > > calculate_for_surface cube_x cw cube_y '<' rot ho -00:00:19 v #255 > > ]] -00:00:19 v #256 > > |> listm'.box -00:00:19 v #257 > > inl get = join get -00:00:19 v #258 > > inl box x : _ (i32 * f64 * char) = -00:00:19 v #259 > > optionm'.box x -00:00:19 v #260 > > inl box = join box -00:00:19 v #261 > > fun () => -00:00:19 v #262 > > backend_switch { -00:00:19 v #263 > > Fsharp = fun () => -00:00:19 v #264 > > $'for cube_x in !cube_range do' -00:00:19 v #265 > > $'for cube_y in !cube_range do' -00:00:19 v #266 > > $'let x = !get cube_x cube_y |> Seq.choose !box ' -00:00:19 v #267 > > $'yield\! x' : () -00:00:19 v #268 > > Python = fun () => -00:00:19 v #269 > > $'cube_range = !cube_range ' -00:00:19 v #270 > > $'get = !get ' -00:00:19 v #271 > > $'box = !box ' -00:00:19 v #272 > > $'for cube_x in cube_range:' -00:00:19 v #273 > > $' for cube_y in cube_range:' -00:00:19 v #274 > > $' x = get(cube_x)(cube_y)' -00:00:19 v #275 > > $' for i in x:' -00:00:19 v #276 > > $' i_ = box(i)' -00:00:19 v #277 > > $' if i_ is not None: yield i' : () -00:00:19 v #278 > > } -00:00:19 v #279 > > |> seq.new_seq -00:00:20 v #280 > > -00:00:20 v #281 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:20 v #282 > > │ ### generate_frame -00:00:20 v #283 > > -00:00:20 v #284 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:20 v #285 > > let generateFrame rot = -00:00:20 v #286 > > let updates = -00:00:20 v #287 > > cubes -00:00:20 v #288 > > |> Seq.collect (fun cube -> getCubePoints cube rot) -00:00:20 v #289 > > let buffer = Array.create (width * height) None -00:00:20 v #290 > > updates -00:00:20 v #291 > > |> Seq.iter (fun (idx, (ooz, ch)) -> -00:00:20 v #292 > > match buffer.[[idx]] with -00:00:20 v #293 > > | Some (prevOoz, _) when prevOoz >= ooz -> () -00:00:20 v #294 > > | _ -> buffer.[[idx]] <- Some (ooz, ch) -00:00:20 v #295 > > ) -00:00:20 v #296 > > let sb = StringBuilder() -00:00:20 v #297 > > for row in 0 .. (height - 1) do -00:00:20 v #298 > > for col in 0 .. (width - 1) do -00:00:20 v #299 > > let idx = col + row * width -00:00:20 v #300 > > let ch = -00:00:20 v #301 > > match buffer.[[idx]] with -00:00:20 v #302 > > | Some (_, ch) -> ch -00:00:20 v #303 > > | None -> backgroundChar -00:00:20 v #304 > > sb.Append(ch) |> ignore -00:00:20 v #305 > > sb.AppendLine() |> ignore -00:00:20 v #306 > > sb.ToString() -00:00:20 v #307 > > -00:00:20 v #308 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:20 v #309 > > //// test -00:00:20 v #310 > > -00:00:20 v #311 > > let rot = { a = 0.0; b = 0.0; c = 0.0 } -00:00:20 v #312 > > let frame = generateFrame rot -00:00:20 v #313 > > Console.Write frame -00:00:20 v #314 > > -00:00:20 v #315 > > ── [ 42.18ms - stdout ] ──────────────────────────────────────────────────────── -00:00:20 v #316 > > │ -00:00:20 v #317 > > ................................................................................ -00:00:20 v #318 > > ................................................................................ -00:00:20 v #319 > > │ -00:00:20 v #320 > > ................................................................................ -00:00:20 v #321 > > ................................................................................ -00:00:20 v #322 > > │ -00:00:20 v #323 > > ................................................................................ -00:00:20 v #324 > > ................................................................................ -00:00:20 v #325 > > │ -00:00:20 v #326 > > ................................................................................ -00:00:20 v #327 > > ................................................................................ -00:00:20 v #328 > > │ -00:00:20 v #329 > > ................................................................................ -00:00:20 v #330 > > ................................................................................ -00:00:20 v #331 > > │ -00:00:20 v #332 > > ................................................................................ -00:00:20 v #333 > > ................................................................................ -00:00:20 v #334 > > │ -00:00:20 v #335 > > ................................................................................ -00:00:20 v #336 > > ................................................................................ -00:00:20 v #337 > > │ -00:00:20 v #338 > > ................................................................................ -00:00:20 v #339 > > ................................................................................ -00:00:20 v #340 > > │ -00:00:20 v #341 > > ................................................................................ -00:00:20 v #342 > > ................................................................................ -00:00:20 v #343 > > │ -00:00:20 v #344 > > ................................................................................ -00:00:20 v #345 > > ................................................................................ -00:00:20 v #346 > > │ -00:00:20 v #347 > > ................................................................................ -00:00:20 v #348 > > ................................................................................ -00:00:20 v #349 > > │ -00:00:20 v #350 > > ................................................................................ -00:00:20 v #351 > > ................................................................................ -00:00:20 v #352 > > │ -00:00:20 v #353 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$................... -00:00:20 v #354 > > ................................................................................ -00:00:20 v #355 > > │ -00:00:20 v #356 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$................... -00:00:20 v #357 > > ................................................................................ -00:00:20 v #358 > > │ -00:00:20 v #359 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$................... -00:00:20 v #360 > > ................................................................................ -00:00:20 v #361 > > │ -00:00:20 v #362 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$................... -00:00:20 v #363 > > ................................................................................ -00:00:20 v #364 > > │ -00:00:20 v #365 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$................... -00:00:20 v #366 > > ................................................................................ -00:00:20 v #367 > > │ -00:00:20 v #368 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$................... -00:00:20 v #369 > > .@@@@@@@@@@@@@@@@@$............................................................. -00:00:20 v #370 > > │ -00:00:20 v #371 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$................... -00:00:20 v #372 > > .@@@@@@@@@@@@@@@@@$............................................................. -00:00:20 v #373 > > │ -00:00:20 v #374 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$................... -00:00:20 v #375 > > .@@@@@@@@@@@@@@@@@$................@@@@@@@@@$................................... -00:00:20 v #376 > > │ -00:00:20 v #377 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$................... -00:00:20 v #378 > > .@@@@@@@@@@@@@@@@@$................@@@@@@@@@$................................... -00:00:20 v #379 > > │ -00:00:20 v #380 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$................... -00:00:20 v #381 > > .@@@@@@@@@@@@@@@@@$................@@@@@@@@@$................................... -00:00:20 v #382 > > │ -00:00:20 v #383 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$................... -00:00:20 v #384 > > .@@@@@@@@@@@@@@@@@$................@@@@@@@@@$................................... -00:00:20 v #385 > > │ -00:00:20 v #386 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$................... -00:00:20 v #387 > > .@@@@@@@@@@@@@@@@@$................@@@@@@@@@$................................... -00:00:20 v #388 > > │ -00:00:20 v #389 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$................... -00:00:20 v #390 > > .@@@@@@@@@@@@@@@@@$................+++++++++.................................... -00:00:20 v #391 > > │ -00:00:20 v #392 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$................... -00:00:20 v #393 > > .@@@@@@@@@@@@@@@@@$............................................................. -00:00:20 v #394 > > │ -00:00:20 v #395 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$................... -00:00:20 v #396 > > .+++++++++++++++++$............................................................. -00:00:20 v #397 > > │ -00:00:20 v #398 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$................... -00:00:20 v #399 > > ................................................................................ -00:00:20 v #400 > > │ -00:00:20 v #401 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$................... -00:00:20 v #402 > > ................................................................................ -00:00:20 v #403 > > │ -00:00:20 v #404 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$................... -00:00:20 v #405 > > ................................................................................ -00:00:20 v #406 > > │ -00:00:20 v #407 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$................... -00:00:20 v #408 > > ................................................................................ -00:00:20 v #409 > > │ -00:00:20 v #410 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$................... -00:00:20 v #411 > > ................................................................................ -00:00:20 v #412 > > │ -00:00:20 v #413 > > ....................++++++++++++++++++++++++++++++++++++++++.................... -00:00:20 v #414 > > ................................................................................ -00:00:20 v #415 > > │ -00:00:20 v #416 > > ................................................................................ -00:00:20 v #417 > > ................................................................................ -00:00:20 v #418 > > │ -00:00:20 v #419 > > ................................................................................ -00:00:20 v #420 > > ................................................................................ -00:00:20 v #421 > > │ -00:00:20 v #422 > > ................................................................................ -00:00:20 v #423 > > ................................................................................ -00:00:20 v #424 > > │ -00:00:20 v #425 > > ................................................................................ -00:00:20 v #426 > > ................................................................................ -00:00:20 v #427 > > │ -00:00:20 v #428 > > ................................................................................ -00:00:20 v #429 > > ................................................................................ -00:00:20 v #430 > > │ -00:00:20 v #431 > > ................................................................................ -00:00:20 v #432 > > ................................................................................ -00:00:20 v #433 > > │ -00:00:20 v #434 > > ................................................................................ -00:00:20 v #435 > > ................................................................................ -00:00:20 v #436 > > │ -00:00:20 v #437 > > ................................................................................ -00:00:20 v #438 > > ................................................................................ -00:00:20 v #439 > > │ -00:00:20 v #440 > > ................................................................................ -00:00:20 v #441 > > ................................................................................ -00:00:20 v #442 > > │ -00:00:20 v #443 > > ................................................................................ -00:00:20 v #444 > > ................................................................................ -00:00:20 v #445 > > │ -00:00:20 v #446 > > ................................................................................ -00:00:20 v #447 > > ................................................................................ -00:00:20 v #448 > > │ -00:00:20 v #449 > > -00:00:20 v #450 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:20 v #451 > > inl generate_frame rot = -00:00:20 v #452 > > inl updates : seq.seq' (int * (f64 * char)) = -00:00:20 v #453 > > inl get_cube_points' cube : seq.seq' (int * (f64 * char)) = -00:00:20 v #454 > > get_cube_points cube rot -00:00:20 v #455 > > inl cubes = get_cubes () |> listm'.box -00:00:20 v #456 > > backend_switch { -00:00:20 v #457 > > Fsharp = fun () => -00:00:20 v #458 > > inl get_cube_points' = join get_cube_points' -00:00:20 v #459 > > (cubes |> $'Seq.collect !get_cube_points' ') : seq.seq' (int * -00:00:20 v #460 > > (f64 * char)) -00:00:20 v #461 > > Python = fun () => -00:00:20 v #462 > > $'cubes = !cubes ' -00:00:20 v #463 > > $'get_cube_points = !get_cube_points' ' -00:00:20 v #464 > > $'[[x for cube in cubes for x in get_cube_points(*cube)]]' : -00:00:20 v #465 > > seq.seq' (int * (f64 * char)) -00:00:20 v #466 > > } -00:00:20 v #467 > > inl none : _ (f64 * char) = None -00:00:20 v #468 > > inl width = get_width () -00:00:20 v #469 > > inl height = get_height () -00:00:20 v #470 > > inl buffer = -00:00:20 v #471 > > backend_switch { -00:00:20 v #472 > > Fsharp = fun () => -00:00:20 v #473 > > $'Array.create (!width * !height) !none ' : a int (option (f64 * -00:00:20 v #474 > > char)) -00:00:20 v #475 > > Python = fun () => -00:00:20 v #476 > > $'[[!none for _ in range(!width * !height)]]' : a int (option -00:00:20 v #477 > > (f64 * char)) -00:00:20 v #478 > > } -00:00:20 v #479 > > -00:00:20 v #480 > > inl fn idx ((ooz : f64), (ch : char)) = -00:00:20 v #481 > > match buffer |> am'.index idx with -00:00:20 v #482 > > | Some (prev_ooz, _) when prev_ooz >= ooz => () -00:00:20 v #483 > > | _ => -00:00:20 v #484 > > inl x = (ooz, ch) |> Some -00:00:20 v #485 > > backend_switch { -00:00:20 v #486 > > Fsharp = fun () => -00:00:20 v #487 > > $'!buffer.[[!idx]] <- !x ' : () -00:00:20 v #488 > > Python = fun () => -00:00:20 v #489 > > $'!buffer[[!idx]] = !x ' : () -00:00:20 v #490 > > } -00:00:20 v #491 > > backend_switch { -00:00:20 v #492 > > Fsharp = fun () => -00:00:20 v #493 > > updates -00:00:20 v #494 > > |> $'Seq.iter (fun (struct (idx, ooz, ch)) -> !fn idx (ooz, ch))' : -00:00:20 v #495 > > () -00:00:20 v #496 > > Python = fun () => -00:00:20 v #497 > > $'for (idx, ooz, ch) in !updates: !fn(idx)(ooz, ch)' : () -00:00:20 v #498 > > } -00:00:20 v #499 > > -00:00:20 v #500 > > inl sb = "" |> sm'.string_builder -00:00:20 v #501 > > inl fn1 row = -00:00:20 v #502 > > inl fn2 col = -00:00:20 v #503 > > inl idx = col + row * width -00:00:20 v #504 > > inl ch = -00:00:20 v #505 > > match buffer |> am'.index idx with -00:00:20 v #506 > > | Some (_, ch) => ch -00:00:20 v #507 > > | None => get_background_char () -00:00:20 v #508 > > sb |> sm'.builder_append (ch |> sm'.obj_to_string) |> ignore -00:00:20 v #509 > > -00:00:20 v #510 > > backend_switch { -00:00:20 v #511 > > Fsharp = fun () => -00:00:20 v #512 > > $'for col in 0 .. (!width - 1) do !fn2 col' : () -00:00:20 v #513 > > Python = fun () => -00:00:20 v #514 > > $'for col in range(!width): !fn2(col)' : () -00:00:20 v #515 > > } -00:00:20 v #516 > > sb |> sm'.builder_append_line |> ignore -00:00:20 v #517 > > -00:00:20 v #518 > > backend_switch { -00:00:20 v #519 > > Fsharp = fun () => -00:00:20 v #520 > > $'for row in 0 .. (!height - 1) do !fn1 row' : () -00:00:20 v #521 > > Python = fun () => -00:00:20 v #522 > > $'for row in range(!height): !fn1(row)' : () -00:00:20 v #523 > > } -00:00:20 v #524 > > sb |> sm'.obj_to_string -00:00:20 v #525 > > -00:00:20 v #526 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:20 v #527 > > //// test -00:00:20 v #528 > > ///! fsharp -00:00:20 v #529 > > ///! cuda -00:00:20 v #530 > > ///! rust -00:00:20 v #531 > > ///! typescript -00:00:20 v #532 > > ///! python -00:00:20 v #533 > > -00:00:20 v #534 > > { a = 0.0; b = 0.0; c = 0.0 } -00:00:20 v #535 > > |> generate_frame -00:00:20 v #536 > > |> console.write_line -00:00:31 v #537 > > -00:00:31 v #538 > > ── [ 10.92s - return value ] ─────────────────────────────────────────────────── -00:00:31 v #539 > > │ " -00:00:31 v #540 > > │ .py output (Cuda): -00:00:31 v #541 > > │ -00:00:31 v #542 > > ................................................................................ -00:00:31 v #543 > > ................................................................................ -00:00:31 v #544 > > │ -00:00:31 v #545 > > ................................................................................ -00:00:31 v #546 > > ................................................................................ -00:00:31 v #547 > > │ -00:00:31 v #548 > > ................................................................................ -00:00:31 v #549 > > ................................................................................ -00:00:31 v #550 > > │ -00:00:31 v #551 > > ................................................................................ -00:00:31 v #552 > > ................................................................................ -00:00:31 v #553 > > │ -00:00:31 v #554 > > ................................................................................ -00:00:31 v #555 > > ................................................................................ -00:00:31 v #556 > > │ -00:00:31 v #557 > > ................................................................................ -00:00:31 v #558 > > ................................................................................ -00:00:31 v #559 > > │ -00:00:31 v #560 > > ................................................................................ -00:00:31 v #561 > > ................................................................................ -00:00:31 v #562 > > │ -00:00:31 v #563 > > ................................................................................ -00:00:31 v #564 > > ................................................................................ -00:00:31 v #565 > > │ -00:00:31 v #566 > > ................................................................................ -00:00:31 v #567 > > ................................................................................ -00:00:31 v #568 > > │ -00:00:31 v #569 > > ............................................................................ -00:00:31 v #570 > > │ -00:00:31 v #571 > > ................................................................................ -00:00:31 v #572 > > ................................................................................ -00:00:31 v #573 > > │ -00:00:31 v #574 > > ................................................................................ -00:00:31 v #575 > > ................................................................................ -00:00:31 v #576 > > │ -00:00:31 v #577 > > ................................................................................ -00:00:31 v #578 > > ................................................................................ -00:00:31 v #579 > > │ -00:00:31 v #580 > > ................................................................................ -00:00:31 v #581 > > ................................................................................ -00:00:31 v #582 > > │ -00:00:31 v #583 > > ................................................................................ -00:00:31 v #584 > > ................................................................................ -00:00:31 v #585 > > │ -00:00:31 v #586 > > ................................................................................ -00:00:31 v #587 > > ................................................................................ -00:00:31 v #588 > > │ -00:00:31 v #589 > > ................................................................................ -00:00:31 v #590 > > ................................................................................ -00:00:31 v #591 > > │ -00:00:31 v #592 > > ................................................................................ -00:00:31 v #593 > > ................................................................................ -00:00:31 v #594 > > │ -00:00:31 v #595 > > ................................................................................ -00:00:31 v #596 > > ................................................................................ -00:00:31 v #597 > > │ -00:00:31 v #598 > > │ -00:00:31 v #599 > > │ -00:00:31 v #600 > > │ " -00:00:31 v #601 > > │ -00:00:31 v #602 > > -00:00:31 v #603 > > ── [ 10.92s - stdout ] ───────────────────────────────────────────────────────── -00:00:31 v #604 > > │ .fsx output: -00:00:31 v #605 > > │ -00:00:31 v #606 > > ................................................................................ -00:00:31 v #607 > > ................................................................................ -00:00:31 v #608 > > │ -00:00:31 v #609 > > ................................................................................ -00:00:31 v #610 > > ................................................................................ -00:00:31 v #611 > > │ -00:00:31 v #612 > > ................................................................................ -00:00:31 v #613 > > ................................................................................ -00:00:31 v #614 > > │ -00:00:31 v #615 > > ................................................................................ -00:00:31 v #616 > > ................................................................................ -00:00:31 v #617 > > │ -00:00:31 v #618 > > ................................................................................ -00:00:31 v #619 > > ................................................................................ -00:00:31 v #620 > > │ -00:00:31 v #621 > > ................................................................................ -00:00:31 v #622 > > ................................................................................ -00:00:31 v #623 > > │ -00:00:31 v #624 > > ................................................................................ -00:00:31 v #625 > > ................................................................................ -00:00:31 v #626 > > │ -00:00:31 v #627 > > ................................................................................ -00:00:31 v #628 > > ................................................................................ -00:00:31 v #629 > > │ -00:00:31 v #630 > > ................................................................................ -00:00:31 v #631 > > ................................................................................ -00:00:31 v #632 > > │ -00:00:31 v #633 > > ................................................................................ -00:00:31 v #634 > > ................................................................................ -00:00:31 v #635 > > │ -00:00:31 v #636 > > ................................................................................ -00:00:31 v #637 > > ................................................................................ -00:00:31 v #638 > > │ -00:00:31 v #639 > > ................................................................................ -00:00:31 v #640 > > ................................................................................ -00:00:31 v #641 > > │ -00:00:31 v #642 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... -00:00:31 v #643 > > ................................................................................ -00:00:31 v #644 > > │ -00:00:31 v #645 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... -00:00:31 v #646 > > ................................................................................ -00:00:31 v #647 > > │ -00:00:31 v #648 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... -00:00:31 v #649 > > ................................................................................ -00:00:31 v #650 > > │ -00:00:31 v #651 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... -00:00:31 v #652 > > ................................................................................ -00:00:31 v #653 > > │ -00:00:31 v #654 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... -00:00:31 v #655 > > ................................................................................ -00:00:31 v #656 > > │ -00:00:31 v #657 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... -00:00:31 v #658 > > .;;;;;;;;;;;;;;;;;\............................................................. -00:00:31 v #659 > > │ -00:00:31 v #660 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... -00:00:31 v #661 > > .;;;;;;;;;;;;;;;;;\............................................................. -00:00:31 v #662 > > │ -00:00:31 v #663 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... -00:00:31 v #664 > > .;;;;;;;;;;;;;;;;;\................;;;;;;;;;\................................... -00:00:31 v #665 > > │ -00:00:31 v #666 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... -00:00:31 v #667 > > .;;;;;;;;;;;;;;;;;\................;;;;;;;;;\................................... -00:00:31 v #668 > > │ -00:00:31 v #669 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... -00:00:31 v #670 > > .;;;;;;;;;;;;;;;;;\................;;;;;;;;;\................................... -00:00:31 v #671 > > │ -00:00:31 v #672 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... -00:00:31 v #673 > > .;;;;;;;;;;;;;;;;;\................;;;;;;;;;\................................... -00:00:31 v #674 > > │ -00:00:31 v #675 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... -00:00:31 v #676 > > .;;;;;;;;;;;;;;;;;\................;;;;;;;;;\................................... -00:00:31 v #677 > > │ -00:00:31 v #678 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... -00:00:31 v #679 > > .;;;;;;;;;;;;;;;;;\................<<<<<<<<<.................................... -00:00:31 v #680 > > │ -00:00:31 v #681 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... -00:00:31 v #682 > > .;;;;;;;;;;;;;;;;;\............................................................. -00:00:31 v #683 > > │ -00:00:31 v #684 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... -00:00:31 v #685 > > .<<<<<<<<<<<<<<<<<\............................................................. -00:00:31 v #686 > > │ -00:00:31 v #687 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... -00:00:31 v #688 > > ................................................................................ -00:00:31 v #689 > > │ -00:00:31 v #690 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... -00:00:31 v #691 > > ................................................................................ -00:00:31 v #692 > > │ -00:00:31 v #693 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... -00:00:31 v #694 > > ................................................................................ -00:00:31 v #695 > > │ -00:00:31 v #696 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... -00:00:31 v #697 > > ................................................................................ -00:00:31 v #698 > > │ -00:00:31 v #699 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... -00:00:31 v #700 > > ................................................................................ -00:00:31 v #701 > > │ -00:00:31 v #702 > > ....................<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<.................... -00:00:31 v #703 > > ................................................................................ -00:00:31 v #704 > > │ -00:00:31 v #705 > > ................................................................................ -00:00:31 v #706 > > ................................................................................ -00:00:31 v #707 > > │ -00:00:31 v #708 > > ................................................................................ -00:00:31 v #709 > > ................................................................................ -00:00:31 v #710 > > │ -00:00:31 v #711 > > ................................................................................ -00:00:31 v #712 > > ................................................................................ -00:00:31 v #713 > > │ -00:00:31 v #714 > > ................................................................................ -00:00:31 v #715 > > ................................................................................ -00:00:31 v #716 > > │ -00:00:31 v #717 > > ................................................................................ -00:00:31 v #718 > > ................................................................................ -00:00:31 v #719 > > │ -00:00:31 v #720 > > ................................................................................ -00:00:31 v #721 > > ................................................................................ -00:00:31 v #722 > > │ -00:00:31 v #723 > > ................................................................................ -00:00:31 v #724 > > ................................................................................ -00:00:31 v #725 > > │ -00:00:31 v #726 > > ................................................................................ -00:00:31 v #727 > > ................................................................................ -00:00:31 v #728 > > │ -00:00:31 v #729 > > ................................................................................ -00:00:31 v #730 > > ................................................................................ -00:00:31 v #731 > > │ -00:00:31 v #732 > > ................................................................................ -00:00:31 v #733 > > ................................................................................ -00:00:31 v #734 > > │ -00:00:31 v #735 > > ................................................................................ -00:00:31 v #736 > > ................................................................................ -00:00:31 v #737 > > │ -00:00:31 v #738 > > │ -00:00:31 v #739 > > -00:00:31 v #740 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:31 v #741 > > │ ### main_loop -00:00:31 v #742 > > -00:00:31 v #743 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:31 v #744 > > let rec mainLoop rot = async { -00:00:31 v #745 > > let frame = generateFrame rot -00:00:31 v #746 > > // Console.SetCursorPosition(0, 0) -00:00:31 v #747 > > Console.Write(frame) -00:00:31 v #748 > > let rot' = { a = rot.a + 0.05; b = rot.b + 0.05; c = rot.c + 0.01 } -00:00:31 v #749 > > do! Async.Sleep 16 -00:00:31 v #750 > > return! mainLoop rot' -00:00:31 v #751 > > } -00:00:31 v #752 > > -00:00:31 v #753 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:31 v #754 > > let rec main_loop max i rot = -00:00:31 v #755 > > fun () => -00:00:31 v #756 > > inl rot = join rot -00:00:31 v #757 > > inl frame = rot |> generate_frame -00:00:31 v #758 > > if max < 0 then -00:00:31 v #759 > > run_target function -00:00:31 v #760 > > | Fsharp (Native) => fun () => -00:00:31 v #761 > > $'System.Console.SetCursorPosition (0, 0)' -00:00:31 v #762 > > | Rust _ => fun () => -00:00:31 v #763 > > open rust.rust_operators -00:00:31 v #764 > > !\($'$"print\!(\\\"\\\\x1B[[1;1H\\\")"') -00:00:31 v #765 > > | TypeScript _ => fun () => -00:00:31 v #766 > > open typescript_operators -00:00:31 v #767 > > !\($'$"process.stdout.write(\'\\\\u001B[[1;1H\')"') -00:00:31 v #768 > > | Python _ => fun () => -00:00:31 v #769 > > open python_operators -00:00:31 v #770 > > // global "import sys" -00:00:31 v #771 > > !\($'$"sys.stdout.write(\\\"\\\\033[[1;1H\\\")"') -00:00:31 v #772 > > | Cuda _ => fun () => -00:00:31 v #773 > > global "import sys" -00:00:31 v #774 > > $'sys.stdout.write("\\033[[1;1H")' -00:00:31 v #775 > > | _ => fun () => () -00:00:31 v #776 > > frame |> console.write_line -00:00:31 v #777 > > async.sleep 1 |> async.do -00:00:31 v #778 > > if max > 0 && i >= max -00:00:31 v #779 > > then () -00:00:31 v #780 > > else -00:00:31 v #781 > > { a = rot.a + 0.05; b = rot.b + 0.05; c = rot.c + 0.01 } -00:00:31 v #782 > > |> main_loop max (i + 1) -00:00:31 v #783 > > |> async.return_await' -00:00:31 v #784 > > |> async.new_async_unit -00:00:32 v #785 > > -00:00:32 v #786 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:32 v #787 > > │ ### main -00:00:32 v #788 > > -00:00:32 v #789 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:32 v #790 > > // [[<EntryPoint>]] -00:00:32 v #791 > > let main argv = -00:00:32 v #792 > > // Console.CursorVisible <- false -00:00:32 v #793 > > Async.StartImmediate (mainLoop { a = 0.0; b = 0.0; c = 0.0 }) -00:00:32 v #794 > > System.Threading.Thread.Sleep(1000) -00:00:32 v #795 > > -00:00:32 v #796 > > ── fsharp ────────────────────────────────────────────────────────────────────── -00:00:32 v #797 > > // main [[||]] -00:00:32 v #798 > > -00:00:32 v #799 > > ── spiral ────────────────────────────────────────────────────────────────────── -00:00:32 v #800 > > inl main (_args : array_base string) = -00:00:32 v #801 > > inl console = -00:00:32 v #802 > > run_target function -00:00:32 v #803 > > | Fsharp (Wasm) => fun () => false -00:00:32 v #804 > > | _ => fun () => -00:00:32 v #805 > > ((join "VSCODE_PID") |> env.get_environment_variable |> sm'.length -00:00:32 v #806 > > |> (=) 0i32) -00:00:32 v #807 > > && ("AUTOMATION" |> env.get_environment_variable |> sm'.length -00:00:32 v #808 > > |> (=) 0i32) -00:00:32 v #809 > > if console then -00:00:32 v #810 > > run_target function -00:00:32 v #811 > > | Fsharp (Native) => fun () => $'System.Console.CursorVisible <- -00:00:32 v #812 > > false' -00:00:32 v #813 > > | Rust _ => fun () => -00:00:32 v #814 > > open rust.rust_operators -00:00:32 v #815 > > !\($'$"print\!(\\\"\\\\x1B[[?25l\\\")"') -00:00:32 v #816 > > | TypeScript _ => fun () => -00:00:32 v #817 > > open typescript_operators -00:00:32 v #818 > > !\($'$"process.stdout.write(\'\\\\u001B[[?25l\')"') -00:00:32 v #819 > > | Python _ => fun () => -00:00:32 v #820 > > open python_operators -00:00:32 v #821 > > python.import_all "sys" -00:00:32 v #822 > > !\($'$"sys.stdout.write(\\\"\\\\033[[?25l\\\")"') -00:00:32 v #823 > > | _ => fun () => () -00:00:32 v #824 > > main_loop (if console then -1i32 else 50) 1i32 { a = 0.0; b = 0.0; c = 0.0 } -00:00:32 v #825 > > |> fun x => -00:00:32 v #826 > > run_target_args' x function -00:00:32 v #827 > > | Fsharp (Wasm) -00:00:32 v #828 > > | TypeScript _ => fun x => -00:00:32 v #829 > > x -00:00:32 v #830 > > |> async.start_child -00:00:32 v #831 > > |> ignore -00:00:32 v #832 > > | Python _ => fun x => -00:00:32 v #833 > > x -00:00:32 v #834 > > |> async.start_immediate -00:00:32 v #835 > > threading.sleep' 2000 -00:00:32 v #836 > > | _ => fun x => -00:00:32 v #837 > > x -00:00:32 v #838 > > |> async.run_synchronously -00:00:32 v #839 > > -00:00:32 v #840 > > inl main () = -00:00:32 v #841 > > backend_switch { -00:00:32 v #842 > > Fsharp = fun () => -00:00:32 v #843 > > $'let main_ = !main ' -00:00:32 v #844 > > $'#if \!FABLE_COMPILER_RUST' -00:00:32 v #845 > > $'main_ [[||]]' : () -00:00:32 v #846 > > $'#else' -00:00:32 v #847 > > $'let main args = main_ [[||]]; 0' : () -00:00:32 v #848 > > $'#endif' : () -00:00:32 v #849 > > Python = fun () => -00:00:32 v #850 > > main ;[[]] -00:00:32 v #851 > > } -00:00:32 v #852 > > : () -00:00:35 v #853 > > -00:00:35 v #854 > > ── [ 3.00s - stdout ] ────────────────────────────────────────────────────────── -00:00:35 v #855 > > │ -00:00:35 v #856 > > ................................................................................ -00:00:35 v #857 > > ................................................................................ -00:00:35 v #858 > > │ -00:00:35 v #859 > > ................................................................................ -00:00:35 v #860 > > ................................................................................ -00:00:35 v #861 > > │ -00:00:35 v #862 > > ................................................................................ -00:00:35 v #863 > > ................................................................................ -00:00:35 v #864 > > │ -00:00:35 v #865 > > ................................................................................ -00:00:35 v #866 > > ................................................................................ -00:00:35 v #867 > > │ -00:00:35 v #868 > > ................................................................................ -00:00:35 v #869 > > ................................................................................ -00:00:35 v #870 > > │ -00:00:35 v #871 > > ................................................................................ -00:00:35 v #872 > > ................................................................................ -00:00:35 v #873 > > │ -00:00:35 v #874 > > ................................................................................ -00:00:35 v #875 > > ................................................................................ -00:00:35 v #876 > > │ -00:00:35 v #877 > > ................................................................................ -00:00:35 v #878 > > ................................................................................ -00:00:35 v #879 > > │ -00:00:35 v #880 > > ................................................................................ -00:00:35 v #881 > > ................................................................................ -00:00:35 v #882 > > │ -00:00:35 v #883 > > ................................................................................ -00:00:35 v #884 > > ................................................................................ -00:00:35 v #885 > > │ -00:00:35 v #886 > > ................................................................................ -00:00:35 v #887 > > ................................................................................ -00:00:35 v #888 > > │ -00:00:35 v #889 > > ................................................................................ -00:00:35 v #890 > > ................................................................................ -00:00:35 v #891 > > │ -00:00:35 v #892 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... -00:00:35 v #893 > > ................................................................................ -00:00:35 v #894 > > │ -00:00:35 v #895 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... -00:00:35 v #896 > > ................................................................................ -00:00:35 v #897 > > │ -00:00:35 v #898 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... -00:00:35 v #899 > > ................................................................................ -00:00:35 v #900 > > │ -00:00:35 v #901 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... -00:00:35 v #902 > > ................................................................................ -00:00:35 v #903 > > │ -00:00:35 v #904 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... -00:00:35 v #905 > > ................................................................................ -00:00:35 v #906 > > │ -00:00:35 v #907 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... -00:00:35 v #908 > > .;;;;;;;;;;;;;;;;;\............................................................. -00:00:35 v #909 > > │ -00:00:35 v #910 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... -00:00:35 v #911 > > .;;;;;;;;;;;;;;;;;\............................................................. -00:00:35 v #912 > > │ -00:00:35 v #913 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... -00:00:35 v #914 > > .;;;;;;;;;;;;;;;;;\................;;;;;;;;;\................................... -00:00:35 v #915 > > │ -00:00:35 v #916 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... -00:00:35 v #917 > > .;;;;;;;;;;;;;;;;;\................;;;;;;;;;\................................... -00:00:35 v #918 > > │ -00:00:35 v #919 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... -00:00:35 v #920 > > .;;;;;;;;;;;;;;;;;\................;;;;;;;;;\................................... -00:00:35 v #921 > > │ -00:00:35 v #922 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... -00:00:35 v #923 > > .;;;;;;;;;;;;;;;;;\................;;;;;;;;;\................................... -00:00:35 v #924 > > │ -00:00:35 v #925 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... -00:00:35 v #926 > > .;;;;;;;;;;;;;;;;;\................;;;;;;;;;\................................... -00:00:35 v #927 > > │ -00:00:35 v #928 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... -00:00:35 v #929 > > .;;;;;;;;;;;;;;;;;\................<<<<<<<<<.................................... -00:00:35 v #930 > > │ -00:00:35 v #931 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... -00:00:35 v #932 > > .;;;;;;;;;;;;;;;;;\............................................................. -00:00:35 v #933 > > │ -00:00:35 v #934 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... -00:00:35 v #935 > > .<<<<<<<<<<<<<<<<<\............................................................. -00:00:35 v #936 > > │ -00:00:35 v #937 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... -00:00:35 v #938 > > ................................................................................ -00:00:35 v #939 > > │ -00:00:35 v #940 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... -00:00:35 v #941 > > ................................................................................ -00:00:35 v #942 > > │ -00:00:35 v #943 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... -00:00:35 v #944 > > ................................................................................ -00:00:35 v #945 > > │ -00:00:35 v #946 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... -00:00:35 v #947 > > ................................................................................ -00:00:35 v #948 > > │ -00:00:35 v #949 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... -00:00:35 v #950 > > ................................................................................ -00:00:35 v #951 > > │ -00:00:35 v #952 > > ....................<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<.................... -00:00:35 v #953 > > ................................................................................ -00:00:35 v #954 > > │ -00:00:35 v #955 > > ................................................................................ -00:00:35 v #956 > > ................................................................................ -00:00:35 v #957 > > │ -00:00:35 v #958 > > ................................................................................ -00:00:35 v #959 > > ................................................................................ -00:00:35 v #960 > > │ -00:00:35 v #961 > > ................................................................................ -00:00:35 v #962 > > ................................................................................ -00:00:35 v #963 > > │ -00:00:35 v #964 > > ................................................................................ -00:00:35 v #965 > > ................................................................................ -00:00:35 v #966 > > │ -00:00:35 v #967 > > ................................................................................ -00:00:35 v #968 > > ................................................................................ -00:00:35 v #969 > > │ -00:00:35 v #970 > > ................................................................................ -00:00:35 v #971 > > ................................................................................ -00:00:35 v #972 > > │ -00:00:35 v #973 > > ................................................................................ -00:00:35 v #974 > > ................................................................................ -00:00:35 v #975 > > │ -00:00:35 v #976 > > ................................................................................ -00:00:35 v #977 > > ................................................................................ -00:00:35 v #978 > > │ -00:00:35 v #979 > > ................................................................................ -00:00:35 v #980 > > ................................................................................ -00:00:35 v #981 > > │ -00:00:35 v #982 > > ................................................................................ -00:00:35 v #983 > > ................................................................................ -00:00:35 v #984 > > │ -00:00:35 v #985 > > ................................................................................ -00:00:35 v #986 > > ................................................................................ -00:00:35 v #987 > > │ -00:00:35 v #988 > > │ -00:00:35 v #989 > > ................................................................................ -00:00:35 v #990 > > ................................................................................ -00:00:35 v #991 > > │ -00:00:35 v #992 > > ................................................................................ -00:00:35 v #993 > > ................................................................................ -00:00:35 v #994 > > │ -00:00:35 v #995 > > ................................................................................ -00:00:35 v #996 > > ................................................................................ -00:00:35 v #997 > > │ -00:00:35 v #998 > > ................................................................................ -00:00:35 v #999 > > ................................................................................ -00:00:35 v #1000 > > │ -00:00:35 v #1001 > > ................................................................................ -00:00:35 v #1002 > > ................................................................................ -00:00:35 v #1003 > > │ -00:00:35 v #1004 > > ................................................................................ -00:00:35 v #1005 > > ................................................................................ -00:00:35 v #1006 > > │ -00:00:35 v #1007 > > ................................................................................ -00:00:35 v #1008 > > ................................................................................ -00:00:35 v #1009 > > │ -00:00:35 v #1010 > > ................................................................................ -00:00:35 v #1011 > > ................................................................................ -00:00:35 v #1012 > > │ -00:00:35 v #1013 > > ................................................................................ -00:00:35 v #1014 > > ................................................................................ -00:00:35 v #1015 > > │ -00:00:35 v #1016 > > ................................................................................ -00:00:35 v #1017 > > ................................................................................ -00:00:35 v #1018 > > │ -00:00:35 v #1019 > > ................................................................................ -00:00:35 v #1020 > > ................................................................................ -00:00:35 v #1021 > > │ -00:00:35 v #1022 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... -00:00:35 v #1023 > > ................................................................................ -00:00:35 v #1024 > > │ -00:00:35 v #1025 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... -00:00:35 v #1026 > > ................................................................................ -00:00:35 v #1027 > > │ -00:00:35 v #1028 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... -00:00:35 v #1029 > > ................................................................................ -00:00:35 v #1030 > > │ -00:00:35 v #1031 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... -00:00:35 v #1032 > > ................................................................................ -00:00:35 v #1033 > > │ -00:00:35 v #1034 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... -00:00:35 v #1035 > > ................................................................................ -00:00:35 v #1036 > > │ -00:00:35 v #1037 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... -00:00:35 v #1038 > > ................................................................................ -00:00:35 v #1039 > > │ -00:00:35 v #1040 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... -00:00:35 v #1041 > > .;;;;;;;;;;;;;;;;;;\............................................................ -00:00:35 v #1042 > > │ -00:00:35 v #1043 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... -00:00:35 v #1044 > > .;;;;;;;;;;;;;;;;;;\............................................................ -00:00:35 v #1045 > > │ -00:00:35 v #1046 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... -00:00:35 v #1047 > > .;;;;;;;;;;;;;;;;;;;...............;;;;;;;;;;................................... -00:00:35 v #1048 > > │ -00:00:35 v #1049 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... -00:00:35 v #1050 > > .;;;;;;;;;;;;;;;;;;;...............;;;;;;;;;;................................... -00:00:35 v #1051 > > │ -00:00:35 v #1052 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... -00:00:35 v #1053 > > .;;;;;;;;;;;;;;;;;;;...............;;;;;;;;;;................................... -00:00:35 v #1054 > > │ -00:00:35 v #1055 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... -00:00:35 v #1056 > > .;;;;;;;;;;;;;;;;;;;...............;;;;;;;;;;................................... -00:00:35 v #1057 > > │ -00:00:35 v #1058 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... -00:00:35 v #1059 > > .;;;;;;;;;;;;;;;;;;;................;;;;;<<<<................................... -00:00:35 v #1060 > > │ -00:00:35 v #1061 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... -00:00:35 v #1062 > > .;;;;;;;;;;;;;;;;;;;................<<<<<....................................... -00:00:35 v #1063 > > │ -00:00:35 v #1064 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... -00:00:35 v #1065 > > .;;;;;;;;;;;;;;;;;;;............................................................ -00:00:35 v #1066 > > │ -00:00:35 v #1067 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... -00:00:35 v #1068 > > .<<<<<<<<<<<<<<<<<<<............................................................ -00:00:35 v #1069 > > │ -00:00:35 v #1070 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................. -00:00:35 v #1071 > > ................................................................................ -00:00:35 v #1072 > > │ -00:00:35 v #1073 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................. -00:00:35 v #1074 > > ................................................................................ -00:00:35 v #1075 > > │ -00:00:35 v #1076 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................. -00:00:35 v #1077 > > ................................................................................ -00:00:35 v #1078 > > │ -00:00:35 v #1079 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................. -00:00:35 v #1080 > > ................................................................................ -00:00:35 v #1081 > > │ -00:00:35 v #1082 > > ....................<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\.................. -00:00:35 v #1083 > > ................................................................................ -00:00:35 v #1084 > > │ -00:00:35 v #1085 > > ................................................................................ -00:00:35 v #1086 > > ................................................................................ -00:00:35 v #1087 > > │ -00:00:35 v #1088 > > ................................................................................ -00:00:35 v #1089 > > ................................................................................ -00:00:35 v #1090 > > │ -00:00:35 v #1091 > > ................................................................................ -00:00:35 v #1092 > > ................................................................................ -00:00:35 v #1093 > > │ -00:00:35 v #1094 > > ................................................................................ -00:00:35 v #1095 > > ................................................................................ -00:00:35 v #1096 > > │ -00:00:35 v #1097 > > ................................................................................ -00:00:35 v #1098 > > ................................................................................ -00:00:35 v #1099 > > │ -00:00:35 v #1100 > > ................................................................................ -00:00:35 v #1101 > > ................................................................................ -00:00:35 v #1102 > > │ -00:00:35 v #1103 > > ................................................................................ -00:00:35 v #1104 > > ................................................................................ -00:00:35 v #1105 > > │ -00:00:35 v #1106 > > ................................................................................ -00:00:35 v #1107 > > ................................................................................ -00:00:35 v #1108 > > │ -00:00:35 v #1109 > > ................................................................................ -00:00:35 v #1110 > > ................................................................................ -00:00:35 v #1111 > > │ -00:00:35 v #1112 > > ................................................................................ -00:00:35 v #1113 > > ................................................................................ -00:00:35 v #1114 > > │ -00:00:35 v #1115 > > ................................................................................ -00:00:35 v #1116 > > ................................................................................ -00:00:35 v #1117 > > │ -00:00:35 v #1118 > > ................................................................................ -00:00:35 v #1119 > > ................................................................................ -00:00:35 v #1120 > > │ -00:00:35 v #1121 > > │ -00:00:35 v #1122 > > ................................................................................ -00:00:35 v #1123 > > ................................................................................ -00:00:35 v #1124 > > │ -00:00:35 v #1125 > > ................................................................................ -00:00:35 v #1126 > > ................................................................................ -00:00:35 v #1127 > > │ -00:00:35 v #1128 > > ................................................................................ -00:00:35 v #1129 > > ................................................................................ -00:00:35 v #1130 > > │ -00:00:35 v #1131 > > ................................................................................ -00:00:35 v #1132 > > ................................................................................ -00:00:35 v #1133 > > │ -00:00:35 v #1134 > > ................................................................................ -00:00:35 v #1135 > > ................................................................................ -00:00:35 v #1136 > > │ -00:00:35 v #1137 > > ................................................................................ -00:00:35 v #1138 > > ................................................................................ -00:00:35 v #1139 > > │ -00:00:35 v #1140 > > ................................................................................ -00:00:35 v #1141 > > ................................................................................ -00:00:35 v #1142 > > │ -00:00:35 v #1143 > > ................................................................................ -00:00:35 v #1144 > > ................................................................................ -00:00:35 v #1145 > > │ -00:00:35 v #1146 > > ................................................................................ -00:00:35 v #1147 > > ................................................................................ -00:00:35 v #1148 > > │ -00:00:35 v #1149 > > ................................................................................ -00:00:35 v #1150 > > ................................................................................ -00:00:35 v #1151 > > │ -00:00:35 v #1152 > > ................................................................................ -00:00:35 v #1153 > > ................................................................................ -00:00:35 v #1154 > > │ -00:00:35 v #1155 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... -00:00:35 v #1156 > > ................................................................................ -00:00:35 v #1157 > > │ -00:00:35 v #1158 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... -00:00:35 v #1159 > > ................................................................................ -00:00:35 v #1160 > > │ -00:00:35 v #1161 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... -00:00:35 v #1162 > > ................................................................................ -00:00:35 v #1163 > > │ -00:00:35 v #1164 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... -00:00:35 v #1165 > > ................................................................................ -00:00:35 v #1166 > > │ -00:00:35 v #1167 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... -00:00:35 v #1168 > > ................................................................................ -00:00:35 v #1169 > > │ -00:00:35 v #1170 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... -00:00:35 v #1171 > > ................................................................................ -00:00:35 v #1172 > > │ -00:00:35 v #1173 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... -00:00:35 v #1174 > > .;;;;;;;;;;;;;;;;;;;............................................................ -00:00:35 v #1175 > > │ -00:00:35 v #1176 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................. -00:00:35 v #1177 > > .;;;;;;;;;;;;;;;;;;;............................................................ -00:00:35 v #1178 > > │ -00:00:35 v #1179 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................. -00:00:35 v #1180 > > .;;;;;;;;;;;;;;;;;;;...............>;;;;;;;;;................................... -00:00:35 v #1181 > > │ -00:00:35 v #1182 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................. -00:00:35 v #1183 > > .;;;;;;;;;;;;;;;;;;;.............../;;;;;;;;;................................... -00:00:35 v #1184 > > │ -00:00:35 v #1185 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................. -00:00:35 v #1186 > > .;;;;;;;;;;;;;;;;;;;.............../;;;;;;;;;................................... -00:00:35 v #1187 > > │ -00:00:35 v #1188 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................. -00:00:35 v #1189 > > .;;;;;;;;;;;;;;;;;;;.............../;;;;;;;;;................................... -00:00:35 v #1190 > > │ -00:00:35 v #1191 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................. -00:00:35 v #1192 > > .;;;;;;;;;;;;;;;;;;;.............../<<<<<<<<<................................... -00:00:35 v #1193 > > │ -00:00:35 v #1194 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................. -00:00:35 v #1195 > > ..;;;;;;;;;;;;;;;;;;...............<<<<<<<<<.................................... -00:00:35 v #1196 > > │ -00:00:35 v #1197 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................. -00:00:35 v #1198 > > ..;;;;;;;;;;<<<<<<<<............................................................ -00:00:35 v #1199 > > │ -00:00:35 v #1200 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................. -00:00:35 v #1201 > > ..<<<<<<<<<<.................................................................... -00:00:35 v #1202 > > │ -00:00:35 v #1203 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................. -00:00:35 v #1204 > > ................................................................................ -00:00:35 v #1205 > > │ -00:00:35 v #1206 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................. -00:00:35 v #1207 > > ................................................................................ -00:00:35 v #1208 > > │ -00:00:35 v #1209 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................. -00:00:35 v #1210 > > ................................................................................ -00:00:35 v #1211 > > │ -00:00:35 v #1212 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<\................. -00:00:35 v #1213 > > ................................................................................ -00:00:35 v #1214 > > │ -00:00:35 v #1215 > > .....................<<<<<<<<<<<<<<<<<<<<<<<<<<<<............................... -00:00:35 v #1216 > > ................................................................................ -00:00:35 v #1217 > > │ -00:00:35 v #1218 > > ................................................................................ -00:00:35 v #1219 > > ................................................................................ -00:00:35 v #1220 > > │ -00:00:35 v #1221 > > ................................................................................ -00:00:35 v #1222 > > ................................................................................ -00:00:35 v #1223 > > │ -00:00:35 v #1224 > > ................................................................................ -00:00:35 v #1225 > > ................................................................................ -00:00:35 v #1226 > > │ -00:00:35 v #1227 > > ................................................................................ -00:00:35 v #1228 > > ................................................................................ -00:00:35 v #1229 > > │ -00:00:35 v #1230 > > ................................................................................ -00:00:35 v #1231 > > ................................................................................ -00:00:35 v #1232 > > │ -00:00:35 v #1233 > > ................................................................................ -00:00:35 v #1234 > > ................................................................................ -00:00:35 v #1235 > > │ -00:00:35 v #1236 > > ................................................................................ -00:00:35 v #1237 > > ................................................................................ -00:00:35 v #1238 > > │ -00:00:35 v #1239 > > ................................................................................ -00:00:35 v #1240 > > ................................................................................ -00:00:35 v #1241 > > │ -00:00:35 v #1242 > > ................................................................................ -00:00:35 v #1243 > > ................................................................................ -00:00:35 v #1244 > > │ -00:00:35 v #1245 > > ................................................................................ -00:00:35 v #1246 > > ................................................................................ -00:00:35 v #1247 > > │ -00:00:35 v #1248 > > ................................................................................ -00:00:35 v #1249 > > ................................................................................ -00:00:35 v #1250 > > │ -00:00:35 v #1251 > > ................................................................................ -00:00:35 v #1252 > > ................................................................................ -00:00:35 v #1253 > > │ -00:00:35 v #1254 > > │ -00:00:35 v #1255 > > ................................................................................ -00:00:35 v #1256 > > ................................................................................ -00:00:35 v #1257 > > │ -00:00:35 v #1258 > > ................................................................................ -00:00:35 v #1259 > > ................................................................................ -00:00:35 v #1260 > > │ -00:00:35 v #1261 > > ................................................................................ -00:00:35 v #1262 > > ................................................................................ -00:00:35 v #1263 > > │ -00:00:35 v #1264 > > ................................................................................ -00:00:35 v #1265 > > ................................................................................ -00:00:35 v #1266 > > │ -00:00:35 v #1267 > > ................................................................................ -00:00:35 v #1268 > > ................................................................................ -00:00:35 v #1269 > > │ -00:00:35 v #1270 > > ................................................................................ -00:00:35 v #1271 > > ................................................................................ -00:00:35 v #1272 > > │ -00:00:35 v #1273 > > ................................................................................ -00:00:35 v #1274 > > ................................................................................ -00:00:35 v #1275 > > │ -00:00:35 v #1276 > > ................................................................................ -00:00:35 v #1277 > > ................................................................................ -00:00:35 v #1278 > > │ -00:00:35 v #1279 > > ................................................................................ -00:00:35 v #1280 > > ................................................................................ -00:00:35 v #1281 > > │ -00:00:35 v #1282 > > ................................................................................ -00:00:35 v #1283 > > ................................................................................ -00:00:35 v #1284 > > │ -00:00:35 v #1285 > > ......................;;;;;;;;;;;............................................... -00:00:35 v #1286 > > ................................................................................ -00:00:35 v #1287 > > │ -00:00:35 v #1288 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... -00:00:35 v #1289 > > ................................................................................ -00:00:35 v #1290 > > │ -00:00:35 v #1291 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... -00:00:35 v #1292 > > ................................................................................ -00:00:35 v #1293 > > │ -00:00:35 v #1294 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... -00:00:35 v #1295 > > ................................................................................ -00:00:35 v #1296 > > │ -00:00:35 v #1297 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... -00:00:35 v #1298 > > ................................................................................ -00:00:35 v #1299 > > │ -00:00:35 v #1300 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... -00:00:35 v #1301 > > ................................................................................ -00:00:35 v #1302 > > │ -00:00:35 v #1303 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................. -00:00:35 v #1304 > > ..............;;;;;;............................................................ -00:00:35 v #1305 > > │ -00:00:35 v #1306 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................. -00:00:35 v #1307 > > .>;;;;;;;;;;;;;;;;;;............................................................ -00:00:35 v #1308 > > │ -00:00:35 v #1309 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................. -00:00:35 v #1310 > > ./;;;;;;;;;;;;;;;;;;............................................................ -00:00:35 v #1311 > > │ -00:00:35 v #1312 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................. -00:00:35 v #1313 > > ./;;;;;;;;;;;;;;;;;;...............>;;;;;;;;;................................... -00:00:35 v #1314 > > │ -00:00:35 v #1315 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................. -00:00:35 v #1316 > > ./;;;;;;;;;;;;;;;;;;.............../;;;;;;;;;................................... -00:00:35 v #1317 > > │ -00:00:35 v #1318 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................. -00:00:35 v #1319 > > ./;;;;;;;;;;;;;;;;;;.............../;;;;;;;;;................................... -00:00:35 v #1320 > > │ -00:00:35 v #1321 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................. -00:00:35 v #1322 > > ./;;;;;;;;;;;;;;;;;;\............../;;;;;;;;;................................... -00:00:35 v #1323 > > │ -00:00:35 v #1324 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................. -00:00:35 v #1325 > > ./;;;;;;;;;;;;;;;;;;;............../<<<<<<<<<................................... -00:00:35 v #1326 > > │ -00:00:35 v #1327 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................. -00:00:35 v #1328 > > ./;;;;;;;;;;;;;;;;;;;............../<<<<<<<<.................................... -00:00:35 v #1329 > > │ -00:00:35 v #1330 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................. -00:00:35 v #1331 > > ./<<<<<<<<<<<<<<<<<<<........................................................... -00:00:35 v #1332 > > │ -00:00:35 v #1333 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................. -00:00:35 v #1334 > > ./<<<<<<<<<<<<<<<............................................................... -00:00:35 v #1335 > > │ -00:00:35 v #1336 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................ -00:00:35 v #1337 > > ................................................................................ -00:00:35 v #1338 > > │ -00:00:35 v #1339 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................ -00:00:35 v #1340 > > ................................................................................ -00:00:35 v #1341 > > │ -00:00:35 v #1342 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................ -00:00:35 v #1343 > > ................................................................................ -00:00:35 v #1344 > > │ -00:00:35 v #1345 > > ......................;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<................ -00:00:35 v #1346 > > ................................................................................ -00:00:35 v #1347 > > │ -00:00:35 v #1348 > > ......................<<<<<<<<<<................................................ -00:00:35 v #1349 > > ................................................................................ -00:00:35 v #1350 > > │ -00:00:35 v #1351 > > ................................................................................ -00:00:35 v #1352 > > ................................................................................ -00:00:35 v #1353 > > │ -00:00:35 v #1354 > > ................................................................................ -00:00:35 v #1355 > > ................................................................................ -00:00:35 v #1356 > > │ -00:00:35 v #1357 > > ................................................................................ -00:00:35 v #1358 > > ................................................................................ -00:00:35 v #1359 > > │ -00:00:35 v #1360 > > ................................................................................ -00:00:35 v #1361 > > ................................................................................ -00:00:35 v #1362 > > │ -00:00:35 v #1363 > > ................................................................................ -00:00:35 v #1364 > > ................................................................................ -00:00:35 v #1365 > > │ -00:00:35 v #1366 > > ................................................................................ -00:00:35 v #1367 > > ................................................................................ -00:00:35 v #1368 > > │ -00:00:35 v #1369 > > ................................................................................ -00:00:35 v #1370 > > ................................................................................ -00:00:35 v #1371 > > │ -00:00:35 v #1372 > > ................................................................................ -00:00:35 v #1373 > > ................................................................................ -00:00:35 v #1374 > > │ -00:00:35 v #1375 > > ................................................................................ -00:00:35 v #1376 > > ................................................................................ -00:00:35 v #1377 > > │ -00:00:35 v #1378 > > ................................................................................ -00:00:35 v #1379 > > ................................................................................ -00:00:35 v #1380 > > │ -00:00:35 v #1381 > > ................................................................................ -00:00:35 v #1382 > > ................................................................................ -00:00:35 v #1383 > > │ -00:00:35 v #1384 > > ................................................................................ -00:00:35 v #1385 > > ................................................................................ -00:00:35 v #1386 > > │ -00:00:35 v #1387 > > │ -00:00:35 v #1388 > > ................................................................................ -00:00:35 v #1389 > > ................................................................................ -00:00:35 v #1390 > > │ -00:00:35 v #1391 > > ................................................................................ -00:00:35 v #1392 > > ................................................................................ -00:00:35 v #1393 > > │ -00:00:35 v #1394 > > ................................................................................ -00:00:35 v #1395 > > ................................................................................ -00:00:35 v #1396 > > │ -00:00:35 v #1397 > > ................................................................................ -00:00:35 v #1398 > > ................................................................................ -00:00:35 v #1399 > > │ -00:00:35 v #1400 > > ................................................................................ -00:00:35 v #1401 > > ................................................................................ -00:00:35 v #1402 > > │ -00:00:35 v #1403 > > ................................................................................ -00:00:35 v #1404 > > ................................................................................ -00:00:35 v #1405 > > │ -00:00:35 v #1406 > > ................................................................................ -00:00:35 v #1407 > > ................................................................................ -00:00:35 v #1408 > > │ -00:00:35 v #1409 > > ................................................................................ -00:00:35 v #1410 > > ................................................................................ -00:00:35 v #1411 > > │ -00:00:35 v #1412 > > ................................................................................ -00:00:35 v #1413 > > ................................................................................ -00:00:35 v #1414 > > │ -00:00:35 v #1415 > > ................................................................................ -00:00:35 v #1416 > > ................................................................................ -00:00:35 v #1417 > > │ -00:00:35 v #1418 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................... -00:00:35 v #1419 > > ................................................................................ -00:00:35 v #1420 > > │ -00:00:35 v #1421 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................... -00:00:35 v #1422 > > ................................................................................ -00:00:35 v #1423 > > │ -00:00:35 v #1424 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... -00:00:35 v #1425 > > ................................................................................ -00:00:35 v #1426 > > │ -00:00:35 v #1427 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... -00:00:35 v #1428 > > ................................................................................ -00:00:35 v #1429 > > │ -00:00:35 v #1430 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... -00:00:35 v #1431 > > ................................................................................ -00:00:35 v #1432 > > │ -00:00:35 v #1433 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... -00:00:35 v #1434 > > ................................................................................ -00:00:35 v #1435 > > │ -00:00:35 v #1436 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................. -00:00:35 v #1437 > > ..;;;;;;;;;;;;;;;;;;............................................................ -00:00:35 v #1438 > > │ -00:00:35 v #1439 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................. -00:00:35 v #1440 > > .>;;;;;;;;;;;;;;;;;;............................................................ -00:00:35 v #1441 > > │ -00:00:35 v #1442 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................. -00:00:35 v #1443 > > ./;;;;;;;;;;;;;;;;;;............................................................ -00:00:35 v #1444 > > │ -00:00:35 v #1445 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................. -00:00:35 v #1446 > > >/;;;;;;;;;;;;;;;;;;...............>;;;;;;;;;................................... -00:00:35 v #1447 > > │ -00:00:35 v #1448 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................. -00:00:35 v #1449 > > ./;;;;;;;;;;;;;;;;;;\............../;;;;;;;;;................................... -00:00:35 v #1450 > > │ -00:00:35 v #1451 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................. -00:00:35 v #1452 > > ./;;;;;;;;;;;;;;;;;;;............../;;;;;;;;;................................... -00:00:35 v #1453 > > │ -00:00:35 v #1454 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................. -00:00:35 v #1455 > > ./;;;;;;;;;;;;;;;;;;;............../;;;;;;;;;\.................................. -00:00:35 v #1456 > > │ -00:00:35 v #1457 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................ -00:00:35 v #1458 > > .//;;;;;;;;;;;;;;;;;;............../<<<<<<<<<\.................................. -00:00:35 v #1459 > > │ -00:00:35 v #1460 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................ -00:00:35 v #1461 > > .//;;;;;;;;;;;;;;;;;;............../<<<<<<<<.................................... -00:00:35 v #1462 > > │ -00:00:35 v #1463 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................ -00:00:35 v #1464 > > .//<<<<<<<<<<<<<<<<<<........................................................... -00:00:35 v #1465 > > │ -00:00:35 v #1466 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................ -00:00:35 v #1467 > > ./<<<<<<<<<<<<<<<<.............................................................. -00:00:35 v #1468 > > │ -00:00:35 v #1469 > > ........................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\............... -00:00:35 v #1470 > > ................................................................................ -00:00:35 v #1471 > > │ -00:00:35 v #1472 > > ........................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;............... -00:00:35 v #1473 > > ................................................................................ -00:00:35 v #1474 > > │ -00:00:35 v #1475 > > ........................;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<............... -00:00:35 v #1476 > > ................................................................................ -00:00:35 v #1477 > > │ -00:00:35 v #1478 > > ........................<<<<<<<<<<<<<<<<<<<<<<.................................. -00:00:35 v #1479 > > ................................................................................ -00:00:35 v #1480 > > │ -00:00:35 v #1481 > > ................................................................................ -00:00:35 v #1482 > > ................................................................................ -00:00:35 v #1483 > > │ -00:00:35 v #1484 > > ................................................................................ -00:00:35 v #1485 > > ................................................................................ -00:00:35 v #1486 > > │ -00:00:35 v #1487 > > ................................................................................ -00:00:35 v #1488 > > ................................................................................ -00:00:35 v #1489 > > │ -00:00:35 v #1490 > > ................................................................................ -00:00:35 v #1491 > > ................................................................................ -00:00:35 v #1492 > > │ -00:00:35 v #1493 > > ................................................................................ -00:00:35 v #1494 > > ................................................................................ -00:00:35 v #1495 > > │ -00:00:35 v #1496 > > ................................................................................ -00:00:35 v #1497 > > ................................................................................ -00:00:35 v #1498 > > │ -00:00:35 v #1499 > > ................................................................................ -00:00:35 v #1500 > > ................................................................................ -00:00:35 v #1501 > > │ -00:00:35 v #1502 > > ................................................................................ -00:00:35 v #1503 > > ................................................................................ -00:00:35 v #1504 > > │ -00:00:35 v #1505 > > ................................................................................ -00:00:35 v #1506 > > ................................................................................ -00:00:35 v #1507 > > │ -00:00:35 v #1508 > > ................................................................................ -00:00:35 v #1509 > > ................................................................................ -00:00:35 v #1510 > > │ -00:00:35 v #1511 > > ................................................................................ -00:00:35 v #1512 > > ................................................................................ -00:00:35 v #1513 > > │ -00:00:35 v #1514 > > ................................................................................ -00:00:35 v #1515 > > ................................................................................ -00:00:35 v #1516 > > │ -00:00:35 v #1517 > > ................................................................................ -00:00:35 v #1518 > > ................................................................................ -00:00:35 v #1519 > > │ -00:00:35 v #1520 > > │ -00:00:35 v #1521 > > ................................................................................ -00:00:35 v #1522 > > ................................................................................ -00:00:35 v #1523 > > │ -00:00:35 v #1524 > > ................................................................................ -00:00:35 v #1525 > > ................................................................................ -00:00:35 v #1526 > > │ -00:00:35 v #1527 > > ................................................................................ -00:00:35 v #1528 > > ................................................................................ -00:00:35 v #1529 > > │ -00:00:35 v #1530 > > ................................................................................ -00:00:35 v #1531 > > ................................................................................ -00:00:35 v #1532 > > │ -00:00:35 v #1533 > > ................................................................................ -00:00:35 v #1534 > > ................................................................................ -00:00:35 v #1535 > > │ -00:00:35 v #1536 > > ................................................................................ -00:00:35 v #1537 > > ................................................................................ -00:00:35 v #1538 > > │ -00:00:35 v #1539 > > ................................................................................ -00:00:35 v #1540 > > ................................................................................ -00:00:35 v #1541 > > │ -00:00:35 v #1542 > > ................................................................................ -00:00:35 v #1543 > > ................................................................................ -00:00:35 v #1544 > > │ -00:00:35 v #1545 > > ................................................................................ -00:00:35 v #1546 > > ................................................................................ -00:00:35 v #1547 > > │ -00:00:35 v #1548 > > ................................................................................ -00:00:35 v #1549 > > ................................................................................ -00:00:35 v #1550 > > │ -00:00:35 v #1551 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................... -00:00:35 v #1552 > > ................................................................................ -00:00:35 v #1553 > > │ -00:00:35 v #1554 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................... -00:00:35 v #1555 > > ................................................................................ -00:00:35 v #1556 > > │ -00:00:35 v #1557 > > ......................>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................... -00:00:35 v #1558 > > ................................................................................ -00:00:35 v #1559 > > │ -00:00:35 v #1560 > > ....................../;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... -00:00:35 v #1561 > > ................................................................................ -00:00:35 v #1562 > > │ -00:00:35 v #1563 > > ....................../;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... -00:00:35 v #1564 > > ................................................................................ -00:00:35 v #1565 > > │ -00:00:35 v #1566 > > ....................../;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... -00:00:35 v #1567 > > ................................................................................ -00:00:35 v #1568 > > │ -00:00:35 v #1569 > > ....................../;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................. -00:00:35 v #1570 > > ..;;;;;;;;;;;;;;;;;;............................................................ -00:00:35 v #1571 > > │ -00:00:35 v #1572 > > ......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................. -00:00:35 v #1573 > > .>;;;;;;;;;;;;;;;;;;............................................................ -00:00:35 v #1574 > > │ -00:00:35 v #1575 > > ......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................. -00:00:35 v #1576 > > >/;;;;;;;;;;;;;;;;;;............................................................ -00:00:35 v #1577 > > │ -00:00:35 v #1578 > > ......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................. -00:00:35 v #1579 > > //;;;;;;;;;;;;;;;;;;\..............>;;;;;;;;;................................... -00:00:35 v #1580 > > │ -00:00:35 v #1581 > > ......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................. -00:00:35 v #1582 > > ///;;;;;;;;;;;;;;;;;;............../;;;;;;;;;................................... -00:00:35 v #1583 > > │ -00:00:35 v #1584 > > ......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................ -00:00:35 v #1585 > > ///;;;;;;;;;;;;;;;;;;............../;;;;;;;;;\.................................. -00:00:35 v #1586 > > │ -00:00:35 v #1587 > > ......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................ -00:00:35 v #1588 > > ///;;;;;;;;;;;;;;;;;;............../;;;;;;;;;;.................................. -00:00:35 v #1589 > > │ -00:00:35 v #1590 > > ......................./;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................ -00:00:35 v #1591 > > .//;;;;;;;;;;;;;;;;;;;.............//<<<<<<<<<.................................. -00:00:35 v #1592 > > │ -00:00:35 v #1593 > > .......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\............... -00:00:35 v #1594 > > .//;;;;;;;;;;;;;;;;<<<............./<<<<<<<<.................................... -00:00:35 v #1595 > > │ -00:00:35 v #1596 > > .......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;............... -00:00:35 v #1597 > > .///<<<<<<<<<<<<<<<<<........................................................... -00:00:35 v #1598 > > │ -00:00:35 v #1599 > > .......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.............. -00:00:35 v #1600 > > ./<<<<<<<<<<<<<<<<.............................................................. -00:00:35 v #1601 > > │ -00:00:35 v #1602 > > .......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.............. -00:00:35 v #1603 > > ................................................................................ -00:00:35 v #1604 > > │ -00:00:35 v #1605 > > .......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<.............. -00:00:35 v #1606 > > ................................................................................ -00:00:35 v #1607 > > │ -00:00:35 v #1608 > > .......................//;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<................... -00:00:35 v #1609 > > ................................................................................ -00:00:35 v #1610 > > │ -00:00:35 v #1611 > > .......................//<<<<<<<<<<<<<<<<<<<<<<<<<.............................. -00:00:35 v #1612 > > ................................................................................ -00:00:35 v #1613 > > │ -00:00:35 v #1614 > > ........................<<<<<<<................................................. -00:00:35 v #1615 > > ................................................................................ -00:00:35 v #1616 > > │ -00:00:35 v #1617 > > ................................................................................ -00:00:35 v #1618 > > ................................................................................ -00:00:35 v #1619 > > │ -00:00:35 v #1620 > > ................................................................................ -00:00:35 v #1621 > > ................................................................................ -00:00:35 v #1622 > > │ -00:00:35 v #1623 > > ................................................................................ -00:00:35 v #1624 > > ................................................................................ -00:00:35 v #1625 > > │ -00:00:35 v #1626 > > ................................................................................ -00:00:35 v #1627 > > ................................................................................ -00:00:35 v #1628 > > │ -00:00:35 v #1629 > > ................................................................................ -00:00:35 v #1630 > > ................................................................................ -00:00:35 v #1631 > > │ -00:00:35 v #1632 > > ................................................................................ -00:00:35 v #1633 > > ................................................................................ -00:00:35 v #1634 > > │ -00:00:35 v #1635 > > ................................................................................ -00:00:35 v #1636 > > ................................................................................ -00:00:35 v #1637 > > │ -00:00:35 v #1638 > > ................................................................................ -00:00:35 v #1639 > > ................................................................................ -00:00:35 v #1640 > > │ -00:00:35 v #1641 > > ................................................................................ -00:00:35 v #1642 > > ................................................................................ -00:00:35 v #1643 > > │ -00:00:35 v #1644 > > ................................................................................ -00:00:35 v #1645 > > ................................................................................ -00:00:35 v #1646 > > │ -00:00:35 v #1647 > > ................................................................................ -00:00:35 v #1648 > > ................................................................................ -00:00:35 v #1649 > > │ -00:00:35 v #1650 > > ................................................................................ -00:00:35 v #1651 > > ................................................................................ -00:00:35 v #1652 > > │ -00:00:35 v #1653 > > │ -00:00:35 v #1654 > > ................................................................................ -00:00:35 v #1655 > > ................................................................................ -00:00:35 v #1656 > > │ -00:00:35 v #1657 > > ................................................................................ -00:00:35 v #1658 > > ................................................................................ -00:00:35 v #1659 > > │ -00:00:35 v #1660 > > ................................................................................ -00:00:35 v #1661 > > ................................................................................ -00:00:35 v #1662 > > │ -00:00:35 v #1663 > > ................................................................................ -00:00:35 v #1664 > > ................................................................................ -00:00:35 v #1665 > > │ -00:00:35 v #1666 > > ................................................................................ -00:00:35 v #1667 > > ................................................................................ -00:00:35 v #1668 > > │ -00:00:35 v #1669 > > ................................................................................ -00:00:35 v #1670 > > ................................................................................ -00:00:35 v #1671 > > │ -00:00:35 v #1672 > > ................................................................................ -00:00:35 v #1673 > > ................................................................................ -00:00:35 v #1674 > > │ -00:00:35 v #1675 > > ................................................................................ -00:00:35 v #1676 > > ................................................................................ -00:00:35 v #1677 > > │ -00:00:35 v #1678 > > ................................................................................ -00:00:35 v #1679 > > ................................................................................ -00:00:35 v #1680 > > │ -00:00:35 v #1681 > > ................................................................................ -00:00:35 v #1682 > > ................................................................................ -00:00:35 v #1683 > > │ -00:00:35 v #1684 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..................... -00:00:35 v #1685 > > ................................................................................ -00:00:35 v #1686 > > │ -00:00:35 v #1687 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..................... -00:00:35 v #1688 > > ................................................................................ -00:00:35 v #1689 > > │ -00:00:35 v #1690 > > ......................>/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................... -00:00:35 v #1691 > > ................................................................................ -00:00:35 v #1692 > > │ -00:00:35 v #1693 > > ......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................... -00:00:35 v #1694 > > ................................................................................ -00:00:35 v #1695 > > │ -00:00:35 v #1696 > > ......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... -00:00:35 v #1697 > > ................................................................................ -00:00:35 v #1698 > > │ -00:00:35 v #1699 > > ......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... -00:00:35 v #1700 > > ................................................................................ -00:00:35 v #1701 > > │ -00:00:35 v #1702 > > .....................>//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................. -00:00:35 v #1703 > > ..;;;;;;;;;;;;;;;;;............................................................. -00:00:35 v #1704 > > │ -00:00:35 v #1705 > > .....................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................. -00:00:35 v #1706 > > .>;;;;;;;;;;;;;;;;;;............................................................ -00:00:35 v #1707 > > │ -00:00:35 v #1708 > > .....................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................. -00:00:35 v #1709 > > >//;;;;;;;;;;;;;;;;;............................................................ -00:00:35 v #1710 > > │ -00:00:35 v #1711 > > .....................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................. -00:00:35 v #1712 > > ///;;;;;;;;;;;;;;;;;\..............>;;;;;;;;;................................... -00:00:35 v #1713 > > │ -00:00:35 v #1714 > > .....................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................ -00:00:35 v #1715 > > ///;;;;;;;;;;;;;;;;;;.............>/;;;;;;;;;................................... -00:00:35 v #1716 > > │ -00:00:35 v #1717 > > ......................///;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................ -00:00:35 v #1718 > > ///;;;;;;;;;;;;;;;;;;.............//;;;;;;;;;\.................................. -00:00:35 v #1719 > > │ -00:00:35 v #1720 > > ......................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\............... -00:00:35 v #1721 > > ////;;;;;;;;;;;;;;;;;;.............//;;;;;;;;;.................................. -00:00:35 v #1722 > > │ -00:00:35 v #1723 > > ......................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;............... -00:00:35 v #1724 > > ////;;;;;;;;;;;;;;;;;;.............//<<<<<<<<<.................................. -00:00:35 v #1725 > > │ -00:00:35 v #1726 > > ......................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.............. -00:00:35 v #1727 > > ////;;;;;;;<<<<<<<<<<<............./<<<<<<<<.................................... -00:00:35 v #1728 > > │ -00:00:35 v #1729 > > ......................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.............. -00:00:35 v #1730 > > .///<<<<<<<<<<<<<<<<<........................................................... -00:00:35 v #1731 > > │ -00:00:35 v #1732 > > ......................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\............. -00:00:35 v #1733 > > .//<<<<<<<<<<<<<<<.............................................................. -00:00:35 v #1734 > > │ -00:00:35 v #1735 > > .......................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<............. -00:00:35 v #1736 > > .<<<............................................................................ -00:00:35 v #1737 > > │ -00:00:35 v #1738 > > .......................////;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<............... -00:00:35 v #1739 > > ................................................................................ -00:00:35 v #1740 > > │ -00:00:35 v #1741 > > .......................////<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<...................... -00:00:35 v #1742 > > ................................................................................ -00:00:35 v #1743 > > │ -00:00:35 v #1744 > > .......................////<<<<<<<<<<<<<<<<<<<<<<<<<............................ -00:00:35 v #1745 > > ................................................................................ -00:00:35 v #1746 > > │ -00:00:35 v #1747 > > .......................//<<<<<<<<<<<<<.......................................... -00:00:35 v #1748 > > ................................................................................ -00:00:35 v #1749 > > │ -00:00:35 v #1750 > > ................................................................................ -00:00:35 v #1751 > > ................................................................................ -00:00:35 v #1752 > > │ -00:00:35 v #1753 > > ................................................................................ -00:00:35 v #1754 > > ................................................................................ -00:00:35 v #1755 > > │ -00:00:35 v #1756 > > ................................................................................ -00:00:35 v #1757 > > ................................................................................ -00:00:35 v #1758 > > │ -00:00:35 v #1759 > > ................................................................................ -00:00:35 v #1760 > > ................................................................................ -00:00:35 v #1761 > > │ -00:00:35 v #1762 > > ................................................................................ -00:00:35 v #1763 > > ................................................................................ -00:00:35 v #1764 > > │ -00:00:35 v #1765 > > ................................................................................ -00:00:35 v #1766 > > ................................................................................ -00:00:35 v #1767 > > │ -00:00:35 v #1768 > > ................................................................................ -00:00:35 v #1769 > > ................................................................................ -00:00:35 v #1770 > > │ -00:00:35 v #1771 > > ................................................................................ -00:00:35 v #1772 > > ................................................................................ -00:00:35 v #1773 > > │ -00:00:35 v #1774 > > ................................................................................ -00:00:35 v #1775 > > ................................................................................ -00:00:35 v #1776 > > │ -00:00:35 v #1777 > > ................................................................................ -00:00:35 v #1778 > > ................................................................................ -00:00:35 v #1779 > > │ -00:00:35 v #1780 > > ................................................................................ -00:00:35 v #1781 > > ................................................................................ -00:00:35 v #1782 > > │ -00:00:35 v #1783 > > ................................................................................ -00:00:35 v #1784 > > ................................................................................ -00:00:35 v #1785 > > │ -00:00:35 v #1786 > > │ -00:00:35 v #1787 > > ................................................................................ -00:00:35 v #1788 > > ................................................................................ -00:00:35 v #1789 > > │ -00:00:35 v #1790 > > ................................................................................ -00:00:35 v #1791 > > ................................................................................ -00:00:35 v #1792 > > │ -00:00:35 v #1793 > > ................................................................................ -00:00:35 v #1794 > > ................................................................................ -00:00:35 v #1795 > > │ -00:00:35 v #1796 > > ................................................................................ -00:00:35 v #1797 > > ................................................................................ -00:00:35 v #1798 > > │ -00:00:35 v #1799 > > ................................................................................ -00:00:35 v #1800 > > ................................................................................ -00:00:35 v #1801 > > │ -00:00:35 v #1802 > > ................................................................................ -00:00:35 v #1803 > > ................................................................................ -00:00:35 v #1804 > > │ -00:00:35 v #1805 > > ................................................................................ -00:00:35 v #1806 > > ................................................................................ -00:00:35 v #1807 > > │ -00:00:35 v #1808 > > ................................................................................ -00:00:35 v #1809 > > ................................................................................ -00:00:35 v #1810 > > │ -00:00:35 v #1811 > > ................................................................................ -00:00:35 v #1812 > > ................................................................................ -00:00:35 v #1813 > > │ -00:00:35 v #1814 > > ................................................................................ -00:00:35 v #1815 > > ................................................................................ -00:00:35 v #1816 > > │ -00:00:35 v #1817 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................... -00:00:35 v #1818 > > ................................................................................ -00:00:35 v #1819 > > │ -00:00:35 v #1820 > > ......................./;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..................... -00:00:35 v #1821 > > ................................................................................ -00:00:35 v #1822 > > │ -00:00:35 v #1823 > > ......................>/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................... -00:00:35 v #1824 > > ................................................................................ -00:00:35 v #1825 > > │ -00:00:35 v #1826 > > ......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................... -00:00:35 v #1827 > > ................................................................................ -00:00:35 v #1828 > > │ -00:00:35 v #1829 > > ......................///;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... -00:00:35 v #1830 > > ................................................................................ -00:00:35 v #1831 > > │ -00:00:35 v #1832 > > .....................>///;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... -00:00:35 v #1833 > > ................................................................................ -00:00:35 v #1834 > > │ -00:00:35 v #1835 > > .....................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................. -00:00:35 v #1836 > > ..;;;;;;;;;;;;;;;;;............................................................. -00:00:35 v #1837 > > │ -00:00:35 v #1838 > > ....................>////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................. -00:00:35 v #1839 > > .>/;;;;;;;;;;;;;;;;;............................................................ -00:00:35 v #1840 > > │ -00:00:35 v #1841 > > ....................//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................. -00:00:35 v #1842 > > >//;;;;;;;;;;;;;;;;;............................................................ -00:00:35 v #1843 > > │ -00:00:35 v #1844 > > ....................//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...............> -00:00:35 v #1845 > > ///;;;;;;;;;;;;;;;;;;..............>;;;;;;;;;................................... -00:00:35 v #1846 > > │ -00:00:35 v #1847 > > ...................../////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;............... -00:00:35 v #1848 > > ////;;;;;;;;;;;;;;;;;.............//;;;;;;;;;................................... -00:00:35 v #1849 > > │ -00:00:35 v #1850 > > .....................//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.............. -00:00:35 v #1851 > > ////;;;;;;;;;;;;;;;;;;............///;;;;;;;;;.................................. -00:00:35 v #1852 > > │ -00:00:35 v #1853 > > .....................//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;............... -00:00:35 v #1854 > > ////;;;;;;;;;;;;;;;;;;............///;;;;;;;;;.................................. -00:00:35 v #1855 > > │ -00:00:35 v #1856 > > .....................//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.............. -00:00:35 v #1857 > > ////;;;;;;;;;;;;;;;;;;;............//;<<<<<<<<.................................. -00:00:35 v #1858 > > │ -00:00:35 v #1859 > > .....................//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\............. -00:00:35 v #1860 > > /////<<<<<<<<<<<<<<<<<<............/<<<<<<<<.................................... -00:00:35 v #1861 > > │ -00:00:35 v #1862 > > ......................//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;............. -00:00:35 v #1863 > > .///<<<<<<<<<<<<<<<<............................................................ -00:00:35 v #1864 > > │ -00:00:35 v #1865 > > ......................//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<............ -00:00:35 v #1866 > > .//<<<<<<<<<<<<<<<.............................................................. -00:00:35 v #1867 > > │ -00:00:35 v #1868 > > ......................//////;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<............. -00:00:35 v #1869 > > .<<<<<<......................................................................... -00:00:35 v #1870 > > │ -00:00:35 v #1871 > > ......................///////;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<.................. -00:00:35 v #1872 > > ................................................................................ -00:00:35 v #1873 > > │ -00:00:35 v #1874 > > .......................//////<<<<<<<<<<<<<<<<<<<<<<<<<<<<....................... -00:00:35 v #1875 > > ................................................................................ -00:00:35 v #1876 > > │ -00:00:35 v #1877 > > .......................////<<<<<<<<<<<<<<<<<<<<<<<<<<........................... -00:00:35 v #1878 > > ................................................................................ -00:00:35 v #1879 > > │ -00:00:35 v #1880 > > .......................///<<<<<<<<<<<<<<<<...................................... -00:00:35 v #1881 > > ................................................................................ -00:00:35 v #1882 > > │ -00:00:35 v #1883 > > ......................./<<<<<................................................... -00:00:35 v #1884 > > ................................................................................ -00:00:35 v #1885 > > │ -00:00:35 v #1886 > > ................................................................................ -00:00:35 v #1887 > > ................................................................................ -00:00:35 v #1888 > > │ -00:00:35 v #1889 > > ................................................................................ -00:00:35 v #1890 > > ................................................................................ -00:00:35 v #1891 > > │ -00:00:35 v #1892 > > ................................................................................ -00:00:35 v #1893 > > ................................................................................ -00:00:35 v #1894 > > │ -00:00:35 v #1895 > > ................................................................................ -00:00:35 v #1896 > > ................................................................................ -00:00:35 v #1897 > > │ -00:00:35 v #1898 > > ................................................................................ -00:00:35 v #1899 > > ................................................................................ -00:00:35 v #1900 > > │ -00:00:35 v #1901 > > ................................................................................ -00:00:35 v #1902 > > ................................................................................ -00:00:35 v #1903 > > │ -00:00:35 v #1904 > > ................................................................................ -00:00:35 v #1905 > > ................................................................................ -00:00:35 v #1906 > > │ -00:00:35 v #1907 > > ................................................................................ -00:00:35 v #1908 > > ................................................................................ -00:00:35 v #1909 > > │ -00:00:35 v #1910 > > ................................................................................ -00:00:35 v #1911 > > ................................................................................ -00:00:35 v #1912 > > │ -00:00:35 v #1913 > > ................................................................................ -00:00:35 v #1914 > > ................................................................................ -00:00:35 v #1915 > > │ -00:00:35 v #1916 > > ................................................................................ -00:00:35 v #1917 > > ................................................................................ -00:00:35 v #1918 > > │ -00:00:35 v #1919 > > │ -00:00:35 v #1920 > > ................................................................................ -00:00:35 v #1921 > > ................................................................................ -00:00:35 v #1922 > > │ -00:00:35 v #1923 > > ................................................................................ -00:00:35 v #1924 > > ................................................................................ -00:00:35 v #1925 > > │ -00:00:35 v #1926 > > ................................................................................ -00:00:35 v #1927 > > ................................................................................ -00:00:35 v #1928 > > │ -00:00:35 v #1929 > > ................................................................................ -00:00:35 v #1930 > > ................................................................................ -00:00:35 v #1931 > > │ -00:00:35 v #1932 > > ................................................................................ -00:00:35 v #1933 > > ................................................................................ -00:00:35 v #1934 > > │ -00:00:35 v #1935 > > ................................................................................ -00:00:35 v #1936 > > ................................................................................ -00:00:35 v #1937 > > │ -00:00:35 v #1938 > > ................................................................................ -00:00:35 v #1939 > > ................................................................................ -00:00:35 v #1940 > > │ -00:00:35 v #1941 > > ................................................................................ -00:00:35 v #1942 > > ................................................................................ -00:00:35 v #1943 > > │ -00:00:35 v #1944 > > ................................................................................ -00:00:35 v #1945 > > ................................................................................ -00:00:35 v #1946 > > │ -00:00:35 v #1947 > > ........................;;;;;;.................................................. -00:00:35 v #1948 > > ................................................................................ -00:00:35 v #1949 > > │ -00:00:35 v #1950 > > .......................>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;....................... -00:00:35 v #1951 > > ................................................................................ -00:00:35 v #1952 > > │ -00:00:35 v #1953 > > ......................./;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................... -00:00:35 v #1954 > > ................................................................................ -00:00:35 v #1955 > > │ -00:00:35 v #1956 > > ......................>/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..................... -00:00:35 v #1957 > > ................................................................................ -00:00:35 v #1958 > > │ -00:00:35 v #1959 > > ......................///;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................... -00:00:35 v #1960 > > ................................................................................ -00:00:35 v #1961 > > │ -00:00:35 v #1962 > > .....................>///;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................... -00:00:35 v #1963 > > ................................................................................ -00:00:35 v #1964 > > │ -00:00:35 v #1965 > > ...................../////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... -00:00:35 v #1966 > > ................................................................................ -00:00:35 v #1967 > > │ -00:00:35 v #1968 > > ....................>/////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................. -00:00:35 v #1969 > > ..;;;;;;;;;;;;;;;;;............................................................. -00:00:35 v #1970 > > │ -00:00:35 v #1971 > > ....................//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................. -00:00:35 v #1972 > > .>/;;;;;;;;;;;;;;;;\............................................................ -00:00:35 v #1973 > > │ -00:00:35 v #1974 > > ...................>///////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................. -00:00:35 v #1975 > > >//;;;;;;;;;;;;;;;;;............................................................ -00:00:35 v #1976 > > │ -00:00:35 v #1977 > > ...................////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;............... -00:00:35 v #1978 > > ///;;;;;;;;;;;;;;;;;;..............>;;;;;;;;;................................... -00:00:35 v #1979 > > │ -00:00:35 v #1980 > > ....................////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.............. -00:00:35 v #1981 > > ////;;;;;;;;;;;;;;;;;\............>/;;;;;;;;;\.................................. -00:00:35 v #1982 > > │ -00:00:35 v #1983 > > ....................////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\............. -00:00:35 v #1984 > > ////;;;;;;;;;;;;;;;;;;............///;;;;;;;;;.................................. -00:00:35 v #1985 > > │ -00:00:35 v #1986 > > ....................////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;............. -00:00:35 v #1987 > > /////;;;;;;;;;;;;;;;;;;...........///;;;;;;;<<\................................. -00:00:35 v #1988 > > │ -00:00:35 v #1989 > > .....................////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;............. -00:00:35 v #1990 > > /////;;;;;;;;;;;;;;<<<<............///<<<<<<<<.................................. -00:00:35 v #1991 > > │ -00:00:35 v #1992 > > .....................////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\............ -00:00:35 v #1993 > > //////<<<<<<<<<<<<<<<<<............//<<<<<<<.................................... -00:00:35 v #1994 > > │ -00:00:35 v #1995 > > ...................../////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;............ -00:00:35 v #1996 > > /////<<<<<<<<<<<<<<<............................................................ -00:00:35 v #1997 > > │ -00:00:35 v #1998 > > ...................../////////;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<............ -00:00:35 v #1999 > > .//<<<<<<<<<<<<<<<.............................................................. -00:00:35 v #2000 > > │ -00:00:35 v #2001 > > ......................////////;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<................ -00:00:35 v #2002 > > ./<<<<<<<<...................................................................... -00:00:35 v #2003 > > │ -00:00:35 v #2004 > > ....................../////////<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<................... -00:00:35 v #2005 > > ................................................................................ -00:00:35 v #2006 > > │ -00:00:35 v #2007 > > ......................////////<<<<<<<<<<<<<<<<<<<<<<<<<<<....................... -00:00:35 v #2008 > > ................................................................................ -00:00:35 v #2009 > > │ -00:00:35 v #2010 > > ......................./////<<<<<<<<<<<<<<<<<<<<<<<<<........................... -00:00:35 v #2011 > > ................................................................................ -00:00:35 v #2012 > > │ -00:00:35 v #2013 > > .......................///<<<<<<<<<<<<<<<<<<<<.................................. -00:00:35 v #2014 > > ................................................................................ -00:00:35 v #2015 > > │ -00:00:35 v #2016 > > .......................//<<<<<<<<<.............................................. -00:00:35 v #2017 > > ................................................................................ -00:00:35 v #2018 > > │ -00:00:35 v #2019 > > ................................................................................ -00:00:35 v #2020 > > ................................................................................ -00:00:35 v #2021 > > │ -00:00:35 v #2022 > > ................................................................................ -00:00:35 v #2023 > > ................................................................................ -00:00:35 v #2024 > > │ -00:00:35 v #2025 > > ................................................................................ -00:00:35 v #2026 > > ................................................................................ -00:00:35 v #2027 > > │ -00:00:35 v #2028 > > ................................................................................ -00:00:35 v #2029 > > ................................................................................ -00:00:35 v #2030 > > │ -00:00:35 v #2031 > > ................................................................................ -00:00:35 v #2032 > > ................................................................................ -00:00:35 v #2033 > > │ -00:00:35 v #2034 > > ................................................................................ -00:00:35 v #2035 > > ................................................................................ -00:00:35 v #2036 > > │ -00:00:35 v #2037 > > ................................................................................ -00:00:35 v #2038 > > ................................................................................ -00:00:35 v #2039 > > │ -00:00:35 v #2040 > > ................................................................................ -00:00:35 v #2041 > > ................................................................................ -00:00:35 v #2042 > > │ -00:00:35 v #2043 > > ................................................................................ -00:00:35 v #2044 > > ................................................................................ -00:00:35 v #2045 > > │ -00:00:35 v #2046 > > ................................................................................ -00:00:35 v #2047 > > ................................................................................ -00:00:35 v #2048 > > │ -00:00:35 v #2049 > > ................................................................................ -00:00:35 v #2050 > > ................................................................................ -00:00:35 v #2051 > > │ -00:00:35 v #2052 > > │ -00:00:35 v #2053 > > ................................................................................ -00:00:35 v #2054 > > ................................................................................ -00:00:35 v #2055 > > │ -00:00:35 v #2056 > > ................................................................................ -00:00:35 v #2057 > > ................................................................................ -00:00:35 v #2058 > > │ -00:00:35 v #2059 > > ................................................................................ -00:00:35 v #2060 > > ................................................................................ -00:00:35 v #2061 > > │ -00:00:35 v #2062 > > ................................................................................ -00:00:35 v #2063 > > ................................................................................ -00:00:35 v #2064 > > │ -00:00:35 v #2065 > > ................................................................................ -00:00:35 v #2066 > > ................................................................................ -00:00:35 v #2067 > > │ -00:00:35 v #2068 > > ................................................................................ -00:00:35 v #2069 > > ................................................................................ -00:00:35 v #2070 > > │ -00:00:35 v #2071 > > ................................................................................ -00:00:35 v #2072 > > ................................................................................ -00:00:35 v #2073 > > │ -00:00:35 v #2074 > > ................................................................................ -00:00:35 v #2075 > > ................................................................................ -00:00:35 v #2076 > > │ -00:00:35 v #2077 > > ................................................................................ -00:00:35 v #2078 > > ................................................................................ -00:00:35 v #2079 > > │ -00:00:35 v #2080 > > ........................;;;;;;;;;............................................... -00:00:35 v #2081 > > ................................................................................ -00:00:35 v #2082 > > │ -00:00:35 v #2083 > > .......................>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;........................ -00:00:35 v #2084 > > ................................................................................ -00:00:35 v #2085 > > │ -00:00:35 v #2086 > > ......................./;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;....................... -00:00:35 v #2087 > > ................................................................................ -00:00:35 v #2088 > > │ -00:00:35 v #2089 > > ......................>//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................... -00:00:35 v #2090 > > ................................................................................ -00:00:35 v #2091 > > │ -00:00:35 v #2092 > > ......................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..................... -00:00:35 v #2093 > > ................................................................................ -00:00:35 v #2094 > > │ -00:00:35 v #2095 > > .....................>////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................... -00:00:35 v #2096 > > ................................................................................ -00:00:35 v #2097 > > │ -00:00:35 v #2098 > > ....................>//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... -00:00:35 v #2099 > > ................................................................................ -00:00:35 v #2100 > > │ -00:00:35 v #2101 > > ....................>//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................. -00:00:35 v #2102 > > ..;;;;;;;;;;;;;;;;;............................................................. -00:00:35 v #2103 > > │ -00:00:35 v #2104 > > ...................>////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................. -00:00:35 v #2105 > > .>/;;;;;;;;;;;;;;;;\............................................................ -00:00:35 v #2106 > > │ -00:00:35 v #2107 > > .................../////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................ -00:00:35 v #2108 > > >///;;;;;;;;;;;;;;;;............................................................ -00:00:35 v #2109 > > │ -00:00:35 v #2110 > > ..................///////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...............> -00:00:35 v #2111 > > ////;;;;;;;;;;;;;;;;;..............>;;;;;;;;;................................... -00:00:35 v #2112 > > │ -00:00:35 v #2113 > > ...................//////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.............> -00:00:35 v #2114 > > ////;;;;;;;;;;;;;;;;;;............>//;;;;;;;;\.................................. -00:00:35 v #2115 > > │ -00:00:35 v #2116 > > ...................///////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;............ -00:00:35 v #2117 > > /////;;;;;;;;;;;;;;;;;\...........///;;;;;;;;;.................................. -00:00:35 v #2118 > > │ -00:00:35 v #2119 > > ...................///////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;............ -00:00:35 v #2120 > > //////;;;;;;;;;;;;;;;;;...........////;;;<<<<<<................................. -00:00:35 v #2121 > > │ -00:00:35 v #2122 > > ....................///////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;........... -00:00:35 v #2123 > > ///////;;;;;;;<<<<<<<<<<...........///<<<<<<<<.................................. -00:00:35 v #2124 > > │ -00:00:35 v #2125 > > ....................///////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;........... -00:00:35 v #2126 > > ///////<<<<<<<<<<<<<<<.............//<<<<<<<.................................... -00:00:35 v #2127 > > │ -00:00:35 v #2128 > > .....................//////////;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<........... -00:00:35 v #2129 > > /////<<<<<<<<<<<<<<<............................................................ -00:00:35 v #2130 > > │ -00:00:35 v #2131 > > .....................///////////;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<.............. -00:00:35 v #2132 > > .///<<<<<<<<<<<<<<.............................................................. -00:00:35 v #2133 > > │ -00:00:35 v #2134 > > .....................////////////<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<................. -00:00:35 v #2135 > > .//<<<<<<<<<.................................................................... -00:00:35 v #2136 > > │ -00:00:35 v #2137 > > ......................//////////<<<<<<<<<<<<<<<<<<<<<<<<<<<<.................... -00:00:35 v #2138 > > ................................................................................ -00:00:35 v #2139 > > │ -00:00:35 v #2140 > > ....................../////////<<<<<<<<<<<<<<<<<<<<<<<<<<....................... -00:00:35 v #2141 > > ................................................................................ -00:00:35 v #2142 > > │ -00:00:35 v #2143 > > ......................///////<<<<<<<<<<<<<<<<<<<<<<<<<.......................... -00:00:35 v #2144 > > ................................................................................ -00:00:35 v #2145 > > │ -00:00:35 v #2146 > > ......................./////<<<<<<<<<<<<<<<<<<<<................................ -00:00:35 v #2147 > > ................................................................................ -00:00:35 v #2148 > > │ -00:00:35 v #2149 > > .......................///<<<<<<<<<<<<.......................................... -00:00:35 v #2150 > > ................................................................................ -00:00:35 v #2151 > > │ -00:00:35 v #2152 > > ........................<<<<<................................................... -00:00:35 v #2153 > > ................................................................................ -00:00:35 v #2154 > > │ -00:00:35 v #2155 > > ................................................................................ -00:00:35 v #2156 > > ................................................................................ -00:00:35 v #2157 > > │ -00:00:35 v #2158 > > ................................................................................ -00:00:35 v #2159 > > ................................................................................ -00:00:35 v #2160 > > │ -00:00:35 v #2161 > > ................................................................................ -00:00:35 v #2162 > > ................................................................................ -00:00:35 v #2163 > > │ -00:00:35 v #2164 > > ................................................................................ -00:00:35 v #2165 > > ................................................................................ -00:00:35 v #2166 > > │ -00:00:35 v #2167 > > ................................................................................ -00:00:35 v #2168 > > ................................................................................ -00:00:35 v #2169 > > │ -00:00:35 v #2170 > > ................................................................................ -00:00:35 v #2171 > > ................................................................................ -00:00:35 v #2172 > > │ -00:00:35 v #2173 > > ................................................................................ -00:00:35 v #2174 > > ................................................................................ -00:00:35 v #2175 > > │ -00:00:35 v #2176 > > ................................................................................ -00:00:35 v #2177 > > ................................................................................ -00:00:35 v #2178 > > │ -00:00:35 v #2179 > > ................................................................................ -00:00:35 v #2180 > > ................................................................................ -00:00:35 v #2181 > > │ -00:00:35 v #2182 > > ................................................................................ -00:00:35 v #2183 > > ................................................................................ -00:00:35 v #2184 > > │ -00:00:35 v #2185 > > │ -00:00:35 v #2186 > > ................................................................................ -00:00:35 v #2187 > > ................................................................................ -00:00:35 v #2188 > > │ -00:00:35 v #2189 > > ................................................................................ -00:00:35 v #2190 > > ................................................................................ -00:00:35 v #2191 > > │ -00:00:35 v #2192 > > ................................................................................ -00:00:35 v #2193 > > ................................................................................ -00:00:35 v #2194 > > │ -00:00:35 v #2195 > > ................................................................................ -00:00:35 v #2196 > > ................................................................................ -00:00:35 v #2197 > > │ -00:00:35 v #2198 > > ................................................................................ -00:00:35 v #2199 > > ................................................................................ -00:00:35 v #2200 > > │ -00:00:35 v #2201 > > ................................................................................ -00:00:35 v #2202 > > ................................................................................ -00:00:35 v #2203 > > │ -00:00:35 v #2204 > > ................................................................................ -00:00:35 v #2205 > > ................................................................................ -00:00:35 v #2206 > > │ -00:00:35 v #2207 > > ................................................................................ -00:00:35 v #2208 > > ................................................................................ -00:00:35 v #2209 > > │ -00:00:35 v #2210 > > ................................................................................ -00:00:35 v #2211 > > ................................................................................ -00:00:35 v #2212 > > │ -00:00:35 v #2213 > > ........................;;;;;;;;;;.............................................. -00:00:35 v #2214 > > ................................................................................ -00:00:35 v #2215 > > │ -00:00:35 v #2216 > > .......................>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;......................... -00:00:35 v #2217 > > ................................................................................ -00:00:35 v #2218 > > │ -00:00:35 v #2219 > > .......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;........................ -00:00:35 v #2220 > > ................................................................................ -00:00:35 v #2221 > > │ -00:00:35 v #2222 > > ......................>//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;....................... -00:00:35 v #2223 > > ................................................................................ -00:00:35 v #2224 > > │ -00:00:35 v #2225 > > .....................>////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................... -00:00:35 v #2226 > > ................................................................................ -00:00:35 v #2227 > > │ -00:00:35 v #2228 > > .....................//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..................... -00:00:35 v #2229 > > ................................................................................ -00:00:35 v #2230 > > │ -00:00:35 v #2231 > > ....................>//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... -00:00:35 v #2232 > > ................................................................................ -00:00:35 v #2233 > > │ -00:00:35 v #2234 > > ....................////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................. -00:00:35 v #2235 > > ../;;;;;;;;;;;;;;;.............................................................. -00:00:35 v #2236 > > │ -00:00:35 v #2237 > > ...................>/////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................. -00:00:35 v #2238 > > .>/;;;;;;;;;;;;;;;;............................................................. -00:00:35 v #2239 > > │ -00:00:35 v #2240 > > ..................>//////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................ -00:00:35 v #2241 > > >///;;;;;;;;;;;;;;;;............................................................ -00:00:35 v #2242 > > │ -00:00:35 v #2243 > > ..................////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............> -00:00:35 v #2244 > > ////;;;;;;;;;;;;;;;;;..............>;;;;;;;;;................................... -00:00:35 v #2245 > > │ -00:00:35 v #2246 > > ................../////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;............> -00:00:35 v #2247 > > /////;;;;;;;;;;;;;;;;;............>//;;;;;;;;\.................................. -00:00:35 v #2248 > > │ -00:00:35 v #2249 > > ................../////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;........... -00:00:35 v #2250 > > //////;;;;;;;;;;;;;;;;;..........////;;;;;;;;;\................................. -00:00:35 v #2251 > > │ -00:00:35 v #2252 > > .................../////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.......... -00:00:35 v #2253 > > //////;;;;;;;;;;;;;;;;;;..........////;<<<<<<<<................................. -00:00:35 v #2254 > > │ -00:00:35 v #2255 > > .................../////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.......... -00:00:35 v #2256 > > ///////;;<<<<<<<<<<<<<<<...........///<<<<<<<<.................................. -00:00:35 v #2257 > > │ -00:00:35 v #2258 > > ..................../////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<........... -00:00:35 v #2259 > > ////////<<<<<<<<<<<<<<.............//<<<<<<<.................................... -00:00:35 v #2260 > > │ -00:00:35 v #2261 > > ....................//////////////;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<............. -00:00:35 v #2262 > > //////<<<<<<<<<<<<<<............................................................ -00:00:35 v #2263 > > │ -00:00:35 v #2264 > > ....................//////////////;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<............... -00:00:35 v #2265 > > .////<<<<<<<<<<<<<.............................................................. -00:00:35 v #2266 > > │ -00:00:35 v #2267 > > ...................../////////////<<<<<<<<<<<<<<<<<<<<<<<<<<<<.................. -00:00:35 v #2268 > > ..<<<<<<<<<<<................................................................... -00:00:35 v #2269 > > │ -00:00:35 v #2270 > > .....................////////////<<<<<<<<<<<<<<<<<<<<<<<<<<..................... -00:00:35 v #2271 > > ................................................................................ -00:00:35 v #2272 > > │ -00:00:35 v #2273 > > ....................../////////<<<<<<<<<<<<<<<<<<<<<<<<<........................ -00:00:35 v #2274 > > ................................................................................ -00:00:35 v #2275 > > │ -00:00:35 v #2276 > > ......................///////<<<<<<<<<<<<<<<<<<<<<<<<<.......................... -00:00:35 v #2277 > > ................................................................................ -00:00:35 v #2278 > > │ -00:00:35 v #2279 > > ......................./////<<<<<<<<<<<<<<<<<<<<<<.............................. -00:00:35 v #2280 > > ................................................................................ -00:00:35 v #2281 > > │ -00:00:35 v #2282 > > .......................////<<<<<<<<<<<<<<....................................... -00:00:35 v #2283 > > ................................................................................ -00:00:35 v #2284 > > │ -00:00:35 v #2285 > > ......................../<<<<<<<<............................................... -00:00:35 v #2286 > > ................................................................................ -00:00:35 v #2287 > > │ -00:00:35 v #2288 > > ................................................................................ -00:00:35 v #2289 > > ................................................................................ -00:00:35 v #2290 > > │ -00:00:35 v #2291 > > ................................................................................ -00:00:35 v #2292 > > ................................................................................ -00:00:35 v #2293 > > │ -00:00:35 v #2294 > > ................................................................................ -00:00:35 v #2295 > > ................................................................................ -00:00:35 v #2296 > > │ -00:00:35 v #2297 > > ................................................................................ -00:00:35 v #2298 > > ................................................................................ -00:00:35 v #2299 > > │ -00:00:35 v #2300 > > ................................................................................ -00:00:35 v #2301 > > ................................................................................ -00:00:35 v #2302 > > │ -00:00:35 v #2303 > > ................................................................................ -00:00:35 v #2304 > > ................................................................................ -00:00:35 v #2305 > > │ -00:00:35 v #2306 > > ................................................................................ -00:00:35 v #2307 > > ................................................................................ -00:00:35 v #2308 > > │ -00:00:35 v #2309 > > ................................................................................ -00:00:35 v #2310 > > ................................................................................ -00:00:35 v #2311 > > │ -00:00:35 v #2312 > > ................................................................................ -00:00:35 v #2313 > > ................................................................................ -00:00:35 v #2314 > > │ -00:00:35 v #2315 > > ................................................................................ -00:00:35 v #2316 > > ................................................................................ -00:00:35 v #2317 > > │ -00:00:35 v #2318 > > │ -00:00:35 v #2319 > > ................................................................................ -00:00:35 v #2320 > > ................................................................................ -00:00:35 v #2321 > > │ -00:00:35 v #2322 > > ................................................................................ -00:00:35 v #2323 > > ................................................................................ -00:00:35 v #2324 > > │ -00:00:35 v #2325 > > ................................................................................ -00:00:35 v #2326 > > ................................................................................ -00:00:35 v #2327 > > │ -00:00:35 v #2328 > > ................................................................................ -00:00:35 v #2329 > > ................................................................................ -00:00:35 v #2330 > > │ -00:00:35 v #2331 > > ................................................................................ -00:00:35 v #2332 > > ................................................................................ -00:00:35 v #2333 > > │ -00:00:35 v #2334 > > ................................................................................ -00:00:35 v #2335 > > ................................................................................ -00:00:35 v #2336 > > │ -00:00:35 v #2337 > > ................................................................................ -00:00:35 v #2338 > > ................................................................................ -00:00:35 v #2339 > > │ -00:00:35 v #2340 > > ................................................................................ -00:00:35 v #2341 > > ................................................................................ -00:00:35 v #2342 > > │ -00:00:35 v #2343 > > ................................................................................ -00:00:35 v #2344 > > ................................................................................ -00:00:35 v #2345 > > │ -00:00:35 v #2346 > > ........................;;;;;;;;;............................................... -00:00:35 v #2347 > > ................................................................................ -00:00:35 v #2348 > > │ -00:00:35 v #2349 > > .......................>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.......................... -00:00:35 v #2350 > > ................................................................................ -00:00:35 v #2351 > > │ -00:00:35 v #2352 > > ......................>//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;......................... -00:00:35 v #2353 > > ................................................................................ -00:00:35 v #2354 > > │ -00:00:35 v #2355 > > ......................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;........................ -00:00:35 v #2356 > > ................................................................................ -00:00:35 v #2357 > > │ -00:00:35 v #2358 > > .....................>/////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................... -00:00:35 v #2359 > > ................................................................................ -00:00:35 v #2360 > > │ -00:00:35 v #2361 > > ....................>//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..................... -00:00:35 v #2362 > > ................................................................................ -00:00:35 v #2363 > > │ -00:00:35 v #2364 > > ....................>///////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................... -00:00:35 v #2365 > > ................................................................................ -00:00:35 v #2366 > > │ -00:00:35 v #2367 > > ...................>/////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................. -00:00:35 v #2368 > > ..;;;;;;;;;;;;;;;;.............................................................. -00:00:35 v #2369 > > │ -00:00:35 v #2370 > > ...................///////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................. -00:00:35 v #2371 > > .>//;;;;;;;;;;;;;;;............................................................. -00:00:35 v #2372 > > │ -00:00:35 v #2373 > > ..................>////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................ -00:00:35 v #2374 > > >///;;;;;;;;;;;;;;;;............................................................ -00:00:35 v #2375 > > │ -00:00:35 v #2376 > > ................../////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.............> -00:00:35 v #2377 > > /////;;;;;;;;;;;;;;;;..............>;;;;;;;;\................................... -00:00:35 v #2378 > > │ -00:00:35 v #2379 > > .................>//////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...........> -00:00:35 v #2380 > > //////;;;;;;;;;;;;;;;;............>//;;;;;;;;\.................................. -00:00:35 v #2381 > > │ -00:00:35 v #2382 > > .................////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;......... -00:00:35 v #2383 > > //////;;;;;;;;;;;;;;;;;..........>////;;;;;;;;;................................. -00:00:35 v #2384 > > │ -00:00:35 v #2385 > > ..................////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;......... -00:00:35 v #2386 > > ///////;;;;;;;;;;;;<<<<<........../////<<<<<<<<................................. -00:00:35 v #2387 > > │ -00:00:35 v #2388 > > ................../////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<......... -00:00:35 v #2389 > > ////////;<<<<<<<<<<<<<<...........////<<<<<<<<.................................. -00:00:35 v #2390 > > │ -00:00:35 v #2391 > > ...................////////////////;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<........... -00:00:35 v #2392 > > ////////<<<<<<<<<<<<<<.............//<<<<<<<.................................... -00:00:35 v #2393 > > │ -00:00:35 v #2394 > > .................../////////////////;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<.............. -00:00:35 v #2395 > > //////<<<<<<<<<<<<<<............................................................ -00:00:35 v #2396 > > │ -00:00:35 v #2397 > > ....................////////////////<<<<<<<<<<<<<<<<<<<<<<<<<<<................. -00:00:35 v #2398 > > .///<<<<<<<<<<<<<<.............................................................. -00:00:35 v #2399 > > │ -00:00:35 v #2400 > > .....................//////////////<<<<<<<<<<<<<<<<<<<<<<<<<<................... -00:00:35 v #2401 > > ..//<<<<<<<<<<.................................................................. -00:00:35 v #2402 > > │ -00:00:35 v #2403 > > ...................../////////////<<<<<<<<<<<<<<<<<<<<<<<<<..................... -00:00:35 v #2404 > > ..<............................................................................. -00:00:35 v #2405 > > │ -00:00:35 v #2406 > > ......................//////////<<<<<<<<<<<<<<<<<<<<<<<<........................ -00:00:35 v #2407 > > ................................................................................ -00:00:35 v #2408 > > │ -00:00:35 v #2409 > > ....................../////////<<<<<<<<<<<<<<<<<<<<<<<.......................... -00:00:35 v #2410 > > ................................................................................ -00:00:35 v #2411 > > │ -00:00:35 v #2412 > > .......................//////<<<<<<<<<<<<<<<<<<<<<<............................. -00:00:35 v #2413 > > ................................................................................ -00:00:35 v #2414 > > │ -00:00:35 v #2415 > > ........................////<<<<<<<<<<<<<<<..................................... -00:00:35 v #2416 > > ................................................................................ -00:00:35 v #2417 > > │ -00:00:35 v #2418 > > ........................//<<<<<<<<<<............................................ -00:00:35 v #2419 > > ................................................................................ -00:00:35 v #2420 > > │ -00:00:35 v #2421 > > .........................<<<.................................................... -00:00:35 v #2422 > > ................................................................................ -00:00:35 v #2423 > > │ -00:00:35 v #2424 > > ................................................................................ -00:00:35 v #2425 > > ................................................................................ -00:00:35 v #2426 > > │ -00:00:35 v #2427 > > ................................................................................ -00:00:35 v #2428 > > ................................................................................ -00:00:35 v #2429 > > │ -00:00:35 v #2430 > > ................................................................................ -00:00:35 v #2431 > > ................................................................................ -00:00:35 v #2432 > > │ -00:00:35 v #2433 > > ................................................................................ -00:00:35 v #2434 > > ................................................................................ -00:00:35 v #2435 > > │ -00:00:35 v #2436 > > ................................................................................ -00:00:35 v #2437 > > ................................................................................ -00:00:35 v #2438 > > │ -00:00:35 v #2439 > > ................................................................................ -00:00:35 v #2440 > > ................................................................................ -00:00:35 v #2441 > > │ -00:00:35 v #2442 > > ................................................................................ -00:00:35 v #2443 > > ................................................................................ -00:00:35 v #2444 > > │ -00:00:35 v #2445 > > ................................................................................ -00:00:35 v #2446 > > ................................................................................ -00:00:35 v #2447 > > │ -00:00:35 v #2448 > > ................................................................................ -00:00:35 v #2449 > > ................................................................................ -00:00:35 v #2450 > > │ -00:00:35 v #2451 > > │ -00:00:35 v #2452 > > ................................................................................ -00:00:35 v #2453 > > ................................................................................ -00:00:35 v #2454 > > │ -00:00:35 v #2455 > > ................................................................................ -00:00:35 v #2456 > > ................................................................................ -00:00:35 v #2457 > > │ -00:00:35 v #2458 > > ................................................................................ -00:00:35 v #2459 > > ................................................................................ -00:00:35 v #2460 > > │ -00:00:35 v #2461 > > ................................................................................ -00:00:35 v #2462 > > ................................................................................ -00:00:35 v #2463 > > │ -00:00:35 v #2464 > > ................................................................................ -00:00:35 v #2465 > > ................................................................................ -00:00:35 v #2466 > > │ -00:00:35 v #2467 > > ................................................................................ -00:00:35 v #2468 > > ................................................................................ -00:00:35 v #2469 > > │ -00:00:35 v #2470 > > ................................................................................ -00:00:35 v #2471 > > ................................................................................ -00:00:35 v #2472 > > │ -00:00:35 v #2473 > > ................................................................................ -00:00:35 v #2474 > > ................................................................................ -00:00:35 v #2475 > > │ -00:00:35 v #2476 > > ................................................................................ -00:00:35 v #2477 > > ................................................................................ -00:00:35 v #2478 > > │ -00:00:35 v #2479 > > .......................>;;;;;;;;................................................ -00:00:35 v #2480 > > ................................................................................ -00:00:35 v #2481 > > │ -00:00:35 v #2482 > > .......................>/;;;;;;;;;;;;;;;;;;;;;;;;;;;\........................... -00:00:35 v #2483 > > ................................................................................ -00:00:35 v #2484 > > │ -00:00:35 v #2485 > > ......................>//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.......................... -00:00:35 v #2486 > > ................................................................................ -00:00:35 v #2487 > > │ -00:00:35 v #2488 > > ......................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\........................ -00:00:35 v #2489 > > ................................................................................ -00:00:35 v #2490 > > │ -00:00:35 v #2491 > > .....................>//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;....................... -00:00:35 v #2492 > > ................................................................................ -00:00:35 v #2493 > > │ -00:00:35 v #2494 > > ....................>////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\..................... -00:00:35 v #2495 > > ................................................................................ -00:00:35 v #2496 > > │ -00:00:35 v #2497 > > ..................../////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................... -00:00:35 v #2498 > > ................................................................................ -00:00:35 v #2499 > > │ -00:00:35 v #2500 > > ...................>///////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................. -00:00:35 v #2501 > > ..;;;;;;;;;;;;;;;\.............................................................. -00:00:35 v #2502 > > │ -00:00:35 v #2503 > > ..................>/////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................. -00:00:35 v #2504 > > .>/;;;;;;;;;;;;;;;;............................................................. -00:00:35 v #2505 > > │ -00:00:35 v #2506 > > ..................///////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................ -00:00:35 v #2507 > > >///;;;;;;;;;;;;;;;;............................................................ -00:00:35 v #2508 > > │ -00:00:35 v #2509 > > .................>////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.............> -00:00:35 v #2510 > > /////;;;;;;;;;;;;;;;;..............>/;;;;;;;\................................... -00:00:35 v #2511 > > │ -00:00:35 v #2512 > > ................>//////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\..........> -00:00:35 v #2513 > > //////;;;;;;;;;;;;;;;;\...........>///;;;;;;;\.................................. -00:00:35 v #2514 > > │ -00:00:35 v #2515 > > ................>///////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;........> -00:00:35 v #2516 > > ///////;;;;;;;;;;;;;;;;;.........>////;;;;;;;;;................................. -00:00:35 v #2517 > > │ -00:00:35 v #2518 > > .................///////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<....... -00:00:35 v #2519 > > ////////;;;;;;<<<<<<<<<<.........//////<<<<<<<<................................. -00:00:35 v #2520 > > │ -00:00:35 v #2521 > > ................./////////////////////;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<......... -00:00:35 v #2522 > > /////////<<<<<<<<<<<<<<...........////<<<<<<<<.................................. -00:00:35 v #2523 > > │ -00:00:35 v #2524 > > ..................////////////////////;;;;<<<<<<<<<<<<<<<<<<<<<<<<<............ -00:00:35 v #2525 > > ////////<<<<<<<<<<<<<..............//<<<<<<<.................................... -00:00:35 v #2526 > > │ -00:00:35 v #2527 > > ...................////////////////////<<<<<<<<<<<<<<<<<<<<<<<<<<............... -00:00:35 v #2528 > > ///////<<<<<<<<<<<<<............................................................ -00:00:35 v #2529 > > │ -00:00:35 v #2530 > > ...................//////////////////<<<<<<<<<<<<<<<<<<<<<<<<<.................. -00:00:35 v #2531 > > .////<<<<<<<<<<<<<.............................................................. -00:00:35 v #2532 > > │ -00:00:35 v #2533 > > ....................////////////////<<<<<<<<<<<<<<<<<<<<<<<<.................... -00:00:35 v #2534 > > ..//<<<<<<<<<<<................................................................. -00:00:35 v #2535 > > │ -00:00:35 v #2536 > > .....................//////////////<<<<<<<<<<<<<<<<<<<<<<<...................... -00:00:35 v #2537 > > ...<<........................................................................... -00:00:35 v #2538 > > │ -00:00:35 v #2539 > > ......................////////////<<<<<<<<<<<<<<<<<<<<<<........................ -00:00:35 v #2540 > > ................................................................................ -00:00:35 v #2541 > > │ -00:00:35 v #2542 > > ......................//////////<<<<<<<<<<<<<<<<<<<<<<.......................... -00:00:35 v #2543 > > ................................................................................ -00:00:35 v #2544 > > │ -00:00:35 v #2545 > > .......................///////<<<<<<<<<<<<<<<<<<<<<<............................ -00:00:35 v #2546 > > ................................................................................ -00:00:35 v #2547 > > │ -00:00:35 v #2548 > > ......................../////<<<<<<<<<<<<<<<<................................... -00:00:35 v #2549 > > ................................................................................ -00:00:35 v #2550 > > │ -00:00:35 v #2551 > > ........................////<<<<<<<<<<.......................................... -00:00:35 v #2552 > > ................................................................................ -00:00:35 v #2553 > > │ -00:00:35 v #2554 > > ........................./<<<<<<................................................ -00:00:35 v #2555 > > ................................................................................ -00:00:35 v #2556 > > │ -00:00:35 v #2557 > > ................................................................................ -00:00:35 v #2558 > > ................................................................................ -00:00:35 v #2559 > > │ -00:00:35 v #2560 > > ................................................................................ -00:00:35 v #2561 > > ................................................................................ -00:00:35 v #2562 > > │ -00:00:35 v #2563 > > ................................................................................ -00:00:35 v #2564 > > ................................................................................ -00:00:35 v #2565 > > │ -00:00:35 v #2566 > > ................................................................................ -00:00:35 v #2567 > > ................................................................................ -00:00:35 v #2568 > > │ -00:00:35 v #2569 > > ................................................................................ -00:00:35 v #2570 > > ................................................................................ -00:00:35 v #2571 > > │ -00:00:35 v #2572 > > ................................................................................ -00:00:35 v #2573 > > ................................................................................ -00:00:35 v #2574 > > │ -00:00:35 v #2575 > > ................................................................................ -00:00:35 v #2576 > > ................................................................................ -00:00:35 v #2577 > > │ -00:00:35 v #2578 > > ................................................................................ -00:00:35 v #2579 > > ................................................................................ -00:00:35 v #2580 > > │ -00:00:35 v #2581 > > ................................................................................ -00:00:35 v #2582 > > ................................................................................ -00:00:35 v #2583 > > │ -00:00:35 v #2584 > > │ -00:00:35 v #2585 > > ................................................................................ -00:00:35 v #2586 > > ................................................................................ -00:00:35 v #2587 > > │ -00:00:35 v #2588 > > ................................................................................ -00:00:35 v #2589 > > ................................................................................ -00:00:35 v #2590 > > │ -00:00:35 v #2591 > > ................................................................................ -00:00:35 v #2592 > > ................................................................................ -00:00:35 v #2593 > > │ -00:00:35 v #2594 > > ................................................................................ -00:00:35 v #2595 > > ................................................................................ -00:00:35 v #2596 > > │ -00:00:35 v #2597 > > ................................................................................ -00:00:35 v #2598 > > ................................................................................ -00:00:35 v #2599 > > │ -00:00:35 v #2600 > > ................................................................................ -00:00:35 v #2601 > > ................................................................................ -00:00:35 v #2602 > > │ -00:00:35 v #2603 > > ................................................................................ -00:00:35 v #2604 > > ................................................................................ -00:00:35 v #2605 > > │ -00:00:35 v #2606 > > ................................................................................ -00:00:35 v #2607 > > ................................................................................ -00:00:35 v #2608 > > │ -00:00:35 v #2609 > > ................................................................................ -00:00:35 v #2610 > > ................................................................................ -00:00:35 v #2611 > > │ -00:00:35 v #2612 > > .......................;;;;;;;.................................................. -00:00:35 v #2613 > > ................................................................................ -00:00:35 v #2614 > > │ -00:00:35 v #2615 > > ......................./;;;;;;;;;;;;;;;;;;;;;;;;;;;............................. -00:00:35 v #2616 > > ................................................................................ -00:00:35 v #2617 > > │ -00:00:35 v #2618 > > ......................>///;;;;;;;;;;;;;;;;;;;;;;;;;;;........................... -00:00:35 v #2619 > > ................................................................................ -00:00:35 v #2620 > > │ -00:00:35 v #2621 > > .....................>////;;;;;;;;;;;;;;;;;;;;;;;;;;;;.......................... -00:00:35 v #2622 > > ................................................................................ -00:00:35 v #2623 > > │ -00:00:35 v #2624 > > .....................///////;;;;;;;;;;;;;;;;;;;;;;;;;;;;........................ -00:00:35 v #2625 > > ................................................................................ -00:00:35 v #2626 > > │ -00:00:35 v #2627 > > ....................>/////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................... -00:00:35 v #2628 > > ................................................................................ -00:00:35 v #2629 > > │ -00:00:35 v #2630 > > ...................>///////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................... -00:00:35 v #2631 > > ................................................................................ -00:00:35 v #2632 > > │ -00:00:35 v #2633 > > ...................>///////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................. -00:00:35 v #2634 > > ../;;;;;;;;;;;;;;............................................................... -00:00:35 v #2635 > > │ -00:00:35 v #2636 > > ..................>/////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................. -00:00:35 v #2637 > > .>/;;;;;;;;;;;;;;;;............................................................. -00:00:35 v #2638 > > │ -00:00:35 v #2639 > > ..................////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;............... -00:00:35 v #2640 > > >///;;;;;;;;;;;;;;;;............................................................ -00:00:35 v #2641 > > │ -00:00:35 v #2642 > > .................>//////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;............> -00:00:35 v #2643 > > ///////;;;;;;;;;;;;;;..............>/;;;;;;;.................................... -00:00:35 v #2644 > > │ -00:00:35 v #2645 > > ................>////////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..........> -00:00:35 v #2646 > > ////////;;;;;;;;;;;;;;;...........>///;;;;;;;;.................................. -00:00:35 v #2647 > > │ -00:00:35 v #2648 > > ................/////////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<.......> -00:00:35 v #2649 > > /////////;;;;;;;;;;;;;;<.........>////;;;;;;;;<................................. -00:00:35 v #2650 > > │ -00:00:35 v #2651 > > ...............////////////////////////;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<........ -00:00:35 v #2652 > > /////////;<<<<<<<<<<<<<<.........//////;<<<<<<<................................. -00:00:35 v #2653 > > │ -00:00:35 v #2654 > > ................////////////////////////;;;;<<<<<<<<<<<<<<<<<<<<<<<........... -00:00:35 v #2655 > > //////////<<<<<<<<<<<<<.........../////<<<<<<<.................................. -00:00:35 v #2656 > > │ -00:00:35 v #2657 > > .................////////////////////////<<<<<<<<<<<<<<<<<<<<<<<<<............. -00:00:35 v #2658 > > /////////<<<<<<<<<<<<..............//<<<<<<<.................................... -00:00:35 v #2659 > > │ -00:00:35 v #2660 > > ..................//////////////////////<<<<<<<<<<<<<<<<<<<<<<<<................ -00:00:35 v #2661 > > ////////<<<<<<<<<<<<............................................................ -00:00:35 v #2662 > > │ -00:00:35 v #2663 > > ...................///////////////////<<<<<<<<<<<<<<<<<<<<<<<<.................. -00:00:35 v #2664 > > ./////<<<<<<<<<<<<.............................................................. -00:00:35 v #2665 > > │ -00:00:35 v #2666 > > ..................../////////////////<<<<<<<<<<<<<<<<<<<<<<<.................... -00:00:35 v #2667 > > ..///<<<<<<<<<<................................................................. -00:00:35 v #2668 > > │ -00:00:35 v #2669 > > .....................///////////////<<<<<<<<<<<<<<<<<<<<<<...................... -00:00:35 v #2670 > > .../<<<......................................................................... -00:00:35 v #2671 > > │ -00:00:35 v #2672 > > .....................//////////////<<<<<<<<<<<<<<<<<<<<<........................ -00:00:35 v #2673 > > ................................................................................ -00:00:35 v #2674 > > │ -00:00:35 v #2675 > > ......................///////////<<<<<<<<<<<<<<<<<<<<<.......................... -00:00:35 v #2676 > > ................................................................................ -00:00:35 v #2677 > > │ -00:00:35 v #2678 > > ......................./////////<<<<<<<<<<<<<<<<<<<<............................ -00:00:35 v #2679 > > ................................................................................ -00:00:35 v #2680 > > │ -00:00:35 v #2681 > > ........................///////<<<<<<<<<<<<<<<.................................. -00:00:35 v #2682 > > ................................................................................ -00:00:35 v #2683 > > │ -00:00:35 v #2684 > > .........................////<<<<<<<<<<<........................................ -00:00:35 v #2685 > > ................................................................................ -00:00:35 v #2686 > > │ -00:00:35 v #2687 > > ..........................//<<<<<<<............................................. -00:00:35 v #2688 > > ................................................................................ -00:00:35 v #2689 > > │ -00:00:35 v #2690 > > ...........................<<................................................... -00:00:35 v #2691 > > ................................................................................ -00:00:35 v #2692 > > │ -00:00:35 v #2693 > > ................................................................................ -00:00:35 v #2694 > > ................................................................................ -00:00:35 v #2695 > > │ -00:00:35 v #2696 > > ................................................................................ -00:00:35 v #2697 > > ................................................................................ -00:00:35 v #2698 > > │ -00:00:35 v #2699 > > ................................................................................ -00:00:35 v #2700 > > ................................................................................ -00:00:35 v #2701 > > │ -00:00:35 v #2702 > > ................................................................................ -00:00:35 v #2703 > > ................................................................................ -00:00:35 v #2704 > > │ -00:00:35 v #2705 > > ................................................................................ -00:00:35 v #2706 > > ................................................................................ -00:00:35 v #2707 > > │ -00:00:35 v #2708 > > ................................................................................ -00:00:35 v #2709 > > ................................................................................ -00:00:35 v #2710 > > │ -00:00:35 v #2711 > > ................................................................................ -00:00:35 v #2712 > > ................................................................................ -00:00:35 v #2713 > > │ -00:00:35 v #2714 > > ................................................................................ -00:00:35 v #2715 > > ................................................................................ -00:00:35 v #2716 > > │ -00:00:35 v #2717 > > │ -00:00:35 v #2718 > > ................................................................................ -00:00:35 v #2719 > > ................................................................................ -00:00:35 v #2720 > > │ -00:00:35 v #2721 > > ................................................................................ -00:00:35 v #2722 > > ................................................................................ -00:00:35 v #2723 > > │ -00:00:35 v #2724 > > ................................................................................ -00:00:35 v #2725 > > ................................................................................ -00:00:35 v #2726 > > │ -00:00:35 v #2727 > > ................................................................................ -00:00:35 v #2728 > > ................................................................................ -00:00:35 v #2729 > > │ -00:00:35 v #2730 > > ................................................................................ -00:00:35 v #2731 > > ................................................................................ -00:00:35 v #2732 > > │ -00:00:35 v #2733 > > ................................................................................ -00:00:35 v #2734 > > ................................................................................ -00:00:35 v #2735 > > │ -00:00:35 v #2736 > > ................................................................................ -00:00:35 v #2737 > > ................................................................................ -00:00:35 v #2738 > > │ -00:00:35 v #2739 > > ................................................................................ -00:00:35 v #2740 > > ................................................................................ -00:00:35 v #2741 > > │ -00:00:35 v #2742 > > ................................................................................ -00:00:35 v #2743 > > ................................................................................ -00:00:35 v #2744 > > │ -00:00:35 v #2745 > > .......................;;;;..................................................... -00:00:35 v #2746 > > ................................................................................ -00:00:35 v #2747 > > │ -00:00:35 v #2748 > > ......................>/;;;;;;;;;;;;;;;;;;;;;;;;................................ -00:00:35 v #2749 > > ................................................................................ -00:00:35 v #2750 > > │ -00:00:35 v #2751 > > ......................///;;;;;;;;;;;;;;;;;;;;;;;;;;............................. -00:00:35 v #2752 > > ................................................................................ -00:00:35 v #2753 > > │ -00:00:35 v #2754 > > .....................>////;/;;;;;;;;;;;;;;;;;;;;;;;;;........................... -00:00:35 v #2755 > > ................................................................................ -00:00:35 v #2756 > > │ -00:00:35 v #2757 > > ....................>////////;;;;;;;;;;;;;;;;;;;;;;;;;;......................... -00:00:35 v #2758 > > ................................................................................ -00:00:35 v #2759 > > │ -00:00:35 v #2760 > > ....................>////////;/;;;;;;;;;;;;;;;;;;;;;;;;;;....................... -00:00:35 v #2761 > > ................................................................................ -00:00:35 v #2762 > > │ -00:00:35 v #2763 > > ...................>///////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................... -00:00:35 v #2764 > > ................................................................................ -00:00:35 v #2765 > > │ -00:00:35 v #2766 > > ...................///////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;................... -00:00:35 v #2767 > > ..;;;;;;;;;;;;;;\............................................................... -00:00:35 v #2768 > > │ -00:00:35 v #2769 > > ..................>////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................ -00:00:35 v #2770 > > .>/;;;;;;;;;;;;;;;.............................................................. -00:00:35 v #2771 > > │ -00:00:35 v #2772 > > .................>///////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.............. -00:00:35 v #2773 > > >///;/;;;;;;;;;;;;;;............................................................ -00:00:35 v #2774 > > │ -00:00:35 v #2775 > > ................./////////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...........> -00:00:35 v #2776 > > //////;;;;;;;;;;;;;;;;.............>/;;;;;;;.................................... -00:00:35 v #2777 > > │ -00:00:35 v #2778 > > ................>//////////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\........> -00:00:35 v #2779 > > ///////;/;;;;;;;;;;;;;;...........>///;;;;;;;;.................................. -00:00:35 v #2780 > > │ -00:00:35 v #2781 > > ...............>////////////////////////;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<.......> -00:00:35 v #2782 > > /////////;;;;;;;;;<<<<<<.........>////;;;;;;<<<................................. -00:00:35 v #2783 > > │ -00:00:35 v #2784 > > ...............>//////////////////////////;;;;<<<<<<<<<<<<<<<<<<<<<<......... -00:00:35 v #2785 > > //////////;<<<<<<<<<<<<<.........///////<<<<<<<................................. -00:00:35 v #2786 > > │ -00:00:35 v #2787 > > ...............///////////////////////////<<<<<<<<<<<<<<<<<<<<<<<<........... -00:00:35 v #2788 > > //////////<<<<<<<<<<<<............/////<<<<<<................................... -00:00:35 v #2789 > > │ -00:00:35 v #2790 > > ................//////////////////////////<<<<<<<<<<<<<<<<<<<<<<............... -00:00:35 v #2791 > > /////////<<<<<<<<<<<<..............///<<<<<<.................................... -00:00:35 v #2792 > > │ -00:00:35 v #2793 > > .................///////////////////////<<<<<<<<<<<<<<<<<<<<<<<................. -00:00:35 v #2794 > > ///////<<<<<<<<<<<<..................<.......................................... -00:00:35 v #2795 > > │ -00:00:35 v #2796 > > ..................//////////////////////<<<<<<<<<<<<<<<<<<<<<................... -00:00:35 v #2797 > > .//////<<<<<<<<<<<.............................................................. -00:00:35 v #2798 > > │ -00:00:35 v #2799 > > ...................//////////////////<<<<<<<<<<<<<<<<<<<<<<..................... -00:00:35 v #2800 > > ...//<<<<<<<<<<................................................................. -00:00:35 v #2801 > > │ -00:00:35 v #2802 > > ....................////////////////<<<<<<<<<<<<<<<<<<<<<<...................... -00:00:35 v #2803 > > ..../<<<........................................................................ -00:00:35 v #2804 > > │ -00:00:35 v #2805 > > .....................///////////////<<<<<<<<<<<<<<<<<<<<........................ -00:00:35 v #2806 > > ................................................................................ -00:00:35 v #2807 > > │ -00:00:35 v #2808 > > ....................../////////////<<<<<<<<<<<<<<<<<<<.......................... -00:00:35 v #2809 > > ................................................................................ -00:00:35 v #2810 > > │ -00:00:35 v #2811 > > .......................//////////<<<<<<<<<<<<<<<<<<<<........................... -00:00:35 v #2812 > > ................................................................................ -00:00:35 v #2813 > > │ -00:00:35 v #2814 > > ........................////////<<<<<<<<<<<<<<<................................. -00:00:35 v #2815 > > ................................................................................ -00:00:35 v #2816 > > │ -00:00:35 v #2817 > > ..........................////<<<<<<<<<<<<...................................... -00:00:35 v #2818 > > ................................................................................ -00:00:35 v #2819 > > │ -00:00:35 v #2820 > > ..........................////<<<<<<<........................................... -00:00:35 v #2821 > > ................................................................................ -00:00:35 v #2822 > > │ -00:00:35 v #2823 > > ............................<<<<................................................ -00:00:35 v #2824 > > ................................................................................ -00:00:35 v #2825 > > │ -00:00:35 v #2826 > > ................................................................................ -00:00:35 v #2827 > > ................................................................................ -00:00:35 v #2828 > > │ -00:00:35 v #2829 > > ................................................................................ -00:00:35 v #2830 > > ................................................................................ -00:00:35 v #2831 > > │ -00:00:35 v #2832 > > ................................................................................ -00:00:35 v #2833 > > ................................................................................ -00:00:35 v #2834 > > │ -00:00:35 v #2835 > > ................................................................................ -00:00:35 v #2836 > > ................................................................................ -00:00:35 v #2837 > > │ -00:00:35 v #2838 > > ................................................................................ -00:00:35 v #2839 > > ................................................................................ -00:00:35 v #2840 > > │ -00:00:35 v #2841 > > ................................................................................ -00:00:35 v #2842 > > ................................................................................ -00:00:35 v #2843 > > │ -00:00:35 v #2844 > > ................................................................................ -00:00:35 v #2845 > > ................................................................................ -00:00:35 v #2846 > > │ -00:00:35 v #2847 > > ................................................................................ -00:00:35 v #2848 > > ................................................................................ -00:00:35 v #2849 > > │ -00:00:35 v #2850 > > │ -00:00:35 v #2851 > > ................................................................................ -00:00:35 v #2852 > > ................................................................................ -00:00:35 v #2853 > > │ -00:00:35 v #2854 > > ................................................................................ -00:00:35 v #2855 > > ................................................................................ -00:00:35 v #2856 > > │ -00:00:35 v #2857 > > ................................................................................ -00:00:35 v #2858 > > ................................................................................ -00:00:35 v #2859 > > │ -00:00:35 v #2860 > > ................................................................................ -00:00:35 v #2861 > > ................................................................................ -00:00:35 v #2862 > > │ -00:00:35 v #2863 > > ................................................................................ -00:00:35 v #2864 > > ................................................................................ -00:00:35 v #2865 > > │ -00:00:35 v #2866 > > ................................................................................ -00:00:35 v #2867 > > ................................................................................ -00:00:35 v #2868 > > │ -00:00:35 v #2869 > > ................................................................................ -00:00:35 v #2870 > > ................................................................................ -00:00:35 v #2871 > > │ -00:00:35 v #2872 > > ................................................................................ -00:00:35 v #2873 > > ................................................................................ -00:00:35 v #2874 > > │ -00:00:35 v #2875 > > ................................................................................ -00:00:35 v #2876 > > ................................................................................ -00:00:35 v #2877 > > │ -00:00:35 v #2878 > > .......................;;....................................................... -00:00:35 v #2879 > > ................................................................................ -00:00:35 v #2880 > > │ -00:00:35 v #2881 > > ......................>;;;;;;;;;;;;;;;;;;;;..................................... -00:00:35 v #2882 > > ................................................................................ -00:00:35 v #2883 > > │ -00:00:35 v #2884 > > ......................///;;;;;;;;;;;;;;;;;;;;;;;;;.............................. -00:00:35 v #2885 > > ................................................................................ -00:00:35 v #2886 > > │ -00:00:35 v #2887 > > .....................>/////;;;;;;;;;;;;;;;;;;;;;;;;;............................ -00:00:35 v #2888 > > ................................................................................ -00:00:35 v #2889 > > │ -00:00:35 v #2890 > > ....................>////////;;;;;;;;;;;;;;;;;;;;;;;;;\......................... -00:00:35 v #2891 > > ................................................................................ -00:00:35 v #2892 > > │ -00:00:35 v #2893 > > ....................//////////;;;;;;;;;;;;;;;;;;;;;;;;;;;....................... -00:00:35 v #2894 > > ................................................................................ -00:00:35 v #2895 > > │ -00:00:35 v #2896 > > ...................>////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;..................... -00:00:35 v #2897 > > ................................................................................ -00:00:35 v #2898 > > │ -00:00:35 v #2899 > > ..................>///////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................. -00:00:35 v #2900 > > .>/;;;;;;;;;;;;;................................................................ -00:00:35 v #2901 > > │ -00:00:35 v #2902 > > ..................///////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;................ -00:00:35 v #2903 > > >//;;;;;;;;;;;;;;;.............................................................. -00:00:35 v #2904 > > │ -00:00:35 v #2905 > > .................>////////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;.............. -00:00:35 v #2906 > > >////;;;;;;;;;;;;;;;............................................................ -00:00:35 v #2907 > > │ -00:00:35 v #2908 > > .................///////////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..........> -00:00:35 v #2909 > > ///////;;;;;;;;;;;;;;;.............>/;;;;;;;.................................... -00:00:35 v #2910 > > │ -00:00:35 v #2911 > > ................>/////////////////////////;;;;;;;;;;;;;;;;;;<<<<<<<<<.........> -00:00:35 v #2912 > > ////////;;;;;;;;;;;;;;;;..........>//;;;;;;;;;.................................. -00:00:35 v #2913 > > │ -00:00:35 v #2914 > > ...............>/////////////////////////////;;;<<<<<<<<<<<<<<<<<<<<.........> -00:00:35 v #2915 > > //////////;;;<<<<<<<<<<<.........>/////;;;<<<<<................................. -00:00:35 v #2916 > > │ -00:00:35 v #2917 > > ...............//////////////////////////////<<<<<<<<<<<<<<<<<<<<<<......... -00:00:35 v #2918 > > ////////////<<<<<<<<<<<..........///////<<<<<<<................................. -00:00:35 v #2919 > > │ -00:00:35 v #2920 > > ..............>////////////////////////////<<<<<<<<<<<<<<<<<<<<<<............ -00:00:35 v #2921 > > ///////////<<<<<<<<<<<............/////<<<<<<................................... -00:00:35 v #2922 > > │ -00:00:35 v #2923 > > ...............////////////////////////////<<<<<<<<<<<<<<<<<<<<............... -00:00:35 v #2924 > > //////////<<<<<<<<<<<..............///<<<<<<.................................... -00:00:35 v #2925 > > │ -00:00:35 v #2926 > > ................/////////////////////////<<<<<<<<<<<<<<<<<<<<<.................. -00:00:35 v #2927 > > ////////<<<<<<<<<<<..................<.......................................... -00:00:35 v #2928 > > │ -00:00:35 v #2929 > > .................///////////////////////<<<<<<<<<<<<<<<<<<<<<................... -00:00:35 v #2930 > > .//////<<<<<<<<<<<.............................................................. -00:00:35 v #2931 > > │ -00:00:35 v #2932 > > ...................////////////////////<<<<<<<<<<<<<<<<<<<<..................... -00:00:35 v #2933 > > ...///<<<<<<<<<<................................................................ -00:00:35 v #2934 > > │ -00:00:35 v #2935 > > ....................//////////////////<<<<<<<<<<<<<<<<<<<<...................... -00:00:35 v #2936 > > ..../<<<<....................................................................... -00:00:35 v #2937 > > │ -00:00:35 v #2938 > > .....................////////////////<<<<<<<<<<<<<<<<<<<........................ -00:00:35 v #2939 > > ................................................................................ -00:00:35 v #2940 > > │ -00:00:35 v #2941 > > ......................//////////////<<<<<<<<<<<<<<<<<<.......................... -00:00:35 v #2942 > > ................................................................................ -00:00:35 v #2943 > > │ -00:00:35 v #2944 > > ........................///////////<<<<<<<<<<<<<<<<<<........................... -00:00:35 v #2945 > > ................................................................................ -00:00:35 v #2946 > > │ -00:00:35 v #2947 > > .........................////////<<<<<<<<<<<<<<<................................ -00:00:35 v #2948 > > ................................................................................ -00:00:35 v #2949 > > │ -00:00:35 v #2950 > > ..........................//////<<<<<<<<<<<..................................... -00:00:35 v #2951 > > ................................................................................ -00:00:35 v #2952 > > │ -00:00:35 v #2953 > > ...........................////<<<<<<<<......................................... -00:00:35 v #2954 > > ................................................................................ -00:00:35 v #2955 > > │ -00:00:35 v #2956 > > ............................//<<<<.............................................. -00:00:35 v #2957 > > ................................................................................ -00:00:35 v #2958 > > │ -00:00:35 v #2959 > > ................................................................................ -00:00:35 v #2960 > > ................................................................................ -00:00:35 v #2961 > > │ -00:00:35 v #2962 > > ................................................................................ -00:00:35 v #2963 > > ................................................................................ -00:00:35 v #2964 > > │ -00:00:35 v #2965 > > ................................................................................ -00:00:35 v #2966 > > ................................................................................ -00:00:35 v #2967 > > │ -00:00:35 v #2968 > > ................................................................................ -00:00:35 v #2969 > > ................................................................................ -00:00:35 v #2970 > > │ -00:00:35 v #2971 > > ................................................................................ -00:00:35 v #2972 > > ................................................................................ -00:00:35 v #2973 > > │ -00:00:35 v #2974 > > ................................................................................ -00:00:35 v #2975 > > ................................................................................ -00:00:35 v #2976 > > │ -00:00:35 v #2977 > > ................................................................................ -00:00:35 v #2978 > > ................................................................................ -00:00:35 v #2979 > > │ -00:00:35 v #2980 > > ................................................................................ -00:00:35 v #2981 > > ................................................................................ -00:00:35 v #2982 > > │ -00:00:35 v #2983 > > │ -00:00:35 v #2984 > > ................................................................................ -00:00:35 v #2985 > > ................................................................................ -00:00:35 v #2986 > > │ -00:00:35 v #2987 > > ................................................................................ -00:00:35 v #2988 > > ................................................................................ -00:00:35 v #2989 > > │ -00:00:35 v #2990 > > ................................................................................ -00:00:35 v #2991 > > ................................................................................ -00:00:35 v #2992 > > │ -00:00:35 v #2993 > > ................................................................................ -00:00:35 v #2994 > > ................................................................................ -00:00:35 v #2995 > > │ -00:00:35 v #2996 > > ................................................................................ -00:00:35 v #2997 > > ................................................................................ -00:00:35 v #2998 > > │ -00:00:35 v #2999 > > ................................................................................ -00:00:35 v #3000 > > ................................................................................ -00:00:35 v #3001 > > │ -00:00:35 v #3002 > > ................................................................................ -00:00:35 v #3003 > > ................................................................................ -00:00:35 v #3004 > > │ -00:00:35 v #3005 > > ................................................................................ -00:00:35 v #3006 > > ................................................................................ -00:00:35 v #3007 > > │ -00:00:35 v #3008 > > ................................................................................ -00:00:35 v #3009 > > ................................................................................ -00:00:35 v #3010 > > │ -00:00:35 v #3011 > > ................................................................................ -00:00:35 v #3012 > > ................................................................................ -00:00:35 v #3013 > > │ -00:00:35 v #3014 > > ....................../;;;;;;;;;;;;;;;;......................................... -00:00:35 v #3015 > > ................................................................................ -00:00:35 v #3016 > > │ -00:00:35 v #3017 > > .....................>///;;;;;;;;;;;;;;;;;;;;;;;................................ -00:00:35 v #3018 > > ................................................................................ -00:00:35 v #3019 > > │ -00:00:35 v #3020 > > .....................//////;;;;;;;;;;;;;;;;;;;;;;;;............................. -00:00:35 v #3021 > > ................................................................................ -00:00:35 v #3022 > > │ -00:00:35 v #3023 > > ..................../////////;;;;;;;;;;;;;;;;;;;;;;;;........................... -00:00:35 v #3024 > > ................................................................................ -00:00:35 v #3025 > > │ -00:00:35 v #3026 > > ...................>///////////;/;;;;;;;;;;;;;;;;;;;;;;;........................ -00:00:35 v #3027 > > ................................................................................ -00:00:35 v #3028 > > │ -00:00:35 v #3029 > > ...................///////////////;;;;;;;;;;;;;;;;;;;;;;;;;..................... -00:00:35 v #3030 > > ................................................................................ -00:00:35 v #3031 > > │ -00:00:35 v #3032 > > ..................>/////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;.................. -00:00:35 v #3033 > > .>;;;;;;;;;;;;;................................................................. -00:00:35 v #3034 > > │ -00:00:35 v #3035 > > ..................////////////////////;/;;;;;;;;;;;;;;;;;;;;;;;;................ -00:00:35 v #3036 > > >//;/;;;;;;;;;;;;............................................................... -00:00:35 v #3037 > > │ -00:00:35 v #3038 > > .................>//////////////////////;/;;;;;;;;;;;;;;;;;;;;;;;;;\............ -00:00:35 v #3039 > > //////;;;;;;;;;;;;;;............................................................ -00:00:35 v #3040 > > │ -00:00:35 v #3041 > > ................>//////////////////////////;;;;;;;;;;;;;;;;;;;<<<<<<<..........> -00:00:35 v #3042 > > ///////;;;;;;;;;;;;;;;.............>/;;;;;;;.................................... -00:00:35 v #3043 > > │ -00:00:35 v #3044 > > ................/////////////////////////////;;;;<<<<<<<<<<<<<<<<<<<..........> -00:00:35 v #3045 > > ///////////;;;;;;;;;;;<<..........>//;;;;;;;;;.................................. -00:00:35 v #3046 > > │ -00:00:35 v #3047 > > ...............>//////////////////////////////<<<<<<<<<<<<<<<<<<<<<..........> -00:00:35 v #3048 > > ///////////;<<<<<<<<<<<<.........>/////;;<<<<<<................................. -00:00:35 v #3049 > > │ -00:00:35 v #3050 > > ...............///////////////////////////////<<<<<<<<<<<<<<<<<<<............ -00:00:35 v #3051 > > ////////////<<<<<<<<<<<..........///////<<<<<<.................................. -00:00:35 v #3052 > > │ -00:00:35 v #3053 > > ..............>//////////////////////////////<<<<<<<<<<<<<<<<<<<............ -00:00:35 v #3054 > > ///////////<<<<<<<<<<<............/////<<<<<<................................... -00:00:35 v #3055 > > │ -00:00:35 v #3056 > > ..............//////////////////////////////<<<<<<<<<<<<<<<<<<<............... -00:00:35 v #3057 > > //////////<<<<<<<<<<<...............///<<<<<.................................... -00:00:35 v #3058 > > │ -00:00:35 v #3059 > > ...............///////////////////////////<<<<<<<<<<<<<<<<<<<................... -00:00:35 v #3060 > > /////////<<<<<<<<<<................../.......................................... -00:00:35 v #3061 > > │ -00:00:35 v #3062 > > ................//////////////////////////<<<<<<<<<<<<<<<<<<.................... -00:00:35 v #3063 > > .///////<<<<<<<<<<.............................................................. -00:00:35 v #3064 > > │ -00:00:35 v #3065 > > ..................//////////////////////<<<<<<<<<<<<<<<<<<<..................... -00:00:35 v #3066 > > ...////<<<<<<<<<................................................................ -00:00:35 v #3067 > > │ -00:00:35 v #3068 > > ....................///////////////////<<<<<<<<<<<<<<<<<<....................... -00:00:35 v #3069 > > ...../<<<....................................................................... -00:00:35 v #3070 > > │ -00:00:35 v #3071 > > ...................../////////////////<<<<<<<<<<<<<<<<<<........................ -00:00:35 v #3072 > > ................................................................................ -00:00:35 v #3073 > > │ -00:00:35 v #3074 > > ......................///////////////<<<<<<<<<<<<<<<<<<......................... -00:00:35 v #3075 > > ................................................................................ -00:00:35 v #3076 > > │ -00:00:35 v #3077 > > ........................////////////<<<<<<<<<<<<<<<<<........................... -00:00:35 v #3078 > > ................................................................................ -00:00:35 v #3079 > > │ -00:00:35 v #3080 > > .........................//////////<<<<<<<<<<<<<<............................... -00:00:35 v #3081 > > ................................................................................ -00:00:35 v #3082 > > │ -00:00:35 v #3083 > > ...........................///////<<<<<<<<<<<................................... -00:00:35 v #3084 > > ................................................................................ -00:00:35 v #3085 > > │ -00:00:35 v #3086 > > ............................/////<<<<<<<........................................ -00:00:35 v #3087 > > ................................................................................ -00:00:35 v #3088 > > │ -00:00:35 v #3089 > > ..............................//<<<<............................................ -00:00:35 v #3090 > > ................................................................................ -00:00:35 v #3091 > > │ -00:00:35 v #3092 > > ................................................................................ -00:00:35 v #3093 > > ................................................................................ -00:00:35 v #3094 > > │ -00:00:35 v #3095 > > ................................................................................ -00:00:35 v #3096 > > ................................................................................ -00:00:35 v #3097 > > │ -00:00:35 v #3098 > > ................................................................................ -00:00:35 v #3099 > > ................................................................................ -00:00:35 v #3100 > > │ -00:00:35 v #3101 > > ................................................................................ -00:00:35 v #3102 > > ................................................................................ -00:00:35 v #3103 > > │ -00:00:35 v #3104 > > ................................................................................ -00:00:35 v #3105 > > ................................................................................ -00:00:35 v #3106 > > │ -00:00:35 v #3107 > > ................................................................................ -00:00:35 v #3108 > > ................................................................................ -00:00:35 v #3109 > > │ -00:00:35 v #3110 > > ................................................................................ -00:00:35 v #3111 > > ................................................................................ -00:00:35 v #3112 > > │ -00:00:35 v #3113 > > ................................................................................ -00:00:35 v #3114 > > ................................................................................ -00:00:35 v #3115 > > │ -00:00:35 v #3116 > > │ -00:00:35 v #3117 > > ................................................................................ -00:00:35 v #3118 > > ................................................................................ -00:00:35 v #3119 > > │ -00:00:35 v #3120 > > ................................................................................ -00:00:35 v #3121 > > ................................................................................ -00:00:35 v #3122 > > │ -00:00:35 v #3123 > > ................................................................................ -00:00:35 v #3124 > > ................................................................................ -00:00:35 v #3125 > > │ -00:00:35 v #3126 > > ................................................................................ -00:00:35 v #3127 > > ................................................................................ -00:00:35 v #3128 > > │ -00:00:35 v #3129 > > ................................................................................ -00:00:35 v #3130 > > ................................................................................ -00:00:35 v #3131 > > │ -00:00:35 v #3132 > > ................................................................................ -00:00:35 v #3133 > > ................................................................................ -00:00:35 v #3134 > > │ -00:00:35 v #3135 > > ................................................................................ -00:00:35 v #3136 > > ................................................................................ -00:00:35 v #3137 > > │ -00:00:35 v #3138 > > ................................................................................ -00:00:35 v #3139 > > ................................................................................ -00:00:35 v #3140 > > │ -00:00:35 v #3141 > > ................................................................................ -00:00:35 v #3142 > > ................................................................................ -00:00:35 v #3143 > > │ -00:00:35 v #3144 > > ................................................................................ -00:00:35 v #3145 > > ................................................................................ -00:00:35 v #3146 > > │ -00:00:35 v #3147 > > .....................>;;;;;;;;;;;;.............................................. -00:00:35 v #3148 > > ................................................................................ -00:00:35 v #3149 > > │ -00:00:35 v #3150 > > .....................///;;;;;;;;;;;;;;;;;;;;;;.................................. -00:00:35 v #3151 > > ................................................................................ -00:00:35 v #3152 > > │ -00:00:35 v #3153 > > ....................>//////;;;;;;;;;;;;;;;;;;;;;;............................... -00:00:35 v #3154 > > ................................................................................ -00:00:35 v #3155 > > │ -00:00:35 v #3156 > > ..................../////////;/;;;;;;;;;;;;;;;;;;;;;\........................... -00:00:35 v #3157 > > ................................................................................ -00:00:35 v #3158 > > │ -00:00:35 v #3159 > > ...................>/////////////;;;;;;;;;;;;;;;;;;;;;;\........................ -00:00:35 v #3160 > > ................................................................................ -00:00:35 v #3161 > > │ -00:00:35 v #3162 > > ...................////////////////;/;;;;;;;;;;;;;;;;;;;;;;..................... -00:00:35 v #3163 > > ................................................................................ -00:00:35 v #3164 > > │ -00:00:35 v #3165 > > ..................>///////////////////;/;;;;;;;;;;;;;;;;;;;;;;.................. -00:00:35 v #3166 > > .;;;;;;;;;;;;;.................................................................. -00:00:35 v #3167 > > │ -00:00:35 v #3168 > > .................>///////////////////////;;;;;;;;;;;;;;;;;;;;;;;;\.............. -00:00:35 v #3169 > > >///;;;;;;;;;;;;;............................................................... -00:00:35 v #3170 > > │ -00:00:35 v #3171 > > .................//////////////////////////;;;;;;;;;;;;;;;;;;;;;;<<<............ -00:00:35 v #3172 > > /////;;;;;;;;;;;;;;;............................................................ -00:00:35 v #3173 > > │ -00:00:35 v #3174 > > ................>/////////////////////////////;;;;<<<<<<<<<<<<<<<<<<...........> -00:00:35 v #3175 > > ////////;/;;;;;;;;;;;;;............>/;;;;;;;.................................... -00:00:35 v #3176 > > │ -00:00:35 v #3177 > > ................////////////////////////////////<<<<<<<<<<<<<<<<<<<...........> -00:00:35 v #3178 > > //////////;;;;;;;<<<<<<<..........>//;;;;;;;;;.................................. -00:00:35 v #3179 > > │ -00:00:35 v #3180 > > ...............>///////////////////////////////<<<<<<<<<<<<<<<<<<<...........> -00:00:35 v #3181 > > /////////////<<<<<<<<<<..........>///////<<<<<<................................. -00:00:35 v #3182 > > │ -00:00:35 v #3183 > > ...............///////////////////////////////<<<<<<<<<<<<<<<<<<............. -00:00:35 v #3184 > > ////////////<<<<<<<<<<...........////////<<<<<.................................. -00:00:35 v #3185 > > │ -00:00:35 v #3186 > > ..............>///////////////////////////////<<<<<<<<<<<<<<<<<.............> -00:00:35 v #3187 > > ///////////<<<<<<<<<<............///////<<<<<................................... -00:00:35 v #3188 > > │ -00:00:35 v #3189 > > ..............//////////////////////////////<<<<<<<<<<<<<<<<<<............... -00:00:35 v #3190 > > ///////////<<<<<<<<<................///<<<<<.................................... -00:00:35 v #3191 > > │ -00:00:35 v #3192 > > ..............//////////////////////////////<<<<<<<<<<<<<<<<<.................. -00:00:35 v #3193 > > //////////<<<<<<<<<.................../......................................... -00:00:35 v #3194 > > │ -00:00:35 v #3195 > > ...............////////////////////////////<<<<<<<<<<<<<<<<<.................... -00:00:35 v #3196 > > ..///////<<<<<<<<<.............................................................. -00:00:35 v #3197 > > │ -00:00:35 v #3198 > > ................./////////////////////////<<<<<<<<<<<<<<<<...................... -00:00:35 v #3199 > > ....////<<<<<<<<................................................................ -00:00:35 v #3200 > > │ -00:00:35 v #3201 > > ...................//////////////////////<<<<<<<<<<<<<<<<....................... -00:00:35 v #3202 > > ....../<<<...................................................................... -00:00:35 v #3203 > > │ -00:00:35 v #3204 > > .....................//////////////////<<<<<<<<<<<<<<<<<........................ -00:00:35 v #3205 > > ................................................................................ -00:00:35 v #3206 > > │ -00:00:35 v #3207 > > ....................../////////////////<<<<<<<<<<<<<<<<......................... -00:00:35 v #3208 > > ................................................................................ -00:00:35 v #3209 > > │ -00:00:35 v #3210 > > ........................//////////////<<<<<<<<<<<<<<<........................... -00:00:35 v #3211 > > ................................................................................ -00:00:35 v #3212 > > │ -00:00:35 v #3213 > > ..........................///////////<<<<<<<<<<<<............................... -00:00:35 v #3214 > > ................................................................................ -00:00:35 v #3215 > > │ -00:00:35 v #3216 > > ............................////////<<<<<<<<<<.................................. -00:00:35 v #3217 > > ................................................................................ -00:00:35 v #3218 > > │ -00:00:35 v #3219 > > .............................//////<<<<<<<...................................... -00:00:35 v #3220 > > ................................................................................ -00:00:35 v #3221 > > │ -00:00:35 v #3222 > > ...............................///<<<<.......................................... -00:00:35 v #3223 > > ................................................................................ -00:00:35 v #3224 > > │ -00:00:35 v #3225 > > .................................<.............................................. -00:00:35 v #3226 > > ................................................................................ -00:00:35 v #3227 > > │ -00:00:35 v #3228 > > ................................................................................ -00:00:35 v #3229 > > ................................................................................ -00:00:35 v #3230 > > │ -00:00:35 v #3231 > > ................................................................................ -00:00:35 v #3232 > > ................................................................................ -00:00:35 v #3233 > > │ -00:00:35 v #3234 > > ................................................................................ -00:00:35 v #3235 > > ................................................................................ -00:00:35 v #3236 > > │ -00:00:35 v #3237 > > ................................................................................ -00:00:35 v #3238 > > ................................................................................ -00:00:35 v #3239 > > │ -00:00:35 v #3240 > > ................................................................................ -00:00:35 v #3241 > > ................................................................................ -00:00:35 v #3242 > > │ -00:00:35 v #3243 > > ................................................................................ -00:00:35 v #3244 > > ................................................................................ -00:00:35 v #3245 > > │ -00:00:35 v #3246 > > ................................................................................ -00:00:35 v #3247 > > ................................................................................ -00:00:35 v #3248 > > │ -00:00:35 v #3249 > > │ -00:00:35 v #3250 > > ................................................................................ -00:00:35 v #3251 > > ................................................................................ -00:00:35 v #3252 > > │ -00:00:35 v #3253 > > ................................................................................ -00:00:35 v #3254 > > ................................................................................ -00:00:35 v #3255 > > │ -00:00:35 v #3256 > > ................................................................................ -00:00:35 v #3257 > > ................................................................................ -00:00:35 v #3258 > > │ -00:00:35 v #3259 > > ................................................................................ -00:00:35 v #3260 > > ................................................................................ -00:00:35 v #3261 > > │ -00:00:35 v #3262 > > ................................................................................ -00:00:35 v #3263 > > ................................................................................ -00:00:35 v #3264 > > │ -00:00:35 v #3265 > > ................................................................................ -00:00:35 v #3266 > > ................................................................................ -00:00:35 v #3267 > > │ -00:00:35 v #3268 > > ................................................................................ -00:00:35 v #3269 > > ................................................................................ -00:00:35 v #3270 > > │ -00:00:35 v #3271 > > ................................................................................ -00:00:35 v #3272 > > ................................................................................ -00:00:35 v #3273 > > │ -00:00:35 v #3274 > > ................................................................................ -00:00:35 v #3275 > > ................................................................................ -00:00:35 v #3276 > > │ -00:00:35 v #3277 > > ................................................................................ -00:00:35 v #3278 > > ................................................................................ -00:00:35 v #3279 > > │ -00:00:35 v #3280 > > ...................../;;;;;;;;.................................................. -00:00:35 v #3281 > > ................................................................................ -00:00:35 v #3282 > > │ -00:00:35 v #3283 > > ....................>//;;;;;;;;;;;;;;;;;;;;;.................................... -00:00:35 v #3284 > > ................................................................................ -00:00:35 v #3285 > > │ -00:00:35 v #3286 > > ....................//////;;;;;;;;;;;;;;;;;;;;;................................. -00:00:35 v #3287 > > ................................................................................ -00:00:35 v #3288 > > │ -00:00:35 v #3289 > > ...................>//////////;/;;;;;;;;;;;;;;;;;;;............................. -00:00:35 v #3290 > > ................................................................................ -00:00:35 v #3291 > > │ -00:00:35 v #3292 > > ...................//////////////;/;;;;;;;;;;;;;;;;;;;;......................... -00:00:35 v #3293 > > ................................................................................ -00:00:35 v #3294 > > │ -00:00:35 v #3295 > > ..................>////////////////////;;;;;;;;;;;;;;;;;;;;..................... -00:00:35 v #3296 > > ................................................................................ -00:00:35 v #3297 > > │ -00:00:35 v #3298 > > ..................//////////////////////;;;;;;;;;;;;;;;;;;;;;;;................. -00:00:35 v #3299 > > .;;;;;;;;;;;;\.................................................................. -00:00:35 v #3300 > > │ -00:00:35 v #3301 > > .................>/////////////////////////;;;;;;;;;;;;;;;;;;;;;;;.............. -00:00:35 v #3302 > > >/;;/;;;;;;;;;;;;............................................................... -00:00:35 v #3303 > > │ -00:00:35 v #3304 > > .................////////////////////////////////;;;<<<<<<<<<<<<<<<<............ -00:00:35 v #3305 > > /////;;/;;;;;;;;;;;;............................................................ -00:00:35 v #3306 > > │ -00:00:35 v #3307 > > ................>/////////////////////////////////<<<<<<<<<<<<<<<<<............> -00:00:35 v #3308 > > ////////;;;;;;;;;;;;;;;............;;;;;;;;;.................................... -00:00:35 v #3309 > > │ -00:00:35 v #3310 > > ................/////////////////////////////////<<<<<<<<<<<<<<<<.............> -00:00:35 v #3311 > > ////////////;;<<<<<<<<<<..........>////;;;;;;;;................................. -00:00:35 v #3312 > > │ -00:00:35 v #3313 > > ...............>////////////////////////////////<<<<<<<<<<<<<<<<.............. -00:00:35 v #3314 > > //////////////<<<<<<<<<...........//////;<<<<<<................................. -00:00:35 v #3315 > > │ -00:00:35 v #3316 > > ...............////////////////////////////////<<<<<<<<<<<<<<<<..............> -00:00:35 v #3317 > > /////////////<<<<<<<<<...........>///////<<<<<.................................. -00:00:35 v #3318 > > │ -00:00:35 v #3319 > > ..............>///////////////////////////////<<<<<<<<<<<<<<<<..............> -00:00:35 v #3320 > > ////////////<<<<<<<<<............///////<<<<<................................... -00:00:35 v #3321 > > │ -00:00:35 v #3322 > > ..............///////////////////////////////<<<<<<<<<<<<<<<<................ -00:00:35 v #3323 > > ///////////<<<<<<<<<................///<<<<<.................................... -00:00:35 v #3324 > > │ -00:00:35 v #3325 > > .............>///////////////////////////////<<<<<<<<<<<<<<<................... -00:00:35 v #3326 > > //////////<<<<<<<<<............................................................. -00:00:35 v #3327 > > │ -00:00:35 v #3328 > > ..............//////////////////////////////<<<<<<<<<<<<<<<..................... -00:00:35 v #3329 > > ..///////<<<<<<<<<.............................................................. -00:00:35 v #3330 > > │ -00:00:35 v #3331 > > ................///////////////////////////<<<<<<<<<<<<<<<...................... -00:00:35 v #3332 > > ..../////<<<<<<<................................................................ -00:00:35 v #3333 > > │ -00:00:35 v #3334 > > ..................////////////////////////<<<<<<<<<<<<<<<....................... -00:00:35 v #3335 > > ......./<<...................................................................... -00:00:35 v #3336 > > │ -00:00:35 v #3337 > > ..................../////////////////////<<<<<<<<<<<<<<<........................ -00:00:35 v #3338 > > ................................................................................ -00:00:35 v #3339 > > │ -00:00:35 v #3340 > > ......................//////////////////<<<<<<<<<<<<<<<......................... -00:00:35 v #3341 > > ................................................................................ -00:00:35 v #3342 > > │ -00:00:35 v #3343 > > ........................///////////////<<<<<<<<<<<<<<........................... -00:00:35 v #3344 > > ................................................................................ -00:00:35 v #3345 > > │ -00:00:35 v #3346 > > ...........................///////////<<<<<<<<<<<<.............................. -00:00:35 v #3347 > > ................................................................................ -00:00:35 v #3348 > > │ -00:00:35 v #3349 > > ............................//////////<<<<<<<<<................................. -00:00:35 v #3350 > > ................................................................................ -00:00:35 v #3351 > > │ -00:00:35 v #3352 > > ..............................///////<<<<<<..................................... -00:00:35 v #3353 > > ................................................................................ -00:00:35 v #3354 > > │ -00:00:35 v #3355 > > ................................////<<<<........................................ -00:00:35 v #3356 > > ................................................................................ -00:00:35 v #3357 > > │ -00:00:35 v #3358 > > ...................................<............................................ -00:00:35 v #3359 > > ................................................................................ -00:00:35 v #3360 > > │ -00:00:35 v #3361 > > ................................................................................ -00:00:35 v #3362 > > ................................................................................ -00:00:35 v #3363 > > │ -00:00:35 v #3364 > > ................................................................................ -00:00:35 v #3365 > > ................................................................................ -00:00:35 v #3366 > > │ -00:00:35 v #3367 > > ................................................................................ -00:00:35 v #3368 > > ................................................................................ -00:00:35 v #3369 > > │ -00:00:35 v #3370 > > ................................................................................ -00:00:35 v #3371 > > ................................................................................ -00:00:35 v #3372 > > │ -00:00:35 v #3373 > > ................................................................................ -00:00:35 v #3374 > > ................................................................................ -00:00:35 v #3375 > > │ -00:00:35 v #3376 > > ................................................................................ -00:00:35 v #3377 > > ................................................................................ -00:00:35 v #3378 > > │ -00:00:35 v #3379 > > ................................................................................ -00:00:35 v #3380 > > ................................................................................ -00:00:35 v #3381 > > │ -00:00:35 v #3382 > > │ -00:00:35 v #3383 > > ................................................................................ -00:00:35 v #3384 > > ................................................................................ -00:00:35 v #3385 > > │ -00:00:35 v #3386 > > ................................................................................ -00:00:35 v #3387 > > ................................................................................ -00:00:35 v #3388 > > │ -00:00:35 v #3389 > > ................................................................................ -00:00:35 v #3390 > > ................................................................................ -00:00:35 v #3391 > > │ -00:00:35 v #3392 > > ................................................................................ -00:00:35 v #3393 > > ................................................................................ -00:00:35 v #3394 > > │ -00:00:35 v #3395 > > ................................................................................ -00:00:35 v #3396 > > ................................................................................ -00:00:35 v #3397 > > │ -00:00:35 v #3398 > > ................................................................................ -00:00:35 v #3399 > > ................................................................................ -00:00:35 v #3400 > > │ -00:00:35 v #3401 > > ................................................................................ -00:00:35 v #3402 > > ................................................................................ -00:00:35 v #3403 > > │ -00:00:35 v #3404 > > ................................................................................ -00:00:35 v #3405 > > ................................................................................ -00:00:35 v #3406 > > │ -00:00:35 v #3407 > > ................................................................................ -00:00:35 v #3408 > > ................................................................................ -00:00:35 v #3409 > > │ -00:00:35 v #3410 > > ................................................................................ -00:00:35 v #3411 > > ................................................................................ -00:00:35 v #3412 > > │ -00:00:35 v #3413 > > .....................;;;;;...................................................... -00:00:35 v #3414 > > ................................................................................ -00:00:35 v #3415 > > │ -00:00:35 v #3416 > > ....................>/;/;;;;;;;;;;;;;;.......................................... -00:00:35 v #3417 > > ................................................................................ -00:00:35 v #3418 > > │ -00:00:35 v #3419 > > ....................//////;/;;;;;;;;;;;;;;;;;................................... -00:00:35 v #3420 > > ................................................................................ -00:00:35 v #3421 > > │ -00:00:35 v #3422 > > ...................>//////////;;/;;;;;;;;;;;;;;;;;.............................. -00:00:35 v #3423 > > ................................................................................ -00:00:35 v #3424 > > │ -00:00:35 v #3425 > > ...................////////////////;;;;;;;;;;;;;;;;;;;;......................... -00:00:35 v #3426 > > ................................................................................ -00:00:35 v #3427 > > │ -00:00:35 v #3428 > > ..................>///////////////////////;;;;;;;;;;;;;;;;;..................... -00:00:35 v #3429 > > ................................................................................ -00:00:35 v #3430 > > │ -00:00:35 v #3431 > > ................../////////////////////////;;;;;;;;;;;;;;;;;;;;;................ -00:00:35 v #3432 > > .;;;;;;;;;;;.................................................................... -00:00:35 v #3433 > > │ -00:00:35 v #3434 > > .................>///////////////////////////////;;;;;<<<<<<<<<<<<<............. -00:00:35 v #3435 > > >//;/;;;;;;;;;;;................................................................ -00:00:35 v #3436 > > │ -00:00:35 v #3437 > > .................//////////////////////////////////<<<<<<<<<<<<<<<.............> -00:00:35 v #3438 > > //////;//;;;;;;;;;;;............................................................ -00:00:35 v #3439 > > │ -00:00:35 v #3440 > > ................>/////////////////////////////////<<<<<<<<<<<<<<<..............> -00:00:35 v #3441 > > /////////;/;;;;;;;;;<<<<...........;;;;;;;;..................................... -00:00:35 v #3442 > > │ -00:00:35 v #3443 > > ................//////////////////////////////////<<<<<<<<<<<<<<..............> -00:00:35 v #3444 > > //////////////<<<<<<<<<...........>///;;;;;;;<<................................. -00:00:35 v #3445 > > │ -00:00:35 v #3446 > > ...............>/////////////////////////////////<<<<<<<<<<<<<<<.............. -00:00:35 v #3447 > > //////////////<<<<<<<<<...........///////;<<<<<................................. -00:00:35 v #3448 > > │ -00:00:35 v #3449 > > .............../////////////////////////////////<<<<<<<<<<<<<<<..............> -00:00:35 v #3450 > > /////////////<<<<<<<<<...........>///////<<<<<.................................. -00:00:35 v #3451 > > │ -00:00:35 v #3452 > > ..............>////////////////////////////////<<<<<<<<<<<<<<<..............> -00:00:35 v #3453 > > ////////////<<<<<<<<<............///////<<<<<................................... -00:00:35 v #3454 > > │ -00:00:35 v #3455 > > ..............>///////////////////////////////<<<<<<<<<<<<<<<............... -00:00:35 v #3456 > > ////////////<<<<<<<<................////<<<<<................................... -00:00:35 v #3457 > > │ -00:00:35 v #3458 > > ..............////////////////////////////////<<<<<<<<<<<<<<................... -00:00:35 v #3459 > > ///////////<<<<<<<<............................................................. -00:00:35 v #3460 > > │ -00:00:35 v #3461 > > .............>///////////////////////////////<<<<<<<<<<<<<<..................... -00:00:35 v #3462 > > ..////////<<<<<<<<.............................................................. -00:00:35 v #3463 > > │ -00:00:35 v #3464 > > .............../////////////////////////////<<<<<<<<<<<<<<...................... -00:00:35 v #3465 > > .....////<<<<<<<................................................................ -00:00:35 v #3466 > > │ -00:00:35 v #3467 > > .................//////////////////////////<<<<<<<<<<<<<<....................... -00:00:35 v #3468 > > .......//<<..................................................................... -00:00:35 v #3469 > > │ -00:00:35 v #3470 > > ....................///////////////////////<<<<<<<<<<<<<........................ -00:00:35 v #3471 > > ................................................................................ -00:00:35 v #3472 > > │ -00:00:35 v #3473 > > ......................////////////////////<<<<<<<<<<<<<......................... -00:00:35 v #3474 > > ................................................................................ -00:00:35 v #3475 > > │ -00:00:35 v #3476 > > ......................../////////////////<<<<<<<<<<<<........................... -00:00:35 v #3477 > > ................................................................................ -00:00:35 v #3478 > > │ -00:00:35 v #3479 > > .........................../////////////<<<<<<<<<<.............................. -00:00:35 v #3480 > > ................................................................................ -00:00:35 v #3481 > > │ -00:00:35 v #3482 > > .............................//////////<<<<<<<<................................. -00:00:35 v #3483 > > ................................................................................ -00:00:35 v #3484 > > │ -00:00:35 v #3485 > > ................................///////<<<<<.................................... -00:00:35 v #3486 > > ................................................................................ -00:00:35 v #3487 > > │ -00:00:35 v #3488 > > ..................................////<<<....................................... -00:00:35 v #3489 > > ................................................................................ -00:00:35 v #3490 > > │ -00:00:35 v #3491 > > .....................................<.......................................... -00:00:35 v #3492 > > ................................................................................ -00:00:35 v #3493 > > │ -00:00:35 v #3494 > > ................................................................................ -00:00:35 v #3495 > > ................................................................................ -00:00:35 v #3496 > > │ -00:00:35 v #3497 > > ................................................................................ -00:00:35 v #3498 > > ................................................................................ -00:00:35 v #3499 > > │ -00:00:35 v #3500 > > ................................................................................ -00:00:35 v #3501 > > ................................................................................ -00:00:35 v #3502 > > │ -00:00:35 v #3503 > > ................................................................................ -00:00:35 v #3504 > > ................................................................................ -00:00:35 v #3505 > > │ -00:00:35 v #3506 > > ................................................................................ -00:00:35 v #3507 > > ................................................................................ -00:00:35 v #3508 > > │ -00:00:35 v #3509 > > ................................................................................ -00:00:35 v #3510 > > ................................................................................ -00:00:35 v #3511 > > │ -00:00:35 v #3512 > > ................................................................................ -00:00:35 v #3513 > > ................................................................................ -00:00:35 v #3514 > > │ -00:00:35 v #3515 > > │ -00:00:35 v #3516 > > ................................................................................ -00:00:35 v #3517 > > ................................................................................ -00:00:35 v #3518 > > │ -00:00:35 v #3519 > > ................................................................................ -00:00:35 v #3520 > > ................................................................................ -00:00:35 v #3521 > > │ -00:00:35 v #3522 > > ................................................................................ -00:00:35 v #3523 > > ................................................................................ -00:00:35 v #3524 > > │ -00:00:35 v #3525 > > ................................................................................ -00:00:35 v #3526 > > ................................................................................ -00:00:35 v #3527 > > │ -00:00:35 v #3528 > > ................................................................................ -00:00:35 v #3529 > > ................................................................................ -00:00:35 v #3530 > > │ -00:00:35 v #3531 > > ................................................................................ -00:00:35 v #3532 > > ................................................................................ -00:00:35 v #3533 > > │ -00:00:35 v #3534 > > ................................................................................ -00:00:35 v #3535 > > ................................................................................ -00:00:35 v #3536 > > │ -00:00:35 v #3537 > > ................................................................................ -00:00:35 v #3538 > > ................................................................................ -00:00:35 v #3539 > > │ -00:00:35 v #3540 > > ................................................................................ -00:00:35 v #3541 > > ................................................................................ -00:00:35 v #3542 > > │ -00:00:35 v #3543 > > ................................................................................ -00:00:35 v #3544 > > ................................................................................ -00:00:35 v #3545 > > │ -00:00:35 v #3546 > > ....................;;.......................................................... -00:00:35 v #3547 > > ................................................................................ -00:00:35 v #3548 > > │ -00:00:35 v #3549 > > ....................//;/;;;;;;;;;............................................... -00:00:35 v #3550 > > ................................................................................ -00:00:35 v #3551 > > │ -00:00:35 v #3552 > > ...................>//////;;;/;;;;;;;;;;;;;..................................... -00:00:35 v #3553 > > ................................................................................ -00:00:35 v #3554 > > │ -00:00:35 v #3555 > > ...................////////////;;;;;;;;;;;;;;;;;................................ -00:00:35 v #3556 > > ................................................................................ -00:00:35 v #3557 > > │ -00:00:35 v #3558 > > ..................>/////////////////////;;;;;;;;;;;;;;.......................... -00:00:35 v #3559 > > ................................................................................ -00:00:35 v #3560 > > │ -00:00:35 v #3561 > > ..................>///////////////////////;;;/;;;;;;;;;;;;;;.................... -00:00:35 v #3562 > > ................................................................................ -00:00:35 v #3563 > > │ -00:00:35 v #3564 > > ................../////////////////////////////;;/;;;;;;;;;;;;;;;............... -00:00:35 v #3565 > > ;;;;;;;;;;;..................................................................... -00:00:35 v #3566 > > │ -00:00:35 v #3567 > > .................>//////////////////////////////////<<<<<<<<<<<<<<.............. -00:00:35 v #3568 > > >/;/;;;;;;;;;;;;................................................................ -00:00:35 v #3569 > > │ -00:00:35 v #3570 > > .................//////////////////////////////////<<<<<<<<<<<<<<..............> -00:00:35 v #3571 > > ///////;;/;;;;;;;;;;;........................................................... -00:00:35 v #3572 > > │ -00:00:35 v #3573 > > ................>//////////////////////////////////<<<<<<<<<<<<<...............> -00:00:35 v #3574 > > //////////;;/;;;<<<<<<<............/;;;;;;;\.................................... -00:00:35 v #3575 > > │ -00:00:35 v #3576 > > ................//////////////////////////////////<<<<<<<<<<<<<...............> -00:00:35 v #3577 > > ///////////////<<<<<<<<...........>//;;/;;;;<<<................................. -00:00:35 v #3578 > > │ -00:00:35 v #3579 > > ...............>//////////////////////////////////<<<<<<<<<<<<................ -00:00:35 v #3580 > > //////////////<<<<<<<<............>///////<<<<.................................. -00:00:35 v #3581 > > │ -00:00:35 v #3582 > > ...............>/////////////////////////////////<<<<<<<<<<<<<...............> -00:00:35 v #3583 > > /////////////<<<<<<<<............>///////<<<<<.................................. -00:00:35 v #3584 > > │ -00:00:35 v #3585 > > .............../////////////////////////////////<<<<<<<<<<<<<................> -00:00:35 v #3586 > > /////////////<<<<<<<<............////////<<<<................................... -00:00:35 v #3587 > > │ -00:00:35 v #3588 > > ..............>////////////////////////////////<<<<<<<<<<<<<................. -00:00:35 v #3589 > > ////////////<<<<<<<<................////<<<<<................................... -00:00:35 v #3590 > > │ -00:00:35 v #3591 > > ............../////////////////////////////////<<<<<<<<<<<<................... -00:00:35 v #3592 > > ///////////<<<<<<<<............................................................. -00:00:35 v #3593 > > │ -00:00:35 v #3594 > > .............>////////////////////////////////<<<<<<<<<<<<<..................... -00:00:35 v #3595 > > ../////////<<<<<<<<............................................................. -00:00:35 v #3596 > > │ -00:00:35 v #3597 > > .............////////////////////////////////<<<<<<<<<<<<<...................... -00:00:35 v #3598 > > ...../////<<<<<<................................................................ -00:00:35 v #3599 > > │ -00:00:35 v #3600 > > ................/////////////////////////////<<<<<<<<<<<<....................... -00:00:35 v #3601 > > ........./<..................................................................... -00:00:35 v #3602 > > │ -00:00:35 v #3603 > > .................../////////////////////////<<<<<<<<<<<<........................ -00:00:35 v #3604 > > ................................................................................ -00:00:35 v #3605 > > │ -00:00:35 v #3606 > > ....................../////////////////////<<<<<<<<<<<<......................... -00:00:35 v #3607 > > ................................................................................ -00:00:35 v #3608 > > │ -00:00:35 v #3609 > > ........................///////////////////<<<<<<<<<<........................... -00:00:35 v #3610 > > ................................................................................ -00:00:35 v #3611 > > │ -00:00:35 v #3612 > > ............................//////////////<<<<<<<<<............................. -00:00:35 v #3613 > > ................................................................................ -00:00:35 v #3614 > > │ -00:00:35 v #3615 > > ...............................//////////<<<<<<<................................ -00:00:35 v #3616 > > ................................................................................ -00:00:35 v #3617 > > │ -00:00:35 v #3618 > > ..................................///////<<<<<.................................. -00:00:35 v #3619 > > ................................................................................ -00:00:35 v #3620 > > │ -00:00:35 v #3621 > > ....................................////<<<..................................... -00:00:35 v #3622 > > ................................................................................ -00:00:35 v #3623 > > │ -00:00:35 v #3624 > > ......................................./........................................ -00:00:35 v #3625 > > ................................................................................ -00:00:35 v #3626 > > │ -00:00:35 v #3627 > > ................................................................................ -00:00:35 v #3628 > > ................................................................................ -00:00:35 v #3629 > > │ -00:00:35 v #3630 > > ................................................................................ -00:00:35 v #3631 > > ................................................................................ -00:00:35 v #3632 > > │ -00:00:35 v #3633 > > ................................................................................ -00:00:35 v #3634 > > ................................................................................ -00:00:35 v #3635 > > │ -00:00:35 v #3636 > > ................................................................................ -00:00:35 v #3637 > > ................................................................................ -00:00:35 v #3638 > > │ -00:00:35 v #3639 > > ................................................................................ -00:00:35 v #3640 > > ................................................................................ -00:00:35 v #3641 > > │ -00:00:35 v #3642 > > ................................................................................ -00:00:35 v #3643 > > ................................................................................ -00:00:35 v #3644 > > │ -00:00:35 v #3645 > > ................................................................................ -00:00:35 v #3646 > > ................................................................................ -00:00:35 v #3647 > > │ -00:00:35 v #3648 > > │ -00:00:35 v #3649 > > ................................................................................ -00:00:35 v #3650 > > ................................................................................ -00:00:35 v #3651 > > │ -00:00:35 v #3652 > > ................................................................................ -00:00:35 v #3653 > > ................................................................................ -00:00:35 v #3654 > > │ -00:00:35 v #3655 > > ................................................................................ -00:00:35 v #3656 > > ................................................................................ -00:00:35 v #3657 > > │ -00:00:35 v #3658 > > ................................................................................ -00:00:35 v #3659 > > ................................................................................ -00:00:35 v #3660 > > │ -00:00:35 v #3661 > > ................................................................................ -00:00:35 v #3662 > > ................................................................................ -00:00:35 v #3663 > > │ -00:00:35 v #3664 > > ................................................................................ -00:00:35 v #3665 > > ................................................................................ -00:00:35 v #3666 > > │ -00:00:35 v #3667 > > ................................................................................ -00:00:35 v #3668 > > ................................................................................ -00:00:35 v #3669 > > │ -00:00:35 v #3670 > > ................................................................................ -00:00:35 v #3671 > > ................................................................................ -00:00:35 v #3672 > > │ -00:00:35 v #3673 > > ................................................................................ -00:00:35 v #3674 > > ................................................................................ -00:00:35 v #3675 > > │ -00:00:35 v #3676 > > ................................................................................ -00:00:35 v #3677 > > ................................................................................ -00:00:35 v #3678 > > │ -00:00:35 v #3679 > > ................................................................................ -00:00:35 v #3680 > > ................................................................................ -00:00:35 v #3681 > > │ -00:00:35 v #3682 > > ...................;/;;;;;;;;................................................... -00:00:35 v #3683 > > ................................................................................ -00:00:35 v #3684 > > │ -00:00:35 v #3685 > > ...................//////;///;;;;;;;;;;......................................... -00:00:35 v #3686 > > ................................................................................ -00:00:35 v #3687 > > │ -00:00:35 v #3688 > > ..................>/////////////;;;;;;;;;;;;;;;................................. -00:00:35 v #3689 > > ................................................................................ -00:00:35 v #3690 > > │ -00:00:35 v #3691 > > ..................>////////////////////;//;;;;;;;;;;;;.......................... -00:00:35 v #3692 > > ................................................................................ -00:00:35 v #3693 > > │ -00:00:35 v #3694 > > ................../////////////////////////////;/;;;;;;;;;;;;................... -00:00:35 v #3695 > > ................................................................................ -00:00:35 v #3696 > > │ -00:00:35 v #3697 > > .................>///////////////////////////////////<<<<<<<<<<<<............... -00:00:35 v #3698 > > ................................................................................ -00:00:35 v #3699 > > │ -00:00:35 v #3700 > > .................>//////////////////////////////////<<<<<<<<<<<<................ -00:00:35 v #3701 > > /;;/;;;;;;;;;;;................................................................. -00:00:35 v #3702 > > │ -00:00:35 v #3703 > > .................///////////////////////////////////<<<<<<<<<<<<...............> -00:00:35 v #3704 > > ///////;;;;;;;;;;;;;;........................................................... -00:00:35 v #3705 > > │ -00:00:35 v #3706 > > ................>//////////////////////////////////<<<<<<<<<<<<................> -00:00:35 v #3707 > > /////////////;;<<<<<<<<............;;;;;;;;..................................... -00:00:35 v #3708 > > │ -00:00:35 v #3709 > > ................>//////////////////////////////////<<<<<<<<<<<................> -00:00:35 v #3710 > > ///////////////<<<<<<<............>//;;/;;<<<<<................................. -00:00:35 v #3711 > > │ -00:00:35 v #3712 > > ................//////////////////////////////////<<<<<<<<<<<<................> -00:00:35 v #3713 > > ///////////////<<<<<<<............>///////<<<<.................................. -00:00:35 v #3714 > > │ -00:00:35 v #3715 > > ...............>//////////////////////////////////<<<<<<<<<<<................. -00:00:35 v #3716 > > //////////////<<<<<<<............>///////<<<<<.................................. -00:00:35 v #3717 > > │ -00:00:35 v #3718 > > ...............//////////////////////////////////<<<<<<<<<<<.................> -00:00:35 v #3719 > > /////////////<<<<<<<.............>///////<<<<................................... -00:00:35 v #3720 > > │ -00:00:35 v #3721 > > ...............//////////////////////////////////<<<<<<<<<<<................. -00:00:35 v #3722 > > /////////////<<<<<<<................////<<<<<................................... -00:00:35 v #3723 > > │ -00:00:35 v #3724 > > ..............>/////////////////////////////////<<<<<<<<<<<.................. -00:00:35 v #3725 > > ////////////<<<<<<<............................................................. -00:00:35 v #3726 > > │ -00:00:35 v #3727 > > ............../////////////////////////////////<<<<<<<<<<<...................... -00:00:35 v #3728 > > ..//////////<<<<<<<............................................................. -00:00:35 v #3729 > > │ -00:00:35 v #3730 > > .............//////////////////////////////////<<<<<<<<<<<...................... -00:00:35 v #3731 > > ....../////<<<<<................................................................ -00:00:35 v #3732 > > │ -00:00:35 v #3733 > > ..............////////////////////////////////<<<<<<<<<<<....................... -00:00:35 v #3734 > > ........../<.................................................................... -00:00:35 v #3735 > > │ -00:00:35 v #3736 > > ................./////////////////////////////<<<<<<<<<<........................ -00:00:35 v #3737 > > ................................................................................ -00:00:35 v #3738 > > │ -00:00:35 v #3739 > > .....................////////////////////////<<<<<<<<<<<........................ -00:00:35 v #3740 > > ................................................................................ -00:00:35 v #3741 > > │ -00:00:35 v #3742 > > ........................////////////////////<<<<<<<<<<.......................... -00:00:35 v #3743 > > ................................................................................ -00:00:35 v #3744 > > │ -00:00:35 v #3745 > > ............................////////////////<<<<<<<............................. -00:00:35 v #3746 > > ................................................................................ -00:00:35 v #3747 > > │ -00:00:35 v #3748 > > ................................///////////<<<<<<............................... -00:00:35 v #3749 > > ................................................................................ -00:00:35 v #3750 > > │ -00:00:35 v #3751 > > ...................................////////<<<<................................. -00:00:35 v #3752 > > ................................................................................ -00:00:35 v #3753 > > │ -00:00:35 v #3754 > > .......................................///<<.................................... -00:00:35 v #3755 > > ................................................................................ -00:00:35 v #3756 > > │ -00:00:35 v #3757 > > ................................................................................ -00:00:35 v #3758 > > ................................................................................ -00:00:35 v #3759 > > │ -00:00:35 v #3760 > > ................................................................................ -00:00:35 v #3761 > > ................................................................................ -00:00:35 v #3762 > > │ -00:00:35 v #3763 > > ................................................................................ -00:00:35 v #3764 > > ................................................................................ -00:00:35 v #3765 > > │ -00:00:35 v #3766 > > ................................................................................ -00:00:35 v #3767 > > ................................................................................ -00:00:35 v #3768 > > │ -00:00:35 v #3769 > > ................................................................................ -00:00:35 v #3770 > > ................................................................................ -00:00:35 v #3771 > > │ -00:00:35 v #3772 > > ................................................................................ -00:00:35 v #3773 > > ................................................................................ -00:00:35 v #3774 > > │ -00:00:35 v #3775 > > ................................................................................ -00:00:35 v #3776 > > ................................................................................ -00:00:35 v #3777 > > │ -00:00:35 v #3778 > > ................................................................................ -00:00:35 v #3779 > > ................................................................................ -00:00:35 v #3780 > > │ -00:00:35 v #3781 > > │ -00:00:35 v #3782 > > ................................................................................ -00:00:35 v #3783 > > ................................................................................ -00:00:35 v #3784 > > │ -00:00:35 v #3785 > > ................................................................................ -00:00:35 v #3786 > > ................................................................................ -00:00:35 v #3787 > > │ -00:00:35 v #3788 > > ................................................................................ -00:00:35 v #3789 > > ................................................................................ -00:00:35 v #3790 > > │ -00:00:35 v #3791 > > ................................................................................ -00:00:35 v #3792 > > ................................................................................ -00:00:35 v #3793 > > │ -00:00:35 v #3794 > > ................................................................................ -00:00:35 v #3795 > > ................................................................................ -00:00:35 v #3796 > > │ -00:00:35 v #3797 > > ................................................................................ -00:00:35 v #3798 > > ................................................................................ -00:00:35 v #3799 > > │ -00:00:35 v #3800 > > ................................................................................ -00:00:35 v #3801 > > ................................................................................ -00:00:35 v #3802 > > │ -00:00:35 v #3803 > > ................................................................................ -00:00:35 v #3804 > > ................................................................................ -00:00:35 v #3805 > > │ -00:00:35 v #3806 > > ................................................................................ -00:00:35 v #3807 > > ................................................................................ -00:00:35 v #3808 > > │ -00:00:35 v #3809 > > ................................................................................ -00:00:35 v #3810 > > ................................................................................ -00:00:35 v #3811 > > │ -00:00:35 v #3812 > > ................................................................................ -00:00:35 v #3813 > > ................................................................................ -00:00:35 v #3814 > > │ -00:00:35 v #3815 > > ...................;;;;;........................................................ -00:00:35 v #3816 > > ................................................................................ -00:00:35 v #3817 > > │ -00:00:35 v #3818 > > ..................>//////;;;;;;;;;;............................................. -00:00:35 v #3819 > > ................................................................................ -00:00:35 v #3820 > > │ -00:00:35 v #3821 > > ..................>//////////////;;;;/;;;;;;.................................... -00:00:35 v #3822 > > ................................................................................ -00:00:35 v #3823 > > │ -00:00:35 v #3824 > > ..................//////////////////////////;;;;;;;;;;.......................... -00:00:35 v #3825 > > ................................................................................ -00:00:35 v #3826 > > │ -00:00:35 v #3827 > > ..................//////////////////////////////////;/<<<<<<<<<................. -00:00:35 v #3828 > > ................................................................................ -00:00:35 v #3829 > > │ -00:00:35 v #3830 > > .................>///////////////////////////////////<<<<<<<<<<................. -00:00:35 v #3831 > > ................................................................................ -00:00:35 v #3832 > > │ -00:00:35 v #3833 > > .................////////////////////////////////////<<<<<<<<<<................. -00:00:35 v #3834 > > ;/;;;;;;;;;;;;;................................................................. -00:00:35 v #3835 > > │ -00:00:35 v #3836 > > .................///////////////////////////////////<<<<<<<<<<.................> -00:00:35 v #3837 > > ///////;;;;;;;;;;;;;;<.......................................................... -00:00:35 v #3838 > > │ -00:00:35 v #3839 > > ................>///////////////////////////////////<<<<<<<<<<................. -00:00:35 v #3840 > > //////////////;<<<<<<<.............;;;;;;;;..................................... -00:00:35 v #3841 > > │ -00:00:35 v #3842 > > ................>///////////////////////////////////<<<<<<<<<.................. -00:00:35 v #3843 > > ///////////////<<<<<<<............>//;;//;<<<<.................................. -00:00:35 v #3844 > > │ -00:00:35 v #3845 > > ................///////////////////////////////////<<<<<<<<<<.................> -00:00:35 v #3846 > > ///////////////<<<<<<.............>///////<<<<.................................. -00:00:35 v #3847 > > │ -00:00:35 v #3848 > > ...............>//////////////////////////////////<<<<<<<<<<.................. -00:00:35 v #3849 > > //////////////<<<<<<<.............////////<<<<.................................. -00:00:35 v #3850 > > │ -00:00:35 v #3851 > > ...............>//////////////////////////////////<<<<<<<<<<.................. -00:00:35 v #3852 > > ///////////////<<<<<.............>///////<<<<................................... -00:00:35 v #3853 > > │ -00:00:35 v #3854 > > ...............///////////////////////////////////<<<<<<<<<..................> -00:00:35 v #3855 > > /////////////<<<<<<<................/////<<<<................................... -00:00:35 v #3856 > > │ -00:00:35 v #3857 > > ...............//////////////////////////////////<<<<<<<<<<.................. -00:00:35 v #3858 > > /////////////<<<<<<............................................................. -00:00:35 v #3859 > > │ -00:00:35 v #3860 > > ..............>//////////////////////////////////<<<<<<<<<...................... -00:00:35 v #3861 > > .///////////<<<<<<<............................................................. -00:00:35 v #3862 > > │ -00:00:35 v #3863 > > ..............>/////////////////////////////////<<<<<<<<<<...................... -00:00:35 v #3864 > > ......./////<<<<................................................................ -00:00:35 v #3865 > > │ -00:00:35 v #3866 > > ..............//////////////////////////////////<<<<<<<<<....................... -00:00:35 v #3867 > > ................................................................................ -00:00:35 v #3868 > > │ -00:00:35 v #3869 > > ...............////////////////////////////////<<<<<<<<<<....................... -00:00:35 v #3870 > > ................................................................................ -00:00:35 v #3871 > > │ -00:00:35 v #3872 > > ....................///////////////////////////<<<<<<<<<........................ -00:00:35 v #3873 > > ................................................................................ -00:00:35 v #3874 > > │ -00:00:35 v #3875 > > ........................//////////////////////<<<<<<<<.......................... -00:00:35 v #3876 > > ................................................................................ -00:00:35 v #3877 > > │ -00:00:35 v #3878 > > ............................./////////////////<<<<<<............................ -00:00:35 v #3879 > > ................................................................................ -00:00:35 v #3880 > > │ -00:00:35 v #3881 > > .................................////////////<<<<<.............................. -00:00:35 v #3882 > > ................................................................................ -00:00:35 v #3883 > > │ -00:00:35 v #3884 > > ......................................///////<<<................................ -00:00:35 v #3885 > > ................................................................................ -00:00:35 v #3886 > > │ -00:00:35 v #3887 > > ..........................................//<<.................................. -00:00:35 v #3888 > > ................................................................................ -00:00:35 v #3889 > > │ -00:00:35 v #3890 > > ................................................................................ -00:00:35 v #3891 > > ................................................................................ -00:00:35 v #3892 > > │ -00:00:35 v #3893 > > ................................................................................ -00:00:35 v #3894 > > ................................................................................ -00:00:35 v #3895 > > │ -00:00:35 v #3896 > > ................................................................................ -00:00:35 v #3897 > > ................................................................................ -00:00:35 v #3898 > > │ -00:00:35 v #3899 > > ................................................................................ -00:00:35 v #3900 > > ................................................................................ -00:00:35 v #3901 > > │ -00:00:35 v #3902 > > ................................................................................ -00:00:35 v #3903 > > ................................................................................ -00:00:35 v #3904 > > │ -00:00:35 v #3905 > > ................................................................................ -00:00:35 v #3906 > > ................................................................................ -00:00:35 v #3907 > > │ -00:00:35 v #3908 > > ................................................................................ -00:00:35 v #3909 > > ................................................................................ -00:00:35 v #3910 > > │ -00:00:35 v #3911 > > ................................................................................ -00:00:35 v #3912 > > ................................................................................ -00:00:35 v #3913 > > │ -00:00:35 v #3914 > > │ -00:00:35 v #3915 > > ................................................................................ -00:00:35 v #3916 > > ................................................................................ -00:00:35 v #3917 > > │ -00:00:35 v #3918 > > ................................................................................ -00:00:35 v #3919 > > ................................................................................ -00:00:35 v #3920 > > │ -00:00:35 v #3921 > > ................................................................................ -00:00:35 v #3922 > > ................................................................................ -00:00:35 v #3923 > > │ -00:00:35 v #3924 > > ................................................................................ -00:00:35 v #3925 > > ................................................................................ -00:00:35 v #3926 > > │ -00:00:35 v #3927 > > ................................................................................ -00:00:35 v #3928 > > ................................................................................ -00:00:35 v #3929 > > │ -00:00:35 v #3930 > > ................................................................................ -00:00:35 v #3931 > > ................................................................................ -00:00:35 v #3932 > > │ -00:00:35 v #3933 > > ................................................................................ -00:00:35 v #3934 > > ................................................................................ -00:00:35 v #3935 > > │ -00:00:35 v #3936 > > ................................................................................ -00:00:35 v #3937 > > ................................................................................ -00:00:35 v #3938 > > │ -00:00:35 v #3939 > > ................................................................................ -00:00:35 v #3940 > > ................................................................................ -00:00:35 v #3941 > > │ -00:00:35 v #3942 > > ................................................................................ -00:00:35 v #3943 > > ................................................................................ -00:00:35 v #3944 > > │ -00:00:35 v #3945 > > ................................................................................ -00:00:35 v #3946 > > ................................................................................ -00:00:35 v #3947 > > │ -00:00:35 v #3948 > > ..................;;;........................................................... -00:00:35 v #3949 > > ................................................................................ -00:00:35 v #3950 > > │ -00:00:35 v #3951 > > ..................//;;;;;;/;;;;;;;;............................................. -00:00:35 v #3952 > > ................................................................................ -00:00:35 v #3953 > > │ -00:00:35 v #3954 > > ..................////////////////;;//;;;;;;;;;;;............................... -00:00:35 v #3955 > > ................................................................................ -00:00:35 v #3956 > > │ -00:00:35 v #3957 > > .................>///////////////////////////////;;;/;<<<<<..................... -00:00:35 v #3958 > > ................................................................................ -00:00:35 v #3959 > > │ -00:00:35 v #3960 > > .................>////////////////////////////////////<<<<<<<<.................. -00:00:35 v #3961 > > ................................................................................ -00:00:35 v #3962 > > │ -00:00:35 v #3963 > > ................./////////////////////////////////////<<<<<<<<.................. -00:00:35 v #3964 > > ................................................................................ -00:00:35 v #3965 > > │ -00:00:35 v #3966 > > .................////////////////////////////////////<<<<<<<<<.................> -00:00:35 v #3967 > > /;;;;;;;;;;;;;.................................................................. -00:00:35 v #3968 > > │ -00:00:35 v #3969 > > .................////////////////////////////////////<<<<<<<<..................> -00:00:35 v #3970 > > ///////;;;;;;;;/<<<<<<.......................................................... -00:00:35 v #3971 > > │ -00:00:35 v #3972 > > ................>///////////////////////////////////<<<<<<<<<.................. -00:00:35 v #3973 > > ////////////////<<<<<<.............;;;;;;;;..................................... -00:00:35 v #3974 > > │ -00:00:35 v #3975 > > ................>///////////////////////////////////<<<<<<<<................... -00:00:35 v #3976 > > ///////////////<<<<<<.............>//;;;//<<<<.................................. -00:00:35 v #3977 > > │ -00:00:35 v #3978 > > ................////////////////////////////////////<<<<<<<<..................> -00:00:35 v #3979 > > ///////////////<<<<<<.............>///////<<<<.................................. -00:00:35 v #3980 > > │ -00:00:35 v #3981 > > ................///////////////////////////////////<<<<<<<<<..................> -00:00:35 v #3982 > > //////////////<<<<<<..............////////<<<................................... -00:00:35 v #3983 > > │ -00:00:35 v #3984 > > ................///////////////////////////////////<<<<<<<<................... -00:00:35 v #3985 > > //////////////<<<<<<..............///////<<<<................................... -00:00:35 v #3986 > > │ -00:00:35 v #3987 > > ...............>///////////////////////////////////<<<<<<<<................... -00:00:35 v #3988 > > //////////////<<<<<<................/////<<<<................................... -00:00:35 v #3989 > > │ -00:00:35 v #3990 > > ...............>//////////////////////////////////<<<<<<<<...................> -00:00:35 v #3991 > > /////////////<<<<<<............................................................. -00:00:35 v #3992 > > │ -00:00:35 v #3993 > > ...............///////////////////////////////////<<<<<<<<...................... -00:00:35 v #3994 > > .////////////<<<<<<............................................................. -00:00:35 v #3995 > > │ -00:00:35 v #3996 > > ...............///////////////////////////////////<<<<<<<<...................... -00:00:35 v #3997 > > ......../////<<<................................................................ -00:00:35 v #3998 > > │ -00:00:35 v #3999 > > ..............>//////////////////////////////////<<<<<<<<....................... -00:00:35 v #4000 > > ................................................................................ -00:00:35 v #4001 > > │ -00:00:35 v #4002 > > ..............>//////////////////////////////////<<<<<<<<....................... -00:00:35 v #4003 > > ................................................................................ -00:00:35 v #4004 > > │ -00:00:35 v #4005 > > ..................//////////////////////////////<<<<<<<<........................ -00:00:35 v #4006 > > ................................................................................ -00:00:35 v #4007 > > │ -00:00:35 v #4008 > > ......................./////////////////////////<<<<<<.......................... -00:00:35 v #4009 > > ................................................................................ -00:00:35 v #4010 > > │ -00:00:35 v #4011 > > .............................///////////////////<<<<............................ -00:00:35 v #4012 > > ................................................................................ -00:00:35 v #4013 > > │ -00:00:35 v #4014 > > ...................................////////////<<<<............................. -00:00:35 v #4015 > > ................................................................................ -00:00:35 v #4016 > > │ -00:00:35 v #4017 > > .........................................//////<<............................... -00:00:35 v #4018 > > ................................................................................ -00:00:35 v #4019 > > │ -00:00:35 v #4020 > > ............................................../................................. -00:00:35 v #4021 > > ................................................................................ -00:00:35 v #4022 > > │ -00:00:35 v #4023 > > ................................................................................ -00:00:35 v #4024 > > ................................................................................ -00:00:35 v #4025 > > │ -00:00:35 v #4026 > > ................................................................................ -00:00:35 v #4027 > > ................................................................................ -00:00:35 v #4028 > > │ -00:00:35 v #4029 > > ................................................................................ -00:00:35 v #4030 > > ................................................................................ -00:00:35 v #4031 > > │ -00:00:35 v #4032 > > ................................................................................ -00:00:35 v #4033 > > ................................................................................ -00:00:35 v #4034 > > │ -00:00:35 v #4035 > > ................................................................................ -00:00:35 v #4036 > > ................................................................................ -00:00:35 v #4037 > > │ -00:00:35 v #4038 > > ................................................................................ -00:00:35 v #4039 > > ................................................................................ -00:00:35 v #4040 > > │ -00:00:35 v #4041 > > ................................................................................ -00:00:35 v #4042 > > ................................................................................ -00:00:35 v #4043 > > │ -00:00:35 v #4044 > > ................................................................................ -00:00:35 v #4045 > > ................................................................................ -00:00:35 v #4046 > > │ -00:00:35 v #4047 > > │ -00:00:35 v #4048 > > ................................................................................ -00:00:35 v #4049 > > ................................................................................ -00:00:35 v #4050 > > │ -00:00:35 v #4051 > > ................................................................................ -00:00:35 v #4052 > > ................................................................................ -00:00:35 v #4053 > > │ -00:00:35 v #4054 > > ................................................................................ -00:00:35 v #4055 > > ................................................................................ -00:00:35 v #4056 > > │ -00:00:35 v #4057 > > ................................................................................ -00:00:35 v #4058 > > ................................................................................ -00:00:35 v #4059 > > │ -00:00:35 v #4060 > > ................................................................................ -00:00:35 v #4061 > > ................................................................................ -00:00:35 v #4062 > > │ -00:00:35 v #4063 > > ................................................................................ -00:00:35 v #4064 > > ................................................................................ -00:00:35 v #4065 > > │ -00:00:35 v #4066 > > ................................................................................ -00:00:35 v #4067 > > ................................................................................ -00:00:35 v #4068 > > │ -00:00:35 v #4069 > > ................................................................................ -00:00:35 v #4070 > > ................................................................................ -00:00:35 v #4071 > > │ -00:00:35 v #4072 > > ................................................................................ -00:00:35 v #4073 > > ................................................................................ -00:00:35 v #4074 > > │ -00:00:35 v #4075 > > ................................................................................ -00:00:35 v #4076 > > ................................................................................ -00:00:35 v #4077 > > │ -00:00:35 v #4078 > > ................................................................................ -00:00:35 v #4079 > > ................................................................................ -00:00:35 v #4080 > > │ -00:00:35 v #4081 > > ................................................................................ -00:00:35 v #4082 > > ................................................................................ -00:00:35 v #4083 > > │ -00:00:35 v #4084 > > .................>;;;;;;;;;;;;/;;;;;;;;......................................... -00:00:35 v #4085 > > ................................................................................ -00:00:35 v #4086 > > │ -00:00:35 v #4087 > > .................>////////////////////;;/;;/;;/;;;;;;;;<<....................... -00:00:35 v #4088 > > ................................................................................ -00:00:35 v #4089 > > │ -00:00:35 v #4090 > > .................>////////////////////////////////////<<<<<<.................... -00:00:35 v #4091 > > ................................................................................ -00:00:35 v #4092 > > │ -00:00:35 v #4093 > > ................./////////////////////////////////////<<<<<<<................... -00:00:35 v #4094 > > ................................................................................ -00:00:35 v #4095 > > │ -00:00:35 v #4096 > > ................./////////////////////////////////////<<<<<<<................... -00:00:35 v #4097 > > ................................................................................ -00:00:35 v #4098 > > │ -00:00:35 v #4099 > > ................./////////////////////////////////////<<<<<<...................; -00:00:35 v #4100 > > ;;;;;/;;;;;;;................................................................... -00:00:35 v #4101 > > │ -00:00:35 v #4102 > > .................////////////////////////////////////<<<<<<<...................> -00:00:35 v #4103 > > ////////;;;///;;<<<<<........................................................... -00:00:35 v #4104 > > │ -00:00:35 v #4105 > > ................>////////////////////////////////////<<<<<<<................... -00:00:35 v #4106 > > ////////////////<<<<<..............;;;;;;;;..................................... -00:00:35 v #4107 > > │ -00:00:35 v #4108 > > ................>////////////////////////////////////<<<<<<.................... -00:00:35 v #4109 > > ///////////////<<<<<<.............>//;;;;;<<<<.................................. -00:00:35 v #4110 > > │ -00:00:35 v #4111 > > ................>////////////////////////////////////<<<<<<.................... -00:00:35 v #4112 > > ///////////////<<<<<..............>///////<<<<.................................. -00:00:35 v #4113 > > │ -00:00:35 v #4114 > > ................>///////////////////////////////////<<<<<<<...................> -00:00:35 v #4115 > > ///////////////<<<<<..............>///////<<<................................... -00:00:35 v #4116 > > │ -00:00:35 v #4117 > > ................////////////////////////////////////<<<<<<<...................> -00:00:35 v #4118 > > ///////////////<<<<<..............////////<<<................................... -00:00:35 v #4119 > > │ -00:00:35 v #4120 > > ................////////////////////////////////////<<<<<<....................> -00:00:35 v #4121 > > ///////////////<<<<<...............///////<<=................................... -00:00:35 v #4122 > > │ -00:00:35 v #4123 > > ................////////////////////////////////////<<<<<<.................... -00:00:35 v #4124 > > //////////////<<<<<............................................................. -00:00:35 v #4125 > > │ -00:00:35 v #4126 > > ...............>///////////////////////////////////<<<<<<<..................... -00:00:35 v #4127 > > //////////////<<<<<............................................................. -00:00:35 v #4128 > > │ -00:00:35 v #4129 > > ...............>///////////////////////////////////<<<<<<....................... -00:00:35 v #4130 > > ........./////<<................................................................ -00:00:35 v #4131 > > │ -00:00:35 v #4132 > > ...............>///////////////////////////////////<<<<<<....................... -00:00:35 v #4133 > > ................................................................................ -00:00:35 v #4134 > > │ -00:00:35 v #4135 > > ...............>///////////////////////////////////<<<<<<....................... -00:00:35 v #4136 > > ................................................................................ -00:00:35 v #4137 > > │ -00:00:35 v #4138 > > ...............///////////////////////////////////<<<<<<........................ -00:00:35 v #4139 > > ................................................................................ -00:00:35 v #4140 > > │ -00:00:35 v #4141 > > ......................////////////////////////////<<<<<......................... -00:00:35 v #4142 > > ................................................................................ -00:00:35 v #4143 > > │ -00:00:35 v #4144 > > ..............................////////////////////<<<........................... -00:00:35 v #4145 > > ................................................................................ -00:00:35 v #4146 > > │ -00:00:35 v #4147 > > ...................................../////////////<<............................ -00:00:35 v #4148 > > ................................................................................ -00:00:35 v #4149 > > │ -00:00:35 v #4150 > > .............................................////<<............................. -00:00:35 v #4151 > > ................................................................................ -00:00:35 v #4152 > > │ -00:00:35 v #4153 > > ................................................................................ -00:00:35 v #4154 > > ................................................................................ -00:00:35 v #4155 > > │ -00:00:35 v #4156 > > ................................................................................ -00:00:35 v #4157 > > ................................................................................ -00:00:35 v #4158 > > │ -00:00:35 v #4159 > > ................................................................................ -00:00:35 v #4160 > > ................................................................................ -00:00:35 v #4161 > > │ -00:00:35 v #4162 > > ................................................................................ -00:00:35 v #4163 > > ................................................................................ -00:00:35 v #4164 > > │ -00:00:35 v #4165 > > ................................................................................ -00:00:35 v #4166 > > ................................................................................ -00:00:35 v #4167 > > │ -00:00:35 v #4168 > > ................................................................................ -00:00:35 v #4169 > > ................................................................................ -00:00:35 v #4170 > > │ -00:00:35 v #4171 > > ................................................................................ -00:00:35 v #4172 > > ................................................................................ -00:00:35 v #4173 > > │ -00:00:35 v #4174 > > ................................................................................ -00:00:35 v #4175 > > ................................................................................ -00:00:35 v #4176 > > │ -00:00:35 v #4177 > > ................................................................................ -00:00:35 v #4178 > > ................................................................................ -00:00:35 v #4179 > > │ -00:00:35 v #4180 > > │ -00:00:35 v #4181 > > ................................................................................ -00:00:35 v #4182 > > ................................................................................ -00:00:35 v #4183 > > │ -00:00:35 v #4184 > > ................................................................................ -00:00:35 v #4185 > > ................................................................................ -00:00:35 v #4186 > > │ -00:00:35 v #4187 > > ................................................................................ -00:00:35 v #4188 > > ................................................................................ -00:00:35 v #4189 > > │ -00:00:35 v #4190 > > ................................................................................ -00:00:35 v #4191 > > ................................................................................ -00:00:35 v #4192 > > │ -00:00:35 v #4193 > > ................................................................................ -00:00:35 v #4194 > > ................................................................................ -00:00:35 v #4195 > > │ -00:00:35 v #4196 > > ................................................................................ -00:00:35 v #4197 > > ................................................................................ -00:00:35 v #4198 > > │ -00:00:35 v #4199 > > ................................................................................ -00:00:35 v #4200 > > ................................................................................ -00:00:35 v #4201 > > │ -00:00:35 v #4202 > > ................................................................................ -00:00:35 v #4203 > > ................................................................................ -00:00:35 v #4204 > > │ -00:00:35 v #4205 > > ................................................................................ -00:00:35 v #4206 > > ................................................................................ -00:00:35 v #4207 > > │ -00:00:35 v #4208 > > ................................................................................ -00:00:35 v #4209 > > ................................................................................ -00:00:35 v #4210 > > │ -00:00:35 v #4211 > > ................................................................................ -00:00:35 v #4212 > > ................................................................................ -00:00:35 v #4213 > > │ -00:00:35 v #4214 > > ................................................................................ -00:00:35 v #4215 > > ................................................................................ -00:00:35 v #4216 > > │ -00:00:35 v #4217 > > .................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<........................ -00:00:35 v #4218 > > ................................................................................ -00:00:35 v #4219 > > │ -00:00:35 v #4220 > > .................//////////////////////////////////////<<<...................... -00:00:35 v #4221 > > ................................................................................ -00:00:35 v #4222 > > │ -00:00:35 v #4223 > > .................//////////////////////////////////////<<<<..................... -00:00:35 v #4224 > > ................................................................................ -00:00:35 v #4225 > > │ -00:00:35 v #4226 > > ................./////////////////////////////////////<<<<<..................... -00:00:35 v #4227 > > ................................................................................ -00:00:35 v #4228 > > │ -00:00:35 v #4229 > > ................./////////////////////////////////////<<<<<..................... -00:00:35 v #4230 > > ................................................................................ -00:00:35 v #4231 > > │ -00:00:35 v #4232 > > ................./////////////////////////////////////<<<<<....................; -00:00:35 v #4233 > > ;/;;;;;;;;;;.................................................................... -00:00:35 v #4234 > > │ -00:00:35 v #4235 > > ................./////////////////////////////////////<<<<<.................... -00:00:35 v #4236 > > ////////////;;;;<<<<............................................................ -00:00:35 v #4237 > > │ -00:00:35 v #4238 > > ................./////////////////////////////////////<<<<<.................... -00:00:35 v #4239 > > ////////////////<<<<...............;;;;;;;;..................................... -00:00:35 v #4240 > > │ -00:00:35 v #4241 > > ................>/////////////////////////////////////<<<<<.................... -00:00:35 v #4242 > > ////////////////<<<<..............>//;;;;;<<<<.................................. -00:00:35 v #4243 > > │ -00:00:35 v #4244 > > ................>/////////////////////////////////////<<<<..................... -00:00:35 v #4245 > > ////////////////<<<<..............>///////<<<................................... -00:00:35 v #4246 > > │ -00:00:35 v #4247 > > ................>////////////////////////////////////<<<<<..................... -00:00:35 v #4248 > > ///////////////<<<<<..............>///////<<<................................... -00:00:35 v #4249 > > │ -00:00:35 v #4250 > > ................>////////////////////////////////////<<<<<..................... -00:00:35 v #4251 > > ///////////////<<<<<..............>///////<<<................................... -00:00:35 v #4252 > > │ -00:00:35 v #4253 > > ................>////////////////////////////////////<<<<<..................... -00:00:35 v #4254 > > ///////////////<<<<<..............////////<<.................................... -00:00:35 v #4255 > > │ -00:00:35 v #4256 > > ................>////////////////////////////////////<<<<<....................> -00:00:35 v #4257 > > ///////////////<<<<............................................................. -00:00:35 v #4258 > > │ -00:00:35 v #4259 > > ................>////////////////////////////////////<<<<<.................... -00:00:35 v #4260 > > ///////////////<<<<............................................................. -00:00:35 v #4261 > > │ -00:00:35 v #4262 > > ................>////////////////////////////////////<<<<....................... -00:00:35 v #4263 > > ............///<................................................................ -00:00:35 v #4264 > > │ -00:00:35 v #4265 > > ................>////////////////////////////////////<<<<....................... -00:00:35 v #4266 > > ................................................................................ -00:00:35 v #4267 > > │ -00:00:35 v #4268 > > ................////////////////////////////////////<<<<<....................... -00:00:35 v #4269 > > ................................................................................ -00:00:35 v #4270 > > │ -00:00:35 v #4271 > > ................////////////////////////////////////<<<<........................ -00:00:35 v #4272 > > ................................................................................ -00:00:35 v #4273 > > │ -00:00:35 v #4274 > > .................///////////////////////////////////<<<......................... -00:00:35 v #4275 > > ................................................................................ -00:00:35 v #4276 > > │ -00:00:35 v #4277 > > .............................///////////////////////<<.......................... -00:00:35 v #4278 > > ................................................................................ -00:00:35 v #4279 > > │ -00:00:35 v #4280 > > .........................................///////////<........................... -00:00:35 v #4281 > > ................................................................................ -00:00:35 v #4282 > > │ -00:00:35 v #4283 > > ................................................................................ -00:00:35 v #4284 > > ................................................................................ -00:00:35 v #4285 > > │ -00:00:35 v #4286 > > ................................................................................ -00:00:35 v #4287 > > ................................................................................ -00:00:35 v #4288 > > │ -00:00:35 v #4289 > > ................................................................................ -00:00:35 v #4290 > > ................................................................................ -00:00:35 v #4291 > > │ -00:00:35 v #4292 > > ................................................................................ -00:00:35 v #4293 > > ................................................................................ -00:00:35 v #4294 > > │ -00:00:35 v #4295 > > ................................................................................ -00:00:35 v #4296 > > ................................................................................ -00:00:35 v #4297 > > │ -00:00:35 v #4298 > > ................................................................................ -00:00:35 v #4299 > > ................................................................................ -00:00:35 v #4300 > > │ -00:00:35 v #4301 > > ................................................................................ -00:00:35 v #4302 > > ................................................................................ -00:00:35 v #4303 > > │ -00:00:35 v #4304 > > ................................................................................ -00:00:35 v #4305 > > ................................................................................ -00:00:35 v #4306 > > │ -00:00:35 v #4307 > > ................................................................................ -00:00:35 v #4308 > > ................................................................................ -00:00:35 v #4309 > > │ -00:00:35 v #4310 > > ................................................................................ -00:00:35 v #4311 > > ................................................................................ -00:00:35 v #4312 > > │ -00:00:35 v #4313 > > │ -00:00:35 v #4314 > > ................................................................................ -00:00:35 v #4315 > > ................................................................................ -00:00:35 v #4316 > > │ -00:00:35 v #4317 > > ................................................................................ -00:00:35 v #4318 > > ................................................................................ -00:00:35 v #4319 > > │ -00:00:35 v #4320 > > ................................................................................ -00:00:35 v #4321 > > ................................................................................ -00:00:35 v #4322 > > │ -00:00:35 v #4323 > > ................................................................................ -00:00:35 v #4324 > > ................................................................................ -00:00:35 v #4325 > > │ -00:00:35 v #4326 > > ................................................................................ -00:00:35 v #4327 > > ................................................................................ -00:00:35 v #4328 > > │ -00:00:35 v #4329 > > ................................................................................ -00:00:35 v #4330 > > ................................................................................ -00:00:35 v #4331 > > │ -00:00:35 v #4332 > > ................................................................................ -00:00:35 v #4333 > > ................................................................................ -00:00:35 v #4334 > > │ -00:00:35 v #4335 > > ................................................................................ -00:00:35 v #4336 > > ................................................................................ -00:00:35 v #4337 > > │ -00:00:35 v #4338 > > ................................................................................ -00:00:35 v #4339 > > ................................................................................ -00:00:35 v #4340 > > │ -00:00:35 v #4341 > > ................................................................................ -00:00:35 v #4342 > > ................................................................................ -00:00:35 v #4343 > > │ -00:00:35 v #4344 > > ................................................................................ -00:00:35 v #4345 > > ................................................................................ -00:00:35 v #4346 > > │ -00:00:35 v #4347 > > ................................................................................ -00:00:35 v #4348 > > ................................................................................ -00:00:35 v #4349 > > │ -00:00:35 v #4350 > > .................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<........................ -00:00:35 v #4351 > > ................................................................................ -00:00:35 v #4352 > > │ -00:00:35 v #4353 > > ................;//////////////////////////////////////<<....................... -00:00:35 v #4354 > > ................................................................................ -00:00:35 v #4355 > > │ -00:00:35 v #4356 > > ................>//////////////////////////////////////<<<...................... -00:00:35 v #4357 > > ................................................................................ -00:00:35 v #4358 > > │ -00:00:35 v #4359 > > ................>//////////////////////////////////////<<<...................... -00:00:35 v #4360 > > ................................................................................ -00:00:35 v #4361 > > │ -00:00:35 v #4362 > > ................>//////////////////////////////////////<<<...................... -00:00:35 v #4363 > > ................................................................................ -00:00:35 v #4364 > > │ -00:00:35 v #4365 > > ................>//////////////////////////////////////<<<.....................; -00:00:35 v #4366 > > ;;;;;;;;;;;;;;;;<<<............................................................. -00:00:35 v #4367 > > │ -00:00:35 v #4368 > > .................//////////////////////////////////////<<<..................... -00:00:35 v #4369 > > ////////////////<<<<............................................................ -00:00:35 v #4370 > > │ -00:00:35 v #4371 > > .................//////////////////////////////////////<<<..................... -00:00:35 v #4372 > > ////////////////<<<<...............;;;;;;;;;<................................... -00:00:35 v #4373 > > │ -00:00:35 v #4374 > > .................//////////////////////////////////////<<<..................... -00:00:35 v #4375 > > ////////////////<<<<..............;;;;;;;;;<<................................... -00:00:35 v #4376 > > │ -00:00:35 v #4377 > > .................//////////////////////////////////////<<<..................... -00:00:35 v #4378 > > ////////////////<<<<..............>////////<<................................... -00:00:35 v #4379 > > │ -00:00:35 v #4380 > > ................./////////////////////////////////////<<<<..................... -00:00:35 v #4381 > > ////////////////<<<<..............>////////<<................................... -00:00:35 v #4382 > > │ -00:00:35 v #4383 > > ................./////////////////////////////////////<<<<..................... -00:00:35 v #4384 > > ////////////////<<<<..............>////////<<................................... -00:00:35 v #4385 > > │ -00:00:35 v #4386 > > ................./////////////////////////////////////<<<<..................... -00:00:35 v #4387 > > ////////////////<<<<..............////////<<.................................... -00:00:35 v #4388 > > │ -00:00:35 v #4389 > > ................./////////////////////////////////////<<<<..................... -00:00:35 v #4390 > > ////////////////<<<<............................................................ -00:00:35 v #4391 > > │ -00:00:35 v #4392 > > ................./////////////////////////////////////<<<<.....................> -00:00:35 v #4393 > > ////////////////<<.............................................................. -00:00:35 v #4394 > > │ -00:00:35 v #4395 > > ................./////////////////////////////////////<<<....................... -00:00:35 v #4396 > > ................................................................................ -00:00:35 v #4397 > > │ -00:00:35 v #4398 > > ................./////////////////////////////////////<<<....................... -00:00:35 v #4399 > > ................................................................................ -00:00:35 v #4400 > > │ -00:00:35 v #4401 > > ................./////////////////////////////////////<<<....................... -00:00:35 v #4402 > > ................................................................................ -00:00:35 v #4403 > > │ -00:00:35 v #4404 > > ................./////////////////////////////////////<<<....................... -00:00:35 v #4405 > > ................................................................................ -00:00:35 v #4406 > > │ -00:00:35 v #4407 > > .................>////////////////////////////////////<<........................ -00:00:35 v #4408 > > ................................................................................ -00:00:35 v #4409 > > │ -00:00:35 v #4410 > > ..........................////////////////////////////<<........................ -00:00:35 v #4411 > > ................................................................................ -00:00:35 v #4412 > > │ -00:00:35 v #4413 > > ................................................//////<......................... -00:00:35 v #4414 > > ................................................................................ -00:00:35 v #4415 > > │ -00:00:35 v #4416 > > ................................................................................ -00:00:35 v #4417 > > ................................................................................ -00:00:35 v #4418 > > │ -00:00:35 v #4419 > > ................................................................................ -00:00:35 v #4420 > > ................................................................................ -00:00:35 v #4421 > > │ -00:00:35 v #4422 > > ................................................................................ -00:00:35 v #4423 > > ................................................................................ -00:00:35 v #4424 > > │ -00:00:35 v #4425 > > ................................................................................ -00:00:35 v #4426 > > ................................................................................ -00:00:35 v #4427 > > │ -00:00:35 v #4428 > > ................................................................................ -00:00:35 v #4429 > > ................................................................................ -00:00:35 v #4430 > > │ -00:00:35 v #4431 > > ................................................................................ -00:00:35 v #4432 > > ................................................................................ -00:00:35 v #4433 > > │ -00:00:35 v #4434 > > ................................................................................ -00:00:35 v #4435 > > ................................................................................ -00:00:35 v #4436 > > │ -00:00:35 v #4437 > > ................................................................................ -00:00:35 v #4438 > > ................................................................................ -00:00:35 v #4439 > > │ -00:00:35 v #4440 > > ................................................................................ -00:00:35 v #4441 > > ................................................................................ -00:00:35 v #4442 > > │ -00:00:35 v #4443 > > ................................................................................ -00:00:35 v #4444 > > ................................................................................ -00:00:35 v #4445 > > │ -00:00:35 v #4446 > > │ -00:00:35 v #4447 > > ................................................................................ -00:00:35 v #4448 > > ................................................................................ -00:00:35 v #4449 > > │ -00:00:35 v #4450 > > ................................................................................ -00:00:35 v #4451 > > ................................................................................ -00:00:35 v #4452 > > │ -00:00:35 v #4453 > > ................................................................................ -00:00:35 v #4454 > > ................................................................................ -00:00:35 v #4455 > > │ -00:00:35 v #4456 > > ................................................................................ -00:00:35 v #4457 > > ................................................................................ -00:00:35 v #4458 > > │ -00:00:35 v #4459 > > ................................................................................ -00:00:35 v #4460 > > ................................................................................ -00:00:35 v #4461 > > │ -00:00:35 v #4462 > > ................................................................................ -00:00:35 v #4463 > > ................................................................................ -00:00:35 v #4464 > > │ -00:00:35 v #4465 > > ................................................................................ -00:00:35 v #4466 > > ................................................................................ -00:00:35 v #4467 > > │ -00:00:35 v #4468 > > ................................................................................ -00:00:35 v #4469 > > ................................................................................ -00:00:35 v #4470 > > │ -00:00:35 v #4471 > > ................................................................................ -00:00:35 v #4472 > > ................................................................................ -00:00:35 v #4473 > > │ -00:00:35 v #4474 > > ................................................................................ -00:00:35 v #4475 > > ................................................................................ -00:00:35 v #4476 > > │ -00:00:35 v #4477 > > ................................................................................ -00:00:35 v #4478 > > ................................................................................ -00:00:35 v #4479 > > │ -00:00:35 v #4480 > > ..............................................;;;;;;;;;<........................ -00:00:35 v #4481 > > ................................................................................ -00:00:35 v #4482 > > │ -00:00:35 v #4483 > > .........................;;;;;;;;;;;;;;;;;;;;;/////////<........................ -00:00:35 v #4484 > > ................................................................................ -00:00:35 v #4485 > > │ -00:00:35 v #4486 > > ................;;;;;;;;;//////////////////////////////<........................ -00:00:35 v #4487 > > ................................................................................ -00:00:35 v #4488 > > │ -00:00:35 v #4489 > > ................///////////////////////////////////////<........................ -00:00:35 v #4490 > > ................................................................................ -00:00:35 v #4491 > > │ -00:00:35 v #4492 > > ................>//////////////////////////////////////<<....................... -00:00:35 v #4493 > > ................................................................................ -00:00:35 v #4494 > > │ -00:00:35 v #4495 > > ................>//////////////////////////////////////<<....................... -00:00:35 v #4496 > > ................................................................................ -00:00:35 v #4497 > > │ -00:00:35 v #4498 > > ................>//////////////////////////////////////<<....................... -00:00:35 v #4499 > > ..;;;;;;;;;;;;;;<<<............................................................. -00:00:35 v #4500 > > │ -00:00:35 v #4501 > > ................>//////////////////////////////////////<<......................; -00:00:35 v #4502 > > ;;//////////////<<<............................................................. -00:00:35 v #4503 > > │ -00:00:35 v #4504 > > .................//////////////////////////////////////<<...................... -00:00:35 v #4505 > > ////////////////<<<....................;;;;<<................................... -00:00:35 v #4506 > > │ -00:00:35 v #4507 > > .................//////////////////////////////////////<<...................... -00:00:35 v #4508 > > ////////////////<<<...............;;;;;////<<................................... -00:00:35 v #4509 > > │ -00:00:35 v #4510 > > .................//////////////////////////////////////<<......................> -00:00:35 v #4511 > > ////////////////<<<...............>////////<<................................... -00:00:35 v #4512 > > │ -00:00:35 v #4513 > > .................>//////////////////////////////////////<......................> -00:00:35 v #4514 > > ////////////////<<<................////////<<................................... -00:00:35 v #4515 > > │ -00:00:35 v #4516 > > .................>//////////////////////////////////////<......................> -00:00:35 v #4517 > > /////////////////<<<...............////////<<................................... -00:00:35 v #4518 > > │ -00:00:35 v #4519 > > .................>//////////////////////////////////////<......................> -00:00:35 v #4520 > > /////////////////<<<.............../////////.................................... -00:00:35 v #4521 > > │ -00:00:35 v #4522 > > .................>//////////////////////////////////////<....................... -00:00:35 v #4523 > > /////////////////<<<............................................................ -00:00:35 v #4524 > > │ -00:00:35 v #4525 > > ..................//////////////////////////////////////<....................... -00:00:35 v #4526 > > /////////////////<<............................................................. -00:00:35 v #4527 > > │ -00:00:35 v #4528 > > ..................//////////////////////////////////////<<...................... -00:00:35 v #4529 > > ................................................................................ -00:00:35 v #4530 > > │ -00:00:35 v #4531 > > ..................//////////////////////////////////////<<...................... -00:00:35 v #4532 > > ................................................................................ -00:00:35 v #4533 > > │ -00:00:35 v #4534 > > ..................//////////////////////////////////////<<...................... -00:00:35 v #4535 > > ................................................................................ -00:00:35 v #4536 > > │ -00:00:35 v #4537 > > ..................>/////////////////////////////////////<<...................... -00:00:35 v #4538 > > ................................................................................ -00:00:35 v #4539 > > │ -00:00:35 v #4540 > > ..................>/////////////////////////////////////<....................... -00:00:35 v #4541 > > ................................................................................ -00:00:35 v #4542 > > │ -00:00:35 v #4543 > > ..................//////////////////////////////////////<....................... -00:00:35 v #4544 > > ................................................................................ -00:00:35 v #4545 > > │ -00:00:35 v #4546 > > ................................................................................ -00:00:35 v #4547 > > ................................................................................ -00:00:35 v #4548 > > │ -00:00:35 v #4549 > > ................................................................................ -00:00:35 v #4550 > > ................................................................................ -00:00:35 v #4551 > > │ -00:00:35 v #4552 > > ................................................................................ -00:00:35 v #4553 > > ................................................................................ -00:00:35 v #4554 > > │ -00:00:35 v #4555 > > ................................................................................ -00:00:35 v #4556 > > ................................................................................ -00:00:35 v #4557 > > │ -00:00:35 v #4558 > > ................................................................................ -00:00:35 v #4559 > > ................................................................................ -00:00:35 v #4560 > > │ -00:00:35 v #4561 > > ................................................................................ -00:00:35 v #4562 > > ................................................................................ -00:00:35 v #4563 > > │ -00:00:35 v #4564 > > ................................................................................ -00:00:35 v #4565 > > ................................................................................ -00:00:35 v #4566 > > │ -00:00:35 v #4567 > > ................................................................................ -00:00:35 v #4568 > > ................................................................................ -00:00:35 v #4569 > > │ -00:00:35 v #4570 > > ................................................................................ -00:00:35 v #4571 > > ................................................................................ -00:00:35 v #4572 > > │ -00:00:35 v #4573 > > ................................................................................ -00:00:35 v #4574 > > ................................................................................ -00:00:35 v #4575 > > │ -00:00:35 v #4576 > > ................................................................................ -00:00:35 v #4577 > > ................................................................................ -00:00:35 v #4578 > > │ -00:00:35 v #4579 > > │ -00:00:35 v #4580 > > ................................................................................ -00:00:35 v #4581 > > ................................................................................ -00:00:35 v #4582 > > │ -00:00:35 v #4583 > > ................................................................................ -00:00:35 v #4584 > > ................................................................................ -00:00:35 v #4585 > > │ -00:00:35 v #4586 > > ................................................................................ -00:00:35 v #4587 > > ................................................................................ -00:00:35 v #4588 > > │ -00:00:35 v #4589 > > ................................................................................ -00:00:35 v #4590 > > ................................................................................ -00:00:35 v #4591 > > │ -00:00:35 v #4592 > > ................................................................................ -00:00:35 v #4593 > > ................................................................................ -00:00:35 v #4594 > > │ -00:00:35 v #4595 > > ................................................................................ -00:00:35 v #4596 > > ................................................................................ -00:00:35 v #4597 > > │ -00:00:35 v #4598 > > ................................................................................ -00:00:35 v #4599 > > ................................................................................ -00:00:35 v #4600 > > │ -00:00:35 v #4601 > > ................................................................................ -00:00:35 v #4602 > > ................................................................................ -00:00:35 v #4603 > > │ -00:00:35 v #4604 > > ................................................................................ -00:00:35 v #4605 > > ................................................................................ -00:00:35 v #4606 > > │ -00:00:35 v #4607 > > ................................................................................ -00:00:35 v #4608 > > ................................................................................ -00:00:35 v #4609 > > │ -00:00:35 v #4610 > > ......................................................<......................... -00:00:35 v #4611 > > ................................................................................ -00:00:35 v #4612 > > │ -00:00:35 v #4613 > > .........................................;;;;;;;;;;;;;<......................... -00:00:35 v #4614 > > ................................................................................ -00:00:35 v #4615 > > │ -00:00:35 v #4616 > > ...........................;;;;;;;;;;;;;;//////////////<........................ -00:00:35 v #4617 > > ................................................................................ -00:00:35 v #4618 > > │ -00:00:35 v #4619 > > ...............;;;;;;;;;;;;;///////////////////////////<........................ -00:00:35 v #4620 > > ................................................................................ -00:00:35 v #4621 > > │ -00:00:35 v #4622 > > ...............>///////////////////////////////////////<........................ -00:00:35 v #4623 > > ................................................................................ -00:00:35 v #4624 > > │ -00:00:35 v #4625 > > ................///////////////////////////////////////<........................ -00:00:35 v #4626 > > ................................................................................ -00:00:35 v #4627 > > │ -00:00:35 v #4628 > > ................///////////////////////////////////////<<....................... -00:00:35 v #4629 > > ................................................................................ -00:00:35 v #4630 > > │ -00:00:35 v #4631 > > ................>///////////////////////////////////////<....................... -00:00:35 v #4632 > > ....;;;;;;;;;;;;<<.............................................................. -00:00:35 v #4633 > > │ -00:00:35 v #4634 > > ................>///////////////////////////////////////<......................; -00:00:35 v #4635 > > ;;;;////////////<<.............................................................. -00:00:35 v #4636 > > │ -00:00:35 v #4637 > > .................///////////////////////////////////////<...................... -00:00:35 v #4638 > > ////////////////<<<....................;;;<<.................................... -00:00:35 v #4639 > > │ -00:00:35 v #4640 > > .................///////////////////////////////////////<...................... -00:00:35 v #4641 > > /////////////////<<...............;;;;;////<<................................... -00:00:35 v #4642 > > │ -00:00:35 v #4643 > > .................>//////////////////////////////////////<<.....................> -00:00:35 v #4644 > > /////////////////<<...............>////////<<................................... -00:00:35 v #4645 > > │ -00:00:35 v #4646 > > .................>///////////////////////////////////////<.....................> -00:00:35 v #4647 > > /////////////////<<................////////<<................................... -00:00:35 v #4648 > > │ -00:00:35 v #4649 > > ..................///////////////////////////////////////<...................... -00:00:35 v #4650 > > /////////////////<<................////////<<................................... -00:00:35 v #4651 > > │ -00:00:35 v #4652 > > ..................///////////////////////////////////////<...................... -00:00:35 v #4653 > > /////////////////<<<...............>////////.................................... -00:00:35 v #4654 > > │ -00:00:35 v #4655 > > ..................>//////////////////////////////////////<...................... -00:00:35 v #4656 > > >/////////////////<<............................................................ -00:00:35 v #4657 > > │ -00:00:35 v #4658 > > ..................>///////////////////////////////////////<..................... -00:00:35 v #4659 > > >/////////////////<............................................................. -00:00:35 v #4660 > > │ -00:00:35 v #4661 > > ...................///////////////////////////////////////<..................... -00:00:35 v #4662 > > ................................................................................ -00:00:35 v #4663 > > │ -00:00:35 v #4664 > > ...................///////////////////////////////////////<..................... -00:00:35 v #4665 > > ................................................................................ -00:00:35 v #4666 > > │ -00:00:35 v #4667 > > ...................>//////////////////////////////////////<..................... -00:00:35 v #4668 > > ................................................................................ -00:00:35 v #4669 > > │ -00:00:35 v #4670 > > ...................>//////////////////////////////////////<..................... -00:00:35 v #4671 > > ................................................................................ -00:00:35 v #4672 > > │ -00:00:35 v #4673 > > ...................>///////////////////////////////////////<.................... -00:00:35 v #4674 > > ................................................................................ -00:00:35 v #4675 > > │ -00:00:35 v #4676 > > ....................////////////////////////////................................ -00:00:35 v #4677 > > ................................................................................ -00:00:35 v #4678 > > │ -00:00:35 v #4679 > > ................................................................................ -00:00:35 v #4680 > > ................................................................................ -00:00:35 v #4681 > > │ -00:00:35 v #4682 > > ................................................................................ -00:00:35 v #4683 > > ................................................................................ -00:00:35 v #4684 > > │ -00:00:35 v #4685 > > ................................................................................ -00:00:35 v #4686 > > ................................................................................ -00:00:35 v #4687 > > │ -00:00:35 v #4688 > > ................................................................................ -00:00:35 v #4689 > > ................................................................................ -00:00:35 v #4690 > > │ -00:00:35 v #4691 > > ................................................................................ -00:00:35 v #4692 > > ................................................................................ -00:00:35 v #4693 > > │ -00:00:35 v #4694 > > ................................................................................ -00:00:35 v #4695 > > ................................................................................ -00:00:35 v #4696 > > │ -00:00:35 v #4697 > > ................................................................................ -00:00:35 v #4698 > > ................................................................................ -00:00:35 v #4699 > > │ -00:00:35 v #4700 > > ................................................................................ -00:00:35 v #4701 > > ................................................................................ -00:00:35 v #4702 > > │ -00:00:35 v #4703 > > ................................................................................ -00:00:35 v #4704 > > ................................................................................ -00:00:35 v #4705 > > │ -00:00:35 v #4706 > > ................................................................................ -00:00:35 v #4707 > > ................................................................................ -00:00:35 v #4708 > > │ -00:00:35 v #4709 > > ................................................................................ -00:00:35 v #4710 > > ................................................................................ -00:00:35 v #4711 > > │ -00:00:35 v #4712 > > │ -00:00:35 v #4713 > > ................................................................................ -00:00:35 v #4714 > > ................................................................................ -00:00:35 v #4715 > > │ -00:00:35 v #4716 > > ................................................................................ -00:00:35 v #4717 > > ................................................................................ -00:00:35 v #4718 > > │ -00:00:35 v #4719 > > ................................................................................ -00:00:35 v #4720 > > ................................................................................ -00:00:35 v #4721 > > │ -00:00:35 v #4722 > > ................................................................................ -00:00:35 v #4723 > > ................................................................................ -00:00:35 v #4724 > > │ -00:00:35 v #4725 > > ................................................................................ -00:00:35 v #4726 > > ................................................................................ -00:00:35 v #4727 > > │ -00:00:35 v #4728 > > ................................................................................ -00:00:35 v #4729 > > ................................................................................ -00:00:35 v #4730 > > │ -00:00:35 v #4731 > > ................................................................................ -00:00:35 v #4732 > > ................................................................................ -00:00:35 v #4733 > > │ -00:00:35 v #4734 > > ................................................................................ -00:00:35 v #4735 > > ................................................................................ -00:00:35 v #4736 > > │ -00:00:35 v #4737 > > ................................................................................ -00:00:35 v #4738 > > ................................................................................ -00:00:35 v #4739 > > │ -00:00:35 v #4740 > > ................................................................................ -00:00:35 v #4741 > > ................................................................................ -00:00:35 v #4742 > > │ -00:00:35 v #4743 > > .................................................;;;;;<......................... -00:00:35 v #4744 > > ................................................................................ -00:00:35 v #4745 > > │ -00:00:35 v #4746 > > .......................................;;;;;;;;;;/////<......................... -00:00:35 v #4747 > > ................................................................................ -00:00:35 v #4748 > > │ -00:00:35 v #4749 > > .............................;;;;;;;;;;///////////////<<........................ -00:00:35 v #4750 > > ................................................................................ -00:00:35 v #4751 > > │ -00:00:35 v #4752 > > ...................;;;;;;;;;;//////////////////////////<........................ -00:00:35 v #4753 > > ................................................................................ -00:00:35 v #4754 > > │ -00:00:35 v #4755 > > ...............;;;;////////////////////////////////////<........................ -00:00:35 v #4756 > > ................................................................................ -00:00:35 v #4757 > > │ -00:00:35 v #4758 > > ...............>///////////////////////////////////////<<....................... -00:00:35 v #4759 > > ................................................................................ -00:00:35 v #4760 > > │ -00:00:35 v #4761 > > ...............>////////////////////////////////////////<....................... -00:00:35 v #4762 > > ................<............................................................... -00:00:35 v #4763 > > │ -00:00:35 v #4764 > > ................////////////////////////////////////////<....................... -00:00:35 v #4765 > > .....;;;;;;;;;;;<............................................................... -00:00:35 v #4766 > > │ -00:00:35 v #4767 > > ................>///////////////////////////////////////<<....................;; -00:00:35 v #4768 > > ;;;;;///////////<<.............................................................. -00:00:35 v #4769 > > │ -00:00:35 v #4770 > > .................////////////////////////////////////////<..................... -00:00:35 v #4771 > > ////////////////<<.....................;;;<<.................................... -00:00:35 v #4772 > > │ -00:00:35 v #4773 > > .................>///////////////////////////////////////<..................... -00:00:35 v #4774 > > /////////////////<................;;;;;////<.................................... -00:00:35 v #4775 > > │ -00:00:35 v #4776 > > .................>///////////////////////////////////////<<....................> -00:00:35 v #4777 > > /////////////////<<...............>////////<<................................... -00:00:35 v #4778 > > │ -00:00:35 v #4779 > > ..................////////////////////////////////////////<..................... -00:00:35 v #4780 > > /////////////////<<................////////<<................................... -00:00:35 v #4781 > > │ -00:00:35 v #4782 > > ..................>///////////////////////////////////////<..................... -00:00:35 v #4783 > > //////////////////<................>////////<................................... -00:00:35 v #4784 > > │ -00:00:35 v #4785 > > ..................>///////////////////////////////////////<<.................... -00:00:35 v #4786 > > >/////////////////<<................//////...................................... -00:00:35 v #4787 > > │ -00:00:35 v #4788 > > ...................////////////////////////////////////////<.................... -00:00:35 v #4789 > > .//////////////////<............................................................ -00:00:35 v #4790 > > │ -00:00:35 v #4791 > > ...................>///////////////////////////////////////<.................... -00:00:35 v #4792 > > .>///////////////............................................................... -00:00:35 v #4793 > > │ -00:00:35 v #4794 > > ...................>///////////////////////////////////////<<................... -00:00:35 v #4795 > > .///............................................................................ -00:00:35 v #4796 > > │ -00:00:35 v #4797 > > ....................////////////////////////////////////////<................... -00:00:35 v #4798 > > ................................................................................ -00:00:35 v #4799 > > │ -00:00:35 v #4800 > > ....................>///////////////////////////////////////<................... -00:00:35 v #4801 > > ................................................................................ -00:00:35 v #4802 > > │ -00:00:35 v #4803 > > ....................>///////////////////////////////////////<<.................. -00:00:35 v #4804 > > ................................................................................ -00:00:35 v #4805 > > │ -00:00:35 v #4806 > > ...................../////////////////////////////////////...................... -00:00:35 v #4807 > > ................................................................................ -00:00:35 v #4808 > > │ -00:00:35 v #4809 > > .....................>/////////////////////..................................... -00:00:35 v #4810 > > ................................................................................ -00:00:35 v #4811 > > │ -00:00:35 v #4812 > > ......................///////................................................... -00:00:35 v #4813 > > ................................................................................ -00:00:35 v #4814 > > │ -00:00:35 v #4815 > > ................................................................................ -00:00:35 v #4816 > > ................................................................................ -00:00:35 v #4817 > > │ -00:00:35 v #4818 > > ................................................................................ -00:00:35 v #4819 > > ................................................................................ -00:00:35 v #4820 > > │ -00:00:35 v #4821 > > ................................................................................ -00:00:35 v #4822 > > ................................................................................ -00:00:35 v #4823 > > │ -00:00:35 v #4824 > > ................................................................................ -00:00:35 v #4825 > > ................................................................................ -00:00:35 v #4826 > > │ -00:00:35 v #4827 > > ................................................................................ -00:00:35 v #4828 > > ................................................................................ -00:00:35 v #4829 > > │ -00:00:35 v #4830 > > ................................................................................ -00:00:35 v #4831 > > ................................................................................ -00:00:35 v #4832 > > │ -00:00:35 v #4833 > > ................................................................................ -00:00:35 v #4834 > > ................................................................................ -00:00:35 v #4835 > > │ -00:00:35 v #4836 > > ................................................................................ -00:00:35 v #4837 > > ................................................................................ -00:00:35 v #4838 > > │ -00:00:35 v #4839 > > ................................................................................ -00:00:35 v #4840 > > ................................................................................ -00:00:35 v #4841 > > │ -00:00:35 v #4842 > > ................................................................................ -00:00:35 v #4843 > > ................................................................................ -00:00:35 v #4844 > > │ -00:00:35 v #4845 > > │ -00:00:35 v #4846 > > ................................................................................ -00:00:35 v #4847 > > ................................................................................ -00:00:35 v #4848 > > │ -00:00:35 v #4849 > > ................................................................................ -00:00:35 v #4850 > > ................................................................................ -00:00:35 v #4851 > > │ -00:00:35 v #4852 > > ................................................................................ -00:00:35 v #4853 > > ................................................................................ -00:00:35 v #4854 > > │ -00:00:35 v #4855 > > ................................................................................ -00:00:35 v #4856 > > ................................................................................ -00:00:35 v #4857 > > │ -00:00:35 v #4858 > > ................................................................................ -00:00:35 v #4859 > > ................................................................................ -00:00:35 v #4860 > > │ -00:00:35 v #4861 > > ................................................................................ -00:00:35 v #4862 > > ................................................................................ -00:00:35 v #4863 > > │ -00:00:35 v #4864 > > ................................................................................ -00:00:35 v #4865 > > ................................................................................ -00:00:35 v #4866 > > │ -00:00:35 v #4867 > > ................................................................................ -00:00:35 v #4868 > > ................................................................................ -00:00:35 v #4869 > > │ -00:00:35 v #4870 > > ................................................................................ -00:00:35 v #4871 > > ................................................................................ -00:00:35 v #4872 > > │ -00:00:35 v #4873 > > .....................................................<.......................... -00:00:35 v #4874 > > ................................................................................ -00:00:35 v #4875 > > │ -00:00:35 v #4876 > > ..............................................;;;;;;;<<......................... -00:00:35 v #4877 > > ................................................................................ -00:00:35 v #4878 > > │ -00:00:35 v #4879 > > .....................................;;;;;;;;;////////<......................... -00:00:35 v #4880 > > ................................................................................ -00:00:35 v #4881 > > │ -00:00:35 v #4882 > > .............................;;;;;;;;;////////////////<<........................ -00:00:35 v #4883 > > ................................................................................ -00:00:35 v #4884 > > │ -00:00:35 v #4885 > > ......................;;;;;;;//////////////////////////<........................ -00:00:35 v #4886 > > ................................................................................ -00:00:35 v #4887 > > │ -00:00:35 v #4888 > > ...............;;;;;;;/////////////////////////////////<........................ -00:00:35 v #4889 > > ................................................................................ -00:00:35 v #4890 > > │ -00:00:35 v #4891 > > .............../////////////////////////////////////////<....................... -00:00:35 v #4892 > > ................................................................................ -00:00:35 v #4893 > > │ -00:00:35 v #4894 > > ...............>////////////////////////////////////////<....................... -00:00:35 v #4895 > > .............;;;<............................................................... -00:00:35 v #4896 > > │ -00:00:35 v #4897 > > ................/////////////////////////////////////////<...................... -00:00:35 v #4898 > > .....;;;;;;;;///<............................................................... -00:00:35 v #4899 > > │ -00:00:35 v #4900 > > ................>////////////////////////////////////////<....................;; -00:00:35 v #4901 > > ;;;;;///////////<<.............................................................. -00:00:35 v #4902 > > │ -00:00:35 v #4903 > > ................./////////////////////////////////////////<...................> -00:00:35 v #4904 > > /////////////////<.....................;;;<<.................................... -00:00:35 v #4905 > > │ -00:00:35 v #4906 > > .................>////////////////////////////////////////<.................... -00:00:35 v #4907 > > /////////////////<<...............;;;;;////<.................................... -00:00:35 v #4908 > > │ -00:00:35 v #4909 > > ................../////////////////////////////////////////<...................> -00:00:35 v #4910 > > //////////////////<...............>////////<<................................... -00:00:35 v #4911 > > │ -00:00:35 v #4912 > > ..................>////////////////////////////////////////<.................... -00:00:35 v #4913 > > //////////////////<................/////////<................................... -00:00:35 v #4914 > > │ -00:00:35 v #4915 > > ..................>////////////////////////////////////////<<................... -00:00:35 v #4916 > > >//////////////////<...............>////////<................................... -00:00:35 v #4917 > > │ -00:00:35 v #4918 > > ...................>////////////////////////////////////////<................... -00:00:35 v #4919 > > .//////////////////<................/////=...................................... -00:00:35 v #4920 > > │ -00:00:35 v #4921 > > ...................>////////////////////////////////////////<<.................. -00:00:35 v #4922 > > .>/////////////////<<........................................................... -00:00:35 v #4923 > > │ -00:00:35 v #4924 > > ....................>////////////////////////////////////////<.................. -00:00:35 v #4925 > > ../////////////................................................................. -00:00:35 v #4926 > > │ -00:00:35 v #4927 > > ....................>////////////////////////////////////////<<................. -00:00:35 v #4928 > > ..>///.......................................................................... -00:00:35 v #4929 > > │ -00:00:35 v #4930 > > ...................../////////////////////////////////////////<................. -00:00:35 v #4931 > > ................................................................................ -00:00:35 v #4932 > > │ -00:00:35 v #4933 > > .....................>////////////////////////////////////////<................. -00:00:35 v #4934 > > ................................................................................ -00:00:35 v #4935 > > │ -00:00:35 v #4936 > > ......................///////////////////////////////////////................... -00:00:35 v #4937 > > ................................................................................ -00:00:35 v #4938 > > │ -00:00:35 v #4939 > > ......................>/////////////////////////////............................ -00:00:35 v #4940 > > ................................................................................ -00:00:35 v #4941 > > │ -00:00:35 v #4942 > > .......................////////////////////..................................... -00:00:35 v #4943 > > ................................................................................ -00:00:35 v #4944 > > │ -00:00:35 v #4945 > > .......................>//////////.............................................. -00:00:35 v #4946 > > ................................................................................ -00:00:35 v #4947 > > │ -00:00:35 v #4948 > > ................................................................................ -00:00:35 v #4949 > > ................................................................................ -00:00:35 v #4950 > > │ -00:00:35 v #4951 > > ................................................................................ -00:00:35 v #4952 > > ................................................................................ -00:00:35 v #4953 > > │ -00:00:35 v #4954 > > ................................................................................ -00:00:35 v #4955 > > ................................................................................ -00:00:35 v #4956 > > │ -00:00:35 v #4957 > > ................................................................................ -00:00:35 v #4958 > > ................................................................................ -00:00:35 v #4959 > > │ -00:00:35 v #4960 > > ................................................................................ -00:00:35 v #4961 > > ................................................................................ -00:00:35 v #4962 > > │ -00:00:35 v #4963 > > ................................................................................ -00:00:35 v #4964 > > ................................................................................ -00:00:35 v #4965 > > │ -00:00:35 v #4966 > > ................................................................................ -00:00:35 v #4967 > > ................................................................................ -00:00:35 v #4968 > > │ -00:00:35 v #4969 > > ................................................................................ -00:00:35 v #4970 > > ................................................................................ -00:00:35 v #4971 > > │ -00:00:35 v #4972 > > ................................................................................ -00:00:35 v #4973 > > ................................................................................ -00:00:35 v #4974 > > │ -00:00:35 v #4975 > > ................................................................................ -00:00:35 v #4976 > > ................................................................................ -00:00:35 v #4977 > > │ -00:00:35 v #4978 > > │ -00:00:35 v #4979 > > ................................................................................ -00:00:35 v #4980 > > ................................................................................ -00:00:35 v #4981 > > │ -00:00:35 v #4982 > > ................................................................................ -00:00:35 v #4983 > > ................................................................................ -00:00:35 v #4984 > > │ -00:00:35 v #4985 > > ................................................................................ -00:00:35 v #4986 > > ................................................................................ -00:00:35 v #4987 > > │ -00:00:35 v #4988 > > ................................................................................ -00:00:35 v #4989 > > ................................................................................ -00:00:35 v #4990 > > │ -00:00:35 v #4991 > > ................................................................................ -00:00:35 v #4992 > > ................................................................................ -00:00:35 v #4993 > > │ -00:00:35 v #4994 > > ................................................................................ -00:00:35 v #4995 > > ................................................................................ -00:00:35 v #4996 > > │ -00:00:35 v #4997 > > ................................................................................ -00:00:35 v #4998 > > ................................................................................ -00:00:35 v #4999 > > │ -00:00:35 v #5000 > > ................................................................................ -00:00:35 v #5001 > > ................................................................................ -00:00:35 v #5002 > > │ -00:00:35 v #5003 > > ................................................................................ -00:00:35 v #5004 > > ................................................................................ -00:00:35 v #5005 > > │ -00:00:35 v #5006 > > ..................................................;;;<.......................... -00:00:35 v #5007 > > ................................................................................ -00:00:35 v #5008 > > │ -00:00:35 v #5009 > > ............................................;;;;;;///<.......................... -00:00:35 v #5010 > > ................................................................................ -00:00:35 v #5011 > > │ -00:00:35 v #5012 > > .....................................;;;;;;;/////////<<......................... -00:00:35 v #5013 > > ................................................................................ -00:00:35 v #5014 > > │ -00:00:35 v #5015 > > ..............................;;;;;;;/////////////////<<........................ -00:00:35 v #5016 > > ................................................................................ -00:00:35 v #5017 > > │ -00:00:35 v #5018 > > .......................;;;;;;;/////////////////////////<........................ -00:00:35 v #5019 > > ................................................................................ -00:00:35 v #5020 > > │ -00:00:35 v #5021 > > .................;;;;;;;///////////////////////////////<<....................... -00:00:35 v #5022 > > ................................................................................ -00:00:35 v #5023 > > │ -00:00:35 v #5024 > > ..............;;;///////////////////////////////////////<....................... -00:00:35 v #5025 > > ................................................................................ -00:00:35 v #5026 > > │ -00:00:35 v #5027 > > ...............//////////////////////////////////////////<...................... -00:00:35 v #5028 > > ............;;;<................................................................ -00:00:35 v #5029 > > │ -00:00:35 v #5030 > > ...............>/////////////////////////////////////////<<..................... -00:00:35 v #5031 > > .....;;;;;;;////<............................................................... -00:00:35 v #5032 > > │ -00:00:35 v #5033 > > ................>/////////////////////////////////////////<....................; -00:00:35 v #5034 > > ;;;;;///////////<<.............................................................. -00:00:35 v #5035 > > │ -00:00:35 v #5036 > > ................./////////////////////////////////////////<<..................; -00:00:35 v #5037 > > /////////////////<.....................;;;<<.................................... -00:00:35 v #5038 > > │ -00:00:35 v #5039 > > .................>/////////////////////////////////////////<................... -00:00:35 v #5040 > > /////////////////<<...............;;;;;////<.................................... -00:00:35 v #5041 > > │ -00:00:35 v #5042 > > ..................//////////////////////////////////////////<................... -00:00:35 v #5043 > > //////////////////<<..............>////////<<................................... -00:00:35 v #5044 > > │ -00:00:35 v #5045 > > ..................>/////////////////////////////////////////<<.................. -00:00:35 v #5046 > > >//////////////////<...............>////////<................................... -00:00:35 v #5047 > > │ -00:00:35 v #5048 > > ...................>/////////////////////////////////////////<.................. -00:00:35 v #5049 > > .//////////////////<<...............////////<<.................................. -00:00:35 v #5050 > > │ -00:00:35 v #5051 > > ..................../////////////////////////////////////////<<................. -00:00:35 v #5052 > > .>//////////////////<...............>////....................................... -00:00:35 v #5053 > > │ -00:00:35 v #5054 > > ....................>/////////////////////////////////////////<................. -00:00:35 v #5055 > > ..///////////////////........................................................... -00:00:35 v #5056 > > │ -00:00:35 v #5057 > > ...................../////////////////////////////////////////<<................ -00:00:35 v #5058 > > ..>////////////................................................................. -00:00:35 v #5059 > > │ -00:00:35 v #5060 > > .....................>/////////////////////////////////////////<................ -00:00:35 v #5061 > > ...>////........................................................................ -00:00:35 v #5062 > > │ -00:00:35 v #5063 > > ......................>/////////////////////////////////////////<............... -00:00:35 v #5064 > > ................................................................................ -00:00:35 v #5065 > > │ -00:00:35 v #5066 > > ......................./////////////////////////////////////////................ -00:00:35 v #5067 > > ................................................................................ -00:00:35 v #5068 > > │ -00:00:35 v #5069 > > .......................>/////////////////////////////////....................... -00:00:35 v #5070 > > ................................................................................ -00:00:35 v #5071 > > │ -00:00:35 v #5072 > > ........................//////////////////////////.............................. -00:00:35 v #5073 > > ................................................................................ -00:00:35 v #5074 > > │ -00:00:35 v #5075 > > ........................>//////////////////..................................... -00:00:35 v #5076 > > ................................................................................ -00:00:35 v #5077 > > │ -00:00:35 v #5078 > > .........................>//////////............................................ -00:00:35 v #5079 > > ................................................................................ -00:00:35 v #5080 > > │ -00:00:35 v #5081 > > ..........................////.................................................. -00:00:35 v #5082 > > ................................................................................ -00:00:35 v #5083 > > │ -00:00:35 v #5084 > > ................................................................................ -00:00:35 v #5085 > > ................................................................................ -00:00:35 v #5086 > > │ -00:00:35 v #5087 > > ................................................................................ -00:00:35 v #5088 > > ................................................................................ -00:00:35 v #5089 > > │ -00:00:35 v #5090 > > ................................................................................ -00:00:35 v #5091 > > ................................................................................ -00:00:35 v #5092 > > │ -00:00:35 v #5093 > > ................................................................................ -00:00:35 v #5094 > > ................................................................................ -00:00:35 v #5095 > > │ -00:00:35 v #5096 > > ................................................................................ -00:00:35 v #5097 > > ................................................................................ -00:00:35 v #5098 > > │ -00:00:35 v #5099 > > ................................................................................ -00:00:35 v #5100 > > ................................................................................ -00:00:35 v #5101 > > │ -00:00:35 v #5102 > > ................................................................................ -00:00:35 v #5103 > > ................................................................................ -00:00:35 v #5104 > > │ -00:00:35 v #5105 > > ................................................................................ -00:00:35 v #5106 > > ................................................................................ -00:00:35 v #5107 > > │ -00:00:35 v #5108 > > ................................................................................ -00:00:35 v #5109 > > ................................................................................ -00:00:35 v #5110 > > │ -00:00:35 v #5111 > > │ -00:00:35 v #5112 > > ................................................................................ -00:00:35 v #5113 > > ................................................................................ -00:00:35 v #5114 > > │ -00:00:35 v #5115 > > ................................................................................ -00:00:35 v #5116 > > ................................................................................ -00:00:35 v #5117 > > │ -00:00:35 v #5118 > > ................................................................................ -00:00:35 v #5119 > > ................................................................................ -00:00:35 v #5120 > > │ -00:00:35 v #5121 > > ................................................................................ -00:00:35 v #5122 > > ................................................................................ -00:00:35 v #5123 > > │ -00:00:35 v #5124 > > ................................................................................ -00:00:35 v #5125 > > ................................................................................ -00:00:35 v #5126 > > │ -00:00:35 v #5127 > > ................................................................................ -00:00:35 v #5128 > > ................................................................................ -00:00:35 v #5129 > > │ -00:00:35 v #5130 > > ................................................................................ -00:00:35 v #5131 > > ................................................................................ -00:00:35 v #5132 > > │ -00:00:35 v #5133 > > ................................................................................ -00:00:35 v #5134 > > ................................................................................ -00:00:35 v #5135 > > │ -00:00:35 v #5136 > > ................................................................................ -00:00:35 v #5137 > > ................................................................................ -00:00:35 v #5138 > > │ -00:00:35 v #5139 > > ................................................;;;/;........................... -00:00:35 v #5140 > > ................................................................................ -00:00:35 v #5141 > > │ -00:00:35 v #5142 > > ..........................................;;;;/;//////.......................... -00:00:35 v #5143 > > ................................................................................ -00:00:35 v #5144 > > │ -00:00:35 v #5145 > > ....................................;;;;///////////////......................... -00:00:35 v #5146 > > ................................................................................ -00:00:35 v #5147 > > │ -00:00:35 v #5148 > > ...............................;;/;;///////////////////<........................ -00:00:35 v #5149 > > ................................................................................ -00:00:35 v #5150 > > │ -00:00:35 v #5151 > > .........................;;;;/;/////////////////////////........................ -00:00:35 v #5152 > > ................................................................................ -00:00:35 v #5153 > > │ -00:00:35 v #5154 > > ...................;;;;//;///////////////////////////////....................... -00:00:35 v #5155 > > ................................................................................ -00:00:35 v #5156 > > │ -00:00:35 v #5157 > > ..............;;/;;//////////////////////////////////////<...................... -00:00:35 v #5158 > > ................................................................................ -00:00:35 v #5159 > > │ -00:00:35 v #5160 > > ..............>>//////////////////////////////////////////...................... -00:00:35 v #5161 > > ...........;;;//................................................................ -00:00:35 v #5162 > > │ -00:00:35 v #5163 > > ...............>>//////////////////////////////////////////..................... -00:00:35 v #5164 > > ......;;/////////............................................................... -00:00:35 v #5165 > > │ -00:00:35 v #5166 > > ................>///////////////////////////////////////////.................... -00:00:35 v #5167 > > ;;;///////////////.............................................................. -00:00:35 v #5168 > > │ -00:00:35 v #5169 > > .................>//////////////////////////////////////////<.................;> -00:00:35 v #5170 > > //////////////////<...................;;///<.................................... -00:00:35 v #5171 > > │ -00:00:35 v #5172 > > .................>>//////////////////////////////////////////..................> -00:00:35 v #5173 > > ///////////////////...............;;;;//////.................................... -00:00:35 v #5174 > > │ -00:00:35 v #5175 > > ..................>>//////////////////////////////////////////.................. -00:00:35 v #5176 > > >///////////////////...............>/////////................................... -00:00:35 v #5177 > > │ -00:00:35 v #5178 > > ...................>//////////////////////////////////////////<................. -00:00:35 v #5179 > > >>///////////////////..............>>////////<.................................. -00:00:35 v #5180 > > │ -00:00:35 v #5181 > > ....................>//////////////////////////////////////////................. -00:00:35 v #5182 > > .>>//////////////////...............>>////////.................................. -00:00:35 v #5183 > > │ -00:00:35 v #5184 > > ....................>>//////////////////////////////////////////................ -00:00:35 v #5185 > > ..>///////////////////...............>///....................................... -00:00:35 v #5186 > > │ -00:00:35 v #5187 > > .....................>///////////////////////////////////////////............... -00:00:35 v #5188 > > ...>////////////////............................................................ -00:00:35 v #5189 > > │ -00:00:35 v #5190 > > ......................>//////////////////////////////////////////<.............. -00:00:35 v #5191 > > ...>>/////////.................................................................. -00:00:35 v #5192 > > │ -00:00:35 v #5193 > > ......................>>//////////////////////////////////////////.............. -00:00:35 v #5194 > > ....>////....................................................................... -00:00:35 v #5195 > > │ -00:00:35 v #5196 > > .......................>>/////////////////////////////////////////.............. -00:00:35 v #5197 > > ................................................................................ -00:00:35 v #5198 > > │ -00:00:35 v #5199 > > ........................>>//////////////////////////////////.................... -00:00:35 v #5200 > > ................................................................................ -00:00:35 v #5201 > > │ -00:00:35 v #5202 > > .........................>////////////////////////////.......................... -00:00:35 v #5203 > > ................................................................................ -00:00:35 v #5204 > > │ -00:00:35 v #5205 > > .........................>>//////////////////////............................... -00:00:35 v #5206 > > ................................................................................ -00:00:35 v #5207 > > │ -00:00:35 v #5208 > > ..........................>>////////////////.................................... -00:00:35 v #5209 > > ................................................................................ -00:00:35 v #5210 > > │ -00:00:35 v #5211 > > ...........................>///////////......................................... -00:00:35 v #5212 > > ................................................................................ -00:00:35 v #5213 > > │ -00:00:35 v #5214 > > ............................>////............................................... -00:00:35 v #5215 > > ................................................................................ -00:00:35 v #5216 > > │ -00:00:35 v #5217 > > ................................................................................ -00:00:35 v #5218 > > ................................................................................ -00:00:35 v #5219 > > │ -00:00:35 v #5220 > > ................................................................................ -00:00:35 v #5221 > > ................................................................................ -00:00:35 v #5222 > > │ -00:00:35 v #5223 > > ................................................................................ -00:00:35 v #5224 > > ................................................................................ -00:00:35 v #5225 > > │ -00:00:35 v #5226 > > ................................................................................ -00:00:35 v #5227 > > ................................................................................ -00:00:35 v #5228 > > │ -00:00:35 v #5229 > > ................................................................................ -00:00:35 v #5230 > > ................................................................................ -00:00:35 v #5231 > > │ -00:00:35 v #5232 > > ................................................................................ -00:00:35 v #5233 > > ................................................................................ -00:00:35 v #5234 > > │ -00:00:35 v #5235 > > ................................................................................ -00:00:35 v #5236 > > ................................................................................ -00:00:35 v #5237 > > │ -00:00:35 v #5238 > > ................................................................................ -00:00:35 v #5239 > > ................................................................................ -00:00:35 v #5240 > > │ -00:00:35 v #5241 > > ................................................................................ -00:00:35 v #5242 > > ................................................................................ -00:00:35 v #5243 > > │ -00:00:35 v #5244 > > │ -00:00:35 v #5245 > > ................................................................................ -00:00:35 v #5246 > > ................................................................................ -00:00:35 v #5247 > > │ -00:00:35 v #5248 > > ................................................................................ -00:00:35 v #5249 > > ................................................................................ -00:00:35 v #5250 > > │ -00:00:35 v #5251 > > ................................................................................ -00:00:35 v #5252 > > ................................................................................ -00:00:35 v #5253 > > │ -00:00:35 v #5254 > > ................................................................................ -00:00:35 v #5255 > > ................................................................................ -00:00:35 v #5256 > > │ -00:00:35 v #5257 > > ................................................................................ -00:00:35 v #5258 > > ................................................................................ -00:00:35 v #5259 > > │ -00:00:35 v #5260 > > ................................................................................ -00:00:35 v #5261 > > ................................................................................ -00:00:35 v #5262 > > │ -00:00:35 v #5263 > > ................................................................................ -00:00:35 v #5264 > > ................................................................................ -00:00:35 v #5265 > > │ -00:00:35 v #5266 > > ................................................................................ -00:00:35 v #5267 > > ................................................................................ -00:00:35 v #5268 > > │ -00:00:35 v #5269 > > ...................................................;............................ -00:00:35 v #5270 > > ................................................................................ -00:00:35 v #5271 > > │ -00:00:35 v #5272 > > ..............................................;/;;///........................... -00:00:35 v #5273 > > ................................................................................ -00:00:35 v #5274 > > │ -00:00:35 v #5275 > > .........................................;;;//////////.......................... -00:00:35 v #5276 > > ................................................................................ -00:00:35 v #5277 > > │ -00:00:35 v #5278 > > ....................................;;;///////////////<......................... -00:00:35 v #5279 > > ................................................................................ -00:00:35 v #5280 > > │ -00:00:35 v #5281 > > ...............................;;;/;///////////////////<........................ -00:00:35 v #5282 > > ................................................................................ -00:00:35 v #5283 > > │ -00:00:35 v #5284 > > ..........................;;;/;/////////////////////////<....................... -00:00:35 v #5285 > > ................................................................................ -00:00:35 v #5286 > > │ -00:00:35 v #5287 > > ......................;;/////////////////////////////////....................... -00:00:35 v #5288 > > ................................................................................ -00:00:35 v #5289 > > │ -00:00:35 v #5290 > > .................;;;//////////////////////////////////////...................... -00:00:35 v #5291 > > ................................................................................ -00:00:35 v #5292 > > │ -00:00:35 v #5293 > > ..............;>///////////////////////////////////////////..................... -00:00:35 v #5294 > > ...........;;;;/................................................................ -00:00:35 v #5295 > > │ -00:00:35 v #5296 > > ...............>///////////////////////////////////////////<.................... -00:00:35 v #5297 > > ......;;/////////............................................................... -00:00:35 v #5298 > > │ -00:00:35 v #5299 > > ................>///////////////////////////////////////////<................... -00:00:35 v #5300 > > .;;;//////////////.............................................................. -00:00:35 v #5301 > > │ -00:00:35 v #5302 > > .................>///////////////////////////////////////////<................;> -00:00:35 v #5303 > > ///////////////////...................;;///<.................................... -00:00:35 v #5304 > > │ -00:00:35 v #5305 > > .................>>///////////////////////////////////////////.................> -00:00:35 v #5306 > > >///////////////////..............;;;;//////.................................... -00:00:35 v #5307 > > │ -00:00:35 v #5308 > > ..................>>///////////////////////////////////////////................. -00:00:35 v #5309 > > >///////////////////<.............>>/////////................................... -00:00:35 v #5310 > > │ -00:00:35 v #5311 > > ...................>>///////////////////////////////////////////................ -00:00:35 v #5312 > > .>///////////////////<.............>>/////////.................................. -00:00:35 v #5313 > > │ -00:00:35 v #5314 > > ....................>>///////////////////////////////////////////............... -00:00:35 v #5315 > > .>>///////////////////..............>>////////.................................. -00:00:35 v #5316 > > │ -00:00:35 v #5317 > > .....................>///////////////////////////////////////////<.............. -00:00:35 v #5318 > > ..>>///////////////////..............>////...................................... -00:00:35 v #5319 > > │ -00:00:35 v #5320 > > ......................>///////////////////////////////////////////<............. -00:00:35 v #5321 > > ...>>//////////////............................................................. -00:00:35 v #5322 > > │ -00:00:35 v #5323 > > .......................>///////////////////////////////////////////............. -00:00:35 v #5324 > > ....>>////////.................................................................. -00:00:35 v #5325 > > │ -00:00:35 v #5326 > > ........................>//////////////////////////////////////////............. -00:00:35 v #5327 > > .....>////...................................................................... -00:00:35 v #5328 > > │ -00:00:35 v #5329 > > ........................>>/////////////////////////////////////................. -00:00:35 v #5330 > > ................................................................................ -00:00:35 v #5331 > > │ -00:00:35 v #5332 > > .........................>>///////////////////////////////...................... -00:00:35 v #5333 > > ................................................................................ -00:00:35 v #5334 > > │ -00:00:35 v #5335 > > ..........................>>//////////////////////////.......................... -00:00:35 v #5336 > > ................................................................................ -00:00:35 v #5337 > > │ -00:00:35 v #5338 > > ...........................>>////////////////////............................... -00:00:35 v #5339 > > ................................................................................ -00:00:35 v #5340 > > │ -00:00:35 v #5341 > > ............................>>///////////////................................... -00:00:35 v #5342 > > ................................................................................ -00:00:35 v #5343 > > │ -00:00:35 v #5344 > > .............................>>/////////........................................ -00:00:35 v #5345 > > ................................................................................ -00:00:35 v #5346 > > │ -00:00:35 v #5347 > > ..............................>/////............................................ -00:00:35 v #5348 > > ................................................................................ -00:00:35 v #5349 > > │ -00:00:35 v #5350 > > .............................../................................................ -00:00:35 v #5351 > > ................................................................................ -00:00:35 v #5352 > > │ -00:00:35 v #5353 > > ................................................................................ -00:00:35 v #5354 > > ................................................................................ -00:00:35 v #5355 > > │ -00:00:35 v #5356 > > ................................................................................ -00:00:35 v #5357 > > ................................................................................ -00:00:35 v #5358 > > │ -00:00:35 v #5359 > > ................................................................................ -00:00:35 v #5360 > > ................................................................................ -00:00:35 v #5361 > > │ -00:00:35 v #5362 > > ................................................................................ -00:00:35 v #5363 > > ................................................................................ -00:00:35 v #5364 > > │ -00:00:35 v #5365 > > ................................................................................ -00:00:35 v #5366 > > ................................................................................ -00:00:35 v #5367 > > │ -00:00:35 v #5368 > > ................................................................................ -00:00:35 v #5369 > > ................................................................................ -00:00:35 v #5370 > > │ -00:00:35 v #5371 > > ................................................................................ -00:00:35 v #5372 > > ................................................................................ -00:00:35 v #5373 > > │ -00:00:35 v #5374 > > ................................................................................ -00:00:35 v #5375 > > ................................................................................ -00:00:35 v #5376 > > │ -00:00:35 v #5377 > > │ -00:00:35 v #5378 > > ................................................................................ -00:00:35 v #5379 > > ................................................................................ -00:00:35 v #5380 > > │ -00:00:35 v #5381 > > ................................................................................ -00:00:35 v #5382 > > ................................................................................ -00:00:35 v #5383 > > │ -00:00:35 v #5384 > > ................................................................................ -00:00:35 v #5385 > > ................................................................................ -00:00:35 v #5386 > > │ -00:00:35 v #5387 > > ................................................................................ -00:00:35 v #5388 > > ................................................................................ -00:00:35 v #5389 > > │ -00:00:35 v #5390 > > ................................................................................ -00:00:35 v #5391 > > ................................................................................ -00:00:35 v #5392 > > │ -00:00:35 v #5393 > > ................................................................................ -00:00:35 v #5394 > > ................................................................................ -00:00:35 v #5395 > > │ -00:00:35 v #5396 > > ................................................................................ -00:00:35 v #5397 > > ................................................................................ -00:00:35 v #5398 > > │ -00:00:35 v #5399 > > ................................................................................ -00:00:35 v #5400 > > ................................................................................ -00:00:35 v #5401 > > │ -00:00:35 v #5402 > > ................................................;;/<............................ -00:00:35 v #5403 > > ................................................................................ -00:00:35 v #5404 > > │ -00:00:35 v #5405 > > ............................................;;//////<........................... -00:00:35 v #5406 > > ................................................................................ -00:00:35 v #5407 > > │ -00:00:35 v #5408 > > ........................................;;;//////////<.......................... -00:00:35 v #5409 > > ................................................................................ -00:00:35 v #5410 > > │ -00:00:35 v #5411 > > ....................................;/;;//////////////<......................... -00:00:35 v #5412 > > ................................................................................ -00:00:35 v #5413 > > │ -00:00:35 v #5414 > > ................................;;/////////////////////<........................ -00:00:35 v #5415 > > ................................................................................ -00:00:35 v #5416 > > │ -00:00:35 v #5417 > > ...........................;;//;////////////////////////........................ -00:00:35 v #5418 > > ................................................................................ -00:00:35 v #5419 > > │ -00:00:35 v #5420 > > .......................;;;///////////////////////////////<...................... -00:00:35 v #5421 > > ................................................................................ -00:00:35 v #5422 > > │ -00:00:35 v #5423 > > ...................;/;////////////////////////////////////<..................... -00:00:35 v #5424 > > ..............;................................................................. -00:00:35 v #5425 > > │ -00:00:35 v #5426 > > ..............;;;;/////////////////////////////////////////<.................... -00:00:35 v #5427 > > ..........;/////................................................................ -00:00:35 v #5428 > > │ -00:00:35 v #5429 > > ..............;>////////////////////////////////////////////<................... -00:00:35 v #5430 > > ......;;;;///////............................................................... -00:00:35 v #5431 > > │ -00:00:35 v #5432 > > ................>////////////////////////////////////////////<.................. -00:00:35 v #5433 > > ..;///////////////.............................................................. -00:00:35 v #5434 > > │ -00:00:35 v #5435 > > .................>////////////////////////////////////////////.................; -00:00:35 v #5436 > > ;//////////////////...................;;;//<.................................... -00:00:35 v #5437 > > │ -00:00:35 v #5438 > > ..................>////////////////////////////////////////////................> -00:00:35 v #5439 > > >///////////////////..............;;;///////<................................... -00:00:35 v #5440 > > │ -00:00:35 v #5441 > > ...................>////////////////////////////////////////////<..............> -00:00:35 v #5442 > > >>///////////////////.............>>/////////<.................................. -00:00:35 v #5443 > > │ -00:00:35 v #5444 > > ....................>////////////////////////////////////////////<.............. -00:00:35 v #5445 > > >>>///////////////////.............>>/////////.................................. -00:00:35 v #5446 > > │ -00:00:35 v #5447 > > .....................>////////////////////////////////////////////<............. -00:00:35 v #5448 > > .>>>///////////////////.............>>////////.................................. -00:00:35 v #5449 > > │ -00:00:35 v #5450 > > ......................>////////////////////////////////////////////<............ -00:00:35 v #5451 > > ..>>>/////////////////...............>>///...................................... -00:00:35 v #5452 > > │ -00:00:35 v #5453 > > .......................>////////////////////////////////////////////............ -00:00:35 v #5454 > > ...>>>////////////.............................................................. -00:00:35 v #5455 > > │ -00:00:35 v #5456 > > ........................>///////////////////////////////////////////............ -00:00:35 v #5457 > > ....>>>///////.................................................................. -00:00:35 v #5458 > > │ -00:00:35 v #5459 > > .........................>>/////////////////////////////////////................ -00:00:35 v #5460 > > .....>>////..................................................................... -00:00:35 v #5461 > > │ -00:00:35 v #5462 > > ..........................>/////////////////////////////////.................... -00:00:35 v #5463 > > ................................................................................ -00:00:35 v #5464 > > │ -00:00:35 v #5465 > > ...........................>>////////////////////////////....................... -00:00:35 v #5466 > > ................................................................................ -00:00:35 v #5467 > > │ -00:00:35 v #5468 > > ............................>>///////////////////////........................... -00:00:35 v #5469 > > ................................................................................ -00:00:35 v #5470 > > │ -00:00:35 v #5471 > > .............................>////////////////////.............................. -00:00:35 v #5472 > > ................................................................................ -00:00:35 v #5473 > > │ -00:00:35 v #5474 > > ..............................>>//////////////.................................. -00:00:35 v #5475 > > ................................................................................ -00:00:35 v #5476 > > │ -00:00:35 v #5477 > > ...............................>>/////////...................................... -00:00:35 v #5478 > > ................................................................................ -00:00:35 v #5479 > > │ -00:00:35 v #5480 > > ................................>>////.......................................... -00:00:35 v #5481 > > ................................................................................ -00:00:35 v #5482 > > │ -00:00:35 v #5483 > > .................................>/............................................. -00:00:35 v #5484 > > ................................................................................ -00:00:35 v #5485 > > │ -00:00:35 v #5486 > > ................................................................................ -00:00:35 v #5487 > > ................................................................................ -00:00:35 v #5488 > > │ -00:00:35 v #5489 > > ................................................................................ -00:00:35 v #5490 > > ................................................................................ -00:00:35 v #5491 > > │ -00:00:35 v #5492 > > ................................................................................ -00:00:35 v #5493 > > ................................................................................ -00:00:35 v #5494 > > │ -00:00:35 v #5495 > > ................................................................................ -00:00:35 v #5496 > > ................................................................................ -00:00:35 v #5497 > > │ -00:00:35 v #5498 > > ................................................................................ -00:00:35 v #5499 > > ................................................................................ -00:00:35 v #5500 > > │ -00:00:35 v #5501 > > ................................................................................ -00:00:35 v #5502 > > ................................................................................ -00:00:35 v #5503 > > │ -00:00:35 v #5504 > > ................................................................................ -00:00:35 v #5505 > > ................................................................................ -00:00:35 v #5506 > > │ -00:00:35 v #5507 > > ................................................................................ -00:00:35 v #5508 > > ................................................................................ -00:00:35 v #5509 > > │ -00:00:35 v #5510 > > │ -00:00:35 v #5511 > > ................................................................................ -00:00:35 v #5512 > > ................................................................................ -00:00:35 v #5513 > > │ -00:00:35 v #5514 > > ................................................................................ -00:00:35 v #5515 > > ................................................................................ -00:00:35 v #5516 > > │ -00:00:35 v #5517 > > ................................................................................ -00:00:35 v #5518 > > ................................................................................ -00:00:35 v #5519 > > │ -00:00:35 v #5520 > > ................................................................................ -00:00:35 v #5521 > > ................................................................................ -00:00:35 v #5522 > > │ -00:00:35 v #5523 > > ................................................................................ -00:00:35 v #5524 > > ................................................................................ -00:00:35 v #5525 > > │ -00:00:35 v #5526 > > ................................................................................ -00:00:35 v #5527 > > ................................................................................ -00:00:35 v #5528 > > │ -00:00:35 v #5529 > > ................................................................................ -00:00:35 v #5530 > > ................................................................................ -00:00:35 v #5531 > > │ -00:00:35 v #5532 > > ................................................................................ -00:00:35 v #5533 > > ................................................................................ -00:00:35 v #5534 > > │ -00:00:35 v #5535 > > ...............................................;;;/............................. -00:00:35 v #5536 > > ................................................................................ -00:00:35 v #5537 > > │ -00:00:35 v #5538 > > ...........................................;;;//////............................ -00:00:35 v #5539 > > ................................................................................ -00:00:35 v #5540 > > │ -00:00:35 v #5541 > > .......................................;;;///////////........................... -00:00:35 v #5542 > > ................................................................................ -00:00:35 v #5543 > > │ -00:00:35 v #5544 > > ....................................;;////////////////.......................... -00:00:35 v #5545 > > ................................................................................ -00:00:35 v #5546 > > │ -00:00:35 v #5547 > > ................................;;;////////////////////<........................ -00:00:35 v #5548 > > ................................................................................ -00:00:35 v #5549 > > │ -00:00:35 v #5550 > > ............................;;/;////////////////////////<....................... -00:00:35 v #5551 > > ................................................................................ -00:00:35 v #5552 > > │ -00:00:35 v #5553 > > .........................;;//////////////////////////////<...................... -00:00:35 v #5554 > > ................................................................................ -00:00:35 v #5555 > > │ -00:00:35 v #5556 > > .....................;/////////////////////////////////////..................... -00:00:35 v #5557 > > .............;;................................................................. -00:00:35 v #5558 > > │ -00:00:35 v #5559 > > .................;/;////////////////////////////////////////.................... -00:00:35 v #5560 > > ..........;;////................................................................ -00:00:35 v #5561 > > │ -00:00:35 v #5562 > > ...............;/////////////////////////////////////////////................... -00:00:35 v #5563 > > ......;;;////////............................................................... -00:00:35 v #5564 > > │ -00:00:35 v #5565 > > ...............>>/////////////////////////////////////////////.................. -00:00:35 v #5566 > > ...;//////////////<............................................................. -00:00:35 v #5567 > > │ -00:00:35 v #5568 > > ................>>/////////////////////////////////////////////................; -00:00:35 v #5569 > > ;///////////////////..................;;;//<.................................... -00:00:35 v #5570 > > │ -00:00:35 v #5571 > > ..................>>////////////////////////////////////////////<.............;; -00:00:35 v #5572 > > >////////////////////..............;/////////................................... -00:00:35 v #5573 > > │ -00:00:35 v #5574 > > ...................>>////////////////////////////////////////////<............\> -00:00:35 v #5575 > > >>////////////////////............;>//////////.................................. -00:00:35 v #5576 > > │ -00:00:35 v #5577 > > ....................>>////////////////////////////////////////////<............. -00:00:35 v #5578 > > >>>////////////////////...........\>>//////////................................. -00:00:35 v #5579 > > │ -00:00:35 v #5580 > > .....................>>/////////////////////////////////////////////............ -00:00:35 v #5581 > > .>>>////////////////////............>>>//////................................... -00:00:35 v #5582 > > │ -00:00:35 v #5583 > > .......................>/////////////////////////////////////////////........... -00:00:35 v #5584 > > ..>>>////////////////................>>///...................................... -00:00:35 v #5585 > > │ -00:00:35 v #5586 > > ........................>////////////////////////////////////////////........... -00:00:35 v #5587 > > ...>>>////////////.............................................................. -00:00:35 v #5588 > > │ -00:00:35 v #5589 > > .........................>>///////////////////////////////////////.............. -00:00:35 v #5590 > > ....>>>>///////................................................................. -00:00:35 v #5591 > > │ -00:00:35 v #5592 > > ..........................>>///////////////////////////////////................. -00:00:35 v #5593 > > .....\>>>///.................................................................... -00:00:35 v #5594 > > │ -00:00:35 v #5595 > > ...........................>>//////////////////////////////..................... -00:00:35 v #5596 > > ................................................................................ -00:00:35 v #5597 > > │ -00:00:35 v #5598 > > ............................>>//////////////////////////........................ -00:00:35 v #5599 > > ................................................................................ -00:00:35 v #5600 > > │ -00:00:35 v #5601 > > .............................>>//////////////////////........................... -00:00:35 v #5602 > > ................................................................................ -00:00:35 v #5603 > > │ -00:00:35 v #5604 > > ...............................>//////////////////.............................. -00:00:35 v #5605 > > ................................................................................ -00:00:35 v #5606 > > │ -00:00:35 v #5607 > > ................................>>/////////////................................. -00:00:35 v #5608 > > ................................................................................ -00:00:35 v #5609 > > │ -00:00:35 v #5610 > > .................................>>/////////.................................... -00:00:35 v #5611 > > ................................................................................ -00:00:35 v #5612 > > │ -00:00:35 v #5613 > > ..................................>>/////....................................... -00:00:35 v #5614 > > ................................................................................ -00:00:35 v #5615 > > │ -00:00:35 v #5616 > > ...................................>//.......................................... -00:00:35 v #5617 > > ................................................................................ -00:00:35 v #5618 > > │ -00:00:35 v #5619 > > ................................................................................ -00:00:35 v #5620 > > ................................................................................ -00:00:35 v #5621 > > │ -00:00:35 v #5622 > > ................................................................................ -00:00:35 v #5623 > > ................................................................................ -00:00:35 v #5624 > > │ -00:00:35 v #5625 > > ................................................................................ -00:00:35 v #5626 > > ................................................................................ -00:00:35 v #5627 > > │ -00:00:35 v #5628 > > ................................................................................ -00:00:35 v #5629 > > ................................................................................ -00:00:35 v #5630 > > │ -00:00:35 v #5631 > > ................................................................................ -00:00:35 v #5632 > > ................................................................................ -00:00:35 v #5633 > > │ -00:00:35 v #5634 > > ................................................................................ -00:00:35 v #5635 > > ................................................................................ -00:00:35 v #5636 > > │ -00:00:35 v #5637 > > ................................................................................ -00:00:35 v #5638 > > ................................................................................ -00:00:35 v #5639 > > │ -00:00:35 v #5640 > > ................................................................................ -00:00:35 v #5641 > > ................................................................................ -00:00:35 v #5642 > > │ -00:00:35 v #5643 > > │ -00:00:35 v #5644 > > ................................................................................ -00:00:35 v #5645 > > ................................................................................ -00:00:35 v #5646 > > │ -00:00:35 v #5647 > > ................................................................................ -00:00:35 v #5648 > > ................................................................................ -00:00:35 v #5649 > > │ -00:00:35 v #5650 > > ................................................................................ -00:00:35 v #5651 > > ................................................................................ -00:00:35 v #5652 > > │ -00:00:35 v #5653 > > ................................................................................ -00:00:35 v #5654 > > ................................................................................ -00:00:35 v #5655 > > │ -00:00:35 v #5656 > > ................................................................................ -00:00:35 v #5657 > > ................................................................................ -00:00:35 v #5658 > > │ -00:00:35 v #5659 > > ................................................................................ -00:00:35 v #5660 > > ................................................................................ -00:00:35 v #5661 > > │ -00:00:35 v #5662 > > ................................................................................ -00:00:35 v #5663 > > ................................................................................ -00:00:35 v #5664 > > │ -00:00:35 v #5665 > > ................................................................................ -00:00:35 v #5666 > > ................................................................................ -00:00:35 v #5667 > > │ -00:00:35 v #5668 > > .............................................;;///.............................. -00:00:35 v #5669 > > ................................................................................ -00:00:35 v #5670 > > │ -00:00:35 v #5671 > > ..........................................;;;//////<............................ -00:00:35 v #5672 > > ................................................................................ -00:00:35 v #5673 > > │ -00:00:35 v #5674 > > .......................................;////////////<........................... -00:00:35 v #5675 > > ................................................................................ -00:00:35 v #5676 > > │ -00:00:35 v #5677 > > ....................................;/////////////////.......................... -00:00:35 v #5678 > > ................................................................................ -00:00:35 v #5679 > > │ -00:00:35 v #5680 > > ................................;;;////////////////////<........................ -00:00:35 v #5681 > > ................................................................................ -00:00:35 v #5682 > > │ -00:00:35 v #5683 > > .............................;;;////////////////////////<....................... -00:00:35 v #5684 > > ................................................................................ -00:00:35 v #5685 > > │ -00:00:35 v #5686 > > ..........................;///////////////////////////////...................... -00:00:35 v #5687 > > ................................................................................ -00:00:35 v #5688 > > │ -00:00:35 v #5689 > > ......................;;///////////////////////////////////..................... -00:00:35 v #5690 > > .............;/................................................................. -00:00:35 v #5691 > > │ -00:00:35 v #5692 > > ...................;;;//////////////////////////////////////<................... -00:00:35 v #5693 > > ..........;;////................................................................ -00:00:35 v #5694 > > │ -00:00:35 v #5695 > > ................;;////////////////////////////////////////////.................. -00:00:35 v #5696 > > ......;;;////////............................................................... -00:00:35 v #5697 > > │ -00:00:35 v #5698 > > ...............;>//////////////////////////////////////////////................. -00:00:35 v #5699 > > ...;;//////////////......................<...................................... -00:00:35 v #5700 > > │ -00:00:35 v #5701 > > ................>>//////////////////////////////////////////////................ -00:00:35 v #5702 > > ;///////////////////..................;;;//<.................................... -00:00:35 v #5703 > > │ -00:00:35 v #5704 > > .................>>>//////////////////////////////////////////////............;; -00:00:35 v #5705 > > >////////////////////..............;;;///////................................... -00:00:35 v #5706 > > │ -00:00:35 v #5707 > > ..................>>>//////////////////////////////////////////////...........>> -00:00:35 v #5708 > > >>////////////////////<..........;;;>/////////.................................. -00:00:35 v #5709 > > │ -00:00:35 v #5710 > > ...................>>>//////////////////////////////////////////////...........> -00:00:35 v #5711 > > >>>/////////////////////..........>>>>/////////................................. -00:00:35 v #5712 > > │ -00:00:35 v #5713 > > .....................>>>/////////////////////////////////////////////<.......... -00:00:35 v #5714 > > >>>>>//////////////////............>>>>//////................................... -00:00:35 v #5715 > > │ -00:00:35 v #5716 > > ......................>>>////////////////////////////////////////////........... -00:00:35 v #5717 > > .\>>>>///////////////................>>>//...................................... -00:00:35 v #5718 > > │ -00:00:35 v #5719 > > ........................>>>////////////////////////////////////////............. -00:00:35 v #5720 > > ...>>>>///////////.............................................................. -00:00:35 v #5721 > > │ -00:00:35 v #5722 > > .........................>>>////////////////////////////////////................ -00:00:35 v #5723 > > ....>>>>>//////................................................................. -00:00:35 v #5724 > > │ -00:00:35 v #5725 > > ..........................>>>////////////////////////////////................... -00:00:35 v #5726 > > ......>>>>//.................................................................... -00:00:35 v #5727 > > │ -00:00:35 v #5728 > > ............................>>>////////////////////////////..................... -00:00:35 v #5729 > > ................................................................................ -00:00:35 v #5730 > > │ -00:00:35 v #5731 > > .............................>>>////////////////////////........................ -00:00:35 v #5732 > > ................................................................................ -00:00:35 v #5733 > > │ -00:00:35 v #5734 > > ..............................>>>////////////////////........................... -00:00:35 v #5735 > > ................................................................................ -00:00:35 v #5736 > > │ -00:00:35 v #5737 > > ................................>>>////////////////............................. -00:00:35 v #5738 > > ................................................................................ -00:00:35 v #5739 > > │ -00:00:35 v #5740 > > .................................>>>////////////................................ -00:00:35 v #5741 > > ................................................................................ -00:00:35 v #5742 > > │ -00:00:35 v #5743 > > ...................................>>>////////.................................. -00:00:35 v #5744 > > ................................................................................ -00:00:35 v #5745 > > │ -00:00:35 v #5746 > > ....................................>>>////..................................... -00:00:35 v #5747 > > ................................................................................ -00:00:35 v #5748 > > │ -00:00:35 v #5749 > > ......................................>//....................................... -00:00:35 v #5750 > > ................................................................................ -00:00:35 v #5751 > > │ -00:00:35 v #5752 > > ................................................................................ -00:00:35 v #5753 > > ................................................................................ -00:00:35 v #5754 > > │ -00:00:35 v #5755 > > ................................................................................ -00:00:35 v #5756 > > ................................................................................ -00:00:35 v #5757 > > │ -00:00:35 v #5758 > > ................................................................................ -00:00:35 v #5759 > > ................................................................................ -00:00:35 v #5760 > > │ -00:00:35 v #5761 > > ................................................................................ -00:00:35 v #5762 > > ................................................................................ -00:00:35 v #5763 > > │ -00:00:35 v #5764 > > ................................................................................ -00:00:35 v #5765 > > ................................................................................ -00:00:35 v #5766 > > │ -00:00:35 v #5767 > > ................................................................................ -00:00:35 v #5768 > > ................................................................................ -00:00:35 v #5769 > > │ -00:00:35 v #5770 > > ................................................................................ -00:00:35 v #5771 > > ................................................................................ -00:00:35 v #5772 > > │ -00:00:35 v #5773 > > ................................................................................ -00:00:35 v #5774 > > ................................................................................ -00:00:35 v #5775 > > │ -00:00:35 v #5776 > > │ -00:00:35 v #5777 > > ................................................................................ -00:00:35 v #5778 > > ................................................................................ -00:00:35 v #5779 > > │ -00:00:35 v #5780 > > ................................................................................ -00:00:35 v #5781 > > ................................................................................ -00:00:35 v #5782 > > │ -00:00:35 v #5783 > > ................................................................................ -00:00:35 v #5784 > > ................................................................................ -00:00:35 v #5785 > > │ -00:00:35 v #5786 > > ................................................................................ -00:00:35 v #5787 > > ................................................................................ -00:00:35 v #5788 > > │ -00:00:35 v #5789 > > ................................................................................ -00:00:35 v #5790 > > ................................................................................ -00:00:35 v #5791 > > │ -00:00:35 v #5792 > > ................................................................................ -00:00:35 v #5793 > > ................................................................................ -00:00:35 v #5794 > > │ -00:00:35 v #5795 > > ................................................................................ -00:00:35 v #5796 > > ................................................................................ -00:00:35 v #5797 > > │ -00:00:35 v #5798 > > ...............................................;<............................... -00:00:35 v #5799 > > ................................................................................ -00:00:35 v #5800 > > │ -00:00:35 v #5801 > > ............................................;;;//<.............................. -00:00:35 v #5802 > > ................................................................................ -00:00:35 v #5803 > > │ -00:00:35 v #5804 > > ..........................................;;///////<............................ -00:00:35 v #5805 > > ................................................................................ -00:00:35 v #5806 > > │ -00:00:35 v #5807 > > .......................................;////////////<........................... -00:00:35 v #5808 > > ................................................................................ -00:00:35 v #5809 > > │ -00:00:35 v #5810 > > ....................................;/////////////////.......................... -00:00:35 v #5811 > > ................................................................................ -00:00:35 v #5812 > > │ -00:00:35 v #5813 > > .................................;/////////////////////<........................ -00:00:35 v #5814 > > ................................................................................ -00:00:35 v #5815 > > │ -00:00:35 v #5816 > > ..............................;;/////////////////////////....................... -00:00:35 v #5817 > > ................................................................................ -00:00:35 v #5818 > > │ -00:00:35 v #5819 > > ...........................;;/////////////////////////////...................... -00:00:35 v #5820 > > ................................................................................ -00:00:35 v #5821 > > │ -00:00:35 v #5822 > > ........................;;//////////////////////////////////.................... -00:00:35 v #5823 > > ............;;<................................................................. -00:00:35 v #5824 > > │ -00:00:35 v #5825 > > .....................;;//////////////////////////////////////................... -00:00:35 v #5826 > > .........;//////................................................................ -00:00:35 v #5827 > > │ -00:00:35 v #5828 > > ..................;///////////////////////////////////////////<................. -00:00:35 v #5829 > > .......;//////////.............................................................. -00:00:35 v #5830 > > │ -00:00:35 v #5831 > > ................;///////////////////////////////////////////////................ -00:00:35 v #5832 > > ....;;/////////////......................;...................................... -00:00:35 v #5833 > > │ -00:00:35 v #5834 > > ................>>>//////////////////////////////////////////////<.............. -00:00:35 v #5835 > > .;;/////////////////<.................;;///<.................................... -00:00:35 v #5836 > > │ -00:00:35 v #5837 > > ................>>>>///////////////////////////////////////////////............; -00:00:35 v #5838 > > >/////////////////////.............;;////////................................... -00:00:35 v #5839 > > │ -00:00:35 v #5840 > > ................;>>>>>//////////////////////////////////////////////<........;;> -00:00:35 v #5841 > > >>/////////////////////<.........;;;>/////////<................................. -00:00:35 v #5842 > > │ -00:00:35 v #5843 > > ..................>>>>>//////////////////////////////////////////////<........>> -00:00:35 v #5844 > > >>>>////////////////////..........>>>>/////////................................. -00:00:35 v #5845 > > │ -00:00:35 v #5846 > > ...................>>>>>//////////////////////////////////////////////.......... -00:00:35 v #5847 > > >>>>>//////////////////............>>>>>/////................................... -00:00:35 v #5848 > > │ -00:00:35 v #5849 > > .....................>>>>>//////////////////////////////////////////............ -00:00:35 v #5850 > > .>>>>>>/////////////.................>>>>/...................................... -00:00:35 v #5851 > > │ -00:00:35 v #5852 > > ......................>>>>>>/////////////////////////////////////............... -00:00:35 v #5853 > > ...>>>>>//////////.............................................................. -00:00:35 v #5854 > > │ -00:00:35 v #5855 > > ........................>>>>>//////////////////////////////////................. -00:00:35 v #5856 > > ....>>>>>>/////................................................................. -00:00:35 v #5857 > > │ -00:00:35 v #5858 > > ..........................>>>>>//////////////////////////////................... -00:00:35 v #5859 > > ......>>>>>//................................................................... -00:00:35 v #5860 > > │ -00:00:35 v #5861 > > ...........................>>>>>///////////////////////////..................... -00:00:35 v #5862 > > ................................................................................ -00:00:35 v #5863 > > │ -00:00:35 v #5864 > > .............................>>>>>///////////////////////....................... -00:00:35 v #5865 > > ................................................................................ -00:00:35 v #5866 > > │ -00:00:35 v #5867 > > ..............................>>>>>///////////////////.......................... -00:00:35 v #5868 > > ................................................................................ -00:00:35 v #5869 > > │ -00:00:35 v #5870 > > ................................>>>>>///////////////............................ -00:00:35 v #5871 > > ................................................................................ -00:00:35 v #5872 > > │ -00:00:35 v #5873 > > .................................>>>>>>///////////.............................. -00:00:35 v #5874 > > ................................................................................ -00:00:35 v #5875 > > │ -00:00:35 v #5876 > > ...................................=>>>>///////................................. -00:00:35 v #5877 > > ................................................................................ -00:00:35 v #5878 > > │ -00:00:35 v #5879 > > ......................................>>>>///................................... -00:00:35 v #5880 > > ................................................................................ -00:00:35 v #5881 > > │ -00:00:35 v #5882 > > ........................................=>/..................................... -00:00:35 v #5883 > > ................................................................................ -00:00:35 v #5884 > > │ -00:00:35 v #5885 > > ................................................................................ -00:00:35 v #5886 > > ................................................................................ -00:00:35 v #5887 > > │ -00:00:35 v #5888 > > ................................................................................ -00:00:35 v #5889 > > ................................................................................ -00:00:35 v #5890 > > │ -00:00:35 v #5891 > > ................................................................................ -00:00:35 v #5892 > > ................................................................................ -00:00:35 v #5893 > > │ -00:00:35 v #5894 > > ................................................................................ -00:00:35 v #5895 > > ................................................................................ -00:00:35 v #5896 > > │ -00:00:35 v #5897 > > ................................................................................ -00:00:35 v #5898 > > ................................................................................ -00:00:35 v #5899 > > │ -00:00:35 v #5900 > > ................................................................................ -00:00:35 v #5901 > > ................................................................................ -00:00:35 v #5902 > > │ -00:00:35 v #5903 > > ................................................................................ -00:00:35 v #5904 > > ................................................................................ -00:00:35 v #5905 > > │ -00:00:35 v #5906 > > ................................................................................ -00:00:35 v #5907 > > ................................................................................ -00:00:35 v #5908 > > │ -00:00:35 v #5909 > > │ -00:00:35 v #5910 > > ................................................................................ -00:00:35 v #5911 > > ................................................................................ -00:00:35 v #5912 > > │ -00:00:35 v #5913 > > ................................................................................ -00:00:35 v #5914 > > ................................................................................ -00:00:35 v #5915 > > │ -00:00:35 v #5916 > > ................................................................................ -00:00:35 v #5917 > > ................................................................................ -00:00:35 v #5918 > > │ -00:00:35 v #5919 > > ................................................................................ -00:00:35 v #5920 > > ................................................................................ -00:00:35 v #5921 > > │ -00:00:35 v #5922 > > ................................................................................ -00:00:35 v #5923 > > ................................................................................ -00:00:35 v #5924 > > │ -00:00:35 v #5925 > > ................................................................................ -00:00:35 v #5926 > > ................................................................................ -00:00:35 v #5927 > > │ -00:00:35 v #5928 > > ................................................................................ -00:00:35 v #5929 > > ................................................................................ -00:00:35 v #5930 > > │ -00:00:35 v #5931 > > ..............................................;/................................ -00:00:35 v #5932 > > ................................................................................ -00:00:35 v #5933 > > │ -00:00:35 v #5934 > > ............................................;////............................... -00:00:35 v #5935 > > ................................................................................ -00:00:35 v #5936 > > │ -00:00:35 v #5937 > > .........................................;;///////<............................. -00:00:35 v #5938 > > ................................................................................ -00:00:35 v #5939 > > │ -00:00:35 v #5940 > > ......................................;;////////////............................ -00:00:35 v #5941 > > ................................................................................ -00:00:35 v #5942 > > │ -00:00:35 v #5943 > > ....................................;;///////////////<.......................... -00:00:35 v #5944 > > ................................................................................ -00:00:35 v #5945 > > │ -00:00:35 v #5946 > > .................................;/////////////////////<........................ -00:00:35 v #5947 > > ................................................................................ -00:00:35 v #5948 > > │ -00:00:35 v #5949 > > ..............................;;;////////////////////////....................... -00:00:35 v #5950 > > ................................................................................ -00:00:35 v #5951 > > │ -00:00:35 v #5952 > > ............................;/////////////////////////////<..................... -00:00:35 v #5953 > > ................................................................................ -00:00:35 v #5954 > > │ -00:00:35 v #5955 > > .........................;;/////////////////////////////////.................... -00:00:35 v #5956 > > ...........;;/.................................................................. -00:00:35 v #5957 > > │ -00:00:35 v #5958 > > .......................;;/////////////////////////////////////.................. -00:00:35 v #5959 > > .........;;/////................................................................ -00:00:35 v #5960 > > │ -00:00:35 v #5961 > > ....................;;/////////////////////////////////////////................. -00:00:35 v #5962 > > .......;//////////.............................................................. -00:00:35 v #5963 > > │ -00:00:35 v #5964 > > ..................;;/////////////////////////////////////////////............... -00:00:35 v #5965 > > ....;;/////////////......................;...................................... -00:00:35 v #5966 > > │ -00:00:35 v #5967 > > ................;;>///////////////////////////////////////////////<............. -00:00:35 v #5968 > > ..;;/////////////////.................;;///<.................................... -00:00:35 v #5969 > > │ -00:00:35 v #5970 > > ................;>>>////////////////////////////////////////////////...........; -00:00:35 v #5971 > > ;/////////////////////.............\;////////<.................................. -00:00:35 v #5972 > > │ -00:00:35 v #5973 > > ................>>>>>>///////////////////////////////////////////////<.......;;; -00:00:35 v #5974 > > >>>/////////////////////.........;;;>//////////................................. -00:00:35 v #5975 > > │ -00:00:35 v #5976 > > ................>>>>>>>>//////////////////////////////////////////////.......>>> -00:00:35 v #5977 > > >>>>////////////////////.........>>>>>>////////................................. -00:00:35 v #5978 > > │ -00:00:35 v #5979 > > ..................>>>>>>>>//////////////////////////////////////////...........> -00:00:35 v #5980 > > >>>>>>////////////////.............>>>>>/////................................... -00:00:35 v #5981 > > │ -00:00:35 v #5982 > > ...................\>>>>>>>///////////////////////////////////////.............. -00:00:35 v #5983 > > .>>>>>>>////////////.................>>>>//..................................... -00:00:35 v #5984 > > │ -00:00:35 v #5985 > > .....................>>>>>>>>///////////////////////////////////................ -00:00:35 v #5986 > > ..>>>>>>>/////////.............................................................. -00:00:35 v #5987 > > │ -00:00:35 v #5988 > > .......................>>>>>>>>///////////////////////////////.................. -00:00:35 v #5989 > > ....>>>>>>>/////................................................................ -00:00:35 v #5990 > > │ -00:00:35 v #5991 > > .........................>>>>>>>/////////////////////////////................... -00:00:35 v #5992 > > ......>>>>>>//.................................................................. -00:00:35 v #5993 > > │ -00:00:35 v #5994 > > ..........................>>>>>>>>/////////////////////////..................... -00:00:35 v #5995 > > ................................................................................ -00:00:35 v #5996 > > │ -00:00:35 v #5997 > > ............................>>>>>>>>/////////////////////....................... -00:00:35 v #5998 > > ................................................................................ -00:00:35 v #5999 > > │ -00:00:35 v #6000 > > ..............................>>>>>>>>/////////////////......................... -00:00:35 v #6001 > > ................................................................................ -00:00:35 v #6002 > > │ -00:00:35 v #6003 > > ................................>>>>>>>//////////////........................... -00:00:35 v #6004 > > ................................................................................ -00:00:35 v #6005 > > │ -00:00:35 v #6006 > > .................................>>>>>>>>//////////............................. -00:00:35 v #6007 > > ................................................................................ -00:00:35 v #6008 > > │ -00:00:35 v #6009 > > ....................................>>>>>>>//////............................... -00:00:35 v #6010 > > ................................................................................ -00:00:35 v #6011 > > │ -00:00:35 v #6012 > > ........................................>>>>///................................. -00:00:35 v #6013 > > ................................................................................ -00:00:35 v #6014 > > │ -00:00:35 v #6015 > > ...........................................>>/.................................. -00:00:35 v #6016 > > ................................................................................ -00:00:35 v #6017 > > │ -00:00:35 v #6018 > > ................................................................................ -00:00:35 v #6019 > > ................................................................................ -00:00:35 v #6020 > > │ -00:00:35 v #6021 > > ................................................................................ -00:00:35 v #6022 > > ................................................................................ -00:00:35 v #6023 > > │ -00:00:35 v #6024 > > ................................................................................ -00:00:35 v #6025 > > ................................................................................ -00:00:35 v #6026 > > │ -00:00:35 v #6027 > > ................................................................................ -00:00:35 v #6028 > > ................................................................................ -00:00:35 v #6029 > > │ -00:00:35 v #6030 > > ................................................................................ -00:00:35 v #6031 > > ................................................................................ -00:00:35 v #6032 > > │ -00:00:35 v #6033 > > ................................................................................ -00:00:35 v #6034 > > ................................................................................ -00:00:35 v #6035 > > │ -00:00:35 v #6036 > > ................................................................................ -00:00:35 v #6037 > > ................................................................................ -00:00:35 v #6038 > > │ -00:00:35 v #6039 > > ................................................................................ -00:00:35 v #6040 > > ................................................................................ -00:00:35 v #6041 > > │ -00:00:35 v #6042 > > │ -00:00:35 v #6043 > > ................................................................................ -00:00:35 v #6044 > > ................................................................................ -00:00:35 v #6045 > > │ -00:00:35 v #6046 > > ................................................................................ -00:00:35 v #6047 > > ................................................................................ -00:00:35 v #6048 > > │ -00:00:35 v #6049 > > ................................................................................ -00:00:35 v #6050 > > ................................................................................ -00:00:35 v #6051 > > │ -00:00:35 v #6052 > > ................................................................................ -00:00:35 v #6053 > > ................................................................................ -00:00:35 v #6054 > > │ -00:00:35 v #6055 > > ................................................................................ -00:00:35 v #6056 > > ................................................................................ -00:00:35 v #6057 > > │ -00:00:35 v #6058 > > ................................................................................ -00:00:35 v #6059 > > ................................................................................ -00:00:35 v #6060 > > │ -00:00:35 v #6061 > > ................................................................................ -00:00:35 v #6062 > > ................................................................................ -00:00:35 v #6063 > > │ -00:00:35 v #6064 > > .............................................;/................................. -00:00:35 v #6065 > > ................................................................................ -00:00:35 v #6066 > > │ -00:00:35 v #6067 > > ...........................................;;////............................... -00:00:35 v #6068 > > ................................................................................ -00:00:35 v #6069 > > │ -00:00:35 v #6070 > > ........................................;;////////<............................. -00:00:35 v #6071 > > ................................................................................ -00:00:35 v #6072 > > │ -00:00:35 v #6073 > > ......................................;/////////////............................ -00:00:35 v #6074 > > ................................................................................ -00:00:35 v #6075 > > │ -00:00:35 v #6076 > > ....................................;/////////////////.......................... -00:00:35 v #6077 > > ................................................................................ -00:00:35 v #6078 > > │ -00:00:35 v #6079 > > .................................;;////////////////////<........................ -00:00:35 v #6080 > > ................................................................................ -00:00:35 v #6081 > > │ -00:00:35 v #6082 > > ...............................;/////////////////////////....................... -00:00:35 v #6083 > > ................................................................................ -00:00:35 v #6084 > > │ -00:00:35 v #6085 > > .............................;/////////////////////////////..................... -00:00:35 v #6086 > > ................................................................................ -00:00:35 v #6087 > > │ -00:00:35 v #6088 > > ..........................;;////////////////////////////////<................... -00:00:35 v #6089 > > ...........;;/.................................................................. -00:00:35 v #6090 > > │ -00:00:35 v #6091 > > ........................;;////////////////////////////////////.................. -00:00:35 v #6092 > > ........;;//////................................................................ -00:00:35 v #6093 > > │ -00:00:35 v #6094 > > ......................;/////////////////////////////////////////................ -00:00:35 v #6095 > > ......;;//////////.............................................................. -00:00:35 v #6096 > > │ -00:00:35 v #6097 > > ...................;;////////////////////////////////////////////<.............. -00:00:35 v #6098 > > ....;;;////////////<....................;;...................................... -00:00:35 v #6099 > > │ -00:00:35 v #6100 > > .................;;////////////////////////////////////////////////<............ -00:00:35 v #6101 > > ..;;/////////////////................;;;////.................................... -00:00:35 v #6102 > > │ -00:00:35 v #6103 > > ................;;>>>////////////////////////////////////////////////........... -00:00:35 v #6104 > > ;;/////////////////////............\;;///////<.................................. -00:00:35 v #6105 > > │ -00:00:35 v #6106 > > ................;>>>>>>///////////////////////////////////////////////.......;;; -00:00:35 v #6107 > > ;>>/////////////////////.........;;;>//////////................................. -00:00:35 v #6108 > > │ -00:00:35 v #6109 > > ...............;>>>>>>>>/////////////////////////////////////////////........;>> -00:00:35 v #6110 > > >>>>>///////////////////.........;>>>>>////////................................. -00:00:35 v #6111 > > │ -00:00:35 v #6112 > > ................>>>>>>>>>>/////////////////////////////////////////...........>> -00:00:35 v #6113 > > >>>>>>>///////////////.............>>>>>>////................................... -00:00:35 v #6114 > > │ -00:00:35 v #6115 > > ..................>>>>>>>>>>>////////////////////////////////////............... -00:00:35 v #6116 > > >>>>>>>>>///////////................\>>>>>/..................................... -00:00:35 v #6117 > > │ -00:00:35 v #6118 > > ....................>>>>>>>>>>//////////////////////////////////................ -00:00:35 v #6119 > > ..>>>>>>>>////////.............................................................. -00:00:35 v #6120 > > │ -00:00:35 v #6121 > > ......................>>>>>>>>>>//////////////////////////////.................. -00:00:35 v #6122 > > ....>>>>>>>>////................................................................ -00:00:35 v #6123 > > │ -00:00:35 v #6124 > > ........................>>>>>>>>>>///////////////////////////................... -00:00:35 v #6125 > > ......>>>>>>>//................................................................. -00:00:35 v #6126 > > │ -00:00:35 v #6127 > > ..........................>>>>>>>>>>///////////////////////..................... -00:00:35 v #6128 > > ................................................................................ -00:00:35 v #6129 > > │ -00:00:35 v #6130 > > ............................>>>>>>>>>>///////////////////....................... -00:00:35 v #6131 > > ................................................................................ -00:00:35 v #6132 > > │ -00:00:35 v #6133 > > ..............................>>>>>>>>>>////////////////........................ -00:00:35 v #6134 > > ................................................................................ -00:00:35 v #6135 > > │ -00:00:35 v #6136 > > ................................>>>>>>>>>>////////////.......................... -00:00:35 v #6137 > > ................................................................................ -00:00:35 v #6138 > > │ -00:00:35 v #6139 > > ..................................>>>>>>>>>>////////............................ -00:00:35 v #6140 > > ................................................................................ -00:00:35 v #6141 > > │ -00:00:35 v #6142 > > ....................................=>>>>>>>>>/////............................. -00:00:35 v #6143 > > ................................................................................ -00:00:35 v #6144 > > │ -00:00:35 v #6145 > > ..........................................>>>>>//............................... -00:00:35 v #6146 > > ................................................................................ -00:00:35 v #6147 > > │ -00:00:35 v #6148 > > .............................................../................................ -00:00:35 v #6149 > > ................................................................................ -00:00:35 v #6150 > > │ -00:00:35 v #6151 > > ................................................................................ -00:00:35 v #6152 > > ................................................................................ -00:00:35 v #6153 > > │ -00:00:35 v #6154 > > ................................................................................ -00:00:35 v #6155 > > ................................................................................ -00:00:35 v #6156 > > │ -00:00:35 v #6157 > > ................................................................................ -00:00:35 v #6158 > > ................................................................................ -00:00:35 v #6159 > > │ -00:00:35 v #6160 > > ................................................................................ -00:00:35 v #6161 > > ................................................................................ -00:00:35 v #6162 > > │ -00:00:35 v #6163 > > ................................................................................ -00:00:35 v #6164 > > ................................................................................ -00:00:35 v #6165 > > │ -00:00:35 v #6166 > > ................................................................................ -00:00:35 v #6167 > > ................................................................................ -00:00:35 v #6168 > > │ -00:00:35 v #6169 > > ................................................................................ -00:00:35 v #6170 > > ................................................................................ -00:00:35 v #6171 > > │ -00:00:35 v #6172 > > ................................................................................ -00:00:35 v #6173 > > ................................................................................ -00:00:35 v #6174 > > │ -00:00:35 v #6175 > > │ -00:00:35 v #6176 > > ................................................................................ -00:00:35 v #6177 > > ................................................................................ -00:00:35 v #6178 > > │ -00:00:35 v #6179 > > ................................................................................ -00:00:35 v #6180 > > ................................................................................ -00:00:35 v #6181 > > │ -00:00:35 v #6182 > > ................................................................................ -00:00:35 v #6183 > > ................................................................................ -00:00:35 v #6184 > > │ -00:00:35 v #6185 > > ................................................................................ -00:00:35 v #6186 > > ................................................................................ -00:00:35 v #6187 > > │ -00:00:35 v #6188 > > ................................................................................ -00:00:35 v #6189 > > ................................................................................ -00:00:35 v #6190 > > │ -00:00:35 v #6191 > > ................................................................................ -00:00:35 v #6192 > > ................................................................................ -00:00:35 v #6193 > > │ -00:00:35 v #6194 > > ................................................................................ -00:00:35 v #6195 > > ................................................................................ -00:00:35 v #6196 > > │ -00:00:35 v #6197 > > ............................................;;.................................. -00:00:35 v #6198 > > ................................................................................ -00:00:35 v #6199 > > │ -00:00:35 v #6200 > > ..........................................;;////................................ -00:00:35 v #6201 > > ................................................................................ -00:00:35 v #6202 > > │ -00:00:35 v #6203 > > ........................................;;////////.............................. -00:00:35 v #6204 > > ................................................................................ -00:00:35 v #6205 > > │ -00:00:35 v #6206 > > ......................................;////////////<............................ -00:00:35 v #6207 > > ................................................................................ -00:00:35 v #6208 > > │ -00:00:35 v #6209 > > ....................................;////////////////<.......................... -00:00:35 v #6210 > > ................................................................................ -00:00:35 v #6211 > > │ -00:00:35 v #6212 > > ..................................;////////////////////<........................ -00:00:35 v #6213 > > ................................................................................ -00:00:35 v #6214 > > │ -00:00:35 v #6215 > > ................................;////////////////////////<...................... -00:00:35 v #6216 > > ................................................................................ -00:00:35 v #6217 > > │ -00:00:35 v #6218 > > ..............................;////////////////////////////..................... -00:00:35 v #6219 > > ................................................................................ -00:00:35 v #6220 > > │ -00:00:35 v #6221 > > ............................;////////////////////////////////................... -00:00:35 v #6222 > > ..........;;//.................................................................. -00:00:35 v #6223 > > │ -00:00:35 v #6224 > > ..........................;////////////////////////////////////................. -00:00:35 v #6225 > > ........;;//////................................................................ -00:00:35 v #6226 > > │ -00:00:35 v #6227 > > ........................;///////////////////////////////////////<............... -00:00:35 v #6228 > > .....;;;//////////.............................................................. -00:00:35 v #6229 > > │ -00:00:35 v #6230 > > ......................;///////////////////////////////////////////<............. -00:00:35 v #6231 > > ...\;;//////////////....................;<...................................... -00:00:35 v #6232 > > │ -00:00:35 v #6233 > > ....................;;//////////////////////////////////////////////<........... -00:00:35 v #6234 > > ..;;;/////////////////...............;;;///<.................................... -00:00:35 v #6235 > > │ -00:00:35 v #6236 > > ..................;;>////////////////////////////////////////////////........... -00:00:35 v #6237 > > ;;;/////////////////////...........;;;///////<.................................. -00:00:35 v #6238 > > │ -00:00:35 v #6239 > > ................;;>>>>>//////////////////////////////////////////////.........;; -00:00:35 v #6240 > > ;;>/////////////////////..........;;;//////////................................. -00:00:35 v #6241 > > │ -00:00:35 v #6242 > > ...............;;>>>>>>>>//////////////////////////////////////////.........\;;> -00:00:35 v #6243 > > >>>>>//////////////////..........;;>>>>////////................................. -00:00:35 v #6244 > > │ -00:00:35 v #6245 > > ..............;>>>>>>>>>>>>///////////////////////////////////////...........>>> -00:00:35 v #6246 > > >>>>>>>///////////////.............>>>>>>////................................... -00:00:35 v #6247 > > │ -00:00:35 v #6248 > > ................>>>>>>>>>>>>>////////////////////////////////////............... -00:00:35 v #6249 > > >>>>>>>>>>//////////.................>>>>>/..................................... -00:00:35 v #6250 > > │ -00:00:35 v #6251 > > ..................>>>>>>>>>>>>>>///////////////////////////////................. -00:00:35 v #6252 > > .\>>>>>>>>>////////...................=......................................... -00:00:35 v #6253 > > │ -00:00:35 v #6254 > > ....................\>>>>>>>>>>>>>////////////////////////////.................. -00:00:35 v #6255 > > ....>>>>>>>>>////............................................................... -00:00:35 v #6256 > > │ -00:00:35 v #6257 > > .......................>>>>>>>>>>>>>/////////////////////////................... -00:00:35 v #6258 > > ......>>>>>>>>>/................................................................ -00:00:35 v #6259 > > │ -00:00:35 v #6260 > > .........................>>>>>>>>>>>>>/////////////////////..................... -00:00:35 v #6261 > > ................................................................................ -00:00:35 v #6262 > > │ -00:00:35 v #6263 > > ...........................>>>>>>>>>>>>>//////////////////...................... -00:00:35 v #6264 > > ................................................................................ -00:00:35 v #6265 > > │ -00:00:35 v #6266 > > .............................>>>>>>>>>>>>>///////////////....................... -00:00:35 v #6267 > > ................................................................................ -00:00:35 v #6268 > > │ -00:00:35 v #6269 > > ...............................>>>>>>>>>>>>>>//////////......................... -00:00:35 v #6270 > > ................................................................................ -00:00:35 v #6271 > > │ -00:00:35 v #6272 > > ..................................>>>>>>>>>>>>>///////.......................... -00:00:35 v #6273 > > ................................................................................ -00:00:35 v #6274 > > │ -00:00:35 v #6275 > > ....................................=>>>>>>>>>>>>////........................... -00:00:35 v #6276 > > ................................................................................ -00:00:35 v #6277 > > │ -00:00:35 v #6278 > > ............................................=>>>>>/............................. -00:00:35 v #6279 > > ................................................................................ -00:00:35 v #6280 > > │ -00:00:35 v #6281 > > ................................................................................ -00:00:35 v #6282 > > ................................................................................ -00:00:35 v #6283 > > │ -00:00:35 v #6284 > > ................................................................................ -00:00:35 v #6285 > > ................................................................................ -00:00:35 v #6286 > > │ -00:00:35 v #6287 > > ................................................................................ -00:00:35 v #6288 > > ................................................................................ -00:00:35 v #6289 > > │ -00:00:35 v #6290 > > ................................................................................ -00:00:35 v #6291 > > ................................................................................ -00:00:35 v #6292 > > │ -00:00:35 v #6293 > > ................................................................................ -00:00:35 v #6294 > > ................................................................................ -00:00:35 v #6295 > > │ -00:00:35 v #6296 > > ................................................................................ -00:00:35 v #6297 > > ................................................................................ -00:00:35 v #6298 > > │ -00:00:35 v #6299 > > ................................................................................ -00:00:35 v #6300 > > ................................................................................ -00:00:35 v #6301 > > │ -00:00:35 v #6302 > > ................................................................................ -00:00:35 v #6303 > > ................................................................................ -00:00:35 v #6304 > > │ -00:00:35 v #6305 > > ................................................................................ -00:00:35 v #6306 > > ................................................................................ -00:00:35 v #6307 > > │ -00:00:35 v #6308 > > │ -00:00:35 v #6309 > > ................................................................................ -00:00:35 v #6310 > > ................................................................................ -00:00:35 v #6311 > > │ -00:00:35 v #6312 > > ................................................................................ -00:00:35 v #6313 > > ................................................................................ -00:00:35 v #6314 > > │ -00:00:35 v #6315 > > ................................................................................ -00:00:35 v #6316 > > ................................................................................ -00:00:35 v #6317 > > │ -00:00:35 v #6318 > > ................................................................................ -00:00:35 v #6319 > > ................................................................................ -00:00:35 v #6320 > > │ -00:00:35 v #6321 > > ................................................................................ -00:00:35 v #6322 > > ................................................................................ -00:00:35 v #6323 > > │ -00:00:35 v #6324 > > ................................................................................ -00:00:35 v #6325 > > ................................................................................ -00:00:35 v #6326 > > │ -00:00:35 v #6327 > > ................................................................................ -00:00:35 v #6328 > > ................................................................................ -00:00:35 v #6329 > > │ -00:00:35 v #6330 > > ...........................................;/<.................................. -00:00:35 v #6331 > > ................................................................................ -00:00:35 v #6332 > > │ -00:00:35 v #6333 > > .........................................;;////<................................ -00:00:35 v #6334 > > ................................................................................ -00:00:35 v #6335 > > │ -00:00:35 v #6336 > > .......................................;;////////<.............................. -00:00:35 v #6337 > > ................................................................................ -00:00:35 v #6338 > > │ -00:00:35 v #6339 > > .....................................;;////////////<............................ -00:00:35 v #6340 > > ................................................................................ -00:00:35 v #6341 > > │ -00:00:35 v #6342 > > ...................................;;;///////////////<.......................... -00:00:35 v #6343 > > ................................................................................ -00:00:35 v #6344 > > │ -00:00:35 v #6345 > > .................................;;////////////////////<........................ -00:00:35 v #6346 > > ................................................................................ -00:00:35 v #6347 > > │ -00:00:35 v #6348 > > ................................;;///////////////////////<...................... -00:00:35 v #6349 > > ................................................................................ -00:00:35 v #6350 > > │ -00:00:35 v #6351 > > ..............................;;///////////////////////////<.................... -00:00:35 v #6352 > > ................................................................................ -00:00:35 v #6353 > > │ -00:00:35 v #6354 > > ............................;;///////////////////////////////<.................. -00:00:35 v #6355 > > ..........;;//.................................................................. -00:00:35 v #6356 > > │ -00:00:35 v #6357 > > ..........................;;;//////////////////////////////////................. -00:00:35 v #6358 > > .......;;;//////................................................................ -00:00:35 v #6359 > > │ -00:00:35 v #6360 > > .........................;;//////////////////////////////////////............... -00:00:35 v #6361 > > .....;;;//////////.............................................................. -00:00:35 v #6362 > > │ -00:00:35 v #6363 > > .......................;;//////////////////////////////////////////<............ -00:00:35 v #6364 > > ...;;;;/////////////....................;/...................................... -00:00:35 v #6365 > > │ -00:00:35 v #6366 > > .....................;;//////////////////////////////////////////////........... -00:00:35 v #6367 > > .;;;;/////////////////...............;;;////.................................... -00:00:35 v #6368 > > │ -00:00:35 v #6369 > > ...................;;;///////////////////////////////////////////////........... -00:00:35 v #6370 > > ;;;;////////////////////...........;;;////////.................................. -00:00:35 v #6371 > > │ -00:00:35 v #6372 > > ..................;;>>>>////////////////////////////////////////////..........;; -00:00:35 v #6373 > > ;;;>////////////////////..........;;;//////////................................. -00:00:35 v #6374 > > │ -00:00:35 v #6375 > > ................;;>>>>>>>>////////////////////////////////////////...........;;; -00:00:35 v #6376 > > >>>>>>/////////////////..........;;>>>>///////.................................. -00:00:35 v #6377 > > │ -00:00:35 v #6378 > > ..............;;>>>>>>>>>>>>/////////////////////////////////////...........;>>> -00:00:35 v #6379 > > >>>>>>>>/////////////.............>>>>>>>>///................................... -00:00:35 v #6380 > > │ -00:00:35 v #6381 > > ..............>>>>>>>>>>>>>>>>>/////////////////////////////////...............> -00:00:35 v #6382 > > >>>>>>>>>>//////////................\>>>>>>/.................................... -00:00:35 v #6383 > > │ -00:00:35 v #6384 > > ................\>>>>>>>>>>>>>>>>//////////////////////////////................. -00:00:35 v #6385 > > .>>>>>>>>>>>///////....................=........................................ -00:00:35 v #6386 > > │ -00:00:35 v #6387 > > ...................>>>>>>>>>>>>>>>>///////////////////////////.................. -00:00:35 v #6388 > > ...>>>>>>>>>>>>///.............................................................. -00:00:35 v #6389 > > │ -00:00:35 v #6390 > > .....................\>>>>>>>>>>>>>>>>///////////////////////................... -00:00:35 v #6391 > > ......>>>>>>>>>>................................................................ -00:00:35 v #6392 > > │ -00:00:35 v #6393 > > ........................>>>>>>>>>>>>>>>>////////////////////.................... -00:00:35 v #6394 > > ................................................................................ -00:00:35 v #6395 > > │ -00:00:35 v #6396 > > ..........................>>>>>>>>>>>>>>>>/////////////////..................... -00:00:35 v #6397 > > ................................................................................ -00:00:35 v #6398 > > │ -00:00:35 v #6399 > > .............................>>>>>>>>>>>>>>>>/////////////...................... -00:00:35 v #6400 > > ................................................................................ -00:00:35 v #6401 > > │ -00:00:35 v #6402 > > ...............................>>>>>>>>>>>>>>>>/////////........................ -00:00:35 v #6403 > > ................................................................................ -00:00:35 v #6404 > > │ -00:00:35 v #6405 > > ..................................>>>>>>>>>>>>>>>>/////......................... -00:00:35 v #6406 > > ................................................................................ -00:00:35 v #6407 > > │ -00:00:35 v #6408 > > ....................................=>>>>>>>>>>>>>>>//.......................... -00:00:35 v #6409 > > ................................................................................ -00:00:35 v #6410 > > │ -00:00:35 v #6411 > > .................................................>>>>........................... -00:00:35 v #6412 > > ................................................................................ -00:00:35 v #6413 > > │ -00:00:35 v #6414 > > ................................................................................ -00:00:35 v #6415 > > ................................................................................ -00:00:35 v #6416 > > │ -00:00:35 v #6417 > > ................................................................................ -00:00:35 v #6418 > > ................................................................................ -00:00:35 v #6419 > > │ -00:00:35 v #6420 > > ................................................................................ -00:00:35 v #6421 > > ................................................................................ -00:00:35 v #6422 > > │ -00:00:35 v #6423 > > ................................................................................ -00:00:35 v #6424 > > ................................................................................ -00:00:35 v #6425 > > │ -00:00:35 v #6426 > > ................................................................................ -00:00:35 v #6427 > > ................................................................................ -00:00:35 v #6428 > > │ -00:00:35 v #6429 > > ................................................................................ -00:00:35 v #6430 > > ................................................................................ -00:00:35 v #6431 > > │ -00:00:35 v #6432 > > ................................................................................ -00:00:35 v #6433 > > ................................................................................ -00:00:35 v #6434 > > │ -00:00:35 v #6435 > > ................................................................................ -00:00:35 v #6436 > > ................................................................................ -00:00:35 v #6437 > > │ -00:00:35 v #6438 > > ................................................................................ -00:00:35 v #6439 > > ................................................................................ -00:00:35 v #6440 > > │ -00:00:35 v #6441 > > │ -00:00:35 v #6442 > > ................................................................................ -00:00:35 v #6443 > > ................................................................................ -00:00:35 v #6444 > > │ -00:00:35 v #6445 > > ................................................................................ -00:00:35 v #6446 > > ................................................................................ -00:00:35 v #6447 > > │ -00:00:35 v #6448 > > ................................................................................ -00:00:35 v #6449 > > ................................................................................ -00:00:35 v #6450 > > │ -00:00:35 v #6451 > > ................................................................................ -00:00:35 v #6452 > > ................................................................................ -00:00:35 v #6453 > > │ -00:00:35 v #6454 > > ................................................................................ -00:00:35 v #6455 > > ................................................................................ -00:00:35 v #6456 > > │ -00:00:35 v #6457 > > ................................................................................ -00:00:35 v #6458 > > ................................................................................ -00:00:35 v #6459 > > │ -00:00:35 v #6460 > > ................................................................................ -00:00:35 v #6461 > > ................................................................................ -00:00:35 v #6462 > > │ -00:00:35 v #6463 > > ..........................................;//................................... -00:00:35 v #6464 > > ................................................................................ -00:00:35 v #6465 > > │ -00:00:35 v #6466 > > ........................................;;/////................................. -00:00:35 v #6467 > > ................................................................................ -00:00:35 v #6468 > > │ -00:00:35 v #6469 > > ......................................;;/////////............................... -00:00:35 v #6470 > > ................................................................................ -00:00:35 v #6471 > > │ -00:00:35 v #6472 > > ....................................;;;////////////............................. -00:00:35 v #6473 > > ................................................................................ -00:00:35 v #6474 > > │ -00:00:35 v #6475 > > ..................................;;;////////////////........................... -00:00:35 v #6476 > > ................................................................................ -00:00:35 v #6477 > > │ -00:00:35 v #6478 > > ................................;;;;///////////////////<........................ -00:00:35 v #6479 > > ................................................................................ -00:00:35 v #6480 > > │ -00:00:35 v #6481 > > ..............................;;;;///////////////////////<...................... -00:00:35 v #6482 > > ................................................................................ -00:00:35 v #6483 > > │ -00:00:35 v #6484 > > .............................;;;;//////////////////////////<.................... -00:00:35 v #6485 > > ................................................................................ -00:00:35 v #6486 > > │ -00:00:35 v #6487 > > ...........................;;;;///////////////////////////////.................. -00:00:35 v #6488 > > .........;;;//.................................................................. -00:00:35 v #6489 > > │ -00:00:35 v #6490 > > ..........................;;;;//////////////////////////////////................ -00:00:35 v #6491 > > ......;;;;//////................................................................ -00:00:35 v #6492 > > │ -00:00:35 v #6493 > > ........................;;;;//////////////////////////////////////.............. -00:00:35 v #6494 > > ....;;;;;/////////.............................................................. -00:00:35 v #6495 > > │ -00:00:35 v #6496 > > ......................;;;;;/////////////////////////////////////////............ -00:00:35 v #6497 > > ...;;;;/////////////<..................<;<...................................... -00:00:35 v #6498 > > │ -00:00:35 v #6499 > > .....................;;;;///////////////////////////////////////////............ -00:00:35 v #6500 > > .;;;;;/////////////////..............;;;////.................................... -00:00:35 v #6501 > > │ -00:00:35 v #6502 > > ...................;;;;;////////////////////////////////////////////............ -00:00:35 v #6503 > > ;;;;////////////////////...........;;;;///////.................................. -00:00:35 v #6504 > > │ -00:00:35 v #6505 > > ..................;;;;;>///////////////////////////////////////////...........;; -00:00:35 v #6506 > > ;;;>////////////////////..........;;;//////////................................. -00:00:35 v #6507 > > │ -00:00:35 v #6508 > > ................;;;;;>>>>>////////////////////////////////////////...........;;; -00:00:35 v #6509 > > ;;>>>>/////////////////..........;;;>>>>//////.................................. -00:00:35 v #6510 > > │ -00:00:35 v #6511 > > ...............;;;>>>>>>>>>>>////////////////////////////////////...........;;>> -00:00:35 v #6512 > > >>>>>>>>>/////////////............>>>>>>>>///................................... -00:00:35 v #6513 > > │ -00:00:35 v #6514 > > .............;;;>>>>>>>>>>>>>>>>////////////////////////////////..............>> -00:00:35 v #6515 > > >>>>>>>>>>>/////////................>>>>>>>/.................................... -00:00:35 v #6516 > > │ -00:00:35 v #6517 > > ..............\>>>>>>>>>>>>>>>>>>>/////////////////////////////................. -00:00:35 v #6518 > > .>>>>>>>>>>>>>/////....................>........................................ -00:00:35 v #6519 > > │ -00:00:35 v #6520 > > .................>>>>>>>>>>>>>>>>>>>>/////////////////////////.................. -00:00:35 v #6521 > > ...>>>>>>>>>>>>>//.............................................................. -00:00:35 v #6522 > > │ -00:00:35 v #6523 > > ....................>>>>>>>>>>>>>>>>>>>>/////////////////////................... -00:00:35 v #6524 > > ......>>>>>>>>>>>............................................................... -00:00:35 v #6525 > > │ -00:00:35 v #6526 > > .......................>>>>>>>>>>>>>>>>>>>//////////////////.................... -00:00:35 v #6527 > > ................................................................................ -00:00:35 v #6528 > > │ -00:00:35 v #6529 > > ..........................>>>>>>>>>>>>>>>>>>>//////////////..................... -00:00:35 v #6530 > > ................................................................................ -00:00:35 v #6531 > > │ -00:00:35 v #6532 > > ............................>>>>>>>>>>>>>>>>>>>>///////////..................... -00:00:35 v #6533 > > ................................................................................ -00:00:35 v #6534 > > │ -00:00:35 v #6535 > > ...............................>>>>>>>>>>>>>>>>>>>////////...................... -00:00:35 v #6536 > > ................................................................................ -00:00:35 v #6537 > > │ -00:00:35 v #6538 > > ..................................>>>>>>>>>>>>>>>>>>>////....................... -00:00:35 v #6539 > > ................................................................................ -00:00:35 v #6540 > > │ -00:00:35 v #6541 > > .....................................>>>>>>>>>>>>>>>>>>/........................ -00:00:35 v #6542 > > ................................................................................ -00:00:35 v #6543 > > │ -00:00:35 v #6544 > > ................................................................................ -00:00:35 v #6545 > > ................................................................................ -00:00:35 v #6546 > > │ -00:00:35 v #6547 > > ................................................................................ -00:00:35 v #6548 > > ................................................................................ -00:00:35 v #6549 > > │ -00:00:35 v #6550 > > ................................................................................ -00:00:35 v #6551 > > ................................................................................ -00:00:35 v #6552 > > │ -00:00:35 v #6553 > > ................................................................................ -00:00:35 v #6554 > > ................................................................................ -00:00:35 v #6555 > > │ -00:00:35 v #6556 > > ................................................................................ -00:00:35 v #6557 > > ................................................................................ -00:00:35 v #6558 > > │ -00:00:35 v #6559 > > ................................................................................ -00:00:35 v #6560 > > ................................................................................ -00:00:35 v #6561 > > │ -00:00:35 v #6562 > > ................................................................................ -00:00:35 v #6563 > > ................................................................................ -00:00:35 v #6564 > > │ -00:00:35 v #6565 > > ................................................................................ -00:00:35 v #6566 > > ................................................................................ -00:00:35 v #6567 > > │ -00:00:35 v #6568 > > ................................................................................ -00:00:35 v #6569 > > ................................................................................ -00:00:35 v #6570 > > │ -00:00:35 v #6571 > > ................................................................................ -00:00:35 v #6572 > > ................................................................................ -00:00:35 v #6573 > > │ -00:00:35 v #6574 > > │ -00:00:35 v #6575 > > ................................................................................ -00:00:35 v #6576 > > ................................................................................ -00:00:35 v #6577 > > │ -00:00:35 v #6578 > > ................................................................................ -00:00:35 v #6579 > > ................................................................................ -00:00:35 v #6580 > > │ -00:00:35 v #6581 > > ................................................................................ -00:00:35 v #6582 > > ................................................................................ -00:00:35 v #6583 > > │ -00:00:35 v #6584 > > ................................................................................ -00:00:35 v #6585 > > ................................................................................ -00:00:35 v #6586 > > │ -00:00:35 v #6587 > > ................................................................................ -00:00:35 v #6588 > > ................................................................................ -00:00:35 v #6589 > > │ -00:00:35 v #6590 > > ................................................................................ -00:00:35 v #6591 > > ................................................................................ -00:00:35 v #6592 > > │ -00:00:35 v #6593 > > ................................................................................ -00:00:35 v #6594 > > ................................................................................ -00:00:35 v #6595 > > │ -00:00:35 v #6596 > > .........................................;;/.................................... -00:00:35 v #6597 > > ................................................................................ -00:00:35 v #6598 > > │ -00:00:35 v #6599 > > .......................................;;/////<................................. -00:00:35 v #6600 > > ................................................................................ -00:00:35 v #6601 > > │ -00:00:35 v #6602 > > .....................................;;;/////////............................... -00:00:35 v #6603 > > ................................................................................ -00:00:35 v #6604 > > │ -00:00:35 v #6605 > > ...................................;;;;////////////............................. -00:00:35 v #6606 > > ................................................................................ -00:00:35 v #6607 > > │ -00:00:35 v #6608 > > .................................;;;;;///////////////........................... -00:00:35 v #6609 > > ................................................................................ -00:00:35 v #6610 > > │ -00:00:35 v #6611 > > ...............................;;;;;///////////////////<........................ -00:00:35 v #6612 > > ................................................................................ -00:00:35 v #6613 > > │ -00:00:35 v #6614 > > .............................;;;;;;//////////////////////<...................... -00:00:35 v #6615 > > ................................................................................ -00:00:35 v #6616 > > │ -00:00:35 v #6617 > > ...........................;;;;;;;//////////////////////////.................... -00:00:35 v #6618 > > ................................................................................ -00:00:35 v #6619 > > │ -00:00:35 v #6620 > > ..........................;;;;;;//////////////////////////////.................. -00:00:35 v #6621 > > .........;;//<.................................................................. -00:00:35 v #6622 > > │ -00:00:35 v #6623 > > .........................;;;;;;/////////////////////////////////................ -00:00:35 v #6624 > > ......;;;;//////................................................................ -00:00:35 v #6625 > > │ -00:00:35 v #6626 > > .......................;;;;;;;////////////////////////////////////<............. -00:00:35 v #6627 > > ...;;;;;;/////////<............................................................. -00:00:35 v #6628 > > │ -00:00:35 v #6629 > > ......................;;;;;;;///////////////////////////////////////............ -00:00:35 v #6630 > > ..;;;;;//////////////..................;;....................................... -00:00:35 v #6631 > > │ -00:00:35 v #6632 > > .....................;;;;;;////////////////////////////////////////............. -00:00:35 v #6633 > > .;;;;;;////////////////.............;;;;////.................................... -00:00:35 v #6634 > > │ -00:00:35 v #6635 > > ...................;;;;;;;////////////////////////////////////////.............. -00:00:35 v #6636 > > ;;;;;;//////////////////...........;;;;///////<................................. -00:00:35 v #6637 > > │ -00:00:35 v #6638 > > ..................;;;;;;;/////////////////////////////////////////............\; -00:00:35 v #6639 > > ;;;;///////////////////...........;;;;/////////................................. -00:00:35 v #6640 > > │ -00:00:35 v #6641 > > .................;;;;;;;>>>//////////////////////////////////////............;;; -00:00:35 v #6642 > > ;;;>>>>///////////////...........;;;;>>>//////.................................. -00:00:35 v #6643 > > │ -00:00:35 v #6644 > > ...............;;;;;;>>>>>>>>>>/////////////////////////////////............;;;> -00:00:35 v #6645 > > >>>>>>>>>////////////............\>>>>>>>>>//................................... -00:00:35 v #6646 > > │ -00:00:35 v #6647 > > ..............;;;;>>>>>>>>>>>>>>>///////////////////////////////.............>>> -00:00:35 v #6648 > > >>>>>>>>>>>>/////////...............>>>>>>>>.................................... -00:00:35 v #6649 > > │ -00:00:35 v #6650 > > .............;;>>>>>>>>>>>>>>>>>>>>>///////////////////////////................. -00:00:35 v #6651 > > >>>>>>>>>>>>>>>/////...................>........................................ -00:00:35 v #6652 > > │ -00:00:35 v #6653 > > ...............>>>>>>>>>>>>>>>>>>>>>>>>///////////////////////.................. -00:00:35 v #6654 > > ...>>>>>>>>>>>>>>>/............................................................. -00:00:35 v #6655 > > │ -00:00:35 v #6656 > > ..................>>>>>>>>>>>>>>>>>>>>>>>>////////////////////.................. -00:00:35 v #6657 > > ......>>>>>>>>>>>/.............................................................. -00:00:35 v #6658 > > │ -00:00:35 v #6659 > > .....................>>>>>>>>>>>>>>>>>>>>>>>>////////////////................... -00:00:35 v #6660 > > ................................................................................ -00:00:35 v #6661 > > │ -00:00:35 v #6662 > > ........................>>>>>>>>>>>>>>>>>>>>>>>>////////////.................... -00:00:35 v #6663 > > ................................................................................ -00:00:35 v #6664 > > │ -00:00:35 v #6665 > > ............................>>>>>>>>>>>>>>>>>>>>>>>/////////.................... -00:00:35 v #6666 > > ................................................................................ -00:00:35 v #6667 > > │ -00:00:35 v #6668 > > ...............................>>>>>>>>>>>>>>>>>>>>>>>/////..................... -00:00:35 v #6669 > > ................................................................................ -00:00:35 v #6670 > > │ -00:00:35 v #6671 > > ..................................>>>>>>>>>>>>>>>>>>>>>>//...................... -00:00:35 v #6672 > > ................................................................................ -00:00:35 v #6673 > > │ -00:00:35 v #6674 > > .....................................>>>>>>>>>>>>>>>>>>>>/...................... -00:00:35 v #6675 > > ................................................................................ -00:00:35 v #6676 > > │ -00:00:35 v #6677 > > ................................................................................ -00:00:35 v #6678 > > ................................................................................ -00:00:35 v #6679 > > │ -00:00:35 v #6680 > > ................................................................................ -00:00:35 v #6681 > > ................................................................................ -00:00:35 v #6682 > > │ -00:00:35 v #6683 > > ................................................................................ -00:00:35 v #6684 > > ................................................................................ -00:00:35 v #6685 > > │ -00:00:35 v #6686 > > ................................................................................ -00:00:35 v #6687 > > ................................................................................ -00:00:35 v #6688 > > │ -00:00:35 v #6689 > > ................................................................................ -00:00:35 v #6690 > > ................................................................................ -00:00:35 v #6691 > > │ -00:00:35 v #6692 > > ................................................................................ -00:00:35 v #6693 > > ................................................................................ -00:00:35 v #6694 > > │ -00:00:35 v #6695 > > ................................................................................ -00:00:35 v #6696 > > ................................................................................ -00:00:35 v #6697 > > │ -00:00:35 v #6698 > > ................................................................................ -00:00:35 v #6699 > > ................................................................................ -00:00:35 v #6700 > > │ -00:00:35 v #6701 > > ................................................................................ -00:00:35 v #6702 > > ................................................................................ -00:00:35 v #6703 > > │ -00:00:35 v #6704 > > ................................................................................ -00:00:35 v #6705 > > ................................................................................ -00:00:35 v #6706 > > │ -00:00:35 v #6707 > > │ -00:00:35 v #6708 > > ................................................................................ -00:00:35 v #6709 > > ................................................................................ -00:00:35 v #6710 > > │ -00:00:35 v #6711 > > ................................................................................ -00:00:35 v #6712 > > ................................................................................ -00:00:35 v #6713 > > │ -00:00:35 v #6714 > > ................................................................................ -00:00:35 v #6715 > > ................................................................................ -00:00:35 v #6716 > > │ -00:00:35 v #6717 > > ................................................................................ -00:00:35 v #6718 > > ................................................................................ -00:00:35 v #6719 > > │ -00:00:35 v #6720 > > ................................................................................ -00:00:35 v #6721 > > ................................................................................ -00:00:35 v #6722 > > │ -00:00:35 v #6723 > > ................................................................................ -00:00:35 v #6724 > > ................................................................................ -00:00:35 v #6725 > > │ -00:00:35 v #6726 > > ................................................................................ -00:00:35 v #6727 > > ................................................................................ -00:00:35 v #6728 > > │ -00:00:35 v #6729 > > ........................................;;/<.................................... -00:00:35 v #6730 > > ................................................................................ -00:00:35 v #6731 > > │ -00:00:35 v #6732 > > ......................................;;;/////.................................. -00:00:35 v #6733 > > ................................................................................ -00:00:35 v #6734 > > │ -00:00:35 v #6735 > > ....................................;;;;////////................................ -00:00:35 v #6736 > > ................................................................................ -00:00:35 v #6737 > > │ -00:00:35 v #6738 > > ..................................;;;;;////////////............................. -00:00:35 v #6739 > > ................................................................................ -00:00:35 v #6740 > > │ -00:00:35 v #6741 > > ................................;;;;;;///////////////........................... -00:00:35 v #6742 > > ................................................................................ -00:00:35 v #6743 > > │ -00:00:35 v #6744 > > ..............................;;;;;;;//////////////////......................... -00:00:35 v #6745 > > ................................................................................ -00:00:35 v #6746 > > │ -00:00:35 v #6747 > > ............................;;;;;;;;//////////////////////...................... -00:00:35 v #6748 > > ................................................................................ -00:00:35 v #6749 > > │ -00:00:35 v #6750 > > ..........................;;;;;;;;//////////////////////////.................... -00:00:35 v #6751 > > ................................................................................ -00:00:35 v #6752 > > │ -00:00:35 v #6753 > > .........................;;;;;;;;/////////////////////////////<................. -00:00:35 v #6754 > > ........;;;//................................................................... -00:00:35 v #6755 > > │ -00:00:35 v #6756 > > ........................;;;;;;;;////////////////////////////////<............... -00:00:35 v #6757 > > .....;;;;;//////................................................................ -00:00:35 v #6758 > > │ -00:00:35 v #6759 > > .......................;;;;;;;;////////////////////////////////////............. -00:00:35 v #6760 > > ..<;;;;;;/////////<............................................................. -00:00:35 v #6761 > > │ -00:00:35 v #6762 > > .....................\;;;;;;;;/////////////////////////////////////............. -00:00:35 v #6763 > > ..;;;;;;/////////////..................;;<...................................... -00:00:35 v #6764 > > │ -00:00:35 v #6765 > > ....................;;;;;;;;;/////////////////////////////////////.............. -00:00:35 v #6766 > > \;;;;;;/////////////////............;;;;////.................................... -00:00:35 v #6767 > > │ -00:00:35 v #6768 > > ...................;;;;;;;;;//////////////////////////////////////.............. -00:00:35 v #6769 > > ;;;;;;/////////////////............;;;;////////................................. -00:00:35 v #6770 > > │ -00:00:35 v #6771 > > ..................;;;;;;;;;//////////////////////////////////////.............\; -00:00:35 v #6772 > > ;;;;;//////////////////...........;;;;/////////................................. -00:00:35 v #6773 > > │ -00:00:35 v #6774 > > .................;;;;;;;;;;>/////////////////////////////////////............\;; -00:00:35 v #6775 > > ;;;;;>>///////////////...........;;;;;>>>/////.................................. -00:00:35 v #6776 > > │ -00:00:35 v #6777 > > ................;;;;;;;;>>>>>>>>////////////////////////////////............\;;; -00:00:35 v #6778 > > ;>>>>>>>>>////////////...........;>>>>>>>>>//................................... -00:00:35 v #6779 > > │ -00:00:35 v #6780 > > ...............;;;;;;>>>>>>>>>>>>>>/////////////////////////////............;>>> -00:00:35 v #6781 > > >>>>>>>>>>>>>////////...............>>>>>>>>/................................... -00:00:35 v #6782 > > │ -00:00:35 v #6783 > > ..............;;;;>>>>>>>>>>>>>>>>>>>>/////////////////////////................> -00:00:35 v #6784 > > >>>>>>>>>>>>>>>>////...................=>....................................... -00:00:35 v #6785 > > │ -00:00:35 v #6786 > > .............;>>>>>>>>>>>>>>>>>>>>>>>>>>>//////////////////////................. -00:00:35 v #6787 > > ..\>>>>>>>>>>>>>>>>............................................................. -00:00:35 v #6788 > > │ -00:00:35 v #6789 > > ................>>>>>>>>>>>>>>>>>>>>>>>>>>>>//////////////////.................. -00:00:35 v #6790 > > ......>>>>>>>>>=>............................................................... -00:00:35 v #6791 > > │ -00:00:35 v #6792 > > ....................>>>>>>>>>>>>>>>>>>>>>>>>>>>>//////////////.................. -00:00:35 v #6793 > > ................................................................................ -00:00:35 v #6794 > > │ -00:00:35 v #6795 > > .......................>>>>>>>>>>>>>>>>>>>>>>>>>>>///////////................... -00:00:35 v #6796 > > ................................................................................ -00:00:35 v #6797 > > │ -00:00:35 v #6798 > > ...........................>>>>>>>>>>>>>>>>>>>>>>>>>>>///////................... -00:00:35 v #6799 > > ................................................................................ -00:00:35 v #6800 > > │ -00:00:35 v #6801 > > ..............................>>>>>>>>>>>>>>>>>>>>>>>>>>>///.................... -00:00:35 v #6802 > > ................................................................................ -00:00:35 v #6803 > > │ -00:00:35 v #6804 > > ..................................>>>>>>>>>>>>>>>>>>>>>>>>>/.................... -00:00:35 v #6805 > > ................................................................................ -00:00:35 v #6806 > > │ -00:00:35 v #6807 > > ......................................>>>>>=>=>>................................ -00:00:35 v #6808 > > ................................................................................ -00:00:35 v #6809 > > │ -00:00:35 v #6810 > > ................................................................................ -00:00:35 v #6811 > > ................................................................................ -00:00:35 v #6812 > > │ -00:00:35 v #6813 > > ................................................................................ -00:00:35 v #6814 > > ................................................................................ -00:00:35 v #6815 > > │ -00:00:35 v #6816 > > ................................................................................ -00:00:35 v #6817 > > ................................................................................ -00:00:35 v #6818 > > │ -00:00:35 v #6819 > > ................................................................................ -00:00:35 v #6820 > > ................................................................................ -00:00:35 v #6821 > > │ -00:00:35 v #6822 > > ................................................................................ -00:00:35 v #6823 > > ................................................................................ -00:00:35 v #6824 > > │ -00:00:35 v #6825 > > ................................................................................ -00:00:35 v #6826 > > ................................................................................ -00:00:35 v #6827 > > │ -00:00:35 v #6828 > > ................................................................................ -00:00:35 v #6829 > > ................................................................................ -00:00:35 v #6830 > > │ -00:00:35 v #6831 > > ................................................................................ -00:00:35 v #6832 > > ................................................................................ -00:00:35 v #6833 > > │ -00:00:35 v #6834 > > ................................................................................ -00:00:35 v #6835 > > ................................................................................ -00:00:35 v #6836 > > │ -00:00:35 v #6837 > > ................................................................................ -00:00:35 v #6838 > > ................................................................................ -00:00:35 v #6839 > > │ -00:00:35 v #6840 > > │ -00:00:35 v #6841 > > ................................................................................ -00:00:35 v #6842 > > ................................................................................ -00:00:35 v #6843 > > │ -00:00:35 v #6844 > > ................................................................................ -00:00:35 v #6845 > > ................................................................................ -00:00:35 v #6846 > > │ -00:00:35 v #6847 > > ................................................................................ -00:00:35 v #6848 > > ................................................................................ -00:00:35 v #6849 > > │ -00:00:35 v #6850 > > ................................................................................ -00:00:35 v #6851 > > ................................................................................ -00:00:35 v #6852 > > │ -00:00:35 v #6853 > > ................................................................................ -00:00:35 v #6854 > > ................................................................................ -00:00:35 v #6855 > > │ -00:00:35 v #6856 > > ................................................................................ -00:00:35 v #6857 > > ................................................................................ -00:00:35 v #6858 > > │ -00:00:35 v #6859 > > ................................................................................ -00:00:35 v #6860 > > ................................................................................ -00:00:35 v #6861 > > │ -00:00:35 v #6862 > > .......................................;;//..................................... -00:00:35 v #6863 > > ................................................................................ -00:00:35 v #6864 > > │ -00:00:35 v #6865 > > .....................................;;;/////<.................................. -00:00:35 v #6866 > > ................................................................................ -00:00:35 v #6867 > > │ -00:00:35 v #6868 > > ...................................;;;;/////////................................ -00:00:35 v #6869 > > ................................................................................ -00:00:35 v #6870 > > │ -00:00:35 v #6871 > > .................................;;;;;;///////////<............................. -00:00:35 v #6872 > > ................................................................................ -00:00:35 v #6873 > > │ -00:00:35 v #6874 > > ...............................;;;;;;;///////////////........................... -00:00:35 v #6875 > > ................................................................................ -00:00:35 v #6876 > > │ -00:00:35 v #6877 > > .............................;;;;;;;;//////////////////......................... -00:00:35 v #6878 > > ................................................................................ -00:00:35 v #6879 > > │ -00:00:35 v #6880 > > ...........................;;;;;;;;;//////////////////////...................... -00:00:35 v #6881 > > ................................................................................ -00:00:35 v #6882 > > │ -00:00:35 v #6883 > > .........................;;;;;;;;;;/////////////////////////.................... -00:00:35 v #6884 > > ................................................................................ -00:00:35 v #6885 > > │ -00:00:35 v #6886 > > ........................;;;;;;;;;;;///////////////////////////<................. -00:00:35 v #6887 > > ........;;;//................................................................... -00:00:35 v #6888 > > │ -00:00:35 v #6889 > > .......................;;;;;;;;;;;///////////////////////////////............... -00:00:35 v #6890 > > .....;;;;;//////................................................................ -00:00:35 v #6891 > > │ -00:00:35 v #6892 > > ......................;;;;;;;;;;;/////////////////////////////////.............. -00:00:35 v #6893 > > ..;;;;;;;/////////<............................................................. -00:00:35 v #6894 > > │ -00:00:35 v #6895 > > .....................;;;;;;;;;;;//////////////////////////////////.............. -00:00:35 v #6896 > > .;;;;;;;/////////////..................;;<...................................... -00:00:35 v #6897 > > │ -00:00:35 v #6898 > > ....................;;;;;;;;;;;//////////////////////////////////............... -00:00:35 v #6899 > > ;;;;;;;;///////////////.............;;;;////<................................... -00:00:35 v #6900 > > │ -00:00:35 v #6901 > > ...................;;;;;;;;;;;;//////////////////////////////////..............; -00:00:35 v #6902 > > ;;;;;;;////////////////............;;;;////////................................. -00:00:35 v #6903 > > │ -00:00:35 v #6904 > > ..................;;;;;;;;;;;;///////////////////////////////////..............; -00:00:35 v #6905 > > ;;;;;;/////////////////...........;;;;;////////................................. -00:00:35 v #6906 > > │ -00:00:35 v #6907 > > .................;;;;;;;;;;;;///////////////////////////////////..............;; -00:00:35 v #6908 > > ;;;;;;>>//////////////...........;;;;;>>>/////.................................. -00:00:35 v #6909 > > │ -00:00:35 v #6910 > > ................;;;;;;;;;;;;>>>>>///////////////////////////////.............;;; -00:00:35 v #6911 > > ;;>>>>>>>>>///////////...........;>>>>>>>>>>//.................................. -00:00:35 v #6912 > > │ -00:00:35 v #6913 > > ...............;;;;;;;;;>>>>>>>>>>>>////////////////////////////............\;;> -00:00:35 v #6914 > > >>>>>>>>>>>>>>///////...............>>>>>>>>>................................... -00:00:35 v #6915 > > │ -00:00:35 v #6916 > > ..............;;;;;;;>>>>>>>>>>>>>>>>>>>///////////////////////...............\> -00:00:35 v #6917 > > >>>>>>>>>>>>>>>>>>///..................>=....................................... -00:00:35 v #6918 > > │ -00:00:35 v #6919 > > .............;;;;>>>>>>>>>>>>>>>>>>>>>>>>>>////////////////////................. -00:00:35 v #6920 > > ..>>>>>>>>>>>>>>>>>>............................................................ -00:00:35 v #6921 > > │ -00:00:35 v #6922 > > .............>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>/////////////////................. -00:00:35 v #6923 > > ......>>>>>>>>>>=............................................................... -00:00:35 v #6924 > > │ -00:00:35 v #6925 > > .................>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>////////////.................. -00:00:35 v #6926 > > ................................................................................ -00:00:35 v #6927 > > │ -00:00:35 v #6928 > > ......................>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>////////.................. -00:00:35 v #6929 > > ................................................................................ -00:00:35 v #6930 > > │ -00:00:35 v #6931 > > ..........................>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>/////.................. -00:00:35 v #6932 > > ................................................................................ -00:00:35 v #6933 > > │ -00:00:35 v #6934 > > ..............................>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>//.................. -00:00:35 v #6935 > > ................................................................................ -00:00:35 v #6936 > > │ -00:00:35 v #6937 > > ..................................>>>>>>>>>>>>>>>>>>>>>>>>>>>................... -00:00:35 v #6938 > > ................................................................................ -00:00:35 v #6939 > > │ -00:00:35 v #6940 > > ......................................>>>==..................................... -00:00:35 v #6941 > > ................................................................................ -00:00:35 v #6942 > > │ -00:00:35 v #6943 > > ................................................................................ -00:00:35 v #6944 > > ................................................................................ -00:00:35 v #6945 > > │ -00:00:35 v #6946 > > ................................................................................ -00:00:35 v #6947 > > ................................................................................ -00:00:35 v #6948 > > │ -00:00:35 v #6949 > > ................................................................................ -00:00:35 v #6950 > > ................................................................................ -00:00:35 v #6951 > > │ -00:00:35 v #6952 > > ................................................................................ -00:00:35 v #6953 > > ................................................................................ -00:00:35 v #6954 > > │ -00:00:35 v #6955 > > ................................................................................ -00:00:35 v #6956 > > ................................................................................ -00:00:35 v #6957 > > │ -00:00:35 v #6958 > > ................................................................................ -00:00:35 v #6959 > > ................................................................................ -00:00:35 v #6960 > > │ -00:00:35 v #6961 > > ................................................................................ -00:00:35 v #6962 > > ................................................................................ -00:00:35 v #6963 > > │ -00:00:35 v #6964 > > ................................................................................ -00:00:35 v #6965 > > ................................................................................ -00:00:35 v #6966 > > │ -00:00:35 v #6967 > > ................................................................................ -00:00:35 v #6968 > > ................................................................................ -00:00:35 v #6969 > > │ -00:00:35 v #6970 > > ................................................................................ -00:00:35 v #6971 > > ................................................................................ -00:00:35 v #6972 > > │ -00:00:35 v #6973 > > │ -00:00:35 v #6974 > > ................................................................................ -00:00:35 v #6975 > > ................................................................................ -00:00:35 v #6976 > > │ -00:00:35 v #6977 > > ................................................................................ -00:00:35 v #6978 > > ................................................................................ -00:00:35 v #6979 > > │ -00:00:35 v #6980 > > ................................................................................ -00:00:35 v #6981 > > ................................................................................ -00:00:35 v #6982 > > │ -00:00:35 v #6983 > > ................................................................................ -00:00:35 v #6984 > > ................................................................................ -00:00:35 v #6985 > > │ -00:00:35 v #6986 > > ................................................................................ -00:00:35 v #6987 > > ................................................................................ -00:00:35 v #6988 > > │ -00:00:35 v #6989 > > ................................................................................ -00:00:35 v #6990 > > ................................................................................ -00:00:35 v #6991 > > │ -00:00:35 v #6992 > > ................................................................................ -00:00:35 v #6993 > > ................................................................................ -00:00:35 v #6994 > > │ -00:00:35 v #6995 > > .......................................;;/<..................................... -00:00:35 v #6996 > > ................................................................................ -00:00:35 v #6997 > > │ -00:00:35 v #6998 > > ....................................<;;;/////................................... -00:00:35 v #6999 > > ................................................................................ -00:00:35 v #7000 > > │ -00:00:35 v #7001 > > ..................................;;;;;////////<................................ -00:00:35 v #7002 > > ................................................................................ -00:00:35 v #7003 > > │ -00:00:35 v #7004 > > ................................;;;;;;;///////////.............................. -00:00:35 v #7005 > > ................................................................................ -00:00:35 v #7006 > > │ -00:00:35 v #7007 > > ..............................;;;;;;;;//////////////<........................... -00:00:35 v #7008 > > ................................................................................ -00:00:35 v #7009 > > │ -00:00:35 v #7010 > > ............................;;;;;;;;;;/////////////////......................... -00:00:35 v #7011 > > ................................................................................ -00:00:35 v #7012 > > │ -00:00:35 v #7013 > > ..........................;;;;;;;;;;;////////////////////<...................... -00:00:35 v #7014 > > ................................................................................ -00:00:35 v #7015 > > │ -00:00:35 v #7016 > > ........................;;;;;;;;;;;;////////////////////////.................... -00:00:35 v #7017 > > ................................................................................ -00:00:35 v #7018 > > │ -00:00:35 v #7019 > > .......................;;;;;;;;;;;;;///////////////////////////................. -00:00:35 v #7020 > > ........;;///................................................................... -00:00:35 v #7021 > > │ -00:00:35 v #7022 > > ......................;;;;;;;;;;;;;//////////////////////////////............... -00:00:35 v #7023 > > .....;;;;;//////................................................................ -00:00:35 v #7024 > > │ -00:00:35 v #7025 > > .....................;;;;;;;;;;;;;;//////////////////////////////............... -00:00:35 v #7026 > > ..;;;;;;;//////////............................................................. -00:00:35 v #7027 > > │ -00:00:35 v #7028 > > ....................;;;;;;;;;;;;;;///////////////////////////////............... -00:00:35 v #7029 > > \;;;;;;;;////////////<.................;;....................................... -00:00:35 v #7030 > > │ -00:00:35 v #7031 > > ...................\;;;;;;;;;;;;;///////////////////////////////................ -00:00:35 v #7032 > > ;;;;;;;;///////////////............<;;;;////<................................... -00:00:35 v #7033 > > │ -00:00:35 v #7034 > > ...................;;;;;;;;;;;;;;///////////////////////////////...............; -00:00:35 v #7035 > > ;;;;;;;;///////////////...........\;;;;////////................................. -00:00:35 v #7036 > > │ -00:00:35 v #7037 > > ..................;;;;;;;;;;;;;;////////////////////////////////..............\; -00:00:35 v #7038 > > ;;;;;;;///////////////............;;;;;////////................................. -00:00:35 v #7039 > > │ -00:00:35 v #7040 > > .................;;;;;;;;;;;;;;;////////////////////////////////..............;; -00:00:35 v #7041 > > ;;;;;;;>//////////////...........\;;;;;>>>////.................................. -00:00:35 v #7042 > > │ -00:00:35 v #7043 > > ................;;;;;;;;;;;;;;;>>>//////////////////////////////.............;;; -00:00:35 v #7044 > > ;;;;>>>>>>>>//////////...........;;>>>>>>>>>>/.................................. -00:00:35 v #7045 > > │ -00:00:35 v #7046 > > ................;;;;;;;;;;;;>>>>>>>>>>//////////////////////////.............;;; -00:00:35 v #7047 > > >>>>>>>>>>>>>>>>/////..............\>>>>>>>>/................................... -00:00:35 v #7048 > > │ -00:00:35 v #7049 > > ...............;;;;;;;;;>>>>>>>>>>>>>>>>>>//////////////////////.............\>> -00:00:35 v #7050 > > >>>>>>>>>>>>>>>>>>>//..................\=....................................... -00:00:35 v #7051 > > │ -00:00:35 v #7052 > > ..............;;;;;;>>>>>>>>>>>>>>>>>>>>>>>>>>//////////////////................ -00:00:35 v #7053 > > .\>>>>>>>>>>>>>>>>>>/........................................................... -00:00:35 v #7054 > > │ -00:00:35 v #7055 > > .............;;;;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>/////////////................. -00:00:35 v #7056 > > ......>>>>>>>>>>................................................................ -00:00:35 v #7057 > > │ -00:00:35 v #7058 > > ...............>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>//////////................. -00:00:35 v #7059 > > ................................................................................ -00:00:35 v #7060 > > │ -00:00:35 v #7061 > > ...................\>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>//////................. -00:00:35 v #7062 > > ................................................................................ -00:00:35 v #7063 > > │ -00:00:35 v #7064 > > ........................>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>//................. -00:00:35 v #7065 > > ................................................................................ -00:00:35 v #7066 > > │ -00:00:35 v #7067 > > .............................>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>/................. -00:00:35 v #7068 > > ................................................................................ -00:00:35 v #7069 > > │ -00:00:35 v #7070 > > ..................................>>>>>>>>>>>>>>>>>>>>==........................ -00:00:35 v #7071 > > ................................................................................ -00:00:35 v #7072 > > │ -00:00:35 v #7073 > > .......................................>==...................................... -00:00:35 v #7074 > > ................................................................................ -00:00:35 v #7075 > > │ -00:00:35 v #7076 > > ................................................................................ -00:00:35 v #7077 > > ................................................................................ -00:00:35 v #7078 > > │ -00:00:35 v #7079 > > ................................................................................ -00:00:35 v #7080 > > ................................................................................ -00:00:35 v #7081 > > │ -00:00:35 v #7082 > > ................................................................................ -00:00:35 v #7083 > > ................................................................................ -00:00:35 v #7084 > > │ -00:00:35 v #7085 > > ................................................................................ -00:00:35 v #7086 > > ................................................................................ -00:00:35 v #7087 > > │ -00:00:35 v #7088 > > ................................................................................ -00:00:35 v #7089 > > ................................................................................ -00:00:35 v #7090 > > │ -00:00:35 v #7091 > > ................................................................................ -00:00:35 v #7092 > > ................................................................................ -00:00:35 v #7093 > > │ -00:00:35 v #7094 > > ................................................................................ -00:00:35 v #7095 > > ................................................................................ -00:00:35 v #7096 > > │ -00:00:35 v #7097 > > ................................................................................ -00:00:35 v #7098 > > ................................................................................ -00:00:35 v #7099 > > │ -00:00:35 v #7100 > > ................................................................................ -00:00:35 v #7101 > > ................................................................................ -00:00:35 v #7102 > > │ -00:00:35 v #7103 > > ................................................................................ -00:00:35 v #7104 > > ................................................................................ -00:00:35 v #7105 > > │ -00:00:35 v #7106 > > │ -00:00:35 v #7107 > > ................................................................................ -00:00:35 v #7108 > > ................................................................................ -00:00:35 v #7109 > > │ -00:00:35 v #7110 > > ................................................................................ -00:00:35 v #7111 > > ................................................................................ -00:00:35 v #7112 > > │ -00:00:35 v #7113 > > ................................................................................ -00:00:35 v #7114 > > ................................................................................ -00:00:35 v #7115 > > │ -00:00:35 v #7116 > > ................................................................................ -00:00:35 v #7117 > > ................................................................................ -00:00:35 v #7118 > > │ -00:00:35 v #7119 > > ................................................................................ -00:00:35 v #7120 > > ................................................................................ -00:00:35 v #7121 > > │ -00:00:35 v #7122 > > ................................................................................ -00:00:35 v #7123 > > ................................................................................ -00:00:35 v #7124 > > │ -00:00:35 v #7125 > > ................................................................................ -00:00:35 v #7126 > > ................................................................................ -00:00:35 v #7127 > > │ -00:00:35 v #7128 > > ......................................;;//...................................... -00:00:35 v #7129 > > ................................................................................ -00:00:35 v #7130 > > │ -00:00:35 v #7131 > > ....................................;;;;////.................................... -00:00:35 v #7132 > > ................................................................................ -00:00:35 v #7133 > > │ -00:00:35 v #7134 > > ..................................;;;;;////////................................. -00:00:35 v #7135 > > ................................................................................ -00:00:35 v #7136 > > │ -00:00:35 v #7137 > > ...............................<;;;;;;;///////////.............................. -00:00:35 v #7138 > > ................................................................................ -00:00:35 v #7139 > > │ -00:00:35 v #7140 > > .............................;;;;;;;;;//////////////............................ -00:00:35 v #7141 > > ................................................................................ -00:00:35 v #7142 > > │ -00:00:35 v #7143 > > ...........................;;;;;;;;;;;/////////////////......................... -00:00:35 v #7144 > > ................................................................................ -00:00:35 v #7145 > > │ -00:00:35 v #7146 > > .........................;;;;;;;;;;;;;///////////////////<...................... -00:00:35 v #7147 > > ................................................................................ -00:00:35 v #7148 > > │ -00:00:35 v #7149 > > .......................;;;;;;;;;;;;;;///////////////////////.................... -00:00:35 v #7150 > > ................................................................................ -00:00:35 v #7151 > > │ -00:00:35 v #7152 > > .....................\;;;;;;;;;;;;;;;//////////////////////////................. -00:00:35 v #7153 > > .......<;;//<................................................................... -00:00:35 v #7154 > > │ -00:00:35 v #7155 > > .....................;;;;;;;;;;;;;;;;///////////////////////////................ -00:00:35 v #7156 > > ....<;;;;;//////................................................................ -00:00:35 v #7157 > > │ -00:00:35 v #7158 > > ....................;;;;;;;;;;;;;;;;////////////////////////////................ -00:00:35 v #7159 > > ..;;;;;;;;/////////............................................................. -00:00:35 v #7160 > > │ -00:00:35 v #7161 > > ....................;;;;;;;;;;;;;;;;////////////////////////////................ -00:00:35 v #7162 > > ;;;;;;;;;/////////////.................;/....................................... -00:00:35 v #7163 > > │ -00:00:35 v #7164 > > ...................;;;;;;;;;;;;;;;;/////////////////////////////...............; -00:00:35 v #7165 > > ;;;;;;;;;/////////////.............<;;;;////<................................... -00:00:35 v #7166 > > │ -00:00:35 v #7167 > > ..................;;;;;;;;;;;;;;;;;/////////////////////////////...............; -00:00:35 v #7168 > > ;;;;;;;;//////////////............\;;;;;//////.................................. -00:00:35 v #7169 > > │ -00:00:35 v #7170 > > ..................;;;;;;;;;;;;;;;;;/////////////////////////////..............\; -00:00:35 v #7171 > > ;;;;;;;;//////////////............;;;;;///////.................................. -00:00:35 v #7172 > > │ -00:00:35 v #7173 > > .................;;;;;;;;;;;;;;;;;//////////////////////////////..............;; -00:00:35 v #7174 > > ;;;;;;;;>/////////////............;;;;;>>>////.................................. -00:00:35 v #7175 > > │ -00:00:35 v #7176 > > .................;;;;;;;;;;;;;;;;;>/////////////////////////////..............;; -00:00:35 v #7177 > > ;;;;;;>>>>>>>/////////...........;;;>>>>>>>>>/.................................. -00:00:35 v #7178 > > │ -00:00:35 v #7179 > > ................;;;;;;;;;;;;;;;;>>>>>>>/////////////////////////.............;;; -00:00:35 v #7180 > > ;;>>>>>>>>>>>>>>>/////.............\>>>>>>>>>=.................................. -00:00:35 v #7181 > > │ -00:00:35 v #7182 > > ...............;;;;;;;;;;;;;>>>>>>>>>>>>>>>/////////////////////.............;>> -00:00:35 v #7183 > > >>>>>>>>>>>>>>>>>>>>>/..................>....................................... -00:00:35 v #7184 > > │ -00:00:35 v #7185 > > ...............;;;;;;;;;>>>>>>>>>>>>>>>>>>>>>>>>////////////////................ -00:00:35 v #7186 > > .>>>>>>>>>>>>>>>>>>>/........................................................... -00:00:35 v #7187 > > │ -00:00:35 v #7188 > > ..............;;;;;;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>////////////................ -00:00:35 v #7189 > > ......>>>>>>>>>>................................................................ -00:00:35 v #7190 > > │ -00:00:35 v #7191 > > ..............;;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>////////................ -00:00:35 v #7192 > > ................................................................................ -00:00:35 v #7193 > > │ -00:00:35 v #7194 > > .................>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>////................ -00:00:35 v #7195 > > ................................................................................ -00:00:35 v #7196 > > │ -00:00:35 v #7197 > > ......................>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>................ -00:00:35 v #7198 > > ................................................................................ -00:00:35 v #7199 > > │ -00:00:35 v #7200 > > ............................>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.................. -00:00:35 v #7201 > > ................................................................................ -00:00:35 v #7202 > > │ -00:00:35 v #7203 > > ..................................>>>>>>>>>>>>>>>>>>............................ -00:00:35 v #7204 > > ................................................................................ -00:00:35 v #7205 > > │ -00:00:35 v #7206 > > .......................................>=....................................... -00:00:35 v #7207 > > ................................................................................ -00:00:35 v #7208 > > │ -00:00:35 v #7209 > > ................................................................................ -00:00:35 v #7210 > > ................................................................................ -00:00:35 v #7211 > > │ -00:00:35 v #7212 > > ................................................................................ -00:00:35 v #7213 > > ................................................................................ -00:00:35 v #7214 > > │ -00:00:35 v #7215 > > ................................................................................ -00:00:35 v #7216 > > ................................................................................ -00:00:35 v #7217 > > │ -00:00:35 v #7218 > > ................................................................................ -00:00:35 v #7219 > > ................................................................................ -00:00:35 v #7220 > > │ -00:00:35 v #7221 > > ................................................................................ -00:00:35 v #7222 > > ................................................................................ -00:00:35 v #7223 > > │ -00:00:35 v #7224 > > ................................................................................ -00:00:35 v #7225 > > ................................................................................ -00:00:35 v #7226 > > │ -00:00:35 v #7227 > > ................................................................................ -00:00:35 v #7228 > > ................................................................................ -00:00:35 v #7229 > > │ -00:00:35 v #7230 > > ................................................................................ -00:00:35 v #7231 > > ................................................................................ -00:00:35 v #7232 > > │ -00:00:35 v #7233 > > ................................................................................ -00:00:35 v #7234 > > ................................................................................ -00:00:35 v #7235 > > │ -00:00:35 v #7236 > > ................................................................................ -00:00:35 v #7237 > > ................................................................................ -00:00:35 v #7238 > > │ -00:00:35 v #7239 > > │ -00:00:35 v #7240 > > ................................................................................ -00:00:35 v #7241 > > ................................................................................ -00:00:35 v #7242 > > │ -00:00:35 v #7243 > > ................................................................................ -00:00:35 v #7244 > > ................................................................................ -00:00:35 v #7245 > > │ -00:00:35 v #7246 > > ................................................................................ -00:00:35 v #7247 > > ................................................................................ -00:00:35 v #7248 > > │ -00:00:35 v #7249 > > ................................................................................ -00:00:35 v #7250 > > ................................................................................ -00:00:35 v #7251 > > │ -00:00:35 v #7252 > > ................................................................................ -00:00:35 v #7253 > > ................................................................................ -00:00:35 v #7254 > > │ -00:00:35 v #7255 > > ................................................................................ -00:00:35 v #7256 > > ................................................................................ -00:00:35 v #7257 > > │ -00:00:35 v #7258 > > ................................................................................ -00:00:35 v #7259 > > ................................................................................ -00:00:35 v #7260 > > │ -00:00:35 v #7261 > > .....................................<;;/<...................................... -00:00:35 v #7262 > > ................................................................................ -00:00:35 v #7263 > > │ -00:00:35 v #7264 > > ...................................;;;;;///<.................................... -00:00:35 v #7265 > > ................................................................................ -00:00:35 v #7266 > > │ -00:00:35 v #7267 > > .................................;;;;;;///////<................................. -00:00:35 v #7268 > > ................................................................................ -00:00:35 v #7269 > > │ -00:00:35 v #7270 > > ...............................;;;;;;;;//////////<.............................. -00:00:35 v #7271 > > ................................................................................ -00:00:35 v #7272 > > │ -00:00:35 v #7273 > > ............................<;;;;;;;;;;/////////////............................ -00:00:35 v #7274 > > ................................................................................ -00:00:35 v #7275 > > │ -00:00:35 v #7276 > > ..........................<;;;;;;;;;;;;///////////////<......................... -00:00:35 v #7277 > > ................................................................................ -00:00:35 v #7278 > > │ -00:00:35 v #7279 > > ........................;;;;;;;;;;;;;;;//////////////////<...................... -00:00:35 v #7280 > > ................................................................................ -00:00:35 v #7281 > > │ -00:00:35 v #7282 > > ......................;;;;;;;;;;;;;;;;//////////////////////.................... -00:00:35 v #7283 > > ................................................................................ -00:00:35 v #7284 > > │ -00:00:35 v #7285 > > ....................;;;;;;;;;;;;;;;;;;////////////////////////.................. -00:00:35 v #7286 > > .......;;;//.................................................................... -00:00:35 v #7287 > > │ -00:00:35 v #7288 > > ....................;;;;;;;;;;;;;;;;;;/////////////////////////................. -00:00:35 v #7289 > > ....;;;;;;//////................................................................ -00:00:35 v #7290 > > │ -00:00:35 v #7291 > > ...................;;;;;;;;;;;;;;;;;;;/////////////////////////................. -00:00:35 v #7292 > > .<;;;;;;;;////////<............................................................. -00:00:35 v #7293 > > │ -00:00:35 v #7294 > > ...................;;;;;;;;;;;;;;;;;;;/////////////////////////................; -00:00:35 v #7295 > > ;;;;;;;;;;////////////.................;/....................................... -00:00:35 v #7296 > > │ -00:00:35 v #7297 > > ..................\;;;;;;;;;;;;;;;;;;//////////////////////////................; -00:00:35 v #7298 > > ;;;;;;;;;/////////////.............<;;;;////<................................... -00:00:35 v #7299 > > │ -00:00:35 v #7300 > > ..................;;;;;;;;;;;;;;;;;;;//////////////////////////................; -00:00:35 v #7301 > > ;;;;;;;;;/////////////............;;;;;;//////.................................. -00:00:35 v #7302 > > │ -00:00:35 v #7303 > > ..................;;;;;;;;;;;;;;;;;;;///////////////////////////..............;; -00:00:35 v #7304 > > ;;;;;;;;;/////////////............;;;;;;//////.................................. -00:00:35 v #7305 > > │ -00:00:35 v #7306 > > .................;;;;;;;;;;;;;;;;;;;;///////////////////////////..............;; -00:00:35 v #7307 > > ;;;;;;;;;>////////////............;;;;;;>>////.................................. -00:00:35 v #7308 > > │ -00:00:35 v #7309 > > .................;;;;;;;;;;;;;;;;;;;;///////////////////////////..............;; -00:00:35 v #7310 > > ;;;;;;;;>>>>/>////////............;;;>>>>>>>>>.................................. -00:00:35 v #7311 > > │ -00:00:35 v #7312 > > ................;;;;;;;;;;;;;;;;;;;;>>>>>///////////////////////.............\;; -00:00:35 v #7313 > > ;;;>>>>>>>>>>>>>/>////.............>>>>>>>>>=................................... -00:00:35 v #7314 > > │ -00:00:35 v #7315 > > ................;;;;;;;;;;;;;;;;>>>>>>>>>>>>>>//////////////////.............;;; -00:00:35 v #7316 > > >>>>>>>>>>>>>>>>>>>>>>..................=....................................... -00:00:35 v #7317 > > │ -00:00:35 v #7318 > > ...............;;;;;;;;;;;;>>>>>>>>>>>>>>>>>>>>>>>//////////////................ -00:00:35 v #7319 > > >>>>>>>>>>>>>>>>>>>>>........................................................... -00:00:35 v #7320 > > │ -00:00:35 v #7321 > > ...............;;;;;;;;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>//////////............... -00:00:35 v #7322 > > .....\>>>>>>>>=................................................................. -00:00:35 v #7323 > > │ -00:00:35 v #7324 > > ..............;;;;;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>/////............... -00:00:35 v #7325 > > ................................................................................ -00:00:35 v #7326 > > │ -00:00:35 v #7327 > > ..............;;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>/............... -00:00:35 v #7328 > > ................................................................................ -00:00:35 v #7329 > > │ -00:00:35 v #7330 > > ....................>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>............... -00:00:35 v #7331 > > ................................................................................ -00:00:35 v #7332 > > │ -00:00:35 v #7333 > > ..........................\>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>...................... -00:00:35 v #7334 > > ................................................................................ -00:00:35 v #7335 > > │ -00:00:35 v #7336 > > .................................>>>>>>>>>>>>>>>>............................... -00:00:35 v #7337 > > ................................................................................ -00:00:35 v #7338 > > │ -00:00:35 v #7339 > > ........................................=....................................... -00:00:35 v #7340 > > ................................................................................ -00:00:35 v #7341 > > │ -00:00:35 v #7342 > > ................................................................................ -00:00:35 v #7343 > > ................................................................................ -00:00:35 v #7344 > > │ -00:00:35 v #7345 > > ................................................................................ -00:00:35 v #7346 > > ................................................................................ -00:00:35 v #7347 > > │ -00:00:35 v #7348 > > ................................................................................ -00:00:35 v #7349 > > ................................................................................ -00:00:35 v #7350 > > │ -00:00:35 v #7351 > > ................................................................................ -00:00:35 v #7352 > > ................................................................................ -00:00:35 v #7353 > > │ -00:00:35 v #7354 > > ................................................................................ -00:00:35 v #7355 > > ................................................................................ -00:00:35 v #7356 > > │ -00:00:35 v #7357 > > ................................................................................ -00:00:35 v #7358 > > ................................................................................ -00:00:35 v #7359 > > │ -00:00:35 v #7360 > > ................................................................................ -00:00:35 v #7361 > > ................................................................................ -00:00:35 v #7362 > > │ -00:00:35 v #7363 > > ................................................................................ -00:00:35 v #7364 > > ................................................................................ -00:00:35 v #7365 > > │ -00:00:35 v #7366 > > ................................................................................ -00:00:35 v #7367 > > ................................................................................ -00:00:35 v #7368 > > │ -00:00:35 v #7369 > > ................................................................................ -00:00:35 v #7370 > > ................................................................................ -00:00:35 v #7371 > > │ -00:00:35 v #7372 > > │ -00:00:35 v #7373 > > ................................................................................ -00:00:35 v #7374 > > ................................................................................ -00:00:35 v #7375 > > │ -00:00:35 v #7376 > > ................................................................................ -00:00:35 v #7377 > > ................................................................................ -00:00:35 v #7378 > > │ -00:00:35 v #7379 > > ................................................................................ -00:00:35 v #7380 > > ................................................................................ -00:00:35 v #7381 > > │ -00:00:35 v #7382 > > ................................................................................ -00:00:35 v #7383 > > ................................................................................ -00:00:35 v #7384 > > │ -00:00:35 v #7385 > > ................................................................................ -00:00:35 v #7386 > > ................................................................................ -00:00:35 v #7387 > > │ -00:00:35 v #7388 > > ................................................................................ -00:00:35 v #7389 > > ................................................................................ -00:00:35 v #7390 > > │ -00:00:35 v #7391 > > ................................................................................ -00:00:35 v #7392 > > ................................................................................ -00:00:35 v #7393 > > │ -00:00:35 v #7394 > > .....................................;;//....................................... -00:00:35 v #7395 > > ................................................................................ -00:00:35 v #7396 > > │ -00:00:35 v #7397 > > ...................................;;;;////<.................................... -00:00:35 v #7398 > > ................................................................................ -00:00:35 v #7399 > > │ -00:00:35 v #7400 > > ................................<;;;;;;///////.................................. -00:00:35 v #7401 > > ................................................................................ -00:00:35 v #7402 > > │ -00:00:35 v #7403 > > ..............................<;;;;;;;;/////////<............................... -00:00:35 v #7404 > > ................................................................................ -00:00:35 v #7405 > > │ -00:00:35 v #7406 > > ............................;;;;;;;;;;;////////////<............................ -00:00:35 v #7407 > > ................................................................................ -00:00:35 v #7408 > > │ -00:00:35 v #7409 > > ..........................;;;;;;;;;;;;;///////////////<......................... -00:00:35 v #7410 > > ................................................................................ -00:00:35 v #7411 > > │ -00:00:35 v #7412 > > .......................<;;;;;;;;;;;;;;;//////////////////....................... -00:00:35 v #7413 > > ................................................................................ -00:00:35 v #7414 > > │ -00:00:35 v #7415 > > .....................;;;;;;;;;;;;;;;;;;/////////////////////.................... -00:00:35 v #7416 > > ................................................................................ -00:00:35 v #7417 > > │ -00:00:35 v #7418 > > ...................;;;;;;;;;;;;;;;;;;;;//////////////////////................... -00:00:35 v #7419 > > .......;;;//.................................................................... -00:00:35 v #7420 > > │ -00:00:35 v #7421 > > ...................;;;;;;;;;;;;;;;;;;;;///////////////////////.................. -00:00:35 v #7422 > > ....;;;;;;//////................................................................ -00:00:35 v #7423 > > │ -00:00:35 v #7424 > > ..................\;;;;;;;;;;;;;;;;;;;;///////////////////////.................. -00:00:35 v #7425 > > .;;;;;;;;;/////////............................................................. -00:00:35 v #7426 > > │ -00:00:35 v #7427 > > ..................;;;;;;;;;;;;;;;;;;;;;///////////////////////.................; -00:00:35 v #7428 > > ;;;;;;;;;;///////////..................;/....................................... -00:00:35 v #7429 > > │ -00:00:35 v #7430 > > ..................;;;;;;;;;;;;;;;;;;;;;////////////////////////................; -00:00:35 v #7431 > > ;;;;;;;;;;////////////.............<;;;;////<................................... -00:00:35 v #7432 > > │ -00:00:35 v #7433 > > ..................;;;;;;;;;;;;;;;;;;;;;////////////////////////...............\; -00:00:35 v #7434 > > ;;;;;;;;;;////////////............;;;;;;//////.................................. -00:00:35 v #7435 > > │ -00:00:35 v #7436 > > .................;;;;;;;;;;;;;;;;;;;;;;////////////////////////...............;; -00:00:35 v #7437 > > ;;;;;;;;;;////////////............;;;;;;//////.................................. -00:00:35 v #7438 > > │ -00:00:35 v #7439 > > .................;;;;;;;;;;;;;;;;;;;;;;/////////////////////////..............;; -00:00:35 v #7440 > > ;;;;;;;;;;>///////////............;;;;;;>>>///.................................. -00:00:35 v #7441 > > │ -00:00:35 v #7442 > > .................;;;;;;;;;;;;;;;;;;;;;;/////////////////////////..............;; -00:00:35 v #7443 > > ;;;;;;;;;>>>>>>///////............;;;;>>>>>>>>.................................. -00:00:35 v #7444 > > │ -00:00:35 v #7445 > > ................;;;;;;;;;;;;;;;;;;;;;;;>>>>/////////////////////..............;; -00:00:35 v #7446 > > ;;;;;;>>>>>>>>>>>>>>//.............>>>>>>>>>=................................... -00:00:35 v #7447 > > │ -00:00:35 v #7448 > > ................;;;;;;;;;;;;;;;;;;;>>>>>>>>>>>>>/////////////////.............;; -00:00:35 v #7449 > > ;;>>>>>>>>>>>>>>>>>>>>..................=....................................... -00:00:35 v #7450 > > │ -00:00:35 v #7451 > > ................;;;;;;;;;;;;;;;;>>>>>>>>>>>>>>>>>>>>>////////////..............\ -00:00:35 v #7452 > > >>>>>>>>>>>>>>>>>>>>............................................................ -00:00:35 v #7453 > > │ -00:00:35 v #7454 > > ...............\;;;;;;;;;;;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>///////............... -00:00:35 v #7455 > > .....>>>>>>>>>=................................................................. -00:00:35 v #7456 > > │ -00:00:35 v #7457 > > ...............;;;;;;;;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>///.............. -00:00:35 v #7458 > > ................................................................................ -00:00:35 v #7459 > > │ -00:00:35 v #7460 > > ...............;;;;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.............. -00:00:35 v #7461 > > ................................................................................ -00:00:35 v #7462 > > │ -00:00:35 v #7463 > > ................>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>=.................. -00:00:35 v #7464 > > ................................................................................ -00:00:35 v #7465 > > │ -00:00:35 v #7466 > > ........................\>>>>>>>>>>>>>>>>>>>>>>>>>>>>>=......................... -00:00:35 v #7467 > > ................................................................................ -00:00:35 v #7468 > > │ -00:00:35 v #7469 > > .................................\>>>>>>>>>>>>>=................................ -00:00:35 v #7470 > > ................................................................................ -00:00:35 v #7471 > > │ -00:00:35 v #7472 > > ................................................................................ -00:00:35 v #7473 > > ................................................................................ -00:00:35 v #7474 > > │ -00:00:35 v #7475 > > ................................................................................ -00:00:35 v #7476 > > ................................................................................ -00:00:35 v #7477 > > │ -00:00:35 v #7478 > > ................................................................................ -00:00:35 v #7479 > > ................................................................................ -00:00:35 v #7480 > > │ -00:00:35 v #7481 > > ................................................................................ -00:00:35 v #7482 > > ................................................................................ -00:00:35 v #7483 > > │ -00:00:35 v #7484 > > ................................................................................ -00:00:35 v #7485 > > ................................................................................ -00:00:35 v #7486 > > │ -00:00:35 v #7487 > > ................................................................................ -00:00:35 v #7488 > > ................................................................................ -00:00:35 v #7489 > > │ -00:00:35 v #7490 > > ................................................................................ -00:00:35 v #7491 > > ................................................................................ -00:00:35 v #7492 > > │ -00:00:35 v #7493 > > ................................................................................ -00:00:35 v #7494 > > ................................................................................ -00:00:35 v #7495 > > │ -00:00:35 v #7496 > > ................................................................................ -00:00:35 v #7497 > > ................................................................................ -00:00:35 v #7498 > > │ -00:00:35 v #7499 > > ................................................................................ -00:00:35 v #7500 > > ................................................................................ -00:00:35 v #7501 > > │ -00:00:35 v #7502 > > ................................................................................ -00:00:35 v #7503 > > ................................................................................ -00:00:35 v #7504 > > │ -00:00:35 v #7505 > > │ -00:00:35 v #7506 > 00:00:33 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 449170 } -00:00:35 v #7507 > 00:00:33 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/apps/spiral/temp/cube/cube.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/apps/spiral/temp/cube/cube.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:00:36 v #7508 > 00:00:35 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/apps/spiral/temp/cube/cube.dib.ipynb to html -00:00:36 v #7509 > 00:00:35 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. -00:00:36 v #7510 > 00:00:35 v #7 ! validate(nb) -00:00:37 v #7511 > 00:00:35 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 -00:00:37 v #7512 > 00:00:35 v #9 ! return _pygments_highlight( -00:00:38 v #7513 > 00:00:36 v #10 ! [NbConvertApp] Writing 800315 bytes to c:\home\git\polyglot\apps\spiral\temp\cube\cube.dib.html -00:00:38 v #7514 > 00:00:36 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 872 } -00:00:38 v #7515 > 00:00:36 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 872 } -00:00:38 v #7516 > 00:00:36 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/apps/spiral/temp/cube/cube.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/apps/spiral/temp/cube/cube.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:00:38 v #7517 > 00:00:36 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } -00:00:38 v #7518 > 00:00:36 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } -00:00:38 v #7519 > 00:00:36 d #16 spiral.run / dib / { exit_code = 0; result_length = 450101 } -00:00:38 d #7520 runtime.execute_with_options_async / { exit_code = 0; output_length = 467682 } -00:00:38 d #3 main / executeCommand / exitCode: 0 / command: ../../../../deps/spiral/workspace/target/release/spiral.exe dib --path cube.dib -00:00:38 v #5 async.run_with_timeout_async / { timeout = 100 } +00:00:00 d #1 runtime.execute_with_options_async / { file_name = ../../../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path cube.dib"; options = { command = ../../../../deps/spiral/workspace/target/release/spiral.exe dib --path cube.dib; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } +00:00:00 v #2 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "cube.dib"])) } +00:00:00 v #3 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/apps/spiral/temp/cube/cube.dib", "--output-path", "c:/home/git/polyglot/apps/spiral/temp/cube/cube.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/apps/spiral/temp/cube/cube.dib" --output-path "c:/home/git/polyglot/apps/spiral/temp/cube/cube.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } +00:00:02 v #4 > > +00:00:02 v #5 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:02 v #6 > > │ # cube +00:00:02 v #7 > > +00:00:02 v #8 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:02 v #9 > > │ ## cube +00:00:06 v #10 > > +00:00:06 v #11 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:06 v #12 > > open System +00:00:06 v #13 > > open System.Threading.Tasks +00:00:06 v #14 > > open System.Text +00:00:06 v #15 > > +00:00:06 v #16 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:06 v #17 > > let width = 160 +00:00:06 v #18 > > let height = 44 +00:00:06 v #19 > > let backgroundChar = '.' +00:00:06 v #20 > > let distanceFromCam = 100.0 +00:00:06 v #21 > > let k1 = 40.0 +00:00:06 v #22 > > let incrementSpeed = 0.6 +00:00:06 v #23 > > +00:00:06 v #24 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:06 v #25 > > │ ### get_width +00:00:08 v #26 > > +00:00:08 v #27 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:08 v #28 > > inl get_width () = +00:00:08 v #29 > > 160i32 +00:00:09 v #30 > > +00:00:09 v #31 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:09 v #32 > > │ ### get_height +00:00:09 v #33 > > +00:00:09 v #34 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:09 v #35 > > inl get_height () = +00:00:09 v #36 > > 44i32 +00:00:09 v #37 > > +00:00:09 v #38 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:09 v #39 > > │ ### get_background_char +00:00:09 v #40 > > +00:00:09 v #41 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:09 v #42 > > inl get_background_char () = +00:00:09 v #43 > > '.' +00:00:10 v #44 > > +00:00:10 v #45 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:10 v #46 > > │ ### get_distance_from_cam +00:00:10 v #47 > > +00:00:10 v #48 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:10 v #49 > > inl get_distance_from_cam () = +00:00:10 v #50 > > 100f64 +00:00:10 v #51 > > +00:00:10 v #52 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:10 v #53 > > │ ### get_k1 +00:00:10 v #54 > > +00:00:10 v #55 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:10 v #56 > > inl get_k1 () = +00:00:10 v #57 > > 40f64 +00:00:11 v #58 > > +00:00:11 v #59 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:11 v #60 > > │ ### get_increment_speed +00:00:11 v #61 > > +00:00:11 v #62 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:11 v #63 > > inl get_increment_speed () = +00:00:11 v #64 > > 0.6f64 +00:00:11 v #65 > > +00:00:11 v #66 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:11 v #67 > > │ ### rotation +00:00:11 v #68 > > +00:00:11 v #69 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:11 v #70 > > type Rotation = { a: float; b: float; c: float } +00:00:11 v #71 > > +00:00:11 v #72 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:11 v #73 > > type rotation = +00:00:11 v #74 > > { +00:00:11 v #75 > > a : f64 +00:00:11 v #76 > > b : f64 +00:00:11 v #77 > > c : f64 +00:00:11 v #78 > > } +00:00:12 v #79 > > +00:00:12 v #80 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:12 v #81 > > │ ### cube +00:00:12 v #82 > > +00:00:12 v #83 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:12 v #84 > > type Cube = { cubeWidth: float; horizontalOffset: float } +00:00:12 v #85 > > +00:00:12 v #86 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:12 v #87 > > type cube = +00:00:12 v #88 > > { +00:00:12 v #89 > > cube_width : f64 +00:00:12 v #90 > > horizontal_offset : f64 +00:00:12 v #91 > > } +00:00:12 v #92 > > +00:00:12 v #93 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:12 v #94 > > │ ### get_cubes +00:00:12 v #95 > > +00:00:12 v #96 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:12 v #97 > > let cubes = [[ +00:00:12 v #98 > > { cubeWidth = 20.0; horizontalOffset = -40.0 } +00:00:12 v #99 > > { cubeWidth = 10.0; horizontalOffset = 10.0 } +00:00:12 v #100 > > { cubeWidth = 5.0; horizontalOffset = 40.0 } +00:00:12 v #101 > > ]] +00:00:12 v #102 > > +00:00:12 v #103 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:12 v #104 > > inl get_cubes () : list cube = +00:00:12 v #105 > > [[ +00:00:12 v #106 > > { cube_width = 20; horizontal_offset = -40 } +00:00:12 v #107 > > { cube_width = 10; horizontal_offset = 10 } +00:00:12 v #108 > > { cube_width = 5; horizontal_offset = 40 } +00:00:12 v #109 > > ]] +00:00:13 v #110 > > +00:00:13 v #111 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:13 v #112 > > │ ### calculate_x +00:00:13 v #113 > > +00:00:13 v #114 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:13 v #115 > > let calculateX i j k (rot: Rotation) = +00:00:13 v #116 > > let a, b, c = rot.a, rot.b, rot.c +00:00:13 v #117 > > j * sin a * sin b * cos c - k * cos a * sin b * cos c + +00:00:13 v #118 > > j * cos a * sin c + k * sin a * sin c + i * cos b * cos c +00:00:13 v #119 > > +00:00:13 v #120 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:13 v #121 > > inl calculate_x i j k (rot : rotation) = +00:00:13 v #122 > > inl a, b, c = rot.a, rot.b, rot.c +00:00:13 v #123 > > j * sin a * sin b * cos c - k * cos a * sin b * cos c + +00:00:13 v #124 > > j * cos a * sin c + k * sin a * sin c + i * cos b * cos c +00:00:13 v #125 > > +00:00:13 v #126 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:13 v #127 > > │ ### calculate_y +00:00:13 v #128 > > +00:00:13 v #129 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:13 v #130 > > let calculateY i j k (rot: Rotation) = +00:00:13 v #131 > > let a, b, c = rot.a, rot.b, rot.c +00:00:13 v #132 > > j * cos a * cos c + k * sin a * cos c - +00:00:13 v #133 > > j * sin a * sin b * sin c + k * cos a * sin b * sin c - +00:00:13 v #134 > > i * cos b * sin c +00:00:13 v #135 > > +00:00:13 v #136 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:13 v #137 > > inl calculate_y i j k (rot : rotation) = +00:00:13 v #138 > > inl a, b, c = rot.a, rot.b, rot.c +00:00:13 v #139 > > j * cos a * cos c + k * sin a * cos c - +00:00:13 v #140 > > j * sin a * sin b * sin c + k * cos a * sin b * sin c - +00:00:13 v #141 > > i * cos b * sin c +00:00:14 v #142 > > +00:00:14 v #143 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:14 v #144 > > │ ### calculate_z +00:00:14 v #145 > > +00:00:14 v #146 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:14 v #147 > > let calculateZ i j k (rot: Rotation) = +00:00:14 v #148 > > let a, b, c = rot.a, rot.b, rot.c +00:00:14 v #149 > > k * cos a * cos b - j * sin a * cos b + i * sin b +00:00:14 v #150 > > +00:00:14 v #151 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:14 v #152 > > inl calculate_z i j k (rot : rotation) = +00:00:14 v #153 > > inl a, b, c = rot.a, rot.b, rot.c +00:00:14 v #154 > > k * cos a * cos b - j * sin a * cos b + i * sin b +00:00:14 v #155 > > +00:00:14 v #156 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:14 v #157 > > │ ### calculate_for_surface +00:00:14 v #158 > > +00:00:14 v #159 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:14 v #160 > > let calculateForSurface cubeX cubeY cubeZ ch rot horizontalOffset = +00:00:14 v #161 > > let x = calculateX cubeX cubeY cubeZ rot +00:00:14 v #162 > > let y = calculateY cubeX cubeY cubeZ rot +00:00:14 v #163 > > let z = calculateZ cubeX cubeY cubeZ rot + distanceFromCam +00:00:14 v #164 > > let ooz = 1.0 / z +00:00:14 v #165 > > let xp = int (float width / 2.0 + horizontalOffset + k1 * ooz * x * 2.0) +00:00:14 v #166 > > let yp = int (float height / 2.0 + k1 * ooz * y) +00:00:14 v #167 > > let idx = xp + yp * width +00:00:14 v #168 > > if idx >= 0 && idx < width * height +00:00:14 v #169 > > then Some (idx, (ooz, ch)) +00:00:14 v #170 > > else None +00:00:14 v #171 > > +00:00:14 v #172 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:14 v #173 > > let calculate_for_surface cube_x cube_y cube_z ch rot horizontal_offset = +00:00:14 v #174 > > inl x = calculate_x cube_x cube_y cube_z rot +00:00:14 v #175 > > inl y = calculate_y cube_x cube_y cube_z rot +00:00:14 v #176 > > inl z = calculate_z cube_x cube_y cube_z rot + get_distance_from_cam () +00:00:14 v #177 > > inl ooz = 1.0 / z +00:00:14 v #178 > > inl xp = i32 (f64 (get_width ()) / 2.0 + horizontal_offset + get_k1 () * ooz +00:00:14 v #179 > > * x * 2.0) +00:00:14 v #180 > > inl yp = i32 (f64 (get_height ()) / 2.0 + get_k1 () * ooz * y) +00:00:14 v #181 > > inl idx = xp + yp * get_width () +00:00:14 v #182 > > if idx >= 0 && idx < get_width () * get_height () +00:00:14 v #183 > > then Some (idx, (ooz, ch)) +00:00:14 v #184 > > else None +00:00:15 v #185 > > +00:00:15 v #186 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:15 v #187 > > │ ### frange +00:00:15 v #188 > > +00:00:15 v #189 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:15 v #190 > > let frange start stop step = +00:00:15 v #191 > > seq { +00:00:15 v #192 > > let mutable current = start +00:00:15 v #193 > > while (step > 0.0 && current < stop) || (step < 0.0 && current > stop) +00:00:15 v #194 > > do +00:00:15 v #195 > > yield current +00:00:15 v #196 > > current <- current + step +00:00:15 v #197 > > } +00:00:15 v #198 > > +00:00:15 v #199 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:15 v #200 > > inl frange start stop step : _ f64 = +00:00:15 v #201 > > fun () => +00:00:15 v #202 > > inl current = mut start +00:00:15 v #203 > > loopw.while +00:00:15 v #204 > > fun () => (step > 0f64 && *current < stop) || (step < 0 && *current +00:00:15 v #205 > > > stop) +00:00:15 v #206 > > fun () => +00:00:15 v #207 > > *current |> yield +00:00:15 v #208 > > current <- *current + step +00:00:15 v #209 > > |> seq.new_seq +00:00:15 v #210 > > +00:00:15 v #211 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:15 v #212 > > │ ### get_cube_points +00:00:15 v #213 > > +00:00:15 v #214 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:15 v #215 > > let getCubePoints (cube: Cube) rot = +00:00:15 v #216 > > let cw = cube.cubeWidth +00:00:15 v #217 > > let ho = cube.horizontalOffset +00:00:15 v #218 > > let cubeRange = frange (-cw) cw incrementSpeed +00:00:15 v #219 > > seq { +00:00:15 v #220 > > for cubeX in cubeRange do +00:00:15 v #221 > > for cubeY in cubeRange do +00:00:15 v #222 > > let x = +00:00:15 v #223 > > [[ +00:00:15 v #224 > > calculateForSurface cubeX cubeY (-cw) '@' rot ho +00:00:15 v #225 > > calculateForSurface cw cubeY cubeX '$' rot ho +00:00:15 v #226 > > calculateForSurface (-cw) cubeY (-cubeX) '~' rot ho +00:00:15 v #227 > > calculateForSurface (-cubeX) cubeY cw '#' rot ho +00:00:15 v #228 > > calculateForSurface cubeX (-cw) (-cubeY) ';' rot ho +00:00:15 v #229 > > calculateForSurface cubeX cw cubeY '+' rot ho +00:00:15 v #230 > > ]] +00:00:15 v #231 > > |> Seq.choose id +00:00:15 v #232 > > yield! x +00:00:15 v #233 > > } +00:00:15 v #234 > > +00:00:15 v #235 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:15 v #236 > > inl get_cube_points (cube : cube) rot = +00:00:15 v #237 > > inl cw = cube.cube_width +00:00:15 v #238 > > inl ho = cube.horizontal_offset +00:00:15 v #239 > > inl cube_range = frange -cw cw (get_increment_speed ()) +00:00:15 v #240 > > inl cube_range = join cube_range +00:00:15 v #241 > > inl get cube_x cube_y = +00:00:15 v #242 > > [[ +00:00:15 v #243 > > calculate_for_surface cube_x cube_y -cw ';' rot ho +00:00:15 v #244 > > calculate_for_surface cw cube_y cube_x '\\' rot ho +00:00:15 v #245 > > calculate_for_surface -cw cube_y -cube_x '/' rot ho +00:00:15 v #246 > > calculate_for_surface -cube_x cube_y cw '=' rot ho +00:00:15 v #247 > > calculate_for_surface cube_x -cw -cube_y '>' rot ho +00:00:15 v #248 > > calculate_for_surface cube_x cw cube_y '<' rot ho +00:00:15 v #249 > > ]] +00:00:15 v #250 > > |> listm'.box +00:00:15 v #251 > > inl get = join get +00:00:15 v #252 > > inl box x : _ (i32 * f64 * char) = +00:00:15 v #253 > > optionm'.box x +00:00:15 v #254 > > inl box = join box +00:00:15 v #255 > > fun () => +00:00:15 v #256 > > backend_switch { +00:00:15 v #257 > > Fsharp = fun () => +00:00:15 v #258 > > $'for cube_x in !cube_range do' +00:00:15 v #259 > > $'for cube_y in !cube_range do' +00:00:15 v #260 > > $'let x = !get cube_x cube_y |> Seq.choose !box ' +00:00:15 v #261 > > $'yield\! x' : () +00:00:15 v #262 > > Python = fun () => +00:00:15 v #263 > > $'cube_range = !cube_range ' +00:00:15 v #264 > > $'get = !get ' +00:00:15 v #265 > > $'box = !box ' +00:00:15 v #266 > > $'for cube_x in cube_range:' +00:00:15 v #267 > > $' for cube_y in cube_range:' +00:00:15 v #268 > > $' x = get(cube_x)(cube_y)' +00:00:15 v #269 > > $' for i in x:' +00:00:15 v #270 > > $' i_ = box(i)' +00:00:15 v #271 > > $' if i_ is not None: yield i' : () +00:00:15 v #272 > > } +00:00:15 v #273 > > |> seq.new_seq +00:00:16 v #274 > > +00:00:16 v #275 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:16 v #276 > > │ ### generate_frame +00:00:16 v #277 > > +00:00:16 v #278 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:16 v #279 > > let generateFrame rot = +00:00:16 v #280 > > let updates = +00:00:16 v #281 > > cubes +00:00:16 v #282 > > |> Seq.collect (fun cube -> getCubePoints cube rot) +00:00:16 v #283 > > let buffer = Array.create (width * height) None +00:00:16 v #284 > > updates +00:00:16 v #285 > > |> Seq.iter (fun (idx, (ooz, ch)) -> +00:00:16 v #286 > > match buffer.[[idx]] with +00:00:16 v #287 > > | Some (prevOoz, _) when prevOoz >= ooz -> () +00:00:16 v #288 > > | _ -> buffer.[[idx]] <- Some (ooz, ch) +00:00:16 v #289 > > ) +00:00:16 v #290 > > let sb = StringBuilder() +00:00:16 v #291 > > for row in 0 .. (height - 1) do +00:00:16 v #292 > > for col in 0 .. (width - 1) do +00:00:16 v #293 > > let idx = col + row * width +00:00:16 v #294 > > let ch = +00:00:16 v #295 > > match buffer.[[idx]] with +00:00:16 v #296 > > | Some (_, ch) -> ch +00:00:16 v #297 > > | None -> backgroundChar +00:00:16 v #298 > > sb.Append(ch) |> ignore +00:00:16 v #299 > > sb.AppendLine() |> ignore +00:00:16 v #300 > > sb.ToString() +00:00:16 v #301 > > +00:00:16 v #302 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:16 v #303 > > //// test +00:00:16 v #304 > > +00:00:16 v #305 > > let rot = { a = 0.0; b = 0.0; c = 0.0 } +00:00:16 v #306 > > let frame = generateFrame rot +00:00:16 v #307 > > Console.Write frame +00:00:16 v #308 > > +00:00:16 v #309 > > ── [ 60.24ms - stdout ] ──────────────────────────────────────────────────────── +00:00:16 v #310 > > │ +00:00:16 v #311 > > ................................................................................ +00:00:16 v #312 > > ................................................................................ +00:00:16 v #313 > > │ +00:00:16 v #314 > > ................................................................................ +00:00:16 v #315 > > ................................................................................ +00:00:16 v #316 > > │ +00:00:16 v #317 > > ................................................................................ +00:00:16 v #318 > > ................................................................................ +00:00:16 v #319 > > │ +00:00:16 v #320 > > ................................................................................ +00:00:16 v #321 > > ................................................................................ +00:00:16 v #322 > > │ +00:00:16 v #323 > > ................................................................................ +00:00:16 v #324 > > ................................................................................ +00:00:16 v #325 > > │ +00:00:16 v #326 > > ................................................................................ +00:00:16 v #327 > > ................................................................................ +00:00:16 v #328 > > │ +00:00:16 v #329 > > ................................................................................ +00:00:16 v #330 > > ................................................................................ +00:00:16 v #331 > > │ +00:00:16 v #332 > > ................................................................................ +00:00:16 v #333 > > ................................................................................ +00:00:16 v #334 > > │ +00:00:16 v #335 > > ................................................................................ +00:00:16 v #336 > > ................................................................................ +00:00:16 v #337 > > │ +00:00:16 v #338 > > ................................................................................ +00:00:16 v #339 > > ................................................................................ +00:00:16 v #340 > > │ +00:00:16 v #341 > > ................................................................................ +00:00:16 v #342 > > ................................................................................ +00:00:16 v #343 > > │ +00:00:16 v #344 > > ................................................................................ +00:00:16 v #345 > > ................................................................................ +00:00:16 v #346 > > │ +00:00:16 v #347 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$................... +00:00:16 v #348 > > ................................................................................ +00:00:16 v #349 > > │ +00:00:16 v #350 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$................... +00:00:16 v #351 > > ................................................................................ +00:00:16 v #352 > > │ +00:00:16 v #353 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$................... +00:00:16 v #354 > > ................................................................................ +00:00:16 v #355 > > │ +00:00:16 v #356 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$................... +00:00:16 v #357 > > ................................................................................ +00:00:16 v #358 > > │ +00:00:16 v #359 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$................... +00:00:16 v #360 > > ................................................................................ +00:00:16 v #361 > > │ +00:00:16 v #362 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$................... +00:00:16 v #363 > > .@@@@@@@@@@@@@@@@@$............................................................. +00:00:16 v #364 > > │ +00:00:16 v #365 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$................... +00:00:16 v #366 > > .@@@@@@@@@@@@@@@@@$............................................................. +00:00:16 v #367 > > │ +00:00:16 v #368 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$................... +00:00:16 v #369 > > .@@@@@@@@@@@@@@@@@$................@@@@@@@@@$................................... +00:00:16 v #370 > > │ +00:00:16 v #371 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$................... +00:00:16 v #372 > > .@@@@@@@@@@@@@@@@@$................@@@@@@@@@$................................... +00:00:16 v #373 > > │ +00:00:16 v #374 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$................... +00:00:16 v #375 > > .@@@@@@@@@@@@@@@@@$................@@@@@@@@@$................................... +00:00:16 v #376 > > │ +00:00:16 v #377 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$................... +00:00:16 v #378 > > .@@@@@@@@@@@@@@@@@$................@@@@@@@@@$................................... +00:00:16 v #379 > > │ +00:00:16 v #380 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$................... +00:00:16 v #381 > > .@@@@@@@@@@@@@@@@@$................@@@@@@@@@$................................... +00:00:16 v #382 > > │ +00:00:16 v #383 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$................... +00:00:16 v #384 > > .@@@@@@@@@@@@@@@@@$................+++++++++.................................... +00:00:16 v #385 > > │ +00:00:16 v #386 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$................... +00:00:16 v #387 > > .@@@@@@@@@@@@@@@@@$............................................................. +00:00:16 v #388 > > │ +00:00:16 v #389 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$................... +00:00:16 v #390 > > .+++++++++++++++++$............................................................. +00:00:16 v #391 > > │ +00:00:16 v #392 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$................... +00:00:16 v #393 > > ................................................................................ +00:00:16 v #394 > > │ +00:00:16 v #395 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$................... +00:00:16 v #396 > > ................................................................................ +00:00:16 v #397 > > │ +00:00:16 v #398 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$................... +00:00:16 v #399 > > ................................................................................ +00:00:16 v #400 > > │ +00:00:16 v #401 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$................... +00:00:16 v #402 > > ................................................................................ +00:00:16 v #403 > > │ +00:00:16 v #404 > > ....................@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$................... +00:00:16 v #405 > > ................................................................................ +00:00:16 v #406 > > │ +00:00:16 v #407 > > ....................++++++++++++++++++++++++++++++++++++++++.................... +00:00:16 v #408 > > ................................................................................ +00:00:16 v #409 > > │ +00:00:16 v #410 > > ................................................................................ +00:00:16 v #411 > > ................................................................................ +00:00:16 v #412 > > │ +00:00:16 v #413 > > ................................................................................ +00:00:16 v #414 > > ................................................................................ +00:00:16 v #415 > > │ +00:00:16 v #416 > > ................................................................................ +00:00:16 v #417 > > ................................................................................ +00:00:16 v #418 > > │ +00:00:16 v #419 > > ................................................................................ +00:00:16 v #420 > > ................................................................................ +00:00:16 v #421 > > │ +00:00:16 v #422 > > ................................................................................ +00:00:16 v #423 > > ................................................................................ +00:00:16 v #424 > > │ +00:00:16 v #425 > > ................................................................................ +00:00:16 v #426 > > ................................................................................ +00:00:16 v #427 > > │ +00:00:16 v #428 > > ................................................................................ +00:00:16 v #429 > > ................................................................................ +00:00:16 v #430 > > │ +00:00:16 v #431 > > ................................................................................ +00:00:16 v #432 > > ................................................................................ +00:00:16 v #433 > > │ +00:00:16 v #434 > > ................................................................................ +00:00:16 v #435 > > ................................................................................ +00:00:16 v #436 > > │ +00:00:16 v #437 > > ................................................................................ +00:00:16 v #438 > > ................................................................................ +00:00:16 v #439 > > │ +00:00:16 v #440 > > ................................................................................ +00:00:16 v #441 > > ................................................................................ +00:00:16 v #442 > > │ +00:00:16 v #443 > > +00:00:16 v #444 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:16 v #445 > > inl generate_frame rot = +00:00:16 v #446 > > inl updates : seq.seq' (int * (f64 * char)) = +00:00:16 v #447 > > inl get_cube_points' cube : seq.seq' (int * (f64 * char)) = +00:00:16 v #448 > > get_cube_points cube rot +00:00:16 v #449 > > inl cubes = get_cubes () |> listm'.box +00:00:16 v #450 > > backend_switch { +00:00:16 v #451 > > Fsharp = fun () => +00:00:16 v #452 > > inl get_cube_points' = join get_cube_points' +00:00:16 v #453 > > (cubes |> $'Seq.collect !get_cube_points' ') : seq.seq' (int * +00:00:16 v #454 > > (f64 * char)) +00:00:16 v #455 > > Python = fun () => +00:00:16 v #456 > > $'cubes = !cubes ' +00:00:16 v #457 > > $'get_cube_points = !get_cube_points' ' +00:00:16 v #458 > > $'[[x for cube in cubes for x in get_cube_points(*cube)]]' : +00:00:16 v #459 > > seq.seq' (int * (f64 * char)) +00:00:16 v #460 > > } +00:00:16 v #461 > > inl none : _ (f64 * char) = None +00:00:16 v #462 > > inl width = get_width () +00:00:16 v #463 > > inl height = get_height () +00:00:16 v #464 > > inl buffer = +00:00:16 v #465 > > backend_switch { +00:00:16 v #466 > > Fsharp = fun () => +00:00:16 v #467 > > $'Array.create (!width * !height) !none ' : a int (option (f64 * +00:00:16 v #468 > > char)) +00:00:16 v #469 > > Python = fun () => +00:00:16 v #470 > > $'[[!none for _ in range(!width * !height)]]' : a int (option +00:00:16 v #471 > > (f64 * char)) +00:00:16 v #472 > > } +00:00:16 v #473 > > +00:00:16 v #474 > > inl fn idx ((ooz : f64), (ch : char)) = +00:00:16 v #475 > > match buffer |> am'.index idx with +00:00:16 v #476 > > | Some (prev_ooz, _) when prev_ooz >= ooz => () +00:00:16 v #477 > > | _ => +00:00:16 v #478 > > inl x = (ooz, ch) |> Some +00:00:16 v #479 > > backend_switch { +00:00:16 v #480 > > Fsharp = fun () => +00:00:16 v #481 > > $'!buffer.[[!idx]] <- !x ' : () +00:00:16 v #482 > > Python = fun () => +00:00:16 v #483 > > $'!buffer[[!idx]] = !x ' : () +00:00:16 v #484 > > } +00:00:16 v #485 > > backend_switch { +00:00:16 v #486 > > Fsharp = fun () => +00:00:16 v #487 > > updates +00:00:16 v #488 > > |> $'Seq.iter (fun (struct (idx, ooz, ch)) -> !fn idx (ooz, ch))' : +00:00:16 v #489 > > () +00:00:16 v #490 > > Python = fun () => +00:00:16 v #491 > > $'for (idx, ooz, ch) in !updates: !fn(idx)(ooz, ch)' : () +00:00:16 v #492 > > } +00:00:16 v #493 > > +00:00:16 v #494 > > inl sb = "" |> sm'.string_builder +00:00:16 v #495 > > inl fn1 row = +00:00:16 v #496 > > inl fn2 col = +00:00:16 v #497 > > inl idx = col + row * width +00:00:16 v #498 > > inl ch = +00:00:16 v #499 > > match buffer |> am'.index idx with +00:00:16 v #500 > > | Some (_, ch) => ch +00:00:16 v #501 > > | None => get_background_char () +00:00:16 v #502 > > sb |> sm'.builder_append (ch |> sm'.obj_to_string) |> ignore +00:00:16 v #503 > > +00:00:16 v #504 > > backend_switch { +00:00:16 v #505 > > Fsharp = fun () => +00:00:16 v #506 > > $'for col in 0 .. (!width - 1) do !fn2 col' : () +00:00:16 v #507 > > Python = fun () => +00:00:16 v #508 > > $'for col in range(!width): !fn2(col)' : () +00:00:16 v #509 > > } +00:00:16 v #510 > > sb |> sm'.builder_append_line |> ignore +00:00:16 v #511 > > +00:00:16 v #512 > > backend_switch { +00:00:16 v #513 > > Fsharp = fun () => +00:00:16 v #514 > > $'for row in 0 .. (!height - 1) do !fn1 row' : () +00:00:16 v #515 > > Python = fun () => +00:00:16 v #516 > > $'for row in range(!height): !fn1(row)' : () +00:00:16 v #517 > > } +00:00:16 v #518 > > sb |> sm'.obj_to_string +00:00:17 v #519 > > +00:00:17 v #520 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:17 v #521 > > //// test +00:00:17 v #522 > > ///! fsharp +00:00:17 v #523 > > ///! cuda +00:00:17 v #524 > > ///! rust +00:00:17 v #525 > > ///! typescript +00:00:17 v #526 > > ///! python +00:00:17 v #527 > > +00:00:17 v #528 > > { a = 0.0; b = 0.0; c = 0.0 } +00:00:17 v #529 > > |> generate_frame +00:00:17 v #530 > > |> console.write_line +00:00:23 v #531 > > +00:00:23 v #532 > > ── [ 5.79s - return value ] ──────────────────────────────────────────────────── +00:00:23 v #533 > > │ " +00:00:23 v #534 > > │ .py output (Cuda): +00:00:23 v #535 > > │ +00:00:23 v #536 > > ................................................................................ +00:00:23 v #537 > > ................................................................................ +00:00:23 v #538 > > │ +00:00:23 v #539 > > ................................................................................ +00:00:23 v #540 > > ................................................................................ +00:00:23 v #541 > > │ +00:00:23 v #542 > > ................................................................................ +00:00:23 v #543 > > ................................................................................ +00:00:23 v #544 > > │ +00:00:23 v #545 > > ................................................................................ +00:00:23 v #546 > > ................................................................................ +00:00:23 v #547 > > │ +00:00:23 v #548 > > ................................................................................ +00:00:23 v #549 > > ................................................................................ +00:00:23 v #550 > > │ +00:00:23 v #551 > > ................................................................................ +00:00:23 v #552 > > ................................................................................ +00:00:23 v #553 > > │ +00:00:23 v #554 > > ................................................................................ +00:00:23 v #555 > > ................................................................................ +00:00:23 v #556 > > │ +00:00:23 v #557 > > ................................................................................ +00:00:23 v #558 > > ................................................................................ +00:00:23 v #559 > > │ +00:00:23 v #560 > > ................................................................................ +00:00:23 v #561 > > ................................................................................ +00:00:23 v #562 > > │ +00:00:23 v #563 > > ............................................................................ +00:00:23 v #564 > > │ +00:00:23 v #565 > > ................................................................................ +00:00:23 v #566 > > ................................................................................ +00:00:23 v #567 > > │ +00:00:23 v #568 > > ................................................................................ +00:00:23 v #569 > > ................................................................................ +00:00:23 v #570 > > │ +00:00:23 v #571 > > ................................................................................ +00:00:23 v #572 > > ................................................................................ +00:00:23 v #573 > > │ +00:00:23 v #574 > > ................................................................................ +00:00:23 v #575 > > ................................................................................ +00:00:23 v #576 > > │ +00:00:23 v #577 > > ................................................................................ +00:00:23 v #578 > > ................................................................................ +00:00:23 v #579 > > │ +00:00:23 v #580 > > ................................................................................ +00:00:23 v #581 > > ................................................................................ +00:00:23 v #582 > > │ +00:00:23 v #583 > > ................................................................................ +00:00:23 v #584 > > ................................................................................ +00:00:23 v #585 > > │ +00:00:23 v #586 > > ................................................................................ +00:00:23 v #587 > > ................................................................................ +00:00:23 v #588 > > │ +00:00:23 v #589 > > ................................................................................ +00:00:23 v #590 > > ................................................................................ +00:00:23 v #591 > > │ +00:00:23 v #592 > > │ +00:00:23 v #593 > > │ +00:00:23 v #594 > > │ " +00:00:23 v #595 > > │ +00:00:23 v #596 > > +00:00:23 v #597 > > ── [ 5.79s - stdout ] ────────────────────────────────────────────────────────── +00:00:23 v #598 > > │ .fsx output: +00:00:23 v #599 > > │ +00:00:23 v #600 > > ................................................................................ +00:00:23 v #601 > > ................................................................................ +00:00:23 v #602 > > │ +00:00:23 v #603 > > ................................................................................ +00:00:23 v #604 > > ................................................................................ +00:00:23 v #605 > > │ +00:00:23 v #606 > > ................................................................................ +00:00:23 v #607 > > ................................................................................ +00:00:23 v #608 > > │ +00:00:23 v #609 > > ................................................................................ +00:00:23 v #610 > > ................................................................................ +00:00:23 v #611 > > │ +00:00:23 v #612 > > ................................................................................ +00:00:23 v #613 > > ................................................................................ +00:00:23 v #614 > > │ +00:00:23 v #615 > > ................................................................................ +00:00:23 v #616 > > ................................................................................ +00:00:23 v #617 > > │ +00:00:23 v #618 > > ................................................................................ +00:00:23 v #619 > > ................................................................................ +00:00:23 v #620 > > │ +00:00:23 v #621 > > ................................................................................ +00:00:23 v #622 > > ................................................................................ +00:00:23 v #623 > > │ +00:00:23 v #624 > > ................................................................................ +00:00:23 v #625 > > ................................................................................ +00:00:23 v #626 > > │ +00:00:23 v #627 > > ................................................................................ +00:00:23 v #628 > > ................................................................................ +00:00:23 v #629 > > │ +00:00:23 v #630 > > ................................................................................ +00:00:23 v #631 > > ................................................................................ +00:00:23 v #632 > > │ +00:00:23 v #633 > > ................................................................................ +00:00:23 v #634 > > ................................................................................ +00:00:23 v #635 > > │ +00:00:23 v #636 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... +00:00:23 v #637 > > ................................................................................ +00:00:23 v #638 > > │ +00:00:23 v #639 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... +00:00:23 v #640 > > ................................................................................ +00:00:23 v #641 > > │ +00:00:23 v #642 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... +00:00:23 v #643 > > ................................................................................ +00:00:23 v #644 > > │ +00:00:23 v #645 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... +00:00:23 v #646 > > ................................................................................ +00:00:23 v #647 > > │ +00:00:23 v #648 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... +00:00:23 v #649 > > ................................................................................ +00:00:23 v #650 > > │ +00:00:23 v #651 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... +00:00:23 v #652 > > .;;;;;;;;;;;;;;;;;\............................................................. +00:00:23 v #653 > > │ +00:00:23 v #654 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... +00:00:23 v #655 > > .;;;;;;;;;;;;;;;;;\............................................................. +00:00:23 v #656 > > │ +00:00:23 v #657 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... +00:00:23 v #658 > > .;;;;;;;;;;;;;;;;;\................;;;;;;;;;\................................... +00:00:23 v #659 > > │ +00:00:23 v #660 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... +00:00:23 v #661 > > .;;;;;;;;;;;;;;;;;\................;;;;;;;;;\................................... +00:00:23 v #662 > > │ +00:00:23 v #663 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... +00:00:23 v #664 > > .;;;;;;;;;;;;;;;;;\................;;;;;;;;;\................................... +00:00:23 v #665 > > │ +00:00:23 v #666 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... +00:00:23 v #667 > > .;;;;;;;;;;;;;;;;;\................;;;;;;;;;\................................... +00:00:23 v #668 > > │ +00:00:23 v #669 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... +00:00:23 v #670 > > .;;;;;;;;;;;;;;;;;\................;;;;;;;;;\................................... +00:00:23 v #671 > > │ +00:00:23 v #672 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... +00:00:23 v #673 > > .;;;;;;;;;;;;;;;;;\................<<<<<<<<<.................................... +00:00:23 v #674 > > │ +00:00:23 v #675 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... +00:00:23 v #676 > > .;;;;;;;;;;;;;;;;;\............................................................. +00:00:23 v #677 > > │ +00:00:23 v #678 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... +00:00:23 v #679 > > .<<<<<<<<<<<<<<<<<\............................................................. +00:00:23 v #680 > > │ +00:00:23 v #681 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... +00:00:23 v #682 > > ................................................................................ +00:00:23 v #683 > > │ +00:00:23 v #684 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... +00:00:23 v #685 > > ................................................................................ +00:00:23 v #686 > > │ +00:00:23 v #687 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... +00:00:23 v #688 > > ................................................................................ +00:00:23 v #689 > > │ +00:00:23 v #690 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... +00:00:23 v #691 > > ................................................................................ +00:00:23 v #692 > > │ +00:00:23 v #693 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... +00:00:23 v #694 > > ................................................................................ +00:00:23 v #695 > > │ +00:00:23 v #696 > > ....................<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<.................... +00:00:23 v #697 > > ................................................................................ +00:00:23 v #698 > > │ +00:00:23 v #699 > > ................................................................................ +00:00:23 v #700 > > ................................................................................ +00:00:23 v #701 > > │ +00:00:23 v #702 > > ................................................................................ +00:00:23 v #703 > > ................................................................................ +00:00:23 v #704 > > │ +00:00:23 v #705 > > ................................................................................ +00:00:23 v #706 > > ................................................................................ +00:00:23 v #707 > > │ +00:00:23 v #708 > > ................................................................................ +00:00:23 v #709 > > ................................................................................ +00:00:23 v #710 > > │ +00:00:23 v #711 > > ................................................................................ +00:00:23 v #712 > > ................................................................................ +00:00:23 v #713 > > │ +00:00:23 v #714 > > ................................................................................ +00:00:23 v #715 > > ................................................................................ +00:00:23 v #716 > > │ +00:00:23 v #717 > > ................................................................................ +00:00:23 v #718 > > ................................................................................ +00:00:23 v #719 > > │ +00:00:23 v #720 > > ................................................................................ +00:00:23 v #721 > > ................................................................................ +00:00:23 v #722 > > │ +00:00:23 v #723 > > ................................................................................ +00:00:23 v #724 > > ................................................................................ +00:00:23 v #725 > > │ +00:00:23 v #726 > > ................................................................................ +00:00:23 v #727 > > ................................................................................ +00:00:23 v #728 > > │ +00:00:23 v #729 > > ................................................................................ +00:00:23 v #730 > > ................................................................................ +00:00:23 v #731 > > │ +00:00:23 v #732 > > │ +00:00:23 v #733 > > +00:00:23 v #734 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:23 v #735 > > │ ### main_loop +00:00:23 v #736 > > +00:00:23 v #737 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:23 v #738 > > let rec mainLoop rot = async { +00:00:23 v #739 > > let frame = generateFrame rot +00:00:23 v #740 > > // Console.SetCursorPosition(0, 0) +00:00:23 v #741 > > Console.Write(frame) +00:00:23 v #742 > > let rot' = { a = rot.a + 0.05; b = rot.b + 0.05; c = rot.c + 0.01 } +00:00:23 v #743 > > do! Async.Sleep 16 +00:00:23 v #744 > > return! mainLoop rot' +00:00:23 v #745 > > } +00:00:23 v #746 > > +00:00:23 v #747 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:23 v #748 > > let rec main_loop max i rot = +00:00:23 v #749 > > fun () => +00:00:23 v #750 > > inl rot = join rot +00:00:23 v #751 > > inl frame = rot |> generate_frame +00:00:23 v #752 > > if max < 0 then +00:00:23 v #753 > > run_target function +00:00:23 v #754 > > | Fsharp (Native) => fun () => +00:00:23 v #755 > > $'System.Console.SetCursorPosition (0, 0)' +00:00:23 v #756 > > | Rust _ => fun () => +00:00:23 v #757 > > open rust.rust_operators +00:00:23 v #758 > > !\($'$"print\!(\\\"\\\\x1B[[1;1H\\\")"') +00:00:23 v #759 > > | TypeScript _ => fun () => +00:00:23 v #760 > > open typescript_operators +00:00:23 v #761 > > !\($'$"process.stdout.write(\'\\\\u001B[[1;1H\')"') +00:00:23 v #762 > > | Python _ => fun () => +00:00:23 v #763 > > open python_operators +00:00:23 v #764 > > // global "import sys" +00:00:23 v #765 > > !\($'$"sys.stdout.write(\\\"\\\\033[[1;1H\\\")"') +00:00:23 v #766 > > | Cuda _ => fun () => +00:00:23 v #767 > > global "import sys" +00:00:23 v #768 > > $'sys.stdout.write("\\033[[1;1H")' +00:00:23 v #769 > > | _ => fun () => () +00:00:23 v #770 > > frame |> console.write_line +00:00:23 v #771 > > async.sleep 1 |> async.do +00:00:23 v #772 > > if max > 0 && i >= max +00:00:23 v #773 > > then () +00:00:23 v #774 > > else +00:00:23 v #775 > > { a = rot.a + 0.05; b = rot.b + 0.05; c = rot.c + 0.01 } +00:00:23 v #776 > > |> main_loop max (i + 1) +00:00:23 v #777 > > |> async.return_await' +00:00:23 v #778 > > |> async.new_async_unit +00:00:23 v #779 > > +00:00:23 v #780 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:23 v #781 > > │ ### main +00:00:23 v #782 > > +00:00:23 v #783 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:23 v #784 > > // [[<EntryPoint>]] +00:00:23 v #785 > > let main argv = +00:00:23 v #786 > > // Console.CursorVisible <- false +00:00:23 v #787 > > Async.StartImmediate (mainLoop { a = 0.0; b = 0.0; c = 0.0 }) +00:00:23 v #788 > > System.Threading.Thread.Sleep(1000) +00:00:23 v #789 > > +00:00:23 v #790 > > ── fsharp ────────────────────────────────────────────────────────────────────── +00:00:23 v #791 > > // main [[||]] +00:00:23 v #792 > > +00:00:23 v #793 > > ── spiral ────────────────────────────────────────────────────────────────────── +00:00:23 v #794 > > inl main (_args : array_base string) = +00:00:23 v #795 > > inl console = +00:00:23 v #796 > > run_target function +00:00:23 v #797 > > | Fsharp (Wasm) => fun () => false +00:00:23 v #798 > > | _ => fun () => +00:00:23 v #799 > > ((join "VSCODE_PID") |> env.get_environment_variable |> sm'.length +00:00:23 v #800 > > |> (=) 0i32) +00:00:23 v #801 > > && ("AUTOMATION" |> env.get_environment_variable |> sm'.length +00:00:23 v #802 > > |> (=) 0i32) +00:00:23 v #803 > > if console then +00:00:23 v #804 > > run_target function +00:00:23 v #805 > > | Fsharp (Native) => fun () => $'System.Console.CursorVisible <- +00:00:23 v #806 > > false' +00:00:23 v #807 > > | Rust _ => fun () => +00:00:23 v #808 > > open rust.rust_operators +00:00:23 v #809 > > !\($'$"print\!(\\\"\\\\x1B[[?25l\\\")"') +00:00:23 v #810 > > | TypeScript _ => fun () => +00:00:23 v #811 > > open typescript_operators +00:00:23 v #812 > > !\($'$"process.stdout.write(\'\\\\u001B[[?25l\')"') +00:00:23 v #813 > > | Python _ => fun () => +00:00:23 v #814 > > open python_operators +00:00:23 v #815 > > python.import_all "sys" +00:00:23 v #816 > > !\($'$"sys.stdout.write(\\\"\\\\033[[?25l\\\")"') +00:00:23 v #817 > > | _ => fun () => () +00:00:23 v #818 > > main_loop (if console then -1i32 else 50) 1i32 { a = 0.0; b = 0.0; c = 0.0 } +00:00:23 v #819 > > |> fun x => +00:00:23 v #820 > > run_target_args' x function +00:00:23 v #821 > > | Fsharp (Wasm) +00:00:23 v #822 > > | TypeScript _ => fun x => +00:00:23 v #823 > > x +00:00:23 v #824 > > |> async.start_child +00:00:23 v #825 > > |> ignore +00:00:23 v #826 > > | Python _ => fun x => +00:00:23 v #827 > > x +00:00:23 v #828 > > |> async.start_immediate +00:00:23 v #829 > > threading.sleep' 2000 +00:00:23 v #830 > > | _ => fun x => +00:00:23 v #831 > > x +00:00:23 v #832 > > |> async.run_synchronously +00:00:23 v #833 > > +00:00:23 v #834 > > inl main () = +00:00:23 v #835 > > backend_switch { +00:00:23 v #836 > > Fsharp = fun () => +00:00:23 v #837 > > $'let main_ = !main ' +00:00:23 v #838 > > $'#if \!FABLE_COMPILER_RUST' +00:00:23 v #839 > > $'main_ [[||]]' : () +00:00:23 v #840 > > $'#else' +00:00:23 v #841 > > $'let main args = main_ [[||]]; 0' : () +00:00:23 v #842 > > $'#endif' : () +00:00:23 v #843 > > Python = fun () => +00:00:23 v #844 > > main ;[[]] +00:00:23 v #845 > > } +00:00:23 v #846 > > : () +00:00:26 v #847 > > +00:00:26 v #848 > > ── [ 3.02s - stdout ] ────────────────────────────────────────────────────────── +00:00:26 v #849 > > │ +00:00:26 v #850 > > ................................................................................ +00:00:26 v #851 > > ................................................................................ +00:00:26 v #852 > > │ +00:00:26 v #853 > > ................................................................................ +00:00:26 v #854 > > ................................................................................ +00:00:26 v #855 > > │ +00:00:26 v #856 > > ................................................................................ +00:00:26 v #857 > > ................................................................................ +00:00:26 v #858 > > │ +00:00:26 v #859 > > ................................................................................ +00:00:26 v #860 > > ................................................................................ +00:00:26 v #861 > > │ +00:00:26 v #862 > > ................................................................................ +00:00:26 v #863 > > ................................................................................ +00:00:26 v #864 > > │ +00:00:26 v #865 > > ................................................................................ +00:00:26 v #866 > > ................................................................................ +00:00:26 v #867 > > │ +00:00:26 v #868 > > ................................................................................ +00:00:26 v #869 > > ................................................................................ +00:00:26 v #870 > > │ +00:00:26 v #871 > > ................................................................................ +00:00:26 v #872 > > ................................................................................ +00:00:26 v #873 > > │ +00:00:26 v #874 > > ................................................................................ +00:00:26 v #875 > > ................................................................................ +00:00:26 v #876 > > │ +00:00:26 v #877 > > ................................................................................ +00:00:26 v #878 > > ................................................................................ +00:00:26 v #879 > > │ +00:00:26 v #880 > > ................................................................................ +00:00:26 v #881 > > ................................................................................ +00:00:26 v #882 > > │ +00:00:26 v #883 > > ................................................................................ +00:00:26 v #884 > > ................................................................................ +00:00:26 v #885 > > │ +00:00:26 v #886 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... +00:00:26 v #887 > > ................................................................................ +00:00:26 v #888 > > │ +00:00:26 v #889 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... +00:00:26 v #890 > > ................................................................................ +00:00:26 v #891 > > │ +00:00:26 v #892 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... +00:00:26 v #893 > > ................................................................................ +00:00:26 v #894 > > │ +00:00:26 v #895 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... +00:00:26 v #896 > > ................................................................................ +00:00:26 v #897 > > │ +00:00:26 v #898 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... +00:00:26 v #899 > > ................................................................................ +00:00:26 v #900 > > │ +00:00:26 v #901 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... +00:00:26 v #902 > > .;;;;;;;;;;;;;;;;;\............................................................. +00:00:26 v #903 > > │ +00:00:26 v #904 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... +00:00:26 v #905 > > .;;;;;;;;;;;;;;;;;\............................................................. +00:00:26 v #906 > > │ +00:00:26 v #907 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... +00:00:26 v #908 > > .;;;;;;;;;;;;;;;;;\................;;;;;;;;;\................................... +00:00:26 v #909 > > │ +00:00:26 v #910 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... +00:00:26 v #911 > > .;;;;;;;;;;;;;;;;;\................;;;;;;;;;\................................... +00:00:26 v #912 > > │ +00:00:26 v #913 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... +00:00:26 v #914 > > .;;;;;;;;;;;;;;;;;\................;;;;;;;;;\................................... +00:00:26 v #915 > > │ +00:00:26 v #916 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... +00:00:26 v #917 > > .;;;;;;;;;;;;;;;;;\................;;;;;;;;;\................................... +00:00:26 v #918 > > │ +00:00:26 v #919 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... +00:00:26 v #920 > > .;;;;;;;;;;;;;;;;;\................;;;;;;;;;\................................... +00:00:26 v #921 > > │ +00:00:26 v #922 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... +00:00:26 v #923 > > .;;;;;;;;;;;;;;;;;\................<<<<<<<<<.................................... +00:00:26 v #924 > > │ +00:00:26 v #925 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... +00:00:26 v #926 > > .;;;;;;;;;;;;;;;;;\............................................................. +00:00:26 v #927 > > │ +00:00:26 v #928 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... +00:00:26 v #929 > > .<<<<<<<<<<<<<<<<<\............................................................. +00:00:26 v #930 > > │ +00:00:26 v #931 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... +00:00:26 v #932 > > ................................................................................ +00:00:26 v #933 > > │ +00:00:26 v #934 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... +00:00:26 v #935 > > ................................................................................ +00:00:26 v #936 > > │ +00:00:26 v #937 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... +00:00:26 v #938 > > ................................................................................ +00:00:26 v #939 > > │ +00:00:26 v #940 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... +00:00:26 v #941 > > ................................................................................ +00:00:26 v #942 > > │ +00:00:26 v #943 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... +00:00:26 v #944 > > ................................................................................ +00:00:26 v #945 > > │ +00:00:26 v #946 > > ....................<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<.................... +00:00:26 v #947 > > ................................................................................ +00:00:26 v #948 > > │ +00:00:26 v #949 > > ................................................................................ +00:00:26 v #950 > > ................................................................................ +00:00:26 v #951 > > │ +00:00:26 v #952 > > ................................................................................ +00:00:26 v #953 > > ................................................................................ +00:00:26 v #954 > > │ +00:00:26 v #955 > > ................................................................................ +00:00:26 v #956 > > ................................................................................ +00:00:26 v #957 > > │ +00:00:26 v #958 > > ................................................................................ +00:00:26 v #959 > > ................................................................................ +00:00:26 v #960 > > │ +00:00:26 v #961 > > ................................................................................ +00:00:26 v #962 > > ................................................................................ +00:00:26 v #963 > > │ +00:00:26 v #964 > > ................................................................................ +00:00:26 v #965 > > ................................................................................ +00:00:26 v #966 > > │ +00:00:26 v #967 > > ................................................................................ +00:00:26 v #968 > > ................................................................................ +00:00:26 v #969 > > │ +00:00:26 v #970 > > ................................................................................ +00:00:26 v #971 > > ................................................................................ +00:00:26 v #972 > > │ +00:00:26 v #973 > > ................................................................................ +00:00:26 v #974 > > ................................................................................ +00:00:26 v #975 > > │ +00:00:26 v #976 > > ................................................................................ +00:00:26 v #977 > > ................................................................................ +00:00:26 v #978 > > │ +00:00:26 v #979 > > ................................................................................ +00:00:26 v #980 > > ................................................................................ +00:00:26 v #981 > > │ +00:00:26 v #982 > > │ +00:00:26 v #983 > > ................................................................................ +00:00:26 v #984 > > ................................................................................ +00:00:26 v #985 > > │ +00:00:26 v #986 > > ................................................................................ +00:00:26 v #987 > > ................................................................................ +00:00:26 v #988 > > │ +00:00:26 v #989 > > ................................................................................ +00:00:26 v #990 > > ................................................................................ +00:00:26 v #991 > > │ +00:00:26 v #992 > > ................................................................................ +00:00:26 v #993 > > ................................................................................ +00:00:26 v #994 > > │ +00:00:26 v #995 > > ................................................................................ +00:00:26 v #996 > > ................................................................................ +00:00:26 v #997 > > │ +00:00:26 v #998 > > ................................................................................ +00:00:26 v #999 > > ................................................................................ +00:00:26 v #1000 > > │ +00:00:26 v #1001 > > ................................................................................ +00:00:26 v #1002 > > ................................................................................ +00:00:26 v #1003 > > │ +00:00:26 v #1004 > > ................................................................................ +00:00:26 v #1005 > > ................................................................................ +00:00:26 v #1006 > > │ +00:00:26 v #1007 > > ................................................................................ +00:00:26 v #1008 > > ................................................................................ +00:00:26 v #1009 > > │ +00:00:26 v #1010 > > ................................................................................ +00:00:26 v #1011 > > ................................................................................ +00:00:26 v #1012 > > │ +00:00:26 v #1013 > > ................................................................................ +00:00:26 v #1014 > > ................................................................................ +00:00:26 v #1015 > > │ +00:00:26 v #1016 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... +00:00:26 v #1017 > > ................................................................................ +00:00:26 v #1018 > > │ +00:00:26 v #1019 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... +00:00:26 v #1020 > > ................................................................................ +00:00:26 v #1021 > > │ +00:00:26 v #1022 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... +00:00:26 v #1023 > > ................................................................................ +00:00:26 v #1024 > > │ +00:00:26 v #1025 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... +00:00:26 v #1026 > > ................................................................................ +00:00:26 v #1027 > > │ +00:00:26 v #1028 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... +00:00:26 v #1029 > > ................................................................................ +00:00:26 v #1030 > > │ +00:00:26 v #1031 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... +00:00:26 v #1032 > > ................................................................................ +00:00:26 v #1033 > > │ +00:00:26 v #1034 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... +00:00:26 v #1035 > > .;;;;;;;;;;;;;;;;;;\............................................................ +00:00:26 v #1036 > > │ +00:00:26 v #1037 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... +00:00:26 v #1038 > > .;;;;;;;;;;;;;;;;;;\............................................................ +00:00:26 v #1039 > > │ +00:00:26 v #1040 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... +00:00:26 v #1041 > > .;;;;;;;;;;;;;;;;;;;...............;;;;;;;;;;................................... +00:00:26 v #1042 > > │ +00:00:26 v #1043 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... +00:00:26 v #1044 > > .;;;;;;;;;;;;;;;;;;;...............;;;;;;;;;;................................... +00:00:26 v #1045 > > │ +00:00:26 v #1046 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... +00:00:26 v #1047 > > .;;;;;;;;;;;;;;;;;;;...............;;;;;;;;;;................................... +00:00:26 v #1048 > > │ +00:00:26 v #1049 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... +00:00:26 v #1050 > > .;;;;;;;;;;;;;;;;;;;...............;;;;;;;;;;................................... +00:00:26 v #1051 > > │ +00:00:26 v #1052 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... +00:00:26 v #1053 > > .;;;;;;;;;;;;;;;;;;;................;;;;;<<<<................................... +00:00:26 v #1054 > > │ +00:00:26 v #1055 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... +00:00:26 v #1056 > > .;;;;;;;;;;;;;;;;;;;................<<<<<....................................... +00:00:26 v #1057 > > │ +00:00:26 v #1058 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... +00:00:26 v #1059 > > .;;;;;;;;;;;;;;;;;;;............................................................ +00:00:26 v #1060 > > │ +00:00:26 v #1061 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... +00:00:26 v #1062 > > .<<<<<<<<<<<<<<<<<<<............................................................ +00:00:26 v #1063 > > │ +00:00:26 v #1064 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................. +00:00:26 v #1065 > > ................................................................................ +00:00:26 v #1066 > > │ +00:00:26 v #1067 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................. +00:00:26 v #1068 > > ................................................................................ +00:00:26 v #1069 > > │ +00:00:26 v #1070 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................. +00:00:26 v #1071 > > ................................................................................ +00:00:26 v #1072 > > │ +00:00:26 v #1073 > > ....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................. +00:00:26 v #1074 > > ................................................................................ +00:00:26 v #1075 > > │ +00:00:26 v #1076 > > ....................<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\.................. +00:00:26 v #1077 > > ................................................................................ +00:00:26 v #1078 > > │ +00:00:26 v #1079 > > ................................................................................ +00:00:26 v #1080 > > ................................................................................ +00:00:26 v #1081 > > │ +00:00:26 v #1082 > > ................................................................................ +00:00:26 v #1083 > > ................................................................................ +00:00:26 v #1084 > > │ +00:00:26 v #1085 > > ................................................................................ +00:00:26 v #1086 > > ................................................................................ +00:00:26 v #1087 > > │ +00:00:26 v #1088 > > ................................................................................ +00:00:26 v #1089 > > ................................................................................ +00:00:26 v #1090 > > │ +00:00:26 v #1091 > > ................................................................................ +00:00:26 v #1092 > > ................................................................................ +00:00:26 v #1093 > > │ +00:00:26 v #1094 > > ................................................................................ +00:00:26 v #1095 > > ................................................................................ +00:00:26 v #1096 > > │ +00:00:26 v #1097 > > ................................................................................ +00:00:26 v #1098 > > ................................................................................ +00:00:26 v #1099 > > │ +00:00:26 v #1100 > > ................................................................................ +00:00:26 v #1101 > > ................................................................................ +00:00:26 v #1102 > > │ +00:00:26 v #1103 > > ................................................................................ +00:00:26 v #1104 > > ................................................................................ +00:00:26 v #1105 > > │ +00:00:26 v #1106 > > ................................................................................ +00:00:26 v #1107 > > ................................................................................ +00:00:26 v #1108 > > │ +00:00:26 v #1109 > > ................................................................................ +00:00:26 v #1110 > > ................................................................................ +00:00:26 v #1111 > > │ +00:00:26 v #1112 > > ................................................................................ +00:00:26 v #1113 > > ................................................................................ +00:00:26 v #1114 > > │ +00:00:26 v #1115 > > │ +00:00:26 v #1116 > > ................................................................................ +00:00:26 v #1117 > > ................................................................................ +00:00:26 v #1118 > > │ +00:00:26 v #1119 > > ................................................................................ +00:00:26 v #1120 > > ................................................................................ +00:00:26 v #1121 > > │ +00:00:26 v #1122 > > ................................................................................ +00:00:26 v #1123 > > ................................................................................ +00:00:26 v #1124 > > │ +00:00:26 v #1125 > > ................................................................................ +00:00:26 v #1126 > > ................................................................................ +00:00:26 v #1127 > > │ +00:00:26 v #1128 > > ................................................................................ +00:00:26 v #1129 > > ................................................................................ +00:00:26 v #1130 > > │ +00:00:26 v #1131 > > ................................................................................ +00:00:26 v #1132 > > ................................................................................ +00:00:26 v #1133 > > │ +00:00:26 v #1134 > > ................................................................................ +00:00:26 v #1135 > > ................................................................................ +00:00:26 v #1136 > > │ +00:00:26 v #1137 > > ................................................................................ +00:00:26 v #1138 > > ................................................................................ +00:00:26 v #1139 > > │ +00:00:26 v #1140 > > ................................................................................ +00:00:26 v #1141 > > ................................................................................ +00:00:26 v #1142 > > │ +00:00:26 v #1143 > > ................................................................................ +00:00:26 v #1144 > > ................................................................................ +00:00:26 v #1145 > > │ +00:00:26 v #1146 > > ................................................................................ +00:00:26 v #1147 > > ................................................................................ +00:00:26 v #1148 > > │ +00:00:26 v #1149 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... +00:00:26 v #1150 > > ................................................................................ +00:00:26 v #1151 > > │ +00:00:26 v #1152 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... +00:00:26 v #1153 > > ................................................................................ +00:00:26 v #1154 > > │ +00:00:26 v #1155 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... +00:00:26 v #1156 > > ................................................................................ +00:00:26 v #1157 > > │ +00:00:26 v #1158 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... +00:00:26 v #1159 > > ................................................................................ +00:00:26 v #1160 > > │ +00:00:26 v #1161 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... +00:00:26 v #1162 > > ................................................................................ +00:00:26 v #1163 > > │ +00:00:26 v #1164 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... +00:00:26 v #1165 > > ................................................................................ +00:00:26 v #1166 > > │ +00:00:26 v #1167 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... +00:00:26 v #1168 > > .;;;;;;;;;;;;;;;;;;;............................................................ +00:00:26 v #1169 > > │ +00:00:26 v #1170 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................. +00:00:26 v #1171 > > .;;;;;;;;;;;;;;;;;;;............................................................ +00:00:26 v #1172 > > │ +00:00:26 v #1173 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................. +00:00:26 v #1174 > > .;;;;;;;;;;;;;;;;;;;...............>;;;;;;;;;................................... +00:00:26 v #1175 > > │ +00:00:26 v #1176 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................. +00:00:26 v #1177 > > .;;;;;;;;;;;;;;;;;;;.............../;;;;;;;;;................................... +00:00:26 v #1178 > > │ +00:00:26 v #1179 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................. +00:00:26 v #1180 > > .;;;;;;;;;;;;;;;;;;;.............../;;;;;;;;;................................... +00:00:26 v #1181 > > │ +00:00:26 v #1182 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................. +00:00:26 v #1183 > > .;;;;;;;;;;;;;;;;;;;.............../;;;;;;;;;................................... +00:00:26 v #1184 > > │ +00:00:26 v #1185 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................. +00:00:26 v #1186 > > .;;;;;;;;;;;;;;;;;;;.............../<<<<<<<<<................................... +00:00:26 v #1187 > > │ +00:00:26 v #1188 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................. +00:00:26 v #1189 > > ..;;;;;;;;;;;;;;;;;;...............<<<<<<<<<.................................... +00:00:26 v #1190 > > │ +00:00:26 v #1191 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................. +00:00:26 v #1192 > > ..;;;;;;;;;;<<<<<<<<............................................................ +00:00:26 v #1193 > > │ +00:00:26 v #1194 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................. +00:00:26 v #1195 > > ..<<<<<<<<<<.................................................................... +00:00:26 v #1196 > > │ +00:00:26 v #1197 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................. +00:00:26 v #1198 > > ................................................................................ +00:00:26 v #1199 > > │ +00:00:26 v #1200 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................. +00:00:26 v #1201 > > ................................................................................ +00:00:26 v #1202 > > │ +00:00:26 v #1203 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................. +00:00:26 v #1204 > > ................................................................................ +00:00:26 v #1205 > > │ +00:00:26 v #1206 > > .....................;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<\................. +00:00:26 v #1207 > > ................................................................................ +00:00:26 v #1208 > > │ +00:00:26 v #1209 > > .....................<<<<<<<<<<<<<<<<<<<<<<<<<<<<............................... +00:00:26 v #1210 > > ................................................................................ +00:00:26 v #1211 > > │ +00:00:26 v #1212 > > ................................................................................ +00:00:26 v #1213 > > ................................................................................ +00:00:26 v #1214 > > │ +00:00:26 v #1215 > > ................................................................................ +00:00:26 v #1216 > > ................................................................................ +00:00:26 v #1217 > > │ +00:00:26 v #1218 > > ................................................................................ +00:00:26 v #1219 > > ................................................................................ +00:00:26 v #1220 > > │ +00:00:26 v #1221 > > ................................................................................ +00:00:26 v #1222 > > ................................................................................ +00:00:26 v #1223 > > │ +00:00:26 v #1224 > > ................................................................................ +00:00:26 v #1225 > > ................................................................................ +00:00:26 v #1226 > > │ +00:00:26 v #1227 > > ................................................................................ +00:00:26 v #1228 > > ................................................................................ +00:00:26 v #1229 > > │ +00:00:26 v #1230 > > ................................................................................ +00:00:26 v #1231 > > ................................................................................ +00:00:26 v #1232 > > │ +00:00:26 v #1233 > > ................................................................................ +00:00:26 v #1234 > > ................................................................................ +00:00:26 v #1235 > > │ +00:00:26 v #1236 > > ................................................................................ +00:00:26 v #1237 > > ................................................................................ +00:00:26 v #1238 > > │ +00:00:26 v #1239 > > ................................................................................ +00:00:26 v #1240 > > ................................................................................ +00:00:26 v #1241 > > │ +00:00:26 v #1242 > > ................................................................................ +00:00:26 v #1243 > > ................................................................................ +00:00:26 v #1244 > > │ +00:00:26 v #1245 > > ................................................................................ +00:00:26 v #1246 > > ................................................................................ +00:00:26 v #1247 > > │ +00:00:26 v #1248 > > │ +00:00:26 v #1249 > > ................................................................................ +00:00:26 v #1250 > > ................................................................................ +00:00:26 v #1251 > > │ +00:00:26 v #1252 > > ................................................................................ +00:00:26 v #1253 > > ................................................................................ +00:00:26 v #1254 > > │ +00:00:26 v #1255 > > ................................................................................ +00:00:26 v #1256 > > ................................................................................ +00:00:26 v #1257 > > │ +00:00:26 v #1258 > > ................................................................................ +00:00:26 v #1259 > > ................................................................................ +00:00:26 v #1260 > > │ +00:00:26 v #1261 > > ................................................................................ +00:00:26 v #1262 > > ................................................................................ +00:00:26 v #1263 > > │ +00:00:26 v #1264 > > ................................................................................ +00:00:26 v #1265 > > ................................................................................ +00:00:26 v #1266 > > │ +00:00:26 v #1267 > > ................................................................................ +00:00:26 v #1268 > > ................................................................................ +00:00:26 v #1269 > > │ +00:00:26 v #1270 > > ................................................................................ +00:00:26 v #1271 > > ................................................................................ +00:00:26 v #1272 > > │ +00:00:26 v #1273 > > ................................................................................ +00:00:26 v #1274 > > ................................................................................ +00:00:26 v #1275 > > │ +00:00:26 v #1276 > > ................................................................................ +00:00:26 v #1277 > > ................................................................................ +00:00:26 v #1278 > > │ +00:00:26 v #1279 > > ......................;;;;;;;;;;;............................................... +00:00:26 v #1280 > > ................................................................................ +00:00:26 v #1281 > > │ +00:00:26 v #1282 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... +00:00:26 v #1283 > > ................................................................................ +00:00:26 v #1284 > > │ +00:00:26 v #1285 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... +00:00:26 v #1286 > > ................................................................................ +00:00:26 v #1287 > > │ +00:00:26 v #1288 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... +00:00:26 v #1289 > > ................................................................................ +00:00:26 v #1290 > > │ +00:00:26 v #1291 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... +00:00:26 v #1292 > > ................................................................................ +00:00:26 v #1293 > > │ +00:00:26 v #1294 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... +00:00:26 v #1295 > > ................................................................................ +00:00:26 v #1296 > > │ +00:00:26 v #1297 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................. +00:00:26 v #1298 > > ..............;;;;;;............................................................ +00:00:26 v #1299 > > │ +00:00:26 v #1300 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................. +00:00:26 v #1301 > > .>;;;;;;;;;;;;;;;;;;............................................................ +00:00:26 v #1302 > > │ +00:00:26 v #1303 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................. +00:00:26 v #1304 > > ./;;;;;;;;;;;;;;;;;;............................................................ +00:00:26 v #1305 > > │ +00:00:26 v #1306 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................. +00:00:26 v #1307 > > ./;;;;;;;;;;;;;;;;;;...............>;;;;;;;;;................................... +00:00:26 v #1308 > > │ +00:00:26 v #1309 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................. +00:00:26 v #1310 > > ./;;;;;;;;;;;;;;;;;;.............../;;;;;;;;;................................... +00:00:26 v #1311 > > │ +00:00:26 v #1312 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................. +00:00:26 v #1313 > > ./;;;;;;;;;;;;;;;;;;.............../;;;;;;;;;................................... +00:00:26 v #1314 > > │ +00:00:26 v #1315 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................. +00:00:26 v #1316 > > ./;;;;;;;;;;;;;;;;;;\............../;;;;;;;;;................................... +00:00:26 v #1317 > > │ +00:00:26 v #1318 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................. +00:00:26 v #1319 > > ./;;;;;;;;;;;;;;;;;;;............../<<<<<<<<<................................... +00:00:26 v #1320 > > │ +00:00:26 v #1321 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................. +00:00:26 v #1322 > > ./;;;;;;;;;;;;;;;;;;;............../<<<<<<<<.................................... +00:00:26 v #1323 > > │ +00:00:26 v #1324 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................. +00:00:26 v #1325 > > ./<<<<<<<<<<<<<<<<<<<........................................................... +00:00:26 v #1326 > > │ +00:00:26 v #1327 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................. +00:00:26 v #1328 > > ./<<<<<<<<<<<<<<<............................................................... +00:00:26 v #1329 > > │ +00:00:26 v #1330 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................ +00:00:26 v #1331 > > ................................................................................ +00:00:26 v #1332 > > │ +00:00:26 v #1333 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................ +00:00:26 v #1334 > > ................................................................................ +00:00:26 v #1335 > > │ +00:00:26 v #1336 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................ +00:00:26 v #1337 > > ................................................................................ +00:00:26 v #1338 > > │ +00:00:26 v #1339 > > ......................;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<................ +00:00:26 v #1340 > > ................................................................................ +00:00:26 v #1341 > > │ +00:00:26 v #1342 > > ......................<<<<<<<<<<................................................ +00:00:26 v #1343 > > ................................................................................ +00:00:26 v #1344 > > │ +00:00:26 v #1345 > > ................................................................................ +00:00:26 v #1346 > > ................................................................................ +00:00:26 v #1347 > > │ +00:00:26 v #1348 > > ................................................................................ +00:00:26 v #1349 > > ................................................................................ +00:00:26 v #1350 > > │ +00:00:26 v #1351 > > ................................................................................ +00:00:26 v #1352 > > ................................................................................ +00:00:26 v #1353 > > │ +00:00:26 v #1354 > > ................................................................................ +00:00:26 v #1355 > > ................................................................................ +00:00:26 v #1356 > > │ +00:00:26 v #1357 > > ................................................................................ +00:00:26 v #1358 > > ................................................................................ +00:00:26 v #1359 > > │ +00:00:26 v #1360 > > ................................................................................ +00:00:26 v #1361 > > ................................................................................ +00:00:26 v #1362 > > │ +00:00:26 v #1363 > > ................................................................................ +00:00:26 v #1364 > > ................................................................................ +00:00:26 v #1365 > > │ +00:00:26 v #1366 > > ................................................................................ +00:00:26 v #1367 > > ................................................................................ +00:00:26 v #1368 > > │ +00:00:26 v #1369 > > ................................................................................ +00:00:26 v #1370 > > ................................................................................ +00:00:26 v #1371 > > │ +00:00:26 v #1372 > > ................................................................................ +00:00:26 v #1373 > > ................................................................................ +00:00:26 v #1374 > > │ +00:00:26 v #1375 > > ................................................................................ +00:00:26 v #1376 > > ................................................................................ +00:00:26 v #1377 > > │ +00:00:26 v #1378 > > ................................................................................ +00:00:26 v #1379 > > ................................................................................ +00:00:26 v #1380 > > │ +00:00:26 v #1381 > > │ +00:00:26 v #1382 > > ................................................................................ +00:00:26 v #1383 > > ................................................................................ +00:00:26 v #1384 > > │ +00:00:26 v #1385 > > ................................................................................ +00:00:26 v #1386 > > ................................................................................ +00:00:26 v #1387 > > │ +00:00:26 v #1388 > > ................................................................................ +00:00:26 v #1389 > > ................................................................................ +00:00:26 v #1390 > > │ +00:00:26 v #1391 > > ................................................................................ +00:00:26 v #1392 > > ................................................................................ +00:00:26 v #1393 > > │ +00:00:26 v #1394 > > ................................................................................ +00:00:26 v #1395 > > ................................................................................ +00:00:26 v #1396 > > │ +00:00:26 v #1397 > > ................................................................................ +00:00:26 v #1398 > > ................................................................................ +00:00:26 v #1399 > > │ +00:00:26 v #1400 > > ................................................................................ +00:00:26 v #1401 > > ................................................................................ +00:00:26 v #1402 > > │ +00:00:26 v #1403 > > ................................................................................ +00:00:26 v #1404 > > ................................................................................ +00:00:26 v #1405 > > │ +00:00:26 v #1406 > > ................................................................................ +00:00:26 v #1407 > > ................................................................................ +00:00:26 v #1408 > > │ +00:00:26 v #1409 > > ................................................................................ +00:00:26 v #1410 > > ................................................................................ +00:00:26 v #1411 > > │ +00:00:26 v #1412 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................... +00:00:26 v #1413 > > ................................................................................ +00:00:26 v #1414 > > │ +00:00:26 v #1415 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................... +00:00:26 v #1416 > > ................................................................................ +00:00:26 v #1417 > > │ +00:00:26 v #1418 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... +00:00:26 v #1419 > > ................................................................................ +00:00:26 v #1420 > > │ +00:00:26 v #1421 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... +00:00:26 v #1422 > > ................................................................................ +00:00:26 v #1423 > > │ +00:00:26 v #1424 > > ......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... +00:00:26 v #1425 > > ................................................................................ +00:00:26 v #1426 > > │ +00:00:26 v #1427 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... +00:00:26 v #1428 > > ................................................................................ +00:00:26 v #1429 > > │ +00:00:26 v #1430 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................. +00:00:26 v #1431 > > ..;;;;;;;;;;;;;;;;;;............................................................ +00:00:26 v #1432 > > │ +00:00:26 v #1433 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................. +00:00:26 v #1434 > > .>;;;;;;;;;;;;;;;;;;............................................................ +00:00:26 v #1435 > > │ +00:00:26 v #1436 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................. +00:00:26 v #1437 > > ./;;;;;;;;;;;;;;;;;;............................................................ +00:00:26 v #1438 > > │ +00:00:26 v #1439 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................. +00:00:26 v #1440 > > >/;;;;;;;;;;;;;;;;;;...............>;;;;;;;;;................................... +00:00:26 v #1441 > > │ +00:00:26 v #1442 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................. +00:00:26 v #1443 > > ./;;;;;;;;;;;;;;;;;;\............../;;;;;;;;;................................... +00:00:26 v #1444 > > │ +00:00:26 v #1445 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................. +00:00:26 v #1446 > > ./;;;;;;;;;;;;;;;;;;;............../;;;;;;;;;................................... +00:00:26 v #1447 > > │ +00:00:26 v #1448 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................. +00:00:26 v #1449 > > ./;;;;;;;;;;;;;;;;;;;............../;;;;;;;;;\.................................. +00:00:26 v #1450 > > │ +00:00:26 v #1451 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................ +00:00:26 v #1452 > > .//;;;;;;;;;;;;;;;;;;............../<<<<<<<<<\.................................. +00:00:26 v #1453 > > │ +00:00:26 v #1454 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................ +00:00:26 v #1455 > > .//;;;;;;;;;;;;;;;;;;............../<<<<<<<<.................................... +00:00:26 v #1456 > > │ +00:00:26 v #1457 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................ +00:00:26 v #1458 > > .//<<<<<<<<<<<<<<<<<<........................................................... +00:00:26 v #1459 > > │ +00:00:26 v #1460 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................ +00:00:26 v #1461 > > ./<<<<<<<<<<<<<<<<.............................................................. +00:00:26 v #1462 > > │ +00:00:26 v #1463 > > ........................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\............... +00:00:26 v #1464 > > ................................................................................ +00:00:26 v #1465 > > │ +00:00:26 v #1466 > > ........................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;............... +00:00:26 v #1467 > > ................................................................................ +00:00:26 v #1468 > > │ +00:00:26 v #1469 > > ........................;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<............... +00:00:26 v #1470 > > ................................................................................ +00:00:26 v #1471 > > │ +00:00:26 v #1472 > > ........................<<<<<<<<<<<<<<<<<<<<<<.................................. +00:00:26 v #1473 > > ................................................................................ +00:00:26 v #1474 > > │ +00:00:26 v #1475 > > ................................................................................ +00:00:26 v #1476 > > ................................................................................ +00:00:26 v #1477 > > │ +00:00:26 v #1478 > > ................................................................................ +00:00:26 v #1479 > > ................................................................................ +00:00:26 v #1480 > > │ +00:00:26 v #1481 > > ................................................................................ +00:00:26 v #1482 > > ................................................................................ +00:00:26 v #1483 > > │ +00:00:26 v #1484 > > ................................................................................ +00:00:26 v #1485 > > ................................................................................ +00:00:26 v #1486 > > │ +00:00:26 v #1487 > > ................................................................................ +00:00:26 v #1488 > > ................................................................................ +00:00:26 v #1489 > > │ +00:00:26 v #1490 > > ................................................................................ +00:00:26 v #1491 > > ................................................................................ +00:00:26 v #1492 > > │ +00:00:26 v #1493 > > ................................................................................ +00:00:26 v #1494 > > ................................................................................ +00:00:26 v #1495 > > │ +00:00:26 v #1496 > > ................................................................................ +00:00:26 v #1497 > > ................................................................................ +00:00:26 v #1498 > > │ +00:00:26 v #1499 > > ................................................................................ +00:00:26 v #1500 > > ................................................................................ +00:00:26 v #1501 > > │ +00:00:26 v #1502 > > ................................................................................ +00:00:26 v #1503 > > ................................................................................ +00:00:26 v #1504 > > │ +00:00:26 v #1505 > > ................................................................................ +00:00:26 v #1506 > > ................................................................................ +00:00:26 v #1507 > > │ +00:00:26 v #1508 > > ................................................................................ +00:00:26 v #1509 > > ................................................................................ +00:00:26 v #1510 > > │ +00:00:26 v #1511 > > ................................................................................ +00:00:26 v #1512 > > ................................................................................ +00:00:26 v #1513 > > │ +00:00:26 v #1514 > > │ +00:00:26 v #1515 > > ................................................................................ +00:00:26 v #1516 > > ................................................................................ +00:00:26 v #1517 > > │ +00:00:26 v #1518 > > ................................................................................ +00:00:26 v #1519 > > ................................................................................ +00:00:26 v #1520 > > │ +00:00:26 v #1521 > > ................................................................................ +00:00:26 v #1522 > > ................................................................................ +00:00:26 v #1523 > > │ +00:00:26 v #1524 > > ................................................................................ +00:00:26 v #1525 > > ................................................................................ +00:00:26 v #1526 > > │ +00:00:26 v #1527 > > ................................................................................ +00:00:26 v #1528 > > ................................................................................ +00:00:26 v #1529 > > │ +00:00:26 v #1530 > > ................................................................................ +00:00:26 v #1531 > > ................................................................................ +00:00:26 v #1532 > > │ +00:00:26 v #1533 > > ................................................................................ +00:00:26 v #1534 > > ................................................................................ +00:00:26 v #1535 > > │ +00:00:26 v #1536 > > ................................................................................ +00:00:26 v #1537 > > ................................................................................ +00:00:26 v #1538 > > │ +00:00:26 v #1539 > > ................................................................................ +00:00:26 v #1540 > > ................................................................................ +00:00:26 v #1541 > > │ +00:00:26 v #1542 > > ................................................................................ +00:00:26 v #1543 > > ................................................................................ +00:00:26 v #1544 > > │ +00:00:26 v #1545 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................... +00:00:26 v #1546 > > ................................................................................ +00:00:26 v #1547 > > │ +00:00:26 v #1548 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................... +00:00:26 v #1549 > > ................................................................................ +00:00:26 v #1550 > > │ +00:00:26 v #1551 > > ......................>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................... +00:00:26 v #1552 > > ................................................................................ +00:00:26 v #1553 > > │ +00:00:26 v #1554 > > ....................../;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... +00:00:26 v #1555 > > ................................................................................ +00:00:26 v #1556 > > │ +00:00:26 v #1557 > > ....................../;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... +00:00:26 v #1558 > > ................................................................................ +00:00:26 v #1559 > > │ +00:00:26 v #1560 > > ....................../;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... +00:00:26 v #1561 > > ................................................................................ +00:00:26 v #1562 > > │ +00:00:26 v #1563 > > ....................../;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................. +00:00:26 v #1564 > > ..;;;;;;;;;;;;;;;;;;............................................................ +00:00:26 v #1565 > > │ +00:00:26 v #1566 > > ......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................. +00:00:26 v #1567 > > .>;;;;;;;;;;;;;;;;;;............................................................ +00:00:26 v #1568 > > │ +00:00:26 v #1569 > > ......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................. +00:00:26 v #1570 > > >/;;;;;;;;;;;;;;;;;;............................................................ +00:00:26 v #1571 > > │ +00:00:26 v #1572 > > ......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................. +00:00:26 v #1573 > > //;;;;;;;;;;;;;;;;;;\..............>;;;;;;;;;................................... +00:00:26 v #1574 > > │ +00:00:26 v #1575 > > ......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................. +00:00:26 v #1576 > > ///;;;;;;;;;;;;;;;;;;............../;;;;;;;;;................................... +00:00:26 v #1577 > > │ +00:00:26 v #1578 > > ......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................ +00:00:26 v #1579 > > ///;;;;;;;;;;;;;;;;;;............../;;;;;;;;;\.................................. +00:00:26 v #1580 > > │ +00:00:26 v #1581 > > ......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................ +00:00:26 v #1582 > > ///;;;;;;;;;;;;;;;;;;............../;;;;;;;;;;.................................. +00:00:26 v #1583 > > │ +00:00:26 v #1584 > > ......................./;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................ +00:00:26 v #1585 > > .//;;;;;;;;;;;;;;;;;;;.............//<<<<<<<<<.................................. +00:00:26 v #1586 > > │ +00:00:26 v #1587 > > .......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\............... +00:00:26 v #1588 > > .//;;;;;;;;;;;;;;;;<<<............./<<<<<<<<.................................... +00:00:26 v #1589 > > │ +00:00:26 v #1590 > > .......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;............... +00:00:26 v #1591 > > .///<<<<<<<<<<<<<<<<<........................................................... +00:00:26 v #1592 > > │ +00:00:26 v #1593 > > .......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.............. +00:00:26 v #1594 > > ./<<<<<<<<<<<<<<<<.............................................................. +00:00:26 v #1595 > > │ +00:00:26 v #1596 > > .......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.............. +00:00:26 v #1597 > > ................................................................................ +00:00:26 v #1598 > > │ +00:00:26 v #1599 > > .......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<.............. +00:00:26 v #1600 > > ................................................................................ +00:00:26 v #1601 > > │ +00:00:26 v #1602 > > .......................//;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<................... +00:00:26 v #1603 > > ................................................................................ +00:00:26 v #1604 > > │ +00:00:26 v #1605 > > .......................//<<<<<<<<<<<<<<<<<<<<<<<<<.............................. +00:00:26 v #1606 > > ................................................................................ +00:00:26 v #1607 > > │ +00:00:26 v #1608 > > ........................<<<<<<<................................................. +00:00:26 v #1609 > > ................................................................................ +00:00:26 v #1610 > > │ +00:00:26 v #1611 > > ................................................................................ +00:00:26 v #1612 > > ................................................................................ +00:00:26 v #1613 > > │ +00:00:26 v #1614 > > ................................................................................ +00:00:26 v #1615 > > ................................................................................ +00:00:26 v #1616 > > │ +00:00:26 v #1617 > > ................................................................................ +00:00:26 v #1618 > > ................................................................................ +00:00:26 v #1619 > > │ +00:00:26 v #1620 > > ................................................................................ +00:00:26 v #1621 > > ................................................................................ +00:00:26 v #1622 > > │ +00:00:26 v #1623 > > ................................................................................ +00:00:26 v #1624 > > ................................................................................ +00:00:26 v #1625 > > │ +00:00:26 v #1626 > > ................................................................................ +00:00:26 v #1627 > > ................................................................................ +00:00:26 v #1628 > > │ +00:00:26 v #1629 > > ................................................................................ +00:00:26 v #1630 > > ................................................................................ +00:00:26 v #1631 > > │ +00:00:26 v #1632 > > ................................................................................ +00:00:26 v #1633 > > ................................................................................ +00:00:26 v #1634 > > │ +00:00:26 v #1635 > > ................................................................................ +00:00:26 v #1636 > > ................................................................................ +00:00:26 v #1637 > > │ +00:00:26 v #1638 > > ................................................................................ +00:00:26 v #1639 > > ................................................................................ +00:00:26 v #1640 > > │ +00:00:26 v #1641 > > ................................................................................ +00:00:26 v #1642 > > ................................................................................ +00:00:26 v #1643 > > │ +00:00:26 v #1644 > > ................................................................................ +00:00:26 v #1645 > > ................................................................................ +00:00:26 v #1646 > > │ +00:00:26 v #1647 > > │ +00:00:26 v #1648 > > ................................................................................ +00:00:26 v #1649 > > ................................................................................ +00:00:26 v #1650 > > │ +00:00:26 v #1651 > > ................................................................................ +00:00:26 v #1652 > > ................................................................................ +00:00:26 v #1653 > > │ +00:00:26 v #1654 > > ................................................................................ +00:00:26 v #1655 > > ................................................................................ +00:00:26 v #1656 > > │ +00:00:26 v #1657 > > ................................................................................ +00:00:26 v #1658 > > ................................................................................ +00:00:26 v #1659 > > │ +00:00:26 v #1660 > > ................................................................................ +00:00:26 v #1661 > > ................................................................................ +00:00:26 v #1662 > > │ +00:00:26 v #1663 > > ................................................................................ +00:00:26 v #1664 > > ................................................................................ +00:00:26 v #1665 > > │ +00:00:26 v #1666 > > ................................................................................ +00:00:26 v #1667 > > ................................................................................ +00:00:26 v #1668 > > │ +00:00:26 v #1669 > > ................................................................................ +00:00:26 v #1670 > > ................................................................................ +00:00:26 v #1671 > > │ +00:00:26 v #1672 > > ................................................................................ +00:00:26 v #1673 > > ................................................................................ +00:00:26 v #1674 > > │ +00:00:26 v #1675 > > ................................................................................ +00:00:26 v #1676 > > ................................................................................ +00:00:26 v #1677 > > │ +00:00:26 v #1678 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..................... +00:00:26 v #1679 > > ................................................................................ +00:00:26 v #1680 > > │ +00:00:26 v #1681 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..................... +00:00:26 v #1682 > > ................................................................................ +00:00:26 v #1683 > > │ +00:00:26 v #1684 > > ......................>/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................... +00:00:26 v #1685 > > ................................................................................ +00:00:26 v #1686 > > │ +00:00:26 v #1687 > > ......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................... +00:00:26 v #1688 > > ................................................................................ +00:00:26 v #1689 > > │ +00:00:26 v #1690 > > ......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... +00:00:26 v #1691 > > ................................................................................ +00:00:26 v #1692 > > │ +00:00:26 v #1693 > > ......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... +00:00:26 v #1694 > > ................................................................................ +00:00:26 v #1695 > > │ +00:00:26 v #1696 > > .....................>//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................. +00:00:26 v #1697 > > ..;;;;;;;;;;;;;;;;;............................................................. +00:00:26 v #1698 > > │ +00:00:26 v #1699 > > .....................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................. +00:00:26 v #1700 > > .>;;;;;;;;;;;;;;;;;;............................................................ +00:00:26 v #1701 > > │ +00:00:26 v #1702 > > .....................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................. +00:00:26 v #1703 > > >//;;;;;;;;;;;;;;;;;............................................................ +00:00:26 v #1704 > > │ +00:00:26 v #1705 > > .....................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................. +00:00:26 v #1706 > > ///;;;;;;;;;;;;;;;;;\..............>;;;;;;;;;................................... +00:00:26 v #1707 > > │ +00:00:26 v #1708 > > .....................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................ +00:00:26 v #1709 > > ///;;;;;;;;;;;;;;;;;;.............>/;;;;;;;;;................................... +00:00:26 v #1710 > > │ +00:00:26 v #1711 > > ......................///;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................ +00:00:26 v #1712 > > ///;;;;;;;;;;;;;;;;;;.............//;;;;;;;;;\.................................. +00:00:26 v #1713 > > │ +00:00:26 v #1714 > > ......................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\............... +00:00:26 v #1715 > > ////;;;;;;;;;;;;;;;;;;.............//;;;;;;;;;.................................. +00:00:26 v #1716 > > │ +00:00:26 v #1717 > > ......................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;............... +00:00:26 v #1718 > > ////;;;;;;;;;;;;;;;;;;.............//<<<<<<<<<.................................. +00:00:26 v #1719 > > │ +00:00:26 v #1720 > > ......................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.............. +00:00:26 v #1721 > > ////;;;;;;;<<<<<<<<<<<............./<<<<<<<<.................................... +00:00:26 v #1722 > > │ +00:00:26 v #1723 > > ......................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.............. +00:00:26 v #1724 > > .///<<<<<<<<<<<<<<<<<........................................................... +00:00:26 v #1725 > > │ +00:00:26 v #1726 > > ......................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\............. +00:00:26 v #1727 > > .//<<<<<<<<<<<<<<<.............................................................. +00:00:26 v #1728 > > │ +00:00:26 v #1729 > > .......................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<............. +00:00:26 v #1730 > > .<<<............................................................................ +00:00:26 v #1731 > > │ +00:00:26 v #1732 > > .......................////;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<............... +00:00:26 v #1733 > > ................................................................................ +00:00:26 v #1734 > > │ +00:00:26 v #1735 > > .......................////<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<...................... +00:00:26 v #1736 > > ................................................................................ +00:00:26 v #1737 > > │ +00:00:26 v #1738 > > .......................////<<<<<<<<<<<<<<<<<<<<<<<<<............................ +00:00:26 v #1739 > > ................................................................................ +00:00:26 v #1740 > > │ +00:00:26 v #1741 > > .......................//<<<<<<<<<<<<<.......................................... +00:00:26 v #1742 > > ................................................................................ +00:00:26 v #1743 > > │ +00:00:26 v #1744 > > ................................................................................ +00:00:26 v #1745 > > ................................................................................ +00:00:26 v #1746 > > │ +00:00:26 v #1747 > > ................................................................................ +00:00:26 v #1748 > > ................................................................................ +00:00:26 v #1749 > > │ +00:00:26 v #1750 > > ................................................................................ +00:00:26 v #1751 > > ................................................................................ +00:00:26 v #1752 > > │ +00:00:26 v #1753 > > ................................................................................ +00:00:26 v #1754 > > ................................................................................ +00:00:26 v #1755 > > │ +00:00:26 v #1756 > > ................................................................................ +00:00:26 v #1757 > > ................................................................................ +00:00:26 v #1758 > > │ +00:00:26 v #1759 > > ................................................................................ +00:00:26 v #1760 > > ................................................................................ +00:00:26 v #1761 > > │ +00:00:26 v #1762 > > ................................................................................ +00:00:26 v #1763 > > ................................................................................ +00:00:26 v #1764 > > │ +00:00:26 v #1765 > > ................................................................................ +00:00:26 v #1766 > > ................................................................................ +00:00:26 v #1767 > > │ +00:00:26 v #1768 > > ................................................................................ +00:00:26 v #1769 > > ................................................................................ +00:00:26 v #1770 > > │ +00:00:26 v #1771 > > ................................................................................ +00:00:26 v #1772 > > ................................................................................ +00:00:26 v #1773 > > │ +00:00:26 v #1774 > > ................................................................................ +00:00:26 v #1775 > > ................................................................................ +00:00:26 v #1776 > > │ +00:00:26 v #1777 > > ................................................................................ +00:00:26 v #1778 > > ................................................................................ +00:00:26 v #1779 > > │ +00:00:26 v #1780 > > │ +00:00:26 v #1781 > > ................................................................................ +00:00:26 v #1782 > > ................................................................................ +00:00:26 v #1783 > > │ +00:00:26 v #1784 > > ................................................................................ +00:00:26 v #1785 > > ................................................................................ +00:00:26 v #1786 > > │ +00:00:26 v #1787 > > ................................................................................ +00:00:26 v #1788 > > ................................................................................ +00:00:26 v #1789 > > │ +00:00:26 v #1790 > > ................................................................................ +00:00:26 v #1791 > > ................................................................................ +00:00:26 v #1792 > > │ +00:00:26 v #1793 > > ................................................................................ +00:00:26 v #1794 > > ................................................................................ +00:00:26 v #1795 > > │ +00:00:26 v #1796 > > ................................................................................ +00:00:26 v #1797 > > ................................................................................ +00:00:26 v #1798 > > │ +00:00:26 v #1799 > > ................................................................................ +00:00:26 v #1800 > > ................................................................................ +00:00:26 v #1801 > > │ +00:00:26 v #1802 > > ................................................................................ +00:00:26 v #1803 > > ................................................................................ +00:00:26 v #1804 > > │ +00:00:26 v #1805 > > ................................................................................ +00:00:26 v #1806 > > ................................................................................ +00:00:26 v #1807 > > │ +00:00:26 v #1808 > > ................................................................................ +00:00:26 v #1809 > > ................................................................................ +00:00:26 v #1810 > > │ +00:00:26 v #1811 > > .......................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................... +00:00:26 v #1812 > > ................................................................................ +00:00:26 v #1813 > > │ +00:00:26 v #1814 > > ......................./;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..................... +00:00:26 v #1815 > > ................................................................................ +00:00:26 v #1816 > > │ +00:00:26 v #1817 > > ......................>/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................... +00:00:26 v #1818 > > ................................................................................ +00:00:26 v #1819 > > │ +00:00:26 v #1820 > > ......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................... +00:00:26 v #1821 > > ................................................................................ +00:00:26 v #1822 > > │ +00:00:26 v #1823 > > ......................///;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... +00:00:26 v #1824 > > ................................................................................ +00:00:26 v #1825 > > │ +00:00:26 v #1826 > > .....................>///;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... +00:00:26 v #1827 > > ................................................................................ +00:00:26 v #1828 > > │ +00:00:26 v #1829 > > .....................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................. +00:00:26 v #1830 > > ..;;;;;;;;;;;;;;;;;............................................................. +00:00:26 v #1831 > > │ +00:00:26 v #1832 > > ....................>////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................. +00:00:26 v #1833 > > .>/;;;;;;;;;;;;;;;;;............................................................ +00:00:26 v #1834 > > │ +00:00:26 v #1835 > > ....................//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................. +00:00:26 v #1836 > > >//;;;;;;;;;;;;;;;;;............................................................ +00:00:26 v #1837 > > │ +00:00:26 v #1838 > > ....................//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...............> +00:00:26 v #1839 > > ///;;;;;;;;;;;;;;;;;;..............>;;;;;;;;;................................... +00:00:26 v #1840 > > │ +00:00:26 v #1841 > > ...................../////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;............... +00:00:26 v #1842 > > ////;;;;;;;;;;;;;;;;;.............//;;;;;;;;;................................... +00:00:26 v #1843 > > │ +00:00:26 v #1844 > > .....................//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.............. +00:00:26 v #1845 > > ////;;;;;;;;;;;;;;;;;;............///;;;;;;;;;.................................. +00:00:26 v #1846 > > │ +00:00:26 v #1847 > > .....................//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;............... +00:00:26 v #1848 > > ////;;;;;;;;;;;;;;;;;;............///;;;;;;;;;.................................. +00:00:26 v #1849 > > │ +00:00:26 v #1850 > > .....................//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.............. +00:00:26 v #1851 > > ////;;;;;;;;;;;;;;;;;;;............//;<<<<<<<<.................................. +00:00:26 v #1852 > > │ +00:00:26 v #1853 > > .....................//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\............. +00:00:26 v #1854 > > /////<<<<<<<<<<<<<<<<<<............/<<<<<<<<.................................... +00:00:26 v #1855 > > │ +00:00:26 v #1856 > > ......................//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;............. +00:00:26 v #1857 > > .///<<<<<<<<<<<<<<<<............................................................ +00:00:26 v #1858 > > │ +00:00:26 v #1859 > > ......................//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<............ +00:00:26 v #1860 > > .//<<<<<<<<<<<<<<<.............................................................. +00:00:26 v #1861 > > │ +00:00:26 v #1862 > > ......................//////;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<............. +00:00:26 v #1863 > > .<<<<<<......................................................................... +00:00:26 v #1864 > > │ +00:00:26 v #1865 > > ......................///////;;;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<.................. +00:00:26 v #1866 > > ................................................................................ +00:00:26 v #1867 > > │ +00:00:26 v #1868 > > .......................//////<<<<<<<<<<<<<<<<<<<<<<<<<<<<....................... +00:00:26 v #1869 > > ................................................................................ +00:00:26 v #1870 > > │ +00:00:26 v #1871 > > .......................////<<<<<<<<<<<<<<<<<<<<<<<<<<........................... +00:00:26 v #1872 > > ................................................................................ +00:00:26 v #1873 > > │ +00:00:26 v #1874 > > .......................///<<<<<<<<<<<<<<<<...................................... +00:00:26 v #1875 > > ................................................................................ +00:00:26 v #1876 > > │ +00:00:26 v #1877 > > ......................./<<<<<................................................... +00:00:26 v #1878 > > ................................................................................ +00:00:26 v #1879 > > │ +00:00:26 v #1880 > > ................................................................................ +00:00:26 v #1881 > > ................................................................................ +00:00:26 v #1882 > > │ +00:00:26 v #1883 > > ................................................................................ +00:00:26 v #1884 > > ................................................................................ +00:00:26 v #1885 > > │ +00:00:26 v #1886 > > ................................................................................ +00:00:26 v #1887 > > ................................................................................ +00:00:26 v #1888 > > │ +00:00:26 v #1889 > > ................................................................................ +00:00:26 v #1890 > > ................................................................................ +00:00:26 v #1891 > > │ +00:00:26 v #1892 > > ................................................................................ +00:00:26 v #1893 > > ................................................................................ +00:00:26 v #1894 > > │ +00:00:26 v #1895 > > ................................................................................ +00:00:26 v #1896 > > ................................................................................ +00:00:26 v #1897 > > │ +00:00:26 v #1898 > > ................................................................................ +00:00:26 v #1899 > > ................................................................................ +00:00:26 v #1900 > > │ +00:00:26 v #1901 > > ................................................................................ +00:00:26 v #1902 > > ................................................................................ +00:00:26 v #1903 > > │ +00:00:26 v #1904 > > ................................................................................ +00:00:26 v #1905 > > ................................................................................ +00:00:26 v #1906 > > │ +00:00:26 v #1907 > > ................................................................................ +00:00:26 v #1908 > > ................................................................................ +00:00:26 v #1909 > > │ +00:00:26 v #1910 > > ................................................................................ +00:00:26 v #1911 > > ................................................................................ +00:00:26 v #1912 > > │ +00:00:26 v #1913 > > │ +00:00:26 v #1914 > > ................................................................................ +00:00:26 v #1915 > > ................................................................................ +00:00:26 v #1916 > > │ +00:00:26 v #1917 > > ................................................................................ +00:00:26 v #1918 > > ................................................................................ +00:00:26 v #1919 > > │ +00:00:26 v #1920 > > ................................................................................ +00:00:26 v #1921 > > ................................................................................ +00:00:26 v #1922 > > │ +00:00:26 v #1923 > > ................................................................................ +00:00:26 v #1924 > > ................................................................................ +00:00:26 v #1925 > > │ +00:00:26 v #1926 > > ................................................................................ +00:00:26 v #1927 > > ................................................................................ +00:00:26 v #1928 > > │ +00:00:26 v #1929 > > ................................................................................ +00:00:26 v #1930 > > ................................................................................ +00:00:26 v #1931 > > │ +00:00:26 v #1932 > > ................................................................................ +00:00:26 v #1933 > > ................................................................................ +00:00:26 v #1934 > > │ +00:00:26 v #1935 > > ................................................................................ +00:00:26 v #1936 > > ................................................................................ +00:00:26 v #1937 > > │ +00:00:26 v #1938 > > ................................................................................ +00:00:26 v #1939 > > ................................................................................ +00:00:26 v #1940 > > │ +00:00:26 v #1941 > > ........................;;;;;;.................................................. +00:00:26 v #1942 > > ................................................................................ +00:00:26 v #1943 > > │ +00:00:26 v #1944 > > .......................>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;....................... +00:00:26 v #1945 > > ................................................................................ +00:00:26 v #1946 > > │ +00:00:26 v #1947 > > ......................./;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................... +00:00:26 v #1948 > > ................................................................................ +00:00:26 v #1949 > > │ +00:00:26 v #1950 > > ......................>/;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..................... +00:00:26 v #1951 > > ................................................................................ +00:00:26 v #1952 > > │ +00:00:26 v #1953 > > ......................///;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................... +00:00:26 v #1954 > > ................................................................................ +00:00:26 v #1955 > > │ +00:00:26 v #1956 > > .....................>///;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................... +00:00:26 v #1957 > > ................................................................................ +00:00:26 v #1958 > > │ +00:00:26 v #1959 > > ...................../////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... +00:00:26 v #1960 > > ................................................................................ +00:00:26 v #1961 > > │ +00:00:26 v #1962 > > ....................>/////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................. +00:00:26 v #1963 > > ..;;;;;;;;;;;;;;;;;............................................................. +00:00:26 v #1964 > > │ +00:00:26 v #1965 > > ....................//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................. +00:00:26 v #1966 > > .>/;;;;;;;;;;;;;;;;\............................................................ +00:00:26 v #1967 > > │ +00:00:26 v #1968 > > ...................>///////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................. +00:00:26 v #1969 > > >//;;;;;;;;;;;;;;;;;............................................................ +00:00:26 v #1970 > > │ +00:00:26 v #1971 > > ...................////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;............... +00:00:26 v #1972 > > ///;;;;;;;;;;;;;;;;;;..............>;;;;;;;;;................................... +00:00:26 v #1973 > > │ +00:00:26 v #1974 > > ....................////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.............. +00:00:26 v #1975 > > ////;;;;;;;;;;;;;;;;;\............>/;;;;;;;;;\.................................. +00:00:26 v #1976 > > │ +00:00:26 v #1977 > > ....................////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\............. +00:00:26 v #1978 > > ////;;;;;;;;;;;;;;;;;;............///;;;;;;;;;.................................. +00:00:26 v #1979 > > │ +00:00:26 v #1980 > > ....................////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;............. +00:00:26 v #1981 > > /////;;;;;;;;;;;;;;;;;;...........///;;;;;;;<<\................................. +00:00:26 v #1982 > > │ +00:00:26 v #1983 > > .....................////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;............. +00:00:26 v #1984 > > /////;;;;;;;;;;;;;;<<<<............///<<<<<<<<.................................. +00:00:26 v #1985 > > │ +00:00:26 v #1986 > > .....................////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\............ +00:00:26 v #1987 > > //////<<<<<<<<<<<<<<<<<............//<<<<<<<.................................... +00:00:26 v #1988 > > │ +00:00:26 v #1989 > > ...................../////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;............ +00:00:26 v #1990 > > /////<<<<<<<<<<<<<<<............................................................ +00:00:26 v #1991 > > │ +00:00:26 v #1992 > > ...................../////////;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<............ +00:00:26 v #1993 > > .//<<<<<<<<<<<<<<<.............................................................. +00:00:26 v #1994 > > │ +00:00:26 v #1995 > > ......................////////;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<<<................ +00:00:26 v #1996 > > ./<<<<<<<<...................................................................... +00:00:26 v #1997 > > │ +00:00:26 v #1998 > > ....................../////////<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<................... +00:00:26 v #1999 > > ................................................................................ +00:00:26 v #2000 > > │ +00:00:26 v #2001 > > ......................////////<<<<<<<<<<<<<<<<<<<<<<<<<<<....................... +00:00:26 v #2002 > > ................................................................................ +00:00:26 v #2003 > > │ +00:00:26 v #2004 > > ......................./////<<<<<<<<<<<<<<<<<<<<<<<<<........................... +00:00:26 v #2005 > > ................................................................................ +00:00:26 v #2006 > > │ +00:00:26 v #2007 > > .......................///<<<<<<<<<<<<<<<<<<<<.................................. +00:00:26 v #2008 > > ................................................................................ +00:00:26 v #2009 > > │ +00:00:26 v #2010 > > .......................//<<<<<<<<<.............................................. +00:00:26 v #2011 > > ................................................................................ +00:00:26 v #2012 > > │ +00:00:26 v #2013 > > ................................................................................ +00:00:26 v #2014 > > ................................................................................ +00:00:26 v #2015 > > │ +00:00:26 v #2016 > > ................................................................................ +00:00:26 v #2017 > > ................................................................................ +00:00:26 v #2018 > > │ +00:00:26 v #2019 > > ................................................................................ +00:00:26 v #2020 > > ................................................................................ +00:00:26 v #2021 > > │ +00:00:26 v #2022 > > ................................................................................ +00:00:26 v #2023 > > ................................................................................ +00:00:26 v #2024 > > │ +00:00:26 v #2025 > > ................................................................................ +00:00:26 v #2026 > > ................................................................................ +00:00:26 v #2027 > > │ +00:00:26 v #2028 > > ................................................................................ +00:00:26 v #2029 > > ................................................................................ +00:00:26 v #2030 > > │ +00:00:26 v #2031 > > ................................................................................ +00:00:26 v #2032 > > ................................................................................ +00:00:26 v #2033 > > │ +00:00:26 v #2034 > > ................................................................................ +00:00:26 v #2035 > > ................................................................................ +00:00:26 v #2036 > > │ +00:00:26 v #2037 > > ................................................................................ +00:00:26 v #2038 > > ................................................................................ +00:00:26 v #2039 > > │ +00:00:26 v #2040 > > ................................................................................ +00:00:26 v #2041 > > ................................................................................ +00:00:26 v #2042 > > │ +00:00:26 v #2043 > > ................................................................................ +00:00:26 v #2044 > > ................................................................................ +00:00:26 v #2045 > > │ +00:00:26 v #2046 > > │ +00:00:26 v #2047 > > ................................................................................ +00:00:26 v #2048 > > ................................................................................ +00:00:26 v #2049 > > │ +00:00:26 v #2050 > > ................................................................................ +00:00:26 v #2051 > > ................................................................................ +00:00:26 v #2052 > > │ +00:00:26 v #2053 > > ................................................................................ +00:00:26 v #2054 > > ................................................................................ +00:00:26 v #2055 > > │ +00:00:26 v #2056 > > ................................................................................ +00:00:26 v #2057 > > ................................................................................ +00:00:26 v #2058 > > │ +00:00:26 v #2059 > > ................................................................................ +00:00:26 v #2060 > > ................................................................................ +00:00:26 v #2061 > > │ +00:00:26 v #2062 > > ................................................................................ +00:00:26 v #2063 > > ................................................................................ +00:00:26 v #2064 > > │ +00:00:26 v #2065 > > ................................................................................ +00:00:26 v #2066 > > ................................................................................ +00:00:26 v #2067 > > │ +00:00:26 v #2068 > > ................................................................................ +00:00:26 v #2069 > > ................................................................................ +00:00:26 v #2070 > > │ +00:00:26 v #2071 > > ................................................................................ +00:00:26 v #2072 > > ................................................................................ +00:00:26 v #2073 > > │ +00:00:26 v #2074 > > ........................;;;;;;;;;............................................... +00:00:26 v #2075 > > ................................................................................ +00:00:26 v #2076 > > │ +00:00:26 v #2077 > > .......................>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;........................ +00:00:26 v #2078 > > ................................................................................ +00:00:26 v #2079 > > │ +00:00:26 v #2080 > > ......................./;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;....................... +00:00:26 v #2081 > > ................................................................................ +00:00:26 v #2082 > > │ +00:00:26 v #2083 > > ......................>//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................... +00:00:26 v #2084 > > ................................................................................ +00:00:26 v #2085 > > │ +00:00:26 v #2086 > > ......................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..................... +00:00:26 v #2087 > > ................................................................................ +00:00:26 v #2088 > > │ +00:00:26 v #2089 > > .....................>////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................... +00:00:26 v #2090 > > ................................................................................ +00:00:26 v #2091 > > │ +00:00:26 v #2092 > > ....................>//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................... +00:00:26 v #2093 > > ................................................................................ +00:00:26 v #2094 > > │ +00:00:26 v #2095 > > ....................>//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................. +00:00:26 v #2096 > > ..;;;;;;;;;;;;;;;;;............................................................. +00:00:26 v #2097 > > │ +00:00:26 v #2098 > > ...................>////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................. +00:00:26 v #2099 > > .>/;;;;;;;;;;;;;;;;\............................................................ +00:00:26 v #2100 > > │ +00:00:26 v #2101 > > .................../////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................ +00:00:26 v #2102 > > >///;;;;;;;;;;;;;;;;............................................................ +00:00:26 v #2103 > > │ +00:00:26 v #2104 > > ..................///////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...............> +00:00:26 v #2105 > > ////;;;;;;;;;;;;;;;;;..............>;;;;;;;;;................................... +00:00:26 v #2106 > > │ +00:00:26 v #2107 > > ...................//////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.............> +00:00:26 v #2108 > > ////;;;;;;;;;;;;;;;;;;............>//;;;;;;;;\.................................. +00:00:26 v #2109 > > │ +00:00:26 v #2110 > > ...................///////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;............ +00:00:26 v #2111 > > /////;;;;;;;;;;;;;;;;;\...........///;;;;;;;;;.................................. +00:00:26 v #2112 > > │ +00:00:26 v #2113 > > ...................///////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;............ +00:00:26 v #2114 > > //////;;;;;;;;;;;;;;;;;...........////;;;<<<<<<................................. +00:00:26 v #2115 > > │ +00:00:26 v #2116 > > ....................///////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;........... +00:00:26 v #2117 > > ///////;;;;;;;<<<<<<<<<<...........///<<<<<<<<.................................. +00:00:26 v #2118 > > │ +00:00:26 v #2119 > > ....................///////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;........... +00:00:26 v #2120 > > ///////<<<<<<<<<<<<<<<.............//<<<<<<<.................................... +00:00:26 v #2121 > > │ +00:00:26 v #2122 > > .....................//////////;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<........... +00:00:26 v #2123 > > /////<<<<<<<<<<<<<<<............................................................ +00:00:26 v #2124 > > │ +00:00:26 v #2125 > > .....................///////////;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<<<<.............. +00:00:26 v #2126 > > .///<<<<<<<<<<<<<<.............................................................. +00:00:26 v #2127 > > │ +00:00:26 v #2128 > > .....................////////////<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<................. +00:00:26 v #2129 > > .//<<<<<<<<<.................................................................... +00:00:26 v #2130 > > │ +00:00:26 v #2131 > > ......................//////////<<<<<<<<<<<<<<<<<<<<<<<<<<<<.................... +00:00:26 v #2132 > > ................................................................................ +00:00:26 v #2133 > > │ +00:00:26 v #2134 > > ....................../////////<<<<<<<<<<<<<<<<<<<<<<<<<<....................... +00:00:26 v #2135 > > ................................................................................ +00:00:26 v #2136 > > │ +00:00:26 v #2137 > > ......................///////<<<<<<<<<<<<<<<<<<<<<<<<<.......................... +00:00:26 v #2138 > > ................................................................................ +00:00:26 v #2139 > > │ +00:00:26 v #2140 > > ......................./////<<<<<<<<<<<<<<<<<<<<................................ +00:00:26 v #2141 > > ................................................................................ +00:00:26 v #2142 > > │ +00:00:26 v #2143 > > .......................///<<<<<<<<<<<<.......................................... +00:00:26 v #2144 > > ................................................................................ +00:00:26 v #2145 > > │ +00:00:26 v #2146 > > ........................<<<<<................................................... +00:00:26 v #2147 > > ................................................................................ +00:00:26 v #2148 > > │ +00:00:26 v #2149 > > ................................................................................ +00:00:26 v #2150 > > ................................................................................ +00:00:26 v #2151 > > │ +00:00:26 v #2152 > > ................................................................................ +00:00:26 v #2153 > > ................................................................................ +00:00:26 v #2154 > > │ +00:00:26 v #2155 > > ................................................................................ +00:00:26 v #2156 > > ................................................................................ +00:00:26 v #2157 > > │ +00:00:26 v #2158 > > ................................................................................ +00:00:26 v #2159 > > ................................................................................ +00:00:26 v #2160 > > │ +00:00:26 v #2161 > > ................................................................................ +00:00:26 v #2162 > > ................................................................................ +00:00:26 v #2163 > > │ +00:00:26 v #2164 > > ................................................................................ +00:00:26 v #2165 > > ................................................................................ +00:00:26 v #2166 > > │ +00:00:26 v #2167 > > ................................................................................ +00:00:26 v #2168 > > ................................................................................ +00:00:26 v #2169 > > │ +00:00:26 v #2170 > > ................................................................................ +00:00:26 v #2171 > > ................................................................................ +00:00:26 v #2172 > > │ +00:00:26 v #2173 > > ................................................................................ +00:00:26 v #2174 > > ................................................................................ +00:00:26 v #2175 > > │ +00:00:26 v #2176 > > ................................................................................ +00:00:26 v #2177 > > ................................................................................ +00:00:26 v #2178 > > │ +00:00:26 v #2179 > > │ +00:00:26 v #2180 > > ................................................................................ +00:00:26 v #2181 > > ................................................................................ +00:00:26 v #2182 > > │ +00:00:26 v #2183 > > ................................................................................ +00:00:26 v #2184 > > ................................................................................ +00:00:26 v #2185 > > │ +00:00:26 v #2186 > > ................................................................................ +00:00:26 v #2187 > > ................................................................................ +00:00:26 v #2188 > > │ +00:00:26 v #2189 > > ................................................................................ +00:00:26 v #2190 > > ................................................................................ +00:00:26 v #2191 > > │ +00:00:26 v #2192 > > ................................................................................ +00:00:26 v #2193 > > ................................................................................ +00:00:26 v #2194 > > │ +00:00:26 v #2195 > > ................................................................................ +00:00:26 v #2196 > > ................................................................................ +00:00:26 v #2197 > > │ +00:00:26 v #2198 > > ................................................................................ +00:00:26 v #2199 > > ................................................................................ +00:00:26 v #2200 > > │ +00:00:26 v #2201 > > ................................................................................ +00:00:26 v #2202 > > ................................................................................ +00:00:26 v #2203 > > │ +00:00:26 v #2204 > > ................................................................................ +00:00:26 v #2205 > > ................................................................................ +00:00:26 v #2206 > > │ +00:00:26 v #2207 > > ........................;;;;;;;;;;.............................................. +00:00:26 v #2208 > > ................................................................................ +00:00:26 v #2209 > > │ +00:00:26 v #2210 > > .......................>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;......................... +00:00:26 v #2211 > > ................................................................................ +00:00:26 v #2212 > > │ +00:00:26 v #2213 > > .......................//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;........................ +00:00:26 v #2214 > > ................................................................................ +00:00:26 v #2215 > > │ +00:00:26 v #2216 > > ......................>//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;....................... +00:00:26 v #2217 > > ................................................................................ +00:00:26 v #2218 > > │ +00:00:26 v #2219 > > .....................>////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................... +00:00:26 v #2220 > > ................................................................................ +00:00:26 v #2221 > > │ +00:00:26 v #2222 > > .....................//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..................... +00:00:26 v #2223 > > ................................................................................ +00:00:26 v #2224 > > │ +00:00:26 v #2225 > > ....................>//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................... +00:00:26 v #2226 > > ................................................................................ +00:00:26 v #2227 > > │ +00:00:26 v #2228 > > ....................////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................. +00:00:26 v #2229 > > ../;;;;;;;;;;;;;;;.............................................................. +00:00:26 v #2230 > > │ +00:00:26 v #2231 > > ...................>/////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................. +00:00:26 v #2232 > > .>/;;;;;;;;;;;;;;;;............................................................. +00:00:26 v #2233 > > │ +00:00:26 v #2234 > > ..................>//////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................ +00:00:26 v #2235 > > >///;;;;;;;;;;;;;;;;............................................................ +00:00:26 v #2236 > > │ +00:00:26 v #2237 > > ..................////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..............> +00:00:26 v #2238 > > ////;;;;;;;;;;;;;;;;;..............>;;;;;;;;;................................... +00:00:26 v #2239 > > │ +00:00:26 v #2240 > > ................../////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;............> +00:00:26 v #2241 > > /////;;;;;;;;;;;;;;;;;............>//;;;;;;;;\.................................. +00:00:26 v #2242 > > │ +00:00:26 v #2243 > > ................../////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;........... +00:00:26 v #2244 > > //////;;;;;;;;;;;;;;;;;..........////;;;;;;;;;\................................. +00:00:26 v #2245 > > │ +00:00:26 v #2246 > > .................../////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.......... +00:00:26 v #2247 > > //////;;;;;;;;;;;;;;;;;;..........////;<<<<<<<<................................. +00:00:26 v #2248 > > │ +00:00:26 v #2249 > > .................../////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.......... +00:00:26 v #2250 > > ///////;;<<<<<<<<<<<<<<<...........///<<<<<<<<.................................. +00:00:26 v #2251 > > │ +00:00:26 v #2252 > > ..................../////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<........... +00:00:26 v #2253 > > ////////<<<<<<<<<<<<<<.............//<<<<<<<.................................... +00:00:26 v #2254 > > │ +00:00:26 v #2255 > > ....................//////////////;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<<<............. +00:00:26 v #2256 > > //////<<<<<<<<<<<<<<............................................................ +00:00:26 v #2257 > > │ +00:00:26 v #2258 > > ....................//////////////;;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<............... +00:00:26 v #2259 > > .////<<<<<<<<<<<<<.............................................................. +00:00:26 v #2260 > > │ +00:00:26 v #2261 > > ...................../////////////<<<<<<<<<<<<<<<<<<<<<<<<<<<<.................. +00:00:26 v #2262 > > ..<<<<<<<<<<<................................................................... +00:00:26 v #2263 > > │ +00:00:26 v #2264 > > .....................////////////<<<<<<<<<<<<<<<<<<<<<<<<<<..................... +00:00:26 v #2265 > > ................................................................................ +00:00:26 v #2266 > > │ +00:00:26 v #2267 > > ....................../////////<<<<<<<<<<<<<<<<<<<<<<<<<........................ +00:00:26 v #2268 > > ................................................................................ +00:00:26 v #2269 > > │ +00:00:26 v #2270 > > ......................///////<<<<<<<<<<<<<<<<<<<<<<<<<.......................... +00:00:26 v #2271 > > ................................................................................ +00:00:26 v #2272 > > │ +00:00:26 v #2273 > > ......................./////<<<<<<<<<<<<<<<<<<<<<<.............................. +00:00:26 v #2274 > > ................................................................................ +00:00:26 v #2275 > > │ +00:00:26 v #2276 > > .......................////<<<<<<<<<<<<<<....................................... +00:00:26 v #2277 > > ................................................................................ +00:00:26 v #2278 > > │ +00:00:26 v #2279 > > ......................../<<<<<<<<............................................... +00:00:26 v #2280 > > ................................................................................ +00:00:26 v #2281 > > │ +00:00:26 v #2282 > > ................................................................................ +00:00:26 v #2283 > > ................................................................................ +00:00:26 v #2284 > > │ +00:00:26 v #2285 > > ................................................................................ +00:00:26 v #2286 > > ................................................................................ +00:00:26 v #2287 > > │ +00:00:26 v #2288 > > ................................................................................ +00:00:26 v #2289 > > ................................................................................ +00:00:26 v #2290 > > │ +00:00:26 v #2291 > > ................................................................................ +00:00:26 v #2292 > > ................................................................................ +00:00:26 v #2293 > > │ +00:00:26 v #2294 > > ................................................................................ +00:00:26 v #2295 > > ................................................................................ +00:00:26 v #2296 > > │ +00:00:26 v #2297 > > ................................................................................ +00:00:26 v #2298 > > ................................................................................ +00:00:26 v #2299 > > │ +00:00:26 v #2300 > > ................................................................................ +00:00:26 v #2301 > > ................................................................................ +00:00:26 v #2302 > > │ +00:00:26 v #2303 > > ................................................................................ +00:00:26 v #2304 > > ................................................................................ +00:00:26 v #2305 > > │ +00:00:26 v #2306 > > ................................................................................ +00:00:26 v #2307 > > ................................................................................ +00:00:26 v #2308 > > │ +00:00:26 v #2309 > > ................................................................................ +00:00:26 v #2310 > > ................................................................................ +00:00:26 v #2311 > > │ +00:00:26 v #2312 > > │ +00:00:26 v #2313 > > ................................................................................ +00:00:26 v #2314 > > ................................................................................ +00:00:26 v #2315 > > │ +00:00:26 v #2316 > > ................................................................................ +00:00:26 v #2317 > > ................................................................................ +00:00:26 v #2318 > > │ +00:00:26 v #2319 > > ................................................................................ +00:00:26 v #2320 > > ................................................................................ +00:00:26 v #2321 > > │ +00:00:26 v #2322 > > ................................................................................ +00:00:26 v #2323 > > ................................................................................ +00:00:26 v #2324 > > │ +00:00:26 v #2325 > > ................................................................................ +00:00:26 v #2326 > > ................................................................................ +00:00:26 v #2327 > > │ +00:00:26 v #2328 > > ................................................................................ +00:00:26 v #2329 > > ................................................................................ +00:00:26 v #2330 > > │ +00:00:26 v #2331 > > ................................................................................ +00:00:26 v #2332 > > ................................................................................ +00:00:26 v #2333 > > │ +00:00:26 v #2334 > > ................................................................................ +00:00:26 v #2335 > > ................................................................................ +00:00:26 v #2336 > > │ +00:00:26 v #2337 > > ................................................................................ +00:00:26 v #2338 > > ................................................................................ +00:00:26 v #2339 > > │ +00:00:26 v #2340 > > ........................;;;;;;;;;............................................... +00:00:26 v #2341 > > ................................................................................ +00:00:26 v #2342 > > │ +00:00:26 v #2343 > > .......................>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.......................... +00:00:26 v #2344 > > ................................................................................ +00:00:26 v #2345 > > │ +00:00:26 v #2346 > > ......................>//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;......................... +00:00:26 v #2347 > > ................................................................................ +00:00:26 v #2348 > > │ +00:00:26 v #2349 > > ......................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;........................ +00:00:26 v #2350 > > ................................................................................ +00:00:26 v #2351 > > │ +00:00:26 v #2352 > > .....................>/////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................... +00:00:26 v #2353 > > ................................................................................ +00:00:26 v #2354 > > │ +00:00:26 v #2355 > > ....................>//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..................... +00:00:26 v #2356 > > ................................................................................ +00:00:26 v #2357 > > │ +00:00:26 v #2358 > > ....................>///////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................... +00:00:26 v #2359 > > ................................................................................ +00:00:26 v #2360 > > │ +00:00:26 v #2361 > > ...................>/////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................. +00:00:26 v #2362 > > ..;;;;;;;;;;;;;;;;.............................................................. +00:00:26 v #2363 > > │ +00:00:26 v #2364 > > ...................///////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................. +00:00:26 v #2365 > > .>//;;;;;;;;;;;;;;;............................................................. +00:00:26 v #2366 > > │ +00:00:26 v #2367 > > ..................>////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................ +00:00:26 v #2368 > > >///;;;;;;;;;;;;;;;;............................................................ +00:00:26 v #2369 > > │ +00:00:26 v #2370 > > ................../////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.............> +00:00:26 v #2371 > > /////;;;;;;;;;;;;;;;;..............>;;;;;;;;\................................... +00:00:26 v #2372 > > │ +00:00:26 v #2373 > > .................>//////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...........> +00:00:26 v #2374 > > //////;;;;;;;;;;;;;;;;............>//;;;;;;;;\.................................. +00:00:26 v #2375 > > │ +00:00:26 v #2376 > > .................////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;......... +00:00:26 v #2377 > > //////;;;;;;;;;;;;;;;;;..........>////;;;;;;;;;................................. +00:00:26 v #2378 > > │ +00:00:26 v #2379 > > ..................////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;......... +00:00:26 v #2380 > > ///////;;;;;;;;;;;;<<<<<........../////<<<<<<<<................................. +00:00:26 v #2381 > > │ +00:00:26 v #2382 > > ................../////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<......... +00:00:26 v #2383 > > ////////;<<<<<<<<<<<<<<...........////<<<<<<<<.................................. +00:00:26 v #2384 > > │ +00:00:26 v #2385 > > ...................////////////////;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<<........... +00:00:26 v #2386 > > ////////<<<<<<<<<<<<<<.............//<<<<<<<.................................... +00:00:26 v #2387 > > │ +00:00:26 v #2388 > > .................../////////////////;;;<<<<<<<<<<<<<<<<<<<<<<<<<<<.............. +00:00:26 v #2389 > > //////<<<<<<<<<<<<<<............................................................ +00:00:26 v #2390 > > │ +00:00:26 v #2391 > > ....................////////////////<<<<<<<<<<<<<<<<<<<<<<<<<<<................. +00:00:26 v #2392 > > .///<<<<<<<<<<<<<<.............................................................. +00:00:26 v #2393 > > │ +00:00:26 v #2394 > > .....................//////////////<<<<<<<<<<<<<<<<<<<<<<<<<<................... +00:00:26 v #2395 > > ..//<<<<<<<<<<.................................................................. +00:00:26 v #2396 > > │ +00:00:26 v #2397 > > ...................../////////////<<<<<<<<<<<<<<<<<<<<<<<<<..................... +00:00:26 v #2398 > > ..<............................................................................. +00:00:26 v #2399 > > │ +00:00:26 v #2400 > > ......................//////////<<<<<<<<<<<<<<<<<<<<<<<<........................ +00:00:26 v #2401 > > ................................................................................ +00:00:26 v #2402 > > │ +00:00:26 v #2403 > > ....................../////////<<<<<<<<<<<<<<<<<<<<<<<.......................... +00:00:26 v #2404 > > ................................................................................ +00:00:26 v #2405 > > │ +00:00:26 v #2406 > > .......................//////<<<<<<<<<<<<<<<<<<<<<<............................. +00:00:26 v #2407 > > ................................................................................ +00:00:26 v #2408 > > │ +00:00:26 v #2409 > > ........................////<<<<<<<<<<<<<<<..................................... +00:00:26 v #2410 > > ................................................................................ +00:00:26 v #2411 > > │ +00:00:26 v #2412 > > ........................//<<<<<<<<<<............................................ +00:00:26 v #2413 > > ................................................................................ +00:00:26 v #2414 > > │ +00:00:26 v #2415 > > .........................<<<.................................................... +00:00:26 v #2416 > > ................................................................................ +00:00:26 v #2417 > > │ +00:00:26 v #2418 > > ................................................................................ +00:00:26 v #2419 > > ................................................................................ +00:00:26 v #2420 > > │ +00:00:26 v #2421 > > ................................................................................ +00:00:26 v #2422 > > ................................................................................ +00:00:26 v #2423 > > │ +00:00:26 v #2424 > > ................................................................................ +00:00:26 v #2425 > > ................................................................................ +00:00:26 v #2426 > > │ +00:00:26 v #2427 > > ................................................................................ +00:00:26 v #2428 > > ................................................................................ +00:00:26 v #2429 > > │ +00:00:26 v #2430 > > ................................................................................ +00:00:26 v #2431 > > ................................................................................ +00:00:26 v #2432 > > │ +00:00:26 v #2433 > > ................................................................................ +00:00:26 v #2434 > > ................................................................................ +00:00:26 v #2435 > > │ +00:00:26 v #2436 > > ................................................................................ +00:00:26 v #2437 > > ................................................................................ +00:00:26 v #2438 > > │ +00:00:26 v #2439 > > ................................................................................ +00:00:26 v #2440 > > ................................................................................ +00:00:26 v #2441 > > │ +00:00:26 v #2442 > > ................................................................................ +00:00:26 v #2443 > > ................................................................................ +00:00:26 v #2444 > > │ +00:00:26 v #2445 > > │ +00:00:26 v #2446 > > ................................................................................ +00:00:26 v #2447 > > ................................................................................ +00:00:26 v #2448 > > │ +00:00:26 v #2449 > > ................................................................................ +00:00:26 v #2450 > > ................................................................................ +00:00:26 v #2451 > > │ +00:00:26 v #2452 > > ................................................................................ +00:00:26 v #2453 > > ................................................................................ +00:00:26 v #2454 > > │ +00:00:26 v #2455 > > ................................................................................ +00:00:26 v #2456 > > ................................................................................ +00:00:26 v #2457 > > │ +00:00:26 v #2458 > > ................................................................................ +00:00:26 v #2459 > > ................................................................................ +00:00:26 v #2460 > > │ +00:00:26 v #2461 > > ................................................................................ +00:00:26 v #2462 > > ................................................................................ +00:00:26 v #2463 > > │ +00:00:26 v #2464 > > ................................................................................ +00:00:26 v #2465 > > ................................................................................ +00:00:26 v #2466 > > │ +00:00:26 v #2467 > > ................................................................................ +00:00:26 v #2468 > > ................................................................................ +00:00:26 v #2469 > > │ +00:00:26 v #2470 > > ................................................................................ +00:00:26 v #2471 > > ................................................................................ +00:00:26 v #2472 > > │ +00:00:26 v #2473 > > .......................>;;;;;;;;................................................ +00:00:26 v #2474 > > ................................................................................ +00:00:26 v #2475 > > │ +00:00:26 v #2476 > > .......................>/;;;;;;;;;;;;;;;;;;;;;;;;;;;\........................... +00:00:26 v #2477 > > ................................................................................ +00:00:26 v #2478 > > │ +00:00:26 v #2479 > > ......................>//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.......................... +00:00:26 v #2480 > > ................................................................................ +00:00:26 v #2481 > > │ +00:00:26 v #2482 > > ......................////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\........................ +00:00:26 v #2483 > > ................................................................................ +00:00:26 v #2484 > > │ +00:00:26 v #2485 > > .....................>//////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;....................... +00:00:26 v #2486 > > ................................................................................ +00:00:26 v #2487 > > │ +00:00:26 v #2488 > > ....................>////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\..................... +00:00:26 v #2489 > > ................................................................................ +00:00:26 v #2490 > > │ +00:00:26 v #2491 > > ..................../////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................... +00:00:26 v #2492 > > ................................................................................ +00:00:26 v #2493 > > │ +00:00:26 v #2494 > > ...................>///////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................. +00:00:26 v #2495 > > ..;;;;;;;;;;;;;;;\.............................................................. +00:00:26 v #2496 > > │ +00:00:26 v #2497 > > ..................>/////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................. +00:00:26 v #2498 > > .>/;;;;;;;;;;;;;;;;............................................................. +00:00:26 v #2499 > > │ +00:00:26 v #2500 > > ..................///////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................ +00:00:26 v #2501 > > >///;;;;;;;;;;;;;;;;............................................................ +00:00:26 v #2502 > > │ +00:00:26 v #2503 > > .................>////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.............> +00:00:26 v #2504 > > /////;;;;;;;;;;;;;;;;..............>/;;;;;;;\................................... +00:00:26 v #2505 > > │ +00:00:26 v #2506 > > ................>//////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\..........> +00:00:26 v #2507 > > //////;;;;;;;;;;;;;;;;\...........>///;;;;;;;\.................................. +00:00:26 v #2508 > > │ +00:00:26 v #2509 > > ................>///////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;........> +00:00:26 v #2510 > > ///////;;;;;;;;;;;;;;;;;.........>////;;;;;;;;;................................. +00:00:26 v #2511 > > │ +00:00:26 v #2512 > > .................///////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<<<....... +00:00:26 v #2513 > > ////////;;;;;;<<<<<<<<<<.........//////<<<<<<<<................................. +00:00:26 v #2514 > > │ +00:00:26 v #2515 > > ................./////////////////////;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<......... +00:00:26 v #2516 > > /////////<<<<<<<<<<<<<<...........////<<<<<<<<.................................. +00:00:26 v #2517 > > │ +00:00:26 v #2518 > > ..................////////////////////;;;;<<<<<<<<<<<<<<<<<<<<<<<<<............ +00:00:26 v #2519 > > ////////<<<<<<<<<<<<<..............//<<<<<<<.................................... +00:00:26 v #2520 > > │ +00:00:26 v #2521 > > ...................////////////////////<<<<<<<<<<<<<<<<<<<<<<<<<<............... +00:00:26 v #2522 > > ///////<<<<<<<<<<<<<............................................................ +00:00:26 v #2523 > > │ +00:00:26 v #2524 > > ...................//////////////////<<<<<<<<<<<<<<<<<<<<<<<<<.................. +00:00:26 v #2525 > > .////<<<<<<<<<<<<<.............................................................. +00:00:26 v #2526 > > │ +00:00:26 v #2527 > > ....................////////////////<<<<<<<<<<<<<<<<<<<<<<<<.................... +00:00:26 v #2528 > > ..//<<<<<<<<<<<................................................................. +00:00:26 v #2529 > > │ +00:00:26 v #2530 > > .....................//////////////<<<<<<<<<<<<<<<<<<<<<<<...................... +00:00:26 v #2531 > > ...<<........................................................................... +00:00:26 v #2532 > > │ +00:00:26 v #2533 > > ......................////////////<<<<<<<<<<<<<<<<<<<<<<........................ +00:00:26 v #2534 > > ................................................................................ +00:00:26 v #2535 > > │ +00:00:26 v #2536 > > ......................//////////<<<<<<<<<<<<<<<<<<<<<<.......................... +00:00:26 v #2537 > > ................................................................................ +00:00:26 v #2538 > > │ +00:00:26 v #2539 > > .......................///////<<<<<<<<<<<<<<<<<<<<<<............................ +00:00:26 v #2540 > > ................................................................................ +00:00:26 v #2541 > > │ +00:00:26 v #2542 > > ......................../////<<<<<<<<<<<<<<<<................................... +00:00:26 v #2543 > > ................................................................................ +00:00:26 v #2544 > > │ +00:00:26 v #2545 > > ........................////<<<<<<<<<<.......................................... +00:00:26 v #2546 > > ................................................................................ +00:00:26 v #2547 > > │ +00:00:26 v #2548 > > ........................./<<<<<<................................................ +00:00:26 v #2549 > > ................................................................................ +00:00:26 v #2550 > > │ +00:00:26 v #2551 > > ................................................................................ +00:00:26 v #2552 > > ................................................................................ +00:00:26 v #2553 > > │ +00:00:26 v #2554 > > ................................................................................ +00:00:26 v #2555 > > ................................................................................ +00:00:26 v #2556 > > │ +00:00:26 v #2557 > > ................................................................................ +00:00:26 v #2558 > > ................................................................................ +00:00:26 v #2559 > > │ +00:00:26 v #2560 > > ................................................................................ +00:00:26 v #2561 > > ................................................................................ +00:00:26 v #2562 > > │ +00:00:26 v #2563 > > ................................................................................ +00:00:26 v #2564 > > ................................................................................ +00:00:26 v #2565 > > │ +00:00:26 v #2566 > > ................................................................................ +00:00:26 v #2567 > > ................................................................................ +00:00:26 v #2568 > > │ +00:00:26 v #2569 > > ................................................................................ +00:00:26 v #2570 > > ................................................................................ +00:00:26 v #2571 > > │ +00:00:26 v #2572 > > ................................................................................ +00:00:26 v #2573 > > ................................................................................ +00:00:26 v #2574 > > │ +00:00:26 v #2575 > > ................................................................................ +00:00:26 v #2576 > > ................................................................................ +00:00:26 v #2577 > > │ +00:00:26 v #2578 > > │ +00:00:26 v #2579 > > ................................................................................ +00:00:26 v #2580 > > ................................................................................ +00:00:26 v #2581 > > │ +00:00:26 v #2582 > > ................................................................................ +00:00:26 v #2583 > > ................................................................................ +00:00:26 v #2584 > > │ +00:00:26 v #2585 > > ................................................................................ +00:00:26 v #2586 > > ................................................................................ +00:00:26 v #2587 > > │ +00:00:26 v #2588 > > ................................................................................ +00:00:26 v #2589 > > ................................................................................ +00:00:26 v #2590 > > │ +00:00:26 v #2591 > > ................................................................................ +00:00:26 v #2592 > > ................................................................................ +00:00:26 v #2593 > > │ +00:00:26 v #2594 > > ................................................................................ +00:00:26 v #2595 > > ................................................................................ +00:00:26 v #2596 > > │ +00:00:26 v #2597 > > ................................................................................ +00:00:26 v #2598 > > ................................................................................ +00:00:26 v #2599 > > │ +00:00:26 v #2600 > > ................................................................................ +00:00:26 v #2601 > > ................................................................................ +00:00:26 v #2602 > > │ +00:00:26 v #2603 > > ................................................................................ +00:00:26 v #2604 > > ................................................................................ +00:00:26 v #2605 > > │ +00:00:26 v #2606 > > .......................;;;;;;;.................................................. +00:00:26 v #2607 > > ................................................................................ +00:00:26 v #2608 > > │ +00:00:26 v #2609 > > ......................./;;;;;;;;;;;;;;;;;;;;;;;;;;;............................. +00:00:26 v #2610 > > ................................................................................ +00:00:26 v #2611 > > │ +00:00:26 v #2612 > > ......................>///;;;;;;;;;;;;;;;;;;;;;;;;;;;........................... +00:00:26 v #2613 > > ................................................................................ +00:00:26 v #2614 > > │ +00:00:26 v #2615 > > .....................>////;;;;;;;;;;;;;;;;;;;;;;;;;;;;.......................... +00:00:26 v #2616 > > ................................................................................ +00:00:26 v #2617 > > │ +00:00:26 v #2618 > > .....................///////;;;;;;;;;;;;;;;;;;;;;;;;;;;;........................ +00:00:26 v #2619 > > ................................................................................ +00:00:26 v #2620 > > │ +00:00:26 v #2621 > > ....................>/////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;...................... +00:00:26 v #2622 > > ................................................................................ +00:00:26 v #2623 > > │ +00:00:26 v #2624 > > ...................>///////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.................... +00:00:26 v #2625 > > ................................................................................ +00:00:26 v #2626 > > │ +00:00:26 v #2627 > > ...................>///////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................. +00:00:26 v #2628 > > ../;;;;;;;;;;;;;;............................................................... +00:00:26 v #2629 > > │ +00:00:26 v #2630 > > ..................>/////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;................. +00:00:26 v #2631 > > .>/;;;;;;;;;;;;;;;;............................................................. +00:00:26 v #2632 > > │ +00:00:26 v #2633 > > ..................////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;............... +00:00:26 v #2634 > > >///;;;;;;;;;;;;;;;;............................................................ +00:00:26 v #2635 > > │ +00:00:26 v #2636 > > .................>//////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;............> +00:00:26 v #2637 > > ///////;;;;;;;;;;;;;;..............>/;;;;;;;.................................... +00:00:26 v #2638 > > │ +00:00:26 v #2639 > > ................>////////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..........> +00:00:26 v #2640 > > ////////;;;;;;;;;;;;;;;...........>///;;;;;;;;.................................. +00:00:26 v #2641 > > │ +00:00:26 v #2642 > > ................/////////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<<<.......> +00:00:26 v #2643 > > /////////;;;;;;;;;;;;;;<.........>////;;;;;;;;<................................. +00:00:26 v #2644 > > │ +00:00:26 v #2645 > > ...............////////////////////////;;;;;;;;;;;;;;;;;<<<<<<<<<<<<<........ +00:00:26 v #2646 > > /////////;<<<<<<<<<<<<<<.........//////;<<<<<<<................................. +00:00:26 v #2647 > > │ +00:00:26 v #2648 > > ................////////////////////////;;;;<<<<<<<<<<<<<<<<<<<<<<<........... +00:00:26 v #2649 > > //////////<<<<<<<<<<<<<.........../////<<<<<<<.................................. +00:00:26 v #2650 > > │ +00:00:26 v #2651 > > .................////////////////////////<<<<<<<<<<<<<<<<<<<<<<<<<............. +00:00:26 v #2652 > > /////////<<<<<<<<<<<<..............//<<<<<<<.................................... +00:00:26 v #2653 > > │ +00:00:26 v #2654 > > ..................//////////////////////<<<<<<<<<<<<<<<<<<<<<<<<................ +00:00:26 v #2655 > > ////////<<<<<<<<<<<<............................................................ +00:00:26 v #2656 > > │ +00:00:26 v #2657 > > ...................///////////////////<<<<<<<<<<<<<<<<<<<<<<<<.................. +00:00:26 v #2658 > > ./////<<<<<<<<<<<<.............................................................. +00:00:26 v #2659 > > │ +00:00:26 v #2660 > > ..................../////////////////<<<<<<<<<<<<<<<<<<<<<<<.................... +00:00:26 v #2661 > > ..///<<<<<<<<<<................................................................. +00:00:26 v #2662 > > │ +00:00:26 v #2663 > > .....................///////////////<<<<<<<<<<<<<<<<<<<<<<...................... +00:00:26 v #2664 > > .../<<<......................................................................... +00:00:26 v #2665 > > │ +00:00:26 v #2666 > > .....................//////////////<<<<<<<<<<<<<<<<<<<<<........................ +00:00:26 v #2667 > > ................................................................................ +00:00:26 v #2668 > > │ +00:00:26 v #2669 > > ......................///////////<<<<<<<<<<<<<<<<<<<<<.......................... +00:00:26 v #2670 > > ................................................................................ +00:00:26 v #2671 > > │ +00:00:26 v #2672 > > ......................./////////<<<<<<<<<<<<<<<<<<<<............................ +00:00:26 v #2673 > > ................................................................................ +00:00:26 v #2674 > > │ +00:00:26 v #2675 > > ........................///////<<<<<<<<<<<<<<<.................................. +00:00:26 v #2676 > > ................................................................................ +00:00:26 v #2677 > > │ +00:00:26 v #2678 > > .........................////<<<<<<<<<<<........................................ +00:00:26 v #2679 > > ................................................................................ +00:00:26 v #2680 > > │ +00:00:26 v #2681 > > ..........................//<<<<<<<............................................. +00:00:26 v #2682 > > ................................................................................ +00:00:26 v #2683 > > │ +00:00:26 v #2684 > > ...........................<<................................................... +00:00:26 v #2685 > > ................................................................................ +00:00:26 v #2686 > > │ +00:00:26 v #2687 > > ................................................................................ +00:00:26 v #2688 > > ................................................................................ +00:00:26 v #2689 > > │ +00:00:26 v #2690 > > ................................................................................ +00:00:26 v #2691 > > ................................................................................ +00:00:26 v #2692 > > │ +00:00:26 v #2693 > > ................................................................................ +00:00:26 v #2694 > > ................................................................................ +00:00:26 v #2695 > > │ +00:00:26 v #2696 > > ................................................................................ +00:00:26 v #2697 > > ................................................................................ +00:00:26 v #2698 > > │ +00:00:26 v #2699 > > ................................................................................ +00:00:26 v #2700 > > ................................................................................ +00:00:26 v #2701 > > │ +00:00:26 v #2702 > > ................................................................................ +00:00:26 v #2703 > > ................................................................................ +00:00:26 v #2704 > > │ +00:00:26 v #2705 > > ................................................................................ +00:00:26 v #2706 > > ................................................................................ +00:00:26 v #2707 > > │ +00:00:26 v #2708 > > ................................................................................ +00:00:26 v #2709 > > ................................................................................ +00:00:26 v #2710 > > │ +00:00:26 v #2711 > > │ +00:00:26 v #2712 > > ................................................................................ +00:00:26 v #2713 > > ................................................................................ +00:00:26 v #2714 > > │ +00:00:26 v #2715 > > ................................................................................ +00:00:26 v #2716 > > ................................................................................ +00:00:26 v #2717 > > │ +00:00:26 v #2718 > > ................................................................................ +00:00:26 v #2719 > > ................................................................................ +00:00:26 v #2720 > > │ +00:00:26 v #2721 > > ................................................................................ +00:00:26 v #2722 > > ................................................................................ +00:00:26 v #2723 > > │ +00:00:26 v #2724 > > ................................................................................ +00:00:26 v #2725 > > ................................................................................ +00:00:26 v #2726 > > │ +00:00:26 v #2727 > > ................................................................................ +00:00:26 v #2728 > > ................................................................................ +00:00:26 v #2729 > > │ +00:00:26 v #2730 > > ................................................................................ +00:00:26 v #2731 > > ................................................................................ +00:00:26 v #2732 > > │ +00:00:26 v #2733 > > ................................................................................ +00:00:26 v #2734 > > ................................................................................ +00:00:26 v #2735 > > │ +00:00:26 v #2736 > > ................................................................................ +00:00:26 v #2737 > > ................................................................................ +00:00:26 v #2738 > > │ +00:00:26 v #2739 > > .......................;;;;..................................................... +00:00:26 v #2740 > > ................................................................................ +00:00:26 v #2741 > > │ +00:00:26 v #2742 > > ......................>/;;;;;;;;;;;;;;;;;;;;;;;;................................ +00:00:26 v #2743 > > ................................................................................ +00:00:26 v #2744 > > │ +00:00:26 v #2745 > > ......................///;;;;;;;;;;;;;;;;;;;;;;;;;;............................. +00:00:26 v #2746 > > ................................................................................ +00:00:26 v #2747 > > │ +00:00:26 v #2748 > > .....................>////;/;;;;;;;;;;;;;;;;;;;;;;;;;........................... +00:00:26 v #2749 > > ................................................................................ +00:00:26 v #2750 > > │ +00:00:26 v #2751 > > ....................>////////;;;;;;;;;;;;;;;;;;;;;;;;;;......................... +00:00:26 v #2752 > > ................................................................................ +00:00:26 v #2753 > > │ +00:00:26 v #2754 > > ....................>////////;/;;;;;;;;;;;;;;;;;;;;;;;;;;....................... +00:00:26 v #2755 > > ................................................................................ +00:00:26 v #2756 > > │ +00:00:26 v #2757 > > ...................>///////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................... +00:00:26 v #2758 > > ................................................................................ +00:00:26 v #2759 > > │ +00:00:26 v #2760 > > ...................///////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;................... +00:00:26 v #2761 > > ..;;;;;;;;;;;;;;\............................................................... +00:00:26 v #2762 > > │ +00:00:26 v #2763 > > ..................>////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;\................ +00:00:26 v #2764 > > .>/;;;;;;;;;;;;;;;.............................................................. +00:00:26 v #2765 > > │ +00:00:26 v #2766 > > .................>///////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;\.............. +00:00:26 v #2767 > > >///;/;;;;;;;;;;;;;;............................................................ +00:00:26 v #2768 > > │ +00:00:26 v #2769 > > ................./////////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\...........> +00:00:26 v #2770 > > //////;;;;;;;;;;;;;;;;.............>/;;;;;;;.................................... +00:00:26 v #2771 > > │ +00:00:26 v #2772 > > ................>//////////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\........> +00:00:26 v #2773 > > ///////;/;;;;;;;;;;;;;;...........>///;;;;;;;;.................................. +00:00:26 v #2774 > > │ +00:00:26 v #2775 > > ...............>////////////////////////;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<.......> +00:00:26 v #2776 > > /////////;;;;;;;;;<<<<<<.........>////;;;;;;<<<................................. +00:00:26 v #2777 > > │ +00:00:26 v #2778 > > ...............>//////////////////////////;;;;<<<<<<<<<<<<<<<<<<<<<<......... +00:00:26 v #2779 > > //////////;<<<<<<<<<<<<<.........///////<<<<<<<................................. +00:00:26 v #2780 > > │ +00:00:26 v #2781 > > ...............///////////////////////////<<<<<<<<<<<<<<<<<<<<<<<<........... +00:00:26 v #2782 > > //////////<<<<<<<<<<<<............/////<<<<<<................................... +00:00:26 v #2783 > > │ +00:00:26 v #2784 > > ................//////////////////////////<<<<<<<<<<<<<<<<<<<<<<............... +00:00:26 v #2785 > > /////////<<<<<<<<<<<<..............///<<<<<<.................................... +00:00:26 v #2786 > > │ +00:00:26 v #2787 > > .................///////////////////////<<<<<<<<<<<<<<<<<<<<<<<................. +00:00:26 v #2788 > > ///////<<<<<<<<<<<<..................<.......................................... +00:00:26 v #2789 > > │ +00:00:26 v #2790 > > ..................//////////////////////<<<<<<<<<<<<<<<<<<<<<................... +00:00:26 v #2791 > > .//////<<<<<<<<<<<.............................................................. +00:00:26 v #2792 > > │ +00:00:26 v #2793 > > ...................//////////////////<<<<<<<<<<<<<<<<<<<<<<..................... +00:00:26 v #2794 > > ...//<<<<<<<<<<................................................................. +00:00:26 v #2795 > > │ +00:00:26 v #2796 > > ....................////////////////<<<<<<<<<<<<<<<<<<<<<<...................... +00:00:26 v #2797 > > ..../<<<........................................................................ +00:00:26 v #2798 > > │ +00:00:26 v #2799 > > .....................///////////////<<<<<<<<<<<<<<<<<<<<........................ +00:00:26 v #2800 > > ................................................................................ +00:00:26 v #2801 > > │ +00:00:26 v #2802 > > ....................../////////////<<<<<<<<<<<<<<<<<<<.......................... +00:00:26 v #2803 > > ................................................................................ +00:00:26 v #2804 > > │ +00:00:26 v #2805 > > .......................//////////<<<<<<<<<<<<<<<<<<<<........................... +00:00:26 v #2806 > > ................................................................................ +00:00:26 v #2807 > > │ +00:00:26 v #2808 > > ........................////////<<<<<<<<<<<<<<<................................. +00:00:26 v #2809 > > ................................................................................ +00:00:26 v #2810 > > │ +00:00:26 v #2811 > > ..........................////<<<<<<<<<<<<...................................... +00:00:26 v #2812 > > ................................................................................ +00:00:26 v #2813 > > │ +00:00:26 v #2814 > > ..........................////<<<<<<<........................................... +00:00:26 v #2815 > > ................................................................................ +00:00:26 v #2816 > > │ +00:00:26 v #2817 > > ............................<<<<................................................ +00:00:26 v #2818 > > ................................................................................ +00:00:26 v #2819 > > │ +00:00:26 v #2820 > > ................................................................................ +00:00:26 v #2821 > > ................................................................................ +00:00:26 v #2822 > > │ +00:00:26 v #2823 > > ................................................................................ +00:00:26 v #2824 > > ................................................................................ +00:00:26 v #2825 > > │ +00:00:26 v #2826 > > ................................................................................ +00:00:26 v #2827 > > ................................................................................ +00:00:26 v #2828 > > │ +00:00:26 v #2829 > > ................................................................................ +00:00:26 v #2830 > > ................................................................................ +00:00:26 v #2831 > > │ +00:00:26 v #2832 > > ................................................................................ +00:00:26 v #2833 > > ................................................................................ +00:00:26 v #2834 > > │ +00:00:26 v #2835 > > ................................................................................ +00:00:26 v #2836 > > ................................................................................ +00:00:26 v #2837 > > │ +00:00:26 v #2838 > > ................................................................................ +00:00:26 v #2839 > > ................................................................................ +00:00:26 v #2840 > > │ +00:00:26 v #2841 > > ................................................................................ +00:00:26 v #2842 > > ................................................................................ +00:00:26 v #2843 > > │ +00:00:26 v #2844 > > │ +00:00:26 v #2845 > > ................................................................................ +00:00:26 v #2846 > > ................................................................................ +00:00:26 v #2847 > > │ +00:00:26 v #2848 > > ................................................................................ +00:00:26 v #2849 > > ................................................................................ +00:00:26 v #2850 > > │ +00:00:26 v #2851 > > ................................................................................ +00:00:26 v #2852 > > ................................................................................ +00:00:26 v #2853 > > │ +00:00:26 v #2854 > > ................................................................................ +00:00:26 v #2855 > > ................................................................................ +00:00:26 v #2856 > > │ +00:00:26 v #2857 > > ................................................................................ +00:00:26 v #2858 > > ................................................................................ +00:00:26 v #2859 > > │ +00:00:26 v #2860 > > ................................................................................ +00:00:26 v #2861 > > ................................................................................ +00:00:26 v #2862 > > │ +00:00:26 v #2863 > > ................................................................................ +00:00:26 v #2864 > > ................................................................................ +00:00:26 v #2865 > > │ +00:00:26 v #2866 > > ................................................................................ +00:00:26 v #2867 > > ................................................................................ +00:00:26 v #2868 > > │ +00:00:26 v #2869 > > ................................................................................ +00:00:26 v #2870 > > ................................................................................ +00:00:26 v #2871 > > │ +00:00:26 v #2872 > > .......................;;....................................................... +00:00:26 v #2873 > > ................................................................................ +00:00:26 v #2874 > > │ +00:00:26 v #2875 > > ......................>;;;;;;;;;;;;;;;;;;;;..................................... +00:00:26 v #2876 > > ................................................................................ +00:00:26 v #2877 > > │ +00:00:26 v #2878 > > ......................///;;;;;;;;;;;;;;;;;;;;;;;;;.............................. +00:00:26 v #2879 > > ................................................................................ +00:00:26 v #2880 > > │ +00:00:26 v #2881 > > .....................>/////;;;;;;;;;;;;;;;;;;;;;;;;;............................ +00:00:26 v #2882 > > ................................................................................ +00:00:26 v #2883 > > │ +00:00:26 v #2884 > > ....................>////////;;;;;;;;;;;;;;;;;;;;;;;;;\......................... +00:00:26 v #2885 > > ................................................................................ +00:00:26 v #2886 > > │ +00:00:26 v #2887 > > ....................//////////;;;;;;;;;;;;;;;;;;;;;;;;;;;....................... +00:00:26 v #2888 > > ................................................................................ +00:00:26 v #2889 > > │ +00:00:26 v #2890 > > ...................>////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;..................... +00:00:26 v #2891 > > ................................................................................ +00:00:26 v #2892 > > │ +00:00:26 v #2893 > > ..................>///////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;\.................. +00:00:26 v #2894 > > .>/;;;;;;;;;;;;;................................................................ +00:00:26 v #2895 > > │ +00:00:26 v #2896 > > ..................///////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;................ +00:00:26 v #2897 > > >//;;;;;;;;;;;;;;;.............................................................. +00:00:26 v #2898 > > │ +00:00:26 v #2899 > > .................>////////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;.............. +00:00:26 v #2900 > > >////;;;;;;;;;;;;;;;............................................................ +00:00:26 v #2901 > > │ +00:00:26 v #2902 > > .................///////////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;;;;..........> +00:00:26 v #2903 > > ///////;;;;;;;;;;;;;;;.............>/;;;;;;;.................................... +00:00:26 v #2904 > > │ +00:00:26 v #2905 > > ................>/////////////////////////;;;;;;;;;;;;;;;;;;<<<<<<<<<.........> +00:00:26 v #2906 > > ////////;;;;;;;;;;;;;;;;..........>//;;;;;;;;;.................................. +00:00:26 v #2907 > > │ +00:00:26 v #2908 > > ...............>/////////////////////////////;;;<<<<<<<<<<<<<<<<<<<<.........> +00:00:26 v #2909 > > //////////;;;<<<<<<<<<<<.........>/////;;;<<<<<................................. +00:00:26 v #2910 > > │ +00:00:26 v #2911 > > ...............//////////////////////////////<<<<<<<<<<<<<<<<<<<<<<......... +00:00:26 v #2912 > > ////////////<<<<<<<<<<<..........///////<<<<<<<................................. +00:00:26 v #2913 > > │ +00:00:26 v #2914 > > ..............>////////////////////////////<<<<<<<<<<<<<<<<<<<<<<............ +00:00:26 v #2915 > > ///////////<<<<<<<<<<<............/////<<<<<<................................... +00:00:26 v #2916 > > │ +00:00:26 v #2917 > > ...............////////////////////////////<<<<<<<<<<<<<<<<<<<<............... +00:00:26 v #2918 > > //////////<<<<<<<<<<<..............///<<<<<<.................................... +00:00:26 v #2919 > > │ +00:00:26 v #2920 > > ................/////////////////////////<<<<<<<<<<<<<<<<<<<<<.................. +00:00:26 v #2921 > > ////////<<<<<<<<<<<..................<.......................................... +00:00:26 v #2922 > > │ +00:00:26 v #2923 > > .................///////////////////////<<<<<<<<<<<<<<<<<<<<<................... +00:00:26 v #2924 > > .//////<<<<<<<<<<<.............................................................. +00:00:26 v #2925 > > │ +00:00:26 v #2926 > > ...................////////////////////<<<<<<<<<<<<<<<<<<<<..................... +00:00:26 v #2927 > > ...///<<<<<<<<<<................................................................ +00:00:26 v #2928 > > │ +00:00:26 v #2929 > > ....................//////////////////<<<<<<<<<<<<<<<<<<<<...................... +00:00:26 v #2930 > > ..../<<<<....................................................................... +00:00:26 v #2931 > > │ +00:00:26 v #2932 > > .....................////////////////<<<<<<<<<<<<<<<<<<<........................ +00:00:26 v #2933 > > ................................................................................ +00:00:26 v #2934 > > │ +00:00:26 v #2935 > > ......................//////////////<<<<<<<<<<<<<<<<<<.......................... +00:00:26 v #2936 > > ................................................................................ +00:00:26 v #2937 > > │ +00:00:26 v #2938 > > ........................///////////<<<<<<<<<<<<<<<<<<........................... +00:00:26 v #2939 > > ................................................................................ +00:00:26 v #2940 > > │ +00:00:26 v #2941 > > .........................////////<<<<<<<<<<<<<<<................................ +00:00:26 v #2942 > > ................................................................................ +00:00:26 v #2943 > > │ +00:00:26 v #2944 > > ..........................//////<<<<<<<<<<<..................................... +00:00:26 v #2945 > > ................................................................................ +00:00:26 v #2946 > > │ +00:00:26 v #2947 > > ...........................////<<<<<<<<......................................... +00:00:26 v #2948 > > ................................................................................ +00:00:26 v #2949 > > │ +00:00:26 v #2950 > > ............................//<<<<.............................................. +00:00:26 v #2951 > > ................................................................................ +00:00:26 v #2952 > > │ +00:00:26 v #2953 > > ................................................................................ +00:00:26 v #2954 > > ................................................................................ +00:00:26 v #2955 > > │ +00:00:26 v #2956 > > ................................................................................ +00:00:26 v #2957 > > ................................................................................ +00:00:26 v #2958 > > │ +00:00:26 v #2959 > > ................................................................................ +00:00:26 v #2960 > > ................................................................................ +00:00:26 v #2961 > > │ +00:00:26 v #2962 > > ................................................................................ +00:00:26 v #2963 > > ................................................................................ +00:00:26 v #2964 > > │ +00:00:26 v #2965 > > ................................................................................ +00:00:26 v #2966 > > ................................................................................ +00:00:26 v #2967 > > │ +00:00:26 v #2968 > > ................................................................................ +00:00:26 v #2969 > > ................................................................................ +00:00:26 v #2970 > > │ +00:00:26 v #2971 > > ................................................................................ +00:00:26 v #2972 > > ................................................................................ +00:00:26 v #2973 > > │ +00:00:26 v #2974 > > ................................................................................ +00:00:26 v #2975 > > ................................................................................ +00:00:26 v #2976 > > │ +00:00:26 v #2977 > > │ +00:00:26 v #2978 > > ................................................................................ +00:00:26 v #2979 > > ................................................................................ +00:00:26 v #2980 > > │ +00:00:26 v #2981 > > ................................................................................ +00:00:26 v #2982 > > ................................................................................ +00:00:26 v #2983 > > │ +00:00:26 v #2984 > > ................................................................................ +00:00:26 v #2985 > > ................................................................................ +00:00:26 v #2986 > > │ +00:00:26 v #2987 > > ................................................................................ +00:00:26 v #2988 > > ................................................................................ +00:00:26 v #2989 > > │ +00:00:26 v #2990 > > ................................................................................ +00:00:26 v #2991 > > ................................................................................ +00:00:26 v #2992 > > │ +00:00:26 v #2993 > > ................................................................................ +00:00:26 v #2994 > > ................................................................................ +00:00:26 v #2995 > > │ +00:00:26 v #2996 > > ................................................................................ +00:00:26 v #2997 > > ................................................................................ +00:00:26 v #2998 > > │ +00:00:26 v #2999 > > ................................................................................ +00:00:26 v #3000 > > ................................................................................ +00:00:26 v #3001 > > │ +00:00:26 v #3002 > > ................................................................................ +00:00:26 v #3003 > > ................................................................................ +00:00:26 v #3004 > > │ +00:00:26 v #3005 > > ................................................................................ +00:00:26 v #3006 > > ................................................................................ +00:00:26 v #3007 > > │ +00:00:26 v #3008 > > ....................../;;;;;;;;;;;;;;;;......................................... +00:00:26 v #3009 > > ................................................................................ +00:00:26 v #3010 > > │ +00:00:26 v #3011 > > .....................>///;;;;;;;;;;;;;;;;;;;;;;;................................ +00:00:26 v #3012 > > ................................................................................ +00:00:26 v #3013 > > │ +00:00:26 v #3014 > > .....................//////;;;;;;;;;;;;;;;;;;;;;;;;............................. +00:00:26 v #3015 > > ................................................................................ +00:00:26 v #3016 > > │ +00:00:26 v #3017 > > ..................../////////;;;;;;;;;;;;;;;;;;;;;;;;........................... +00:00:26 v #3018 > > ................................................................................ +00:00:26 v #3019 > > │ +00:00:26 v #3020 > > ...................>///////////;/;;;;;;;;;;;;;;;;;;;;;;;........................ +00:00:26 v #3021 > > ................................................................................ +00:00:26 v #3022 > > │ +00:00:26 v #3023 > > ...................///////////////;;;;;;;;;;;;;;;;;;;;;;;;;..................... +00:00:26 v #3024 > > ................................................................................ +00:00:26 v #3025 > > │ +00:00:26 v #3026 > > ..................>/////////////////;;;;;;;;;;;;;;;;;;;;;;;;;;.................. +00:00:26 v #3027 > > .>;;;;;;;;;;;;;................................................................. +00:00:26 v #3028 > > │ +00:00:26 v #3029 > > ..................////////////////////;/;;;;;;;;;;;;;;;;;;;;;;;;................ +00:00:26 v #3030 > > >//;/;;;;;;;;;;;;............................................................... +00:00:26 v #3031 > > │ +00:00:26 v #3032 > > .................>//////////////////////;/;;;;;;;;;;;;;;;;;;;;;;;;;\............ +00:00:26 v #3033 > > //////;;;;;;;;;;;;;;............................................................ +00:00:26 v #3034 > > │ +00:00:26 v #3035 > > ................>//////////////////////////;;;;;;;;;;;;;;;;;;;<<<<<<<..........> +00:00:26 v #3036 > > ///////;;;;;;;;;;;;;;;.............>/;;;;;;;.................................... +00:00:26 v #3037 > > │ +00:00:26 v #3038 > > ................/////////////////////////////;;;;<<<<<<<<<<<<<<<<<<<..........> +00:00:26 v #3039 > > ///////////;;;;;;;;;;;<<..........>//;;;;;;;;;.................................. +00:00:26 v #3040 > > │ +00:00:26 v #3041 > > ...............>//////////////////////////////<<<<<<<<<<<<<<<<<<<<<..........> +00:00:26 v #3042 > > ///////////;<<<<<<<<<<<<.........>/////;;<<<<<<................................. +00:00:26 v #3043 > > │ +00:00:26 v #3044 > > ...............///////////////////////////////<<<<<<<<<<<<<<<<<<<............ +00:00:26 v #3045 > > ////////////<<<<<<<<<<<..........///////<<<<<<.................................. +00:00:26 v #3046 > > │ +00:00:26 v #3047 > > ..............>//////////////////////////////<<<<<<<<<<<<<<<<<<<............ +00:00:26 v #3048 > > ///////////<<<<<<<<<<<............/////<<<<<<................................... +00:00:26 v #3049 > > │ +00:00:26 v #3050 > > ..............//////////////////////////////<<<<<<<<<<<<<<<<<<<............... +00:00:26 v #3051 > > //////////<<<<<<<<<<<...............///<<<<<.................................... +00:00:26 v #3052 > > │ +00:00:26 v #3053 > > ...............///////////////////////////<<<<<<<<<<<<<<<<<<<................... +00:00:26 v #3054 > > /////////<<<<<<<<<<................../.......................................... +00:00:26 v #3055 > > │ +00:00:26 v #3056 > > ................//////////////////////////<<<<<<<<<<<<<<<<<<.................... +00:00:26 v #3057 > > .///////<<<<<<<<<<.............................................................. +00:00:26 v #3058 > > │ +00:00:26 v #3059 > > ..................//////////////////////<<<<<<<<<<<<<<<<<<<..................... +00:00:26 v #3060 > > ...////<<<<<<<<<................................................................ +00:00:26 v #3061 > > │ +00:00:26 v #3062 > > ....................///////////////////<<<<<<<<<<<<<<<<<<....................... +00:00:26 v #3063 > > ...../<<<....................................................................... +00:00:26 v #3064 > > │ +00:00:26 v #3065 > > ...................../////////////////<<<<<<<<<<<<<<<<<<........................ +00:00:26 v #3066 > > ................................................................................ +00:00:26 v #3067 > > │ +00:00:26 v #3068 > > ......................///////////////<<<<<<<<<<<<<<<<<<......................... +00:00:26 v #3069 > > ................................................................................ +00:00:26 v #3070 > > │ +00:00:26 v #3071 > > ........................////////////<<<<<<<<<<<<<<<<<........................... +00:00:26 v #3072 > > ................................................................................ +00:00:26 v #3073 > > │ +00:00:26 v #3074 > > .........................//////////<<<<<<<<<<<<<<............................... +00:00:26 v #3075 > > ................................................................................ +00:00:26 v #3076 > > │ +00:00:26 v #3077 > > ...........................///////<<<<<<<<<<<................................... +00:00:26 v #3078 > > ................................................................................ +00:00:26 v #3079 > > │ +00:00:26 v #3080 > > ............................/////<<<<<<<........................................ +00:00:26 v #3081 > > ................................................................................ +00:00:26 v #3082 > > │ +00:00:26 v #3083 > > ..............................//<<<<............................................ +00:00:26 v #3084 > > ................................................................................ +00:00:26 v #3085 > > │ +00:00:26 v #3086 > > ................................................................................ +00:00:26 v #3087 > > ................................................................................ +00:00:26 v #3088 > > │ +00:00:26 v #3089 > > ................................................................................ +00:00:26 v #3090 > > ................................................................................ +00:00:26 v #3091 > > │ +00:00:26 v #3092 > > ................................................................................ +00:00:26 v #3093 > > ................................................................................ +00:00:26 v #3094 > > │ +00:00:26 v #3095 > > ................................................................................ +00:00:26 v #3096 > > ................................................................................ +00:00:26 v #3097 > > │ +00:00:26 v #3098 > > ................................................................................ +00:00:26 v #3099 > > ................................................................................ +00:00:26 v #3100 > > │ +00:00:26 v #3101 > > ................................................................................ +00:00:26 v #3102 > > ................................................................................ +00:00:26 v #3103 > > │ +00:00:26 v #3104 > > ................................................................................ +00:00:26 v #3105 > > ................................................................................ +00:00:26 v #3106 > > │ +00:00:26 v #3107 > > ................................................................................ +00:00:26 v #3108 > > ................................................................................ +00:00:26 v #3109 > > │ +00:00:26 v #3110 > > │ +00:00:26 v #3111 > > ................................................................................ +00:00:26 v #3112 > > ................................................................................ +00:00:26 v #3113 > > │ +00:00:26 v #3114 > > ................................................................................ +00:00:26 v #3115 > > ................................................................................ +00:00:26 v #3116 > > │ +00:00:26 v #3117 > > ................................................................................ +00:00:26 v #3118 > > ................................................................................ +00:00:26 v #3119 > > │ +00:00:26 v #3120 > > ................................................................................ +00:00:26 v #3121 > > ................................................................................ +00:00:26 v #3122 > > │ +00:00:26 v #3123 > > ................................................................................ +00:00:26 v #3124 > > ................................................................................ +00:00:26 v #3125 > > │ +00:00:26 v #3126 > > ................................................................................ +00:00:26 v #3127 > > ................................................................................ +00:00:26 v #3128 > > │ +00:00:26 v #3129 > > ................................................................................ +00:00:26 v #3130 > > ................................................................................ +00:00:26 v #3131 > > │ +00:00:26 v #3132 > > ................................................................................ +00:00:26 v #3133 > > ................................................................................ +00:00:26 v #3134 > > │ +00:00:26 v #3135 > > ................................................................................ +00:00:26 v #3136 > > ................................................................................ +00:00:26 v #3137 > > │ +00:00:26 v #3138 > > ................................................................................ +00:00:26 v #3139 > > ................................................................................ +00:00:26 v #3140 > > │ +00:00:26 v #3141 > > .....................>;;;;;;;;;;;;.............................................. +00:00:26 v #3142 > > ................................................................................ +00:00:26 v #3143 > > │ +00:00:26 v #3144 > > .....................///;;;;;;;;;;;;;;;;;;;;;;.................................. +00:00:26 v #3145 > > ................................................................................ +00:00:26 v #3146 > > │ +00:00:26 v #3147 > > ....................>//////;;;;;;;;;;;;;;;;;;;;;;............................... +00:00:26 v #3148 > > ................................................................................ +00:00:26 v #3149 > > │ +00:00:26 v #3150 > > ..................../////////;/;;;;;;;;;;;;;;;;;;;;;\........................... +00:00:26 v #3151 > > ................................................................................ +00:00:26 v #3152 > > │ +00:00:26 v #3153 > > ...................>/////////////;;;;;;;;;;;;;;;;;;;;;;\........................ +00:00:26 v #3154 > > ................................................................................ +00:00:26 v #3155 > > │ +00:00:26 v #3156 > > ...................////////////////;/;;;;;;;;;;;;;;;;;;;;;;..................... +00:00:26 v #3157 > > ................................................................................ +00:00:26 v #3158 > > │ +00:00:26 v #3159 > > ..................>///////////////////;/;;;;;;;;;;;;;;;;;;;;;;.................. +00:00:26 v #3160 > > .;;;;;;;;;;;;;.................................................................. +00:00:26 v #3161 > > │ +00:00:26 v #3162 > > .................>///////////////////////;;;;;;;;;;;;;;;;;;;;;;;;\.............. +00:00:26 v #3163 > > >///;;;;;;;;;;;;;............................................................... +00:00:26 v #3164 > > │ +00:00:26 v #3165 > > .................//////////////////////////;;;;;;;;;;;;;;;;;;;;;;<<<............ +00:00:26 v #3166 > > /////;;;;;;;;;;;;;;;............................................................ +00:00:26 v #3167 > > │ +00:00:26 v #3168 > > ................>/////////////////////////////;;;;<<<<<<<<<<<<<<<<<<...........> +00:00:26 v #3169 > > ////////;/;;;;;;;;;;;;;............>/;;;;;;;.................................... +00:00:26 v #3170 > > │ +00:00:26 v #3171 > > ................////////////////////////////////<<<<<<<<<<<<<<<<<<<...........> +00:00:26 v #3172 > > //////////;;;;;;;<<<<<<<..........>//;;;;;;;;;.................................. +00:00:26 v #3173 > > │ +00:00:26 v #3174 > > ...............>///////////////////////////////<<<<<<<<<<<<<<<<<<<...........> +00:00:26 v #3175 > > /////////////<<<<<<<<<<..........>///////<<<<<<................................. +00:00:26 v #3176 > > │ +00:00:26 v #3177 > > ...............///////////////////////////////<<<<<<<<<<<<<<<<<<............. +00:00:26 v #3178 > > ////////////<<<<<<<<<<...........////////<<<<<.................................. +00:00:26 v #3179 > > │ +00:00:26 v #3180 > > ..............>///////////////////////////////<<<<<<<<<<<<<<<<<.............> +00:00:26 v #3181 > > ///////////<<<<<<<<<<............///////<<<<<................................... +00:00:26 v #3182 > > │ +00:00:26 v #3183 > > ..............//////////////////////////////<<<<<<<<<<<<<<<<<<............... +00:00:26 v #3184 > > ///////////<<<<<<<<<................///<<<<<.................................... +00:00:26 v #3185 > > │ +00:00:26 v #3186 > > ..............//////////////////////////////<<<<<<<<<<<<<<<<<.................. +00:00:26 v #3187 > > //////////<<<<<<<<<.................../......................................... +00:00:26 v #3188 > > │ +00:00:26 v #3189 > > ...............////////////////////////////<<<<<<<<<<<<<<<<<.................... +00:00:26 v #3190 > > ..///////<<<<<<<<<.............................................................. +00:00:26 v #3191 > > │ +00:00:26 v #3192 > > ................./////////////////////////<<<<<<<<<<<<<<<<...................... +00:00:26 v #3193 > > ....////<<<<<<<<................................................................ +00:00:26 v #3194 > > │ +00:00:26 v #3195 > > ...................//////////////////////<<<<<<<<<<<<<<<<....................... +00:00:26 v #3196 > > ....../<<<...................................................................... +00:00:26 v #3197 > > │ +00:00:26 v #3198 > > .....................//////////////////<<<<<<<<<<<<<<<<<........................ +00:00:26 v #3199 > > ................................................................................ +00:00:26 v #3200 > > │ +00:00:26 v #3201 > > ....................../////////////////<<<<<<<<<<<<<<<<......................... +00:00:26 v #3202 > > ................................................................................ +00:00:26 v #3203 > > │ +00:00:26 v #3204 > > ........................//////////////<<<<<<<<<<<<<<<........................... +00:00:26 v #3205 > > ................................................................................ +00:00:26 v #3206 > > │ +00:00:26 v #3207 > > ..........................///////////<<<<<<<<<<<<............................... +00:00:26 v #3208 > > ................................................................................ +00:00:26 v #3209 > > │ +00:00:26 v #3210 > > ............................////////<<<<<<<<<<.................................. +00:00:26 v #3211 > > ................................................................................ +00:00:26 v #3212 > > │ +00:00:26 v #3213 > > .............................//////<<<<<<<...................................... +00:00:26 v #3214 > > ................................................................................ +00:00:26 v #3215 > > │ +00:00:26 v #3216 > > ...............................///<<<<.......................................... +00:00:26 v #3217 > > ................................................................................ +00:00:26 v #3218 > > │ +00:00:26 v #3219 > > .................................<.............................................. +00:00:26 v #3220 > > ................................................................................ +00:00:26 v #3221 > > │ +00:00:26 v #3222 > > ................................................................................ +00:00:26 v #3223 > > ................................................................................ +00:00:26 v #3224 > > │ +00:00:26 v #3225 > > ................................................................................ +00:00:26 v #3226 > > ................................................................................ +00:00:26 v #3227 > > │ +00:00:26 v #3228 > > ................................................................................ +00:00:26 v #3229 > > ................................................................................ +00:00:26 v #3230 > > │ +00:00:26 v #3231 > > ................................................................................ +00:00:26 v #3232 > > ................................................................................ +00:00:26 v #3233 > > │ +00:00:26 v #3234 > > ................................................................................ +00:00:26 v #3235 > > ................................................................................ +00:00:26 v #3236 > > │ +00:00:26 v #3237 > > ................................................................................ +00:00:26 v #3238 > > ................................................................................ +00:00:26 v #3239 > > │ +00:00:26 v #3240 > > ................................................................................ +00:00:26 v #3241 > > ................................................................................ +00:00:26 v #3242 > > │ +00:00:26 v #3243 > > │ +00:00:26 v #3244 > > ................................................................................ +00:00:26 v #3245 > > ................................................................................ +00:00:26 v #3246 > > │ +00:00:26 v #3247 > > ................................................................................ +00:00:26 v #3248 > > ................................................................................ +00:00:26 v #3249 > > │ +00:00:26 v #3250 > > ................................................................................ +00:00:26 v #3251 > > ................................................................................ +00:00:26 v #3252 > > │ +00:00:26 v #3253 > > ................................................................................ +00:00:26 v #3254 > > ................................................................................ +00:00:26 v #3255 > > │ +00:00:26 v #3256 > > ................................................................................ +00:00:26 v #3257 > > ................................................................................ +00:00:26 v #3258 > > │ +00:00:26 v #3259 > > ................................................................................ +00:00:26 v #3260 > > ................................................................................ +00:00:26 v #3261 > > │ +00:00:26 v #3262 > > ................................................................................ +00:00:26 v #3263 > > ................................................................................ +00:00:26 v #3264 > > │ +00:00:26 v #3265 > > ................................................................................ +00:00:26 v #3266 > > ................................................................................ +00:00:26 v #3267 > > │ +00:00:26 v #3268 > > ................................................................................ +00:00:26 v #3269 > > ................................................................................ +00:00:26 v #3270 > > │ +00:00:26 v #3271 > > ................................................................................ +00:00:26 v #3272 > > ................................................................................ +00:00:26 v #3273 > > │ +00:00:26 v #3274 > > ...................../;;;;;;;;.................................................. +00:00:26 v #3275 > > ................................................................................ +00:00:26 v #3276 > > │ +00:00:26 v #3277 > > ....................>//;;;;;;;;;;;;;;;;;;;;;.................................... +00:00:26 v #3278 > > ................................................................................ +00:00:26 v #3279 > > │ +00:00:26 v #3280 > > ....................//////;;;;;;;;;;;;;;;;;;;;;................................. +00:00:26 v #3281 > > ................................................................................ +00:00:26 v #3282 > > │ +00:00:26 v #3283 > > ...................>//////////;/;;;;;;;;;;;;;;;;;;;............................. +00:00:26 v #3284 > > ................................................................................ +00:00:26 v #3285 > > │ +00:00:26 v #3286 > > ...................//////////////;/;;;;;;;;;;;;;;;;;;;;......................... +00:00:26 v #3287 > > ................................................................................ +00:00:26 v #3288 > > │ +00:00:26 v #3289 > > ..................>////////////////////;;;;;;;;;;;;;;;;;;;;..................... +00:00:26 v #3290 > > ................................................................................ +00:00:26 v #3291 > > │ +00:00:26 v #3292 > > ..................//////////////////////;;;;;;;;;;;;;;;;;;;;;;;................. +00:00:26 v #3293 > > .;;;;;;;;;;;;\.................................................................. +00:00:26 v #3294 > > │ +00:00:26 v #3295 > > .................>/////////////////////////;;;;;;;;;;;;;;;;;;;;;;;.............. +00:00:26 v #3296 > > >/;;/;;;;;;;;;;;;............................................................... +00:00:26 v #3297 > > │ +00:00:26 v #3298 > > .................////////////////////////////////;;;<<<<<<<<<<<<<<<<............ +00:00:26 v #3299 > > /////;;/;;;;;;;;;;;;............................................................ +00:00:26 v #3300 > > │ +00:00:26 v #3301 > > ................>/////////////////////////////////<<<<<<<<<<<<<<<<<............> +00:00:26 v #3302 > > ////////;;;;;;;;;;;;;;;............;;;;;;;;;.................................... +00:00:26 v #3303 > > │ +00:00:26 v #3304 > > ................/////////////////////////////////<<<<<<<<<<<<<<<<.............> +00:00:26 v #3305 > > ////////////;;<<<<<<<<<<..........>////;;;;;;;;................................. +00:00:26 v #3306 > > │ +00:00:26 v #3307 > > ...............>////////////////////////////////<<<<<<<<<<<<<<<<.............. +00:00:26 v #3308 > > //////////////<<<<<<<<<...........//////;<<<<<<................................. +00:00:26 v #3309 > > │ +00:00:26 v #3310 > > ...............////////////////////////////////<<<<<<<<<<<<<<<<..............> +00:00:26 v #3311 > > /////////////<<<<<<<<<...........>///////<<<<<.................................. +00:00:26 v #3312 > > │ +00:00:26 v #3313 > > ..............>///////////////////////////////<<<<<<<<<<<<<<<<..............> +00:00:26 v #3314 > > ////////////<<<<<<<<<............///////<<<<<................................... +00:00:26 v #3315 > > │ +00:00:26 v #3316 > > ..............///////////////////////////////<<<<<<<<<<<<<<<<................ +00:00:26 v #3317 > > ///////////<<<<<<<<<................///<<<<<.................................... +00:00:26 v #3318 > > │ +00:00:26 v #3319 > > .............>///////////////////////////////<<<<<<<<<<<<<<<................... +00:00:26 v #3320 > > //////////<<<<<<<<<............................................................. +00:00:26 v #3321 > > │ +00:00:26 v #3322 > > ..............//////////////////////////////<<<<<<<<<<<<<<<..................... +00:00:26 v #3323 > > ..///////<<<<<<<<<.............................................................. +00:00:26 v #3324 > > │ +00:00:26 v #3325 > > ................///////////////////////////<<<<<<<<<<<<<<<...................... +00:00:26 v #3326 > > ..../////<<<<<<<................................................................ +00:00:26 v #3327 > > │ +00:00:26 v #3328 > > ..................////////////////////////<<<<<<<<<<<<<<<....................... +00:00:26 v #3329 > > ......./<<...................................................................... +00:00:26 v #3330 > > │ +00:00:26 v #3331 > > ..................../////////////////////<<<<<<<<<<<<<<<........................ +00:00:26 v #3332 > > ................................................................................ +00:00:26 v #3333 > > │ +00:00:26 v #3334 > > ......................//////////////////<<<<<<<<<<<<<<<......................... +00:00:26 v #3335 > > ................................................................................ +00:00:26 v #3336 > > │ +00:00:26 v #3337 > > ........................///////////////<<<<<<<<<<<<<<........................... +00:00:26 v #3338 > > ................................................................................ +00:00:26 v #3339 > > │ +00:00:26 v #3340 > > ...........................///////////<<<<<<<<<<<<.............................. +00:00:26 v #3341 > > ................................................................................ +00:00:26 v #3342 > > │ +00:00:26 v #3343 > > ............................//////////<<<<<<<<<................................. +00:00:26 v #3344 > > ................................................................................ +00:00:26 v #3345 > > │ +00:00:26 v #3346 > > ..............................///////<<<<<<..................................... +00:00:26 v #3347 > > ................................................................................ +00:00:26 v #3348 > > │ +00:00:26 v #3349 > > ................................////<<<<........................................ +00:00:26 v #3350 > > ................................................................................ +00:00:26 v #3351 > > │ +00:00:26 v #3352 > > ...................................<............................................ +00:00:26 v #3353 > > ................................................................................ +00:00:26 v #3354 > > │ +00:00:26 v #3355 > > ................................................................................ +00:00:26 v #3356 > > ................................................................................ +00:00:26 v #3357 > > │ +00:00:26 v #3358 > > ................................................................................ +00:00:26 v #3359 > > ................................................................................ +00:00:26 v #3360 > > │ +00:00:26 v #3361 > > ................................................................................ +00:00:26 v #3362 > > ................................................................................ +00:00:26 v #3363 > > │ +00:00:26 v #3364 > > ................................................................................ +00:00:26 v #3365 > > ................................................................................ +00:00:26 v #3366 > > │ +00:00:26 v #3367 > > ................................................................................ +00:00:26 v #3368 > > ................................................................................ +00:00:26 v #3369 > > │ +00:00:26 v #3370 > > ................................................................................ +00:00:26 v #3371 > > ................................................................................ +00:00:26 v #3372 > > │ +00:00:26 v #3373 > > ................................................................................ +00:00:26 v #3374 > > ................................................................................ +00:00:26 v #3375 > > │ +00:00:26 v #3376 > > │ +00:00:26 v #3377 > > ................................................................................ +00:00:26 v #3378 > > ................................................................................ +00:00:26 v #3379 > > │ +00:00:26 v #3380 > > ................................................................................ +00:00:26 v #3381 > > ................................................................................ +00:00:26 v #3382 > > │ +00:00:26 v #3383 > > ................................................................................ +00:00:26 v #3384 > > ................................................................................ +00:00:26 v #3385 > > │ +00:00:26 v #3386 > > ................................................................................ +00:00:26 v #3387 > > ................................................................................ +00:00:26 v #3388 > > │ +00:00:26 v #3389 > > ................................................................................ +00:00:26 v #3390 > > ................................................................................ +00:00:26 v #3391 > > │ +00:00:26 v #3392 > > ................................................................................ +00:00:26 v #3393 > > ................................................................................ +00:00:26 v #3394 > > │ +00:00:26 v #3395 > > ................................................................................ +00:00:26 v #3396 > > ................................................................................ +00:00:26 v #3397 > > │ +00:00:26 v #3398 > > ................................................................................ +00:00:26 v #3399 > > ................................................................................ +00:00:26 v #3400 > > │ +00:00:26 v #3401 > > ................................................................................ +00:00:26 v #3402 > > ................................................................................ +00:00:26 v #3403 > > │ +00:00:26 v #3404 > > ................................................................................ +00:00:26 v #3405 > > ................................................................................ +00:00:26 v #3406 > > │ +00:00:26 v #3407 > > .....................;;;;;...................................................... +00:00:26 v #3408 > > ................................................................................ +00:00:26 v #3409 > > │ +00:00:26 v #3410 > > ....................>/;/;;;;;;;;;;;;;;.......................................... +00:00:26 v #3411 > > ................................................................................ +00:00:26 v #3412 > > │ +00:00:26 v #3413 > > ....................//////;/;;;;;;;;;;;;;;;;;................................... +00:00:26 v #3414 > > ................................................................................ +00:00:26 v #3415 > > │ +00:00:26 v #3416 > > ...................>//////////;;/;;;;;;;;;;;;;;;;;.............................. +00:00:26 v #3417 > > ................................................................................ +00:00:26 v #3418 > > │ +00:00:26 v #3419 > > ...................////////////////;;;;;;;;;;;;;;;;;;;;......................... +00:00:26 v #3420 > > ................................................................................ +00:00:26 v #3421 > > │ +00:00:26 v #3422 > > ..................>///////////////////////;;;;;;;;;;;;;;;;;..................... +00:00:26 v #3423 > > ................................................................................ +00:00:26 v #3424 > > │ +00:00:26 v #3425 > > ................../////////////////////////;;;;;;;;;;;;;;;;;;;;;................ +00:00:26 v #3426 > > .;;;;;;;;;;;.................................................................... +00:00:26 v #3427 > > │ +00:00:26 v #3428 > > .................>///////////////////////////////;;;;;<<<<<<<<<<<<<............. +00:00:26 v #3429 > > >//;/;;;;;;;;;;;................................................................ +00:00:26 v #3430 > > │ +00:00:26 v #3431 > > .................//////////////////////////////////<<<<<<<<<<<<<<<.............> +00:00:26 v #3432 > > //////;//;;;;;;;;;;;............................................................ +00:00:26 v #3433 > > │ +00:00:26 v #3434 > > ................>/////////////////////////////////<<<<<<<<<<<<<<<..............> +00:00:26 v #3435 > > /////////;/;;;;;;;;;<<<<...........;;;;;;;;..................................... +00:00:26 v #3436 > > │ +00:00:26 v #3437 > > ................//////////////////////////////////<<<<<<<<<<<<<<..............> +00:00:26 v #3438 > > //////////////<<<<<<<<<...........>///;;;;;;;<<................................. +00:00:26 v #3439 > > │ +00:00:26 v #3440 > > ...............>/////////////////////////////////<<<<<<<<<<<<<<<.............. +00:00:26 v #3441 > > //////////////<<<<<<<<<...........///////;<<<<<................................. +00:00:26 v #3442 > > │ +00:00:26 v #3443 > > .............../////////////////////////////////<<<<<<<<<<<<<<<..............> +00:00:26 v #3444 > > /////////////<<<<<<<<<...........>///////<<<<<.................................. +00:00:26 v #3445 > > │ +00:00:26 v #3446 > > ..............>////////////////////////////////<<<<<<<<<<<<<<<..............> +00:00:26 v #3447 > > ////////////<<<<<<<<<............///////<<<<<................................... +00:00:26 v #3448 > > │ +00:00:26 v #3449 > > ..............>///////////////////////////////<<<<<<<<<<<<<<<............... +00:00:26 v #3450 > > ////////////<<<<<<<<................////<<<<<................................... +00:00:26 v #3451 > > │ +00:00:26 v #3452 > > ..............////////////////////////////////<<<<<<<<<<<<<<................... +00:00:26 v #3453 > > ///////////<<<<<<<<............................................................. +00:00:26 v #3454 > > │ +00:00:26 v #3455 > > .............>///////////////////////////////<<<<<<<<<<<<<<..................... +00:00:26 v #3456 > > ..////////<<<<<<<<.............................................................. +00:00:26 v #3457 > > │ +00:00:26 v #3458 > > .............../////////////////////////////<<<<<<<<<<<<<<...................... +00:00:26 v #3459 > > .....////<<<<<<<................................................................ +00:00:26 v #3460 > > │ +00:00:26 v #3461 > > .................//////////////////////////<<<<<<<<<<<<<<....................... +00:00:26 v #3462 > > .......//<<..................................................................... +00:00:26 v #3463 > > │ +00:00:26 v #3464 > > ....................///////////////////////<<<<<<<<<<<<<........................ +00:00:26 v #3465 > > ................................................................................ +00:00:26 v #3466 > > │ +00:00:26 v #3467 > > ......................////////////////////<<<<<<<<<<<<<......................... +00:00:26 v #3468 > > ................................................................................ +00:00:26 v #3469 > > │ +00:00:26 v #3470 > > ......................../////////////////<<<<<<<<<<<<........................... +00:00:26 v #3471 > > ................................................................................ +00:00:26 v #3472 > > │ +00:00:26 v #3473 > > .........................../////////////<<<<<<<<<<.............................. +00:00:26 v #3474 > > ................................................................................ +00:00:26 v #3475 > > │ +00:00:26 v #3476 > > .............................//////////<<<<<<<<................................. +00:00:26 v #3477 > > ................................................................................ +00:00:26 v #3478 > > │ +00:00:26 v #3479 > > ................................///////<<<<<.................................... +00:00:26 v #3480 > > ................................................................................ +00:00:26 v #3481 > > │ +00:00:26 v #3482 > > ..................................////<<<....................................... +00:00:26 v #3483 > > ................................................................................ +00:00:26 v #3484 > > │ +00:00:26 v #3485 > > .....................................<.......................................... +00:00:26 v #3486 > > ................................................................................ +00:00:26 v #3487 > > │ +00:00:26 v #3488 > > ................................................................................ +00:00:26 v #3489 > > ................................................................................ +00:00:26 v #3490 > > │ +00:00:26 v #3491 > > ................................................................................ +00:00:26 v #3492 > > ................................................................................ +00:00:26 v #3493 > > │ +00:00:26 v #3494 > > ................................................................................ +00:00:26 v #3495 > > ................................................................................ +00:00:26 v #3496 > > │ +00:00:26 v #3497 > > ................................................................................ +00:00:26 v #3498 > > ................................................................................ +00:00:26 v #3499 > > │ +00:00:26 v #3500 > > ................................................................................ +00:00:26 v #3501 > > ................................................................................ +00:00:26 v #3502 > > │ +00:00:26 v #3503 > > ................................................................................ +00:00:26 v #3504 > > ................................................................................ +00:00:26 v #3505 > > │ +00:00:26 v #3506 > > ................................................................................ +00:00:26 v #3507 > > ................................................................................ +00:00:26 v #3508 > > │ +00:00:26 v #3509 > > │ +00:00:26 v #3510 > > ................................................................................ +00:00:26 v #3511 > > ................................................................................ +00:00:26 v #3512 > > │ +00:00:26 v #3513 > > ................................................................................ +00:00:26 v #3514 > > ................................................................................ +00:00:26 v #3515 > > │ +00:00:26 v #3516 > > ................................................................................ +00:00:26 v #3517 > > ................................................................................ +00:00:26 v #3518 > > │ +00:00:26 v #3519 > > ................................................................................ +00:00:26 v #3520 > > ................................................................................ +00:00:26 v #3521 > > │ +00:00:26 v #3522 > > ................................................................................ +00:00:26 v #3523 > > ................................................................................ +00:00:26 v #3524 > > │ +00:00:26 v #3525 > > ................................................................................ +00:00:26 v #3526 > > ................................................................................ +00:00:26 v #3527 > > │ +00:00:26 v #3528 > > ................................................................................ +00:00:26 v #3529 > > ................................................................................ +00:00:26 v #3530 > > │ +00:00:26 v #3531 > > ................................................................................ +00:00:26 v #3532 > > ................................................................................ +00:00:26 v #3533 > > │ +00:00:26 v #3534 > > ................................................................................ +00:00:26 v #3535 > > ................................................................................ +00:00:26 v #3536 > > │ +00:00:26 v #3537 > > ................................................................................ +00:00:26 v #3538 > > ................................................................................ +00:00:26 v #3539 > > │ +00:00:26 v #3540 > > ....................;;.......................................................... +00:00:26 v #3541 > > ................................................................................ +00:00:26 v #3542 > > │ +00:00:26 v #3543 > > ....................//;/;;;;;;;;;............................................... +00:00:26 v #3544 > > ................................................................................ +00:00:26 v #3545 > > │ +00:00:26 v #3546 > > ...................>//////;;;/;;;;;;;;;;;;;..................................... +00:00:26 v #3547 > > ................................................................................ +00:00:26 v #3548 > > │ +00:00:26 v #3549 > > ...................////////////;;;;;;;;;;;;;;;;;................................ +00:00:26 v #3550 > > ................................................................................ +00:00:26 v #3551 > > │ +00:00:26 v #3552 > > ..................>/////////////////////;;;;;;;;;;;;;;.......................... +00:00:26 v #3553 > > ................................................................................ +00:00:26 v #3554 > > │ +00:00:26 v #3555 > > ..................>///////////////////////;;;/;;;;;;;;;;;;;;.................... +00:00:26 v #3556 > > ................................................................................ +00:00:26 v #3557 > > │ +00:00:26 v #3558 > > ................../////////////////////////////;;/;;;;;;;;;;;;;;;............... +00:00:26 v #3559 > > ;;;;;;;;;;;..................................................................... +00:00:26 v #3560 > > │ +00:00:26 v #3561 > > .................>//////////////////////////////////<<<<<<<<<<<<<<.............. +00:00:26 v #3562 > > >/;/;;;;;;;;;;;;................................................................ +00:00:26 v #3563 > > │ +00:00:26 v #3564 > > .................//////////////////////////////////<<<<<<<<<<<<<<..............> +00:00:26 v #3565 > > ///////;;/;;;;;;;;;;;........................................................... +00:00:26 v #3566 > > │ +00:00:26 v #3567 > > ................>//////////////////////////////////<<<<<<<<<<<<<...............> +00:00:26 v #3568 > > //////////;;/;;;<<<<<<<............/;;;;;;;\.................................... +00:00:26 v #3569 > > │ +00:00:26 v #3570 > > ................//////////////////////////////////<<<<<<<<<<<<<...............> +00:00:26 v #3571 > > ///////////////<<<<<<<<...........>//;;/;;;;<<<................................. +00:00:26 v #3572 > > │ +00:00:26 v #3573 > > ...............>//////////////////////////////////<<<<<<<<<<<<................ +00:00:26 v #3574 > > //////////////<<<<<<<<............>///////<<<<.................................. +00:00:26 v #3575 > > │ +00:00:26 v #3576 > > ...............>/////////////////////////////////<<<<<<<<<<<<<...............> +00:00:26 v #3577 > > /////////////<<<<<<<<............>///////<<<<<.................................. +00:00:26 v #3578 > > │ +00:00:26 v #3579 > > .............../////////////////////////////////<<<<<<<<<<<<<................> +00:00:26 v #3580 > > /////////////<<<<<<<<............////////<<<<................................... +00:00:26 v #3581 > > │ +00:00:26 v #3582 > > ..............>////////////////////////////////<<<<<<<<<<<<<................. +00:00:26 v #3583 > > ////////////<<<<<<<<................////<<<<<................................... +00:00:26 v #3584 > > │ +00:00:26 v #3585 > > ............../////////////////////////////////<<<<<<<<<<<<................... +00:00:26 v #3586 > > ///////////<<<<<<<<............................................................. +00:00:26 v #3587 > > │ +00:00:26 v #3588 > > .............>////////////////////////////////<<<<<<<<<<<<<..................... +00:00:26 v #3589 > > ../////////<<<<<<<<............................................................. +00:00:26 v #3590 > > │ +00:00:26 v #3591 > > .............////////////////////////////////<<<<<<<<<<<<<...................... +00:00:26 v #3592 > > ...../////<<<<<<................................................................ +00:00:26 v #3593 > > │ +00:00:26 v #3594 > > ................/////////////////////////////<<<<<<<<<<<<....................... +00:00:26 v #3595 > > ........./<..................................................................... +00:00:26 v #3596 > > │ +00:00:26 v #3597 > > .................../////////////////////////<<<<<<<<<<<<........................ +00:00:26 v #3598 > > ................................................................................ +00:00:26 v #3599 > > │ +00:00:26 v #3600 > > ....................../////////////////////<<<<<<<<<<<<......................... +00:00:26 v #3601 > > ................................................................................ +00:00:26 v #3602 > > │ +00:00:26 v #3603 > > ........................///////////////////<<<<<<<<<<........................... +00:00:26 v #3604 > > ................................................................................ +00:00:26 v #3605 > > │ +00:00:26 v #3606 > > ............................//////////////<<<<<<<<<............................. +00:00:26 v #3607 > > ................................................................................ +00:00:26 v #3608 > > │ +00:00:26 v #3609 > > ...............................//////////<<<<<<<................................ +00:00:26 v #3610 > > ................................................................................ +00:00:26 v #3611 > > │ +00:00:26 v #3612 > > ..................................///////<<<<<.................................. +00:00:26 v #3613 > > ................................................................................ +00:00:26 v #3614 > > │ +00:00:26 v #3615 > > ....................................////<<<..................................... +00:00:26 v #3616 > > ................................................................................ +00:00:26 v #3617 > > │ +00:00:26 v #3618 > > ......................................./........................................ +00:00:26 v #3619 > > ................................................................................ +00:00:26 v #3620 > > │ +00:00:26 v #3621 > > ................................................................................ +00:00:26 v #3622 > > ................................................................................ +00:00:26 v #3623 > > │ +00:00:26 v #3624 > > ................................................................................ +00:00:26 v #3625 > > ................................................................................ +00:00:26 v #3626 > > │ +00:00:26 v #3627 > > ................................................................................ +00:00:26 v #3628 > > ................................................................................ +00:00:26 v #3629 > > │ +00:00:26 v #3630 > > ................................................................................ +00:00:26 v #3631 > > ................................................................................ +00:00:26 v #3632 > > │ +00:00:26 v #3633 > > ................................................................................ +00:00:26 v #3634 > > ................................................................................ +00:00:26 v #3635 > > │ +00:00:26 v #3636 > > ................................................................................ +00:00:26 v #3637 > > ................................................................................ +00:00:26 v #3638 > > │ +00:00:26 v #3639 > > ................................................................................ +00:00:26 v #3640 > > ................................................................................ +00:00:26 v #3641 > > │ +00:00:26 v #3642 > > │ +00:00:26 v #3643 > > ................................................................................ +00:00:26 v #3644 > > ................................................................................ +00:00:26 v #3645 > > │ +00:00:26 v #3646 > > ................................................................................ +00:00:26 v #3647 > > ................................................................................ +00:00:26 v #3648 > > │ +00:00:26 v #3649 > > ................................................................................ +00:00:26 v #3650 > > ................................................................................ +00:00:26 v #3651 > > │ +00:00:26 v #3652 > > ................................................................................ +00:00:26 v #3653 > > ................................................................................ +00:00:26 v #3654 > > │ +00:00:26 v #3655 > > ................................................................................ +00:00:26 v #3656 > > ................................................................................ +00:00:26 v #3657 > > │ +00:00:26 v #3658 > > ................................................................................ +00:00:26 v #3659 > > ................................................................................ +00:00:26 v #3660 > > │ +00:00:26 v #3661 > > ................................................................................ +00:00:26 v #3662 > > ................................................................................ +00:00:26 v #3663 > > │ +00:00:26 v #3664 > > ................................................................................ +00:00:26 v #3665 > > ................................................................................ +00:00:26 v #3666 > > │ +00:00:26 v #3667 > > ................................................................................ +00:00:26 v #3668 > > ................................................................................ +00:00:26 v #3669 > > │ +00:00:26 v #3670 > > ................................................................................ +00:00:26 v #3671 > > ................................................................................ +00:00:26 v #3672 > > │ +00:00:26 v #3673 > > ................................................................................ +00:00:26 v #3674 > > ................................................................................ +00:00:26 v #3675 > > │ +00:00:26 v #3676 > > ...................;/;;;;;;;;................................................... +00:00:26 v #3677 > > ................................................................................ +00:00:26 v #3678 > > │ +00:00:26 v #3679 > > ...................//////;///;;;;;;;;;;......................................... +00:00:26 v #3680 > > ................................................................................ +00:00:26 v #3681 > > │ +00:00:26 v #3682 > > ..................>/////////////;;;;;;;;;;;;;;;................................. +00:00:26 v #3683 > > ................................................................................ +00:00:26 v #3684 > > │ +00:00:26 v #3685 > > ..................>////////////////////;//;;;;;;;;;;;;.......................... +00:00:26 v #3686 > > ................................................................................ +00:00:26 v #3687 > > │ +00:00:26 v #3688 > > ................../////////////////////////////;/;;;;;;;;;;;;................... +00:00:26 v #3689 > > ................................................................................ +00:00:26 v #3690 > > │ +00:00:26 v #3691 > > .................>///////////////////////////////////<<<<<<<<<<<<............... +00:00:26 v #3692 > > ................................................................................ +00:00:26 v #3693 > > │ +00:00:26 v #3694 > > .................>//////////////////////////////////<<<<<<<<<<<<................ +00:00:26 v #3695 > > /;;/;;;;;;;;;;;................................................................. +00:00:26 v #3696 > > │ +00:00:26 v #3697 > > .................///////////////////////////////////<<<<<<<<<<<<...............> +00:00:26 v #3698 > > ///////;;;;;;;;;;;;;;........................................................... +00:00:26 v #3699 > > │ +00:00:26 v #3700 > > ................>//////////////////////////////////<<<<<<<<<<<<................> +00:00:26 v #3701 > > /////////////;;<<<<<<<<............;;;;;;;;..................................... +00:00:26 v #3702 > > │ +00:00:26 v #3703 > > ................>//////////////////////////////////<<<<<<<<<<<................> +00:00:26 v #3704 > > ///////////////<<<<<<<............>//;;/;;<<<<<................................. +00:00:26 v #3705 > > │ +00:00:26 v #3706 > > ................//////////////////////////////////<<<<<<<<<<<<................> +00:00:26 v #3707 > > ///////////////<<<<<<<............>///////<<<<.................................. +00:00:26 v #3708 > > │ +00:00:26 v #3709 > > ...............>//////////////////////////////////<<<<<<<<<<<................. +00:00:26 v #3710 > > //////////////<<<<<<<............>///////<<<<<.................................. +00:00:26 v #3711 > > │ +00:00:26 v #3712 > > ...............//////////////////////////////////<<<<<<<<<<<.................> +00:00:26 v #3713 > > /////////////<<<<<<<.............>///////<<<<................................... +00:00:26 v #3714 > > │ +00:00:26 v #3715 > > ...............//////////////////////////////////<<<<<<<<<<<................. +00:00:26 v #3716 > > /////////////<<<<<<<................////<<<<<................................... +00:00:26 v #3717 > > │ +00:00:26 v #3718 > > ..............>/////////////////////////////////<<<<<<<<<<<.................. +00:00:26 v #3719 > > ////////////<<<<<<<............................................................. +00:00:26 v #3720 > > │ +00:00:26 v #3721 > > ............../////////////////////////////////<<<<<<<<<<<...................... +00:00:26 v #3722 > > ..//////////<<<<<<<............................................................. +00:00:26 v #3723 > > │ +00:00:26 v #3724 > > .............//////////////////////////////////<<<<<<<<<<<...................... +00:00:26 v #3725 > > ....../////<<<<<................................................................ +00:00:26 v #3726 > > │ +00:00:26 v #3727 > > ..............////////////////////////////////<<<<<<<<<<<....................... +00:00:26 v #3728 > > ........../<.................................................................... +00:00:26 v #3729 > > │ +00:00:26 v #3730 > > ................./////////////////////////////<<<<<<<<<<........................ +00:00:26 v #3731 > > ................................................................................ +00:00:26 v #3732 > > │ +00:00:26 v #3733 > > .....................////////////////////////<<<<<<<<<<<........................ +00:00:26 v #3734 > > ................................................................................ +00:00:26 v #3735 > > │ +00:00:26 v #3736 > > ........................////////////////////<<<<<<<<<<.......................... +00:00:26 v #3737 > > ................................................................................ +00:00:26 v #3738 > > │ +00:00:26 v #3739 > > ............................////////////////<<<<<<<............................. +00:00:26 v #3740 > > ................................................................................ +00:00:26 v #3741 > > │ +00:00:26 v #3742 > > ................................///////////<<<<<<............................... +00:00:26 v #3743 > > ................................................................................ +00:00:26 v #3744 > > │ +00:00:26 v #3745 > > ...................................////////<<<<................................. +00:00:26 v #3746 > > ................................................................................ +00:00:26 v #3747 > > │ +00:00:26 v #3748 > > .......................................///<<.................................... +00:00:26 v #3749 > > ................................................................................ +00:00:26 v #3750 > > │ +00:00:26 v #3751 > > ................................................................................ +00:00:26 v #3752 > > ................................................................................ +00:00:26 v #3753 > > │ +00:00:26 v #3754 > > ................................................................................ +00:00:26 v #3755 > > ................................................................................ +00:00:26 v #3756 > > │ +00:00:26 v #3757 > > ................................................................................ +00:00:26 v #3758 > > ................................................................................ +00:00:26 v #3759 > > │ +00:00:26 v #3760 > > ................................................................................ +00:00:26 v #3761 > > ................................................................................ +00:00:26 v #3762 > > │ +00:00:26 v #3763 > > ................................................................................ +00:00:26 v #3764 > > ................................................................................ +00:00:26 v #3765 > > │ +00:00:26 v #3766 > > ................................................................................ +00:00:26 v #3767 > > ................................................................................ +00:00:26 v #3768 > > │ +00:00:26 v #3769 > > ................................................................................ +00:00:26 v #3770 > > ................................................................................ +00:00:26 v #3771 > > │ +00:00:26 v #3772 > > ................................................................................ +00:00:26 v #3773 > > ................................................................................ +00:00:26 v #3774 > > │ +00:00:26 v #3775 > > │ +00:00:26 v #3776 > > ................................................................................ +00:00:26 v #3777 > > ................................................................................ +00:00:26 v #3778 > > │ +00:00:26 v #3779 > > ................................................................................ +00:00:26 v #3780 > > ................................................................................ +00:00:26 v #3781 > > │ +00:00:26 v #3782 > > ................................................................................ +00:00:26 v #3783 > > ................................................................................ +00:00:26 v #3784 > > │ +00:00:26 v #3785 > > ................................................................................ +00:00:26 v #3786 > > ................................................................................ +00:00:26 v #3787 > > │ +00:00:26 v #3788 > > ................................................................................ +00:00:26 v #3789 > > ................................................................................ +00:00:26 v #3790 > > │ +00:00:26 v #3791 > > ................................................................................ +00:00:26 v #3792 > > ................................................................................ +00:00:26 v #3793 > > │ +00:00:26 v #3794 > > ................................................................................ +00:00:26 v #3795 > > ................................................................................ +00:00:26 v #3796 > > │ +00:00:26 v #3797 > > ................................................................................ +00:00:26 v #3798 > > ................................................................................ +00:00:26 v #3799 > > │ +00:00:26 v #3800 > > ................................................................................ +00:00:26 v #3801 > > ................................................................................ +00:00:26 v #3802 > > │ +00:00:26 v #3803 > > ................................................................................ +00:00:26 v #3804 > > ................................................................................ +00:00:26 v #3805 > > │ +00:00:26 v #3806 > > ................................................................................ +00:00:26 v #3807 > > ................................................................................ +00:00:26 v #3808 > > │ +00:00:26 v #3809 > > ...................;;;;;........................................................ +00:00:26 v #3810 > > ................................................................................ +00:00:26 v #3811 > > │ +00:00:26 v #3812 > > ..................>//////;;;;;;;;;;............................................. +00:00:26 v #3813 > > ................................................................................ +00:00:26 v #3814 > > │ +00:00:26 v #3815 > > ..................>//////////////;;;;/;;;;;;.................................... +00:00:26 v #3816 > > ................................................................................ +00:00:26 v #3817 > > │ +00:00:26 v #3818 > > ..................//////////////////////////;;;;;;;;;;.......................... +00:00:26 v #3819 > > ................................................................................ +00:00:26 v #3820 > > │ +00:00:26 v #3821 > > ..................//////////////////////////////////;/<<<<<<<<<................. +00:00:26 v #3822 > > ................................................................................ +00:00:26 v #3823 > > │ +00:00:26 v #3824 > > .................>///////////////////////////////////<<<<<<<<<<................. +00:00:26 v #3825 > > ................................................................................ +00:00:26 v #3826 > > │ +00:00:26 v #3827 > > .................////////////////////////////////////<<<<<<<<<<................. +00:00:26 v #3828 > > ;/;;;;;;;;;;;;;................................................................. +00:00:26 v #3829 > > │ +00:00:26 v #3830 > > .................///////////////////////////////////<<<<<<<<<<.................> +00:00:26 v #3831 > > ///////;;;;;;;;;;;;;;<.......................................................... +00:00:26 v #3832 > > │ +00:00:26 v #3833 > > ................>///////////////////////////////////<<<<<<<<<<................. +00:00:26 v #3834 > > //////////////;<<<<<<<.............;;;;;;;;..................................... +00:00:26 v #3835 > > │ +00:00:26 v #3836 > > ................>///////////////////////////////////<<<<<<<<<.................. +00:00:26 v #3837 > > ///////////////<<<<<<<............>//;;//;<<<<.................................. +00:00:26 v #3838 > > │ +00:00:26 v #3839 > > ................///////////////////////////////////<<<<<<<<<<.................> +00:00:26 v #3840 > > ///////////////<<<<<<.............>///////<<<<.................................. +00:00:26 v #3841 > > │ +00:00:26 v #3842 > > ...............>//////////////////////////////////<<<<<<<<<<.................. +00:00:26 v #3843 > > //////////////<<<<<<<.............////////<<<<.................................. +00:00:26 v #3844 > > │ +00:00:26 v #3845 > > ...............>//////////////////////////////////<<<<<<<<<<.................. +00:00:26 v #3846 > > ///////////////<<<<<.............>///////<<<<................................... +00:00:26 v #3847 > > │ +00:00:26 v #3848 > > ...............///////////////////////////////////<<<<<<<<<..................> +00:00:26 v #3849 > > /////////////<<<<<<<................/////<<<<................................... +00:00:26 v #3850 > > │ +00:00:26 v #3851 > > ...............//////////////////////////////////<<<<<<<<<<.................. +00:00:26 v #3852 > > /////////////<<<<<<............................................................. +00:00:26 v #3853 > > │ +00:00:26 v #3854 > > ..............>//////////////////////////////////<<<<<<<<<...................... +00:00:26 v #3855 > > .///////////<<<<<<<............................................................. +00:00:26 v #3856 > > │ +00:00:26 v #3857 > > ..............>/////////////////////////////////<<<<<<<<<<...................... +00:00:26 v #3858 > > ......./////<<<<................................................................ +00:00:26 v #3859 > > │ +00:00:26 v #3860 > > ..............//////////////////////////////////<<<<<<<<<....................... +00:00:26 v #3861 > > ................................................................................ +00:00:26 v #3862 > > │ +00:00:26 v #3863 > > ...............////////////////////////////////<<<<<<<<<<....................... +00:00:26 v #3864 > > ................................................................................ +00:00:26 v #3865 > > │ +00:00:26 v #3866 > > ....................///////////////////////////<<<<<<<<<........................ +00:00:26 v #3867 > > ................................................................................ +00:00:26 v #3868 > > │ +00:00:26 v #3869 > > ........................//////////////////////<<<<<<<<.......................... +00:00:26 v #3870 > > ................................................................................ +00:00:26 v #3871 > > │ +00:00:26 v #3872 > > ............................./////////////////<<<<<<............................ +00:00:26 v #3873 > > ................................................................................ +00:00:26 v #3874 > > │ +00:00:26 v #3875 > > .................................////////////<<<<<.............................. +00:00:26 v #3876 > > ................................................................................ +00:00:26 v #3877 > > │ +00:00:26 v #3878 > > ......................................///////<<<................................ +00:00:26 v #3879 > > ................................................................................ +00:00:26 v #3880 > > │ +00:00:26 v #3881 > > ..........................................//<<.................................. +00:00:26 v #3882 > > ................................................................................ +00:00:26 v #3883 > > │ +00:00:26 v #3884 > > ................................................................................ +00:00:26 v #3885 > > ................................................................................ +00:00:26 v #3886 > > │ +00:00:26 v #3887 > > ................................................................................ +00:00:26 v #3888 > > ................................................................................ +00:00:26 v #3889 > > │ +00:00:26 v #3890 > > ................................................................................ +00:00:26 v #3891 > > ................................................................................ +00:00:26 v #3892 > > │ +00:00:26 v #3893 > > ................................................................................ +00:00:26 v #3894 > > ................................................................................ +00:00:26 v #3895 > > │ +00:00:26 v #3896 > > ................................................................................ +00:00:26 v #3897 > > ................................................................................ +00:00:26 v #3898 > > │ +00:00:26 v #3899 > > ................................................................................ +00:00:26 v #3900 > > ................................................................................ +00:00:26 v #3901 > > │ +00:00:26 v #3902 > > ................................................................................ +00:00:26 v #3903 > > ................................................................................ +00:00:26 v #3904 > > │ +00:00:26 v #3905 > > ................................................................................ +00:00:26 v #3906 > > ................................................................................ +00:00:26 v #3907 > > │ +00:00:26 v #3908 > > │ +00:00:26 v #3909 > > ................................................................................ +00:00:26 v #3910 > > ................................................................................ +00:00:26 v #3911 > > │ +00:00:26 v #3912 > > ................................................................................ +00:00:26 v #3913 > > ................................................................................ +00:00:26 v #3914 > > │ +00:00:26 v #3915 > > ................................................................................ +00:00:26 v #3916 > > ................................................................................ +00:00:26 v #3917 > > │ +00:00:26 v #3918 > > ................................................................................ +00:00:26 v #3919 > > ................................................................................ +00:00:26 v #3920 > > │ +00:00:26 v #3921 > > ................................................................................ +00:00:26 v #3922 > > ................................................................................ +00:00:26 v #3923 > > │ +00:00:26 v #3924 > > ................................................................................ +00:00:26 v #3925 > > ................................................................................ +00:00:26 v #3926 > > │ +00:00:26 v #3927 > > ................................................................................ +00:00:26 v #3928 > > ................................................................................ +00:00:26 v #3929 > > │ +00:00:26 v #3930 > > ................................................................................ +00:00:26 v #3931 > > ................................................................................ +00:00:26 v #3932 > > │ +00:00:26 v #3933 > > ................................................................................ +00:00:26 v #3934 > > ................................................................................ +00:00:26 v #3935 > > │ +00:00:26 v #3936 > > ................................................................................ +00:00:26 v #3937 > > ................................................................................ +00:00:26 v #3938 > > │ +00:00:26 v #3939 > > ................................................................................ +00:00:26 v #3940 > > ................................................................................ +00:00:26 v #3941 > > │ +00:00:26 v #3942 > > ..................;;;........................................................... +00:00:26 v #3943 > > ................................................................................ +00:00:26 v #3944 > > │ +00:00:26 v #3945 > > ..................//;;;;;;/;;;;;;;;............................................. +00:00:26 v #3946 > > ................................................................................ +00:00:26 v #3947 > > │ +00:00:26 v #3948 > > ..................////////////////;;//;;;;;;;;;;;............................... +00:00:26 v #3949 > > ................................................................................ +00:00:26 v #3950 > > │ +00:00:26 v #3951 > > .................>///////////////////////////////;;;/;<<<<<..................... +00:00:26 v #3952 > > ................................................................................ +00:00:26 v #3953 > > │ +00:00:26 v #3954 > > .................>////////////////////////////////////<<<<<<<<.................. +00:00:26 v #3955 > > ................................................................................ +00:00:26 v #3956 > > │ +00:00:26 v #3957 > > ................./////////////////////////////////////<<<<<<<<.................. +00:00:26 v #3958 > > ................................................................................ +00:00:26 v #3959 > > │ +00:00:26 v #3960 > > .................////////////////////////////////////<<<<<<<<<.................> +00:00:26 v #3961 > > /;;;;;;;;;;;;;.................................................................. +00:00:26 v #3962 > > │ +00:00:26 v #3963 > > .................////////////////////////////////////<<<<<<<<..................> +00:00:26 v #3964 > > ///////;;;;;;;;/<<<<<<.......................................................... +00:00:26 v #3965 > > │ +00:00:26 v #3966 > > ................>///////////////////////////////////<<<<<<<<<.................. +00:00:26 v #3967 > > ////////////////<<<<<<.............;;;;;;;;..................................... +00:00:26 v #3968 > > │ +00:00:26 v #3969 > > ................>///////////////////////////////////<<<<<<<<................... +00:00:26 v #3970 > > ///////////////<<<<<<.............>//;;;//<<<<.................................. +00:00:26 v #3971 > > │ +00:00:26 v #3972 > > ................////////////////////////////////////<<<<<<<<..................> +00:00:26 v #3973 > > ///////////////<<<<<<.............>///////<<<<.................................. +00:00:26 v #3974 > > │ +00:00:26 v #3975 > > ................///////////////////////////////////<<<<<<<<<..................> +00:00:26 v #3976 > > //////////////<<<<<<..............////////<<<................................... +00:00:26 v #3977 > > │ +00:00:26 v #3978 > > ................///////////////////////////////////<<<<<<<<................... +00:00:26 v #3979 > > //////////////<<<<<<..............///////<<<<................................... +00:00:26 v #3980 > > │ +00:00:26 v #3981 > > ...............>///////////////////////////////////<<<<<<<<................... +00:00:26 v #3982 > > //////////////<<<<<<................/////<<<<................................... +00:00:26 v #3983 > > │ +00:00:26 v #3984 > > ...............>//////////////////////////////////<<<<<<<<...................> +00:00:26 v #3985 > > /////////////<<<<<<............................................................. +00:00:26 v #3986 > > │ +00:00:26 v #3987 > > ...............///////////////////////////////////<<<<<<<<...................... +00:00:26 v #3988 > > .////////////<<<<<<............................................................. +00:00:26 v #3989 > > │ +00:00:26 v #3990 > > ...............///////////////////////////////////<<<<<<<<...................... +00:00:26 v #3991 > > ......../////<<<................................................................ +00:00:26 v #3992 > > │ +00:00:26 v #3993 > > ..............>//////////////////////////////////<<<<<<<<....................... +00:00:26 v #3994 > > ................................................................................ +00:00:26 v #3995 > > │ +00:00:26 v #3996 > > ..............>//////////////////////////////////<<<<<<<<....................... +00:00:26 v #3997 > > ................................................................................ +00:00:26 v #3998 > > │ +00:00:26 v #3999 > > ..................//////////////////////////////<<<<<<<<........................ +00:00:26 v #4000 > > ................................................................................ +00:00:26 v #4001 > > │ +00:00:26 v #4002 > > ......................./////////////////////////<<<<<<.......................... +00:00:26 v #4003 > > ................................................................................ +00:00:26 v #4004 > > │ +00:00:26 v #4005 > > .............................///////////////////<<<<............................ +00:00:26 v #4006 > > ................................................................................ +00:00:26 v #4007 > > │ +00:00:26 v #4008 > > ...................................////////////<<<<............................. +00:00:26 v #4009 > > ................................................................................ +00:00:26 v #4010 > > │ +00:00:26 v #4011 > > .........................................//////<<............................... +00:00:26 v #4012 > > ................................................................................ +00:00:26 v #4013 > > │ +00:00:26 v #4014 > > ............................................../................................. +00:00:26 v #4015 > > ................................................................................ +00:00:26 v #4016 > > │ +00:00:26 v #4017 > > ................................................................................ +00:00:26 v #4018 > > ................................................................................ +00:00:26 v #4019 > > │ +00:00:26 v #4020 > > ................................................................................ +00:00:26 v #4021 > > ................................................................................ +00:00:26 v #4022 > > │ +00:00:26 v #4023 > > ................................................................................ +00:00:26 v #4024 > > ................................................................................ +00:00:26 v #4025 > > │ +00:00:26 v #4026 > > ................................................................................ +00:00:26 v #4027 > > ................................................................................ +00:00:26 v #4028 > > │ +00:00:26 v #4029 > > ................................................................................ +00:00:26 v #4030 > > ................................................................................ +00:00:26 v #4031 > > │ +00:00:26 v #4032 > > ................................................................................ +00:00:26 v #4033 > > ................................................................................ +00:00:26 v #4034 > > │ +00:00:26 v #4035 > > ................................................................................ +00:00:26 v #4036 > > ................................................................................ +00:00:26 v #4037 > > │ +00:00:26 v #4038 > > ................................................................................ +00:00:26 v #4039 > > ................................................................................ +00:00:26 v #4040 > > │ +00:00:26 v #4041 > > │ +00:00:26 v #4042 > > ................................................................................ +00:00:26 v #4043 > > ................................................................................ +00:00:26 v #4044 > > │ +00:00:26 v #4045 > > ................................................................................ +00:00:26 v #4046 > > ................................................................................ +00:00:26 v #4047 > > │ +00:00:26 v #4048 > > ................................................................................ +00:00:26 v #4049 > > ................................................................................ +00:00:26 v #4050 > > │ +00:00:26 v #4051 > > ................................................................................ +00:00:26 v #4052 > > ................................................................................ +00:00:26 v #4053 > > │ +00:00:26 v #4054 > > ................................................................................ +00:00:26 v #4055 > > ................................................................................ +00:00:26 v #4056 > > │ +00:00:26 v #4057 > > ................................................................................ +00:00:26 v #4058 > > ................................................................................ +00:00:26 v #4059 > > │ +00:00:26 v #4060 > > ................................................................................ +00:00:26 v #4061 > > ................................................................................ +00:00:26 v #4062 > > │ +00:00:26 v #4063 > > ................................................................................ +00:00:26 v #4064 > > ................................................................................ +00:00:26 v #4065 > > │ +00:00:26 v #4066 > > ................................................................................ +00:00:26 v #4067 > > ................................................................................ +00:00:26 v #4068 > > │ +00:00:26 v #4069 > > ................................................................................ +00:00:26 v #4070 > > ................................................................................ +00:00:26 v #4071 > > │ +00:00:26 v #4072 > > ................................................................................ +00:00:26 v #4073 > > ................................................................................ +00:00:26 v #4074 > > │ +00:00:26 v #4075 > > ................................................................................ +00:00:26 v #4076 > > ................................................................................ +00:00:26 v #4077 > > │ +00:00:26 v #4078 > > .................>;;;;;;;;;;;;/;;;;;;;;......................................... +00:00:26 v #4079 > > ................................................................................ +00:00:26 v #4080 > > │ +00:00:26 v #4081 > > .................>////////////////////;;/;;/;;/;;;;;;;;<<....................... +00:00:26 v #4082 > > ................................................................................ +00:00:26 v #4083 > > │ +00:00:26 v #4084 > > .................>////////////////////////////////////<<<<<<.................... +00:00:26 v #4085 > > ................................................................................ +00:00:26 v #4086 > > │ +00:00:26 v #4087 > > ................./////////////////////////////////////<<<<<<<................... +00:00:26 v #4088 > > ................................................................................ +00:00:26 v #4089 > > │ +00:00:26 v #4090 > > ................./////////////////////////////////////<<<<<<<................... +00:00:26 v #4091 > > ................................................................................ +00:00:26 v #4092 > > │ +00:00:26 v #4093 > > ................./////////////////////////////////////<<<<<<...................; +00:00:26 v #4094 > > ;;;;;/;;;;;;;................................................................... +00:00:26 v #4095 > > │ +00:00:26 v #4096 > > .................////////////////////////////////////<<<<<<<...................> +00:00:26 v #4097 > > ////////;;;///;;<<<<<........................................................... +00:00:26 v #4098 > > │ +00:00:26 v #4099 > > ................>////////////////////////////////////<<<<<<<................... +00:00:26 v #4100 > > ////////////////<<<<<..............;;;;;;;;..................................... +00:00:26 v #4101 > > │ +00:00:26 v #4102 > > ................>////////////////////////////////////<<<<<<.................... +00:00:26 v #4103 > > ///////////////<<<<<<.............>//;;;;;<<<<.................................. +00:00:26 v #4104 > > │ +00:00:26 v #4105 > > ................>////////////////////////////////////<<<<<<.................... +00:00:26 v #4106 > > ///////////////<<<<<..............>///////<<<<.................................. +00:00:26 v #4107 > > │ +00:00:26 v #4108 > > ................>///////////////////////////////////<<<<<<<...................> +00:00:26 v #4109 > > ///////////////<<<<<..............>///////<<<................................... +00:00:26 v #4110 > > │ +00:00:26 v #4111 > > ................////////////////////////////////////<<<<<<<...................> +00:00:26 v #4112 > > ///////////////<<<<<..............////////<<<................................... +00:00:26 v #4113 > > │ +00:00:26 v #4114 > > ................////////////////////////////////////<<<<<<....................> +00:00:26 v #4115 > > ///////////////<<<<<...............///////<<=................................... +00:00:26 v #4116 > > │ +00:00:26 v #4117 > > ................////////////////////////////////////<<<<<<.................... +00:00:26 v #4118 > > //////////////<<<<<............................................................. +00:00:26 v #4119 > > │ +00:00:26 v #4120 > > ...............>///////////////////////////////////<<<<<<<..................... +00:00:26 v #4121 > > //////////////<<<<<............................................................. +00:00:26 v #4122 > > │ +00:00:26 v #4123 > > ...............>///////////////////////////////////<<<<<<....................... +00:00:26 v #4124 > > ........./////<<................................................................ +00:00:26 v #4125 > > │ +00:00:26 v #4126 > > ...............>///////////////////////////////////<<<<<<....................... +00:00:26 v #4127 > > ................................................................................ +00:00:26 v #4128 > > │ +00:00:26 v #4129 > > ...............>///////////////////////////////////<<<<<<....................... +00:00:26 v #4130 > > ................................................................................ +00:00:26 v #4131 > > │ +00:00:26 v #4132 > > ...............///////////////////////////////////<<<<<<........................ +00:00:26 v #4133 > > ................................................................................ +00:00:26 v #4134 > > │ +00:00:26 v #4135 > > ......................////////////////////////////<<<<<......................... +00:00:26 v #4136 > > ................................................................................ +00:00:26 v #4137 > > │ +00:00:26 v #4138 > > ..............................////////////////////<<<........................... +00:00:26 v #4139 > > ................................................................................ +00:00:26 v #4140 > > │ +00:00:26 v #4141 > > ...................................../////////////<<............................ +00:00:26 v #4142 > > ................................................................................ +00:00:26 v #4143 > > │ +00:00:26 v #4144 > > .............................................////<<............................. +00:00:26 v #4145 > > ................................................................................ +00:00:26 v #4146 > > │ +00:00:26 v #4147 > > ................................................................................ +00:00:26 v #4148 > > ................................................................................ +00:00:26 v #4149 > > │ +00:00:26 v #4150 > > ................................................................................ +00:00:26 v #4151 > > ................................................................................ +00:00:26 v #4152 > > │ +00:00:26 v #4153 > > ................................................................................ +00:00:26 v #4154 > > ................................................................................ +00:00:26 v #4155 > > │ +00:00:26 v #4156 > > ................................................................................ +00:00:26 v #4157 > > ................................................................................ +00:00:26 v #4158 > > │ +00:00:26 v #4159 > > ................................................................................ +00:00:26 v #4160 > > ................................................................................ +00:00:26 v #4161 > > │ +00:00:26 v #4162 > > ................................................................................ +00:00:26 v #4163 > > ................................................................................ +00:00:26 v #4164 > > │ +00:00:26 v #4165 > > ................................................................................ +00:00:26 v #4166 > > ................................................................................ +00:00:26 v #4167 > > │ +00:00:26 v #4168 > > ................................................................................ +00:00:26 v #4169 > > ................................................................................ +00:00:26 v #4170 > > │ +00:00:26 v #4171 > > ................................................................................ +00:00:26 v #4172 > > ................................................................................ +00:00:26 v #4173 > > │ +00:00:26 v #4174 > > │ +00:00:26 v #4175 > > ................................................................................ +00:00:26 v #4176 > > ................................................................................ +00:00:26 v #4177 > > │ +00:00:26 v #4178 > > ................................................................................ +00:00:26 v #4179 > > ................................................................................ +00:00:26 v #4180 > > │ +00:00:26 v #4181 > > ................................................................................ +00:00:26 v #4182 > > ................................................................................ +00:00:26 v #4183 > > │ +00:00:26 v #4184 > > ................................................................................ +00:00:26 v #4185 > > ................................................................................ +00:00:26 v #4186 > > │ +00:00:26 v #4187 > > ................................................................................ +00:00:26 v #4188 > > ................................................................................ +00:00:26 v #4189 > > │ +00:00:26 v #4190 > > ................................................................................ +00:00:26 v #4191 > > ................................................................................ +00:00:26 v #4192 > > │ +00:00:26 v #4193 > > ................................................................................ +00:00:26 v #4194 > > ................................................................................ +00:00:26 v #4195 > > │ +00:00:26 v #4196 > > ................................................................................ +00:00:26 v #4197 > > ................................................................................ +00:00:26 v #4198 > > │ +00:00:26 v #4199 > > ................................................................................ +00:00:26 v #4200 > > ................................................................................ +00:00:26 v #4201 > > │ +00:00:26 v #4202 > > ................................................................................ +00:00:26 v #4203 > > ................................................................................ +00:00:26 v #4204 > > │ +00:00:26 v #4205 > > ................................................................................ +00:00:26 v #4206 > > ................................................................................ +00:00:26 v #4207 > > │ +00:00:26 v #4208 > > ................................................................................ +00:00:26 v #4209 > > ................................................................................ +00:00:26 v #4210 > > │ +00:00:26 v #4211 > > .................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<........................ +00:00:26 v #4212 > > ................................................................................ +00:00:26 v #4213 > > │ +00:00:26 v #4214 > > .................//////////////////////////////////////<<<...................... +00:00:26 v #4215 > > ................................................................................ +00:00:26 v #4216 > > │ +00:00:26 v #4217 > > .................//////////////////////////////////////<<<<..................... +00:00:26 v #4218 > > ................................................................................ +00:00:26 v #4219 > > │ +00:00:26 v #4220 > > ................./////////////////////////////////////<<<<<..................... +00:00:26 v #4221 > > ................................................................................ +00:00:26 v #4222 > > │ +00:00:26 v #4223 > > ................./////////////////////////////////////<<<<<..................... +00:00:26 v #4224 > > ................................................................................ +00:00:26 v #4225 > > │ +00:00:26 v #4226 > > ................./////////////////////////////////////<<<<<....................; +00:00:26 v #4227 > > ;/;;;;;;;;;;.................................................................... +00:00:26 v #4228 > > │ +00:00:26 v #4229 > > ................./////////////////////////////////////<<<<<.................... +00:00:26 v #4230 > > ////////////;;;;<<<<............................................................ +00:00:26 v #4231 > > │ +00:00:26 v #4232 > > ................./////////////////////////////////////<<<<<.................... +00:00:26 v #4233 > > ////////////////<<<<...............;;;;;;;;..................................... +00:00:26 v #4234 > > │ +00:00:26 v #4235 > > ................>/////////////////////////////////////<<<<<.................... +00:00:26 v #4236 > > ////////////////<<<<..............>//;;;;;<<<<.................................. +00:00:26 v #4237 > > │ +00:00:26 v #4238 > > ................>/////////////////////////////////////<<<<..................... +00:00:26 v #4239 > > ////////////////<<<<..............>///////<<<................................... +00:00:26 v #4240 > > │ +00:00:26 v #4241 > > ................>////////////////////////////////////<<<<<..................... +00:00:26 v #4242 > > ///////////////<<<<<..............>///////<<<................................... +00:00:26 v #4243 > > │ +00:00:26 v #4244 > > ................>////////////////////////////////////<<<<<..................... +00:00:26 v #4245 > > ///////////////<<<<<..............>///////<<<................................... +00:00:26 v #4246 > > │ +00:00:26 v #4247 > > ................>////////////////////////////////////<<<<<..................... +00:00:26 v #4248 > > ///////////////<<<<<..............////////<<.................................... +00:00:26 v #4249 > > │ +00:00:26 v #4250 > > ................>////////////////////////////////////<<<<<....................> +00:00:26 v #4251 > > ///////////////<<<<............................................................. +00:00:26 v #4252 > > │ +00:00:26 v #4253 > > ................>////////////////////////////////////<<<<<.................... +00:00:26 v #4254 > > ///////////////<<<<............................................................. +00:00:26 v #4255 > > │ +00:00:26 v #4256 > > ................>////////////////////////////////////<<<<....................... +00:00:26 v #4257 > > ............///<................................................................ +00:00:26 v #4258 > > │ +00:00:26 v #4259 > > ................>////////////////////////////////////<<<<....................... +00:00:26 v #4260 > > ................................................................................ +00:00:26 v #4261 > > │ +00:00:26 v #4262 > > ................////////////////////////////////////<<<<<....................... +00:00:26 v #4263 > > ................................................................................ +00:00:26 v #4264 > > │ +00:00:26 v #4265 > > ................////////////////////////////////////<<<<........................ +00:00:26 v #4266 > > ................................................................................ +00:00:26 v #4267 > > │ +00:00:26 v #4268 > > .................///////////////////////////////////<<<......................... +00:00:26 v #4269 > > ................................................................................ +00:00:26 v #4270 > > │ +00:00:26 v #4271 > > .............................///////////////////////<<.......................... +00:00:26 v #4272 > > ................................................................................ +00:00:26 v #4273 > > │ +00:00:26 v #4274 > > .........................................///////////<........................... +00:00:26 v #4275 > > ................................................................................ +00:00:26 v #4276 > > │ +00:00:26 v #4277 > > ................................................................................ +00:00:26 v #4278 > > ................................................................................ +00:00:26 v #4279 > > │ +00:00:26 v #4280 > > ................................................................................ +00:00:26 v #4281 > > ................................................................................ +00:00:26 v #4282 > > │ +00:00:26 v #4283 > > ................................................................................ +00:00:26 v #4284 > > ................................................................................ +00:00:26 v #4285 > > │ +00:00:26 v #4286 > > ................................................................................ +00:00:26 v #4287 > > ................................................................................ +00:00:26 v #4288 > > │ +00:00:26 v #4289 > > ................................................................................ +00:00:26 v #4290 > > ................................................................................ +00:00:26 v #4291 > > │ +00:00:26 v #4292 > > ................................................................................ +00:00:26 v #4293 > > ................................................................................ +00:00:26 v #4294 > > │ +00:00:26 v #4295 > > ................................................................................ +00:00:26 v #4296 > > ................................................................................ +00:00:26 v #4297 > > │ +00:00:26 v #4298 > > ................................................................................ +00:00:26 v #4299 > > ................................................................................ +00:00:26 v #4300 > > │ +00:00:26 v #4301 > > ................................................................................ +00:00:26 v #4302 > > ................................................................................ +00:00:26 v #4303 > > │ +00:00:26 v #4304 > > ................................................................................ +00:00:26 v #4305 > > ................................................................................ +00:00:26 v #4306 > > │ +00:00:26 v #4307 > > │ +00:00:26 v #4308 > > ................................................................................ +00:00:26 v #4309 > > ................................................................................ +00:00:26 v #4310 > > │ +00:00:26 v #4311 > > ................................................................................ +00:00:26 v #4312 > > ................................................................................ +00:00:26 v #4313 > > │ +00:00:26 v #4314 > > ................................................................................ +00:00:26 v #4315 > > ................................................................................ +00:00:26 v #4316 > > │ +00:00:26 v #4317 > > ................................................................................ +00:00:26 v #4318 > > ................................................................................ +00:00:26 v #4319 > > │ +00:00:26 v #4320 > > ................................................................................ +00:00:26 v #4321 > > ................................................................................ +00:00:26 v #4322 > > │ +00:00:26 v #4323 > > ................................................................................ +00:00:26 v #4324 > > ................................................................................ +00:00:26 v #4325 > > │ +00:00:26 v #4326 > > ................................................................................ +00:00:26 v #4327 > > ................................................................................ +00:00:26 v #4328 > > │ +00:00:26 v #4329 > > ................................................................................ +00:00:26 v #4330 > > ................................................................................ +00:00:26 v #4331 > > │ +00:00:26 v #4332 > > ................................................................................ +00:00:26 v #4333 > > ................................................................................ +00:00:26 v #4334 > > │ +00:00:26 v #4335 > > ................................................................................ +00:00:26 v #4336 > > ................................................................................ +00:00:26 v #4337 > > │ +00:00:26 v #4338 > > ................................................................................ +00:00:26 v #4339 > > ................................................................................ +00:00:26 v #4340 > > │ +00:00:26 v #4341 > > ................................................................................ +00:00:26 v #4342 > > ................................................................................ +00:00:26 v #4343 > > │ +00:00:26 v #4344 > > .................;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<........................ +00:00:26 v #4345 > > ................................................................................ +00:00:26 v #4346 > > │ +00:00:26 v #4347 > > ................;//////////////////////////////////////<<....................... +00:00:26 v #4348 > > ................................................................................ +00:00:26 v #4349 > > │ +00:00:26 v #4350 > > ................>//////////////////////////////////////<<<...................... +00:00:26 v #4351 > > ................................................................................ +00:00:26 v #4352 > > │ +00:00:26 v #4353 > > ................>//////////////////////////////////////<<<...................... +00:00:26 v #4354 > > ................................................................................ +00:00:26 v #4355 > > │ +00:00:26 v #4356 > > ................>//////////////////////////////////////<<<...................... +00:00:26 v #4357 > > ................................................................................ +00:00:26 v #4358 > > │ +00:00:26 v #4359 > > ................>//////////////////////////////////////<<<.....................; +00:00:26 v #4360 > > ;;;;;;;;;;;;;;;;<<<............................................................. +00:00:26 v #4361 > > │ +00:00:26 v #4362 > > .................//////////////////////////////////////<<<..................... +00:00:26 v #4363 > > ////////////////<<<<............................................................ +00:00:26 v #4364 > > │ +00:00:26 v #4365 > > .................//////////////////////////////////////<<<..................... +00:00:26 v #4366 > > ////////////////<<<<...............;;;;;;;;;<................................... +00:00:26 v #4367 > > │ +00:00:26 v #4368 > > .................//////////////////////////////////////<<<..................... +00:00:26 v #4369 > > ////////////////<<<<..............;;;;;;;;;<<................................... +00:00:26 v #4370 > > │ +00:00:26 v #4371 > > .................//////////////////////////////////////<<<..................... +00:00:26 v #4372 > > ////////////////<<<<..............>////////<<................................... +00:00:26 v #4373 > > │ +00:00:26 v #4374 > > ................./////////////////////////////////////<<<<..................... +00:00:26 v #4375 > > ////////////////<<<<..............>////////<<................................... +00:00:26 v #4376 > > │ +00:00:26 v #4377 > > ................./////////////////////////////////////<<<<..................... +00:00:26 v #4378 > > ////////////////<<<<..............>////////<<................................... +00:00:26 v #4379 > > │ +00:00:26 v #4380 > > ................./////////////////////////////////////<<<<..................... +00:00:26 v #4381 > > ////////////////<<<<..............////////<<.................................... +00:00:26 v #4382 > > │ +00:00:26 v #4383 > > ................./////////////////////////////////////<<<<..................... +00:00:26 v #4384 > > ////////////////<<<<............................................................ +00:00:26 v #4385 > > │ +00:00:26 v #4386 > > ................./////////////////////////////////////<<<<.....................> +00:00:26 v #4387 > > ////////////////<<.............................................................. +00:00:26 v #4388 > > │ +00:00:26 v #4389 > > ................./////////////////////////////////////<<<....................... +00:00:26 v #4390 > > ................................................................................ +00:00:26 v #4391 > > │ +00:00:26 v #4392 > > ................./////////////////////////////////////<<<....................... +00:00:26 v #4393 > > ................................................................................ +00:00:26 v #4394 > > │ +00:00:26 v #4395 > > ................./////////////////////////////////////<<<....................... +00:00:26 v #4396 > > ................................................................................ +00:00:26 v #4397 > > │ +00:00:26 v #4398 > > ................./////////////////////////////////////<<<....................... +00:00:26 v #4399 > > ................................................................................ +00:00:26 v #4400 > > │ +00:00:26 v #4401 > > .................>////////////////////////////////////<<........................ +00:00:26 v #4402 > > ................................................................................ +00:00:26 v #4403 > > │ +00:00:26 v #4404 > > ..........................////////////////////////////<<........................ +00:00:26 v #4405 > > ................................................................................ +00:00:26 v #4406 > > │ +00:00:26 v #4407 > > ................................................//////<......................... +00:00:26 v #4408 > > ................................................................................ +00:00:26 v #4409 > > │ +00:00:26 v #4410 > > ................................................................................ +00:00:26 v #4411 > > ................................................................................ +00:00:26 v #4412 > > │ +00:00:26 v #4413 > > ................................................................................ +00:00:26 v #4414 > > ................................................................................ +00:00:26 v #4415 > > │ +00:00:26 v #4416 > > ................................................................................ +00:00:26 v #4417 > > ................................................................................ +00:00:26 v #4418 > > │ +00:00:26 v #4419 > > ................................................................................ +00:00:26 v #4420 > > ................................................................................ +00:00:26 v #4421 > > │ +00:00:26 v #4422 > > ................................................................................ +00:00:26 v #4423 > > ................................................................................ +00:00:26 v #4424 > > │ +00:00:26 v #4425 > > ................................................................................ +00:00:26 v #4426 > > ................................................................................ +00:00:26 v #4427 > > │ +00:00:26 v #4428 > > ................................................................................ +00:00:26 v #4429 > > ................................................................................ +00:00:26 v #4430 > > │ +00:00:26 v #4431 > > ................................................................................ +00:00:26 v #4432 > > ................................................................................ +00:00:26 v #4433 > > │ +00:00:26 v #4434 > > ................................................................................ +00:00:26 v #4435 > > ................................................................................ +00:00:26 v #4436 > > │ +00:00:26 v #4437 > > ................................................................................ +00:00:26 v #4438 > > ................................................................................ +00:00:26 v #4439 > > │ +00:00:26 v #4440 > > │ +00:00:26 v #4441 > > ................................................................................ +00:00:26 v #4442 > > ................................................................................ +00:00:26 v #4443 > > │ +00:00:26 v #4444 > > ................................................................................ +00:00:26 v #4445 > > ................................................................................ +00:00:26 v #4446 > > │ +00:00:26 v #4447 > > ................................................................................ +00:00:26 v #4448 > > ................................................................................ +00:00:26 v #4449 > > │ +00:00:26 v #4450 > > ................................................................................ +00:00:26 v #4451 > > ................................................................................ +00:00:26 v #4452 > > │ +00:00:26 v #4453 > > ................................................................................ +00:00:26 v #4454 > > ................................................................................ +00:00:26 v #4455 > > │ +00:00:26 v #4456 > > ................................................................................ +00:00:26 v #4457 > > ................................................................................ +00:00:26 v #4458 > > │ +00:00:26 v #4459 > > ................................................................................ +00:00:26 v #4460 > > ................................................................................ +00:00:26 v #4461 > > │ +00:00:26 v #4462 > > ................................................................................ +00:00:26 v #4463 > > ................................................................................ +00:00:26 v #4464 > > │ +00:00:26 v #4465 > > ................................................................................ +00:00:26 v #4466 > > ................................................................................ +00:00:26 v #4467 > > │ +00:00:26 v #4468 > > ................................................................................ +00:00:26 v #4469 > > ................................................................................ +00:00:26 v #4470 > > │ +00:00:26 v #4471 > > ................................................................................ +00:00:26 v #4472 > > ................................................................................ +00:00:26 v #4473 > > │ +00:00:26 v #4474 > > ..............................................;;;;;;;;;<........................ +00:00:26 v #4475 > > ................................................................................ +00:00:26 v #4476 > > │ +00:00:26 v #4477 > > .........................;;;;;;;;;;;;;;;;;;;;;/////////<........................ +00:00:26 v #4478 > > ................................................................................ +00:00:26 v #4479 > > │ +00:00:26 v #4480 > > ................;;;;;;;;;//////////////////////////////<........................ +00:00:26 v #4481 > > ................................................................................ +00:00:26 v #4482 > > │ +00:00:26 v #4483 > > ................///////////////////////////////////////<........................ +00:00:26 v #4484 > > ................................................................................ +00:00:26 v #4485 > > │ +00:00:26 v #4486 > > ................>//////////////////////////////////////<<....................... +00:00:26 v #4487 > > ................................................................................ +00:00:26 v #4488 > > │ +00:00:26 v #4489 > > ................>//////////////////////////////////////<<....................... +00:00:26 v #4490 > > ................................................................................ +00:00:26 v #4491 > > │ +00:00:26 v #4492 > > ................>//////////////////////////////////////<<....................... +00:00:26 v #4493 > > ..;;;;;;;;;;;;;;<<<............................................................. +00:00:26 v #4494 > > │ +00:00:26 v #4495 > > ................>//////////////////////////////////////<<......................; +00:00:26 v #4496 > > ;;//////////////<<<............................................................. +00:00:26 v #4497 > > │ +00:00:26 v #4498 > > .................//////////////////////////////////////<<...................... +00:00:26 v #4499 > > ////////////////<<<....................;;;;<<................................... +00:00:26 v #4500 > > │ +00:00:26 v #4501 > > .................//////////////////////////////////////<<...................... +00:00:26 v #4502 > > ////////////////<<<...............;;;;;////<<................................... +00:00:26 v #4503 > > │ +00:00:26 v #4504 > > .................//////////////////////////////////////<<......................> +00:00:26 v #4505 > > ////////////////<<<...............>////////<<................................... +00:00:26 v #4506 > > │ +00:00:26 v #4507 > > .................>//////////////////////////////////////<......................> +00:00:26 v #4508 > > ////////////////<<<................////////<<................................... +00:00:26 v #4509 > > │ +00:00:26 v #4510 > > .................>//////////////////////////////////////<......................> +00:00:26 v #4511 > > /////////////////<<<...............////////<<................................... +00:00:26 v #4512 > > │ +00:00:26 v #4513 > > .................>//////////////////////////////////////<......................> +00:00:26 v #4514 > > /////////////////<<<.............../////////.................................... +00:00:26 v #4515 > > │ +00:00:26 v #4516 > > .................>//////////////////////////////////////<....................... +00:00:26 v #4517 > > /////////////////<<<............................................................ +00:00:26 v #4518 > > │ +00:00:26 v #4519 > > ..................//////////////////////////////////////<....................... +00:00:26 v #4520 > > /////////////////<<............................................................. +00:00:26 v #4521 > > │ +00:00:26 v #4522 > > ..................//////////////////////////////////////<<...................... +00:00:26 v #4523 > > ................................................................................ +00:00:26 v #4524 > > │ +00:00:26 v #4525 > > ..................//////////////////////////////////////<<...................... +00:00:26 v #4526 > > ................................................................................ +00:00:26 v #4527 > > │ +00:00:26 v #4528 > > ..................//////////////////////////////////////<<...................... +00:00:26 v #4529 > > ................................................................................ +00:00:26 v #4530 > > │ +00:00:26 v #4531 > > ..................>/////////////////////////////////////<<...................... +00:00:26 v #4532 > > ................................................................................ +00:00:26 v #4533 > > │ +00:00:26 v #4534 > > ..................>/////////////////////////////////////<....................... +00:00:26 v #4535 > > ................................................................................ +00:00:26 v #4536 > > │ +00:00:26 v #4537 > > ..................//////////////////////////////////////<....................... +00:00:26 v #4538 > > ................................................................................ +00:00:26 v #4539 > > │ +00:00:26 v #4540 > > ................................................................................ +00:00:26 v #4541 > > ................................................................................ +00:00:26 v #4542 > > │ +00:00:26 v #4543 > > ................................................................................ +00:00:26 v #4544 > > ................................................................................ +00:00:26 v #4545 > > │ +00:00:26 v #4546 > > ................................................................................ +00:00:26 v #4547 > > ................................................................................ +00:00:26 v #4548 > > │ +00:00:26 v #4549 > > ................................................................................ +00:00:26 v #4550 > > ................................................................................ +00:00:26 v #4551 > > │ +00:00:26 v #4552 > > ................................................................................ +00:00:26 v #4553 > > ................................................................................ +00:00:26 v #4554 > > │ +00:00:26 v #4555 > > ................................................................................ +00:00:26 v #4556 > > ................................................................................ +00:00:26 v #4557 > > │ +00:00:26 v #4558 > > ................................................................................ +00:00:26 v #4559 > > ................................................................................ +00:00:26 v #4560 > > │ +00:00:26 v #4561 > > ................................................................................ +00:00:26 v #4562 > > ................................................................................ +00:00:26 v #4563 > > │ +00:00:26 v #4564 > > ................................................................................ +00:00:26 v #4565 > > ................................................................................ +00:00:26 v #4566 > > │ +00:00:26 v #4567 > > ................................................................................ +00:00:26 v #4568 > > ................................................................................ +00:00:26 v #4569 > > │ +00:00:26 v #4570 > > ................................................................................ +00:00:26 v #4571 > > ................................................................................ +00:00:26 v #4572 > > │ +00:00:26 v #4573 > > │ +00:00:26 v #4574 > > ................................................................................ +00:00:26 v #4575 > > ................................................................................ +00:00:26 v #4576 > > │ +00:00:26 v #4577 > > ................................................................................ +00:00:26 v #4578 > > ................................................................................ +00:00:26 v #4579 > > │ +00:00:26 v #4580 > > ................................................................................ +00:00:26 v #4581 > > ................................................................................ +00:00:26 v #4582 > > │ +00:00:26 v #4583 > > ................................................................................ +00:00:26 v #4584 > > ................................................................................ +00:00:26 v #4585 > > │ +00:00:26 v #4586 > > ................................................................................ +00:00:26 v #4587 > > ................................................................................ +00:00:26 v #4588 > > │ +00:00:26 v #4589 > > ................................................................................ +00:00:26 v #4590 > > ................................................................................ +00:00:26 v #4591 > > │ +00:00:26 v #4592 > > ................................................................................ +00:00:26 v #4593 > > ................................................................................ +00:00:26 v #4594 > > │ +00:00:26 v #4595 > > ................................................................................ +00:00:26 v #4596 > > ................................................................................ +00:00:26 v #4597 > > │ +00:00:26 v #4598 > > ................................................................................ +00:00:26 v #4599 > > ................................................................................ +00:00:26 v #4600 > > │ +00:00:26 v #4601 > > ................................................................................ +00:00:26 v #4602 > > ................................................................................ +00:00:26 v #4603 > > │ +00:00:26 v #4604 > > ......................................................<......................... +00:00:26 v #4605 > > ................................................................................ +00:00:26 v #4606 > > │ +00:00:26 v #4607 > > .........................................;;;;;;;;;;;;;<......................... +00:00:26 v #4608 > > ................................................................................ +00:00:26 v #4609 > > │ +00:00:26 v #4610 > > ...........................;;;;;;;;;;;;;;//////////////<........................ +00:00:26 v #4611 > > ................................................................................ +00:00:26 v #4612 > > │ +00:00:26 v #4613 > > ...............;;;;;;;;;;;;;///////////////////////////<........................ +00:00:26 v #4614 > > ................................................................................ +00:00:26 v #4615 > > │ +00:00:26 v #4616 > > ...............>///////////////////////////////////////<........................ +00:00:26 v #4617 > > ................................................................................ +00:00:26 v #4618 > > │ +00:00:26 v #4619 > > ................///////////////////////////////////////<........................ +00:00:26 v #4620 > > ................................................................................ +00:00:26 v #4621 > > │ +00:00:26 v #4622 > > ................///////////////////////////////////////<<....................... +00:00:26 v #4623 > > ................................................................................ +00:00:26 v #4624 > > │ +00:00:26 v #4625 > > ................>///////////////////////////////////////<....................... +00:00:26 v #4626 > > ....;;;;;;;;;;;;<<.............................................................. +00:00:26 v #4627 > > │ +00:00:26 v #4628 > > ................>///////////////////////////////////////<......................; +00:00:26 v #4629 > > ;;;;////////////<<.............................................................. +00:00:26 v #4630 > > │ +00:00:26 v #4631 > > .................///////////////////////////////////////<...................... +00:00:26 v #4632 > > ////////////////<<<....................;;;<<.................................... +00:00:26 v #4633 > > │ +00:00:26 v #4634 > > .................///////////////////////////////////////<...................... +00:00:26 v #4635 > > /////////////////<<...............;;;;;////<<................................... +00:00:26 v #4636 > > │ +00:00:26 v #4637 > > .................>//////////////////////////////////////<<.....................> +00:00:26 v #4638 > > /////////////////<<...............>////////<<................................... +00:00:26 v #4639 > > │ +00:00:26 v #4640 > > .................>///////////////////////////////////////<.....................> +00:00:26 v #4641 > > /////////////////<<................////////<<................................... +00:00:26 v #4642 > > │ +00:00:26 v #4643 > > ..................///////////////////////////////////////<...................... +00:00:26 v #4644 > > /////////////////<<................////////<<................................... +00:00:26 v #4645 > > │ +00:00:26 v #4646 > > ..................///////////////////////////////////////<...................... +00:00:26 v #4647 > > /////////////////<<<...............>////////.................................... +00:00:26 v #4648 > > │ +00:00:26 v #4649 > > ..................>//////////////////////////////////////<...................... +00:00:26 v #4650 > > >/////////////////<<............................................................ +00:00:26 v #4651 > > │ +00:00:26 v #4652 > > ..................>///////////////////////////////////////<..................... +00:00:26 v #4653 > > >/////////////////<............................................................. +00:00:26 v #4654 > > │ +00:00:26 v #4655 > > ...................///////////////////////////////////////<..................... +00:00:26 v #4656 > > ................................................................................ +00:00:26 v #4657 > > │ +00:00:26 v #4658 > > ...................///////////////////////////////////////<..................... +00:00:26 v #4659 > > ................................................................................ +00:00:26 v #4660 > > │ +00:00:26 v #4661 > > ...................>//////////////////////////////////////<..................... +00:00:26 v #4662 > > ................................................................................ +00:00:26 v #4663 > > │ +00:00:26 v #4664 > > ...................>//////////////////////////////////////<..................... +00:00:26 v #4665 > > ................................................................................ +00:00:26 v #4666 > > │ +00:00:26 v #4667 > > ...................>///////////////////////////////////////<.................... +00:00:26 v #4668 > > ................................................................................ +00:00:26 v #4669 > > │ +00:00:26 v #4670 > > ....................////////////////////////////................................ +00:00:26 v #4671 > > ................................................................................ +00:00:26 v #4672 > > │ +00:00:26 v #4673 > > ................................................................................ +00:00:26 v #4674 > > ................................................................................ +00:00:26 v #4675 > > │ +00:00:26 v #4676 > > ................................................................................ +00:00:26 v #4677 > > ................................................................................ +00:00:26 v #4678 > > │ +00:00:26 v #4679 > > ................................................................................ +00:00:26 v #4680 > > ................................................................................ +00:00:26 v #4681 > > │ +00:00:26 v #4682 > > ................................................................................ +00:00:26 v #4683 > > ................................................................................ +00:00:26 v #4684 > > │ +00:00:26 v #4685 > > ................................................................................ +00:00:26 v #4686 > > ................................................................................ +00:00:26 v #4687 > > │ +00:00:26 v #4688 > > ................................................................................ +00:00:26 v #4689 > > ................................................................................ +00:00:26 v #4690 > > │ +00:00:26 v #4691 > > ................................................................................ +00:00:26 v #4692 > > ................................................................................ +00:00:26 v #4693 > > │ +00:00:26 v #4694 > > ................................................................................ +00:00:26 v #4695 > > ................................................................................ +00:00:26 v #4696 > > │ +00:00:26 v #4697 > > ................................................................................ +00:00:26 v #4698 > > ................................................................................ +00:00:26 v #4699 > > │ +00:00:26 v #4700 > > ................................................................................ +00:00:26 v #4701 > > ................................................................................ +00:00:26 v #4702 > > │ +00:00:26 v #4703 > > ................................................................................ +00:00:26 v #4704 > > ................................................................................ +00:00:26 v #4705 > > │ +00:00:26 v #4706 > > │ +00:00:26 v #4707 > > ................................................................................ +00:00:26 v #4708 > > ................................................................................ +00:00:26 v #4709 > > │ +00:00:26 v #4710 > > ................................................................................ +00:00:26 v #4711 > > ................................................................................ +00:00:26 v #4712 > > │ +00:00:26 v #4713 > > ................................................................................ +00:00:26 v #4714 > > ................................................................................ +00:00:26 v #4715 > > │ +00:00:26 v #4716 > > ................................................................................ +00:00:26 v #4717 > > ................................................................................ +00:00:26 v #4718 > > │ +00:00:26 v #4719 > > ................................................................................ +00:00:26 v #4720 > > ................................................................................ +00:00:26 v #4721 > > │ +00:00:26 v #4722 > > ................................................................................ +00:00:26 v #4723 > > ................................................................................ +00:00:26 v #4724 > > │ +00:00:26 v #4725 > > ................................................................................ +00:00:26 v #4726 > > ................................................................................ +00:00:26 v #4727 > > │ +00:00:26 v #4728 > > ................................................................................ +00:00:26 v #4729 > > ................................................................................ +00:00:26 v #4730 > > │ +00:00:26 v #4731 > > ................................................................................ +00:00:26 v #4732 > > ................................................................................ +00:00:26 v #4733 > > │ +00:00:26 v #4734 > > ................................................................................ +00:00:26 v #4735 > > ................................................................................ +00:00:26 v #4736 > > │ +00:00:26 v #4737 > > .................................................;;;;;<......................... +00:00:26 v #4738 > > ................................................................................ +00:00:26 v #4739 > > │ +00:00:26 v #4740 > > .......................................;;;;;;;;;;/////<......................... +00:00:26 v #4741 > > ................................................................................ +00:00:26 v #4742 > > │ +00:00:26 v #4743 > > .............................;;;;;;;;;;///////////////<<........................ +00:00:26 v #4744 > > ................................................................................ +00:00:26 v #4745 > > │ +00:00:26 v #4746 > > ...................;;;;;;;;;;//////////////////////////<........................ +00:00:26 v #4747 > > ................................................................................ +00:00:26 v #4748 > > │ +00:00:26 v #4749 > > ...............;;;;////////////////////////////////////<........................ +00:00:26 v #4750 > > ................................................................................ +00:00:26 v #4751 > > │ +00:00:26 v #4752 > > ...............>///////////////////////////////////////<<....................... +00:00:26 v #4753 > > ................................................................................ +00:00:26 v #4754 > > │ +00:00:26 v #4755 > > ...............>////////////////////////////////////////<....................... +00:00:26 v #4756 > > ................<............................................................... +00:00:26 v #4757 > > │ +00:00:26 v #4758 > > ................////////////////////////////////////////<....................... +00:00:26 v #4759 > > .....;;;;;;;;;;;<............................................................... +00:00:26 v #4760 > > │ +00:00:26 v #4761 > > ................>///////////////////////////////////////<<....................;; +00:00:26 v #4762 > > ;;;;;///////////<<.............................................................. +00:00:26 v #4763 > > │ +00:00:26 v #4764 > > .................////////////////////////////////////////<..................... +00:00:26 v #4765 > > ////////////////<<.....................;;;<<.................................... +00:00:26 v #4766 > > │ +00:00:26 v #4767 > > .................>///////////////////////////////////////<..................... +00:00:26 v #4768 > > /////////////////<................;;;;;////<.................................... +00:00:26 v #4769 > > │ +00:00:26 v #4770 > > .................>///////////////////////////////////////<<....................> +00:00:26 v #4771 > > /////////////////<<...............>////////<<................................... +00:00:26 v #4772 > > │ +00:00:26 v #4773 > > ..................////////////////////////////////////////<..................... +00:00:26 v #4774 > > /////////////////<<................////////<<................................... +00:00:26 v #4775 > > │ +00:00:26 v #4776 > > ..................>///////////////////////////////////////<..................... +00:00:26 v #4777 > > //////////////////<................>////////<................................... +00:00:26 v #4778 > > │ +00:00:26 v #4779 > > ..................>///////////////////////////////////////<<.................... +00:00:26 v #4780 > > >/////////////////<<................//////...................................... +00:00:26 v #4781 > > │ +00:00:26 v #4782 > > ...................////////////////////////////////////////<.................... +00:00:26 v #4783 > > .//////////////////<............................................................ +00:00:26 v #4784 > > │ +00:00:26 v #4785 > > ...................>///////////////////////////////////////<.................... +00:00:26 v #4786 > > .>///////////////............................................................... +00:00:26 v #4787 > > │ +00:00:26 v #4788 > > ...................>///////////////////////////////////////<<................... +00:00:26 v #4789 > > .///............................................................................ +00:00:26 v #4790 > > │ +00:00:26 v #4791 > > ....................////////////////////////////////////////<................... +00:00:26 v #4792 > > ................................................................................ +00:00:26 v #4793 > > │ +00:00:26 v #4794 > > ....................>///////////////////////////////////////<................... +00:00:26 v #4795 > > ................................................................................ +00:00:26 v #4796 > > │ +00:00:26 v #4797 > > ....................>///////////////////////////////////////<<.................. +00:00:26 v #4798 > > ................................................................................ +00:00:26 v #4799 > > │ +00:00:26 v #4800 > > ...................../////////////////////////////////////...................... +00:00:26 v #4801 > > ................................................................................ +00:00:26 v #4802 > > │ +00:00:26 v #4803 > > .....................>/////////////////////..................................... +00:00:26 v #4804 > > ................................................................................ +00:00:26 v #4805 > > │ +00:00:26 v #4806 > > ......................///////................................................... +00:00:26 v #4807 > > ................................................................................ +00:00:26 v #4808 > > │ +00:00:26 v #4809 > > ................................................................................ +00:00:26 v #4810 > > ................................................................................ +00:00:26 v #4811 > > │ +00:00:26 v #4812 > > ................................................................................ +00:00:26 v #4813 > > ................................................................................ +00:00:26 v #4814 > > │ +00:00:26 v #4815 > > ................................................................................ +00:00:26 v #4816 > > ................................................................................ +00:00:26 v #4817 > > │ +00:00:26 v #4818 > > ................................................................................ +00:00:26 v #4819 > > ................................................................................ +00:00:26 v #4820 > > │ +00:00:26 v #4821 > > ................................................................................ +00:00:26 v #4822 > > ................................................................................ +00:00:26 v #4823 > > │ +00:00:26 v #4824 > > ................................................................................ +00:00:26 v #4825 > > ................................................................................ +00:00:26 v #4826 > > │ +00:00:26 v #4827 > > ................................................................................ +00:00:26 v #4828 > > ................................................................................ +00:00:26 v #4829 > > │ +00:00:26 v #4830 > > ................................................................................ +00:00:26 v #4831 > > ................................................................................ +00:00:26 v #4832 > > │ +00:00:26 v #4833 > > ................................................................................ +00:00:26 v #4834 > > ................................................................................ +00:00:26 v #4835 > > │ +00:00:26 v #4836 > > ................................................................................ +00:00:26 v #4837 > > ................................................................................ +00:00:26 v #4838 > > │ +00:00:26 v #4839 > > │ +00:00:26 v #4840 > > ................................................................................ +00:00:26 v #4841 > > ................................................................................ +00:00:26 v #4842 > > │ +00:00:26 v #4843 > > ................................................................................ +00:00:26 v #4844 > > ................................................................................ +00:00:26 v #4845 > > │ +00:00:26 v #4846 > > ................................................................................ +00:00:26 v #4847 > > ................................................................................ +00:00:26 v #4848 > > │ +00:00:26 v #4849 > > ................................................................................ +00:00:26 v #4850 > > ................................................................................ +00:00:26 v #4851 > > │ +00:00:26 v #4852 > > ................................................................................ +00:00:26 v #4853 > > ................................................................................ +00:00:26 v #4854 > > │ +00:00:26 v #4855 > > ................................................................................ +00:00:26 v #4856 > > ................................................................................ +00:00:26 v #4857 > > │ +00:00:26 v #4858 > > ................................................................................ +00:00:26 v #4859 > > ................................................................................ +00:00:26 v #4860 > > │ +00:00:26 v #4861 > > ................................................................................ +00:00:26 v #4862 > > ................................................................................ +00:00:26 v #4863 > > │ +00:00:26 v #4864 > > ................................................................................ +00:00:26 v #4865 > > ................................................................................ +00:00:26 v #4866 > > │ +00:00:26 v #4867 > > .....................................................<.......................... +00:00:26 v #4868 > > ................................................................................ +00:00:26 v #4869 > > │ +00:00:26 v #4870 > > ..............................................;;;;;;;<<......................... +00:00:26 v #4871 > > ................................................................................ +00:00:26 v #4872 > > │ +00:00:26 v #4873 > > .....................................;;;;;;;;;////////<......................... +00:00:26 v #4874 > > ................................................................................ +00:00:26 v #4875 > > │ +00:00:26 v #4876 > > .............................;;;;;;;;;////////////////<<........................ +00:00:26 v #4877 > > ................................................................................ +00:00:26 v #4878 > > │ +00:00:26 v #4879 > > ......................;;;;;;;//////////////////////////<........................ +00:00:26 v #4880 > > ................................................................................ +00:00:26 v #4881 > > │ +00:00:26 v #4882 > > ...............;;;;;;;/////////////////////////////////<........................ +00:00:26 v #4883 > > ................................................................................ +00:00:26 v #4884 > > │ +00:00:26 v #4885 > > .............../////////////////////////////////////////<....................... +00:00:26 v #4886 > > ................................................................................ +00:00:26 v #4887 > > │ +00:00:26 v #4888 > > ...............>////////////////////////////////////////<....................... +00:00:26 v #4889 > > .............;;;<............................................................... +00:00:26 v #4890 > > │ +00:00:26 v #4891 > > ................/////////////////////////////////////////<...................... +00:00:26 v #4892 > > .....;;;;;;;;///<............................................................... +00:00:26 v #4893 > > │ +00:00:26 v #4894 > > ................>////////////////////////////////////////<....................;; +00:00:26 v #4895 > > ;;;;;///////////<<.............................................................. +00:00:26 v #4896 > > │ +00:00:26 v #4897 > > ................./////////////////////////////////////////<...................> +00:00:26 v #4898 > > /////////////////<.....................;;;<<.................................... +00:00:26 v #4899 > > │ +00:00:26 v #4900 > > .................>////////////////////////////////////////<.................... +00:00:26 v #4901 > > /////////////////<<...............;;;;;////<.................................... +00:00:26 v #4902 > > │ +00:00:26 v #4903 > > ................../////////////////////////////////////////<...................> +00:00:26 v #4904 > > //////////////////<...............>////////<<................................... +00:00:26 v #4905 > > │ +00:00:26 v #4906 > > ..................>////////////////////////////////////////<.................... +00:00:26 v #4907 > > //////////////////<................/////////<................................... +00:00:26 v #4908 > > │ +00:00:26 v #4909 > > ..................>////////////////////////////////////////<<................... +00:00:26 v #4910 > > >//////////////////<...............>////////<................................... +00:00:26 v #4911 > > │ +00:00:26 v #4912 > > ...................>////////////////////////////////////////<................... +00:00:26 v #4913 > > .//////////////////<................/////=...................................... +00:00:26 v #4914 > > │ +00:00:26 v #4915 > > ...................>////////////////////////////////////////<<.................. +00:00:26 v #4916 > > .>/////////////////<<........................................................... +00:00:26 v #4917 > > │ +00:00:26 v #4918 > > ....................>////////////////////////////////////////<.................. +00:00:26 v #4919 > > ../////////////................................................................. +00:00:26 v #4920 > > │ +00:00:26 v #4921 > > ....................>////////////////////////////////////////<<................. +00:00:26 v #4922 > > ..>///.......................................................................... +00:00:26 v #4923 > > │ +00:00:26 v #4924 > > ...................../////////////////////////////////////////<................. +00:00:26 v #4925 > > ................................................................................ +00:00:26 v #4926 > > │ +00:00:26 v #4927 > > .....................>////////////////////////////////////////<................. +00:00:26 v #4928 > > ................................................................................ +00:00:26 v #4929 > > │ +00:00:26 v #4930 > > ......................///////////////////////////////////////................... +00:00:26 v #4931 > > ................................................................................ +00:00:26 v #4932 > > │ +00:00:26 v #4933 > > ......................>/////////////////////////////............................ +00:00:26 v #4934 > > ................................................................................ +00:00:26 v #4935 > > │ +00:00:26 v #4936 > > .......................////////////////////..................................... +00:00:26 v #4937 > > ................................................................................ +00:00:26 v #4938 > > │ +00:00:26 v #4939 > > .......................>//////////.............................................. +00:00:26 v #4940 > > ................................................................................ +00:00:26 v #4941 > > │ +00:00:26 v #4942 > > ................................................................................ +00:00:26 v #4943 > > ................................................................................ +00:00:26 v #4944 > > │ +00:00:26 v #4945 > > ................................................................................ +00:00:26 v #4946 > > ................................................................................ +00:00:26 v #4947 > > │ +00:00:26 v #4948 > > ................................................................................ +00:00:26 v #4949 > > ................................................................................ +00:00:26 v #4950 > > │ +00:00:26 v #4951 > > ................................................................................ +00:00:26 v #4952 > > ................................................................................ +00:00:26 v #4953 > > │ +00:00:26 v #4954 > > ................................................................................ +00:00:26 v #4955 > > ................................................................................ +00:00:26 v #4956 > > │ +00:00:26 v #4957 > > ................................................................................ +00:00:26 v #4958 > > ................................................................................ +00:00:26 v #4959 > > │ +00:00:26 v #4960 > > ................................................................................ +00:00:26 v #4961 > > ................................................................................ +00:00:26 v #4962 > > │ +00:00:26 v #4963 > > ................................................................................ +00:00:26 v #4964 > > ................................................................................ +00:00:26 v #4965 > > │ +00:00:26 v #4966 > > ................................................................................ +00:00:26 v #4967 > > ................................................................................ +00:00:26 v #4968 > > │ +00:00:26 v #4969 > > ................................................................................ +00:00:26 v #4970 > > ................................................................................ +00:00:26 v #4971 > > │ +00:00:26 v #4972 > > │ +00:00:26 v #4973 > > ................................................................................ +00:00:26 v #4974 > > ................................................................................ +00:00:26 v #4975 > > │ +00:00:26 v #4976 > > ................................................................................ +00:00:26 v #4977 > > ................................................................................ +00:00:26 v #4978 > > │ +00:00:26 v #4979 > > ................................................................................ +00:00:26 v #4980 > > ................................................................................ +00:00:26 v #4981 > > │ +00:00:26 v #4982 > > ................................................................................ +00:00:26 v #4983 > > ................................................................................ +00:00:26 v #4984 > > │ +00:00:26 v #4985 > > ................................................................................ +00:00:26 v #4986 > > ................................................................................ +00:00:26 v #4987 > > │ +00:00:26 v #4988 > > ................................................................................ +00:00:26 v #4989 > > ................................................................................ +00:00:26 v #4990 > > │ +00:00:26 v #4991 > > ................................................................................ +00:00:26 v #4992 > > ................................................................................ +00:00:26 v #4993 > > │ +00:00:26 v #4994 > > ................................................................................ +00:00:26 v #4995 > > ................................................................................ +00:00:26 v #4996 > > │ +00:00:26 v #4997 > > ................................................................................ +00:00:26 v #4998 > > ................................................................................ +00:00:26 v #4999 > > │ +00:00:26 v #5000 > > ..................................................;;;<.......................... +00:00:26 v #5001 > > ................................................................................ +00:00:26 v #5002 > > │ +00:00:26 v #5003 > > ............................................;;;;;;///<.......................... +00:00:26 v #5004 > > ................................................................................ +00:00:26 v #5005 > > │ +00:00:26 v #5006 > > .....................................;;;;;;;/////////<<......................... +00:00:26 v #5007 > > ................................................................................ +00:00:26 v #5008 > > │ +00:00:26 v #5009 > > ..............................;;;;;;;/////////////////<<........................ +00:00:26 v #5010 > > ................................................................................ +00:00:26 v #5011 > > │ +00:00:26 v #5012 > > .......................;;;;;;;/////////////////////////<........................ +00:00:26 v #5013 > > ................................................................................ +00:00:26 v #5014 > > │ +00:00:26 v #5015 > > .................;;;;;;;///////////////////////////////<<....................... +00:00:26 v #5016 > > ................................................................................ +00:00:26 v #5017 > > │ +00:00:26 v #5018 > > ..............;;;///////////////////////////////////////<....................... +00:00:26 v #5019 > > ................................................................................ +00:00:26 v #5020 > > │ +00:00:26 v #5021 > > ...............//////////////////////////////////////////<...................... +00:00:26 v #5022 > > ............;;;<................................................................ +00:00:26 v #5023 > > │ +00:00:26 v #5024 > > ...............>/////////////////////////////////////////<<..................... +00:00:26 v #5025 > > .....;;;;;;;////<............................................................... +00:00:26 v #5026 > > │ +00:00:26 v #5027 > > ................>/////////////////////////////////////////<....................; +00:00:26 v #5028 > > ;;;;;///////////<<.............................................................. +00:00:26 v #5029 > > │ +00:00:26 v #5030 > > ................./////////////////////////////////////////<<..................; +00:00:26 v #5031 > > /////////////////<.....................;;;<<.................................... +00:00:26 v #5032 > > │ +00:00:26 v #5033 > > .................>/////////////////////////////////////////<................... +00:00:26 v #5034 > > /////////////////<<...............;;;;;////<.................................... +00:00:26 v #5035 > > │ +00:00:26 v #5036 > > ..................//////////////////////////////////////////<................... +00:00:26 v #5037 > > //////////////////<<..............>////////<<................................... +00:00:26 v #5038 > > │ +00:00:26 v #5039 > > ..................>/////////////////////////////////////////<<.................. +00:00:26 v #5040 > > >//////////////////<...............>////////<................................... +00:00:26 v #5041 > > │ +00:00:26 v #5042 > > ...................>/////////////////////////////////////////<.................. +00:00:26 v #5043 > > .//////////////////<<...............////////<<.................................. +00:00:26 v #5044 > > │ +00:00:26 v #5045 > > ..................../////////////////////////////////////////<<................. +00:00:26 v #5046 > > .>//////////////////<...............>////....................................... +00:00:26 v #5047 > > │ +00:00:26 v #5048 > > ....................>/////////////////////////////////////////<................. +00:00:26 v #5049 > > ..///////////////////........................................................... +00:00:26 v #5050 > > │ +00:00:26 v #5051 > > ...................../////////////////////////////////////////<<................ +00:00:26 v #5052 > > ..>////////////................................................................. +00:00:26 v #5053 > > │ +00:00:26 v #5054 > > .....................>/////////////////////////////////////////<................ +00:00:26 v #5055 > > ...>////........................................................................ +00:00:26 v #5056 > > │ +00:00:26 v #5057 > > ......................>/////////////////////////////////////////<............... +00:00:26 v #5058 > > ................................................................................ +00:00:26 v #5059 > > │ +00:00:26 v #5060 > > ......................./////////////////////////////////////////................ +00:00:26 v #5061 > > ................................................................................ +00:00:26 v #5062 > > │ +00:00:26 v #5063 > > .......................>/////////////////////////////////....................... +00:00:26 v #5064 > > ................................................................................ +00:00:26 v #5065 > > │ +00:00:26 v #5066 > > ........................//////////////////////////.............................. +00:00:26 v #5067 > > ................................................................................ +00:00:26 v #5068 > > │ +00:00:26 v #5069 > > ........................>//////////////////..................................... +00:00:26 v #5070 > > ................................................................................ +00:00:26 v #5071 > > │ +00:00:26 v #5072 > > .........................>//////////............................................ +00:00:26 v #5073 > > ................................................................................ +00:00:26 v #5074 > > │ +00:00:26 v #5075 > > ..........................////.................................................. +00:00:26 v #5076 > > ................................................................................ +00:00:26 v #5077 > > │ +00:00:26 v #5078 > > ................................................................................ +00:00:26 v #5079 > > ................................................................................ +00:00:26 v #5080 > > │ +00:00:26 v #5081 > > ................................................................................ +00:00:26 v #5082 > > ................................................................................ +00:00:26 v #5083 > > │ +00:00:26 v #5084 > > ................................................................................ +00:00:26 v #5085 > > ................................................................................ +00:00:26 v #5086 > > │ +00:00:26 v #5087 > > ................................................................................ +00:00:26 v #5088 > > ................................................................................ +00:00:26 v #5089 > > │ +00:00:26 v #5090 > > ................................................................................ +00:00:26 v #5091 > > ................................................................................ +00:00:26 v #5092 > > │ +00:00:26 v #5093 > > ................................................................................ +00:00:26 v #5094 > > ................................................................................ +00:00:26 v #5095 > > │ +00:00:26 v #5096 > > ................................................................................ +00:00:26 v #5097 > > ................................................................................ +00:00:26 v #5098 > > │ +00:00:26 v #5099 > > ................................................................................ +00:00:26 v #5100 > > ................................................................................ +00:00:26 v #5101 > > │ +00:00:26 v #5102 > > ................................................................................ +00:00:26 v #5103 > > ................................................................................ +00:00:26 v #5104 > > │ +00:00:26 v #5105 > > │ +00:00:26 v #5106 > > ................................................................................ +00:00:26 v #5107 > > ................................................................................ +00:00:26 v #5108 > > │ +00:00:26 v #5109 > > ................................................................................ +00:00:26 v #5110 > > ................................................................................ +00:00:26 v #5111 > > │ +00:00:26 v #5112 > > ................................................................................ +00:00:26 v #5113 > > ................................................................................ +00:00:26 v #5114 > > │ +00:00:26 v #5115 > > ................................................................................ +00:00:26 v #5116 > > ................................................................................ +00:00:26 v #5117 > > │ +00:00:26 v #5118 > > ................................................................................ +00:00:26 v #5119 > > ................................................................................ +00:00:26 v #5120 > > │ +00:00:26 v #5121 > > ................................................................................ +00:00:26 v #5122 > > ................................................................................ +00:00:26 v #5123 > > │ +00:00:26 v #5124 > > ................................................................................ +00:00:26 v #5125 > > ................................................................................ +00:00:26 v #5126 > > │ +00:00:26 v #5127 > > ................................................................................ +00:00:26 v #5128 > > ................................................................................ +00:00:26 v #5129 > > │ +00:00:26 v #5130 > > ................................................................................ +00:00:26 v #5131 > > ................................................................................ +00:00:26 v #5132 > > │ +00:00:26 v #5133 > > ................................................;;;/;........................... +00:00:26 v #5134 > > ................................................................................ +00:00:26 v #5135 > > │ +00:00:26 v #5136 > > ..........................................;;;;/;//////.......................... +00:00:26 v #5137 > > ................................................................................ +00:00:26 v #5138 > > │ +00:00:26 v #5139 > > ....................................;;;;///////////////......................... +00:00:26 v #5140 > > ................................................................................ +00:00:26 v #5141 > > │ +00:00:26 v #5142 > > ...............................;;/;;///////////////////<........................ +00:00:26 v #5143 > > ................................................................................ +00:00:26 v #5144 > > │ +00:00:26 v #5145 > > .........................;;;;/;/////////////////////////........................ +00:00:26 v #5146 > > ................................................................................ +00:00:26 v #5147 > > │ +00:00:26 v #5148 > > ...................;;;;//;///////////////////////////////....................... +00:00:26 v #5149 > > ................................................................................ +00:00:26 v #5150 > > │ +00:00:26 v #5151 > > ..............;;/;;//////////////////////////////////////<...................... +00:00:26 v #5152 > > ................................................................................ +00:00:26 v #5153 > > │ +00:00:26 v #5154 > > ..............>>//////////////////////////////////////////...................... +00:00:26 v #5155 > > ...........;;;//................................................................ +00:00:26 v #5156 > > │ +00:00:26 v #5157 > > ...............>>//////////////////////////////////////////..................... +00:00:26 v #5158 > > ......;;/////////............................................................... +00:00:26 v #5159 > > │ +00:00:26 v #5160 > > ................>///////////////////////////////////////////.................... +00:00:26 v #5161 > > ;;;///////////////.............................................................. +00:00:26 v #5162 > > │ +00:00:26 v #5163 > > .................>//////////////////////////////////////////<.................;> +00:00:26 v #5164 > > //////////////////<...................;;///<.................................... +00:00:26 v #5165 > > │ +00:00:26 v #5166 > > .................>>//////////////////////////////////////////..................> +00:00:26 v #5167 > > ///////////////////...............;;;;//////.................................... +00:00:26 v #5168 > > │ +00:00:26 v #5169 > > ..................>>//////////////////////////////////////////.................. +00:00:26 v #5170 > > >///////////////////...............>/////////................................... +00:00:26 v #5171 > > │ +00:00:26 v #5172 > > ...................>//////////////////////////////////////////<................. +00:00:26 v #5173 > > >>///////////////////..............>>////////<.................................. +00:00:26 v #5174 > > │ +00:00:26 v #5175 > > ....................>//////////////////////////////////////////................. +00:00:26 v #5176 > > .>>//////////////////...............>>////////.................................. +00:00:26 v #5177 > > │ +00:00:26 v #5178 > > ....................>>//////////////////////////////////////////................ +00:00:26 v #5179 > > ..>///////////////////...............>///....................................... +00:00:26 v #5180 > > │ +00:00:26 v #5181 > > .....................>///////////////////////////////////////////............... +00:00:26 v #5182 > > ...>////////////////............................................................ +00:00:26 v #5183 > > │ +00:00:26 v #5184 > > ......................>//////////////////////////////////////////<.............. +00:00:26 v #5185 > > ...>>/////////.................................................................. +00:00:26 v #5186 > > │ +00:00:26 v #5187 > > ......................>>//////////////////////////////////////////.............. +00:00:26 v #5188 > > ....>////....................................................................... +00:00:26 v #5189 > > │ +00:00:26 v #5190 > > .......................>>/////////////////////////////////////////.............. +00:00:26 v #5191 > > ................................................................................ +00:00:26 v #5192 > > │ +00:00:26 v #5193 > > ........................>>//////////////////////////////////.................... +00:00:26 v #5194 > > ................................................................................ +00:00:26 v #5195 > > │ +00:00:26 v #5196 > > .........................>////////////////////////////.......................... +00:00:26 v #5197 > > ................................................................................ +00:00:26 v #5198 > > │ +00:00:26 v #5199 > > .........................>>//////////////////////............................... +00:00:26 v #5200 > > ................................................................................ +00:00:26 v #5201 > > │ +00:00:26 v #5202 > > ..........................>>////////////////.................................... +00:00:26 v #5203 > > ................................................................................ +00:00:26 v #5204 > > │ +00:00:26 v #5205 > > ...........................>///////////......................................... +00:00:26 v #5206 > > ................................................................................ +00:00:26 v #5207 > > │ +00:00:26 v #5208 > > ............................>////............................................... +00:00:26 v #5209 > > ................................................................................ +00:00:26 v #5210 > > │ +00:00:26 v #5211 > > ................................................................................ +00:00:26 v #5212 > > ................................................................................ +00:00:26 v #5213 > > │ +00:00:26 v #5214 > > ................................................................................ +00:00:26 v #5215 > > ................................................................................ +00:00:26 v #5216 > > │ +00:00:26 v #5217 > > ................................................................................ +00:00:26 v #5218 > > ................................................................................ +00:00:26 v #5219 > > │ +00:00:26 v #5220 > > ................................................................................ +00:00:26 v #5221 > > ................................................................................ +00:00:26 v #5222 > > │ +00:00:26 v #5223 > > ................................................................................ +00:00:26 v #5224 > > ................................................................................ +00:00:26 v #5225 > > │ +00:00:26 v #5226 > > ................................................................................ +00:00:26 v #5227 > > ................................................................................ +00:00:26 v #5228 > > │ +00:00:26 v #5229 > > ................................................................................ +00:00:26 v #5230 > > ................................................................................ +00:00:26 v #5231 > > │ +00:00:26 v #5232 > > ................................................................................ +00:00:26 v #5233 > > ................................................................................ +00:00:26 v #5234 > > │ +00:00:26 v #5235 > > ................................................................................ +00:00:26 v #5236 > > ................................................................................ +00:00:26 v #5237 > > │ +00:00:26 v #5238 > > │ +00:00:26 v #5239 > > ................................................................................ +00:00:26 v #5240 > > ................................................................................ +00:00:26 v #5241 > > │ +00:00:26 v #5242 > > ................................................................................ +00:00:26 v #5243 > > ................................................................................ +00:00:26 v #5244 > > │ +00:00:26 v #5245 > > ................................................................................ +00:00:26 v #5246 > > ................................................................................ +00:00:26 v #5247 > > │ +00:00:26 v #5248 > > ................................................................................ +00:00:26 v #5249 > > ................................................................................ +00:00:26 v #5250 > > │ +00:00:26 v #5251 > > ................................................................................ +00:00:26 v #5252 > > ................................................................................ +00:00:26 v #5253 > > │ +00:00:26 v #5254 > > ................................................................................ +00:00:26 v #5255 > > ................................................................................ +00:00:26 v #5256 > > │ +00:00:26 v #5257 > > ................................................................................ +00:00:26 v #5258 > > ................................................................................ +00:00:26 v #5259 > > │ +00:00:26 v #5260 > > ................................................................................ +00:00:26 v #5261 > > ................................................................................ +00:00:26 v #5262 > > │ +00:00:26 v #5263 > > ...................................................;............................ +00:00:26 v #5264 > > ................................................................................ +00:00:26 v #5265 > > │ +00:00:26 v #5266 > > ..............................................;/;;///........................... +00:00:26 v #5267 > > ................................................................................ +00:00:26 v #5268 > > │ +00:00:26 v #5269 > > .........................................;;;//////////.......................... +00:00:26 v #5270 > > ................................................................................ +00:00:26 v #5271 > > │ +00:00:26 v #5272 > > ....................................;;;///////////////<......................... +00:00:26 v #5273 > > ................................................................................ +00:00:26 v #5274 > > │ +00:00:26 v #5275 > > ...............................;;;/;///////////////////<........................ +00:00:26 v #5276 > > ................................................................................ +00:00:26 v #5277 > > │ +00:00:26 v #5278 > > ..........................;;;/;/////////////////////////<....................... +00:00:26 v #5279 > > ................................................................................ +00:00:26 v #5280 > > │ +00:00:26 v #5281 > > ......................;;/////////////////////////////////....................... +00:00:26 v #5282 > > ................................................................................ +00:00:26 v #5283 > > │ +00:00:26 v #5284 > > .................;;;//////////////////////////////////////...................... +00:00:26 v #5285 > > ................................................................................ +00:00:26 v #5286 > > │ +00:00:26 v #5287 > > ..............;>///////////////////////////////////////////..................... +00:00:26 v #5288 > > ...........;;;;/................................................................ +00:00:26 v #5289 > > │ +00:00:26 v #5290 > > ...............>///////////////////////////////////////////<.................... +00:00:26 v #5291 > > ......;;/////////............................................................... +00:00:26 v #5292 > > │ +00:00:26 v #5293 > > ................>///////////////////////////////////////////<................... +00:00:26 v #5294 > > .;;;//////////////.............................................................. +00:00:26 v #5295 > > │ +00:00:26 v #5296 > > .................>///////////////////////////////////////////<................;> +00:00:26 v #5297 > > ///////////////////...................;;///<.................................... +00:00:26 v #5298 > > │ +00:00:26 v #5299 > > .................>>///////////////////////////////////////////.................> +00:00:26 v #5300 > > >///////////////////..............;;;;//////.................................... +00:00:26 v #5301 > > │ +00:00:26 v #5302 > > ..................>>///////////////////////////////////////////................. +00:00:26 v #5303 > > >///////////////////<.............>>/////////................................... +00:00:26 v #5304 > > │ +00:00:26 v #5305 > > ...................>>///////////////////////////////////////////................ +00:00:26 v #5306 > > .>///////////////////<.............>>/////////.................................. +00:00:26 v #5307 > > │ +00:00:26 v #5308 > > ....................>>///////////////////////////////////////////............... +00:00:26 v #5309 > > .>>///////////////////..............>>////////.................................. +00:00:26 v #5310 > > │ +00:00:26 v #5311 > > .....................>///////////////////////////////////////////<.............. +00:00:26 v #5312 > > ..>>///////////////////..............>////...................................... +00:00:26 v #5313 > > │ +00:00:26 v #5314 > > ......................>///////////////////////////////////////////<............. +00:00:26 v #5315 > > ...>>//////////////............................................................. +00:00:26 v #5316 > > │ +00:00:26 v #5317 > > .......................>///////////////////////////////////////////............. +00:00:26 v #5318 > > ....>>////////.................................................................. +00:00:26 v #5319 > > │ +00:00:26 v #5320 > > ........................>//////////////////////////////////////////............. +00:00:26 v #5321 > > .....>////...................................................................... +00:00:26 v #5322 > > │ +00:00:26 v #5323 > > ........................>>/////////////////////////////////////................. +00:00:26 v #5324 > > ................................................................................ +00:00:26 v #5325 > > │ +00:00:26 v #5326 > > .........................>>///////////////////////////////...................... +00:00:26 v #5327 > > ................................................................................ +00:00:26 v #5328 > > │ +00:00:26 v #5329 > > ..........................>>//////////////////////////.......................... +00:00:26 v #5330 > > ................................................................................ +00:00:26 v #5331 > > │ +00:00:26 v #5332 > > ...........................>>////////////////////............................... +00:00:26 v #5333 > > ................................................................................ +00:00:26 v #5334 > > │ +00:00:26 v #5335 > > ............................>>///////////////................................... +00:00:26 v #5336 > > ................................................................................ +00:00:26 v #5337 > > │ +00:00:26 v #5338 > > .............................>>/////////........................................ +00:00:26 v #5339 > > ................................................................................ +00:00:26 v #5340 > > │ +00:00:26 v #5341 > > ..............................>/////............................................ +00:00:26 v #5342 > > ................................................................................ +00:00:26 v #5343 > > │ +00:00:26 v #5344 > > .............................../................................................ +00:00:26 v #5345 > > ................................................................................ +00:00:26 v #5346 > > │ +00:00:26 v #5347 > > ................................................................................ +00:00:26 v #5348 > > ................................................................................ +00:00:26 v #5349 > > │ +00:00:26 v #5350 > > ................................................................................ +00:00:26 v #5351 > > ................................................................................ +00:00:26 v #5352 > > │ +00:00:26 v #5353 > > ................................................................................ +00:00:26 v #5354 > > ................................................................................ +00:00:26 v #5355 > > │ +00:00:26 v #5356 > > ................................................................................ +00:00:26 v #5357 > > ................................................................................ +00:00:26 v #5358 > > │ +00:00:26 v #5359 > > ................................................................................ +00:00:26 v #5360 > > ................................................................................ +00:00:26 v #5361 > > │ +00:00:26 v #5362 > > ................................................................................ +00:00:26 v #5363 > > ................................................................................ +00:00:26 v #5364 > > │ +00:00:26 v #5365 > > ................................................................................ +00:00:26 v #5366 > > ................................................................................ +00:00:26 v #5367 > > │ +00:00:26 v #5368 > > ................................................................................ +00:00:26 v #5369 > > ................................................................................ +00:00:26 v #5370 > > │ +00:00:26 v #5371 > > │ +00:00:26 v #5372 > > ................................................................................ +00:00:26 v #5373 > > ................................................................................ +00:00:26 v #5374 > > │ +00:00:26 v #5375 > > ................................................................................ +00:00:26 v #5376 > > ................................................................................ +00:00:26 v #5377 > > │ +00:00:26 v #5378 > > ................................................................................ +00:00:26 v #5379 > > ................................................................................ +00:00:26 v #5380 > > │ +00:00:26 v #5381 > > ................................................................................ +00:00:26 v #5382 > > ................................................................................ +00:00:26 v #5383 > > │ +00:00:26 v #5384 > > ................................................................................ +00:00:26 v #5385 > > ................................................................................ +00:00:26 v #5386 > > │ +00:00:26 v #5387 > > ................................................................................ +00:00:26 v #5388 > > ................................................................................ +00:00:26 v #5389 > > │ +00:00:26 v #5390 > > ................................................................................ +00:00:26 v #5391 > > ................................................................................ +00:00:26 v #5392 > > │ +00:00:26 v #5393 > > ................................................................................ +00:00:26 v #5394 > > ................................................................................ +00:00:26 v #5395 > > │ +00:00:26 v #5396 > > ................................................;;/<............................ +00:00:26 v #5397 > > ................................................................................ +00:00:26 v #5398 > > │ +00:00:26 v #5399 > > ............................................;;//////<........................... +00:00:26 v #5400 > > ................................................................................ +00:00:26 v #5401 > > │ +00:00:26 v #5402 > > ........................................;;;//////////<.......................... +00:00:26 v #5403 > > ................................................................................ +00:00:26 v #5404 > > │ +00:00:26 v #5405 > > ....................................;/;;//////////////<......................... +00:00:26 v #5406 > > ................................................................................ +00:00:26 v #5407 > > │ +00:00:26 v #5408 > > ................................;;/////////////////////<........................ +00:00:26 v #5409 > > ................................................................................ +00:00:26 v #5410 > > │ +00:00:26 v #5411 > > ...........................;;//;////////////////////////........................ +00:00:26 v #5412 > > ................................................................................ +00:00:26 v #5413 > > │ +00:00:26 v #5414 > > .......................;;;///////////////////////////////<...................... +00:00:26 v #5415 > > ................................................................................ +00:00:26 v #5416 > > │ +00:00:26 v #5417 > > ...................;/;////////////////////////////////////<..................... +00:00:26 v #5418 > > ..............;................................................................. +00:00:26 v #5419 > > │ +00:00:26 v #5420 > > ..............;;;;/////////////////////////////////////////<.................... +00:00:26 v #5421 > > ..........;/////................................................................ +00:00:26 v #5422 > > │ +00:00:26 v #5423 > > ..............;>////////////////////////////////////////////<................... +00:00:26 v #5424 > > ......;;;;///////............................................................... +00:00:26 v #5425 > > │ +00:00:26 v #5426 > > ................>////////////////////////////////////////////<.................. +00:00:26 v #5427 > > ..;///////////////.............................................................. +00:00:26 v #5428 > > │ +00:00:26 v #5429 > > .................>////////////////////////////////////////////.................; +00:00:26 v #5430 > > ;//////////////////...................;;;//<.................................... +00:00:26 v #5431 > > │ +00:00:26 v #5432 > > ..................>////////////////////////////////////////////................> +00:00:26 v #5433 > > >///////////////////..............;;;///////<................................... +00:00:26 v #5434 > > │ +00:00:26 v #5435 > > ...................>////////////////////////////////////////////<..............> +00:00:26 v #5436 > > >>///////////////////.............>>/////////<.................................. +00:00:26 v #5437 > > │ +00:00:26 v #5438 > > ....................>////////////////////////////////////////////<.............. +00:00:26 v #5439 > > >>>///////////////////.............>>/////////.................................. +00:00:26 v #5440 > > │ +00:00:26 v #5441 > > .....................>////////////////////////////////////////////<............. +00:00:26 v #5442 > > .>>>///////////////////.............>>////////.................................. +00:00:26 v #5443 > > │ +00:00:26 v #5444 > > ......................>////////////////////////////////////////////<............ +00:00:26 v #5445 > > ..>>>/////////////////...............>>///...................................... +00:00:26 v #5446 > > │ +00:00:26 v #5447 > > .......................>////////////////////////////////////////////............ +00:00:26 v #5448 > > ...>>>////////////.............................................................. +00:00:26 v #5449 > > │ +00:00:26 v #5450 > > ........................>///////////////////////////////////////////............ +00:00:26 v #5451 > > ....>>>///////.................................................................. +00:00:26 v #5452 > > │ +00:00:26 v #5453 > > .........................>>/////////////////////////////////////................ +00:00:26 v #5454 > > .....>>////..................................................................... +00:00:26 v #5455 > > │ +00:00:26 v #5456 > > ..........................>/////////////////////////////////.................... +00:00:26 v #5457 > > ................................................................................ +00:00:26 v #5458 > > │ +00:00:26 v #5459 > > ...........................>>////////////////////////////....................... +00:00:26 v #5460 > > ................................................................................ +00:00:26 v #5461 > > │ +00:00:26 v #5462 > > ............................>>///////////////////////........................... +00:00:26 v #5463 > > ................................................................................ +00:00:26 v #5464 > > │ +00:00:26 v #5465 > > .............................>////////////////////.............................. +00:00:26 v #5466 > > ................................................................................ +00:00:26 v #5467 > > │ +00:00:26 v #5468 > > ..............................>>//////////////.................................. +00:00:26 v #5469 > > ................................................................................ +00:00:26 v #5470 > > │ +00:00:26 v #5471 > > ...............................>>/////////...................................... +00:00:26 v #5472 > > ................................................................................ +00:00:26 v #5473 > > │ +00:00:26 v #5474 > > ................................>>////.......................................... +00:00:26 v #5475 > > ................................................................................ +00:00:26 v #5476 > > │ +00:00:26 v #5477 > > .................................>/............................................. +00:00:26 v #5478 > > ................................................................................ +00:00:26 v #5479 > > │ +00:00:26 v #5480 > > ................................................................................ +00:00:26 v #5481 > > ................................................................................ +00:00:26 v #5482 > > │ +00:00:26 v #5483 > > ................................................................................ +00:00:26 v #5484 > > ................................................................................ +00:00:26 v #5485 > > │ +00:00:26 v #5486 > > ................................................................................ +00:00:26 v #5487 > > ................................................................................ +00:00:26 v #5488 > > │ +00:00:26 v #5489 > > ................................................................................ +00:00:26 v #5490 > > ................................................................................ +00:00:26 v #5491 > > │ +00:00:26 v #5492 > > ................................................................................ +00:00:26 v #5493 > > ................................................................................ +00:00:26 v #5494 > > │ +00:00:26 v #5495 > > ................................................................................ +00:00:26 v #5496 > > ................................................................................ +00:00:26 v #5497 > > │ +00:00:26 v #5498 > > ................................................................................ +00:00:26 v #5499 > > ................................................................................ +00:00:26 v #5500 > > │ +00:00:26 v #5501 > > ................................................................................ +00:00:26 v #5502 > > ................................................................................ +00:00:26 v #5503 > > │ +00:00:26 v #5504 > > │ +00:00:26 v #5505 > > ................................................................................ +00:00:26 v #5506 > > ................................................................................ +00:00:26 v #5507 > > │ +00:00:26 v #5508 > > ................................................................................ +00:00:26 v #5509 > > ................................................................................ +00:00:26 v #5510 > > │ +00:00:26 v #5511 > > ................................................................................ +00:00:26 v #5512 > > ................................................................................ +00:00:26 v #5513 > > │ +00:00:26 v #5514 > > ................................................................................ +00:00:26 v #5515 > > ................................................................................ +00:00:26 v #5516 > > │ +00:00:26 v #5517 > > ................................................................................ +00:00:26 v #5518 > > ................................................................................ +00:00:26 v #5519 > > │ +00:00:26 v #5520 > > ................................................................................ +00:00:26 v #5521 > > ................................................................................ +00:00:26 v #5522 > > │ +00:00:26 v #5523 > > ................................................................................ +00:00:26 v #5524 > > ................................................................................ +00:00:26 v #5525 > > │ +00:00:26 v #5526 > > ................................................................................ +00:00:26 v #5527 > > ................................................................................ +00:00:26 v #5528 > > │ +00:00:26 v #5529 > > ...............................................;;;/............................. +00:00:26 v #5530 > > ................................................................................ +00:00:26 v #5531 > > │ +00:00:26 v #5532 > > ...........................................;;;//////............................ +00:00:26 v #5533 > > ................................................................................ +00:00:26 v #5534 > > │ +00:00:26 v #5535 > > .......................................;;;///////////........................... +00:00:26 v #5536 > > ................................................................................ +00:00:26 v #5537 > > │ +00:00:26 v #5538 > > ....................................;;////////////////.......................... +00:00:26 v #5539 > > ................................................................................ +00:00:26 v #5540 > > │ +00:00:26 v #5541 > > ................................;;;////////////////////<........................ +00:00:26 v #5542 > > ................................................................................ +00:00:26 v #5543 > > │ +00:00:26 v #5544 > > ............................;;/;////////////////////////<....................... +00:00:26 v #5545 > > ................................................................................ +00:00:26 v #5546 > > │ +00:00:26 v #5547 > > .........................;;//////////////////////////////<...................... +00:00:26 v #5548 > > ................................................................................ +00:00:26 v #5549 > > │ +00:00:26 v #5550 > > .....................;/////////////////////////////////////..................... +00:00:26 v #5551 > > .............;;................................................................. +00:00:26 v #5552 > > │ +00:00:26 v #5553 > > .................;/;////////////////////////////////////////.................... +00:00:26 v #5554 > > ..........;;////................................................................ +00:00:26 v #5555 > > │ +00:00:26 v #5556 > > ...............;/////////////////////////////////////////////................... +00:00:26 v #5557 > > ......;;;////////............................................................... +00:00:26 v #5558 > > │ +00:00:26 v #5559 > > ...............>>/////////////////////////////////////////////.................. +00:00:26 v #5560 > > ...;//////////////<............................................................. +00:00:26 v #5561 > > │ +00:00:26 v #5562 > > ................>>/////////////////////////////////////////////................; +00:00:26 v #5563 > > ;///////////////////..................;;;//<.................................... +00:00:26 v #5564 > > │ +00:00:26 v #5565 > > ..................>>////////////////////////////////////////////<.............;; +00:00:26 v #5566 > > >////////////////////..............;/////////................................... +00:00:26 v #5567 > > │ +00:00:26 v #5568 > > ...................>>////////////////////////////////////////////<............\> +00:00:26 v #5569 > > >>////////////////////............;>//////////.................................. +00:00:26 v #5570 > > │ +00:00:26 v #5571 > > ....................>>////////////////////////////////////////////<............. +00:00:26 v #5572 > > >>>////////////////////...........\>>//////////................................. +00:00:26 v #5573 > > │ +00:00:26 v #5574 > > .....................>>/////////////////////////////////////////////............ +00:00:26 v #5575 > > .>>>////////////////////............>>>//////................................... +00:00:26 v #5576 > > │ +00:00:26 v #5577 > > .......................>/////////////////////////////////////////////........... +00:00:26 v #5578 > > ..>>>////////////////................>>///...................................... +00:00:26 v #5579 > > │ +00:00:26 v #5580 > > ........................>////////////////////////////////////////////........... +00:00:26 v #5581 > > ...>>>////////////.............................................................. +00:00:26 v #5582 > > │ +00:00:26 v #5583 > > .........................>>///////////////////////////////////////.............. +00:00:26 v #5584 > > ....>>>>///////................................................................. +00:00:26 v #5585 > > │ +00:00:26 v #5586 > > ..........................>>///////////////////////////////////................. +00:00:26 v #5587 > > .....\>>>///.................................................................... +00:00:26 v #5588 > > │ +00:00:26 v #5589 > > ...........................>>//////////////////////////////..................... +00:00:26 v #5590 > > ................................................................................ +00:00:26 v #5591 > > │ +00:00:26 v #5592 > > ............................>>//////////////////////////........................ +00:00:26 v #5593 > > ................................................................................ +00:00:26 v #5594 > > │ +00:00:26 v #5595 > > .............................>>//////////////////////........................... +00:00:26 v #5596 > > ................................................................................ +00:00:26 v #5597 > > │ +00:00:26 v #5598 > > ...............................>//////////////////.............................. +00:00:26 v #5599 > > ................................................................................ +00:00:26 v #5600 > > │ +00:00:26 v #5601 > > ................................>>/////////////................................. +00:00:26 v #5602 > > ................................................................................ +00:00:26 v #5603 > > │ +00:00:26 v #5604 > > .................................>>/////////.................................... +00:00:26 v #5605 > > ................................................................................ +00:00:26 v #5606 > > │ +00:00:26 v #5607 > > ..................................>>/////....................................... +00:00:26 v #5608 > > ................................................................................ +00:00:26 v #5609 > > │ +00:00:26 v #5610 > > ...................................>//.......................................... +00:00:26 v #5611 > > ................................................................................ +00:00:26 v #5612 > > │ +00:00:26 v #5613 > > ................................................................................ +00:00:26 v #5614 > > ................................................................................ +00:00:26 v #5615 > > │ +00:00:26 v #5616 > > ................................................................................ +00:00:26 v #5617 > > ................................................................................ +00:00:26 v #5618 > > │ +00:00:26 v #5619 > > ................................................................................ +00:00:26 v #5620 > > ................................................................................ +00:00:26 v #5621 > > │ +00:00:26 v #5622 > > ................................................................................ +00:00:26 v #5623 > > ................................................................................ +00:00:26 v #5624 > > │ +00:00:26 v #5625 > > ................................................................................ +00:00:26 v #5626 > > ................................................................................ +00:00:26 v #5627 > > │ +00:00:26 v #5628 > > ................................................................................ +00:00:26 v #5629 > > ................................................................................ +00:00:26 v #5630 > > │ +00:00:26 v #5631 > > ................................................................................ +00:00:26 v #5632 > > ................................................................................ +00:00:26 v #5633 > > │ +00:00:26 v #5634 > > ................................................................................ +00:00:26 v #5635 > > ................................................................................ +00:00:26 v #5636 > > │ +00:00:26 v #5637 > > │ +00:00:26 v #5638 > > ................................................................................ +00:00:26 v #5639 > > ................................................................................ +00:00:26 v #5640 > > │ +00:00:26 v #5641 > > ................................................................................ +00:00:26 v #5642 > > ................................................................................ +00:00:26 v #5643 > > │ +00:00:26 v #5644 > > ................................................................................ +00:00:26 v #5645 > > ................................................................................ +00:00:26 v #5646 > > │ +00:00:26 v #5647 > > ................................................................................ +00:00:26 v #5648 > > ................................................................................ +00:00:26 v #5649 > > │ +00:00:26 v #5650 > > ................................................................................ +00:00:26 v #5651 > > ................................................................................ +00:00:26 v #5652 > > │ +00:00:26 v #5653 > > ................................................................................ +00:00:26 v #5654 > > ................................................................................ +00:00:26 v #5655 > > │ +00:00:26 v #5656 > > ................................................................................ +00:00:26 v #5657 > > ................................................................................ +00:00:26 v #5658 > > │ +00:00:26 v #5659 > > ................................................................................ +00:00:26 v #5660 > > ................................................................................ +00:00:26 v #5661 > > │ +00:00:26 v #5662 > > .............................................;;///.............................. +00:00:26 v #5663 > > ................................................................................ +00:00:26 v #5664 > > │ +00:00:26 v #5665 > > ..........................................;;;//////<............................ +00:00:26 v #5666 > > ................................................................................ +00:00:26 v #5667 > > │ +00:00:26 v #5668 > > .......................................;////////////<........................... +00:00:26 v #5669 > > ................................................................................ +00:00:26 v #5670 > > │ +00:00:26 v #5671 > > ....................................;/////////////////.......................... +00:00:26 v #5672 > > ................................................................................ +00:00:26 v #5673 > > │ +00:00:26 v #5674 > > ................................;;;////////////////////<........................ +00:00:26 v #5675 > > ................................................................................ +00:00:26 v #5676 > > │ +00:00:26 v #5677 > > .............................;;;////////////////////////<....................... +00:00:26 v #5678 > > ................................................................................ +00:00:26 v #5679 > > │ +00:00:26 v #5680 > > ..........................;///////////////////////////////...................... +00:00:26 v #5681 > > ................................................................................ +00:00:26 v #5682 > > │ +00:00:26 v #5683 > > ......................;;///////////////////////////////////..................... +00:00:26 v #5684 > > .............;/................................................................. +00:00:26 v #5685 > > │ +00:00:26 v #5686 > > ...................;;;//////////////////////////////////////<................... +00:00:26 v #5687 > > ..........;;////................................................................ +00:00:26 v #5688 > > │ +00:00:26 v #5689 > > ................;;////////////////////////////////////////////.................. +00:00:26 v #5690 > > ......;;;////////............................................................... +00:00:26 v #5691 > > │ +00:00:26 v #5692 > > ...............;>//////////////////////////////////////////////................. +00:00:26 v #5693 > > ...;;//////////////......................<...................................... +00:00:26 v #5694 > > │ +00:00:26 v #5695 > > ................>>//////////////////////////////////////////////................ +00:00:26 v #5696 > > ;///////////////////..................;;;//<.................................... +00:00:26 v #5697 > > │ +00:00:26 v #5698 > > .................>>>//////////////////////////////////////////////............;; +00:00:26 v #5699 > > >////////////////////..............;;;///////................................... +00:00:26 v #5700 > > │ +00:00:26 v #5701 > > ..................>>>//////////////////////////////////////////////...........>> +00:00:26 v #5702 > > >>////////////////////<..........;;;>/////////.................................. +00:00:26 v #5703 > > │ +00:00:26 v #5704 > > ...................>>>//////////////////////////////////////////////...........> +00:00:26 v #5705 > > >>>/////////////////////..........>>>>/////////................................. +00:00:26 v #5706 > > │ +00:00:26 v #5707 > > .....................>>>/////////////////////////////////////////////<.......... +00:00:26 v #5708 > > >>>>>//////////////////............>>>>//////................................... +00:00:26 v #5709 > > │ +00:00:26 v #5710 > > ......................>>>////////////////////////////////////////////........... +00:00:26 v #5711 > > .\>>>>///////////////................>>>//...................................... +00:00:26 v #5712 > > │ +00:00:26 v #5713 > > ........................>>>////////////////////////////////////////............. +00:00:26 v #5714 > > ...>>>>///////////.............................................................. +00:00:26 v #5715 > > │ +00:00:26 v #5716 > > .........................>>>////////////////////////////////////................ +00:00:26 v #5717 > > ....>>>>>//////................................................................. +00:00:26 v #5718 > > │ +00:00:26 v #5719 > > ..........................>>>////////////////////////////////................... +00:00:26 v #5720 > > ......>>>>//.................................................................... +00:00:26 v #5721 > > │ +00:00:26 v #5722 > > ............................>>>////////////////////////////..................... +00:00:26 v #5723 > > ................................................................................ +00:00:26 v #5724 > > │ +00:00:26 v #5725 > > .............................>>>////////////////////////........................ +00:00:26 v #5726 > > ................................................................................ +00:00:26 v #5727 > > │ +00:00:26 v #5728 > > ..............................>>>////////////////////........................... +00:00:26 v #5729 > > ................................................................................ +00:00:26 v #5730 > > │ +00:00:26 v #5731 > > ................................>>>////////////////............................. +00:00:26 v #5732 > > ................................................................................ +00:00:26 v #5733 > > │ +00:00:26 v #5734 > > .................................>>>////////////................................ +00:00:26 v #5735 > > ................................................................................ +00:00:26 v #5736 > > │ +00:00:26 v #5737 > > ...................................>>>////////.................................. +00:00:26 v #5738 > > ................................................................................ +00:00:26 v #5739 > > │ +00:00:26 v #5740 > > ....................................>>>////..................................... +00:00:26 v #5741 > > ................................................................................ +00:00:26 v #5742 > > │ +00:00:26 v #5743 > > ......................................>//....................................... +00:00:26 v #5744 > > ................................................................................ +00:00:26 v #5745 > > │ +00:00:26 v #5746 > > ................................................................................ +00:00:26 v #5747 > > ................................................................................ +00:00:26 v #5748 > > │ +00:00:26 v #5749 > > ................................................................................ +00:00:26 v #5750 > > ................................................................................ +00:00:26 v #5751 > > │ +00:00:26 v #5752 > > ................................................................................ +00:00:26 v #5753 > > ................................................................................ +00:00:26 v #5754 > > │ +00:00:26 v #5755 > > ................................................................................ +00:00:26 v #5756 > > ................................................................................ +00:00:26 v #5757 > > │ +00:00:26 v #5758 > > ................................................................................ +00:00:26 v #5759 > > ................................................................................ +00:00:26 v #5760 > > │ +00:00:26 v #5761 > > ................................................................................ +00:00:26 v #5762 > > ................................................................................ +00:00:26 v #5763 > > │ +00:00:26 v #5764 > > ................................................................................ +00:00:26 v #5765 > > ................................................................................ +00:00:26 v #5766 > > │ +00:00:26 v #5767 > > ................................................................................ +00:00:26 v #5768 > > ................................................................................ +00:00:26 v #5769 > > │ +00:00:26 v #5770 > > │ +00:00:26 v #5771 > > ................................................................................ +00:00:26 v #5772 > > ................................................................................ +00:00:26 v #5773 > > │ +00:00:26 v #5774 > > ................................................................................ +00:00:26 v #5775 > > ................................................................................ +00:00:26 v #5776 > > │ +00:00:26 v #5777 > > ................................................................................ +00:00:26 v #5778 > > ................................................................................ +00:00:26 v #5779 > > │ +00:00:26 v #5780 > > ................................................................................ +00:00:26 v #5781 > > ................................................................................ +00:00:26 v #5782 > > │ +00:00:26 v #5783 > > ................................................................................ +00:00:26 v #5784 > > ................................................................................ +00:00:26 v #5785 > > │ +00:00:26 v #5786 > > ................................................................................ +00:00:26 v #5787 > > ................................................................................ +00:00:26 v #5788 > > │ +00:00:26 v #5789 > > ................................................................................ +00:00:26 v #5790 > > ................................................................................ +00:00:26 v #5791 > > │ +00:00:26 v #5792 > > ...............................................;<............................... +00:00:26 v #5793 > > ................................................................................ +00:00:26 v #5794 > > │ +00:00:26 v #5795 > > ............................................;;;//<.............................. +00:00:26 v #5796 > > ................................................................................ +00:00:26 v #5797 > > │ +00:00:26 v #5798 > > ..........................................;;///////<............................ +00:00:26 v #5799 > > ................................................................................ +00:00:26 v #5800 > > │ +00:00:26 v #5801 > > .......................................;////////////<........................... +00:00:26 v #5802 > > ................................................................................ +00:00:26 v #5803 > > │ +00:00:26 v #5804 > > ....................................;/////////////////.......................... +00:00:26 v #5805 > > ................................................................................ +00:00:26 v #5806 > > │ +00:00:26 v #5807 > > .................................;/////////////////////<........................ +00:00:26 v #5808 > > ................................................................................ +00:00:26 v #5809 > > │ +00:00:26 v #5810 > > ..............................;;/////////////////////////....................... +00:00:26 v #5811 > > ................................................................................ +00:00:26 v #5812 > > │ +00:00:26 v #5813 > > ...........................;;/////////////////////////////...................... +00:00:26 v #5814 > > ................................................................................ +00:00:26 v #5815 > > │ +00:00:26 v #5816 > > ........................;;//////////////////////////////////.................... +00:00:26 v #5817 > > ............;;<................................................................. +00:00:26 v #5818 > > │ +00:00:26 v #5819 > > .....................;;//////////////////////////////////////................... +00:00:26 v #5820 > > .........;//////................................................................ +00:00:26 v #5821 > > │ +00:00:26 v #5822 > > ..................;///////////////////////////////////////////<................. +00:00:26 v #5823 > > .......;//////////.............................................................. +00:00:26 v #5824 > > │ +00:00:26 v #5825 > > ................;///////////////////////////////////////////////................ +00:00:26 v #5826 > > ....;;/////////////......................;...................................... +00:00:26 v #5827 > > │ +00:00:26 v #5828 > > ................>>>//////////////////////////////////////////////<.............. +00:00:26 v #5829 > > .;;/////////////////<.................;;///<.................................... +00:00:26 v #5830 > > │ +00:00:26 v #5831 > > ................>>>>///////////////////////////////////////////////............; +00:00:26 v #5832 > > >/////////////////////.............;;////////................................... +00:00:26 v #5833 > > │ +00:00:26 v #5834 > > ................;>>>>>//////////////////////////////////////////////<........;;> +00:00:26 v #5835 > > >>/////////////////////<.........;;;>/////////<................................. +00:00:26 v #5836 > > │ +00:00:26 v #5837 > > ..................>>>>>//////////////////////////////////////////////<........>> +00:00:26 v #5838 > > >>>>////////////////////..........>>>>/////////................................. +00:00:26 v #5839 > > │ +00:00:26 v #5840 > > ...................>>>>>//////////////////////////////////////////////.......... +00:00:26 v #5841 > > >>>>>//////////////////............>>>>>/////................................... +00:00:26 v #5842 > > │ +00:00:26 v #5843 > > .....................>>>>>//////////////////////////////////////////............ +00:00:26 v #5844 > > .>>>>>>/////////////.................>>>>/...................................... +00:00:26 v #5845 > > │ +00:00:26 v #5846 > > ......................>>>>>>/////////////////////////////////////............... +00:00:26 v #5847 > > ...>>>>>//////////.............................................................. +00:00:26 v #5848 > > │ +00:00:26 v #5849 > > ........................>>>>>//////////////////////////////////................. +00:00:26 v #5850 > > ....>>>>>>/////................................................................. +00:00:26 v #5851 > > │ +00:00:26 v #5852 > > ..........................>>>>>//////////////////////////////................... +00:00:26 v #5853 > > ......>>>>>//................................................................... +00:00:26 v #5854 > > │ +00:00:26 v #5855 > > ...........................>>>>>///////////////////////////..................... +00:00:26 v #5856 > > ................................................................................ +00:00:26 v #5857 > > │ +00:00:26 v #5858 > > .............................>>>>>///////////////////////....................... +00:00:26 v #5859 > > ................................................................................ +00:00:26 v #5860 > > │ +00:00:26 v #5861 > > ..............................>>>>>///////////////////.......................... +00:00:26 v #5862 > > ................................................................................ +00:00:26 v #5863 > > │ +00:00:26 v #5864 > > ................................>>>>>///////////////............................ +00:00:26 v #5865 > > ................................................................................ +00:00:26 v #5866 > > │ +00:00:26 v #5867 > > .................................>>>>>>///////////.............................. +00:00:26 v #5868 > > ................................................................................ +00:00:26 v #5869 > > │ +00:00:26 v #5870 > > ...................................=>>>>///////................................. +00:00:26 v #5871 > > ................................................................................ +00:00:26 v #5872 > > │ +00:00:26 v #5873 > > ......................................>>>>///................................... +00:00:26 v #5874 > > ................................................................................ +00:00:26 v #5875 > > │ +00:00:26 v #5876 > > ........................................=>/..................................... +00:00:26 v #5877 > > ................................................................................ +00:00:26 v #5878 > > │ +00:00:26 v #5879 > > ................................................................................ +00:00:26 v #5880 > > ................................................................................ +00:00:26 v #5881 > > │ +00:00:26 v #5882 > > ................................................................................ +00:00:26 v #5883 > > ................................................................................ +00:00:26 v #5884 > > │ +00:00:26 v #5885 > > ................................................................................ +00:00:26 v #5886 > > ................................................................................ +00:00:26 v #5887 > > │ +00:00:26 v #5888 > > ................................................................................ +00:00:26 v #5889 > > ................................................................................ +00:00:26 v #5890 > > │ +00:00:26 v #5891 > > ................................................................................ +00:00:26 v #5892 > > ................................................................................ +00:00:26 v #5893 > > │ +00:00:26 v #5894 > > ................................................................................ +00:00:26 v #5895 > > ................................................................................ +00:00:26 v #5896 > > │ +00:00:26 v #5897 > > ................................................................................ +00:00:26 v #5898 > > ................................................................................ +00:00:26 v #5899 > > │ +00:00:26 v #5900 > > ................................................................................ +00:00:26 v #5901 > > ................................................................................ +00:00:26 v #5902 > > │ +00:00:26 v #5903 > > │ +00:00:26 v #5904 > > ................................................................................ +00:00:26 v #5905 > > ................................................................................ +00:00:26 v #5906 > > │ +00:00:26 v #5907 > > ................................................................................ +00:00:26 v #5908 > > ................................................................................ +00:00:26 v #5909 > > │ +00:00:26 v #5910 > > ................................................................................ +00:00:26 v #5911 > > ................................................................................ +00:00:26 v #5912 > > │ +00:00:26 v #5913 > > ................................................................................ +00:00:26 v #5914 > > ................................................................................ +00:00:26 v #5915 > > │ +00:00:26 v #5916 > > ................................................................................ +00:00:26 v #5917 > > ................................................................................ +00:00:26 v #5918 > > │ +00:00:26 v #5919 > > ................................................................................ +00:00:26 v #5920 > > ................................................................................ +00:00:26 v #5921 > > │ +00:00:26 v #5922 > > ................................................................................ +00:00:26 v #5923 > > ................................................................................ +00:00:26 v #5924 > > │ +00:00:26 v #5925 > > ..............................................;/................................ +00:00:26 v #5926 > > ................................................................................ +00:00:26 v #5927 > > │ +00:00:26 v #5928 > > ............................................;////............................... +00:00:26 v #5929 > > ................................................................................ +00:00:26 v #5930 > > │ +00:00:26 v #5931 > > .........................................;;///////<............................. +00:00:26 v #5932 > > ................................................................................ +00:00:26 v #5933 > > │ +00:00:26 v #5934 > > ......................................;;////////////............................ +00:00:26 v #5935 > > ................................................................................ +00:00:26 v #5936 > > │ +00:00:26 v #5937 > > ....................................;;///////////////<.......................... +00:00:26 v #5938 > > ................................................................................ +00:00:26 v #5939 > > │ +00:00:26 v #5940 > > .................................;/////////////////////<........................ +00:00:26 v #5941 > > ................................................................................ +00:00:26 v #5942 > > │ +00:00:26 v #5943 > > ..............................;;;////////////////////////....................... +00:00:26 v #5944 > > ................................................................................ +00:00:26 v #5945 > > │ +00:00:26 v #5946 > > ............................;/////////////////////////////<..................... +00:00:26 v #5947 > > ................................................................................ +00:00:26 v #5948 > > │ +00:00:26 v #5949 > > .........................;;/////////////////////////////////.................... +00:00:26 v #5950 > > ...........;;/.................................................................. +00:00:26 v #5951 > > │ +00:00:26 v #5952 > > .......................;;/////////////////////////////////////.................. +00:00:26 v #5953 > > .........;;/////................................................................ +00:00:26 v #5954 > > │ +00:00:26 v #5955 > > ....................;;/////////////////////////////////////////................. +00:00:26 v #5956 > > .......;//////////.............................................................. +00:00:26 v #5957 > > │ +00:00:26 v #5958 > > ..................;;/////////////////////////////////////////////............... +00:00:26 v #5959 > > ....;;/////////////......................;...................................... +00:00:26 v #5960 > > │ +00:00:26 v #5961 > > ................;;>///////////////////////////////////////////////<............. +00:00:26 v #5962 > > ..;;/////////////////.................;;///<.................................... +00:00:26 v #5963 > > │ +00:00:26 v #5964 > > ................;>>>////////////////////////////////////////////////...........; +00:00:26 v #5965 > > ;/////////////////////.............\;////////<.................................. +00:00:26 v #5966 > > │ +00:00:26 v #5967 > > ................>>>>>>///////////////////////////////////////////////<.......;;; +00:00:26 v #5968 > > >>>/////////////////////.........;;;>//////////................................. +00:00:26 v #5969 > > │ +00:00:26 v #5970 > > ................>>>>>>>>//////////////////////////////////////////////.......>>> +00:00:26 v #5971 > > >>>>////////////////////.........>>>>>>////////................................. +00:00:26 v #5972 > > │ +00:00:26 v #5973 > > ..................>>>>>>>>//////////////////////////////////////////...........> +00:00:26 v #5974 > > >>>>>>////////////////.............>>>>>/////................................... +00:00:26 v #5975 > > │ +00:00:26 v #5976 > > ...................\>>>>>>>///////////////////////////////////////.............. +00:00:26 v #5977 > > .>>>>>>>////////////.................>>>>//..................................... +00:00:26 v #5978 > > │ +00:00:26 v #5979 > > .....................>>>>>>>>///////////////////////////////////................ +00:00:26 v #5980 > > ..>>>>>>>/////////.............................................................. +00:00:26 v #5981 > > │ +00:00:26 v #5982 > > .......................>>>>>>>>///////////////////////////////.................. +00:00:26 v #5983 > > ....>>>>>>>/////................................................................ +00:00:26 v #5984 > > │ +00:00:26 v #5985 > > .........................>>>>>>>/////////////////////////////................... +00:00:26 v #5986 > > ......>>>>>>//.................................................................. +00:00:26 v #5987 > > │ +00:00:26 v #5988 > > ..........................>>>>>>>>/////////////////////////..................... +00:00:26 v #5989 > > ................................................................................ +00:00:26 v #5990 > > │ +00:00:26 v #5991 > > ............................>>>>>>>>/////////////////////....................... +00:00:26 v #5992 > > ................................................................................ +00:00:26 v #5993 > > │ +00:00:26 v #5994 > > ..............................>>>>>>>>/////////////////......................... +00:00:26 v #5995 > > ................................................................................ +00:00:26 v #5996 > > │ +00:00:26 v #5997 > > ................................>>>>>>>//////////////........................... +00:00:26 v #5998 > > ................................................................................ +00:00:26 v #5999 > > │ +00:00:26 v #6000 > > .................................>>>>>>>>//////////............................. +00:00:26 v #6001 > > ................................................................................ +00:00:26 v #6002 > > │ +00:00:26 v #6003 > > ....................................>>>>>>>//////............................... +00:00:26 v #6004 > > ................................................................................ +00:00:26 v #6005 > > │ +00:00:26 v #6006 > > ........................................>>>>///................................. +00:00:26 v #6007 > > ................................................................................ +00:00:26 v #6008 > > │ +00:00:26 v #6009 > > ...........................................>>/.................................. +00:00:26 v #6010 > > ................................................................................ +00:00:26 v #6011 > > │ +00:00:26 v #6012 > > ................................................................................ +00:00:26 v #6013 > > ................................................................................ +00:00:26 v #6014 > > │ +00:00:26 v #6015 > > ................................................................................ +00:00:26 v #6016 > > ................................................................................ +00:00:26 v #6017 > > │ +00:00:26 v #6018 > > ................................................................................ +00:00:26 v #6019 > > ................................................................................ +00:00:26 v #6020 > > │ +00:00:26 v #6021 > > ................................................................................ +00:00:26 v #6022 > > ................................................................................ +00:00:26 v #6023 > > │ +00:00:26 v #6024 > > ................................................................................ +00:00:26 v #6025 > > ................................................................................ +00:00:26 v #6026 > > │ +00:00:26 v #6027 > > ................................................................................ +00:00:26 v #6028 > > ................................................................................ +00:00:26 v #6029 > > │ +00:00:26 v #6030 > > ................................................................................ +00:00:26 v #6031 > > ................................................................................ +00:00:26 v #6032 > > │ +00:00:26 v #6033 > > ................................................................................ +00:00:26 v #6034 > > ................................................................................ +00:00:26 v #6035 > > │ +00:00:26 v #6036 > > │ +00:00:26 v #6037 > > ................................................................................ +00:00:26 v #6038 > > ................................................................................ +00:00:26 v #6039 > > │ +00:00:26 v #6040 > > ................................................................................ +00:00:26 v #6041 > > ................................................................................ +00:00:26 v #6042 > > │ +00:00:26 v #6043 > > ................................................................................ +00:00:26 v #6044 > > ................................................................................ +00:00:26 v #6045 > > │ +00:00:26 v #6046 > > ................................................................................ +00:00:26 v #6047 > > ................................................................................ +00:00:26 v #6048 > > │ +00:00:26 v #6049 > > ................................................................................ +00:00:26 v #6050 > > ................................................................................ +00:00:26 v #6051 > > │ +00:00:26 v #6052 > > ................................................................................ +00:00:26 v #6053 > > ................................................................................ +00:00:26 v #6054 > > │ +00:00:26 v #6055 > > ................................................................................ +00:00:26 v #6056 > > ................................................................................ +00:00:26 v #6057 > > │ +00:00:26 v #6058 > > .............................................;/................................. +00:00:26 v #6059 > > ................................................................................ +00:00:26 v #6060 > > │ +00:00:26 v #6061 > > ...........................................;;////............................... +00:00:26 v #6062 > > ................................................................................ +00:00:26 v #6063 > > │ +00:00:26 v #6064 > > ........................................;;////////<............................. +00:00:26 v #6065 > > ................................................................................ +00:00:26 v #6066 > > │ +00:00:26 v #6067 > > ......................................;/////////////............................ +00:00:26 v #6068 > > ................................................................................ +00:00:26 v #6069 > > │ +00:00:26 v #6070 > > ....................................;/////////////////.......................... +00:00:26 v #6071 > > ................................................................................ +00:00:26 v #6072 > > │ +00:00:26 v #6073 > > .................................;;////////////////////<........................ +00:00:26 v #6074 > > ................................................................................ +00:00:26 v #6075 > > │ +00:00:26 v #6076 > > ...............................;/////////////////////////....................... +00:00:26 v #6077 > > ................................................................................ +00:00:26 v #6078 > > │ +00:00:26 v #6079 > > .............................;/////////////////////////////..................... +00:00:26 v #6080 > > ................................................................................ +00:00:26 v #6081 > > │ +00:00:26 v #6082 > > ..........................;;////////////////////////////////<................... +00:00:26 v #6083 > > ...........;;/.................................................................. +00:00:26 v #6084 > > │ +00:00:26 v #6085 > > ........................;;////////////////////////////////////.................. +00:00:26 v #6086 > > ........;;//////................................................................ +00:00:26 v #6087 > > │ +00:00:26 v #6088 > > ......................;/////////////////////////////////////////................ +00:00:26 v #6089 > > ......;;//////////.............................................................. +00:00:26 v #6090 > > │ +00:00:26 v #6091 > > ...................;;////////////////////////////////////////////<.............. +00:00:26 v #6092 > > ....;;;////////////<....................;;...................................... +00:00:26 v #6093 > > │ +00:00:26 v #6094 > > .................;;////////////////////////////////////////////////<............ +00:00:26 v #6095 > > ..;;/////////////////................;;;////.................................... +00:00:26 v #6096 > > │ +00:00:26 v #6097 > > ................;;>>>////////////////////////////////////////////////........... +00:00:26 v #6098 > > ;;/////////////////////............\;;///////<.................................. +00:00:26 v #6099 > > │ +00:00:26 v #6100 > > ................;>>>>>>///////////////////////////////////////////////.......;;; +00:00:26 v #6101 > > ;>>/////////////////////.........;;;>//////////................................. +00:00:26 v #6102 > > │ +00:00:26 v #6103 > > ...............;>>>>>>>>/////////////////////////////////////////////........;>> +00:00:26 v #6104 > > >>>>>///////////////////.........;>>>>>////////................................. +00:00:26 v #6105 > > │ +00:00:26 v #6106 > > ................>>>>>>>>>>/////////////////////////////////////////...........>> +00:00:26 v #6107 > > >>>>>>>///////////////.............>>>>>>////................................... +00:00:26 v #6108 > > │ +00:00:26 v #6109 > > ..................>>>>>>>>>>>////////////////////////////////////............... +00:00:26 v #6110 > > >>>>>>>>>///////////................\>>>>>/..................................... +00:00:26 v #6111 > > │ +00:00:26 v #6112 > > ....................>>>>>>>>>>//////////////////////////////////................ +00:00:26 v #6113 > > ..>>>>>>>>////////.............................................................. +00:00:26 v #6114 > > │ +00:00:26 v #6115 > > ......................>>>>>>>>>>//////////////////////////////.................. +00:00:26 v #6116 > > ....>>>>>>>>////................................................................ +00:00:26 v #6117 > > │ +00:00:26 v #6118 > > ........................>>>>>>>>>>///////////////////////////................... +00:00:26 v #6119 > > ......>>>>>>>//................................................................. +00:00:26 v #6120 > > │ +00:00:26 v #6121 > > ..........................>>>>>>>>>>///////////////////////..................... +00:00:26 v #6122 > > ................................................................................ +00:00:26 v #6123 > > │ +00:00:26 v #6124 > > ............................>>>>>>>>>>///////////////////....................... +00:00:26 v #6125 > > ................................................................................ +00:00:26 v #6126 > > │ +00:00:26 v #6127 > > ..............................>>>>>>>>>>////////////////........................ +00:00:26 v #6128 > > ................................................................................ +00:00:26 v #6129 > > │ +00:00:26 v #6130 > > ................................>>>>>>>>>>////////////.......................... +00:00:26 v #6131 > > ................................................................................ +00:00:26 v #6132 > > │ +00:00:26 v #6133 > > ..................................>>>>>>>>>>////////............................ +00:00:26 v #6134 > > ................................................................................ +00:00:26 v #6135 > > │ +00:00:26 v #6136 > > ....................................=>>>>>>>>>/////............................. +00:00:26 v #6137 > > ................................................................................ +00:00:26 v #6138 > > │ +00:00:26 v #6139 > > ..........................................>>>>>//............................... +00:00:26 v #6140 > > ................................................................................ +00:00:26 v #6141 > > │ +00:00:26 v #6142 > > .............................................../................................ +00:00:26 v #6143 > > ................................................................................ +00:00:26 v #6144 > > │ +00:00:26 v #6145 > > ................................................................................ +00:00:26 v #6146 > > ................................................................................ +00:00:26 v #6147 > > │ +00:00:26 v #6148 > > ................................................................................ +00:00:26 v #6149 > > ................................................................................ +00:00:26 v #6150 > > │ +00:00:26 v #6151 > > ................................................................................ +00:00:26 v #6152 > > ................................................................................ +00:00:26 v #6153 > > │ +00:00:26 v #6154 > > ................................................................................ +00:00:26 v #6155 > > ................................................................................ +00:00:26 v #6156 > > │ +00:00:26 v #6157 > > ................................................................................ +00:00:26 v #6158 > > ................................................................................ +00:00:26 v #6159 > > │ +00:00:26 v #6160 > > ................................................................................ +00:00:26 v #6161 > > ................................................................................ +00:00:26 v #6162 > > │ +00:00:26 v #6163 > > ................................................................................ +00:00:26 v #6164 > > ................................................................................ +00:00:26 v #6165 > > │ +00:00:26 v #6166 > > ................................................................................ +00:00:26 v #6167 > > ................................................................................ +00:00:26 v #6168 > > │ +00:00:26 v #6169 > > │ +00:00:26 v #6170 > > ................................................................................ +00:00:26 v #6171 > > ................................................................................ +00:00:26 v #6172 > > │ +00:00:26 v #6173 > > ................................................................................ +00:00:26 v #6174 > > ................................................................................ +00:00:26 v #6175 > > │ +00:00:26 v #6176 > > ................................................................................ +00:00:26 v #6177 > > ................................................................................ +00:00:26 v #6178 > > │ +00:00:26 v #6179 > > ................................................................................ +00:00:26 v #6180 > > ................................................................................ +00:00:26 v #6181 > > │ +00:00:26 v #6182 > > ................................................................................ +00:00:26 v #6183 > > ................................................................................ +00:00:26 v #6184 > > │ +00:00:26 v #6185 > > ................................................................................ +00:00:26 v #6186 > > ................................................................................ +00:00:26 v #6187 > > │ +00:00:26 v #6188 > > ................................................................................ +00:00:26 v #6189 > > ................................................................................ +00:00:26 v #6190 > > │ +00:00:26 v #6191 > > ............................................;;.................................. +00:00:26 v #6192 > > ................................................................................ +00:00:26 v #6193 > > │ +00:00:26 v #6194 > > ..........................................;;////................................ +00:00:26 v #6195 > > ................................................................................ +00:00:26 v #6196 > > │ +00:00:26 v #6197 > > ........................................;;////////.............................. +00:00:26 v #6198 > > ................................................................................ +00:00:26 v #6199 > > │ +00:00:26 v #6200 > > ......................................;////////////<............................ +00:00:26 v #6201 > > ................................................................................ +00:00:26 v #6202 > > │ +00:00:26 v #6203 > > ....................................;////////////////<.......................... +00:00:26 v #6204 > > ................................................................................ +00:00:26 v #6205 > > │ +00:00:26 v #6206 > > ..................................;////////////////////<........................ +00:00:26 v #6207 > > ................................................................................ +00:00:26 v #6208 > > │ +00:00:26 v #6209 > > ................................;////////////////////////<...................... +00:00:26 v #6210 > > ................................................................................ +00:00:26 v #6211 > > │ +00:00:26 v #6212 > > ..............................;////////////////////////////..................... +00:00:26 v #6213 > > ................................................................................ +00:00:26 v #6214 > > │ +00:00:26 v #6215 > > ............................;////////////////////////////////................... +00:00:26 v #6216 > > ..........;;//.................................................................. +00:00:26 v #6217 > > │ +00:00:26 v #6218 > > ..........................;////////////////////////////////////................. +00:00:26 v #6219 > > ........;;//////................................................................ +00:00:26 v #6220 > > │ +00:00:26 v #6221 > > ........................;///////////////////////////////////////<............... +00:00:26 v #6222 > > .....;;;//////////.............................................................. +00:00:26 v #6223 > > │ +00:00:26 v #6224 > > ......................;///////////////////////////////////////////<............. +00:00:26 v #6225 > > ...\;;//////////////....................;<...................................... +00:00:26 v #6226 > > │ +00:00:26 v #6227 > > ....................;;//////////////////////////////////////////////<........... +00:00:26 v #6228 > > ..;;;/////////////////...............;;;///<.................................... +00:00:26 v #6229 > > │ +00:00:26 v #6230 > > ..................;;>////////////////////////////////////////////////........... +00:00:26 v #6231 > > ;;;/////////////////////...........;;;///////<.................................. +00:00:26 v #6232 > > │ +00:00:26 v #6233 > > ................;;>>>>>//////////////////////////////////////////////.........;; +00:00:26 v #6234 > > ;;>/////////////////////..........;;;//////////................................. +00:00:26 v #6235 > > │ +00:00:26 v #6236 > > ...............;;>>>>>>>>//////////////////////////////////////////.........\;;> +00:00:26 v #6237 > > >>>>>//////////////////..........;;>>>>////////................................. +00:00:26 v #6238 > > │ +00:00:26 v #6239 > > ..............;>>>>>>>>>>>>///////////////////////////////////////...........>>> +00:00:26 v #6240 > > >>>>>>>///////////////.............>>>>>>////................................... +00:00:26 v #6241 > > │ +00:00:26 v #6242 > > ................>>>>>>>>>>>>>////////////////////////////////////............... +00:00:26 v #6243 > > >>>>>>>>>>//////////.................>>>>>/..................................... +00:00:26 v #6244 > > │ +00:00:26 v #6245 > > ..................>>>>>>>>>>>>>>///////////////////////////////................. +00:00:26 v #6246 > > .\>>>>>>>>>////////...................=......................................... +00:00:26 v #6247 > > │ +00:00:26 v #6248 > > ....................\>>>>>>>>>>>>>////////////////////////////.................. +00:00:26 v #6249 > > ....>>>>>>>>>////............................................................... +00:00:26 v #6250 > > │ +00:00:26 v #6251 > > .......................>>>>>>>>>>>>>/////////////////////////................... +00:00:26 v #6252 > > ......>>>>>>>>>/................................................................ +00:00:26 v #6253 > > │ +00:00:26 v #6254 > > .........................>>>>>>>>>>>>>/////////////////////..................... +00:00:26 v #6255 > > ................................................................................ +00:00:26 v #6256 > > │ +00:00:26 v #6257 > > ...........................>>>>>>>>>>>>>//////////////////...................... +00:00:26 v #6258 > > ................................................................................ +00:00:26 v #6259 > > │ +00:00:26 v #6260 > > .............................>>>>>>>>>>>>>///////////////....................... +00:00:26 v #6261 > > ................................................................................ +00:00:26 v #6262 > > │ +00:00:26 v #6263 > > ...............................>>>>>>>>>>>>>>//////////......................... +00:00:26 v #6264 > > ................................................................................ +00:00:26 v #6265 > > │ +00:00:26 v #6266 > > ..................................>>>>>>>>>>>>>///////.......................... +00:00:26 v #6267 > > ................................................................................ +00:00:26 v #6268 > > │ +00:00:26 v #6269 > > ....................................=>>>>>>>>>>>>////........................... +00:00:26 v #6270 > > ................................................................................ +00:00:26 v #6271 > > │ +00:00:26 v #6272 > > ............................................=>>>>>/............................. +00:00:26 v #6273 > > ................................................................................ +00:00:26 v #6274 > > │ +00:00:26 v #6275 > > ................................................................................ +00:00:26 v #6276 > > ................................................................................ +00:00:26 v #6277 > > │ +00:00:26 v #6278 > > ................................................................................ +00:00:26 v #6279 > > ................................................................................ +00:00:26 v #6280 > > │ +00:00:26 v #6281 > > ................................................................................ +00:00:26 v #6282 > > ................................................................................ +00:00:26 v #6283 > > │ +00:00:26 v #6284 > > ................................................................................ +00:00:26 v #6285 > > ................................................................................ +00:00:26 v #6286 > > │ +00:00:26 v #6287 > > ................................................................................ +00:00:26 v #6288 > > ................................................................................ +00:00:26 v #6289 > > │ +00:00:26 v #6290 > > ................................................................................ +00:00:26 v #6291 > > ................................................................................ +00:00:26 v #6292 > > │ +00:00:26 v #6293 > > ................................................................................ +00:00:26 v #6294 > > ................................................................................ +00:00:26 v #6295 > > │ +00:00:26 v #6296 > > ................................................................................ +00:00:26 v #6297 > > ................................................................................ +00:00:26 v #6298 > > │ +00:00:26 v #6299 > > ................................................................................ +00:00:26 v #6300 > > ................................................................................ +00:00:26 v #6301 > > │ +00:00:26 v #6302 > > │ +00:00:26 v #6303 > > ................................................................................ +00:00:26 v #6304 > > ................................................................................ +00:00:26 v #6305 > > │ +00:00:26 v #6306 > > ................................................................................ +00:00:26 v #6307 > > ................................................................................ +00:00:26 v #6308 > > │ +00:00:26 v #6309 > > ................................................................................ +00:00:26 v #6310 > > ................................................................................ +00:00:26 v #6311 > > │ +00:00:26 v #6312 > > ................................................................................ +00:00:26 v #6313 > > ................................................................................ +00:00:26 v #6314 > > │ +00:00:26 v #6315 > > ................................................................................ +00:00:26 v #6316 > > ................................................................................ +00:00:26 v #6317 > > │ +00:00:26 v #6318 > > ................................................................................ +00:00:26 v #6319 > > ................................................................................ +00:00:26 v #6320 > > │ +00:00:26 v #6321 > > ................................................................................ +00:00:26 v #6322 > > ................................................................................ +00:00:26 v #6323 > > │ +00:00:26 v #6324 > > ...........................................;/<.................................. +00:00:26 v #6325 > > ................................................................................ +00:00:26 v #6326 > > │ +00:00:26 v #6327 > > .........................................;;////<................................ +00:00:26 v #6328 > > ................................................................................ +00:00:26 v #6329 > > │ +00:00:26 v #6330 > > .......................................;;////////<.............................. +00:00:26 v #6331 > > ................................................................................ +00:00:26 v #6332 > > │ +00:00:26 v #6333 > > .....................................;;////////////<............................ +00:00:26 v #6334 > > ................................................................................ +00:00:26 v #6335 > > │ +00:00:26 v #6336 > > ...................................;;;///////////////<.......................... +00:00:26 v #6337 > > ................................................................................ +00:00:26 v #6338 > > │ +00:00:26 v #6339 > > .................................;;////////////////////<........................ +00:00:26 v #6340 > > ................................................................................ +00:00:26 v #6341 > > │ +00:00:26 v #6342 > > ................................;;///////////////////////<...................... +00:00:26 v #6343 > > ................................................................................ +00:00:26 v #6344 > > │ +00:00:26 v #6345 > > ..............................;;///////////////////////////<.................... +00:00:26 v #6346 > > ................................................................................ +00:00:26 v #6347 > > │ +00:00:26 v #6348 > > ............................;;///////////////////////////////<.................. +00:00:26 v #6349 > > ..........;;//.................................................................. +00:00:26 v #6350 > > │ +00:00:26 v #6351 > > ..........................;;;//////////////////////////////////................. +00:00:26 v #6352 > > .......;;;//////................................................................ +00:00:26 v #6353 > > │ +00:00:26 v #6354 > > .........................;;//////////////////////////////////////............... +00:00:26 v #6355 > > .....;;;//////////.............................................................. +00:00:26 v #6356 > > │ +00:00:26 v #6357 > > .......................;;//////////////////////////////////////////<............ +00:00:26 v #6358 > > ...;;;;/////////////....................;/...................................... +00:00:26 v #6359 > > │ +00:00:26 v #6360 > > .....................;;//////////////////////////////////////////////........... +00:00:26 v #6361 > > .;;;;/////////////////...............;;;////.................................... +00:00:26 v #6362 > > │ +00:00:26 v #6363 > > ...................;;;///////////////////////////////////////////////........... +00:00:26 v #6364 > > ;;;;////////////////////...........;;;////////.................................. +00:00:26 v #6365 > > │ +00:00:26 v #6366 > > ..................;;>>>>////////////////////////////////////////////..........;; +00:00:26 v #6367 > > ;;;>////////////////////..........;;;//////////................................. +00:00:26 v #6368 > > │ +00:00:26 v #6369 > > ................;;>>>>>>>>////////////////////////////////////////...........;;; +00:00:26 v #6370 > > >>>>>>/////////////////..........;;>>>>///////.................................. +00:00:26 v #6371 > > │ +00:00:26 v #6372 > > ..............;;>>>>>>>>>>>>/////////////////////////////////////...........;>>> +00:00:26 v #6373 > > >>>>>>>>/////////////.............>>>>>>>>///................................... +00:00:26 v #6374 > > │ +00:00:26 v #6375 > > ..............>>>>>>>>>>>>>>>>>/////////////////////////////////...............> +00:00:26 v #6376 > > >>>>>>>>>>//////////................\>>>>>>/.................................... +00:00:26 v #6377 > > │ +00:00:26 v #6378 > > ................\>>>>>>>>>>>>>>>>//////////////////////////////................. +00:00:26 v #6379 > > .>>>>>>>>>>>///////....................=........................................ +00:00:26 v #6380 > > │ +00:00:26 v #6381 > > ...................>>>>>>>>>>>>>>>>///////////////////////////.................. +00:00:26 v #6382 > > ...>>>>>>>>>>>>///.............................................................. +00:00:26 v #6383 > > │ +00:00:26 v #6384 > > .....................\>>>>>>>>>>>>>>>>///////////////////////................... +00:00:26 v #6385 > > ......>>>>>>>>>>................................................................ +00:00:26 v #6386 > > │ +00:00:26 v #6387 > > ........................>>>>>>>>>>>>>>>>////////////////////.................... +00:00:26 v #6388 > > ................................................................................ +00:00:26 v #6389 > > │ +00:00:26 v #6390 > > ..........................>>>>>>>>>>>>>>>>/////////////////..................... +00:00:26 v #6391 > > ................................................................................ +00:00:26 v #6392 > > │ +00:00:26 v #6393 > > .............................>>>>>>>>>>>>>>>>/////////////...................... +00:00:26 v #6394 > > ................................................................................ +00:00:26 v #6395 > > │ +00:00:26 v #6396 > > ...............................>>>>>>>>>>>>>>>>/////////........................ +00:00:26 v #6397 > > ................................................................................ +00:00:26 v #6398 > > │ +00:00:26 v #6399 > > ..................................>>>>>>>>>>>>>>>>/////......................... +00:00:26 v #6400 > > ................................................................................ +00:00:26 v #6401 > > │ +00:00:26 v #6402 > > ....................................=>>>>>>>>>>>>>>>//.......................... +00:00:26 v #6403 > > ................................................................................ +00:00:26 v #6404 > > │ +00:00:26 v #6405 > > .................................................>>>>........................... +00:00:26 v #6406 > > ................................................................................ +00:00:26 v #6407 > > │ +00:00:26 v #6408 > > ................................................................................ +00:00:26 v #6409 > > ................................................................................ +00:00:26 v #6410 > > │ +00:00:26 v #6411 > > ................................................................................ +00:00:26 v #6412 > > ................................................................................ +00:00:26 v #6413 > > │ +00:00:26 v #6414 > > ................................................................................ +00:00:26 v #6415 > > ................................................................................ +00:00:26 v #6416 > > │ +00:00:26 v #6417 > > ................................................................................ +00:00:26 v #6418 > > ................................................................................ +00:00:26 v #6419 > > │ +00:00:26 v #6420 > > ................................................................................ +00:00:26 v #6421 > > ................................................................................ +00:00:26 v #6422 > > │ +00:00:26 v #6423 > > ................................................................................ +00:00:26 v #6424 > > ................................................................................ +00:00:26 v #6425 > > │ +00:00:26 v #6426 > > ................................................................................ +00:00:26 v #6427 > > ................................................................................ +00:00:26 v #6428 > > │ +00:00:26 v #6429 > > ................................................................................ +00:00:26 v #6430 > > ................................................................................ +00:00:26 v #6431 > > │ +00:00:26 v #6432 > > ................................................................................ +00:00:26 v #6433 > > ................................................................................ +00:00:26 v #6434 > > │ +00:00:26 v #6435 > > │ +00:00:26 v #6436 > > ................................................................................ +00:00:26 v #6437 > > ................................................................................ +00:00:26 v #6438 > > │ +00:00:26 v #6439 > > ................................................................................ +00:00:26 v #6440 > > ................................................................................ +00:00:26 v #6441 > > │ +00:00:26 v #6442 > > ................................................................................ +00:00:26 v #6443 > > ................................................................................ +00:00:26 v #6444 > > │ +00:00:26 v #6445 > > ................................................................................ +00:00:26 v #6446 > > ................................................................................ +00:00:26 v #6447 > > │ +00:00:26 v #6448 > > ................................................................................ +00:00:26 v #6449 > > ................................................................................ +00:00:26 v #6450 > > │ +00:00:26 v #6451 > > ................................................................................ +00:00:26 v #6452 > > ................................................................................ +00:00:26 v #6453 > > │ +00:00:26 v #6454 > > ................................................................................ +00:00:26 v #6455 > > ................................................................................ +00:00:26 v #6456 > > │ +00:00:26 v #6457 > > ..........................................;//................................... +00:00:26 v #6458 > > ................................................................................ +00:00:26 v #6459 > > │ +00:00:26 v #6460 > > ........................................;;/////................................. +00:00:26 v #6461 > > ................................................................................ +00:00:26 v #6462 > > │ +00:00:26 v #6463 > > ......................................;;/////////............................... +00:00:26 v #6464 > > ................................................................................ +00:00:26 v #6465 > > │ +00:00:26 v #6466 > > ....................................;;;////////////............................. +00:00:26 v #6467 > > ................................................................................ +00:00:26 v #6468 > > │ +00:00:26 v #6469 > > ..................................;;;////////////////........................... +00:00:26 v #6470 > > ................................................................................ +00:00:26 v #6471 > > │ +00:00:26 v #6472 > > ................................;;;;///////////////////<........................ +00:00:26 v #6473 > > ................................................................................ +00:00:26 v #6474 > > │ +00:00:26 v #6475 > > ..............................;;;;///////////////////////<...................... +00:00:26 v #6476 > > ................................................................................ +00:00:26 v #6477 > > │ +00:00:26 v #6478 > > .............................;;;;//////////////////////////<.................... +00:00:26 v #6479 > > ................................................................................ +00:00:26 v #6480 > > │ +00:00:26 v #6481 > > ...........................;;;;///////////////////////////////.................. +00:00:26 v #6482 > > .........;;;//.................................................................. +00:00:26 v #6483 > > │ +00:00:26 v #6484 > > ..........................;;;;//////////////////////////////////................ +00:00:26 v #6485 > > ......;;;;//////................................................................ +00:00:26 v #6486 > > │ +00:00:26 v #6487 > > ........................;;;;//////////////////////////////////////.............. +00:00:26 v #6488 > > ....;;;;;/////////.............................................................. +00:00:26 v #6489 > > │ +00:00:26 v #6490 > > ......................;;;;;/////////////////////////////////////////............ +00:00:26 v #6491 > > ...;;;;/////////////<..................<;<...................................... +00:00:26 v #6492 > > │ +00:00:26 v #6493 > > .....................;;;;///////////////////////////////////////////............ +00:00:26 v #6494 > > .;;;;;/////////////////..............;;;////.................................... +00:00:26 v #6495 > > │ +00:00:26 v #6496 > > ...................;;;;;////////////////////////////////////////////............ +00:00:26 v #6497 > > ;;;;////////////////////...........;;;;///////.................................. +00:00:26 v #6498 > > │ +00:00:26 v #6499 > > ..................;;;;;>///////////////////////////////////////////...........;; +00:00:26 v #6500 > > ;;;>////////////////////..........;;;//////////................................. +00:00:26 v #6501 > > │ +00:00:26 v #6502 > > ................;;;;;>>>>>////////////////////////////////////////...........;;; +00:00:26 v #6503 > > ;;>>>>/////////////////..........;;;>>>>//////.................................. +00:00:26 v #6504 > > │ +00:00:26 v #6505 > > ...............;;;>>>>>>>>>>>////////////////////////////////////...........;;>> +00:00:26 v #6506 > > >>>>>>>>>/////////////............>>>>>>>>///................................... +00:00:26 v #6507 > > │ +00:00:26 v #6508 > > .............;;;>>>>>>>>>>>>>>>>////////////////////////////////..............>> +00:00:26 v #6509 > > >>>>>>>>>>>/////////................>>>>>>>/.................................... +00:00:26 v #6510 > > │ +00:00:26 v #6511 > > ..............\>>>>>>>>>>>>>>>>>>>/////////////////////////////................. +00:00:26 v #6512 > > .>>>>>>>>>>>>>/////....................>........................................ +00:00:26 v #6513 > > │ +00:00:26 v #6514 > > .................>>>>>>>>>>>>>>>>>>>>/////////////////////////.................. +00:00:26 v #6515 > > ...>>>>>>>>>>>>>//.............................................................. +00:00:26 v #6516 > > │ +00:00:26 v #6517 > > ....................>>>>>>>>>>>>>>>>>>>>/////////////////////................... +00:00:26 v #6518 > > ......>>>>>>>>>>>............................................................... +00:00:26 v #6519 > > │ +00:00:26 v #6520 > > .......................>>>>>>>>>>>>>>>>>>>//////////////////.................... +00:00:26 v #6521 > > ................................................................................ +00:00:26 v #6522 > > │ +00:00:26 v #6523 > > ..........................>>>>>>>>>>>>>>>>>>>//////////////..................... +00:00:26 v #6524 > > ................................................................................ +00:00:26 v #6525 > > │ +00:00:26 v #6526 > > ............................>>>>>>>>>>>>>>>>>>>>///////////..................... +00:00:26 v #6527 > > ................................................................................ +00:00:26 v #6528 > > │ +00:00:26 v #6529 > > ...............................>>>>>>>>>>>>>>>>>>>////////...................... +00:00:26 v #6530 > > ................................................................................ +00:00:26 v #6531 > > │ +00:00:26 v #6532 > > ..................................>>>>>>>>>>>>>>>>>>>////....................... +00:00:26 v #6533 > > ................................................................................ +00:00:26 v #6534 > > │ +00:00:26 v #6535 > > .....................................>>>>>>>>>>>>>>>>>>/........................ +00:00:26 v #6536 > > ................................................................................ +00:00:26 v #6537 > > │ +00:00:26 v #6538 > > ................................................................................ +00:00:26 v #6539 > > ................................................................................ +00:00:26 v #6540 > > │ +00:00:26 v #6541 > > ................................................................................ +00:00:26 v #6542 > > ................................................................................ +00:00:26 v #6543 > > │ +00:00:26 v #6544 > > ................................................................................ +00:00:26 v #6545 > > ................................................................................ +00:00:26 v #6546 > > │ +00:00:26 v #6547 > > ................................................................................ +00:00:26 v #6548 > > ................................................................................ +00:00:26 v #6549 > > │ +00:00:26 v #6550 > > ................................................................................ +00:00:26 v #6551 > > ................................................................................ +00:00:26 v #6552 > > │ +00:00:26 v #6553 > > ................................................................................ +00:00:26 v #6554 > > ................................................................................ +00:00:26 v #6555 > > │ +00:00:26 v #6556 > > ................................................................................ +00:00:26 v #6557 > > ................................................................................ +00:00:26 v #6558 > > │ +00:00:26 v #6559 > > ................................................................................ +00:00:26 v #6560 > > ................................................................................ +00:00:26 v #6561 > > │ +00:00:26 v #6562 > > ................................................................................ +00:00:26 v #6563 > > ................................................................................ +00:00:26 v #6564 > > │ +00:00:26 v #6565 > > ................................................................................ +00:00:26 v #6566 > > ................................................................................ +00:00:26 v #6567 > > │ +00:00:26 v #6568 > > │ +00:00:26 v #6569 > > ................................................................................ +00:00:26 v #6570 > > ................................................................................ +00:00:26 v #6571 > > │ +00:00:26 v #6572 > > ................................................................................ +00:00:26 v #6573 > > ................................................................................ +00:00:26 v #6574 > > │ +00:00:26 v #6575 > > ................................................................................ +00:00:26 v #6576 > > ................................................................................ +00:00:26 v #6577 > > │ +00:00:26 v #6578 > > ................................................................................ +00:00:26 v #6579 > > ................................................................................ +00:00:26 v #6580 > > │ +00:00:26 v #6581 > > ................................................................................ +00:00:26 v #6582 > > ................................................................................ +00:00:26 v #6583 > > │ +00:00:26 v #6584 > > ................................................................................ +00:00:26 v #6585 > > ................................................................................ +00:00:26 v #6586 > > │ +00:00:26 v #6587 > > ................................................................................ +00:00:26 v #6588 > > ................................................................................ +00:00:26 v #6589 > > │ +00:00:26 v #6590 > > .........................................;;/.................................... +00:00:26 v #6591 > > ................................................................................ +00:00:26 v #6592 > > │ +00:00:26 v #6593 > > .......................................;;/////<................................. +00:00:26 v #6594 > > ................................................................................ +00:00:26 v #6595 > > │ +00:00:26 v #6596 > > .....................................;;;/////////............................... +00:00:26 v #6597 > > ................................................................................ +00:00:26 v #6598 > > │ +00:00:26 v #6599 > > ...................................;;;;////////////............................. +00:00:26 v #6600 > > ................................................................................ +00:00:26 v #6601 > > │ +00:00:26 v #6602 > > .................................;;;;;///////////////........................... +00:00:26 v #6603 > > ................................................................................ +00:00:26 v #6604 > > │ +00:00:26 v #6605 > > ...............................;;;;;///////////////////<........................ +00:00:26 v #6606 > > ................................................................................ +00:00:26 v #6607 > > │ +00:00:26 v #6608 > > .............................;;;;;;//////////////////////<...................... +00:00:26 v #6609 > > ................................................................................ +00:00:26 v #6610 > > │ +00:00:26 v #6611 > > ...........................;;;;;;;//////////////////////////.................... +00:00:26 v #6612 > > ................................................................................ +00:00:26 v #6613 > > │ +00:00:26 v #6614 > > ..........................;;;;;;//////////////////////////////.................. +00:00:26 v #6615 > > .........;;//<.................................................................. +00:00:26 v #6616 > > │ +00:00:26 v #6617 > > .........................;;;;;;/////////////////////////////////................ +00:00:26 v #6618 > > ......;;;;//////................................................................ +00:00:26 v #6619 > > │ +00:00:26 v #6620 > > .......................;;;;;;;////////////////////////////////////<............. +00:00:26 v #6621 > > ...;;;;;;/////////<............................................................. +00:00:26 v #6622 > > │ +00:00:26 v #6623 > > ......................;;;;;;;///////////////////////////////////////............ +00:00:26 v #6624 > > ..;;;;;//////////////..................;;....................................... +00:00:26 v #6625 > > │ +00:00:26 v #6626 > > .....................;;;;;;////////////////////////////////////////............. +00:00:26 v #6627 > > .;;;;;;////////////////.............;;;;////.................................... +00:00:26 v #6628 > > │ +00:00:26 v #6629 > > ...................;;;;;;;////////////////////////////////////////.............. +00:00:26 v #6630 > > ;;;;;;//////////////////...........;;;;///////<................................. +00:00:26 v #6631 > > │ +00:00:26 v #6632 > > ..................;;;;;;;/////////////////////////////////////////............\; +00:00:26 v #6633 > > ;;;;///////////////////...........;;;;/////////................................. +00:00:26 v #6634 > > │ +00:00:26 v #6635 > > .................;;;;;;;>>>//////////////////////////////////////............;;; +00:00:26 v #6636 > > ;;;>>>>///////////////...........;;;;>>>//////.................................. +00:00:26 v #6637 > > │ +00:00:26 v #6638 > > ...............;;;;;;>>>>>>>>>>/////////////////////////////////............;;;> +00:00:26 v #6639 > > >>>>>>>>>////////////............\>>>>>>>>>//................................... +00:00:26 v #6640 > > │ +00:00:26 v #6641 > > ..............;;;;>>>>>>>>>>>>>>>///////////////////////////////.............>>> +00:00:26 v #6642 > > >>>>>>>>>>>>/////////...............>>>>>>>>.................................... +00:00:26 v #6643 > > │ +00:00:26 v #6644 > > .............;;>>>>>>>>>>>>>>>>>>>>>///////////////////////////................. +00:00:26 v #6645 > > >>>>>>>>>>>>>>>/////...................>........................................ +00:00:26 v #6646 > > │ +00:00:26 v #6647 > > ...............>>>>>>>>>>>>>>>>>>>>>>>>///////////////////////.................. +00:00:26 v #6648 > > ...>>>>>>>>>>>>>>>/............................................................. +00:00:26 v #6649 > > │ +00:00:26 v #6650 > > ..................>>>>>>>>>>>>>>>>>>>>>>>>////////////////////.................. +00:00:26 v #6651 > > ......>>>>>>>>>>>/.............................................................. +00:00:26 v #6652 > > │ +00:00:26 v #6653 > > .....................>>>>>>>>>>>>>>>>>>>>>>>>////////////////................... +00:00:26 v #6654 > > ................................................................................ +00:00:26 v #6655 > > │ +00:00:26 v #6656 > > ........................>>>>>>>>>>>>>>>>>>>>>>>>////////////.................... +00:00:26 v #6657 > > ................................................................................ +00:00:26 v #6658 > > │ +00:00:26 v #6659 > > ............................>>>>>>>>>>>>>>>>>>>>>>>/////////.................... +00:00:26 v #6660 > > ................................................................................ +00:00:26 v #6661 > > │ +00:00:26 v #6662 > > ...............................>>>>>>>>>>>>>>>>>>>>>>>/////..................... +00:00:26 v #6663 > > ................................................................................ +00:00:26 v #6664 > > │ +00:00:26 v #6665 > > ..................................>>>>>>>>>>>>>>>>>>>>>>//...................... +00:00:26 v #6666 > > ................................................................................ +00:00:26 v #6667 > > │ +00:00:26 v #6668 > > .....................................>>>>>>>>>>>>>>>>>>>>/...................... +00:00:26 v #6669 > > ................................................................................ +00:00:26 v #6670 > > │ +00:00:26 v #6671 > > ................................................................................ +00:00:26 v #6672 > > ................................................................................ +00:00:26 v #6673 > > │ +00:00:26 v #6674 > > ................................................................................ +00:00:26 v #6675 > > ................................................................................ +00:00:26 v #6676 > > │ +00:00:26 v #6677 > > ................................................................................ +00:00:26 v #6678 > > ................................................................................ +00:00:26 v #6679 > > │ +00:00:26 v #6680 > > ................................................................................ +00:00:26 v #6681 > > ................................................................................ +00:00:26 v #6682 > > │ +00:00:26 v #6683 > > ................................................................................ +00:00:26 v #6684 > > ................................................................................ +00:00:26 v #6685 > > │ +00:00:26 v #6686 > > ................................................................................ +00:00:26 v #6687 > > ................................................................................ +00:00:26 v #6688 > > │ +00:00:26 v #6689 > > ................................................................................ +00:00:26 v #6690 > > ................................................................................ +00:00:26 v #6691 > > │ +00:00:26 v #6692 > > ................................................................................ +00:00:26 v #6693 > > ................................................................................ +00:00:26 v #6694 > > │ +00:00:26 v #6695 > > ................................................................................ +00:00:26 v #6696 > > ................................................................................ +00:00:26 v #6697 > > │ +00:00:26 v #6698 > > ................................................................................ +00:00:26 v #6699 > > ................................................................................ +00:00:26 v #6700 > > │ +00:00:26 v #6701 > > │ +00:00:26 v #6702 > > ................................................................................ +00:00:26 v #6703 > > ................................................................................ +00:00:26 v #6704 > > │ +00:00:26 v #6705 > > ................................................................................ +00:00:26 v #6706 > > ................................................................................ +00:00:26 v #6707 > > │ +00:00:26 v #6708 > > ................................................................................ +00:00:26 v #6709 > > ................................................................................ +00:00:26 v #6710 > > │ +00:00:26 v #6711 > > ................................................................................ +00:00:26 v #6712 > > ................................................................................ +00:00:26 v #6713 > > │ +00:00:26 v #6714 > > ................................................................................ +00:00:26 v #6715 > > ................................................................................ +00:00:26 v #6716 > > │ +00:00:26 v #6717 > > ................................................................................ +00:00:26 v #6718 > > ................................................................................ +00:00:26 v #6719 > > │ +00:00:26 v #6720 > > ................................................................................ +00:00:26 v #6721 > > ................................................................................ +00:00:26 v #6722 > > │ +00:00:26 v #6723 > > ........................................;;/<.................................... +00:00:26 v #6724 > > ................................................................................ +00:00:26 v #6725 > > │ +00:00:26 v #6726 > > ......................................;;;/////.................................. +00:00:26 v #6727 > > ................................................................................ +00:00:26 v #6728 > > │ +00:00:26 v #6729 > > ....................................;;;;////////................................ +00:00:26 v #6730 > > ................................................................................ +00:00:26 v #6731 > > │ +00:00:26 v #6732 > > ..................................;;;;;////////////............................. +00:00:26 v #6733 > > ................................................................................ +00:00:26 v #6734 > > │ +00:00:26 v #6735 > > ................................;;;;;;///////////////........................... +00:00:26 v #6736 > > ................................................................................ +00:00:26 v #6737 > > │ +00:00:26 v #6738 > > ..............................;;;;;;;//////////////////......................... +00:00:26 v #6739 > > ................................................................................ +00:00:26 v #6740 > > │ +00:00:26 v #6741 > > ............................;;;;;;;;//////////////////////...................... +00:00:26 v #6742 > > ................................................................................ +00:00:26 v #6743 > > │ +00:00:26 v #6744 > > ..........................;;;;;;;;//////////////////////////.................... +00:00:26 v #6745 > > ................................................................................ +00:00:26 v #6746 > > │ +00:00:26 v #6747 > > .........................;;;;;;;;/////////////////////////////<................. +00:00:26 v #6748 > > ........;;;//................................................................... +00:00:26 v #6749 > > │ +00:00:26 v #6750 > > ........................;;;;;;;;////////////////////////////////<............... +00:00:26 v #6751 > > .....;;;;;//////................................................................ +00:00:26 v #6752 > > │ +00:00:26 v #6753 > > .......................;;;;;;;;////////////////////////////////////............. +00:00:26 v #6754 > > ..<;;;;;;/////////<............................................................. +00:00:26 v #6755 > > │ +00:00:26 v #6756 > > .....................\;;;;;;;;/////////////////////////////////////............. +00:00:26 v #6757 > > ..;;;;;;/////////////..................;;<...................................... +00:00:26 v #6758 > > │ +00:00:26 v #6759 > > ....................;;;;;;;;;/////////////////////////////////////.............. +00:00:26 v #6760 > > \;;;;;;/////////////////............;;;;////.................................... +00:00:26 v #6761 > > │ +00:00:26 v #6762 > > ...................;;;;;;;;;//////////////////////////////////////.............. +00:00:26 v #6763 > > ;;;;;;/////////////////............;;;;////////................................. +00:00:26 v #6764 > > │ +00:00:26 v #6765 > > ..................;;;;;;;;;//////////////////////////////////////.............\; +00:00:26 v #6766 > > ;;;;;//////////////////...........;;;;/////////................................. +00:00:26 v #6767 > > │ +00:00:26 v #6768 > > .................;;;;;;;;;;>/////////////////////////////////////............\;; +00:00:26 v #6769 > > ;;;;;>>///////////////...........;;;;;>>>/////.................................. +00:00:26 v #6770 > > │ +00:00:26 v #6771 > > ................;;;;;;;;>>>>>>>>////////////////////////////////............\;;; +00:00:26 v #6772 > > ;>>>>>>>>>////////////...........;>>>>>>>>>//................................... +00:00:26 v #6773 > > │ +00:00:26 v #6774 > > ...............;;;;;;>>>>>>>>>>>>>>/////////////////////////////............;>>> +00:00:26 v #6775 > > >>>>>>>>>>>>>////////...............>>>>>>>>/................................... +00:00:26 v #6776 > > │ +00:00:26 v #6777 > > ..............;;;;>>>>>>>>>>>>>>>>>>>>/////////////////////////................> +00:00:26 v #6778 > > >>>>>>>>>>>>>>>>////...................=>....................................... +00:00:26 v #6779 > > │ +00:00:26 v #6780 > > .............;>>>>>>>>>>>>>>>>>>>>>>>>>>>//////////////////////................. +00:00:26 v #6781 > > ..\>>>>>>>>>>>>>>>>............................................................. +00:00:26 v #6782 > > │ +00:00:26 v #6783 > > ................>>>>>>>>>>>>>>>>>>>>>>>>>>>>//////////////////.................. +00:00:26 v #6784 > > ......>>>>>>>>>=>............................................................... +00:00:26 v #6785 > > │ +00:00:26 v #6786 > > ....................>>>>>>>>>>>>>>>>>>>>>>>>>>>>//////////////.................. +00:00:26 v #6787 > > ................................................................................ +00:00:26 v #6788 > > │ +00:00:26 v #6789 > > .......................>>>>>>>>>>>>>>>>>>>>>>>>>>>///////////................... +00:00:26 v #6790 > > ................................................................................ +00:00:26 v #6791 > > │ +00:00:26 v #6792 > > ...........................>>>>>>>>>>>>>>>>>>>>>>>>>>>///////................... +00:00:26 v #6793 > > ................................................................................ +00:00:26 v #6794 > > │ +00:00:26 v #6795 > > ..............................>>>>>>>>>>>>>>>>>>>>>>>>>>>///.................... +00:00:26 v #6796 > > ................................................................................ +00:00:26 v #6797 > > │ +00:00:26 v #6798 > > ..................................>>>>>>>>>>>>>>>>>>>>>>>>>/.................... +00:00:26 v #6799 > > ................................................................................ +00:00:26 v #6800 > > │ +00:00:26 v #6801 > > ......................................>>>>>=>=>>................................ +00:00:26 v #6802 > > ................................................................................ +00:00:26 v #6803 > > │ +00:00:26 v #6804 > > ................................................................................ +00:00:26 v #6805 > > ................................................................................ +00:00:26 v #6806 > > │ +00:00:26 v #6807 > > ................................................................................ +00:00:26 v #6808 > > ................................................................................ +00:00:26 v #6809 > > │ +00:00:26 v #6810 > > ................................................................................ +00:00:26 v #6811 > > ................................................................................ +00:00:26 v #6812 > > │ +00:00:26 v #6813 > > ................................................................................ +00:00:26 v #6814 > > ................................................................................ +00:00:26 v #6815 > > │ +00:00:26 v #6816 > > ................................................................................ +00:00:26 v #6817 > > ................................................................................ +00:00:26 v #6818 > > │ +00:00:26 v #6819 > > ................................................................................ +00:00:26 v #6820 > > ................................................................................ +00:00:26 v #6821 > > │ +00:00:26 v #6822 > > ................................................................................ +00:00:26 v #6823 > > ................................................................................ +00:00:26 v #6824 > > │ +00:00:26 v #6825 > > ................................................................................ +00:00:26 v #6826 > > ................................................................................ +00:00:26 v #6827 > > │ +00:00:26 v #6828 > > ................................................................................ +00:00:26 v #6829 > > ................................................................................ +00:00:26 v #6830 > > │ +00:00:26 v #6831 > > ................................................................................ +00:00:26 v #6832 > > ................................................................................ +00:00:26 v #6833 > > │ +00:00:26 v #6834 > > │ +00:00:26 v #6835 > > ................................................................................ +00:00:26 v #6836 > > ................................................................................ +00:00:26 v #6837 > > │ +00:00:26 v #6838 > > ................................................................................ +00:00:26 v #6839 > > ................................................................................ +00:00:26 v #6840 > > │ +00:00:26 v #6841 > > ................................................................................ +00:00:26 v #6842 > > ................................................................................ +00:00:26 v #6843 > > │ +00:00:26 v #6844 > > ................................................................................ +00:00:26 v #6845 > > ................................................................................ +00:00:26 v #6846 > > │ +00:00:26 v #6847 > > ................................................................................ +00:00:26 v #6848 > > ................................................................................ +00:00:26 v #6849 > > │ +00:00:26 v #6850 > > ................................................................................ +00:00:26 v #6851 > > ................................................................................ +00:00:26 v #6852 > > │ +00:00:26 v #6853 > > ................................................................................ +00:00:26 v #6854 > > ................................................................................ +00:00:26 v #6855 > > │ +00:00:26 v #6856 > > .......................................;;//..................................... +00:00:26 v #6857 > > ................................................................................ +00:00:26 v #6858 > > │ +00:00:26 v #6859 > > .....................................;;;/////<.................................. +00:00:26 v #6860 > > ................................................................................ +00:00:26 v #6861 > > │ +00:00:26 v #6862 > > ...................................;;;;/////////................................ +00:00:26 v #6863 > > ................................................................................ +00:00:26 v #6864 > > │ +00:00:26 v #6865 > > .................................;;;;;;///////////<............................. +00:00:26 v #6866 > > ................................................................................ +00:00:26 v #6867 > > │ +00:00:26 v #6868 > > ...............................;;;;;;;///////////////........................... +00:00:26 v #6869 > > ................................................................................ +00:00:26 v #6870 > > │ +00:00:26 v #6871 > > .............................;;;;;;;;//////////////////......................... +00:00:26 v #6872 > > ................................................................................ +00:00:26 v #6873 > > │ +00:00:26 v #6874 > > ...........................;;;;;;;;;//////////////////////...................... +00:00:26 v #6875 > > ................................................................................ +00:00:26 v #6876 > > │ +00:00:26 v #6877 > > .........................;;;;;;;;;;/////////////////////////.................... +00:00:26 v #6878 > > ................................................................................ +00:00:26 v #6879 > > │ +00:00:26 v #6880 > > ........................;;;;;;;;;;;///////////////////////////<................. +00:00:26 v #6881 > > ........;;;//................................................................... +00:00:26 v #6882 > > │ +00:00:26 v #6883 > > .......................;;;;;;;;;;;///////////////////////////////............... +00:00:26 v #6884 > > .....;;;;;//////................................................................ +00:00:26 v #6885 > > │ +00:00:26 v #6886 > > ......................;;;;;;;;;;;/////////////////////////////////.............. +00:00:26 v #6887 > > ..;;;;;;;/////////<............................................................. +00:00:26 v #6888 > > │ +00:00:26 v #6889 > > .....................;;;;;;;;;;;//////////////////////////////////.............. +00:00:26 v #6890 > > .;;;;;;;/////////////..................;;<...................................... +00:00:26 v #6891 > > │ +00:00:26 v #6892 > > ....................;;;;;;;;;;;//////////////////////////////////............... +00:00:26 v #6893 > > ;;;;;;;;///////////////.............;;;;////<................................... +00:00:26 v #6894 > > │ +00:00:26 v #6895 > > ...................;;;;;;;;;;;;//////////////////////////////////..............; +00:00:26 v #6896 > > ;;;;;;;////////////////............;;;;////////................................. +00:00:26 v #6897 > > │ +00:00:26 v #6898 > > ..................;;;;;;;;;;;;///////////////////////////////////..............; +00:00:26 v #6899 > > ;;;;;;/////////////////...........;;;;;////////................................. +00:00:26 v #6900 > > │ +00:00:26 v #6901 > > .................;;;;;;;;;;;;///////////////////////////////////..............;; +00:00:26 v #6902 > > ;;;;;;>>//////////////...........;;;;;>>>/////.................................. +00:00:26 v #6903 > > │ +00:00:26 v #6904 > > ................;;;;;;;;;;;;>>>>>///////////////////////////////.............;;; +00:00:26 v #6905 > > ;;>>>>>>>>>///////////...........;>>>>>>>>>>//.................................. +00:00:26 v #6906 > > │ +00:00:26 v #6907 > > ...............;;;;;;;;;>>>>>>>>>>>>////////////////////////////............\;;> +00:00:26 v #6908 > > >>>>>>>>>>>>>>///////...............>>>>>>>>>................................... +00:00:26 v #6909 > > │ +00:00:26 v #6910 > > ..............;;;;;;;>>>>>>>>>>>>>>>>>>>///////////////////////...............\> +00:00:26 v #6911 > > >>>>>>>>>>>>>>>>>>///..................>=....................................... +00:00:26 v #6912 > > │ +00:00:26 v #6913 > > .............;;;;>>>>>>>>>>>>>>>>>>>>>>>>>>////////////////////................. +00:00:26 v #6914 > > ..>>>>>>>>>>>>>>>>>>............................................................ +00:00:26 v #6915 > > │ +00:00:26 v #6916 > > .............>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>/////////////////................. +00:00:26 v #6917 > > ......>>>>>>>>>>=............................................................... +00:00:26 v #6918 > > │ +00:00:26 v #6919 > > .................>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>////////////.................. +00:00:26 v #6920 > > ................................................................................ +00:00:26 v #6921 > > │ +00:00:26 v #6922 > > ......................>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>////////.................. +00:00:26 v #6923 > > ................................................................................ +00:00:26 v #6924 > > │ +00:00:26 v #6925 > > ..........................>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>/////.................. +00:00:26 v #6926 > > ................................................................................ +00:00:26 v #6927 > > │ +00:00:26 v #6928 > > ..............................>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>//.................. +00:00:26 v #6929 > > ................................................................................ +00:00:26 v #6930 > > │ +00:00:26 v #6931 > > ..................................>>>>>>>>>>>>>>>>>>>>>>>>>>>................... +00:00:26 v #6932 > > ................................................................................ +00:00:26 v #6933 > > │ +00:00:26 v #6934 > > ......................................>>>==..................................... +00:00:26 v #6935 > > ................................................................................ +00:00:26 v #6936 > > │ +00:00:26 v #6937 > > ................................................................................ +00:00:26 v #6938 > > ................................................................................ +00:00:26 v #6939 > > │ +00:00:26 v #6940 > > ................................................................................ +00:00:26 v #6941 > > ................................................................................ +00:00:26 v #6942 > > │ +00:00:26 v #6943 > > ................................................................................ +00:00:26 v #6944 > > ................................................................................ +00:00:26 v #6945 > > │ +00:00:26 v #6946 > > ................................................................................ +00:00:26 v #6947 > > ................................................................................ +00:00:26 v #6948 > > │ +00:00:26 v #6949 > > ................................................................................ +00:00:26 v #6950 > > ................................................................................ +00:00:26 v #6951 > > │ +00:00:26 v #6952 > > ................................................................................ +00:00:26 v #6953 > > ................................................................................ +00:00:26 v #6954 > > │ +00:00:26 v #6955 > > ................................................................................ +00:00:26 v #6956 > > ................................................................................ +00:00:26 v #6957 > > │ +00:00:26 v #6958 > > ................................................................................ +00:00:26 v #6959 > > ................................................................................ +00:00:26 v #6960 > > │ +00:00:26 v #6961 > > ................................................................................ +00:00:26 v #6962 > > ................................................................................ +00:00:26 v #6963 > > │ +00:00:26 v #6964 > > ................................................................................ +00:00:26 v #6965 > > ................................................................................ +00:00:26 v #6966 > > │ +00:00:26 v #6967 > > │ +00:00:26 v #6968 > > ................................................................................ +00:00:26 v #6969 > > ................................................................................ +00:00:26 v #6970 > > │ +00:00:26 v #6971 > > ................................................................................ +00:00:26 v #6972 > > ................................................................................ +00:00:26 v #6973 > > │ +00:00:26 v #6974 > > ................................................................................ +00:00:26 v #6975 > > ................................................................................ +00:00:26 v #6976 > > │ +00:00:26 v #6977 > > ................................................................................ +00:00:26 v #6978 > > ................................................................................ +00:00:26 v #6979 > > │ +00:00:26 v #6980 > > ................................................................................ +00:00:26 v #6981 > > ................................................................................ +00:00:26 v #6982 > > │ +00:00:26 v #6983 > > ................................................................................ +00:00:26 v #6984 > > ................................................................................ +00:00:26 v #6985 > > │ +00:00:26 v #6986 > > ................................................................................ +00:00:26 v #6987 > > ................................................................................ +00:00:26 v #6988 > > │ +00:00:26 v #6989 > > .......................................;;/<..................................... +00:00:26 v #6990 > > ................................................................................ +00:00:26 v #6991 > > │ +00:00:26 v #6992 > > ....................................<;;;/////................................... +00:00:26 v #6993 > > ................................................................................ +00:00:26 v #6994 > > │ +00:00:26 v #6995 > > ..................................;;;;;////////<................................ +00:00:26 v #6996 > > ................................................................................ +00:00:26 v #6997 > > │ +00:00:26 v #6998 > > ................................;;;;;;;///////////.............................. +00:00:26 v #6999 > > ................................................................................ +00:00:26 v #7000 > > │ +00:00:26 v #7001 > > ..............................;;;;;;;;//////////////<........................... +00:00:26 v #7002 > > ................................................................................ +00:00:26 v #7003 > > │ +00:00:26 v #7004 > > ............................;;;;;;;;;;/////////////////......................... +00:00:26 v #7005 > > ................................................................................ +00:00:26 v #7006 > > │ +00:00:26 v #7007 > > ..........................;;;;;;;;;;;////////////////////<...................... +00:00:26 v #7008 > > ................................................................................ +00:00:26 v #7009 > > │ +00:00:26 v #7010 > > ........................;;;;;;;;;;;;////////////////////////.................... +00:00:26 v #7011 > > ................................................................................ +00:00:26 v #7012 > > │ +00:00:26 v #7013 > > .......................;;;;;;;;;;;;;///////////////////////////................. +00:00:26 v #7014 > > ........;;///................................................................... +00:00:26 v #7015 > > │ +00:00:26 v #7016 > > ......................;;;;;;;;;;;;;//////////////////////////////............... +00:00:26 v #7017 > > .....;;;;;//////................................................................ +00:00:26 v #7018 > > │ +00:00:26 v #7019 > > .....................;;;;;;;;;;;;;;//////////////////////////////............... +00:00:26 v #7020 > > ..;;;;;;;//////////............................................................. +00:00:26 v #7021 > > │ +00:00:26 v #7022 > > ....................;;;;;;;;;;;;;;///////////////////////////////............... +00:00:26 v #7023 > > \;;;;;;;;////////////<.................;;....................................... +00:00:26 v #7024 > > │ +00:00:26 v #7025 > > ...................\;;;;;;;;;;;;;///////////////////////////////................ +00:00:26 v #7026 > > ;;;;;;;;///////////////............<;;;;////<................................... +00:00:26 v #7027 > > │ +00:00:26 v #7028 > > ...................;;;;;;;;;;;;;;///////////////////////////////...............; +00:00:26 v #7029 > > ;;;;;;;;///////////////...........\;;;;////////................................. +00:00:26 v #7030 > > │ +00:00:26 v #7031 > > ..................;;;;;;;;;;;;;;////////////////////////////////..............\; +00:00:26 v #7032 > > ;;;;;;;///////////////............;;;;;////////................................. +00:00:26 v #7033 > > │ +00:00:26 v #7034 > > .................;;;;;;;;;;;;;;;////////////////////////////////..............;; +00:00:26 v #7035 > > ;;;;;;;>//////////////...........\;;;;;>>>////.................................. +00:00:26 v #7036 > > │ +00:00:26 v #7037 > > ................;;;;;;;;;;;;;;;>>>//////////////////////////////.............;;; +00:00:26 v #7038 > > ;;;;>>>>>>>>//////////...........;;>>>>>>>>>>/.................................. +00:00:26 v #7039 > > │ +00:00:26 v #7040 > > ................;;;;;;;;;;;;>>>>>>>>>>//////////////////////////.............;;; +00:00:26 v #7041 > > >>>>>>>>>>>>>>>>/////..............\>>>>>>>>/................................... +00:00:26 v #7042 > > │ +00:00:26 v #7043 > > ...............;;;;;;;;;>>>>>>>>>>>>>>>>>>//////////////////////.............\>> +00:00:26 v #7044 > > >>>>>>>>>>>>>>>>>>>//..................\=....................................... +00:00:26 v #7045 > > │ +00:00:26 v #7046 > > ..............;;;;;;>>>>>>>>>>>>>>>>>>>>>>>>>>//////////////////................ +00:00:26 v #7047 > > .\>>>>>>>>>>>>>>>>>>/........................................................... +00:00:26 v #7048 > > │ +00:00:26 v #7049 > > .............;;;;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>/////////////................. +00:00:26 v #7050 > > ......>>>>>>>>>>................................................................ +00:00:26 v #7051 > > │ +00:00:26 v #7052 > > ...............>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>//////////................. +00:00:26 v #7053 > > ................................................................................ +00:00:26 v #7054 > > │ +00:00:26 v #7055 > > ...................\>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>//////................. +00:00:26 v #7056 > > ................................................................................ +00:00:26 v #7057 > > │ +00:00:26 v #7058 > > ........................>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>//................. +00:00:26 v #7059 > > ................................................................................ +00:00:26 v #7060 > > │ +00:00:26 v #7061 > > .............................>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>/................. +00:00:26 v #7062 > > ................................................................................ +00:00:26 v #7063 > > │ +00:00:26 v #7064 > > ..................................>>>>>>>>>>>>>>>>>>>>==........................ +00:00:26 v #7065 > > ................................................................................ +00:00:26 v #7066 > > │ +00:00:26 v #7067 > > .......................................>==...................................... +00:00:26 v #7068 > > ................................................................................ +00:00:26 v #7069 > > │ +00:00:26 v #7070 > > ................................................................................ +00:00:26 v #7071 > > ................................................................................ +00:00:26 v #7072 > > │ +00:00:26 v #7073 > > ................................................................................ +00:00:26 v #7074 > > ................................................................................ +00:00:26 v #7075 > > │ +00:00:26 v #7076 > > ................................................................................ +00:00:26 v #7077 > > ................................................................................ +00:00:26 v #7078 > > │ +00:00:26 v #7079 > > ................................................................................ +00:00:26 v #7080 > > ................................................................................ +00:00:26 v #7081 > > │ +00:00:26 v #7082 > > ................................................................................ +00:00:26 v #7083 > > ................................................................................ +00:00:26 v #7084 > > │ +00:00:26 v #7085 > > ................................................................................ +00:00:26 v #7086 > > ................................................................................ +00:00:26 v #7087 > > │ +00:00:26 v #7088 > > ................................................................................ +00:00:26 v #7089 > > ................................................................................ +00:00:26 v #7090 > > │ +00:00:26 v #7091 > > ................................................................................ +00:00:26 v #7092 > > ................................................................................ +00:00:26 v #7093 > > │ +00:00:26 v #7094 > > ................................................................................ +00:00:26 v #7095 > > ................................................................................ +00:00:26 v #7096 > > │ +00:00:26 v #7097 > > ................................................................................ +00:00:26 v #7098 > > ................................................................................ +00:00:26 v #7099 > > │ +00:00:26 v #7100 > > │ +00:00:26 v #7101 > > ................................................................................ +00:00:26 v #7102 > > ................................................................................ +00:00:26 v #7103 > > │ +00:00:26 v #7104 > > ................................................................................ +00:00:26 v #7105 > > ................................................................................ +00:00:26 v #7106 > > │ +00:00:26 v #7107 > > ................................................................................ +00:00:26 v #7108 > > ................................................................................ +00:00:26 v #7109 > > │ +00:00:26 v #7110 > > ................................................................................ +00:00:26 v #7111 > > ................................................................................ +00:00:26 v #7112 > > │ +00:00:26 v #7113 > > ................................................................................ +00:00:26 v #7114 > > ................................................................................ +00:00:26 v #7115 > > │ +00:00:26 v #7116 > > ................................................................................ +00:00:26 v #7117 > > ................................................................................ +00:00:26 v #7118 > > │ +00:00:26 v #7119 > > ................................................................................ +00:00:26 v #7120 > > ................................................................................ +00:00:26 v #7121 > > │ +00:00:26 v #7122 > > ......................................;;//...................................... +00:00:26 v #7123 > > ................................................................................ +00:00:26 v #7124 > > │ +00:00:26 v #7125 > > ....................................;;;;////.................................... +00:00:26 v #7126 > > ................................................................................ +00:00:26 v #7127 > > │ +00:00:26 v #7128 > > ..................................;;;;;////////................................. +00:00:26 v #7129 > > ................................................................................ +00:00:26 v #7130 > > │ +00:00:26 v #7131 > > ...............................<;;;;;;;///////////.............................. +00:00:26 v #7132 > > ................................................................................ +00:00:26 v #7133 > > │ +00:00:26 v #7134 > > .............................;;;;;;;;;//////////////............................ +00:00:26 v #7135 > > ................................................................................ +00:00:26 v #7136 > > │ +00:00:26 v #7137 > > ...........................;;;;;;;;;;;/////////////////......................... +00:00:26 v #7138 > > ................................................................................ +00:00:26 v #7139 > > │ +00:00:26 v #7140 > > .........................;;;;;;;;;;;;;///////////////////<...................... +00:00:26 v #7141 > > ................................................................................ +00:00:26 v #7142 > > │ +00:00:26 v #7143 > > .......................;;;;;;;;;;;;;;///////////////////////.................... +00:00:26 v #7144 > > ................................................................................ +00:00:26 v #7145 > > │ +00:00:26 v #7146 > > .....................\;;;;;;;;;;;;;;;//////////////////////////................. +00:00:26 v #7147 > > .......<;;//<................................................................... +00:00:26 v #7148 > > │ +00:00:26 v #7149 > > .....................;;;;;;;;;;;;;;;;///////////////////////////................ +00:00:26 v #7150 > > ....<;;;;;//////................................................................ +00:00:26 v #7151 > > │ +00:00:26 v #7152 > > ....................;;;;;;;;;;;;;;;;////////////////////////////................ +00:00:26 v #7153 > > ..;;;;;;;;/////////............................................................. +00:00:26 v #7154 > > │ +00:00:26 v #7155 > > ....................;;;;;;;;;;;;;;;;////////////////////////////................ +00:00:26 v #7156 > > ;;;;;;;;;/////////////.................;/....................................... +00:00:26 v #7157 > > │ +00:00:26 v #7158 > > ...................;;;;;;;;;;;;;;;;/////////////////////////////...............; +00:00:26 v #7159 > > ;;;;;;;;;/////////////.............<;;;;////<................................... +00:00:26 v #7160 > > │ +00:00:26 v #7161 > > ..................;;;;;;;;;;;;;;;;;/////////////////////////////...............; +00:00:26 v #7162 > > ;;;;;;;;//////////////............\;;;;;//////.................................. +00:00:26 v #7163 > > │ +00:00:26 v #7164 > > ..................;;;;;;;;;;;;;;;;;/////////////////////////////..............\; +00:00:26 v #7165 > > ;;;;;;;;//////////////............;;;;;///////.................................. +00:00:26 v #7166 > > │ +00:00:26 v #7167 > > .................;;;;;;;;;;;;;;;;;//////////////////////////////..............;; +00:00:26 v #7168 > > ;;;;;;;;>/////////////............;;;;;>>>////.................................. +00:00:26 v #7169 > > │ +00:00:26 v #7170 > > .................;;;;;;;;;;;;;;;;;>/////////////////////////////..............;; +00:00:26 v #7171 > > ;;;;;;>>>>>>>/////////...........;;;>>>>>>>>>/.................................. +00:00:26 v #7172 > > │ +00:00:26 v #7173 > > ................;;;;;;;;;;;;;;;;>>>>>>>/////////////////////////.............;;; +00:00:26 v #7174 > > ;;>>>>>>>>>>>>>>>/////.............\>>>>>>>>>=.................................. +00:00:26 v #7175 > > │ +00:00:26 v #7176 > > ...............;;;;;;;;;;;;;>>>>>>>>>>>>>>>/////////////////////.............;>> +00:00:26 v #7177 > > >>>>>>>>>>>>>>>>>>>>>/..................>....................................... +00:00:26 v #7178 > > │ +00:00:26 v #7179 > > ...............;;;;;;;;;>>>>>>>>>>>>>>>>>>>>>>>>////////////////................ +00:00:26 v #7180 > > .>>>>>>>>>>>>>>>>>>>/........................................................... +00:00:26 v #7181 > > │ +00:00:26 v #7182 > > ..............;;;;;;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>////////////................ +00:00:26 v #7183 > > ......>>>>>>>>>>................................................................ +00:00:26 v #7184 > > │ +00:00:26 v #7185 > > ..............;;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>////////................ +00:00:26 v #7186 > > ................................................................................ +00:00:26 v #7187 > > │ +00:00:26 v #7188 > > .................>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>////................ +00:00:26 v #7189 > > ................................................................................ +00:00:26 v #7190 > > │ +00:00:26 v #7191 > > ......................>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>................ +00:00:26 v #7192 > > ................................................................................ +00:00:26 v #7193 > > │ +00:00:26 v #7194 > > ............................>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.................. +00:00:26 v #7195 > > ................................................................................ +00:00:26 v #7196 > > │ +00:00:26 v #7197 > > ..................................>>>>>>>>>>>>>>>>>>............................ +00:00:26 v #7198 > > ................................................................................ +00:00:26 v #7199 > > │ +00:00:26 v #7200 > > .......................................>=....................................... +00:00:26 v #7201 > > ................................................................................ +00:00:26 v #7202 > > │ +00:00:26 v #7203 > > ................................................................................ +00:00:26 v #7204 > > ................................................................................ +00:00:26 v #7205 > > │ +00:00:26 v #7206 > > ................................................................................ +00:00:26 v #7207 > > ................................................................................ +00:00:26 v #7208 > > │ +00:00:26 v #7209 > > ................................................................................ +00:00:26 v #7210 > > ................................................................................ +00:00:26 v #7211 > > │ +00:00:26 v #7212 > > ................................................................................ +00:00:26 v #7213 > > ................................................................................ +00:00:26 v #7214 > > │ +00:00:26 v #7215 > > ................................................................................ +00:00:26 v #7216 > > ................................................................................ +00:00:26 v #7217 > > │ +00:00:26 v #7218 > > ................................................................................ +00:00:26 v #7219 > > ................................................................................ +00:00:26 v #7220 > > │ +00:00:26 v #7221 > > ................................................................................ +00:00:26 v #7222 > > ................................................................................ +00:00:26 v #7223 > > │ +00:00:26 v #7224 > > ................................................................................ +00:00:26 v #7225 > > ................................................................................ +00:00:26 v #7226 > > │ +00:00:26 v #7227 > > ................................................................................ +00:00:26 v #7228 > > ................................................................................ +00:00:26 v #7229 > > │ +00:00:26 v #7230 > > ................................................................................ +00:00:26 v #7231 > > ................................................................................ +00:00:26 v #7232 > > │ +00:00:26 v #7233 > > │ +00:00:26 v #7234 > > ................................................................................ +00:00:26 v #7235 > > ................................................................................ +00:00:26 v #7236 > > │ +00:00:26 v #7237 > > ................................................................................ +00:00:26 v #7238 > > ................................................................................ +00:00:26 v #7239 > > │ +00:00:26 v #7240 > > ................................................................................ +00:00:26 v #7241 > > ................................................................................ +00:00:26 v #7242 > > │ +00:00:26 v #7243 > > ................................................................................ +00:00:26 v #7244 > > ................................................................................ +00:00:26 v #7245 > > │ +00:00:26 v #7246 > > ................................................................................ +00:00:26 v #7247 > > ................................................................................ +00:00:26 v #7248 > > │ +00:00:26 v #7249 > > ................................................................................ +00:00:26 v #7250 > > ................................................................................ +00:00:26 v #7251 > > │ +00:00:26 v #7252 > > ................................................................................ +00:00:26 v #7253 > > ................................................................................ +00:00:26 v #7254 > > │ +00:00:26 v #7255 > > .....................................<;;/<...................................... +00:00:26 v #7256 > > ................................................................................ +00:00:26 v #7257 > > │ +00:00:26 v #7258 > > ...................................;;;;;///<.................................... +00:00:26 v #7259 > > ................................................................................ +00:00:26 v #7260 > > │ +00:00:26 v #7261 > > .................................;;;;;;///////<................................. +00:00:26 v #7262 > > ................................................................................ +00:00:26 v #7263 > > │ +00:00:26 v #7264 > > ...............................;;;;;;;;//////////<.............................. +00:00:26 v #7265 > > ................................................................................ +00:00:26 v #7266 > > │ +00:00:26 v #7267 > > ............................<;;;;;;;;;;/////////////............................ +00:00:26 v #7268 > > ................................................................................ +00:00:26 v #7269 > > │ +00:00:26 v #7270 > > ..........................<;;;;;;;;;;;;///////////////<......................... +00:00:26 v #7271 > > ................................................................................ +00:00:26 v #7272 > > │ +00:00:26 v #7273 > > ........................;;;;;;;;;;;;;;;//////////////////<...................... +00:00:26 v #7274 > > ................................................................................ +00:00:26 v #7275 > > │ +00:00:26 v #7276 > > ......................;;;;;;;;;;;;;;;;//////////////////////.................... +00:00:26 v #7277 > > ................................................................................ +00:00:26 v #7278 > > │ +00:00:26 v #7279 > > ....................;;;;;;;;;;;;;;;;;;////////////////////////.................. +00:00:26 v #7280 > > .......;;;//.................................................................... +00:00:26 v #7281 > > │ +00:00:26 v #7282 > > ....................;;;;;;;;;;;;;;;;;;/////////////////////////................. +00:00:26 v #7283 > > ....;;;;;;//////................................................................ +00:00:26 v #7284 > > │ +00:00:26 v #7285 > > ...................;;;;;;;;;;;;;;;;;;;/////////////////////////................. +00:00:26 v #7286 > > .<;;;;;;;;////////<............................................................. +00:00:26 v #7287 > > │ +00:00:26 v #7288 > > ...................;;;;;;;;;;;;;;;;;;;/////////////////////////................; +00:00:26 v #7289 > > ;;;;;;;;;;////////////.................;/....................................... +00:00:26 v #7290 > > │ +00:00:26 v #7291 > > ..................\;;;;;;;;;;;;;;;;;;//////////////////////////................; +00:00:26 v #7292 > > ;;;;;;;;;/////////////.............<;;;;////<................................... +00:00:26 v #7293 > > │ +00:00:26 v #7294 > > ..................;;;;;;;;;;;;;;;;;;;//////////////////////////................; +00:00:26 v #7295 > > ;;;;;;;;;/////////////............;;;;;;//////.................................. +00:00:26 v #7296 > > │ +00:00:26 v #7297 > > ..................;;;;;;;;;;;;;;;;;;;///////////////////////////..............;; +00:00:26 v #7298 > > ;;;;;;;;;/////////////............;;;;;;//////.................................. +00:00:26 v #7299 > > │ +00:00:26 v #7300 > > .................;;;;;;;;;;;;;;;;;;;;///////////////////////////..............;; +00:00:26 v #7301 > > ;;;;;;;;;>////////////............;;;;;;>>////.................................. +00:00:26 v #7302 > > │ +00:00:26 v #7303 > > .................;;;;;;;;;;;;;;;;;;;;///////////////////////////..............;; +00:00:26 v #7304 > > ;;;;;;;;>>>>/>////////............;;;>>>>>>>>>.................................. +00:00:26 v #7305 > > │ +00:00:26 v #7306 > > ................;;;;;;;;;;;;;;;;;;;;>>>>>///////////////////////.............\;; +00:00:26 v #7307 > > ;;;>>>>>>>>>>>>>/>////.............>>>>>>>>>=................................... +00:00:26 v #7308 > > │ +00:00:26 v #7309 > > ................;;;;;;;;;;;;;;;;>>>>>>>>>>>>>>//////////////////.............;;; +00:00:26 v #7310 > > >>>>>>>>>>>>>>>>>>>>>>..................=....................................... +00:00:26 v #7311 > > │ +00:00:26 v #7312 > > ...............;;;;;;;;;;;;>>>>>>>>>>>>>>>>>>>>>>>//////////////................ +00:00:26 v #7313 > > >>>>>>>>>>>>>>>>>>>>>........................................................... +00:00:26 v #7314 > > │ +00:00:26 v #7315 > > ...............;;;;;;;;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>//////////............... +00:00:26 v #7316 > > .....\>>>>>>>>=................................................................. +00:00:26 v #7317 > > │ +00:00:26 v #7318 > > ..............;;;;;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>/////............... +00:00:26 v #7319 > > ................................................................................ +00:00:26 v #7320 > > │ +00:00:26 v #7321 > > ..............;;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>/............... +00:00:26 v #7322 > > ................................................................................ +00:00:26 v #7323 > > │ +00:00:26 v #7324 > > ....................>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>............... +00:00:26 v #7325 > > ................................................................................ +00:00:26 v #7326 > > │ +00:00:26 v #7327 > > ..........................\>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>...................... +00:00:26 v #7328 > > ................................................................................ +00:00:26 v #7329 > > │ +00:00:26 v #7330 > > .................................>>>>>>>>>>>>>>>>............................... +00:00:26 v #7331 > > ................................................................................ +00:00:26 v #7332 > > │ +00:00:26 v #7333 > > ........................................=....................................... +00:00:26 v #7334 > > ................................................................................ +00:00:26 v #7335 > > │ +00:00:26 v #7336 > > ................................................................................ +00:00:26 v #7337 > > ................................................................................ +00:00:26 v #7338 > > │ +00:00:26 v #7339 > > ................................................................................ +00:00:26 v #7340 > > ................................................................................ +00:00:26 v #7341 > > │ +00:00:26 v #7342 > > ................................................................................ +00:00:26 v #7343 > > ................................................................................ +00:00:26 v #7344 > > │ +00:00:26 v #7345 > > ................................................................................ +00:00:26 v #7346 > > ................................................................................ +00:00:26 v #7347 > > │ +00:00:26 v #7348 > > ................................................................................ +00:00:26 v #7349 > > ................................................................................ +00:00:26 v #7350 > > │ +00:00:26 v #7351 > > ................................................................................ +00:00:26 v #7352 > > ................................................................................ +00:00:26 v #7353 > > │ +00:00:26 v #7354 > > ................................................................................ +00:00:26 v #7355 > > ................................................................................ +00:00:26 v #7356 > > │ +00:00:26 v #7357 > > ................................................................................ +00:00:26 v #7358 > > ................................................................................ +00:00:26 v #7359 > > │ +00:00:26 v #7360 > > ................................................................................ +00:00:26 v #7361 > > ................................................................................ +00:00:26 v #7362 > > │ +00:00:26 v #7363 > > ................................................................................ +00:00:26 v #7364 > > ................................................................................ +00:00:26 v #7365 > > │ +00:00:26 v #7366 > > │ +00:00:26 v #7367 > > ................................................................................ +00:00:26 v #7368 > > ................................................................................ +00:00:26 v #7369 > > │ +00:00:26 v #7370 > > ................................................................................ +00:00:26 v #7371 > > ................................................................................ +00:00:26 v #7372 > > │ +00:00:26 v #7373 > > ................................................................................ +00:00:26 v #7374 > > ................................................................................ +00:00:26 v #7375 > > │ +00:00:26 v #7376 > > ................................................................................ +00:00:26 v #7377 > > ................................................................................ +00:00:26 v #7378 > > │ +00:00:26 v #7379 > > ................................................................................ +00:00:26 v #7380 > > ................................................................................ +00:00:26 v #7381 > > │ +00:00:26 v #7382 > > ................................................................................ +00:00:26 v #7383 > > ................................................................................ +00:00:26 v #7384 > > │ +00:00:26 v #7385 > > ................................................................................ +00:00:26 v #7386 > > ................................................................................ +00:00:26 v #7387 > > │ +00:00:26 v #7388 > > .....................................;;//....................................... +00:00:26 v #7389 > > ................................................................................ +00:00:26 v #7390 > > │ +00:00:26 v #7391 > > ...................................;;;;////<.................................... +00:00:26 v #7392 > > ................................................................................ +00:00:26 v #7393 > > │ +00:00:26 v #7394 > > ................................<;;;;;;///////.................................. +00:00:26 v #7395 > > ................................................................................ +00:00:26 v #7396 > > │ +00:00:26 v #7397 > > ..............................<;;;;;;;;/////////<............................... +00:00:26 v #7398 > > ................................................................................ +00:00:26 v #7399 > > │ +00:00:26 v #7400 > > ............................;;;;;;;;;;;////////////<............................ +00:00:26 v #7401 > > ................................................................................ +00:00:26 v #7402 > > │ +00:00:26 v #7403 > > ..........................;;;;;;;;;;;;;///////////////<......................... +00:00:26 v #7404 > > ................................................................................ +00:00:26 v #7405 > > │ +00:00:26 v #7406 > > .......................<;;;;;;;;;;;;;;;//////////////////....................... +00:00:26 v #7407 > > ................................................................................ +00:00:26 v #7408 > > │ +00:00:26 v #7409 > > .....................;;;;;;;;;;;;;;;;;;/////////////////////.................... +00:00:26 v #7410 > > ................................................................................ +00:00:26 v #7411 > > │ +00:00:26 v #7412 > > ...................;;;;;;;;;;;;;;;;;;;;//////////////////////................... +00:00:26 v #7413 > > .......;;;//.................................................................... +00:00:26 v #7414 > > │ +00:00:26 v #7415 > > ...................;;;;;;;;;;;;;;;;;;;;///////////////////////.................. +00:00:26 v #7416 > > ....;;;;;;//////................................................................ +00:00:26 v #7417 > > │ +00:00:26 v #7418 > > ..................\;;;;;;;;;;;;;;;;;;;;///////////////////////.................. +00:00:26 v #7419 > > .;;;;;;;;;/////////............................................................. +00:00:26 v #7420 > > │ +00:00:26 v #7421 > > ..................;;;;;;;;;;;;;;;;;;;;;///////////////////////.................; +00:00:26 v #7422 > > ;;;;;;;;;;///////////..................;/....................................... +00:00:26 v #7423 > > │ +00:00:26 v #7424 > > ..................;;;;;;;;;;;;;;;;;;;;;////////////////////////................; +00:00:26 v #7425 > > ;;;;;;;;;;////////////.............<;;;;////<................................... +00:00:26 v #7426 > > │ +00:00:26 v #7427 > > ..................;;;;;;;;;;;;;;;;;;;;;////////////////////////...............\; +00:00:26 v #7428 > > ;;;;;;;;;;////////////............;;;;;;//////.................................. +00:00:26 v #7429 > > │ +00:00:26 v #7430 > > .................;;;;;;;;;;;;;;;;;;;;;;////////////////////////...............;; +00:00:26 v #7431 > > ;;;;;;;;;;////////////............;;;;;;//////.................................. +00:00:26 v #7432 > > │ +00:00:26 v #7433 > > .................;;;;;;;;;;;;;;;;;;;;;;/////////////////////////..............;; +00:00:26 v #7434 > > ;;;;;;;;;;>///////////............;;;;;;>>>///.................................. +00:00:26 v #7435 > > │ +00:00:26 v #7436 > > .................;;;;;;;;;;;;;;;;;;;;;;/////////////////////////..............;; +00:00:26 v #7437 > > ;;;;;;;;;>>>>>>///////............;;;;>>>>>>>>.................................. +00:00:26 v #7438 > > │ +00:00:26 v #7439 > > ................;;;;;;;;;;;;;;;;;;;;;;;>>>>/////////////////////..............;; +00:00:26 v #7440 > > ;;;;;;>>>>>>>>>>>>>>//.............>>>>>>>>>=................................... +00:00:26 v #7441 > > │ +00:00:26 v #7442 > > ................;;;;;;;;;;;;;;;;;;;>>>>>>>>>>>>>/////////////////.............;; +00:00:26 v #7443 > > ;;>>>>>>>>>>>>>>>>>>>>..................=....................................... +00:00:26 v #7444 > > │ +00:00:26 v #7445 > > ................;;;;;;;;;;;;;;;;>>>>>>>>>>>>>>>>>>>>>////////////..............\ +00:00:26 v #7446 > > >>>>>>>>>>>>>>>>>>>>............................................................ +00:00:26 v #7447 > > │ +00:00:26 v #7448 > > ...............\;;;;;;;;;;;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>///////............... +00:00:26 v #7449 > > .....>>>>>>>>>=................................................................. +00:00:26 v #7450 > > │ +00:00:26 v #7451 > > ...............;;;;;;;;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>///.............. +00:00:26 v #7452 > > ................................................................................ +00:00:26 v #7453 > > │ +00:00:26 v #7454 > > ...............;;;;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.............. +00:00:26 v #7455 > > ................................................................................ +00:00:26 v #7456 > > │ +00:00:26 v #7457 > > ................>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>=.................. +00:00:26 v #7458 > > ................................................................................ +00:00:26 v #7459 > > │ +00:00:26 v #7460 > > ........................\>>>>>>>>>>>>>>>>>>>>>>>>>>>>>=......................... +00:00:26 v #7461 > > ................................................................................ +00:00:26 v #7462 > > │ +00:00:26 v #7463 > > .................................\>>>>>>>>>>>>>=................................ +00:00:26 v #7464 > > ................................................................................ +00:00:26 v #7465 > > │ +00:00:26 v #7466 > > ................................................................................ +00:00:26 v #7467 > > ................................................................................ +00:00:26 v #7468 > > │ +00:00:26 v #7469 > > ................................................................................ +00:00:26 v #7470 > > ................................................................................ +00:00:26 v #7471 > > │ +00:00:26 v #7472 > > ................................................................................ +00:00:26 v #7473 > > ................................................................................ +00:00:26 v #7474 > > │ +00:00:26 v #7475 > > ................................................................................ +00:00:26 v #7476 > > ................................................................................ +00:00:26 v #7477 > > │ +00:00:26 v #7478 > > ................................................................................ +00:00:26 v #7479 > > ................................................................................ +00:00:26 v #7480 > > │ +00:00:26 v #7481 > > ................................................................................ +00:00:26 v #7482 > > ................................................................................ +00:00:26 v #7483 > > │ +00:00:26 v #7484 > > ................................................................................ +00:00:26 v #7485 > > ................................................................................ +00:00:26 v #7486 > > │ +00:00:26 v #7487 > > ................................................................................ +00:00:26 v #7488 > > ................................................................................ +00:00:26 v #7489 > > │ +00:00:26 v #7490 > > ................................................................................ +00:00:26 v #7491 > > ................................................................................ +00:00:26 v #7492 > > │ +00:00:26 v #7493 > > ................................................................................ +00:00:26 v #7494 > > ................................................................................ +00:00:26 v #7495 > > │ +00:00:26 v #7496 > > ................................................................................ +00:00:26 v #7497 > > ................................................................................ +00:00:26 v #7498 > > │ +00:00:26 v #7499 > > │ +00:00:26 v #7500 > 00:00:26 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 449170 } +00:00:26 v #7501 > 00:00:26 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/apps/spiral/temp/cube/cube.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/apps/spiral/temp/cube/cube.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } +00:00:28 v #7502 > 00:00:27 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/apps/spiral/temp/cube/cube.dib.ipynb to html +00:00:28 v #7503 > 00:00:27 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. +00:00:28 v #7504 > 00:00:27 v #7 ! validate(nb) +00:00:29 v #7505 > 00:00:28 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 +00:00:29 v #7506 > 00:00:28 v #9 ! return _pygments_highlight( +00:00:29 v #7507 > 00:00:28 v #10 ! [NbConvertApp] Writing 800315 bytes to c:\home\git\polyglot\apps\spiral\temp\cube\cube.dib.html +00:00:29 v #7508 > 00:00:28 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 872 } +00:00:29 v #7509 > 00:00:28 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 872 } +00:00:29 v #7510 > 00:00:28 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/apps/spiral/temp/cube/cube.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/apps/spiral/temp/cube/cube.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } +00:00:30 v #7511 > 00:00:29 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } +00:00:30 v #7512 > 00:00:29 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } +00:00:30 v #7513 > 00:00:29 d #16 spiral.run / dib / { exit_code = 0; result_length = 450101 } +00:00:30 d #7514 runtime.execute_with_options_async / { exit_code = 0; output_length = 467682 } +00:00:30 d #1 main / executeCommand / exitCode: 0 / command: ../../../../deps/spiral/workspace/target/release/spiral.exe dib --path cube.dib 00:00:00 d #1 writeDibCode / output: Spi / path: cube.dib 00:00:00 d #2 parseDibCode / output: Spi / file: cube.dib 00:00:00 v #1 async.run_with_timeout_async / { timeout = 180 } -00:00:00 d #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0 - ""C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 --default-int i32 --default-float f64"; options = { command = dotnet "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 --default-int i32 --default-float f64; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = Some <fun:compiler@87-4>; stdin = None; trace = true; working_directory = Some "C:\home\git\polyglot" } } -00:00:00 v #2 > 00:00:00 d #1 pwd: C:\home\git\polyglot -00:00:00 v #3 > 00:00:00 d #2 dllPath: C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release -00:00:00 v #4 > 00:00:00 d #3 targetDir: C:\home\git\polyglot\target/spiral_Eval -00:00:01 v #2 async.run_with_timeout_async / { timeout = 100 } -00:00:01 v #3 async.run_with_timeout_async / { timeout = 100 } -00:00:01 v #5 > Starting the Spiral Server. It is bound to: http://localhost:13805 -00:00:01 v #4 async.run_with_timeout_async / { timeout = 100 } -00:00:01 v #1 Supervisor.sendJson / port: 13805 / json: {"Ping":true} / result: -00:00:01 v #2 Supervisor.awaitCompiler / Ping / result: 'Some null' / port: 13805 / retry: 1 -00:00:01 v #6 > Server bound to: http://localhost:13805 -00:00:01 v #5 async.run_with_timeout_async / { timeout = 180 } -00:00:02 d #3 Supervisor.buildFile / takeWhileInclusive / path: cube.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:02 d #4 Supervisor.buildFile / AsyncSeq.scan / path: cube.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:02 d #5 Supervisor.buildFile / takeWhileInclusive / path: cube.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:02 v #6 Supervisor.sendJson / port: 13805 / json: {"FileOpen":{"spiText":"/// # cube\n\n/// ## cube\n\n/// ### get_width\ninl get_width () =\n 160i... main ;[]\n }\n : ()\n","uri":"file:///c:/home/git/polyglot/apps/spiral/temp/cube/cube.spi"}} / result: -00:00:02 v #7 Supervisor.sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/apps/spiral/temp/cube/cube.spi"}} / result: -00:00:02 d #8 Supervisor.buildFile / AsyncSeq.scan / path: cube.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:02 d #9 Supervisor.buildFile / takeWhileInclusive / path: cube.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:03 d #10 Supervisor.buildFile / AsyncSeq.scan / path: cube.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:03 d #11 Supervisor.buildFile / takeWhileInclusive / path: cube.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:03 d #12 Supervisor.buildFile / AsyncSeq.scan / path: cube.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:03 d #13 Supervisor.buildFile / takeWhileInclusive / path: cube.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: +00:00:01 v #2 async.run_with_timeout_async / { timeout = 180 } +00:00:01 d #1 Supervisor.buildFile / takeWhileInclusive / path: cube.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: -00:00:04 d #14 Supervisor.buildFile / AsyncSeq.scan / path: cube.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: +00:00:01 d #2 Supervisor.buildFile / AsyncSeq.scan / path: cube.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: -00:00:04 d #15 Supervisor.buildFile / takeWhileInclusive / path: cube.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:04 d #16 Supervisor.buildFile / AsyncSeq.scan / path: cube.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:04 d #17 Supervisor.buildFile / takeWhileInclusive / path: cube.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:05 d #18 Supervisor.buildFile / AsyncSeq.scan / path: cube.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:05 d #19 Supervisor.buildFile / takeWhileInclusive / path: cube.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:05 d #20 Supervisor.buildFile / AsyncSeq.scan / path: cube.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:05 d #21 Supervisor.buildFile / takeWhileInclusive / path: cube.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: +00:00:01 d #3 Supervisor.buildFile / takeWhileInclusive / path: cube.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: -00:00:06 d #22 Supervisor.buildFile / AsyncSeq.scan / path: cube.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: +00:00:01 v #4 Supervisor.sendJson / port: 13805 / json: {"FileOpen":{"spiText":"/// # cube\n\n/// ## cube\n\n/// ### get_width\ninl get_width () =\n 160i... main ;[]\n }\n : ()\n","uri":"file:///c:/home/git/polyglot/apps/spiral/temp/cube/cube.spi"}} / result: +00:00:01 v #5 Supervisor.sendJson / port: 13805 / json: {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/apps/spiral/temp/cube/cube.spi"}} / result: +00:00:01 d #6 Supervisor.buildFile / AsyncSeq.scan / path: cube.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: -00:00:06 d #23 Supervisor.buildFile / takeWhileInclusive / path: cube.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: +00:00:01 d #7 Supervisor.buildFile / takeWhileInclusive / path: cube.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: -00:00:06 d #24 Supervisor.buildFile / AsyncSeq.scan / path: cube.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: +00:00:01 d #8 Supervisor.buildFile / AsyncSeq.scan / path: cube.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: #if FABLE_COMPILER [<Fable.Core.Erase; Fable.Core.Emit("std::string::String")>] type std_string_String = class end @@ -78623,7 +36176,7 @@ #endif () -00:00:06 d #25 Supervisor.buildFile / takeWhileInclusive / path: cube.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: +00:00:01 d #9 Supervisor.buildFile / takeWhileInclusive / path: cube.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: #if FABLE_COMPILER [<Fable.Core.Erase; Fable.Core.Emit("std::string::String")>] type std_string_String = class end @@ -78687,62 +36240,22 @@ #endif () -00:00:06 d #26 FileSystem.watchWithFilter / Disposing watch stream / filter: FileName, LastWrite -00:00:06 v #6 async.run_with_timeout_async / { timeout = 100 } +00:00:01 d #10 FileSystem.watchWithFilter / Disposing watch stream / filter: FileName, LastWrite 00:00:00 v #1 async.run_with_timeout_async / { timeout = 180 } -00:00:00 d #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0 - ""C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 --default-int i32 --default-float f64"; options = { command = dotnet "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 --default-int i32 --default-float f64; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = Some <fun:compiler@87-4>; stdin = None; trace = true; working_directory = Some "C:\home\git\polyglot" } } -00:00:00 v #2 > 00:00:00 d #1 pwd: C:\home\git\polyglot -00:00:00 v #3 > 00:00:00 d #2 dllPath: C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release -00:00:00 v #4 > 00:00:00 d #3 targetDir: C:\home\git\polyglot\target/spiral_Eval -00:00:01 v #2 async.run_with_timeout_async / { timeout = 100 } -00:00:01 v #5 > Starting the Spiral Server. It is bound to: http://localhost:13805 -00:00:01 v #3 async.run_with_timeout_async / { timeout = 100 } -00:00:01 v #1 Supervisor.sendJson / port: 13805 / json: {"Ping":true} / result: -00:00:01 v #2 Supervisor.awaitCompiler / Ping / result: 'Some null' / port: 13805 / retry: 1 -00:00:01 v #6 > Server bound to: http://localhost:13805 -00:00:01 v #4 async.run_with_timeout_async / { timeout = 180 } -00:00:01 d #3 Supervisor.buildFile / takeWhileInclusive / path: cube.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:01 d #4 Supervisor.buildFile / AsyncSeq.scan / path: cube.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:01 d #5 Supervisor.buildFile / takeWhileInclusive / path: cube.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:01 v #6 Supervisor.sendJson / port: 13805 / json: {"FileOpen":{"spiText":"/// # cube\n\n/// ## cube\n\n/// ### get_width\ninl get_width () =\n 160i... main ;[]\n }\n : ()\n","uri":"file:///c:/home/git/polyglot/apps/spiral/temp/cube/cube.spi"}} / result: -00:00:01 v #7 Supervisor.sendJson / port: 13805 / json: {"BuildFile":{"backend":"Python \u002B Cuda","uri":"file:///c:/home/git/polyglot/apps/spiral/temp/cube/cube.spi"}} / result: -00:00:02 d #8 Supervisor.buildFile / AsyncSeq.scan / path: cube.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:02 d #9 Supervisor.buildFile / takeWhileInclusive / path: cube.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:02 d #10 Supervisor.buildFile / AsyncSeq.scan / path: cube.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:02 d #11 Supervisor.buildFile / takeWhileInclusive / path: cube.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:03 d #12 Supervisor.buildFile / AsyncSeq.scan / path: cube.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: +00:00:01 v #2 async.run_with_timeout_async / { timeout = 180 } +00:00:01 d #1 Supervisor.buildFile / takeWhileInclusive / path: cube.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: -00:00:03 d #13 Supervisor.buildFile / takeWhileInclusive / path: cube.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: +00:00:01 d #2 Supervisor.buildFile / AsyncSeq.scan / path: cube.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: -00:00:03 d #14 Supervisor.buildFile / AsyncSeq.scan / path: cube.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:03 d #15 Supervisor.buildFile / takeWhileInclusive / path: cube.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:04 d #16 Supervisor.buildFile / AsyncSeq.scan / path: cube.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:04 d #17 Supervisor.buildFile / takeWhileInclusive / path: cube.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:04 d #18 Supervisor.buildFile / AsyncSeq.scan / path: cube.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:04 d #19 Supervisor.buildFile / takeWhileInclusive / path: cube.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: - -00:00:05 d #20 Supervisor.buildFile / AsyncSeq.scan / path: cube.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: - -00:00:05 d #21 Supervisor.buildFile / takeWhileInclusive / path: cube.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: +00:00:01 d #3 Supervisor.buildFile / takeWhileInclusive / path: cube.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: -00:00:05 d #22 Supervisor.buildFile / AsyncSeq.scan / path: cube.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: +00:00:01 v #4 Supervisor.sendJson / port: 13805 / json: {"FileOpen":{"spiText":"/// # cube\n\n/// ## cube\n\n/// ### get_width\ninl get_width () =\n 160i... main ;[]\n }\n : ()\n","uri":"file:///c:/home/git/polyglot/apps/spiral/temp/cube/cube.spi"}} / result: +00:00:01 v #5 Supervisor.sendJson / port: 13805 / json: {"BuildFile":{"backend":"Python \u002B Cuda","uri":"file:///c:/home/git/polyglot/apps/spiral/temp/cube/cube.spi"}} / result: +00:00:01 d #6 Supervisor.buildFile / AsyncSeq.scan / path: cube.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: -00:00:05 d #23 Supervisor.buildFile / takeWhileInclusive / path: cube.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: +00:00:01 d #7 Supervisor.buildFile / takeWhileInclusive / path: cube.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: -00:00:06 d #24 Supervisor.buildFile / AsyncSeq.scan / path: cube.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: +00:00:01 d #8 Supervisor.buildFile / AsyncSeq.scan / path: cube.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent: kernel = r""" """ class static_array(): @@ -78804,7 +36317,7 @@ if __name__ == '__main__': result = main(); None if result is None else print(result) -00:00:06 d #25 Supervisor.buildFile / takeWhileInclusive / path: cube.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: +00:00:01 d #9 Supervisor.buildFile / takeWhileInclusive / path: cube.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: kernel = r""" """ class static_array(): @@ -78866,156 +36379,161 @@ if __name__ == '__main__': result = main(); None if result is None else print(result) -00:00:06 d #26 FileSystem.watchWithFilter / Disposing watch stream / filter: FileName, LastWrite -00:00:06 v #5 async.run_with_timeout_async / { timeout = 100 } -00:00:00 d #1 persistCodeProject / packages: [Fable.Core] / modules: [lib/spiral/common.fsx; lib/spiral/sm.fsx; lib/spiral/crypto.fsx; ... ] / name: cube / hash: / code.Length: 48391 -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../target/Builder/cube -polyglot/lib/spiral/lib.ps1/GetTargetDir / targetDir: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\cube -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../.. -polyglot/lib/spiral/lib.ps1/BuildFable / TargetDir: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\cube / ProjectName: cube / Language: rs / Runtime: / root: C:\home\git\polyglot\lib\spiral\..\.. -Fable 5.0.0-alpha.2: F# to Rust compiler (status: alpha) +00:00:01 d #10 FileSystem.watchWithFilter / Disposing watch stream / filter: FileName, LastWrite +00:00:00 d #1 persistCodeProject / packages: [Fable.Core] / modules: [deps/spiral/lib/spiral/common.fsx; deps/spiral/lib/spiral/sm.fsx; deps/spiral/lib/spiral/crypto.fsx; ... ] / name: cube / hash: / code.Length: 48391 +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/polyglot/target/Builder/cube +spiral/lib/spiral/lib.ps1/GetTargetDir / targetDir: C:\home\git\polyglot\target\Builder\cube +polyglot/scripts/core.ps1/ResolveLink #4 / Path: C:\home\git\polyglot\deps\spiral\lib\spiral/../../deps/polyglot / parent_target: / path_target: C:\home\git\polyglot / parent: C:\home\git\polyglot\deps\spiral\lib\spiral\..\..\deps / End: polyglot +spiral/lib/spiral/lib.ps1/BuildFable / TargetDir: C:\home\git\polyglot\target\Builder\cube / ProjectName: cube / Language: rs / Runtime: / root: C:\home\git\polyglot +Fable 5.0.0-alpha.5: F# to Rust compiler (status: alpha) -Thanks to the contributor! @Zaid-Ajaj +Thanks to the contributor! @josselinauguste Stand with Ukraine! https://standwithukraine.com.ua/ Parsing target\Builder\cube\cube.fsproj... -Project and references (14 source files) parsed in 3998ms +Retrieving project options from cache, in case of issues run `dotnet fable clean` or try `--noCache` option. +Project and references (14 source files) parsed in 177ms Started Fable compilation... -Fable compilation finished in 8446ms - -.\lib\spiral\sm.fsx(556,0): (556,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! -.\lib\spiral\common.fsx(2117,0): (2117,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! -.\lib\spiral\async_.fsx(250,0): (250,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! -.\lib\spiral\threading.fsx(139,0): (139,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! -.\lib\spiral\crypto.fsx(2344,0): (2344,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! -.\lib\spiral\date_time.fsx(2527,0): (2527,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! -.\lib\spiral\platform.fsx(120,0): (120,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! -.\lib\spiral\networking.fsx(4935,0): (4935,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! -.\lib\spiral\trace.fsx(2150,0): (2150,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! -.\lib\spiral\runtime.fsx(7101,0): (7101,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! -.\lib\spiral\file_system.fsx(17438,0): (17438,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../lib/fsharp/Common.rs -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\cube/target/rs/lib/fsharp/Common.rs / to: C:\home\git\polyglot\lib\spiral\..\..\lib\fsharp\Common.rs -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/common.rs -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\cube/target/rs/lib/spiral/common.rs / to: C:\home\git\polyglot\lib\spiral\..\..\lib\spiral\common.rs -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/date_time.rs -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\cube/target/rs/lib/spiral/date_time.rs / to: C:\home\git\polyglot\lib\spiral\..\..\lib\spiral\date_time.rs -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/async_.rs -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\cube/target/rs/lib/spiral/async_.rs / to: C:\home\git\polyglot\lib\spiral\..\..\lib\spiral\async_.rs -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/platform.rs -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\cube/target/rs/lib/spiral/platform.rs / to: C:\home\git\polyglot\lib\spiral\..\..\lib\spiral\platform.rs -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/runtime.rs -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\cube/target/rs/lib/spiral/runtime.rs / to: C:\home\git\polyglot\lib\spiral\..\..\lib\spiral\runtime.rs -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/threading.rs -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\cube/target/rs/lib/spiral/threading.rs / to: C:\home\git\polyglot\lib\spiral\..\..\lib\spiral\threading.rs -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/networking.rs -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\cube/target/rs/lib/spiral/networking.rs / to: C:\home\git\polyglot\lib\spiral\..\..\lib\spiral\networking.rs -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/file_system.rs -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\cube/target/rs/lib/spiral/file_system.rs / to: C:\home\git\polyglot\lib\spiral\..\..\lib\spiral\file_system.rs -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/sm.rs -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\cube/target/rs/lib/spiral/sm.rs / to: C:\home\git\polyglot\lib\spiral\..\..\lib\spiral\sm.rs -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/crypto.rs -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\cube/target/rs/lib/spiral/crypto.rs / to: C:\home\git\polyglot\lib\spiral\..\..\lib\spiral\crypto.rs -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/trace.rs -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\cube/target/rs/lib/spiral/trace.rs / to: C:\home\git\polyglot\lib\spiral\..\..\lib\spiral\trace.rs -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/lib.rs -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\cube/target/rs/lib/spiral/lib.rs / to: C:\home\git\polyglot\lib\spiral\..\..\lib\spiral\lib.rs -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../.. -polyglot/lib/spiral/lib.ps1/BuildFable / TargetDir: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\cube / ProjectName: cube / Language: ts / Runtime: / root: C:\home\git\polyglot\lib\spiral\..\.. -Fable 5.0.0-alpha.2: F# to TypeScript compiler -Minimum @fable-org/fable-library-ts version (when installed from npm): 1.7.0 - -Thanks to the contributor! @fbehrens +Fable compilation finished in 9444ms + +.\deps\spiral\lib\spiral\sm.fsx(559,0): (559,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! +.\deps\spiral\lib\spiral\common.fsx(2117,0): (2117,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! +.\deps\spiral\lib\spiral\async_.fsx(250,0): (250,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! +.\deps\spiral\lib\spiral\threading.fsx(139,0): (139,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! +.\deps\spiral\lib\spiral\crypto.fsx(2344,0): (2344,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! +.\deps\spiral\lib\spiral\date_time.fsx(2545,0): (2545,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! +.\deps\spiral\lib\spiral\platform.fsx(120,0): (120,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! +.\deps\spiral\lib\spiral\networking.fsx(4935,0): (4935,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! +.\deps\spiral\lib\spiral\trace.fsx(2150,0): (2150,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! +.\deps\spiral\lib\spiral\runtime.fsx(7101,0): (7101,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! +.\deps\spiral\lib\spiral\file_system.fsx(17933,0): (17933,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk! +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/polyglot/target/Builder/cube/target/rs/deps/spiral/lib/fsharp/Common.rs +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/polyglot/lib/fsharp/Common.rs +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\cube/target/rs/lib/fsharp/Common.rs / to: C:\home\git\polyglot\lib\fsharp\Common.rs +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/common.rs +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\cube/target/rs/deps/spiral/lib/spiral/common.rs / to: C:\home\git\spiral\lib\spiral\common.rs +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/date_time.rs +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\cube/target/rs/deps/spiral/lib/spiral/date_time.rs / to: C:\home\git\spiral\lib\spiral\date_time.rs +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/async_.rs +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\cube/target/rs/deps/spiral/lib/spiral/async_.rs / to: C:\home\git\spiral\lib\spiral\async_.rs +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/platform.rs +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\cube/target/rs/deps/spiral/lib/spiral/platform.rs / to: C:\home\git\spiral\lib\spiral\platform.rs +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/runtime.rs +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\cube/target/rs/deps/spiral/lib/spiral/runtime.rs / to: C:\home\git\spiral\lib\spiral\runtime.rs +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/threading.rs +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\cube/target/rs/deps/spiral/lib/spiral/threading.rs / to: C:\home\git\spiral\lib\spiral\threading.rs +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/networking.rs +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\cube/target/rs/deps/spiral/lib/spiral/networking.rs / to: C:\home\git\spiral\lib\spiral\networking.rs +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/file_system.rs +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\cube/target/rs/deps/spiral/lib/spiral/file_system.rs / to: C:\home\git\spiral\lib\spiral\file_system.rs +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/sm.rs +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\cube/target/rs/deps/spiral/lib/spiral/sm.rs / to: C:\home\git\spiral\lib\spiral\sm.rs +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/crypto.rs +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\cube/target/rs/deps/spiral/lib/spiral/crypto.rs / to: C:\home\git\spiral\lib\spiral\crypto.rs +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/trace.rs +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\cube/target/rs/deps/spiral/lib/spiral/trace.rs / to: C:\home\git\spiral\lib\spiral\trace.rs +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/lib.rs +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\cube/target/rs/deps/spiral/lib/spiral/lib.rs / to: C:\home\git\spiral\lib\spiral\lib.rs +polyglot/scripts/core.ps1/ResolveLink #4 / Path: C:\home\git\polyglot\deps\spiral\lib\spiral/../../deps/polyglot / parent_target: / path_target: C:\home\git\polyglot / parent: C:\home\git\polyglot\deps\spiral\lib\spiral\..\..\deps / End: polyglot +spiral/lib/spiral/lib.ps1/BuildFable / TargetDir: C:\home\git\polyglot\target\Builder\cube / ProjectName: cube / Language: ts / Runtime: / root: C:\home\git\polyglot +Fable 5.0.0-alpha.5: F# to TypeScript compiler +Minimum @fable-org/fable-library-ts version (when installed from npm): 1.9.0 + +Thanks to the contributor! @alfonsogarciacaro Stand with Ukraine! https://standwithukraine.com.ua/ Parsing target\Builder\cube\cube.fsproj... -Project and references (14 source files) parsed in 5534ms +Retrieving project options from cache, in case of issues run `dotnet fable clean` or try `--noCache` option. +Project and references (14 source files) parsed in 151ms Started Fable compilation... -Fable compilation finished in 8014ms - -.\lib\spiral\sm.fsx(38,20): (38,49) warning FABLE: CultureInfo argument is ignored -.\lib\spiral\sm.fsx(304,20): (304,51) warning FABLE: CultureInfo argument is ignored -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../lib/fsharp/Common.ts -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\cube/target/ts/lib/fsharp/Common.ts / to: C:\home\git\polyglot\lib\spiral\..\..\lib\fsharp\Common.ts -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/common.ts -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\cube/target/ts/lib/spiral/common.ts / to: C:\home\git\polyglot\lib\spiral\..\..\lib\spiral\common.ts -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/date_time.ts -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\cube/target/ts/lib/spiral/date_time.ts / to: C:\home\git\polyglot\lib\spiral\..\..\lib\spiral\date_time.ts -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/async_.ts -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\cube/target/ts/lib/spiral/async_.ts / to: C:\home\git\polyglot\lib\spiral\..\..\lib\spiral\async_.ts -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/platform.ts -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\cube/target/ts/lib/spiral/platform.ts / to: C:\home\git\polyglot\lib\spiral\..\..\lib\spiral\platform.ts -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/runtime.ts -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\cube/target/ts/lib/spiral/runtime.ts / to: C:\home\git\polyglot\lib\spiral\..\..\lib\spiral\runtime.ts -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/threading.ts -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\cube/target/ts/lib/spiral/threading.ts / to: C:\home\git\polyglot\lib\spiral\..\..\lib\spiral\threading.ts -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/networking.ts -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\cube/target/ts/lib/spiral/networking.ts / to: C:\home\git\polyglot\lib\spiral\..\..\lib\spiral\networking.ts -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/file_system.ts -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\cube/target/ts/lib/spiral/file_system.ts / to: C:\home\git\polyglot\lib\spiral\..\..\lib\spiral\file_system.ts -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/sm.ts -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\cube/target/ts/lib/spiral/sm.ts / to: C:\home\git\polyglot\lib\spiral\..\..\lib\spiral\sm.ts -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/crypto.ts -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\cube/target/ts/lib/spiral/crypto.ts / to: C:\home\git\polyglot\lib\spiral\..\..\lib\spiral\crypto.ts -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/trace.ts -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\cube/target/ts/lib/spiral/trace.ts / to: C:\home\git\polyglot\lib\spiral\..\..\lib\spiral\trace.ts -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/lib.ts -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\cube/target/ts/lib/spiral/lib.ts / to: C:\home\git\polyglot\lib\spiral\..\..\lib\spiral\lib.ts -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../.. -polyglot/lib/spiral/lib.ps1/BuildFable / TargetDir: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\cube / ProjectName: cube / Language: py / Runtime: / root: C:\home\git\polyglot\lib\spiral\..\.. -Fable 5.0.0-alpha.2: F# to Python compiler (status: beta) - -Thanks to the contributor! @davidtme +Fable compilation finished in 8446ms + +.\deps\spiral\lib\spiral\sm.fsx(38,20): (38,49) warning FABLE: CultureInfo argument is ignored +.\deps\spiral\lib\spiral\sm.fsx(307,20): (307,51) warning FABLE: CultureInfo argument is ignored +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/polyglot/target/Builder/cube/target/ts/deps/spiral/lib/fsharp/Common.ts +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/polyglot/lib/fsharp/Common.ts +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\cube/target/ts/lib/fsharp/Common.ts / to: C:\home\git\polyglot\lib\fsharp\Common.ts +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/common.ts +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\cube/target/ts/deps/spiral/lib/spiral/common.ts / to: C:\home\git\spiral\lib\spiral\common.ts +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/date_time.ts +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\cube/target/ts/deps/spiral/lib/spiral/date_time.ts / to: C:\home\git\spiral\lib\spiral\date_time.ts +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/async_.ts +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\cube/target/ts/deps/spiral/lib/spiral/async_.ts / to: C:\home\git\spiral\lib\spiral\async_.ts +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/platform.ts +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\cube/target/ts/deps/spiral/lib/spiral/platform.ts / to: C:\home\git\spiral\lib\spiral\platform.ts +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/runtime.ts +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\cube/target/ts/deps/spiral/lib/spiral/runtime.ts / to: C:\home\git\spiral\lib\spiral\runtime.ts +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/threading.ts +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\cube/target/ts/deps/spiral/lib/spiral/threading.ts / to: C:\home\git\spiral\lib\spiral\threading.ts +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/networking.ts +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\cube/target/ts/deps/spiral/lib/spiral/networking.ts / to: C:\home\git\spiral\lib\spiral\networking.ts +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/file_system.ts +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\cube/target/ts/deps/spiral/lib/spiral/file_system.ts / to: C:\home\git\spiral\lib\spiral\file_system.ts +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/sm.ts +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\cube/target/ts/deps/spiral/lib/spiral/sm.ts / to: C:\home\git\spiral\lib\spiral\sm.ts +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/crypto.ts +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\cube/target/ts/deps/spiral/lib/spiral/crypto.ts / to: C:\home\git\spiral\lib\spiral\crypto.ts +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/trace.ts +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\cube/target/ts/deps/spiral/lib/spiral/trace.ts / to: C:\home\git\spiral\lib\spiral\trace.ts +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/lib.ts +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\cube/target/ts/deps/spiral/lib/spiral/lib.ts / to: C:\home\git\spiral\lib\spiral\lib.ts +polyglot/scripts/core.ps1/ResolveLink #4 / Path: C:\home\git\polyglot\deps\spiral\lib\spiral/../../deps/polyglot / parent_target: / path_target: C:\home\git\polyglot / parent: C:\home\git\polyglot\deps\spiral\lib\spiral\..\..\deps / End: polyglot +spiral/lib/spiral/lib.ps1/BuildFable / TargetDir: C:\home\git\polyglot\target\Builder\cube / ProjectName: cube / Language: py / Runtime: / root: C:\home\git\polyglot +Fable 5.0.0-alpha.5: F# to Python compiler (status: beta) + +Thanks to the contributor! @kirill-gerasimenko Stand with Ukraine! https://standwithukraine.com.ua/ Parsing target\Builder\cube\cube.fsproj... -Project and references (14 source files) parsed in 3482ms +Retrieving project options from cache, in case of issues run `dotnet fable clean` or try `--noCache` option. +Project and references (14 source files) parsed in 149ms Started Fable compilation... -Fable compilation finished in 7910ms - -.\lib\spiral\sm.fsx(38,20): (38,49) warning FABLE: CultureInfo argument is ignored -.\lib\spiral\sm.fsx(304,20): (304,51) warning FABLE: CultureInfo argument is ignored -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../lib/fsharp/common.py -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\cube/target/py/lib/fsharp/common.py / to: C:\home\git\polyglot\lib\spiral\..\..\lib\fsharp\common.py -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/common.py -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\cube/target/py/lib/spiral/common.py / to: C:\home\git\polyglot\lib\spiral\..\..\lib\spiral\common.py -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/date_time.py -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\cube/target/py/lib/spiral/date_time.py / to: C:\home\git\polyglot\lib\spiral\..\..\lib\spiral\date_time.py -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/async_.py -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\cube/target/py/lib/spiral/async_.py / to: C:\home\git\polyglot\lib\spiral\..\..\lib\spiral\async_.py -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/platform_.py -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\cube/target/py/lib/spiral/platform_.py / to: C:\home\git\polyglot\lib\spiral\..\..\lib\spiral\platform_.py -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/runtime.py -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\cube/target/py/lib/spiral/runtime.py / to: C:\home\git\polyglot\lib\spiral\..\..\lib\spiral\runtime.py -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/threading_.py -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\cube/target/py/lib/spiral/threading_.py / to: C:\home\git\polyglot\lib\spiral\..\..\lib\spiral\threading_.py -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/networking.py -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\cube/target/py/lib/spiral/networking.py / to: C:\home\git\polyglot\lib\spiral\..\..\lib\spiral\networking.py -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/file_system.py -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\cube/target/py/lib/spiral/file_system.py / to: C:\home\git\polyglot\lib\spiral\..\..\lib\spiral\file_system.py -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/sm.py -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\cube/target/py/lib/spiral/sm.py / to: C:\home\git\polyglot\lib\spiral\..\..\lib\spiral\sm.py -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/crypto.py -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\cube/target/py/lib/spiral/crypto.py / to: C:\home\git\polyglot\lib\spiral\..\..\lib\spiral\crypto.py -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/trace.py -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\cube/target/py/lib/spiral/trace.py / to: C:\home\git\polyglot\lib\spiral\..\..\lib\spiral\trace.py -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/lib.py -polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\lib\spiral\..\..\target\Builder\cube/target/py/lib/spiral/lib.py / to: C:\home\git\polyglot\lib\spiral\..\..\lib\spiral\lib.py -bun install v1.1.7 (b0b7db5c) - -Checked 11 installs across 13 packages (no changes) [78.00ms] +Fable compilation finished in 8160ms + +.\deps\spiral\lib\spiral\sm.fsx(38,20): (38,49) warning FABLE: CultureInfo argument is ignored +.\deps\spiral\lib\spiral\sm.fsx(307,20): (307,51) warning FABLE: CultureInfo argument is ignored +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/polyglot/target/Builder/cube/target/py/deps/spiral/lib/fsharp/common.py +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/polyglot/lib/fsharp/common.py +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\cube/target/py/lib/fsharp/common.py / to: C:\home\git\polyglot\lib\fsharp\common.py +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/common.py +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\cube/target/py/deps/spiral/lib/spiral/common.py / to: C:\home\git\spiral\lib\spiral\common.py +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/date_time.py +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\cube/target/py/deps/spiral/lib/spiral/date_time.py / to: C:\home\git\spiral\lib\spiral\date_time.py +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/async_.py +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\cube/target/py/deps/spiral/lib/spiral/async_.py / to: C:\home\git\spiral\lib\spiral\async_.py +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/platform_.py +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\cube/target/py/deps/spiral/lib/spiral/platform_.py / to: C:\home\git\spiral\lib\spiral\platform_.py +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/runtime.py +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\cube/target/py/deps/spiral/lib/spiral/runtime.py / to: C:\home\git\spiral\lib\spiral\runtime.py +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/threading_.py +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\cube/target/py/deps/spiral/lib/spiral/threading_.py / to: C:\home\git\spiral\lib\spiral\threading_.py +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/networking.py +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\cube/target/py/deps/spiral/lib/spiral/networking.py / to: C:\home\git\spiral\lib\spiral\networking.py +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/file_system.py +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\cube/target/py/deps/spiral/lib/spiral/file_system.py / to: C:\home\git\spiral\lib\spiral\file_system.py +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/sm.py +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\cube/target/py/deps/spiral/lib/spiral/sm.py / to: C:\home\git\spiral\lib\spiral\sm.py +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/crypto.py +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\cube/target/py/deps/spiral/lib/spiral/crypto.py / to: C:\home\git\spiral\lib\spiral\crypto.py +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/trace.py +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\cube/target/py/deps/spiral/lib/spiral/trace.py / to: C:\home\git\spiral\lib\spiral\trace.py +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/spiral/lib/spiral/lib.py +spiral/lib/spiral/lib.ps1/CopyItem / from: C:\home\git\polyglot\target\Builder\cube/target/py/deps/spiral/lib/spiral/lib.py / to: C:\home\git\spiral\lib\spiral\lib.py +bun install v1.1.45 (196621f2) + +Checked 11 installs across 13 packages (no changes) [62.00ms] [INFO]: 🎯 Checking for the Wasm target... [INFO]: 🌀 Compiling to Wasm... - Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.91s + Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.70s [INFO]: ⬇️ Installing wasm-bindgen... [INFO]: Optional field missing from Cargo.toml: 'description'. This is not necessary, but recommended -[INFO]: ✨ Done in 2.24s +[INFO]: ✨ Done in 2.05s [INFO]: 📦 Your wasm pkg is ready to publish at C:\home\git\polyglot\apps\spiral\temp\extension\pkg. ▲ [WARNING] "import.meta" is not available with the "iife" output format and will be empty [empty-import-meta] @@ -79032,1687 +36550,1616 @@ dist\content_script.js 26.7kb dist\service_worker.js 2.2kb -⚡ Done in 42ms +⚡ Done in 45ms $ playwright test Running 3 tests using 3 workers -[1/3] [Desktop Chrome] › extension.spec.ts:13:5 › libgen -[2/3] [Desktop Chrome] › extension.spec.ts:8:5 › popup extension -[3/3] [Desktop Chrome] › extension.spec.ts:3:5 › popup localhost -[4/3] (retries) [Desktop Chrome] › extension.spec.ts:13:5 › libgen (retry #1) - 1) [Desktop Chrome] › extension.spec.ts:13:5 › libgen ──────────────────────────────────────────── - - Test timeout of 60000ms exceeded. +[1/3] [Desktop Chrome] › extension.spec.ts:3:5 › popup localhost +[2/3] [Desktop Chrome] › extension.spec.ts:13:5 › libgen +[3/3] [Desktop Chrome] › extension.spec.ts:8:5 › popup extension + 3 passed (9.5s) - Error: page.type: Target page, context or browser has been closed - Call log: - - waiting for locator('#searchform') +To open last HTML report run: - - 13 | test("libgen", async ({ page }) => { - 14 | await page.goto("https://libgen.is") - > 15 | await page.type("#searchform", "aaA") - | ^ - 16 | await expect(page.locator("#searchform")).toHaveValue("AAA") - 17 | }) - 18 | - - at C:\home\git\polyglot\apps\spiral\temp\extension\e2e\extension.spec.ts:15:14 - - Retry #1 ─────────────────────────────────────────────────────────────────────────────────────── - - Test timeout of 60000ms exceeded. - - Error: page.type: Target page, context or browser has been closed - Call log: - - waiting for locator('#searchform') - - - 13 | test("libgen", async ({ page }) => { - 14 | await page.goto("https://libgen.is") - > 15 | await page.type("#searchform", "aaA") - | ^ - 16 | await expect(page.locator("#searchform")).toHaveValue("AAA") - 17 | }) - 18 | - - at C:\home\git\polyglot\apps\spiral\temp\extension\e2e\extension.spec.ts:15:14 - - attachment #1: trace (application/zip) ───────────────────────────────────────────────────────── - test-results\extension-libgen-Desktop-Chrome-retry1\trace.zip - Usage: - - npx playwright show-trace test-results\extension-libgen-Desktop-Chrome-retry1\trace.zip - - ──────────────────────────────────────────────────────────────────────────────────────────────── - - - 1 failed - [Desktop Chrome] › extension.spec.ts:13:5 › libgen ───────────────────────────────────────────── - 2 passed (2.4m) - - Serving HTML report at http://[::1]:9323. Press Ctrl+C to quit. -error: script "test:e2e" exited with code 1 - -# Invoke-Block / $retry: 1/1 / $Location: / Get-Location: C:\home\git\polyglot\apps\spiral\temp\extension / $OnError: Continue / $exitcode: 1 / $EnvVars: { - "PATH": "C:\\Users\\i574n\\scoop\\apps\\pwsh\\current;C:\\Program Files\\NVIDIA\\CUDNN\\v9.1\\bin;C:\\ProgramData\\scoop\\shims;C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\;C:\\WINDOWS\\System32\\OpenSSH\\;C:\\ProgramData\\chocolatey\\bin;C:\\Program Files\\dotnet\\;C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\;C:\\WINDOWS\\System32\\OpenSSH\\;C:\\Program Files\\Intel\\WiFi\\bin\\;C:\\Program Files\\Common Files\\Intel\\WirelessCommon\\;C:\\Program Files\\Perforce;C:\\Program Files\\Wasmtime\\bin;C:\\Program Files\\Perforce\\;C:\\Program Files\\Microsoft SQL Server\\150\\Tools\\Binn\\;C:\\Program Files (x86)\\Windows Kits\\10\\Windows Performance Toolkit\\;C:\\Users\\i574n\\scoop\\apps\\vscode-insiders\\current\\bin;C:\\Users\\i574n\\scoop\\apps\\elixir\\current\\bin;C:\\Users\\i574n\\scoop\\apps\\openssl\\current\\bin;C:\\Users\\i574n\\scoop\\apps\\vulkan\\current\\Bin;C:\\Users\\i574n\\scoop\\apps\\vulkan\\current\\Tools;C:\\Users\\i574n\\scoop\\apps\\python312\\current\\Scripts;C:\\Users\\i574n\\scoop\\apps\\python312\\current\\.;C:\\Users\\i574n\\scoop\\apps\\dotnet-sdk\\current\\.;C:\\Users\\i574n\\scoop\\apps\\perl\\current\\perl\\site\\bin;C:\\Users\\i574n\\scoop\\apps\\perl\\current\\perl\\bin;C:\\Users\\i574n\\scoop\\apps\\rustup\\current\\.cargo\\bin;C:\\Users\\i574n\\scoop\\apps\\latex\\current\\texmfs\\install\\miktex\\bin\\x64;C:\\Users\\i574n\\scoop\\apps\\dotnet-sdk-preview\\current;C:\\Users\\i574n\\scoop\\apps\\dotnet-sdk\\current;C:\\Users\\i574n\\scoop\\apps\\gsudo\\current;C:\\Users\\i574n\\scoop\\apps\\python\\current;C:\\Users\\i574n\\scoop\\apps\\nircmd\\current;C:\\Users\\i574n\\AppData\\Local\\Microsoft\\WindowsApps;C:\\Users\\i574n/scoop/buckets/mold/home/windows/path;C:\\Users\\i574n/scoop/persist/rustup/.cargo/bin;C:\\Users\\i574n/scoop/apps/nvm/current/nodejs/nodejs;C:\\Users\\i574n/scoop/apps/cygwin/current/root/bin;C:\\Users\\i574n\\AppData\\Local\\Programs\\Microsoft VS Code\\bin;C:\\Users\\i574n\\AppData\\Local\\Microsoft\\WindowsApps;C:\\Users\\i574n\\.bun\\bin;C:\\Users\\i574n\\.dotnet\\tools;C:\\Users\\i574n\\scoop\\shims;C:\\Users\\i574n\\.fly\\bin;C:\\Program Files\\Wasmtime\\bin;C:\\Users\\i574n\\.dotnet\\tools;C:\\Users\\i574n/.cargo/bin;C:\\Users\\i574n/.bun/bin;C:\\Users\\i574n/.cargo/bin;C:\\Users\\i574n/.bun/bin;C:\\Users\\i574n/.cargo/bin;C:\\Users\\i574n/.bun/bin;C:\\Users\\i574n/.cargo/bin;C:\\Users\\i574n/.bun/bin" -} / $Error: '' / $ScriptBlock: -'~/.bun/bin/bun test:e2e' + npx playwright show-report 00:00:00 v #1 async.run_with_timeout_async / { timeout = 180 } -00:00:00 d #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0 - ""C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 --default-int i32 --default-float f64"; options = { command = dotnet "C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release\Spiral.dll" --port 13805 --default-int i32 --default-float f64; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = Some <fun:compiler@87-4>; stdin = None; trace = true; working_directory = Some "C:\home\git\polyglot" } } -00:00:00 v #2 > 00:00:00 d #1 pwd: C:\home\git\polyglot -00:00:00 v #3 > 00:00:00 d #2 dllPath: C:\home\git\polyglot\deps\The-Spiral-Language\The Spiral Language 2\artifacts\bin\The Spiral Language 2\release -00:00:00 v #4 > 00:00:00 d #3 targetDir: C:\home\git\polyglot\target/spiral_Eval -00:00:01 v #2 async.run_with_timeout_async / { timeout = 100 } -00:00:01 v #5 > Starting the Spiral Server. It is bound to: http://localhost:13805 -00:00:01 v #3 async.run_with_timeout_async / { timeout = 100 } -00:00:01 v #4 async.run_with_timeout_async / { timeout = 100 } -00:00:01 v #1 Supervisor.sendJson / port: 13805 / json: {"Ping":true} / result: -00:00:01 v #2 Supervisor.awaitCompiler / Ping / result: 'Some null' / port: 13805 / retry: 1 -00:00:01 v #6 > Server bound to: http://localhost:13805 -00:00:01 d #7 runtime.execute_with_options_async / { file_name = ../../../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path build.dib"; options = { command = ../../../../deps/spiral/workspace/target/release/spiral.exe dib --path build.dib; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } -00:00:01 v #8 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "build.dib"])) } -00:00:01 v #9 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/apps/spiral/temp/test/build.dib", "--output-path", "c:/home/git/polyglot/apps/spiral/temp/test/build.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/apps/spiral/temp/test/build.dib" --output-path "c:/home/git/polyglot/apps/spiral/temp/test/build.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } -00:00:03 v #10 > > -00:00:03 v #11 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:03 v #12 > > │ # test -00:00:03 v #13 > > -00:00:03 v #14 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:03 v #15 > > │ ## include scripts +00:00:00 d #1 runtime.execute_with_options_async / { file_name = ../../../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 "dib --path build.dib"; options = { command = ../../../../deps/spiral/workspace/target/release/spiral.exe dib --path build.dib; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } } +00:00:00 v #2 > 00:00:00 d #1 spiral.main / { args = Array(MutCell(["dib", "--path", "build.dib"])) } +00:00:00 v #3 > 00:00:00 d #2 runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", "--exit-after-run", "--run", "c:/home/git/polyglot/apps/spiral/temp/test/build.dib", "--output-path", "c:/home/git/polyglot/apps/spiral/temp/test/build.dib.ipynb"]; options = { command = dotnet repl --exit-after-run --run "c:/home/git/polyglot/apps/spiral/temp/test/build.dib" --output-path "c:/home/git/polyglot/apps/spiral/temp/test/build.dib.ipynb"; cancellation_token = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; working_directory = None } } +00:00:02 v #4 > > +00:00:02 v #5 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:02 v #6 > > │ # test +00:00:02 v #7 > > +00:00:02 v #8 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:02 v #9 > > │ ## include scripts +00:00:02 v #10 > > +00:00:02 v #11 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:02 v #12 > > │ ### include notebook core +00:00:02 v #13 > > +00:00:02 v #14 > > ── pwsh ──────────────────────────────────────────────────────────────────────── +00:00:02 v #15 > > . ../../../../scripts/nbs_header.ps1 00:00:03 v #16 > > 00:00:03 v #17 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:03 v #18 > > │ ### include notebook core +00:00:03 v #18 > > │ ### Include core functions script 00:00:03 v #19 > > 00:00:03 v #20 > > ── pwsh ──────────────────────────────────────────────────────────────────────── -00:00:03 v #21 > > . ../../../../scripts/nbs_header.ps1 +00:00:03 v #21 > > . ../../../../scripts/core.ps1 00:00:03 v #22 > > 00:00:03 v #23 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:03 v #24 > > │ ### Include core functions script +00:00:03 v #24 > > │ ### Include spiral library 00:00:03 v #25 > > 00:00:03 v #26 > > ── pwsh ──────────────────────────────────────────────────────────────────────── -00:00:03 v #27 > > . ../../../../scripts/core.ps1 +00:00:03 v #27 > > . ../../../../deps/spiral/lib/spiral/lib.ps1 00:00:03 v #28 > > 00:00:03 v #29 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:03 v #30 > > │ ### Include spiral library +00:00:03 v #30 > > │ ## execute project commands 00:00:03 v #31 > > -00:00:03 v #32 > > ── pwsh ──────────────────────────────────────────────────────────────────────── -00:00:03 v #33 > > . ../../../../lib/spiral/lib.ps1 +00:00:03 v #32 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:03 v #33 > > │ ### run notebook with retries using spiral supervisor 00:00:03 v #34 > > -00:00:03 v #35 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:03 v #36 > > │ ## execute project commands -00:00:03 v #37 > > -00:00:03 v #38 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:03 v #39 > > │ ### run notebook with retries using spiral supervisor -00:00:03 v #40 > > -00:00:03 v #41 > > ── pwsh ──────────────────────────────────────────────────────────────────────── -00:00:03 v #42 > > { . ../../../../apps/spiral/dist/Supervisor$(_exe) --execute-command -00:00:03 v #43 > > "../../../../deps/spiral/workspace/target/release/spiral$(_exe) dib --path -00:00:03 v #44 > > test.dib --retries 3" } | Invoke-Block -00:00:18 v #45 > <test> -00:00:18 v #46 > </test> -00:00:21 v #47 > > -00:00:21 v #48 > > ── [ 18.01s - stdout ] ───────────────────────────────────────────────────────── -00:00:21 v #49 > > │ 00:00:00 v #1 async.run_with_timeout_async / { timeout = -00:00:21 v #50 > > 180 } -00:00:21 v #51 > > │ 00:00:00 d #1 runtime.execute_with_options_async / { -00:00:21 v #52 > > file_name = ../../../../deps/spiral/workspace/target/release/spiral.exe; -00:00:21 v #53 > > arguments = US5_0 "dib --path test.dib --retries 3"; options = { command = -00:00:21 v #54 > > ../../../../deps/spiral/workspace/target/release/spiral.exe dib --path test.dib -00:00:21 v #55 > > --retries 3; cancellation_token = Some System.Threading.CancellationToken; -00:00:21 v #56 > > environment_variables = [||]; on_line = None; stdin = None; trace = true; -00:00:21 v #57 > > working_directory = None } } -00:00:21 v #58 > > │ 00:00:01 v #2 > 00:00:00 d #1 spiral.main / { args -00:00:21 v #59 > > = Array(MutCell(["dib", "--path", "test.dib", "--retries", "3"])) } -00:00:21 v #60 > > │ 00:00:01 v #3 > 00:00:00 d #2 -00:00:21 v #61 > > runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", -00:00:21 v #62 > > "--exit-after-run", "--run", -00:00:21 v #63 > > "c:/home/git/polyglot/apps/spiral/temp/test/test.dib", "--output-path", -00:00:21 v #64 > > "c:/home/git/polyglot/apps/spiral/temp/test/test.dib.ipynb"]; options = { -00:00:21 v #65 > > command = dotnet repl --exit-after-run --run -00:00:21 v #66 > > "c:/home/git/polyglot/apps/spiral/temp/test/test.dib" --output-path -00:00:21 v #67 > > "c:/home/git/polyglot/apps/spiral/temp/test/test.dib.ipynb"; cancellation_token -00:00:21 v #68 > > = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), -00:00:21 v #69 > > ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; -00:00:21 v #70 > > working_directory = None } } -00:00:21 v #71 > > │ 00:00:02 v #4 > > -00:00:21 v #72 > > │ 00:00:02 v #5 > > ── markdown -00:00:21 v #73 > > ──────────────────────────────────────────────────────────────────── -00:00:21 v #74 > > │ 00:00:02 v #6 > > │ # test (Polyglot) -00:00:21 v #75 > > │ 00:00:05 v #7 > > -00:00:21 v #76 > > │ 00:00:05 v #8 > > ── spiral -00:00:21 v #77 > > ────────────────────────────────────────────────────────────────────── -00:00:21 v #78 > > │ 00:00:05 v #9 > > //// test -00:00:21 v #79 > > │ 00:00:05 v #10 > > -00:00:21 v #80 > > │ 00:00:05 v #11 > > open testing -00:00:21 v #81 > > │ 00:00:09 v #12 > > -00:00:21 v #82 > > │ 00:00:09 v #13 > > ── spiral -00:00:21 v #83 > > ────────────────────────────────────────────────────────────────────── -00:00:21 v #84 > > │ 00:00:09 v #14 > > //// test -00:00:21 v #85 > > │ 00:00:09 v #15 > > //// print_code -00:00:21 v #86 > > │ 00:00:09 v #16 > > -00:00:21 v #87 > > │ 00:00:09 v #17 > > inl jp = [[ "J"; "P" ]] -00:00:21 v #88 > > │ 00:00:09 v #18 > > inl tf = [[ "T"; "F" ]] -00:00:21 v #89 > > │ 00:00:09 v #19 > > inl sn = [[ "S"; "N" ]] -00:00:21 v #90 > > │ 00:00:09 v #20 > > inl ie = [[ "I"; "E" ]] -00:00:21 v #91 > > │ 00:00:09 v #21 > > -00:00:21 v #92 > > │ 00:00:09 v #22 > > (ie, ([[]] : _ string)) -00:00:21 v #93 > > │ 00:00:09 v #23 > > ||> listm.foldBack fun ie' acc => -00:00:21 v #94 > > │ 00:00:09 v #24 > > inl ssnn acc' jp' = -00:00:21 v #95 > > │ 00:00:09 v #25 > > (sn, acc') -00:00:21 v #96 > > │ 00:00:09 v #26 > > ||> listm.foldBack fun sn' -00:00:21 v #97 > > acc' => -00:00:21 v #98 > > │ 00:00:09 v #27 > > inl c' ie' sn' tf' jp' = -00:00:21 v #99 > > │ 00:00:09 v #28 > > -00:00:21 v #100 > > $'$"{!ie'}{!sn'}{!tf'}{!jp'}"' -00:00:21 v #101 > > │ 00:00:09 v #29 > > -00:00:21 v #102 > > │ 00:00:09 v #30 > > if listm.length acc' % -00:00:21 v #103 > > 4i32 = 2 then -00:00:21 v #104 > > │ 00:00:09 v #31 > > (tf, acc') -00:00:21 v #105 > > │ 00:00:09 v #32 > > ||> listm.foldBack -00:00:21 v #106 > > fun tf' acc'' => -00:00:21 v #107 > > │ 00:00:09 v #33 > > c' ie' sn' tf' -00:00:21 v #108 > > jp' :: acc'' -00:00:21 v #109 > > │ 00:00:09 v #34 > > else -00:00:21 v #110 > > │ 00:00:09 v #35 > > (acc', tf) -00:00:21 v #111 > > │ 00:00:09 v #36 > > ||> listm.fold fun -00:00:21 v #112 > > acc'' tf' => -00:00:21 v #113 > > │ 00:00:09 v #37 > > c' ie' sn' tf' -00:00:21 v #114 > > jp' :: acc'' -00:00:21 v #115 > > │ 00:00:09 v #38 > > if acc = [[]] then -00:00:21 v #116 > > │ 00:00:09 v #39 > > (acc, jp) -00:00:21 v #117 > > │ 00:00:09 v #40 > > ||> listm.fold fun acc' jp' -00:00:21 v #118 > > => -00:00:21 v #119 > > │ 00:00:09 v #41 > > ssnn acc' jp' -00:00:21 v #120 > > │ 00:00:09 v #42 > > else -00:00:21 v #121 > > │ 00:00:09 v #43 > > (jp, acc) -00:00:21 v #122 > > │ 00:00:09 v #44 > > ||> listm.foldBack fun jp' -00:00:21 v #123 > > acc' => -00:00:21 v #124 > > │ 00:00:09 v #45 > > ssnn acc' jp' -00:00:21 v #125 > > │ 00:00:09 v #46 > > |> listm'.box -00:00:21 v #126 > > │ 00:00:09 v #47 > > |> listm'.to_array' -00:00:21 v #127 > > │ 00:00:09 v #48 > > |> _assert_eq' ;[[ -00:00:21 v #128 > > │ 00:00:09 v #49 > > "ISTJ"; "ISFJ"; "INFJ"; "INTJ" -00:00:21 v #129 > > │ 00:00:09 v #50 > > "ISTP"; "ISFP"; "INFP"; "INTP" -00:00:21 v #130 > > │ 00:00:09 v #51 > > "ESTP"; "ESFP"; "ENFP"; "ENTP" -00:00:21 v #131 > > │ 00:00:09 v #52 > > "ESTJ"; "ESFJ"; "ENFJ"; "ENTJ" -00:00:21 v #132 > > │ 00:00:09 v #53 > > ]] -00:00:21 v #133 > > │ 00:00:10 v #54 > > -00:00:21 v #134 > > │ 00:00:10 v #55 > > ── [ 1.24s - stdout ] -00:00:21 v #135 > > ────────────────────────────────────────────────────────── -00:00:21 v #136 > > │ 00:00:10 v #56 > > │ let rec method1 -00:00:21 v #137 > > (v0 : bool) : bool = -00:00:21 v #138 > > │ 00:00:10 v #57 > > │ v0 -00:00:21 v #139 > > │ 00:00:10 v #58 > > │ and closure0 (v0 : -00:00:21 v #140 > > string) () : unit = -00:00:21 v #141 > > │ 00:00:10 v #59 > > │ let v1 : -00:00:21 v #142 > > (string -> unit) = System.Console.WriteLine -00:00:21 v #143 > > │ 00:00:10 v #60 > > │ v1 v0 -00:00:21 v #144 > > │ 00:00:10 v #61 > > │ and method0 () : -00:00:21 v #145 > > unit = -00:00:21 v #146 > > │ 00:00:10 v #62 > > │ let v0 : -00:00:21 v #147 > > string = "E" -00:00:21 v #148 > > │ 00:00:10 v #63 > > │ let v1 : -00:00:21 v #149 > > string = "N" -00:00:21 v #150 > > │ 00:00:10 v #64 > > │ let v2 : -00:00:21 v #151 > > string = "T" -00:00:21 v #152 > > │ 00:00:10 v #65 > > │ let v3 : -00:00:21 v #153 > > string = "J" -00:00:21 v #154 > > │ 00:00:10 v #66 > > │ let v4 : -00:00:21 v #155 > > string = $"{v0}{v1}{v2}{v3}" -00:00:21 v #156 > > │ 00:00:10 v #67 > > │ let v5 : -00:00:21 v #157 > > string = "F" -00:00:21 v #158 > > │ 00:00:10 v #68 > > │ let v6 : -00:00:21 v #159 > > string = $"{v0}{v1}{v5}{v3}" -00:00:21 v #160 > > │ 00:00:10 v #69 > > │ let v7 : -00:00:21 v #161 > > string = "S" -00:00:21 v #162 > > │ 00:00:10 v #70 > > │ let v8 : -00:00:21 v #163 > > string = $"{v0}{v7}{v5}{v3}" -00:00:21 v #164 > > │ 00:00:10 v #71 > > │ let v9 : -00:00:21 v #165 > > string = $"{v0}{v7}{v2}{v3}" -00:00:21 v #166 > > │ 00:00:10 v #72 > > │ let v10 : -00:00:21 v #167 > > string = "P" -00:00:21 v #168 > > │ 00:00:10 v #73 > > │ let v11 : -00:00:21 v #169 > > string = $"{v0}{v1}{v2}{v10}" -00:00:21 v #170 > > │ 00:00:10 v #74 > > │ let v12 : -00:00:21 v #171 > > string = $"{v0}{v1}{v5}{v10}" -00:00:21 v #172 > > │ 00:00:10 v #75 > > │ let v13 : -00:00:21 v #173 > > string = $"{v0}{v7}{v5}{v10}" -00:00:21 v #174 > > │ 00:00:10 v #76 > > │ let v14 : -00:00:21 v #175 > > string = $"{v0}{v7}{v2}{v10}" -00:00:21 v #176 > > │ 00:00:10 v #77 > > │ let v15 : -00:00:21 v #177 > > string = "I" -00:00:21 v #178 > > │ 00:00:10 v #78 > > │ let v16 : -00:00:21 v #179 > > string = $"{v15}{v1}{v2}{v10}" -00:00:21 v #180 > > │ 00:00:10 v #79 > > │ let v17 : -00:00:21 v #181 > > string = $"{v15}{v1}{v5}{v10}" -00:00:21 v #182 > > │ 00:00:10 v #80 > > │ let v18 : -00:00:21 v #183 > > string = $"{v15}{v7}{v5}{v10}" -00:00:21 v #184 > > │ 00:00:10 v #81 > > │ let v19 : -00:00:21 v #185 > > string = $"{v15}{v7}{v2}{v10}" -00:00:21 v #186 > > │ 00:00:10 v #82 > > │ let v20 : -00:00:21 v #187 > > string = $"{v15}{v1}{v2}{v3}" -00:00:21 v #188 > > │ 00:00:10 v #83 > > │ let v21 : -00:00:21 v #189 > > string = $"{v15}{v1}{v5}{v3}" -00:00:21 v #190 > > │ 00:00:10 v #84 > > │ let v22 : -00:00:21 v #191 > > string = $"{v15}{v7}{v5}{v3}" -00:00:21 v #192 > > │ 00:00:10 v #85 > > │ let v23 : -00:00:21 v #193 > > string = $"{v15}{v7}{v2}{v3}" -00:00:21 v #194 > > │ 00:00:10 v #86 > > │ let v24 : -00:00:21 v #195 > > string list = [] -00:00:21 v #196 > > │ 00:00:10 v #87 > > │ let v25 : -00:00:21 v #197 > > string list = v4 :: v24 -00:00:21 v #198 > > │ 00:00:10 v #88 > > │ let v28 : -00:00:21 v #199 > > string list = v6 :: v25 -00:00:21 v #200 > > │ 00:00:10 v #89 > > │ let v31 : -00:00:21 v #201 > > string list = v8 :: v28 -00:00:21 v #202 > > │ 00:00:10 v #90 > > │ let v34 : -00:00:21 v #203 > > string list = v9 :: v31 -00:00:21 v #204 > > │ 00:00:10 v #91 > > │ let v37 : -00:00:21 v #205 > > string list = v11 :: v34 -00:00:21 v #206 > > │ 00:00:10 v #92 > > │ let v40 : -00:00:21 v #207 > > string list = v12 :: v37 -00:00:21 v #208 > > │ 00:00:10 v #93 > > │ let v43 : -00:00:21 v #209 > > string list = v13 :: v40 -00:00:21 v #210 > > │ 00:00:10 v #94 > > │ let v46 : -00:00:21 v #211 > > string list = v14 :: v43 -00:00:21 v #212 > > │ 00:00:10 v #95 > > │ let v49 : -00:00:21 v #213 > > string list = v16 :: v46 -00:00:21 v #214 > > │ 00:00:10 v #96 > > │ let v52 : -00:00:21 v #215 > > string list = v17 :: v49 -00:00:21 v #216 > > │ 00:00:10 v #97 > > │ let v55 : -00:00:21 v #217 > > string list = v18 :: v52 -00:00:21 v #218 > > │ 00:00:10 v #98 > > │ let v58 : -00:00:21 v #219 > > string list = v19 :: v55 -00:00:21 v #220 > > │ 00:00:10 v #99 > > │ let v61 : -00:00:21 v #221 > > string list = v20 :: v58 -00:00:21 v #222 > > │ 00:00:10 v #100 > > │ let v64 : -00:00:21 v #223 > > string list = v21 :: v61 -00:00:21 v #224 > > │ 00:00:10 v #101 > > │ let v67 : -00:00:21 v #225 > > string list = v22 :: v64 -00:00:21 v #226 > > │ 00:00:10 v #102 > > │ let v70 : -00:00:21 v #227 > > string list = v23 :: v67 -00:00:21 v #228 > > │ 00:00:10 v #103 > > │ let v73 : -00:00:21 v #229 > > (string list -> (string [])) = List.toArray -00:00:21 v #230 > > │ 00:00:10 v #104 > > │ let v74 : -00:00:21 v #231 > > (string []) = v73 v70 -00:00:21 v #232 > > │ 00:00:10 v #105 > > │ let v77 : -00:00:21 v #233 > > string = "ISTJ" -00:00:21 v #234 > > │ 00:00:10 v #106 > > │ let v78 : -00:00:21 v #235 > > string = "ISFJ" -00:00:21 v #236 > > │ 00:00:10 v #107 > > │ let v79 : -00:00:21 v #237 > > string = "INFJ" -00:00:21 v #238 > > │ 00:00:10 v #108 > > │ let v80 : -00:00:21 v #239 > > string = "INTJ" -00:00:21 v #240 > > │ 00:00:10 v #109 > > │ let v81 : -00:00:21 v #241 > > string = "ISTP" -00:00:21 v #242 > > │ 00:00:10 v #110 > > │ let v82 : -00:00:21 v #243 > > string = "ISFP" -00:00:21 v #244 > > │ 00:00:10 v #111 > > │ let v83 : -00:00:21 v #245 > > string = "INFP" -00:00:21 v #246 > > │ 00:00:10 v #112 > > │ let v84 : -00:00:21 v #247 > > string = "INTP" -00:00:21 v #248 > > │ 00:00:10 v #113 > > │ let v85 : -00:00:21 v #249 > > string = "ESTP" -00:00:21 v #250 > > │ 00:00:10 v #114 > > │ let v86 : -00:00:21 v #251 > > string = "ESFP" -00:00:21 v #252 > > │ 00:00:10 v #115 > > │ let v87 : -00:00:21 v #253 > > string = "ENFP" -00:00:21 v #254 > > │ 00:00:10 v #116 > > │ let v88 : -00:00:21 v #255 > > string = "ENTP" -00:00:21 v #256 > > │ 00:00:10 v #117 > > │ let v89 : -00:00:21 v #257 > > string = "ESTJ" -00:00:21 v #258 > > │ 00:00:10 v #118 > > │ let v90 : -00:00:21 v #259 > > string = "ESFJ" -00:00:21 v #260 > > │ 00:00:10 v #119 > > │ let v91 : -00:00:21 v #261 > > string = "ENFJ" -00:00:21 v #262 > > │ 00:00:10 v #120 > > │ let v92 : -00:00:21 v #263 > > string = "ENTJ" -00:00:21 v #264 > > │ 00:00:10 v #121 > > │ let v93 : -00:00:21 v #265 > > (string []) = [|v77; v78; v79; v80; v81; v82; -00:00:21 v #266 > > │ 00:00:10 v #122 > > v83; v84; v85; v86; v87; v88; v89; -00:00:21 v #267 > > v90; v91; v92|] -00:00:21 v #268 > > │ 00:00:10 v #123 > > │ let v94 : -00:00:21 v #269 > > bool = v74 = v93 -00:00:21 v #270 > > │ 00:00:10 v #124 > > │ let v98 : -00:00:21 v #271 > > bool = -00:00:21 v #272 > > │ 00:00:10 v #125 > > │ if v94 -00:00:21 v #273 > > then -00:00:21 v #274 > > │ 00:00:10 v #126 > > │ true -00:00:21 v #275 > > │ 00:00:10 v #127 > > │ else -00:00:21 v #276 > > │ 00:00:10 v #128 > > │ -00:00:21 v #277 > > method1(v94) -00:00:21 v #278 > > │ 00:00:10 v #129 > > │ let v99 : -00:00:21 v #279 > > string = "__assert_eq'" -00:00:21 v #280 > > │ 00:00:10 v #130 > > │ let v100 : -00:00:21 v #281 > > string = $"{v99} / actual: %A{v74} / expected: -00:00:21 v #282 > > │ 00:00:10 v #131 > > %A{v93}" -00:00:21 v #283 > > │ 00:00:10 v #132 > > │ let v103 : -00:00:21 v #284 > > unit = () -00:00:21 v #285 > > │ 00:00:10 v #133 > > │ let v104 : -00:00:21 v #286 > > (unit -> unit) = closure0(v100) -00:00:21 v #287 > > │ 00:00:10 v #134 > > │ let v105 : -00:00:21 v #288 > > unit = (fun () -> v104 (); v103) () -00:00:21 v #289 > > │ 00:00:10 v #135 > > │ let v107 : -00:00:21 v #290 > > bool = v98 = false -00:00:21 v #291 > > │ 00:00:10 v #136 > > │ if v107 then -00:00:21 v #292 > > │ 00:00:10 v #137 > > │ -00:00:21 v #293 > > failwith<unit> v100 -00:00:21 v #294 > > │ 00:00:10 v #138 > > │ method0() -00:00:21 v #295 > > │ 00:00:10 v #139 > > │ -00:00:21 v #296 > > │ 00:00:10 v #140 > > │ __assert_eq' -00:00:21 v #297 > > actual: [|"ISTJ"; "ISFJ"; "INFJ"; "INTJ"; -00:00:21 v #298 > > │ 00:00:10 v #141 > > "ISTP"; "ISFP"; "INFP"; "INTP"; -00:00:21 v #299 > > "ESTP"; "ESFP"; -00:00:21 v #300 > > │ 00:00:10 v #142 > > │ "ENFP"; "ENTP"; -00:00:21 v #301 > > "ESTJ"; "ESFJ"; "ENFJ"; "ENTJ"|] -00:00:21 v #302 > > │ 00:00:10 v #143 > > expected: [|"ISTJ"; "ISFJ"; "INFJ"; -00:00:21 v #303 > > "INTJ"; "ISTP"; "ISFP"; "INFP"; "INTP"; -00:00:21 v #304 > > │ 00:00:10 v #144 > > "ESTP"; "ESFP"; -00:00:21 v #305 > > │ 00:00:10 v #145 > > │ "ENFP"; "ENTP"; -00:00:21 v #306 > > "ESTJ"; "ESFJ"; "ENFJ"; "ENTJ"|] -00:00:21 v #307 > > │ 00:00:10 v #146 > > │ -00:00:21 v #308 > > │ 00:00:10 v #147 > > -00:00:21 v #309 > > │ 00:00:10 v #148 > > ── spiral -00:00:21 v #310 > > ────────────────────────────────────────────────────────────────────── -00:00:21 v #311 > > │ 00:00:10 v #149 > > //// test -00:00:21 v #312 > > │ 00:00:10 v #150 > > //// print_code -00:00:21 v #313 > > │ 00:00:10 v #151 > > -00:00:21 v #314 > > │ 00:00:10 v #152 > > inl i_e = -00:00:21 v #315 > > │ 00:00:10 v #153 > > listm'.replicate 8i32 "I" ++ -00:00:21 v #316 > > listm'.replicate 8i32 "E" -00:00:21 v #317 > > │ 00:00:10 v #154 > > inl s_n = -00:00:21 v #318 > > │ 00:00:10 v #155 > > [[ "S"; "S"; "N"; "N" ]] -00:00:21 v #319 > > │ 00:00:10 v #156 > > |> listm'.replicate 4i32 -00:00:21 v #320 > > │ 00:00:10 v #157 > > |> listm'.collect id -00:00:21 v #321 > > │ 00:00:10 v #158 > > inl t_f = -00:00:21 v #322 > > │ 00:00:10 v #159 > > [[ "T"; "F"; "F"; "T" ]] -00:00:21 v #323 > > │ 00:00:10 v #160 > > |> listm'.replicate 4i32 -00:00:21 v #324 > > │ 00:00:10 v #161 > > |> listm'.collect id -00:00:21 v #325 > > │ 00:00:10 v #162 > > inl j_p = -00:00:21 v #326 > > │ 00:00:10 v #163 > > [[ "J"; "J"; "J"; "J" ]] -00:00:21 v #327 > > │ 00:00:10 v #164 > > ++ [[ "P"; "P"; "P"; "P" ]] -00:00:21 v #328 > > │ 00:00:10 v #165 > > ++ [[ "P"; "P"; "P"; "P" ]] -00:00:21 v #329 > > │ 00:00:10 v #166 > > ++ [[ "J"; "J"; "J"; "J" ]] -00:00:21 v #330 > > │ 00:00:10 v #167 > > inl mbti = -00:00:21 v #331 > > │ 00:00:10 v #168 > > listm'.map4 (fun a b c d => -00:00:21 v #332 > > $'$"{!a}{!b}{!c}{!d}"') i_e s_n t_f j_p -00:00:21 v #333 > > │ 00:00:10 v #169 > > -00:00:21 v #334 > > │ 00:00:10 v #170 > > mbti -00:00:21 v #335 > > │ 00:00:10 v #171 > > |> listm'.box -00:00:21 v #336 > > │ 00:00:10 v #172 > > |> listm'.to_array' -00:00:21 v #337 > > │ 00:00:10 v #173 > > |> _assert_eq' ;[[ -00:00:21 v #338 > > │ 00:00:10 v #174 > > "ISTJ"; "ISFJ"; "INFJ"; "INTJ" -00:00:21 v #339 > > │ 00:00:10 v #175 > > "ISTP"; "ISFP"; "INFP"; "INTP" -00:00:21 v #340 > > │ 00:00:10 v #176 > > "ESTP"; "ESFP"; "ENFP"; "ENTP" -00:00:21 v #341 > > │ 00:00:10 v #177 > > "ESTJ"; "ESFJ"; "ENFJ"; "ENTJ" -00:00:21 v #342 > > │ 00:00:10 v #178 > > ]] -00:00:21 v #343 > > │ 00:00:11 v #179 > > -00:00:21 v #344 > > │ 00:00:11 v #180 > > ── [ 691.10ms - stdout ] -00:00:21 v #345 > > ─────────────────────────────────────────────────────── -00:00:21 v #346 > > │ 00:00:11 v #181 > > │ let rec method1 -00:00:21 v #347 > > (v0 : bool) : bool = -00:00:21 v #348 > > │ 00:00:11 v #182 > > │ v0 -00:00:21 v #349 > > │ 00:00:11 v #183 > > │ and closure0 (v0 -00:00:21 v #350 > > : string) () : unit = -00:00:21 v #351 > > │ 00:00:11 v #184 > > │ let v1 : -00:00:21 v #352 > > (string -> unit) = System.Console.WriteLine -00:00:21 v #353 > > │ 00:00:11 v #185 > > │ v1 v0 -00:00:21 v #354 > > │ 00:00:11 v #186 > > │ and method0 () : -00:00:21 v #355 > > unit = -00:00:21 v #356 > > │ 00:00:11 v #187 > > │ let v0 : -00:00:21 v #357 > > string = "I" -00:00:21 v #358 > > │ 00:00:11 v #188 > > │ let v1 : -00:00:21 v #359 > > string = "S" -00:00:21 v #360 > > │ 00:00:11 v #189 > > │ let v2 : -00:00:21 v #361 > > string = "T" -00:00:21 v #362 > > │ 00:00:11 v #190 > > │ let v3 : -00:00:21 v #363 > > string = "J" -00:00:21 v #364 > > │ 00:00:11 v #191 > > │ let v4 : -00:00:21 v #365 > > string = $"{v0}{v1}{v2}{v3}" -00:00:21 v #366 > > │ 00:00:11 v #192 > > │ let v5 : -00:00:21 v #367 > > string = "F" -00:00:21 v #368 > > │ 00:00:11 v #193 > > │ let v6 : -00:00:21 v #369 > > string = $"{v0}{v1}{v5}{v3}" -00:00:21 v #370 > > │ 00:00:11 v #194 > > │ let v7 : -00:00:21 v #371 > > string = "N" -00:00:21 v #372 > > │ 00:00:11 v #195 > > │ let v8 : -00:00:21 v #373 > > string = $"{v0}{v7}{v5}{v3}" -00:00:21 v #374 > > │ 00:00:11 v #196 > > │ let v9 : -00:00:21 v #375 > > string = $"{v0}{v7}{v2}{v3}" -00:00:21 v #376 > > │ 00:00:11 v #197 > > │ let v10 : -00:00:21 v #377 > > string = "P" -00:00:21 v #378 > > │ 00:00:11 v #198 > > │ let v11 : -00:00:21 v #379 > > string = $"{v0}{v1}{v2}{v10}" -00:00:21 v #380 > > │ 00:00:11 v #199 > > │ let v12 : -00:00:21 v #381 > > string = $"{v0}{v1}{v5}{v10}" -00:00:21 v #382 > > │ 00:00:11 v #200 > > │ let v13 : -00:00:21 v #383 > > string = $"{v0}{v7}{v5}{v10}" -00:00:21 v #384 > > │ 00:00:11 v #201 > > │ let v14 : -00:00:21 v #385 > > string = $"{v0}{v7}{v2}{v10}" -00:00:21 v #386 > > │ 00:00:11 v #202 > > │ let v15 : -00:00:21 v #387 > > string = "E" -00:00:21 v #388 > > │ 00:00:11 v #203 > > │ let v16 : -00:00:21 v #389 > > string = $"{v15}{v1}{v2}{v10}" -00:00:21 v #390 > > │ 00:00:11 v #204 > > │ let v17 : -00:00:21 v #391 > > string = $"{v15}{v1}{v5}{v10}" -00:00:21 v #392 > > │ 00:00:11 v #205 > > │ let v18 : -00:00:21 v #393 > > string = $"{v15}{v7}{v5}{v10}" -00:00:21 v #394 > > │ 00:00:11 v #206 > > │ let v19 : -00:00:21 v #395 > > string = $"{v15}{v7}{v2}{v10}" -00:00:21 v #396 > > │ 00:00:11 v #207 > > │ let v20 : -00:00:21 v #397 > > string = $"{v15}{v1}{v2}{v3}" -00:00:21 v #398 > > │ 00:00:11 v #208 > > │ let v21 : -00:00:21 v #399 > > string = $"{v15}{v1}{v5}{v3}" -00:00:21 v #400 > > │ 00:00:11 v #209 > > │ let v22 : -00:00:21 v #401 > > string = $"{v15}{v7}{v5}{v3}" -00:00:21 v #402 > > │ 00:00:11 v #210 > > │ let v23 : -00:00:21 v #403 > > string = $"{v15}{v7}{v2}{v3}" -00:00:21 v #404 > > │ 00:00:11 v #211 > > │ let v24 : -00:00:21 v #405 > > string list = [] -00:00:21 v #406 > > │ 00:00:11 v #212 > > │ let v25 : -00:00:21 v #407 > > string list = v23 :: v24 -00:00:21 v #408 > > │ 00:00:11 v #213 > > │ let v28 : -00:00:21 v #409 > > string list = v22 :: v25 -00:00:21 v #410 > > │ 00:00:11 v #214 > > │ let v31 : -00:00:21 v #411 > > string list = v21 :: v28 -00:00:21 v #412 > > │ 00:00:11 v #215 > > │ let v34 : -00:00:21 v #413 > > string list = v20 :: v31 -00:00:21 v #414 > > │ 00:00:11 v #216 > > │ let v37 : -00:00:21 v #415 > > string list = v19 :: v34 -00:00:21 v #416 > > │ 00:00:11 v #217 > > │ let v40 : -00:00:21 v #417 > > string list = v18 :: v37 -00:00:21 v #418 > > │ 00:00:11 v #218 > > │ let v43 : -00:00:21 v #419 > > string list = v17 :: v40 -00:00:21 v #420 > > │ 00:00:11 v #219 > > │ let v46 : -00:00:21 v #421 > > string list = v16 :: v43 -00:00:21 v #422 > > │ 00:00:11 v #220 > > │ let v49 : -00:00:21 v #423 > > string list = v14 :: v46 -00:00:21 v #424 > > │ 00:00:11 v #221 > > │ let v52 : -00:00:21 v #425 > > string list = v13 :: v49 -00:00:21 v #426 > > │ 00:00:11 v #222 > > │ let v55 : -00:00:21 v #427 > > string list = v12 :: v52 -00:00:21 v #428 > > │ 00:00:11 v #223 > > │ let v58 : -00:00:21 v #429 > > string list = v11 :: v55 -00:00:21 v #430 > > │ 00:00:11 v #224 > > │ let v61 : -00:00:21 v #431 > > string list = v9 :: v58 -00:00:21 v #432 > > │ 00:00:11 v #225 > > │ let v64 : -00:00:21 v #433 > > string list = v8 :: v61 -00:00:21 v #434 > > │ 00:00:11 v #226 > > │ let v67 : -00:00:21 v #435 > > string list = v6 :: v64 -00:00:21 v #436 > > │ 00:00:11 v #227 > > │ let v70 : -00:00:21 v #437 > > string list = v4 :: v67 -00:00:21 v #438 > > │ 00:00:11 v #228 > > │ let v73 : -00:00:21 v #439 > > (string list -> (string [])) = List.toArray -00:00:21 v #440 > > │ 00:00:11 v #229 > > │ let v74 : -00:00:21 v #441 > > (string []) = v73 v70 -00:00:21 v #442 > > │ 00:00:11 v #230 > > │ let v77 : -00:00:21 v #443 > > string = "ISTJ" -00:00:21 v #444 > > │ 00:00:11 v #231 > > │ let v78 : -00:00:21 v #445 > > string = "ISFJ" -00:00:21 v #446 > > │ 00:00:11 v #232 > > │ let v79 : -00:00:21 v #447 > > string = "INFJ" -00:00:21 v #448 > > │ 00:00:11 v #233 > > │ let v80 : -00:00:21 v #449 > > string = "INTJ" -00:00:21 v #450 > > │ 00:00:11 v #234 > > │ let v81 : -00:00:21 v #451 > > string = "ISTP" -00:00:21 v #452 > > │ 00:00:11 v #235 > > │ let v82 : -00:00:21 v #453 > > string = "ISFP" -00:00:21 v #454 > > │ 00:00:11 v #236 > > │ let v83 : -00:00:21 v #455 > > string = "INFP" -00:00:21 v #456 > > │ 00:00:11 v #237 > > │ let v84 : -00:00:21 v #457 > > string = "INTP" -00:00:21 v #458 > > │ 00:00:11 v #238 > > │ let v85 : -00:00:21 v #459 > > string = "ESTP" -00:00:21 v #460 > > │ 00:00:11 v #239 > > │ let v86 : -00:00:21 v #461 > > string = "ESFP" -00:00:21 v #462 > > │ 00:00:11 v #240 > > │ let v87 : -00:00:21 v #463 > > string = "ENFP" -00:00:21 v #464 > > │ 00:00:11 v #241 > > │ let v88 : -00:00:21 v #465 > > string = "ENTP" -00:00:21 v #466 > > │ 00:00:11 v #242 > > │ let v89 : -00:00:21 v #467 > > string = "ESTJ" -00:00:21 v #468 > > │ 00:00:11 v #243 > > │ let v90 : -00:00:21 v #469 > > string = "ESFJ" -00:00:21 v #470 > > │ 00:00:11 v #244 > > │ let v91 : -00:00:21 v #471 > > string = "ENFJ" -00:00:21 v #472 > > │ 00:00:11 v #245 > > │ let v92 : -00:00:21 v #473 > > string = "ENTJ" -00:00:21 v #474 > > │ 00:00:11 v #246 > > │ let v93 : -00:00:21 v #475 > > (string []) = [|v77; v78; v79; v80; v81; v82; -00:00:21 v #476 > > │ 00:00:11 v #247 > > v83; v84; v85; v86; v87; v88; v89; -00:00:21 v #477 > > v90; v91; v92|] -00:00:21 v #478 > > │ 00:00:11 v #248 > > │ let v94 : -00:00:21 v #479 > > bool = v74 = v93 -00:00:21 v #480 > > │ 00:00:11 v #249 > > │ let v98 : -00:00:21 v #481 > > bool = -00:00:21 v #482 > > │ 00:00:11 v #250 > > │ if v94 -00:00:21 v #483 > > then -00:00:21 v #484 > > │ 00:00:11 v #251 > > │ true -00:00:21 v #485 > > │ 00:00:11 v #252 > > │ else -00:00:21 v #486 > > │ 00:00:11 v #253 > > │ -00:00:21 v #487 > > method1(v94) -00:00:21 v #488 > > │ 00:00:11 v #254 > > │ let v99 : -00:00:21 v #489 > > string = "__assert_eq'" -00:00:21 v #490 > > │ 00:00:11 v #255 > > │ let v100 : -00:00:21 v #491 > > string = $"{v99} / actual: %A{v74} / expected: -00:00:21 v #492 > > │ 00:00:11 v #256 > > %A{v93}" -00:00:21 v #493 > > │ 00:00:11 v #257 > > │ let v103 : -00:00:21 v #494 > > unit = () -00:00:21 v #495 > > │ 00:00:11 v #258 > > │ let v104 : -00:00:21 v #496 > > (unit -> unit) = closure0(v100) -00:00:21 v #497 > > │ 00:00:11 v #259 > > │ let v105 : -00:00:21 v #498 > > unit = (fun () -> v104 (); v103) () -00:00:21 v #499 > > │ 00:00:11 v #260 > > │ let v107 : -00:00:21 v #500 > > bool = v98 = false -00:00:21 v #501 > > │ 00:00:11 v #261 > > │ if v107 then -00:00:21 v #502 > > │ 00:00:11 v #262 > > │ -00:00:21 v #503 > > failwith<unit> v100 -00:00:21 v #504 > > │ 00:00:11 v #263 > > │ method0() -00:00:21 v #505 > > │ 00:00:11 v #264 > > │ -00:00:21 v #506 > > │ 00:00:11 v #265 > > │ __assert_eq' -00:00:21 v #507 > > actual: [|"ISTJ"; "ISFJ"; "INFJ"; "INTJ"; -00:00:21 v #508 > > │ 00:00:11 v #266 > > "ISTP"; "ISFP"; "INFP"; "INTP"; -00:00:21 v #509 > > "ESTP"; "ESFP"; -00:00:21 v #510 > > │ 00:00:11 v #267 > > │ "ENFP"; "ENTP"; -00:00:21 v #511 > > "ESTJ"; "ESFJ"; "ENFJ"; "ENTJ"|] -00:00:21 v #512 > > │ 00:00:11 v #268 > > expected: [|"ISTJ"; "ISFJ"; "INFJ"; -00:00:21 v #513 > > "INTJ"; "ISTP"; "ISFP"; "INFP"; "INTP"; -00:00:21 v #514 > > │ 00:00:11 v #269 > > "ESTP"; "ESFP"; -00:00:21 v #515 > > │ 00:00:11 v #270 > > │ "ENFP"; "ENTP"; -00:00:21 v #516 > > "ESTJ"; "ESFJ"; "ENFJ"; "ENTJ"|] -00:00:21 v #517 > > │ 00:00:11 v #271 > > │ -00:00:21 v #518 > > │ 00:00:11 v #272 > > -00:00:21 v #519 > > │ 00:00:11 v #273 > > ── spiral -00:00:21 v #520 > > ────────────────────────────────────────────────────────────────────── -00:00:21 v #521 > > │ 00:00:11 v #274 > > //// test -00:00:21 v #522 > > │ 00:00:11 v #275 > > //// print_code -00:00:21 v #523 > > │ 00:00:11 v #276 > > -00:00:21 v #524 > > │ 00:00:11 v #277 > > fun i => -00:00:21 v #525 > > │ 00:00:11 v #278 > > inl i_e = -00:00:21 v #526 > > │ 00:00:11 v #279 > > if i < 8 -00:00:21 v #527 > > │ 00:00:11 v #280 > > then "I" -00:00:21 v #528 > > │ 00:00:11 v #281 > > else "E" -00:00:21 v #529 > > │ 00:00:11 v #282 > > inl s_n = -00:00:21 v #530 > > │ 00:00:11 v #283 > > inl group = (i / 2) % 2 -00:00:21 v #531 > > │ 00:00:11 v #284 > > if group = 0 -00:00:21 v #532 > > │ 00:00:11 v #285 > > then "S" -00:00:21 v #533 > > │ 00:00:11 v #286 > > else "N" -00:00:21 v #534 > > │ 00:00:11 v #287 > > inl t_f = -00:00:21 v #535 > > │ 00:00:11 v #288 > > match i % 4 with -00:00:21 v #536 > > │ 00:00:11 v #289 > > | 0 => "T" -00:00:21 v #537 > > │ 00:00:11 v #290 > > | 1 => "F" -00:00:21 v #538 > > │ 00:00:11 v #291 > > | 2 => "F" -00:00:21 v #539 > > │ 00:00:11 v #292 > > | _ => "T" -00:00:21 v #540 > > │ 00:00:11 v #293 > > inl j_p = -00:00:21 v #541 > > │ 00:00:11 v #294 > > if i < 4 -00:00:21 v #542 > > │ 00:00:11 v #295 > > then "J" -00:00:21 v #543 > > │ 00:00:11 v #296 > > elif i < 12 -00:00:21 v #544 > > │ 00:00:11 v #297 > > then "P" -00:00:21 v #545 > > │ 00:00:11 v #298 > > else "J" -00:00:21 v #546 > > │ 00:00:11 v #299 > > $'$"{!i_e}{!s_n}{!t_f}{!j_p}"' -00:00:21 v #547 > > │ 00:00:11 v #300 > > |> listm.init 16i32 -00:00:21 v #548 > > │ 00:00:11 v #301 > > |> listm'.box -00:00:21 v #549 > > │ 00:00:11 v #302 > > |> listm'.to_array' -00:00:21 v #550 > > │ 00:00:11 v #303 > > |> _assert_eq' ;[[ -00:00:21 v #551 > > │ 00:00:11 v #304 > > "ISTJ"; "ISFJ"; "INFJ"; "INTJ" -00:00:21 v #552 > > │ 00:00:11 v #305 > > "ISTP"; "ISFP"; "INFP"; "INTP" -00:00:21 v #553 > > │ 00:00:11 v #306 > > "ESTP"; "ESFP"; "ENFP"; "ENTP" -00:00:21 v #554 > > │ 00:00:11 v #307 > > "ESTJ"; "ESFJ"; "ENFJ"; "ENTJ" -00:00:21 v #555 > > │ 00:00:11 v #308 > > ]] -00:00:21 v #556 > > │ 00:00:12 v #309 > > -00:00:21 v #557 > > │ 00:00:12 v #310 > > ── [ 585.68ms - stdout ] -00:00:21 v #558 > > ─────────────────────────────────────────────────────── -00:00:21 v #559 > > │ 00:00:12 v #311 > > │ let rec method1 -00:00:21 v #560 > > (v0 : bool) : bool = -00:00:21 v #561 > > │ 00:00:12 v #312 > > │ v0 -00:00:21 v #562 > > │ 00:00:12 v #313 > > │ and closure0 (v0 -00:00:21 v #563 > > : string) () : unit = -00:00:21 v #564 > > │ 00:00:12 v #314 > > │ let v1 : -00:00:21 v #565 > > (string -> unit) = System.Console.WriteLine -00:00:21 v #566 > > │ 00:00:12 v #315 > > │ v1 v0 -00:00:21 v #567 > > │ 00:00:12 v #316 > > │ and method0 () : -00:00:21 v #568 > > unit = -00:00:21 v #569 > > │ 00:00:12 v #317 > > │ let v0 : -00:00:21 v #570 > > string = "I" -00:00:21 v #571 > > │ 00:00:12 v #318 > > │ let v1 : -00:00:21 v #572 > > string = "S" -00:00:21 v #573 > > │ 00:00:12 v #319 > > │ let v2 : -00:00:21 v #574 > > string = "T" -00:00:21 v #575 > > │ 00:00:12 v #320 > > │ let v3 : -00:00:21 v #576 > > string = "J" -00:00:21 v #577 > > │ 00:00:12 v #321 > > │ let v4 : -00:00:21 v #578 > > string = $"{v0}{v1}{v2}{v3}" -00:00:21 v #579 > > │ 00:00:12 v #322 > > │ let v5 : -00:00:21 v #580 > > string = "F" -00:00:21 v #581 > > │ 00:00:12 v #323 > > │ let v6 : -00:00:21 v #582 > > string = $"{v0}{v1}{v5}{v3}" -00:00:21 v #583 > > │ 00:00:12 v #324 > > │ let v7 : -00:00:21 v #584 > > string = "N" -00:00:21 v #585 > > │ 00:00:12 v #325 > > │ let v8 : -00:00:21 v #586 > > string = $"{v0}{v7}{v5}{v3}" -00:00:21 v #587 > > │ 00:00:12 v #326 > > │ let v9 : -00:00:21 v #588 > > string = $"{v0}{v7}{v2}{v3}" -00:00:21 v #589 > > │ 00:00:12 v #327 > > │ let v10 : -00:00:21 v #590 > > string = "P" -00:00:21 v #591 > > │ 00:00:12 v #328 > > │ let v11 : -00:00:21 v #592 > > string = $"{v0}{v1}{v2}{v10}" -00:00:21 v #593 > > │ 00:00:12 v #329 > > │ let v12 : -00:00:21 v #594 > > string = $"{v0}{v1}{v5}{v10}" -00:00:21 v #595 > > │ 00:00:12 v #330 > > │ let v13 : -00:00:21 v #596 > > string = $"{v0}{v7}{v5}{v10}" -00:00:21 v #597 > > │ 00:00:12 v #331 > > │ let v14 : -00:00:21 v #598 > > string = $"{v0}{v7}{v2}{v10}" -00:00:21 v #599 > > │ 00:00:12 v #332 > > │ let v15 : -00:00:21 v #600 > > string = "E" -00:00:21 v #601 > > │ 00:00:12 v #333 > > │ let v16 : -00:00:21 v #602 > > string = $"{v15}{v1}{v2}{v10}" -00:00:21 v #603 > > │ 00:00:12 v #334 > > │ let v17 : -00:00:21 v #604 > > string = $"{v15}{v1}{v5}{v10}" -00:00:21 v #605 > > │ 00:00:12 v #335 > > │ let v18 : -00:00:21 v #606 > > string = $"{v15}{v7}{v5}{v10}" -00:00:21 v #607 > > │ 00:00:12 v #336 > > │ let v19 : -00:00:21 v #608 > > string = $"{v15}{v7}{v2}{v10}" -00:00:21 v #609 > > │ 00:00:12 v #337 > > │ let v20 : -00:00:21 v #610 > > string = $"{v15}{v1}{v2}{v3}" -00:00:21 v #611 > > │ 00:00:12 v #338 > > │ let v21 : -00:00:21 v #612 > > string = $"{v15}{v1}{v5}{v3}" -00:00:21 v #613 > > │ 00:00:12 v #339 > > │ let v22 : -00:00:21 v #614 > > string = $"{v15}{v7}{v5}{v3}" -00:00:21 v #615 > > │ 00:00:12 v #340 > > │ let v23 : -00:00:21 v #616 > > string = $"{v15}{v7}{v2}{v3}" -00:00:21 v #617 > > │ 00:00:12 v #341 > > │ let v24 : -00:00:21 v #618 > > string list = [] -00:00:21 v #619 > > │ 00:00:12 v #342 > > │ let v25 : -00:00:21 v #620 > > string list = v23 :: v24 -00:00:21 v #621 > > │ 00:00:12 v #343 > > │ let v28 : -00:00:21 v #622 > > string list = v22 :: v25 -00:00:21 v #623 > > │ 00:00:12 v #344 > > │ let v31 : -00:00:21 v #624 > > string list = v21 :: v28 -00:00:21 v #625 > > │ 00:00:12 v #345 > > │ let v34 : -00:00:21 v #626 > > string list = v20 :: v31 -00:00:21 v #627 > > │ 00:00:12 v #346 > > │ let v37 : -00:00:21 v #628 > > string list = v19 :: v34 -00:00:21 v #629 > > │ 00:00:12 v #347 > > │ let v40 : -00:00:21 v #630 > > string list = v18 :: v37 -00:00:21 v #631 > > │ 00:00:12 v #348 > > │ let v43 : -00:00:21 v #632 > > string list = v17 :: v40 -00:00:21 v #633 > > │ 00:00:12 v #349 > > │ let v46 : -00:00:21 v #634 > > string list = v16 :: v43 -00:00:21 v #635 > > │ 00:00:12 v #350 > > │ let v49 : -00:00:21 v #636 > > string list = v14 :: v46 -00:00:21 v #637 > > │ 00:00:12 v #351 > > │ let v52 : -00:00:21 v #638 > > string list = v13 :: v49 -00:00:21 v #639 > > │ 00:00:12 v #352 > > │ let v55 : -00:00:21 v #640 > > string list = v12 :: v52 -00:00:21 v #641 > > │ 00:00:12 v #353 > > │ let v58 : -00:00:21 v #642 > > string list = v11 :: v55 -00:00:21 v #643 > > │ 00:00:12 v #354 > > │ let v61 : -00:00:21 v #644 > > string list = v9 :: v58 -00:00:21 v #645 > > │ 00:00:12 v #355 > > │ let v64 : -00:00:21 v #646 > > string list = v8 :: v61 -00:00:21 v #647 > > │ 00:00:12 v #356 > > │ let v67 : -00:00:21 v #648 > > string list = v6 :: v64 -00:00:21 v #649 > > │ 00:00:12 v #357 > > │ let v70 : -00:00:21 v #650 > > string list = v4 :: v67 -00:00:21 v #651 > > │ 00:00:12 v #358 > > │ let v73 : -00:00:21 v #652 > > (string list -> (string [])) = List.toArray -00:00:21 v #653 > > │ 00:00:12 v #359 > > │ let v74 : -00:00:21 v #654 > > (string []) = v73 v70 -00:00:21 v #655 > > │ 00:00:12 v #360 > > │ let v77 : -00:00:21 v #656 > > string = "ISTJ" -00:00:21 v #657 > > │ 00:00:12 v #361 > > │ let v78 : -00:00:21 v #658 > > string = "ISFJ" -00:00:21 v #659 > > │ 00:00:12 v #362 > > │ let v79 : -00:00:21 v #660 > > string = "INFJ" -00:00:21 v #661 > > │ 00:00:12 v #363 > > │ let v80 : -00:00:21 v #662 > > string = "INTJ" -00:00:21 v #663 > > │ 00:00:12 v #364 > > │ let v81 : -00:00:21 v #664 > > string = "ISTP" -00:00:21 v #665 > > │ 00:00:12 v #365 > > │ let v82 : -00:00:21 v #666 > > string = "ISFP" -00:00:21 v #667 > > │ 00:00:12 v #366 > > │ let v83 : -00:00:21 v #668 > > string = "INFP" -00:00:21 v #669 > > │ 00:00:12 v #367 > > │ let v84 : -00:00:21 v #670 > > string = "INTP" -00:00:21 v #671 > > │ 00:00:12 v #368 > > │ let v85 : -00:00:21 v #672 > > string = "ESTP" -00:00:21 v #673 > > │ 00:00:12 v #369 > > │ let v86 : -00:00:21 v #674 > > string = "ESFP" -00:00:21 v #675 > > │ 00:00:12 v #370 > > │ let v87 : -00:00:21 v #676 > > string = "ENFP" -00:00:21 v #677 > > │ 00:00:12 v #371 > > │ let v88 : -00:00:21 v #678 > > string = "ENTP" -00:00:21 v #679 > > │ 00:00:12 v #372 > > │ let v89 : -00:00:21 v #680 > > string = "ESTJ" -00:00:21 v #681 > > │ 00:00:12 v #373 > > │ let v90 : -00:00:21 v #682 > > string = "ESFJ" -00:00:21 v #683 > > │ 00:00:12 v #374 > > │ let v91 : -00:00:21 v #684 > > string = "ENFJ" -00:00:21 v #685 > > │ 00:00:12 v #375 > > │ let v92 : -00:00:21 v #686 > > string = "ENTJ" -00:00:21 v #687 > > │ 00:00:12 v #376 > > │ let v93 : -00:00:21 v #688 > > (string []) = [|v77; v78; v79; v80; v81; v82; -00:00:21 v #689 > > │ 00:00:12 v #377 > > v83; v84; v85; v86; v87; v88; v89; -00:00:21 v #690 > > v90; v91; v92|] -00:00:21 v #691 > > │ 00:00:12 v #378 > > │ let v94 : -00:00:21 v #692 > > bool = v74 = v93 -00:00:21 v #693 > > │ 00:00:12 v #379 > > │ let v98 : -00:00:21 v #694 > > bool = -00:00:21 v #695 > > │ 00:00:12 v #380 > > │ if v94 -00:00:21 v #696 > > then -00:00:21 v #697 > > │ 00:00:12 v #381 > > │ true -00:00:21 v #698 > > │ 00:00:12 v #382 > > │ else -00:00:21 v #699 > > │ 00:00:12 v #383 > > │ -00:00:21 v #700 > > method1(v94) -00:00:21 v #701 > > │ 00:00:12 v #384 > > │ let v99 : -00:00:21 v #702 > > string = "__assert_eq'" -00:00:21 v #703 > > │ 00:00:12 v #385 > > │ let v100 : -00:00:21 v #704 > > string = $"{v99} / actual: %A{v74} / expected: -00:00:21 v #705 > > │ 00:00:12 v #386 > > %A{v93}" -00:00:21 v #706 > > │ 00:00:12 v #387 > > │ let v103 : -00:00:21 v #707 > > unit = () -00:00:21 v #708 > > │ 00:00:12 v #388 > > │ let v104 : -00:00:21 v #709 > > (unit -> unit) = closure0(v100) -00:00:21 v #710 > > │ 00:00:12 v #389 > > │ let v105 : -00:00:21 v #711 > > unit = (fun () -> v104 (); v103) () -00:00:21 v #712 > > │ 00:00:12 v #390 > > │ let v107 : -00:00:21 v #713 > > bool = v98 = false -00:00:21 v #714 > > │ 00:00:12 v #391 > > │ if v107 then -00:00:21 v #715 > > │ 00:00:12 v #392 > > │ -00:00:21 v #716 > > failwith<unit> v100 -00:00:21 v #717 > > │ 00:00:12 v #393 > > │ method0() -00:00:21 v #718 > > │ 00:00:12 v #394 > > │ -00:00:21 v #719 > > │ 00:00:12 v #395 > > │ __assert_eq' -00:00:21 v #720 > > actual: [|"ISTJ"; "ISFJ"; "INFJ"; "INTJ"; -00:00:21 v #721 > > │ 00:00:12 v #396 > > "ISTP"; "ISFP"; "INFP"; "INTP"; -00:00:21 v #722 > > "ESTP"; "ESFP"; -00:00:21 v #723 > > │ 00:00:12 v #397 > > │ "ENFP"; "ENTP"; -00:00:21 v #724 > > "ESTJ"; "ESFJ"; "ENFJ"; "ENTJ"|] -00:00:21 v #725 > > │ 00:00:12 v #398 > > expected: [|"ISTJ"; "ISFJ"; "INFJ"; -00:00:21 v #726 > > "INTJ"; "ISTP"; "ISFP"; "INFP"; "INTP"; -00:00:21 v #727 > > │ 00:00:12 v #399 > > "ESTP"; "ESFP"; -00:00:21 v #728 > > │ 00:00:12 v #400 > > │ "ENFP"; "ENTP"; -00:00:21 v #729 > > "ESTJ"; "ESFJ"; "ENFJ"; "ENTJ"|] -00:00:21 v #730 > > │ 00:00:12 v #401 > > │ -00:00:21 v #731 > > │ 00:00:13 v #402 > > -00:00:21 v #732 > > │ 00:00:13 v #403 > > ── fsharp -00:00:21 v #733 > > ────────────────────────────────────────────────────────────────────── -00:00:21 v #734 > > │ 00:00:13 v #404 > > type PhonologicalFeature = -00:00:21 v #735 > > │ 00:00:13 v #405 > > | VowelFeature of -00:00:21 v #736 > > │ 00:00:13 v #406 > > height: Height -00:00:21 v #737 > > │ 00:00:13 v #407 > > * backness: Backness -00:00:21 v #738 > > │ 00:00:13 v #408 > > * roundedness: Roundedness -00:00:21 v #739 > > │ 00:00:13 v #409 > > * tone: Option<Tone> -00:00:21 v #740 > > │ 00:00:13 v #410 > > * stress: Option<Stress> -00:00:21 v #741 > > │ 00:00:13 v #411 > > * length: Option<Length> -00:00:21 v #742 > > │ 00:00:13 v #412 > > | ConsonantFeature of -00:00:21 v #743 > > │ 00:00:13 v #413 > > place: PlaceOfArticulation -00:00:21 v #744 > > │ 00:00:13 v #414 > > * manner: -00:00:21 v #745 > > MannerOfArticulation -00:00:21 v #746 > > │ 00:00:13 v #415 > > * voicing: Voicing -00:00:21 v #747 > > │ 00:00:13 v #416 > > * length: Option<Length> -00:00:21 v #748 > > │ 00:00:13 v #417 > > | VowelHarmonyFeature -00:00:21 v #749 > > │ 00:00:13 v #418 > > | PitchAccentFeature -00:00:21 v #750 > > │ 00:00:13 v #419 > > -00:00:21 v #751 > > │ 00:00:13 v #420 > > and Stress = Primary | Secondary -00:00:21 v #752 > > │ 00:00:13 v #421 > > and Length = Long | Short | HalfLong -00:00:21 v #753 > > │ 00:00:13 v #422 > > -00:00:21 v #754 > > │ 00:00:13 v #423 > > and Height = -00:00:21 v #755 > > │ 00:00:13 v #424 > > | High | NearHigh | HighMid -00:00:21 v #756 > > │ 00:00:13 v #425 > > | Mid | LowMid | NearLow -00:00:21 v #757 > > │ 00:00:13 v #426 > > | Low -00:00:21 v #758 > > │ 00:00:13 v #427 > > -00:00:21 v #759 > > │ 00:00:13 v #428 > > and Backness = Front | Central | -00:00:21 v #760 > > Back -00:00:21 v #761 > > │ 00:00:13 v #429 > > -00:00:21 v #762 > > │ 00:00:13 v #430 > > and Roundedness = Rounded | -00:00:21 v #763 > > Unrounded -00:00:21 v #764 > > │ 00:00:13 v #431 > > -00:00:21 v #765 > > │ 00:00:13 v #432 > > and PlaceOfArticulation = -00:00:21 v #766 > > │ 00:00:13 v #433 > > | Bilabial | Labiodental | -00:00:21 v #767 > > Dental -00:00:21 v #768 > > │ 00:00:13 v #434 > > | Alveolar | Postalveolar | -00:00:21 v #769 > > Retroflex -00:00:21 v #770 > > │ 00:00:13 v #435 > > | Palatal | Velar | Uvular -00:00:21 v #771 > > │ 00:00:13 v #436 > > | Pharyngeal | Epiglottal | -00:00:21 v #772 > > Glottal -00:00:21 v #773 > > │ 00:00:13 v #437 > > -00:00:21 v #774 > > │ 00:00:13 v #438 > > and MannerOfArticulation = -00:00:21 v #775 > > │ 00:00:13 v #439 > > | Plosive | Nasal | Trill -00:00:21 v #776 > > │ 00:00:13 v #440 > > | TapOrFlap | Fricative | -00:00:21 v #777 > > LateralFricative -00:00:21 v #778 > > │ 00:00:13 v #441 > > | Approximant | -00:00:21 v #779 > > LateralApproximant -00:00:21 v #780 > > │ 00:00:13 v #442 > > -00:00:21 v #781 > > │ 00:00:13 v #443 > > and Voicing = Voiced | Voiceless -00:00:21 v #782 > > │ 00:00:13 v #444 > > -00:00:21 v #783 > > │ 00:00:13 v #445 > > and SecondaryArticulation = -00:00:21 v #784 > > │ 00:00:13 v #446 > > | Labialization | Palatalization -00:00:21 v #785 > > | Velarization -00:00:21 v #786 > > │ 00:00:13 v #447 > > | Pharyngealization | Aspiration -00:00:21 v #787 > > │ 00:00:13 v #448 > > -00:00:21 v #788 > > │ 00:00:13 v #449 > > and Tone = -00:00:21 v #789 > > │ 00:00:13 v #450 > > | LevelTone of int -00:00:21 v #790 > > │ 00:00:13 v #451 > > | ContourTone of int list -00:00:21 v #791 > > │ 00:00:13 v #452 > > -00:00:21 v #792 > > │ 00:00:13 v #453 > > and MorphologicalFeature = -00:00:21 v #793 > > │ 00:00:13 v #454 > > | RootFeature of string -00:00:21 v #794 > > │ 00:00:13 v #455 > > | AffixFeature of AffixType * -00:00:21 v #795 > > string -00:00:21 v #796 > > │ 00:00:13 v #456 > > | IncorporationFeature of string -00:00:21 v #797 > > * MorphologicalFeature -00:00:21 v #798 > > │ 00:00:13 v #457 > > | NonConcatenativePattern of -00:00:21 v #799 > > string * string -00:00:21 v #800 > > │ 00:00:13 v #458 > > | AgglutinativeAffixFeature of -00:00:21 v #801 > > AgglutinativeAffixType * string -00:00:21 v #802 > > │ 00:00:13 v #459 > > | HonorificFeature of -00:00:21 v #803 > > HonorificType * string -00:00:21 v #804 > > │ 00:00:13 v #460 > > -00:00:21 v #805 > > │ 00:00:13 v #461 > > and AgglutinativeAffixType = Suffix -00:00:21 v #806 > > | Prefix -00:00:21 v #807 > > │ 00:00:13 v #462 > > -00:00:21 v #808 > > │ 00:00:13 v #463 > > and HonorificType = VerbHonorific | -00:00:21 v #809 > > NounHonorific -00:00:21 v #810 > > │ 00:00:13 v #464 > > -00:00:21 v #811 > > │ 00:00:13 v #465 > > and AffixType = -00:00:21 v #812 > > │ 00:00:13 v #466 > > | Prefix | Suffix | Infix -00:00:21 v #813 > > │ 00:00:13 v #467 > > | Circumfix -00:00:21 v #814 > > │ 00:00:13 v #468 > > -00:00:21 v #815 > > │ 00:00:13 v #469 > > type SyntacticFeature = -00:00:21 v #816 > > │ 00:00:13 v #470 > > | WordFeature of -00:00:21 v #817 > > MorphologicalFeature list * LexicalCategory -00:00:21 v #818 > > │ 00:00:13 v #471 > > | PhraseFeature of PhraseType * -00:00:21 v #819 > > SyntacticFeature list -00:00:21 v #820 > > │ 00:00:13 v #472 > > | GrammaticalRelation of -00:00:21 v #821 > > GrammaticalRelationType * SyntacticFeature list -00:00:21 v #822 > > │ 00:00:13 v #473 > > | SOVOrderFeature -00:00:21 v #823 > > │ 00:00:13 v #474 > > | TopicCommentFeature -00:00:21 v #824 > > │ 00:00:13 v #475 > > -00:00:21 v #825 > > │ 00:00:13 v #476 > > and GrammaticalRelationType = -00:00:21 v #826 > > │ 00:00:13 v #477 > > | Ergative | Absolutive | -00:00:21 v #827 > > Nominative -00:00:21 v #828 > > │ 00:00:13 v #478 > > | Accusative -00:00:21 v #829 > > │ 00:00:13 v #479 > > -00:00:21 v #830 > > │ 00:00:13 v #480 > > and LexicalCategory = -00:00:21 v #831 > > │ 00:00:13 v #481 > > | Noun | Verb | Adjective -00:00:21 v #832 > > │ 00:00:13 v #482 > > | Adverb | Pronoun | Preposition -00:00:21 v #833 > > │ 00:00:13 v #483 > > | Conjunction | Determiner | -00:00:21 v #834 > > Interjection -00:00:21 v #835 > > │ 00:00:13 v #484 > > -00:00:21 v #836 > > │ 00:00:13 v #485 > > and PhraseType = -00:00:21 v #837 > > │ 00:00:13 v #486 > > | NP | VP | AP -00:00:21 v #838 > > │ 00:00:13 v #487 > > | PP | CP -00:00:21 v #839 > > │ 00:00:13 v #488 > > -00:00:21 v #840 > > │ 00:00:13 v #489 > > and SemanticFeature = -00:00:21 v #841 > > │ 00:00:13 v #490 > > | Meaning of string -00:00:21 v #842 > > │ 00:00:13 v #491 > > | SemanticRole of -00:00:21 v #843 > > SemanticRoleType * SemanticFeature -00:00:21 v #844 > > │ 00:00:13 v #492 > > -00:00:21 v #845 > > │ 00:00:13 v #493 > > and SemanticRoleType = -00:00:21 v #846 > > │ 00:00:13 v #494 > > | Agent | Patient | Instrument -00:00:21 v #847 > > │ 00:00:13 v #495 > > | Location | Time | Cause -00:00:21 v #848 > > │ 00:00:13 v #496 > > -00:00:21 v #849 > > │ 00:00:13 v #497 > > and PragmaticFeature = -00:00:21 v #850 > > │ 00:00:13 v #498 > > | UseContext of string -00:00:21 v #851 > > │ 00:00:13 v #499 > > | PolitenessLevel of Politeness -00:00:21 v #852 > > │ 00:00:13 v #500 > > | SpeechAct of SpeechActType -00:00:21 v #853 > > │ 00:00:13 v #501 > > | SpeechLevel of SpeechLevelType -00:00:21 v #854 > > │ 00:00:13 v #502 > > -00:00:21 v #855 > > │ 00:00:13 v #503 > > and Politeness = Formal | Informal | -00:00:21 v #856 > > Neutral -00:00:21 v #857 > > │ 00:00:13 v #504 > > -00:00:21 v #858 > > │ 00:00:13 v #505 > > and SpeechActType = -00:00:21 v #859 > > │ 00:00:13 v #506 > > | Assertive | Directive | -00:00:21 v #860 > > Commissive -00:00:21 v #861 > > │ 00:00:13 v #507 > > | Expressive | Declarative -00:00:21 v #862 > > │ 00:00:13 v #508 > > -00:00:21 v #863 > > │ 00:00:13 v #509 > > and SpeechLevelType = -00:00:21 v #864 > > │ 00:00:13 v #510 > > | FormalHigh | FormalLow | -00:00:21 v #865 > > InformalHigh -00:00:21 v #866 > > │ 00:00:13 v #511 > > | InformalLow | Neutral -00:00:21 v #867 > > │ 00:00:13 v #512 > > -00:00:21 v #868 > > │ 00:00:13 v #513 > > type LinguisticFeature = -00:00:21 v #869 > > │ 00:00:13 v #514 > > | Phonological of -00:00:21 v #870 > > PhonologicalFeature -00:00:21 v #871 > > │ 00:00:13 v #515 > > | Morphological of -00:00:21 v #872 > > MorphologicalFeature -00:00:21 v #873 > > │ 00:00:13 v #516 > > | Syntactic of SyntacticFeature -00:00:21 v #874 > > │ 00:00:13 v #517 > > | Semantic of SemanticFeature -00:00:21 v #875 > > │ 00:00:13 v #518 > > | Pragmatic of PragmaticFeature -00:00:21 v #876 > > │ 00:00:13 v #519 > > -00:00:21 v #877 > > │ 00:00:13 v #520 > > type LanguageConstruct = -00:00:21 v #878 > > │ 00:00:13 v #521 > > | LanguageElement of -00:00:21 v #879 > > LinguisticFeature -00:00:21 v #880 > > │ 00:00:13 v #522 > > | LanguageStructure of -00:00:21 v #881 > > LanguageConstruct list -00:00:21 v #882 > > │ 00:00:13 v #523 > > | TranslationElement of -00:00:21 v #883 > > TranslationFeature -00:00:21 v #884 > > │ 00:00:13 v #524 > > -00:00:21 v #885 > > │ 00:00:13 v #525 > > and TranslationFeature = -00:00:21 v #886 > > │ 00:00:13 v #526 > > | LinkedPhonological of -00:00:21 v #887 > > PhonologicalFeature * PhonologicalFeature -00:00:21 v #888 > > │ 00:00:13 v #527 > > | LinkedMorphological of -00:00:21 v #889 > > MorphologicalFeature * MorphologicalFeature -00:00:21 v #890 > > │ 00:00:13 v #528 > > | LinkedSyntactic of -00:00:21 v #891 > > SyntacticFeature * SyntacticFeature -00:00:21 v #892 > > │ 00:00:13 v #529 > > | LinkedSemantic of -00:00:21 v #893 > > SemanticFeature * SemanticFeature -00:00:21 v #894 > > │ 00:00:13 v #530 > > -00:00:21 v #895 > > │ 00:00:13 v #531 > > type Discourse = DiscourseUnit of -00:00:21 v #896 > > LanguageConstruct list -00:00:21 v #897 > > │ 00:00:13 v #532 > > -00:00:21 v #898 > > │ 00:00:13 v #533 > > type LanguageModel = -00:00:21 v #899 > > │ 00:00:13 v #534 > > | Model of discourse: Discourse -00:00:21 v #900 > > │ 00:00:14 v #535 > > -00:00:21 v #901 > > │ 00:00:14 v #536 > > ── fsharp -00:00:21 v #902 > > ────────────────────────────────────────────────────────────────────── -00:00:21 v #903 > > │ 00:00:14 v #537 > > let testEnglish = -00:00:21 v #904 > > │ 00:00:14 v #538 > > Model( -00:00:21 v #905 > > │ 00:00:14 v #539 > > DiscourseUnit [[ -00:00:21 v #906 > > │ 00:00:14 v #540 > > LanguageElement -00:00:21 v #907 > > (Phonological (ConsonantFeature (Alveolar, Nasal, -00:00:21 v #908 > > │ 00:00:14 v #541 > > Voiced, Some(HalfLong)))); -00:00:21 v #909 > > │ 00:00:14 v #542 > > LanguageElement -00:00:21 v #910 > > (Phonological (VowelFeature (High, Front, Unrounded, -00:00:21 v #911 > > │ 00:00:14 v #543 > > Some(LevelTone 1), Some(Primary), -00:00:21 v #912 > > Some(Short)))); -00:00:21 v #913 > > │ 00:00:14 v #544 > > LanguageElement -00:00:21 v #914 > > (Phonological (VowelFeature (Low, Front, Unrounded, -00:00:21 v #915 > > │ 00:00:14 v #545 > > Some(LevelTone 2), Some(Secondary), -00:00:21 v #916 > > Some(Long)))); -00:00:21 v #917 > > │ 00:00:14 v #546 > > LanguageElement -00:00:21 v #918 > > (Phonological (ConsonantFeature (Velar, Plosive, -00:00:21 v #919 > > │ 00:00:14 v #547 > > Voiceless, Some(HalfLong)))); -00:00:21 v #920 > > │ 00:00:14 v #548 > > LanguageElement -00:00:21 v #921 > > (Morphological (RootFeature "I")); -00:00:21 v #922 > > │ 00:00:14 v #549 > > LanguageElement -00:00:21 v #923 > > (Morphological (RootFeature "see")); -00:00:21 v #924 > > │ 00:00:14 v #550 > > LanguageElement -00:00:21 v #925 > > (Morphological (RootFeature "a")); -00:00:21 v #926 > > │ 00:00:14 v #551 > > LanguageElement -00:00:21 v #927 > > (Morphological (RootFeature "cat")); -00:00:21 v #928 > > │ 00:00:14 v #552 > > LanguageElement -00:00:21 v #929 > > (Syntactic (PhraseFeature (NP, [[WordFeature -00:00:21 v #930 > > │ 00:00:14 v #553 > > ([[RootFeature "I"]], Pronoun)]]))); -00:00:21 v #931 > > │ 00:00:14 v #554 > > LanguageElement -00:00:21 v #932 > > (Syntactic (PhraseFeature (VP, [[WordFeature -00:00:21 v #933 > > │ 00:00:14 v #555 > > ([[RootFeature "see"]], Verb)]]))); -00:00:21 v #934 > > │ 00:00:14 v #556 > > LanguageElement -00:00:21 v #935 > > (Syntactic (PhraseFeature (NP, [[WordFeature -00:00:21 v #936 > > │ 00:00:14 v #557 > > ([[RootFeature "a"; RootFeature -00:00:21 v #937 > > "cat"]], Noun)]]))); -00:00:21 v #938 > > │ 00:00:14 v #558 > > LanguageElement -00:00:21 v #939 > > (Semantic (Meaning "Perception act of a feline by -00:00:21 v #940 > > │ 00:00:14 v #559 > > the speaker")); -00:00:21 v #941 > > │ 00:00:14 v #560 > > LanguageElement -00:00:21 v #942 > > (Pragmatic (UseContext "Statement of an action being -00:00:21 v #943 > > │ 00:00:14 v #561 > > observed")) -00:00:21 v #944 > > │ 00:00:14 v #562 > > ]] -00:00:21 v #945 > > │ 00:00:14 v #563 > > ) -00:00:21 v #946 > > │ 00:00:14 v #564 > > -00:00:21 v #947 > > │ 00:00:14 v #565 > > let testPortuguese = -00:00:21 v #948 > > │ 00:00:14 v #566 > > Model( -00:00:21 v #949 > > │ 00:00:14 v #567 > > DiscourseUnit [[ -00:00:21 v #950 > > │ 00:00:14 v #568 > > LanguageElement -00:00:21 v #951 > > (Phonological (VowelFeature (High, Front, Unrounded, -00:00:21 v #952 > > │ 00:00:14 v #569 > > Some(LevelTone 1), Some(Primary), -00:00:21 v #953 > > Some(Short)))); -00:00:21 v #954 > > │ 00:00:14 v #570 > > LanguageElement -00:00:21 v #955 > > (Phonological (VowelFeature (Low, Front, Unrounded, -00:00:21 v #956 > > │ 00:00:14 v #571 > > Some(LevelTone 2), Some(Secondary), -00:00:21 v #957 > > Some(Long)))); -00:00:21 v #958 > > │ 00:00:14 v #572 > > LanguageElement -00:00:21 v #959 > > (Phonological (VowelFeature (Mid, Back, Rounded, -00:00:21 v #960 > > │ 00:00:14 v #573 > > Some(LevelTone 3), Some(Primary), -00:00:21 v #961 > > Some(Short)))); -00:00:21 v #962 > > │ 00:00:14 v #574 > > LanguageElement -00:00:21 v #963 > > (Phonological (ConsonantFeature (Velar, Plosive, -00:00:21 v #964 > > │ 00:00:14 v #575 > > Voiceless, Some(HalfLong)))); -00:00:21 v #965 > > │ 00:00:14 v #576 > > LanguageElement -00:00:21 v #966 > > (Morphological (RootFeature "Eu")); -00:00:21 v #967 > > │ 00:00:14 v #577 > > LanguageElement -00:00:21 v #968 > > (Morphological (RootFeature "ver" |> ignore; -00:00:21 v #969 > > │ 00:00:14 v #578 > > AffixFeature (Suffix, "o"))); -00:00:21 v #970 > > │ 00:00:14 v #579 > > LanguageElement -00:00:21 v #971 > > (Morphological (RootFeature "um")); -00:00:21 v #972 > > │ 00:00:14 v #580 > > LanguageElement -00:00:21 v #973 > > (Morphological (RootFeature "gato")); -00:00:21 v #974 > > │ 00:00:14 v #581 > > LanguageElement -00:00:21 v #975 > > (Syntactic (PhraseFeature (NP, [[WordFeature -00:00:21 v #976 > > │ 00:00:14 v #582 > > ([[RootFeature "Eu"]], -00:00:21 v #977 > > Pronoun)]]))); -00:00:21 v #978 > > │ 00:00:14 v #583 > > LanguageElement -00:00:21 v #979 > > (Syntactic (PhraseFeature (VP, [[WordFeature -00:00:21 v #980 > > │ 00:00:14 v #584 > > ([[RootFeature "vejo"]], Verb)]]))); -00:00:21 v #981 > > │ 00:00:14 v #585 > > LanguageElement -00:00:21 v #982 > > (Syntactic (PhraseFeature (NP, [[WordFeature -00:00:21 v #983 > > │ 00:00:14 v #586 > > ([[RootFeature "um"; RootFeature -00:00:21 v #984 > > "gato"]], Noun)]]))); -00:00:21 v #985 > > │ 00:00:14 v #587 > > LanguageElement -00:00:21 v #986 > > (Semantic (Meaning "Ação de percepção de um felino -00:00:21 v #987 > > │ 00:00:14 v #588 > > pelo falante")); -00:00:21 v #988 > > │ 00:00:14 v #589 > > LanguageElement -00:00:21 v #989 > > (Pragmatic (UseContext "Declaração de uma ação sendo -00:00:21 v #990 > > │ 00:00:14 v #590 > > observada")) -00:00:21 v #991 > > │ 00:00:14 v #591 > > ]] -00:00:21 v #992 > > │ 00:00:14 v #592 > > ) -00:00:21 v #993 > > │ 00:00:14 v #593 > > -00:00:21 v #994 > > │ 00:00:14 v #594 > > let testKorean = -00:00:21 v #995 > > │ 00:00:14 v #595 > > Model( -00:00:21 v #996 > > │ 00:00:14 v #596 > > DiscourseUnit [[ -00:00:21 v #997 > > │ 00:00:14 v #597 > > LanguageElement -00:00:21 v #998 > > (Phonological (ConsonantFeature (Alveolar, Nasal, -00:00:21 v #999 > > │ 00:00:14 v #598 > > Voiced, Some(Short)))); -00:00:21 v #1000 > > │ 00:00:14 v #599 > > LanguageElement -00:00:21 v #1001 > > (Phonological (VowelFeature (High, Back, Rounded, -00:00:21 v #1002 > > │ 00:00:14 v #600 > > None, None, Some(Short)))); -00:00:21 v #1003 > > │ 00:00:14 v #601 > > LanguageElement -00:00:21 v #1004 > > (Phonological (VowelFeature (Mid, Front, Unrounded, -00:00:21 v #1005 > > │ 00:00:14 v #602 > > None, None, Some(Long)))); -00:00:21 v #1006 > > │ 00:00:14 v #603 > > LanguageElement -00:00:21 v #1007 > > (Phonological (ConsonantFeature (Bilabial, Plosive, -00:00:21 v #1008 > > │ 00:00:14 v #604 > > Voiceless, Some(Short)))); -00:00:21 v #1009 > > │ 00:00:14 v #605 > > LanguageElement -00:00:21 v #1010 > > (Morphological (RootFeature "나")); -00:00:21 v #1011 > > │ 00:00:14 v #606 > > LanguageElement -00:00:21 v #1012 > > (Morphological (RootFeature "보다")); -00:00:21 v #1013 > > │ 00:00:14 v #607 > > LanguageElement -00:00:21 v #1014 > > (Morphological (AffixFeature (Suffix, "아"))); -00:00:21 v #1015 > > │ 00:00:14 v #608 > > LanguageElement -00:00:21 v #1016 > > (Morphological (RootFeature "고양이")); -00:00:21 v #1017 > > │ 00:00:14 v #609 > > LanguageElement -00:00:21 v #1018 > > (Syntactic (PhraseFeature (NP, [[WordFeature -00:00:21 v #1019 > > │ 00:00:14 v #610 > > ([[RootFeature "나"]], -00:00:21 v #1020 > > Pronoun)]]))); -00:00:21 v #1021 > > │ 00:00:14 v #611 > > LanguageElement -00:00:21 v #1022 > > (Syntactic (PhraseFeature (VP, [[WordFeature -00:00:21 v #1023 > > │ 00:00:14 v #612 > > ([[RootFeature "보다"; AffixFeature -00:00:21 v #1024 > > (Suffix, "아")]], Verb)]]))); -00:00:21 v #1025 > > │ 00:00:14 v #613 > > LanguageElement -00:00:21 v #1026 > > (Syntactic (PhraseFeature (NP, [[WordFeature -00:00:21 v #1027 > > │ 00:00:14 v #614 > > ([[RootFeature "고양이"]], -00:00:21 v #1028 > > Noun)]]))); -00:00:21 v #1029 > > │ 00:00:14 v #615 > > LanguageElement -00:00:21 v #1030 > > (Semantic (Meaning "화자에 의한 고양이의 관찰 -00:00:21 v #1031 > > │ 00:00:14 v #616 > > 행위")); -00:00:21 v #1032 > > │ 00:00:14 v #617 > > LanguageElement -00:00:21 v #1033 > > (Pragmatic (UseContext "관찰되고 있는 행동의 진술")) -00:00:21 v #1034 > > │ 00:00:14 v #618 > > ]] -00:00:21 v #1035 > > │ 00:00:14 v #619 > > ) -00:00:21 v #1036 > > │ 00:00:14 v #620 > > -00:00:21 v #1037 > > │ 00:00:14 v #621 > > ── markdown -00:00:21 v #1038 > > ──────────────────────────────────────────────────────────────────── -00:00:21 v #1039 > > │ 00:00:14 v #622 > > │ ## main -00:00:21 v #1040 > > │ 00:00:14 v #623 > > -00:00:21 v #1041 > > │ 00:00:14 v #624 > > ── spiral -00:00:21 v #1042 > > ────────────────────────────────────────────────────────────────────── -00:00:21 v #1043 > > │ 00:00:14 v #625 > > inl main (_args : array_base string) -00:00:21 v #1044 > > = -00:00:21 v #1045 > > │ 00:00:14 v #626 > > 0i32 -00:00:21 v #1046 > > │ 00:00:14 v #627 > > -00:00:21 v #1047 > > │ 00:00:14 v #628 > > inl main () = -00:00:21 v #1048 > > │ 00:00:14 v #629 > > $'let main args = !main args' : -00:00:21 v #1049 > > () -00:00:21 v #1050 > > │ 00:00:14 v #630 > > -00:00:21 v #1051 > > │ 00:00:14 v #631 > > ── spiral -00:00:21 v #1052 > > ────────────────────────────────────────────────────────────────────── -00:00:21 v #1053 > > │ 00:00:14 v #632 > > inl app () = -00:00:21 v #1054 > > │ 00:00:14 v #633 > > "test" |> console.write_line -00:00:21 v #1055 > > │ 00:00:14 v #634 > > 0i32 -00:00:21 v #1056 > > │ 00:00:14 v #635 > > -00:00:21 v #1057 > > │ 00:00:14 v #636 > > inl main () = -00:00:21 v #1058 > > │ 00:00:14 v #637 > > print_static "<test>" -00:00:21 v #1059 > > │ 00:00:14 v #638 > > -00:00:21 v #1060 > > │ 00:00:14 v #639 > > app -00:00:21 v #1061 > > │ 00:00:14 v #640 > > |> dyn -00:00:21 v #1062 > > │ 00:00:14 v #641 > > |> ignore -00:00:21 v #1063 > > │ 00:00:14 v #642 > > -00:00:21 v #1064 > > │ 00:00:14 v #643 > > print_static "</test>" -00:00:21 v #1065 > > │ 00:00:15 v #644 > 00:00:14 v #3 -00:00:21 v #1066 > > runtime.execute_with_options / result / { exit_code = 0; std_trace_length = -00:00:21 v #1067 > > 27010 } -00:00:21 v #1068 > > │ 00:00:15 v #645 > 00:00:14 d #4 -00:00:21 v #1069 > > runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", -00:00:21 v #1070 > > "c:/home/git/polyglot/apps/spiral/temp/test/test.dib.ipynb", "--to", "html", -00:00:21 v #1071 > > "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert -00:00:21 v #1072 > > "c:/home/git/polyglot/apps/spiral/temp/test/test.dib.ipynb" --to html -00:00:21 v #1073 > > --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = -00:00:21 v #1074 > > Array(MutCell([])); on_line = None; stdin = None; trace = true; -00:00:21 v #1075 > > working_directory = None } } -00:00:21 v #1076 > > │ 00:00:16 v #646 > 00:00:15 v #5 ! [NbConvertApp] -00:00:21 v #1077 > > Converting notebook c:/home/git/polyglot/apps/spiral/temp/test/test.dib.ipynb to -00:00:21 v #1078 > > html -00:00:21 v #1079 > > │ 00:00:16 v #647 > 00:00:15 v #6 ! -00:00:21 v #1080 > > C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__. -00:00:21 v #1081 > > py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a -00:00:21 v #1082 > > hard error in future nbformat versions. You may want to use `normalize()` on -00:00:21 v #1083 > > your notebooks before validations (available since nbformat 5.1.4). Previous -00:00:21 v #1084 > > versions of nbformat are fixing this issue transparently, and will stop doing so -00:00:21 v #1085 > > in the future. -00:00:21 v #1086 > > │ 00:00:16 v #648 > 00:00:15 v #7 ! validate(nb) -00:00:21 v #1087 > > │ 00:00:16 v #649 > 00:00:15 v #8 ! -00:00:21 v #1088 > > C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\ -00:00:21 v #1089 > > highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python -00:00:21 v #1090 > > 3 -00:00:21 v #1091 > > │ 00:00:16 v #650 > 00:00:15 v #9 ! return -00:00:21 v #1092 > > _pygments_highlight( -00:00:21 v #1093 > > │ 00:00:17 v #651 > 00:00:16 v #10 ! [NbConvertApp] -00:00:21 v #1094 > > Writing 332700 bytes to c:\home\git\polyglot\apps\spiral\temp\test\test.dib.html -00:00:21 v #1095 > > │ 00:00:17 v #652 > 00:00:16 v #11 -00:00:21 v #1096 > > runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 872 -00:00:21 v #1097 > > } -00:00:21 v #1098 > > │ 00:00:17 v #653 > 00:00:16 d #12 spiral.run / dib -00:00:21 v #1099 > > / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 872 } -00:00:21 v #1100 > > │ 00:00:17 v #654 > 00:00:16 d #13 -00:00:21 v #1101 > > runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter -00:00:21 v #1102 > > = 1; $path = 'c:/home/git/polyglot/apps/spiral/temp/test/test.dib.html'; -00:00:21 v #1103 > > (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { -00:00:21 v #1104 > > $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = -00:00:21 v #1105 > > pwsh -c "$counter = 1; $path = -00:00:21 v #1106 > > 'c:/home/git/polyglot/apps/spiral/temp/test/test.dib.html'; (Get-Content $path -00:00:21 v #1107 > > -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + -00:00:21 v #1108 > > $counter++ } | Set-Content $path"; cancellation_token = None; -00:00:21 v #1109 > > environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace -00:00:21 v #1110 > > = true; working_directory = None } } -00:00:21 v #1111 > > │ 00:00:17 v #655 > 00:00:16 v #14 -00:00:21 v #1112 > > runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } -00:00:21 v #1113 > > │ 00:00:17 v #656 > 00:00:16 d #15 spiral.run / dib -00:00:21 v #1114 > > / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } -00:00:21 v #1115 > > │ 00:00:17 v #657 > 00:00:16 d #16 spiral.run / dib -00:00:21 v #1116 > > / { exit_code = 0; result_length = 27941 } -00:00:21 v #1117 > > │ 00:00:17 d #658 runtime.execute_with_options_async / { -00:00:21 v #1118 > > exit_code = 0; output_length = 31826 } -00:00:21 v #1119 > > │ 00:00:17 d #1 main / executeCommand / exitCode: 0 -00:00:21 v #1120 > > command: ../../../../deps/spiral/workspace/target/release/spiral.exe dib --path -00:00:21 v #1121 > > test.dib --retries 3 -00:00:21 v #1122 > > │ -00:00:21 v #1123 > > -00:00:21 v #1124 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:21 v #1125 > > │ ### parse the .dib file into .spi format with dibparser -00:00:21 v #1126 > > -00:00:21 v #1127 > > ── pwsh ──────────────────────────────────────────────────────────────────────── -00:00:21 v #1128 > > { . ../../../../apps/parser/dist/DibParser$(_exe) test.dib spi } | Invoke-Block -00:00:22 v #1129 > > -00:00:22 v #1130 > > ── [ 482.80ms - stdout ] ─────────────────────────────────────────────────────── -00:00:22 v #1131 > > │ 00:00:00 d #1 writeDibCode / output: Spi / path: -00:00:22 v #1132 > > test.dib -00:00:22 v #1133 > > │ 00:00:00 d #2 parseDibCode / output: Spi / file: -00:00:22 v #1134 > > test.dib -00:00:22 v #1135 > > │ -00:00:22 v #1136 > > -00:00:22 v #1137 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:22 v #1138 > > │ ### build .fsx file from .spi using supervisor -00:00:22 v #1139 > > -00:00:22 v #1140 > > ── pwsh ──────────────────────────────────────────────────────────────────────── -00:00:22 v #1141 > > { . ../../../../apps/spiral/dist/Supervisor$(_exe) --build-file test.spi -00:00:22 v #1142 > > test.fsx } | Invoke-Block -00:00:23 v #1143 > <test> -00:00:23 v #1144 > </test> -00:00:24 v #1145 > > -00:00:24 v #1146 > > ── [ 1.66s - stdout ] ────────────────────────────────────────────────────────── -00:00:24 v #1147 > > │ 00:00:00 v #1 async.run_with_timeout_async / { timeout = -00:00:24 v #1148 > > 180 } -00:00:24 v #1149 > > │ 00:00:01 v #2 async.run_with_timeout_async / { timeout = -00:00:24 v #1150 > > 180 } -00:00:24 v #1151 > > │ 00:00:01 d #1 Supervisor.buildFile / takeWhileInclusive -00:00:24 v #1152 > > / path: test.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: -00:00:24 v #1153 > > │ -00:00:24 v #1154 > > │ 00:00:01 d #2 Supervisor.buildFile / AsyncSeq.scan -00:00:24 v #1155 > > path: test.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: -00:00:24 v #1156 > > 0 / error: / outputContent: -00:00:24 v #1157 > > │ -00:00:24 v #1158 > > │ 00:00:01 d #3 Supervisor.buildFile / takeWhileInclusive -00:00:24 v #1159 > > / path: test.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: -00:00:24 v #1160 > > │ -00:00:24 v #1161 > > │ 00:00:01 v #4 Supervisor.sendJson / port: 13805 / json: -00:00:24 v #1162 > > {"FileOpen":{"spiText":"/// # test (Polyglot)\n\n/// ## main\ninl main (_args : -00:00:24 v #1163 > > array_base string) -00:00:24 v #1164 > > =...0022\u003C/test\u003E\u0022\n","uri":"file:///c:/home/git/polyglot/apps/spir -00:00:24 v #1165 > > al/temp/test/test.spi"}} / result: -00:00:24 v #1166 > > │ 00:00:01 v #5 Supervisor.sendJson / port: 13805 / json: -00:00:24 v #1167 > > {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/apps/spiral -00:00:24 v #1168 > > /temp/test/test.spi"}} / result: -00:00:24 v #1169 > > │ 00:00:01 d #6 Supervisor.buildFile / AsyncSeq.scan -00:00:24 v #1170 > > path: test.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: -00:00:24 v #1171 > > 0 / error: / outputContent: -00:00:24 v #1172 > > │ let rec closure1 () () : unit = -00:00:24 v #1173 > > │ let v0 : (string -> unit) = System.Console.WriteLine -00:00:24 v #1174 > > │ let v1 : string = "test" -00:00:24 v #1175 > > │ v0 v1 -00:00:24 v #1176 > > │ and closure0 () () : int32 = -00:00:24 v #1177 > > │ let v0 : unit = () -00:00:24 v #1178 > > │ let v1 : (unit -> unit) = closure1() -00:00:24 v #1179 > > │ let v2 : unit = (fun () -> v1 (); v0) () -00:00:24 v #1180 > > │ 0 -00:00:24 v #1181 > > │ let v0 : (unit -> int32) = closure0() -00:00:24 v #1182 > > │ () -00:00:24 v #1183 > > │ -00:00:24 v #1184 > > │ 00:00:01 d #7 Supervisor.buildFile / takeWhileInclusive -00:00:24 v #1185 > > / path: test.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: -00:00:24 v #1186 > > │ let rec closure1 () () : unit = -00:00:24 v #1187 > > │ let v0 : (string -> unit) = System.Console.WriteLine -00:00:24 v #1188 > > │ let v1 : string = "test" -00:00:24 v #1189 > > │ v0 v1 -00:00:24 v #1190 > > │ and closure0 () () : int32 = -00:00:24 v #1191 > > │ let v0 : unit = () -00:00:24 v #1192 > > │ let v1 : (unit -> unit) = closure1() -00:00:24 v #1193 > > │ let v2 : unit = (fun () -> v1 (); v0) () -00:00:24 v #1194 > > │ 0 -00:00:24 v #1195 > > │ let v0 : (unit -> int32) = closure0() -00:00:24 v #1196 > > │ () -00:00:24 v #1197 > > │ -00:00:24 v #1198 > > │ 00:00:01 d #8 FileSystem.watchWithFilter / Disposing -00:00:24 v #1199 > > watch stream / filter: FileName, LastWrite -00:00:24 v #1200 > > │ -00:00:24 v #1201 > > -00:00:24 v #1202 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:24 v #1203 > > │ ## compile and format the project -00:00:24 v #1204 > > -00:00:24 v #1205 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:24 v #1206 > > │ ### compile project with fable targeting optimized rust -00:00:24 v #1207 > > -00:00:24 v #1208 > > ── pwsh ──────────────────────────────────────────────────────────────────────── -00:00:24 v #1209 > > dotnet fable --optimize --lang rs --extension .rs -00:00:26 v #1210 > > -00:00:26 v #1211 > > ── [ 2.79s - stdout ] ────────────────────────────────────────────────────────── -00:00:26 v #1212 > > │ Fable 5.0.0-alpha.2: F# to Rust compiler (status: alpha) +00:00:03 v #35 > > ── pwsh ──────────────────────────────────────────────────────────────────────── +00:00:03 v #36 > > { . ../../../../apps/spiral/dist/Supervisor$(_exe) --execute-command +00:00:03 v #37 > > "../../../../deps/spiral/workspace/target/release/spiral$(_exe) dib --path +00:00:03 v #38 > > test.dib --retries 3" } | Invoke-Block +00:00:20 v #39 > > +00:00:20 v #40 > > ── [ 17.20s - stdout ] ───────────────────────────────────────────────────────── +00:00:20 v #41 > > │ 00:00:00 v #1 async.run_with_timeout_async / { timeout = +00:00:20 v #42 > > 180 } +00:00:20 v #43 > > │ 00:00:00 d #1 runtime.execute_with_options_async / { +00:00:20 v #44 > > file_name = ../../../../deps/spiral/workspace/target/release/spiral.exe; +00:00:20 v #45 > > arguments = US5_0 "dib --path test.dib --retries 3"; options = { command = +00:00:20 v #46 > > ../../../../deps/spiral/workspace/target/release/spiral.exe dib --path test.dib +00:00:20 v #47 > > --retries 3; cancellation_token = Some System.Threading.CancellationToken; +00:00:20 v #48 > > environment_variables = [||]; on_line = None; stdin = None; trace = true; +00:00:20 v #49 > > working_directory = None } } +00:00:20 v #50 > > │ 00:00:00 v #2 > 00:00:00 d #1 spiral.main / { args +00:00:20 v #51 > > = Array(MutCell(["dib", "--path", "test.dib", "--retries", "3"])) } +00:00:20 v #52 > > │ 00:00:00 v #3 > 00:00:00 d #2 +00:00:20 v #53 > > runtime.execute_with_options / { file_name = dotnet; arguments = ["repl", +00:00:20 v #54 > > "--exit-after-run", "--run", +00:00:20 v #55 > > "c:/home/git/polyglot/apps/spiral/temp/test/test.dib", "--output-path", +00:00:20 v #56 > > "c:/home/git/polyglot/apps/spiral/temp/test/test.dib.ipynb"]; options = { +00:00:20 v #57 > > command = dotnet repl --exit-after-run --run +00:00:20 v #58 > > "c:/home/git/polyglot/apps/spiral/temp/test/test.dib" --output-path +00:00:20 v #59 > > "c:/home/git/polyglot/apps/spiral/temp/test/test.dib.ipynb"; cancellation_token +00:00:20 v #60 > > = None; environment_variables = Array(MutCell([("TRACE_LEVEL", "Verbose"), +00:00:20 v #61 > > ("AUTOMATION", "True")])); on_line = None; stdin = None; trace = false; +00:00:20 v #62 > > working_directory = None } } +00:00:20 v #63 > > │ 00:00:02 v #4 > > +00:00:20 v #64 > > │ 00:00:02 v #5 > > ── markdown +00:00:20 v #65 > > ──────────────────────────────────────────────────────────────────── +00:00:20 v #66 > > │ 00:00:02 v #6 > > │ # test (Polyglot) +00:00:20 v #67 > > │ 00:00:06 v #7 > > +00:00:20 v #68 > > │ 00:00:06 v #8 > > ── spiral +00:00:20 v #69 > > ────────────────────────────────────────────────────────────────────── +00:00:20 v #70 > > │ 00:00:06 v #9 > > //// test +00:00:20 v #71 > > │ 00:00:06 v #10 > > +00:00:20 v #72 > > │ 00:00:06 v #11 > > open testing +00:00:20 v #73 > > │ 00:00:07 v #12 > > +00:00:20 v #74 > > │ 00:00:07 v #13 > > ── spiral +00:00:20 v #75 > > ────────────────────────────────────────────────────────────────────── +00:00:20 v #76 > > │ 00:00:07 v #14 > > //// test +00:00:20 v #77 > > │ 00:00:07 v #15 > > //// print_code +00:00:20 v #78 > > │ 00:00:07 v #16 > > +00:00:20 v #79 > > │ 00:00:07 v #17 > > inl jp = [[ "J"; "P" ]] +00:00:20 v #80 > > │ 00:00:07 v #18 > > inl tf = [[ "T"; "F" ]] +00:00:20 v #81 > > │ 00:00:07 v #19 > > inl sn = [[ "S"; "N" ]] +00:00:20 v #82 > > │ 00:00:07 v #20 > > inl ie = [[ "I"; "E" ]] +00:00:20 v #83 > > │ 00:00:07 v #21 > > +00:00:20 v #84 > > │ 00:00:07 v #22 > > (ie, ([[]] : _ string)) +00:00:20 v #85 > > │ 00:00:07 v #23 > > ||> listm.foldBack fun ie' acc => +00:00:20 v #86 > > │ 00:00:07 v #24 > > inl ssnn acc' jp' = +00:00:20 v #87 > > │ 00:00:07 v #25 > > (sn, acc') +00:00:20 v #88 > > │ 00:00:07 v #26 > > ||> listm.foldBack fun sn' +00:00:20 v #89 > > acc' => +00:00:20 v #90 > > │ 00:00:07 v #27 > > inl c' ie' sn' tf' jp' = +00:00:20 v #91 > > │ 00:00:07 v #28 > > +00:00:20 v #92 > > $'$"{!ie'}{!sn'}{!tf'}{!jp'}"' +00:00:20 v #93 > > │ 00:00:07 v #29 > > +00:00:20 v #94 > > │ 00:00:07 v #30 > > if listm.length acc' % +00:00:20 v #95 > > 4i32 = 2 then +00:00:20 v #96 > > │ 00:00:07 v #31 > > (tf, acc') +00:00:20 v #97 > > │ 00:00:07 v #32 > > ||> listm.foldBack +00:00:20 v #98 > > fun tf' acc'' => +00:00:20 v #99 > > │ 00:00:07 v #33 > > c' ie' sn' tf' +00:00:20 v #100 > > jp' :: acc'' +00:00:20 v #101 > > │ 00:00:07 v #34 > > else +00:00:20 v #102 > > │ 00:00:07 v #35 > > (acc', tf) +00:00:20 v #103 > > │ 00:00:07 v #36 > > ||> listm.fold fun +00:00:20 v #104 > > acc'' tf' => +00:00:20 v #105 > > │ 00:00:07 v #37 > > c' ie' sn' tf' +00:00:20 v #106 > > jp' :: acc'' +00:00:20 v #107 > > │ 00:00:07 v #38 > > if acc = [[]] then +00:00:20 v #108 > > │ 00:00:07 v #39 > > (acc, jp) +00:00:20 v #109 > > │ 00:00:07 v #40 > > ||> listm.fold fun acc' jp' +00:00:20 v #110 > > => +00:00:20 v #111 > > │ 00:00:07 v #41 > > ssnn acc' jp' +00:00:20 v #112 > > │ 00:00:07 v #42 > > else +00:00:20 v #113 > > │ 00:00:07 v #43 > > (jp, acc) +00:00:20 v #114 > > │ 00:00:07 v #44 > > ||> listm.foldBack fun jp' +00:00:20 v #115 > > acc' => +00:00:20 v #116 > > │ 00:00:07 v #45 > > ssnn acc' jp' +00:00:20 v #117 > > │ 00:00:07 v #46 > > |> listm'.box +00:00:20 v #118 > > │ 00:00:07 v #47 > > |> listm'.to_array' +00:00:20 v #119 > > │ 00:00:07 v #48 > > |> _assert_eq' ;[[ +00:00:20 v #120 > > │ 00:00:07 v #49 > > "ISTJ"; "ISFJ"; "INFJ"; "INTJ" +00:00:20 v #121 > > │ 00:00:07 v #50 > > "ISTP"; "ISFP"; "INFP"; "INTP" +00:00:20 v #122 > > │ 00:00:07 v #51 > > "ESTP"; "ESFP"; "ENFP"; "ENTP" +00:00:20 v #123 > > │ 00:00:07 v #52 > > "ESTJ"; "ESFJ"; "ENFJ"; "ENTJ" +00:00:20 v #124 > > │ 00:00:07 v #53 > > ]] +00:00:20 v #125 > > │ 00:00:09 v #54 > > +00:00:20 v #126 > > │ 00:00:09 v #55 > > ── [ 1.09s - stdout ] +00:00:20 v #127 > > ────────────────────────────────────────────────────────── +00:00:20 v #128 > > │ 00:00:09 v #56 > > │ let rec method1 +00:00:20 v #129 > > (v0 : bool) : bool = +00:00:20 v #130 > > │ 00:00:09 v #57 > > │ v0 +00:00:20 v #131 > > │ 00:00:09 v #58 > > │ and closure0 (v0 : +00:00:20 v #132 > > string) () : unit = +00:00:20 v #133 > > │ 00:00:09 v #59 > > │ let v1 : +00:00:20 v #134 > > (string -> unit) = System.Console.WriteLine +00:00:20 v #135 > > │ 00:00:09 v #60 > > │ v1 v0 +00:00:20 v #136 > > │ 00:00:09 v #61 > > │ and method0 () : +00:00:20 v #137 > > unit = +00:00:20 v #138 > > │ 00:00:09 v #62 > > │ let v0 : +00:00:20 v #139 > > string = "E" +00:00:20 v #140 > > │ 00:00:09 v #63 > > │ let v1 : +00:00:20 v #141 > > string = "N" +00:00:20 v #142 > > │ 00:00:09 v #64 > > │ let v2 : +00:00:20 v #143 > > string = "T" +00:00:20 v #144 > > │ 00:00:09 v #65 > > │ let v3 : +00:00:20 v #145 > > string = "J" +00:00:20 v #146 > > │ 00:00:09 v #66 > > │ let v4 : +00:00:20 v #147 > > string = $"{v0}{v1}{v2}{v3}" +00:00:20 v #148 > > │ 00:00:09 v #67 > > │ let v5 : +00:00:20 v #149 > > string = "F" +00:00:20 v #150 > > │ 00:00:09 v #68 > > │ let v6 : +00:00:20 v #151 > > string = $"{v0}{v1}{v5}{v3}" +00:00:20 v #152 > > │ 00:00:09 v #69 > > │ let v7 : +00:00:20 v #153 > > string = "S" +00:00:20 v #154 > > │ 00:00:09 v #70 > > │ let v8 : +00:00:20 v #155 > > string = $"{v0}{v7}{v5}{v3}" +00:00:20 v #156 > > │ 00:00:09 v #71 > > │ let v9 : +00:00:20 v #157 > > string = $"{v0}{v7}{v2}{v3}" +00:00:20 v #158 > > │ 00:00:09 v #72 > > │ let v10 : +00:00:20 v #159 > > string = "P" +00:00:20 v #160 > > │ 00:00:09 v #73 > > │ let v11 : +00:00:20 v #161 > > string = $"{v0}{v1}{v2}{v10}" +00:00:20 v #162 > > │ 00:00:09 v #74 > > │ let v12 : +00:00:20 v #163 > > string = $"{v0}{v1}{v5}{v10}" +00:00:20 v #164 > > │ 00:00:09 v #75 > > │ let v13 : +00:00:20 v #165 > > string = $"{v0}{v7}{v5}{v10}" +00:00:20 v #166 > > │ 00:00:09 v #76 > > │ let v14 : +00:00:20 v #167 > > string = $"{v0}{v7}{v2}{v10}" +00:00:20 v #168 > > │ 00:00:09 v #77 > > │ let v15 : +00:00:20 v #169 > > string = "I" +00:00:20 v #170 > > │ 00:00:09 v #78 > > │ let v16 : +00:00:20 v #171 > > string = $"{v15}{v1}{v2}{v10}" +00:00:20 v #172 > > │ 00:00:09 v #79 > > │ let v17 : +00:00:20 v #173 > > string = $"{v15}{v1}{v5}{v10}" +00:00:20 v #174 > > │ 00:00:09 v #80 > > │ let v18 : +00:00:20 v #175 > > string = $"{v15}{v7}{v5}{v10}" +00:00:20 v #176 > > │ 00:00:09 v #81 > > │ let v19 : +00:00:20 v #177 > > string = $"{v15}{v7}{v2}{v10}" +00:00:20 v #178 > > │ 00:00:09 v #82 > > │ let v20 : +00:00:20 v #179 > > string = $"{v15}{v1}{v2}{v3}" +00:00:20 v #180 > > │ 00:00:09 v #83 > > │ let v21 : +00:00:20 v #181 > > string = $"{v15}{v1}{v5}{v3}" +00:00:20 v #182 > > │ 00:00:09 v #84 > > │ let v22 : +00:00:20 v #183 > > string = $"{v15}{v7}{v5}{v3}" +00:00:20 v #184 > > │ 00:00:09 v #85 > > │ let v23 : +00:00:20 v #185 > > string = $"{v15}{v7}{v2}{v3}" +00:00:20 v #186 > > │ 00:00:09 v #86 > > │ let v24 : +00:00:20 v #187 > > string list = [] +00:00:20 v #188 > > │ 00:00:09 v #87 > > │ let v25 : +00:00:20 v #189 > > string list = v4 :: v24 +00:00:20 v #190 > > │ 00:00:09 v #88 > > │ let v28 : +00:00:20 v #191 > > string list = v6 :: v25 +00:00:20 v #192 > > │ 00:00:09 v #89 > > │ let v31 : +00:00:20 v #193 > > string list = v8 :: v28 +00:00:20 v #194 > > │ 00:00:09 v #90 > > │ let v34 : +00:00:20 v #195 > > string list = v9 :: v31 +00:00:20 v #196 > > │ 00:00:09 v #91 > > │ let v37 : +00:00:20 v #197 > > string list = v11 :: v34 +00:00:20 v #198 > > │ 00:00:09 v #92 > > │ let v40 : +00:00:20 v #199 > > string list = v12 :: v37 +00:00:20 v #200 > > │ 00:00:09 v #93 > > │ let v43 : +00:00:20 v #201 > > string list = v13 :: v40 +00:00:20 v #202 > > │ 00:00:09 v #94 > > │ let v46 : +00:00:20 v #203 > > string list = v14 :: v43 +00:00:20 v #204 > > │ 00:00:09 v #95 > > │ let v49 : +00:00:20 v #205 > > string list = v16 :: v46 +00:00:20 v #206 > > │ 00:00:09 v #96 > > │ let v52 : +00:00:20 v #207 > > string list = v17 :: v49 +00:00:20 v #208 > > │ 00:00:09 v #97 > > │ let v55 : +00:00:20 v #209 > > string list = v18 :: v52 +00:00:20 v #210 > > │ 00:00:09 v #98 > > │ let v58 : +00:00:20 v #211 > > string list = v19 :: v55 +00:00:20 v #212 > > │ 00:00:09 v #99 > > │ let v61 : +00:00:20 v #213 > > string list = v20 :: v58 +00:00:20 v #214 > > │ 00:00:09 v #100 > > │ let v64 : +00:00:20 v #215 > > string list = v21 :: v61 +00:00:20 v #216 > > │ 00:00:09 v #101 > > │ let v67 : +00:00:20 v #217 > > string list = v22 :: v64 +00:00:20 v #218 > > │ 00:00:09 v #102 > > │ let v70 : +00:00:20 v #219 > > string list = v23 :: v67 +00:00:20 v #220 > > │ 00:00:09 v #103 > > │ let v73 : +00:00:20 v #221 > > (string list -> (string [])) = List.toArray +00:00:20 v #222 > > │ 00:00:09 v #104 > > │ let v74 : +00:00:20 v #223 > > (string []) = v73 v70 +00:00:20 v #224 > > │ 00:00:09 v #105 > > │ let v77 : +00:00:20 v #225 > > string = "ISTJ" +00:00:20 v #226 > > │ 00:00:09 v #106 > > │ let v78 : +00:00:20 v #227 > > string = "ISFJ" +00:00:20 v #228 > > │ 00:00:09 v #107 > > │ let v79 : +00:00:20 v #229 > > string = "INFJ" +00:00:20 v #230 > > │ 00:00:09 v #108 > > │ let v80 : +00:00:20 v #231 > > string = "INTJ" +00:00:20 v #232 > > │ 00:00:09 v #109 > > │ let v81 : +00:00:20 v #233 > > string = "ISTP" +00:00:20 v #234 > > │ 00:00:09 v #110 > > │ let v82 : +00:00:20 v #235 > > string = "ISFP" +00:00:20 v #236 > > │ 00:00:09 v #111 > > │ let v83 : +00:00:20 v #237 > > string = "INFP" +00:00:20 v #238 > > │ 00:00:09 v #112 > > │ let v84 : +00:00:20 v #239 > > string = "INTP" +00:00:20 v #240 > > │ 00:00:09 v #113 > > │ let v85 : +00:00:20 v #241 > > string = "ESTP" +00:00:20 v #242 > > │ 00:00:09 v #114 > > │ let v86 : +00:00:20 v #243 > > string = "ESFP" +00:00:20 v #244 > > │ 00:00:09 v #115 > > │ let v87 : +00:00:20 v #245 > > string = "ENFP" +00:00:20 v #246 > > │ 00:00:09 v #116 > > │ let v88 : +00:00:20 v #247 > > string = "ENTP" +00:00:20 v #248 > > │ 00:00:09 v #117 > > │ let v89 : +00:00:20 v #249 > > string = "ESTJ" +00:00:20 v #250 > > │ 00:00:09 v #118 > > │ let v90 : +00:00:20 v #251 > > string = "ESFJ" +00:00:20 v #252 > > │ 00:00:09 v #119 > > │ let v91 : +00:00:20 v #253 > > string = "ENFJ" +00:00:20 v #254 > > │ 00:00:09 v #120 > > │ let v92 : +00:00:20 v #255 > > string = "ENTJ" +00:00:20 v #256 > > │ 00:00:09 v #121 > > │ let v93 : +00:00:20 v #257 > > (string []) = [|v77; v78; v79; v80; v81; v82; +00:00:20 v #258 > > │ 00:00:09 v #122 > > v83; v84; v85; v86; v87; v88; v89; +00:00:20 v #259 > > v90; v91; v92|] +00:00:20 v #260 > > │ 00:00:09 v #123 > > │ let v94 : +00:00:20 v #261 > > bool = v74 = v93 +00:00:20 v #262 > > │ 00:00:09 v #124 > > │ let v98 : +00:00:20 v #263 > > bool = +00:00:20 v #264 > > │ 00:00:09 v #125 > > │ if v94 +00:00:20 v #265 > > then +00:00:20 v #266 > > │ 00:00:09 v #126 > > │ true +00:00:20 v #267 > > │ 00:00:09 v #127 > > │ else +00:00:20 v #268 > > │ 00:00:09 v #128 > > │ +00:00:20 v #269 > > method1(v94) +00:00:20 v #270 > > │ 00:00:09 v #129 > > │ let v99 : +00:00:20 v #271 > > string = "__assert_eq'" +00:00:20 v #272 > > │ 00:00:09 v #130 > > │ let v100 : +00:00:20 v #273 > > string = $"{v99} / actual: %A{v74} / expected: +00:00:20 v #274 > > │ 00:00:09 v #131 > > %A{v93}" +00:00:20 v #275 > > │ 00:00:09 v #132 > > │ let v103 : +00:00:20 v #276 > > unit = () +00:00:20 v #277 > > │ 00:00:09 v #133 > > │ let v104 : +00:00:20 v #278 > > (unit -> unit) = closure0(v100) +00:00:20 v #279 > > │ 00:00:09 v #134 > > │ let v105 : +00:00:20 v #280 > > unit = (fun () -> v104 (); v103) () +00:00:20 v #281 > > │ 00:00:09 v #135 > > │ let v107 : +00:00:20 v #282 > > bool = v98 = false +00:00:20 v #283 > > │ 00:00:09 v #136 > > │ if v107 then +00:00:20 v #284 > > │ 00:00:09 v #137 > > │ +00:00:20 v #285 > > failwith<unit> v100 +00:00:20 v #286 > > │ 00:00:09 v #138 > > │ method0() +00:00:20 v #287 > > │ 00:00:09 v #139 > > │ +00:00:20 v #288 > > │ 00:00:09 v #140 > > │ __assert_eq' +00:00:20 v #289 > > actual: [|"ISTJ"; "ISFJ"; "INFJ"; "INTJ"; +00:00:20 v #290 > > │ 00:00:09 v #141 > > "ISTP"; "ISFP"; "INFP"; "INTP"; +00:00:20 v #291 > > "ESTP"; "ESFP"; +00:00:20 v #292 > > │ 00:00:09 v #142 > > │ "ENFP"; "ENTP"; +00:00:20 v #293 > > "ESTJ"; "ESFJ"; "ENFJ"; "ENTJ"|] +00:00:20 v #294 > > │ 00:00:09 v #143 > > expected: [|"ISTJ"; "ISFJ"; "INFJ"; +00:00:20 v #295 > > "INTJ"; "ISTP"; "ISFP"; "INFP"; "INTP"; +00:00:20 v #296 > > │ 00:00:09 v #144 > > "ESTP"; "ESFP"; +00:00:20 v #297 > > │ 00:00:09 v #145 > > │ "ENFP"; "ENTP"; +00:00:20 v #298 > > "ESTJ"; "ESFJ"; "ENFJ"; "ENTJ"|] +00:00:20 v #299 > > │ 00:00:09 v #146 > > │ +00:00:20 v #300 > > │ 00:00:09 v #147 > > +00:00:20 v #301 > > │ 00:00:09 v #148 > > ── spiral +00:00:20 v #302 > > ────────────────────────────────────────────────────────────────────── +00:00:20 v #303 > > │ 00:00:09 v #149 > > //// test +00:00:20 v #304 > > │ 00:00:09 v #150 > > //// print_code +00:00:20 v #305 > > │ 00:00:09 v #151 > > +00:00:20 v #306 > > │ 00:00:09 v #152 > > inl i_e = +00:00:20 v #307 > > │ 00:00:09 v #153 > > listm'.replicate 8i32 "I" ++ +00:00:20 v #308 > > listm'.replicate 8i32 "E" +00:00:20 v #309 > > │ 00:00:09 v #154 > > inl s_n = +00:00:20 v #310 > > │ 00:00:09 v #155 > > [[ "S"; "S"; "N"; "N" ]] +00:00:20 v #311 > > │ 00:00:09 v #156 > > |> listm'.replicate 4i32 +00:00:20 v #312 > > │ 00:00:09 v #157 > > |> listm'.collect id +00:00:20 v #313 > > │ 00:00:09 v #158 > > inl t_f = +00:00:20 v #314 > > │ 00:00:09 v #159 > > [[ "T"; "F"; "F"; "T" ]] +00:00:20 v #315 > > │ 00:00:09 v #160 > > |> listm'.replicate 4i32 +00:00:20 v #316 > > │ 00:00:09 v #161 > > |> listm'.collect id +00:00:20 v #317 > > │ 00:00:09 v #162 > > inl j_p = +00:00:20 v #318 > > │ 00:00:09 v #163 > > [[ "J"; "J"; "J"; "J" ]] +00:00:20 v #319 > > │ 00:00:09 v #164 > > ++ [[ "P"; "P"; "P"; "P" ]] +00:00:20 v #320 > > │ 00:00:09 v #165 > > ++ [[ "P"; "P"; "P"; "P" ]] +00:00:20 v #321 > > │ 00:00:09 v #166 > > ++ [[ "J"; "J"; "J"; "J" ]] +00:00:20 v #322 > > │ 00:00:09 v #167 > > inl mbti = +00:00:20 v #323 > > │ 00:00:09 v #168 > > listm'.map4 (fun a b c d => +00:00:20 v #324 > > $'$"{!a}{!b}{!c}{!d}"') i_e s_n t_f j_p +00:00:20 v #325 > > │ 00:00:09 v #169 > > +00:00:20 v #326 > > │ 00:00:09 v #170 > > mbti +00:00:20 v #327 > > │ 00:00:09 v #171 > > |> listm'.box +00:00:20 v #328 > > │ 00:00:09 v #172 > > |> listm'.to_array' +00:00:20 v #329 > > │ 00:00:09 v #173 > > |> _assert_eq' ;[[ +00:00:20 v #330 > > │ 00:00:09 v #174 > > "ISTJ"; "ISFJ"; "INFJ"; "INTJ" +00:00:20 v #331 > > │ 00:00:09 v #175 > > "ISTP"; "ISFP"; "INFP"; "INTP" +00:00:20 v #332 > > │ 00:00:09 v #176 > > "ESTP"; "ESFP"; "ENFP"; "ENTP" +00:00:20 v #333 > > │ 00:00:09 v #177 > > "ESTJ"; "ESFJ"; "ENFJ"; "ENTJ" +00:00:20 v #334 > > │ 00:00:09 v #178 > > ]] +00:00:20 v #335 > > │ 00:00:09 v #179 > > +00:00:20 v #336 > > │ 00:00:09 v #180 > > ── [ 528.07ms - stdout ] +00:00:20 v #337 > > ─────────────────────────────────────────────────────── +00:00:20 v #338 > > │ 00:00:09 v #181 > > │ let rec method1 +00:00:20 v #339 > > (v0 : bool) : bool = +00:00:20 v #340 > > │ 00:00:09 v #182 > > │ v0 +00:00:20 v #341 > > │ 00:00:09 v #183 > > │ and closure0 (v0 +00:00:20 v #342 > > : string) () : unit = +00:00:20 v #343 > > │ 00:00:09 v #184 > > │ let v1 : +00:00:20 v #344 > > (string -> unit) = System.Console.WriteLine +00:00:20 v #345 > > │ 00:00:09 v #185 > > │ v1 v0 +00:00:20 v #346 > > │ 00:00:09 v #186 > > │ and method0 () : +00:00:20 v #347 > > unit = +00:00:20 v #348 > > │ 00:00:09 v #187 > > │ let v0 : +00:00:20 v #349 > > string = "I" +00:00:20 v #350 > > │ 00:00:09 v #188 > > │ let v1 : +00:00:20 v #351 > > string = "S" +00:00:20 v #352 > > │ 00:00:09 v #189 > > │ let v2 : +00:00:20 v #353 > > string = "T" +00:00:20 v #354 > > │ 00:00:09 v #190 > > │ let v3 : +00:00:20 v #355 > > string = "J" +00:00:20 v #356 > > │ 00:00:09 v #191 > > │ let v4 : +00:00:20 v #357 > > string = $"{v0}{v1}{v2}{v3}" +00:00:20 v #358 > > │ 00:00:09 v #192 > > │ let v5 : +00:00:20 v #359 > > string = "F" +00:00:20 v #360 > > │ 00:00:09 v #193 > > │ let v6 : +00:00:20 v #361 > > string = $"{v0}{v1}{v5}{v3}" +00:00:20 v #362 > > │ 00:00:09 v #194 > > │ let v7 : +00:00:20 v #363 > > string = "N" +00:00:20 v #364 > > │ 00:00:09 v #195 > > │ let v8 : +00:00:20 v #365 > > string = $"{v0}{v7}{v5}{v3}" +00:00:20 v #366 > > │ 00:00:09 v #196 > > │ let v9 : +00:00:20 v #367 > > string = $"{v0}{v7}{v2}{v3}" +00:00:20 v #368 > > │ 00:00:09 v #197 > > │ let v10 : +00:00:20 v #369 > > string = "P" +00:00:20 v #370 > > │ 00:00:09 v #198 > > │ let v11 : +00:00:20 v #371 > > string = $"{v0}{v1}{v2}{v10}" +00:00:20 v #372 > > │ 00:00:09 v #199 > > │ let v12 : +00:00:20 v #373 > > string = $"{v0}{v1}{v5}{v10}" +00:00:20 v #374 > > │ 00:00:09 v #200 > > │ let v13 : +00:00:20 v #375 > > string = $"{v0}{v7}{v5}{v10}" +00:00:20 v #376 > > │ 00:00:09 v #201 > > │ let v14 : +00:00:20 v #377 > > string = $"{v0}{v7}{v2}{v10}" +00:00:20 v #378 > > │ 00:00:09 v #202 > > │ let v15 : +00:00:20 v #379 > > string = "E" +00:00:20 v #380 > > │ 00:00:09 v #203 > > │ let v16 : +00:00:20 v #381 > > string = $"{v15}{v1}{v2}{v10}" +00:00:20 v #382 > > │ 00:00:09 v #204 > > │ let v17 : +00:00:20 v #383 > > string = $"{v15}{v1}{v5}{v10}" +00:00:20 v #384 > > │ 00:00:09 v #205 > > │ let v18 : +00:00:20 v #385 > > string = $"{v15}{v7}{v5}{v10}" +00:00:20 v #386 > > │ 00:00:09 v #206 > > │ let v19 : +00:00:20 v #387 > > string = $"{v15}{v7}{v2}{v10}" +00:00:20 v #388 > > │ 00:00:09 v #207 > > │ let v20 : +00:00:20 v #389 > > string = $"{v15}{v1}{v2}{v3}" +00:00:20 v #390 > > │ 00:00:09 v #208 > > │ let v21 : +00:00:20 v #391 > > string = $"{v15}{v1}{v5}{v3}" +00:00:20 v #392 > > │ 00:00:09 v #209 > > │ let v22 : +00:00:20 v #393 > > string = $"{v15}{v7}{v5}{v3}" +00:00:20 v #394 > > │ 00:00:09 v #210 > > │ let v23 : +00:00:20 v #395 > > string = $"{v15}{v7}{v2}{v3}" +00:00:20 v #396 > > │ 00:00:09 v #211 > > │ let v24 : +00:00:20 v #397 > > string list = [] +00:00:20 v #398 > > │ 00:00:09 v #212 > > │ let v25 : +00:00:20 v #399 > > string list = v23 :: v24 +00:00:20 v #400 > > │ 00:00:09 v #213 > > │ let v28 : +00:00:20 v #401 > > string list = v22 :: v25 +00:00:20 v #402 > > │ 00:00:09 v #214 > > │ let v31 : +00:00:20 v #403 > > string list = v21 :: v28 +00:00:20 v #404 > > │ 00:00:09 v #215 > > │ let v34 : +00:00:20 v #405 > > string list = v20 :: v31 +00:00:20 v #406 > > │ 00:00:09 v #216 > > │ let v37 : +00:00:20 v #407 > > string list = v19 :: v34 +00:00:20 v #408 > > │ 00:00:09 v #217 > > │ let v40 : +00:00:20 v #409 > > string list = v18 :: v37 +00:00:20 v #410 > > │ 00:00:09 v #218 > > │ let v43 : +00:00:20 v #411 > > string list = v17 :: v40 +00:00:20 v #412 > > │ 00:00:09 v #219 > > │ let v46 : +00:00:20 v #413 > > string list = v16 :: v43 +00:00:20 v #414 > > │ 00:00:09 v #220 > > │ let v49 : +00:00:20 v #415 > > string list = v14 :: v46 +00:00:20 v #416 > > │ 00:00:09 v #221 > > │ let v52 : +00:00:20 v #417 > > string list = v13 :: v49 +00:00:20 v #418 > > │ 00:00:09 v #222 > > │ let v55 : +00:00:20 v #419 > > string list = v12 :: v52 +00:00:20 v #420 > > │ 00:00:09 v #223 > > │ let v58 : +00:00:20 v #421 > > string list = v11 :: v55 +00:00:20 v #422 > > │ 00:00:09 v #224 > > │ let v61 : +00:00:20 v #423 > > string list = v9 :: v58 +00:00:20 v #424 > > │ 00:00:09 v #225 > > │ let v64 : +00:00:20 v #425 > > string list = v8 :: v61 +00:00:20 v #426 > > │ 00:00:09 v #226 > > │ let v67 : +00:00:20 v #427 > > string list = v6 :: v64 +00:00:20 v #428 > > │ 00:00:09 v #227 > > │ let v70 : +00:00:20 v #429 > > string list = v4 :: v67 +00:00:20 v #430 > > │ 00:00:09 v #228 > > │ let v73 : +00:00:20 v #431 > > (string list -> (string [])) = List.toArray +00:00:20 v #432 > > │ 00:00:09 v #229 > > │ let v74 : +00:00:20 v #433 > > (string []) = v73 v70 +00:00:20 v #434 > > │ 00:00:09 v #230 > > │ let v77 : +00:00:20 v #435 > > string = "ISTJ" +00:00:20 v #436 > > │ 00:00:09 v #231 > > │ let v78 : +00:00:20 v #437 > > string = "ISFJ" +00:00:20 v #438 > > │ 00:00:09 v #232 > > │ let v79 : +00:00:20 v #439 > > string = "INFJ" +00:00:20 v #440 > > │ 00:00:09 v #233 > > │ let v80 : +00:00:20 v #441 > > string = "INTJ" +00:00:20 v #442 > > │ 00:00:09 v #234 > > │ let v81 : +00:00:20 v #443 > > string = "ISTP" +00:00:20 v #444 > > │ 00:00:09 v #235 > > │ let v82 : +00:00:20 v #445 > > string = "ISFP" +00:00:20 v #446 > > │ 00:00:09 v #236 > > │ let v83 : +00:00:20 v #447 > > string = "INFP" +00:00:20 v #448 > > │ 00:00:09 v #237 > > │ let v84 : +00:00:20 v #449 > > string = "INTP" +00:00:20 v #450 > > │ 00:00:09 v #238 > > │ let v85 : +00:00:20 v #451 > > string = "ESTP" +00:00:20 v #452 > > │ 00:00:09 v #239 > > │ let v86 : +00:00:20 v #453 > > string = "ESFP" +00:00:20 v #454 > > │ 00:00:09 v #240 > > │ let v87 : +00:00:20 v #455 > > string = "ENFP" +00:00:20 v #456 > > │ 00:00:09 v #241 > > │ let v88 : +00:00:20 v #457 > > string = "ENTP" +00:00:20 v #458 > > │ 00:00:09 v #242 > > │ let v89 : +00:00:20 v #459 > > string = "ESTJ" +00:00:20 v #460 > > │ 00:00:09 v #243 > > │ let v90 : +00:00:20 v #461 > > string = "ESFJ" +00:00:20 v #462 > > │ 00:00:09 v #244 > > │ let v91 : +00:00:20 v #463 > > string = "ENFJ" +00:00:20 v #464 > > │ 00:00:09 v #245 > > │ let v92 : +00:00:20 v #465 > > string = "ENTJ" +00:00:20 v #466 > > │ 00:00:09 v #246 > > │ let v93 : +00:00:20 v #467 > > (string []) = [|v77; v78; v79; v80; v81; v82; +00:00:20 v #468 > > │ 00:00:09 v #247 > > v83; v84; v85; v86; v87; v88; v89; +00:00:20 v #469 > > v90; v91; v92|] +00:00:20 v #470 > > │ 00:00:09 v #248 > > │ let v94 : +00:00:20 v #471 > > bool = v74 = v93 +00:00:20 v #472 > > │ 00:00:09 v #249 > > │ let v98 : +00:00:20 v #473 > > bool = +00:00:20 v #474 > > │ 00:00:09 v #250 > > │ if v94 +00:00:20 v #475 > > then +00:00:20 v #476 > > │ 00:00:09 v #251 > > │ true +00:00:20 v #477 > > │ 00:00:09 v #252 > > │ else +00:00:20 v #478 > > │ 00:00:09 v #253 > > │ +00:00:20 v #479 > > method1(v94) +00:00:20 v #480 > > │ 00:00:09 v #254 > > │ let v99 : +00:00:20 v #481 > > string = "__assert_eq'" +00:00:20 v #482 > > │ 00:00:09 v #255 > > │ let v100 : +00:00:20 v #483 > > string = $"{v99} / actual: %A{v74} / expected: +00:00:20 v #484 > > │ 00:00:09 v #256 > > %A{v93}" +00:00:20 v #485 > > │ 00:00:09 v #257 > > │ let v103 : +00:00:20 v #486 > > unit = () +00:00:20 v #487 > > │ 00:00:09 v #258 > > │ let v104 : +00:00:20 v #488 > > (unit -> unit) = closure0(v100) +00:00:20 v #489 > > │ 00:00:09 v #259 > > │ let v105 : +00:00:20 v #490 > > unit = (fun () -> v104 (); v103) () +00:00:20 v #491 > > │ 00:00:09 v #260 > > │ let v107 : +00:00:20 v #492 > > bool = v98 = false +00:00:20 v #493 > > │ 00:00:09 v #261 > > │ if v107 then +00:00:20 v #494 > > │ 00:00:09 v #262 > > │ +00:00:20 v #495 > > failwith<unit> v100 +00:00:20 v #496 > > │ 00:00:09 v #263 > > │ method0() +00:00:20 v #497 > > │ 00:00:09 v #264 > > │ +00:00:20 v #498 > > │ 00:00:09 v #265 > > │ __assert_eq' +00:00:20 v #499 > > actual: [|"ISTJ"; "ISFJ"; "INFJ"; "INTJ"; +00:00:20 v #500 > > │ 00:00:09 v #266 > > "ISTP"; "ISFP"; "INFP"; "INTP"; +00:00:20 v #501 > > "ESTP"; "ESFP"; +00:00:20 v #502 > > │ 00:00:09 v #267 > > │ "ENFP"; "ENTP"; +00:00:20 v #503 > > "ESTJ"; "ESFJ"; "ENFJ"; "ENTJ"|] +00:00:20 v #504 > > │ 00:00:09 v #268 > > expected: [|"ISTJ"; "ISFJ"; "INFJ"; +00:00:20 v #505 > > "INTJ"; "ISTP"; "ISFP"; "INFP"; "INTP"; +00:00:20 v #506 > > │ 00:00:09 v #269 > > "ESTP"; "ESFP"; +00:00:20 v #507 > > │ 00:00:09 v #270 > > │ "ENFP"; "ENTP"; +00:00:20 v #508 > > "ESTJ"; "ESFJ"; "ENFJ"; "ENTJ"|] +00:00:20 v #509 > > │ 00:00:09 v #271 > > │ +00:00:20 v #510 > > │ 00:00:09 v #272 > > +00:00:20 v #511 > > │ 00:00:09 v #273 > > ── spiral +00:00:20 v #512 > > ────────────────────────────────────────────────────────────────────── +00:00:20 v #513 > > │ 00:00:09 v #274 > > //// test +00:00:20 v #514 > > │ 00:00:09 v #275 > > //// print_code +00:00:20 v #515 > > │ 00:00:09 v #276 > > +00:00:20 v #516 > > │ 00:00:09 v #277 > > fun i => +00:00:20 v #517 > > │ 00:00:09 v #278 > > inl i_e = +00:00:20 v #518 > > │ 00:00:09 v #279 > > if i < 8 +00:00:20 v #519 > > │ 00:00:09 v #280 > > then "I" +00:00:20 v #520 > > │ 00:00:09 v #281 > > else "E" +00:00:20 v #521 > > │ 00:00:09 v #282 > > inl s_n = +00:00:20 v #522 > > │ 00:00:09 v #283 > > inl group = (i / 2) % 2 +00:00:20 v #523 > > │ 00:00:09 v #284 > > if group = 0 +00:00:20 v #524 > > │ 00:00:09 v #285 > > then "S" +00:00:20 v #525 > > │ 00:00:09 v #286 > > else "N" +00:00:20 v #526 > > │ 00:00:09 v #287 > > inl t_f = +00:00:20 v #527 > > │ 00:00:09 v #288 > > match i % 4 with +00:00:20 v #528 > > │ 00:00:09 v #289 > > | 0 => "T" +00:00:20 v #529 > > │ 00:00:09 v #290 > > | 1 => "F" +00:00:20 v #530 > > │ 00:00:09 v #291 > > | 2 => "F" +00:00:20 v #531 > > │ 00:00:09 v #292 > > | _ => "T" +00:00:20 v #532 > > │ 00:00:09 v #293 > > inl j_p = +00:00:20 v #533 > > │ 00:00:09 v #294 > > if i < 4 +00:00:20 v #534 > > │ 00:00:09 v #295 > > then "J" +00:00:20 v #535 > > │ 00:00:09 v #296 > > elif i < 12 +00:00:20 v #536 > > │ 00:00:09 v #297 > > then "P" +00:00:20 v #537 > > │ 00:00:09 v #298 > > else "J" +00:00:20 v #538 > > │ 00:00:09 v #299 > > $'$"{!i_e}{!s_n}{!t_f}{!j_p}"' +00:00:20 v #539 > > │ 00:00:09 v #300 > > |> listm.init 16i32 +00:00:20 v #540 > > │ 00:00:09 v #301 > > |> listm'.box +00:00:20 v #541 > > │ 00:00:09 v #302 > > |> listm'.to_array' +00:00:20 v #542 > > │ 00:00:09 v #303 > > |> _assert_eq' ;[[ +00:00:20 v #543 > > │ 00:00:09 v #304 > > "ISTJ"; "ISFJ"; "INFJ"; "INTJ" +00:00:20 v #544 > > │ 00:00:09 v #305 > > "ISTP"; "ISFP"; "INFP"; "INTP" +00:00:20 v #545 > > │ 00:00:09 v #306 > > "ESTP"; "ESFP"; "ENFP"; "ENTP" +00:00:20 v #546 > > │ 00:00:09 v #307 > > "ESTJ"; "ESFJ"; "ENFJ"; "ENTJ" +00:00:20 v #547 > > │ 00:00:09 v #308 > > ]] +00:00:20 v #548 > > │ 00:00:10 v #309 > > +00:00:20 v #549 > > │ 00:00:10 v #310 > > ── [ 558.50ms - stdout ] +00:00:20 v #550 > > ─────────────────────────────────────────────────────── +00:00:20 v #551 > > │ 00:00:10 v #311 > > │ let rec method1 +00:00:20 v #552 > > (v0 : bool) : bool = +00:00:20 v #553 > > │ 00:00:10 v #312 > > │ v0 +00:00:20 v #554 > > │ 00:00:10 v #313 > > │ and closure0 (v0 +00:00:20 v #555 > > : string) () : unit = +00:00:20 v #556 > > │ 00:00:10 v #314 > > │ let v1 : +00:00:20 v #557 > > (string -> unit) = System.Console.WriteLine +00:00:20 v #558 > > │ 00:00:10 v #315 > > │ v1 v0 +00:00:20 v #559 > > │ 00:00:10 v #316 > > │ and method0 () : +00:00:20 v #560 > > unit = +00:00:20 v #561 > > │ 00:00:10 v #317 > > │ let v0 : +00:00:20 v #562 > > string = "I" +00:00:20 v #563 > > │ 00:00:10 v #318 > > │ let v1 : +00:00:20 v #564 > > string = "S" +00:00:20 v #565 > > │ 00:00:10 v #319 > > │ let v2 : +00:00:20 v #566 > > string = "T" +00:00:20 v #567 > > │ 00:00:10 v #320 > > │ let v3 : +00:00:20 v #568 > > string = "J" +00:00:20 v #569 > > │ 00:00:10 v #321 > > │ let v4 : +00:00:20 v #570 > > string = $"{v0}{v1}{v2}{v3}" +00:00:20 v #571 > > │ 00:00:10 v #322 > > │ let v5 : +00:00:20 v #572 > > string = "F" +00:00:20 v #573 > > │ 00:00:10 v #323 > > │ let v6 : +00:00:20 v #574 > > string = $"{v0}{v1}{v5}{v3}" +00:00:20 v #575 > > │ 00:00:10 v #324 > > │ let v7 : +00:00:20 v #576 > > string = "N" +00:00:20 v #577 > > │ 00:00:10 v #325 > > │ let v8 : +00:00:20 v #578 > > string = $"{v0}{v7}{v5}{v3}" +00:00:20 v #579 > > │ 00:00:10 v #326 > > │ let v9 : +00:00:20 v #580 > > string = $"{v0}{v7}{v2}{v3}" +00:00:20 v #581 > > │ 00:00:10 v #327 > > │ let v10 : +00:00:20 v #582 > > string = "P" +00:00:20 v #583 > > │ 00:00:10 v #328 > > │ let v11 : +00:00:20 v #584 > > string = $"{v0}{v1}{v2}{v10}" +00:00:20 v #585 > > │ 00:00:10 v #329 > > │ let v12 : +00:00:20 v #586 > > string = $"{v0}{v1}{v5}{v10}" +00:00:20 v #587 > > │ 00:00:10 v #330 > > │ let v13 : +00:00:20 v #588 > > string = $"{v0}{v7}{v5}{v10}" +00:00:20 v #589 > > │ 00:00:10 v #331 > > │ let v14 : +00:00:20 v #590 > > string = $"{v0}{v7}{v2}{v10}" +00:00:20 v #591 > > │ 00:00:10 v #332 > > │ let v15 : +00:00:20 v #592 > > string = "E" +00:00:20 v #593 > > │ 00:00:10 v #333 > > │ let v16 : +00:00:20 v #594 > > string = $"{v15}{v1}{v2}{v10}" +00:00:20 v #595 > > │ 00:00:10 v #334 > > │ let v17 : +00:00:20 v #596 > > string = $"{v15}{v1}{v5}{v10}" +00:00:20 v #597 > > │ 00:00:10 v #335 > > │ let v18 : +00:00:20 v #598 > > string = $"{v15}{v7}{v5}{v10}" +00:00:20 v #599 > > │ 00:00:10 v #336 > > │ let v19 : +00:00:20 v #600 > > string = $"{v15}{v7}{v2}{v10}" +00:00:20 v #601 > > │ 00:00:10 v #337 > > │ let v20 : +00:00:20 v #602 > > string = $"{v15}{v1}{v2}{v3}" +00:00:20 v #603 > > │ 00:00:10 v #338 > > │ let v21 : +00:00:20 v #604 > > string = $"{v15}{v1}{v5}{v3}" +00:00:20 v #605 > > │ 00:00:10 v #339 > > │ let v22 : +00:00:20 v #606 > > string = $"{v15}{v7}{v5}{v3}" +00:00:20 v #607 > > │ 00:00:10 v #340 > > │ let v23 : +00:00:20 v #608 > > string = $"{v15}{v7}{v2}{v3}" +00:00:20 v #609 > > │ 00:00:10 v #341 > > │ let v24 : +00:00:20 v #610 > > string list = [] +00:00:20 v #611 > > │ 00:00:10 v #342 > > │ let v25 : +00:00:20 v #612 > > string list = v23 :: v24 +00:00:20 v #613 > > │ 00:00:10 v #343 > > │ let v28 : +00:00:20 v #614 > > string list = v22 :: v25 +00:00:20 v #615 > > │ 00:00:10 v #344 > > │ let v31 : +00:00:20 v #616 > > string list = v21 :: v28 +00:00:20 v #617 > > │ 00:00:10 v #345 > > │ let v34 : +00:00:20 v #618 > > string list = v20 :: v31 +00:00:20 v #619 > > │ 00:00:10 v #346 > > │ let v37 : +00:00:20 v #620 > > string list = v19 :: v34 +00:00:20 v #621 > > │ 00:00:10 v #347 > > │ let v40 : +00:00:20 v #622 > > string list = v18 :: v37 +00:00:20 v #623 > > │ 00:00:10 v #348 > > │ let v43 : +00:00:20 v #624 > > string list = v17 :: v40 +00:00:20 v #625 > > │ 00:00:10 v #349 > > │ let v46 : +00:00:20 v #626 > > string list = v16 :: v43 +00:00:20 v #627 > > │ 00:00:10 v #350 > > │ let v49 : +00:00:20 v #628 > > string list = v14 :: v46 +00:00:20 v #629 > > │ 00:00:10 v #351 > > │ let v52 : +00:00:20 v #630 > > string list = v13 :: v49 +00:00:20 v #631 > > │ 00:00:10 v #352 > > │ let v55 : +00:00:20 v #632 > > string list = v12 :: v52 +00:00:20 v #633 > > │ 00:00:10 v #353 > > │ let v58 : +00:00:20 v #634 > > string list = v11 :: v55 +00:00:20 v #635 > > │ 00:00:10 v #354 > > │ let v61 : +00:00:20 v #636 > > string list = v9 :: v58 +00:00:20 v #637 > > │ 00:00:10 v #355 > > │ let v64 : +00:00:20 v #638 > > string list = v8 :: v61 +00:00:20 v #639 > > │ 00:00:10 v #356 > > │ let v67 : +00:00:20 v #640 > > string list = v6 :: v64 +00:00:20 v #641 > > │ 00:00:10 v #357 > > │ let v70 : +00:00:20 v #642 > > string list = v4 :: v67 +00:00:20 v #643 > > │ 00:00:10 v #358 > > │ let v73 : +00:00:20 v #644 > > (string list -> (string [])) = List.toArray +00:00:20 v #645 > > │ 00:00:10 v #359 > > │ let v74 : +00:00:20 v #646 > > (string []) = v73 v70 +00:00:20 v #647 > > │ 00:00:10 v #360 > > │ let v77 : +00:00:20 v #648 > > string = "ISTJ" +00:00:20 v #649 > > │ 00:00:10 v #361 > > │ let v78 : +00:00:20 v #650 > > string = "ISFJ" +00:00:20 v #651 > > │ 00:00:10 v #362 > > │ let v79 : +00:00:20 v #652 > > string = "INFJ" +00:00:20 v #653 > > │ 00:00:10 v #363 > > │ let v80 : +00:00:20 v #654 > > string = "INTJ" +00:00:20 v #655 > > │ 00:00:10 v #364 > > │ let v81 : +00:00:20 v #656 > > string = "ISTP" +00:00:20 v #657 > > │ 00:00:10 v #365 > > │ let v82 : +00:00:20 v #658 > > string = "ISFP" +00:00:20 v #659 > > │ 00:00:10 v #366 > > │ let v83 : +00:00:20 v #660 > > string = "INFP" +00:00:20 v #661 > > │ 00:00:10 v #367 > > │ let v84 : +00:00:20 v #662 > > string = "INTP" +00:00:20 v #663 > > │ 00:00:10 v #368 > > │ let v85 : +00:00:20 v #664 > > string = "ESTP" +00:00:20 v #665 > > │ 00:00:10 v #369 > > │ let v86 : +00:00:20 v #666 > > string = "ESFP" +00:00:20 v #667 > > │ 00:00:10 v #370 > > │ let v87 : +00:00:20 v #668 > > string = "ENFP" +00:00:20 v #669 > > │ 00:00:10 v #371 > > │ let v88 : +00:00:20 v #670 > > string = "ENTP" +00:00:20 v #671 > > │ 00:00:10 v #372 > > │ let v89 : +00:00:20 v #672 > > string = "ESTJ" +00:00:20 v #673 > > │ 00:00:10 v #373 > > │ let v90 : +00:00:20 v #674 > > string = "ESFJ" +00:00:20 v #675 > > │ 00:00:10 v #374 > > │ let v91 : +00:00:20 v #676 > > string = "ENFJ" +00:00:20 v #677 > > │ 00:00:10 v #375 > > │ let v92 : +00:00:20 v #678 > > string = "ENTJ" +00:00:20 v #679 > > │ 00:00:10 v #376 > > │ let v93 : +00:00:20 v #680 > > (string []) = [|v77; v78; v79; v80; v81; v82; +00:00:20 v #681 > > │ 00:00:10 v #377 > > v83; v84; v85; v86; v87; v88; v89; +00:00:20 v #682 > > v90; v91; v92|] +00:00:20 v #683 > > │ 00:00:10 v #378 > > │ let v94 : +00:00:20 v #684 > > bool = v74 = v93 +00:00:20 v #685 > > │ 00:00:10 v #379 > > │ let v98 : +00:00:20 v #686 > > bool = +00:00:20 v #687 > > │ 00:00:10 v #380 > > │ if v94 +00:00:20 v #688 > > then +00:00:20 v #689 > > │ 00:00:10 v #381 > > │ true +00:00:20 v #690 > > │ 00:00:10 v #382 > > │ else +00:00:20 v #691 > > │ 00:00:10 v #383 > > │ +00:00:20 v #692 > > method1(v94) +00:00:20 v #693 > > │ 00:00:10 v #384 > > │ let v99 : +00:00:20 v #694 > > string = "__assert_eq'" +00:00:20 v #695 > > │ 00:00:10 v #385 > > │ let v100 : +00:00:20 v #696 > > string = $"{v99} / actual: %A{v74} / expected: +00:00:20 v #697 > > │ 00:00:10 v #386 > > %A{v93}" +00:00:20 v #698 > > │ 00:00:10 v #387 > > │ let v103 : +00:00:20 v #699 > > unit = () +00:00:20 v #700 > > │ 00:00:10 v #388 > > │ let v104 : +00:00:20 v #701 > > (unit -> unit) = closure0(v100) +00:00:20 v #702 > > │ 00:00:10 v #389 > > │ let v105 : +00:00:20 v #703 > > unit = (fun () -> v104 (); v103) () +00:00:20 v #704 > > │ 00:00:10 v #390 > > │ let v107 : +00:00:20 v #705 > > bool = v98 = false +00:00:20 v #706 > > │ 00:00:10 v #391 > > │ if v107 then +00:00:20 v #707 > > │ 00:00:10 v #392 > > │ +00:00:20 v #708 > > failwith<unit> v100 +00:00:20 v #709 > > │ 00:00:10 v #393 > > │ method0() +00:00:20 v #710 > > │ 00:00:10 v #394 > > │ +00:00:20 v #711 > > │ 00:00:10 v #395 > > │ __assert_eq' +00:00:20 v #712 > > actual: [|"ISTJ"; "ISFJ"; "INFJ"; "INTJ"; +00:00:20 v #713 > > │ 00:00:10 v #396 > > "ISTP"; "ISFP"; "INFP"; "INTP"; +00:00:20 v #714 > > "ESTP"; "ESFP"; +00:00:20 v #715 > > │ 00:00:10 v #397 > > │ "ENFP"; "ENTP"; +00:00:20 v #716 > > "ESTJ"; "ESFJ"; "ENFJ"; "ENTJ"|] +00:00:20 v #717 > > │ 00:00:10 v #398 > > expected: [|"ISTJ"; "ISFJ"; "INFJ"; +00:00:20 v #718 > > "INTJ"; "ISTP"; "ISFP"; "INFP"; "INTP"; +00:00:20 v #719 > > │ 00:00:10 v #399 > > "ESTP"; "ESFP"; +00:00:20 v #720 > > │ 00:00:10 v #400 > > │ "ENFP"; "ENTP"; +00:00:20 v #721 > > "ESTJ"; "ESFJ"; "ENFJ"; "ENTJ"|] +00:00:20 v #722 > > │ 00:00:10 v #401 > > │ +00:00:20 v #723 > > │ 00:00:11 v #402 > > +00:00:20 v #724 > > │ 00:00:11 v #403 > > ── fsharp +00:00:20 v #725 > > ────────────────────────────────────────────────────────────────────── +00:00:20 v #726 > > │ 00:00:11 v #404 > > type PhonologicalFeature = +00:00:20 v #727 > > │ 00:00:11 v #405 > > | VowelFeature of +00:00:20 v #728 > > │ 00:00:11 v #406 > > height: Height +00:00:20 v #729 > > │ 00:00:11 v #407 > > * backness: Backness +00:00:20 v #730 > > │ 00:00:11 v #408 > > * roundedness: Roundedness +00:00:20 v #731 > > │ 00:00:11 v #409 > > * tone: Option<Tone> +00:00:20 v #732 > > │ 00:00:11 v #410 > > * stress: Option<Stress> +00:00:20 v #733 > > │ 00:00:11 v #411 > > * length: Option<Length> +00:00:20 v #734 > > │ 00:00:11 v #412 > > | ConsonantFeature of +00:00:20 v #735 > > │ 00:00:11 v #413 > > place: PlaceOfArticulation +00:00:20 v #736 > > │ 00:00:11 v #414 > > * manner: +00:00:20 v #737 > > MannerOfArticulation +00:00:20 v #738 > > │ 00:00:11 v #415 > > * voicing: Voicing +00:00:20 v #739 > > │ 00:00:11 v #416 > > * length: Option<Length> +00:00:20 v #740 > > │ 00:00:11 v #417 > > | VowelHarmonyFeature +00:00:20 v #741 > > │ 00:00:11 v #418 > > | PitchAccentFeature +00:00:20 v #742 > > │ 00:00:11 v #419 > > +00:00:20 v #743 > > │ 00:00:11 v #420 > > and Stress = Primary | Secondary +00:00:20 v #744 > > │ 00:00:11 v #421 > > and Length = Long | Short | HalfLong +00:00:20 v #745 > > │ 00:00:11 v #422 > > +00:00:20 v #746 > > │ 00:00:11 v #423 > > and Height = +00:00:20 v #747 > > │ 00:00:11 v #424 > > | High | NearHigh | HighMid +00:00:20 v #748 > > │ 00:00:11 v #425 > > | Mid | LowMid | NearLow +00:00:20 v #749 > > │ 00:00:11 v #426 > > | Low +00:00:20 v #750 > > │ 00:00:11 v #427 > > +00:00:20 v #751 > > │ 00:00:11 v #428 > > and Backness = Front | Central | +00:00:20 v #752 > > Back +00:00:20 v #753 > > │ 00:00:11 v #429 > > +00:00:20 v #754 > > │ 00:00:11 v #430 > > and Roundedness = Rounded | +00:00:20 v #755 > > Unrounded +00:00:20 v #756 > > │ 00:00:11 v #431 > > +00:00:20 v #757 > > │ 00:00:11 v #432 > > and PlaceOfArticulation = +00:00:20 v #758 > > │ 00:00:11 v #433 > > | Bilabial | Labiodental | +00:00:20 v #759 > > Dental +00:00:20 v #760 > > │ 00:00:11 v #434 > > | Alveolar | Postalveolar | +00:00:20 v #761 > > Retroflex +00:00:20 v #762 > > │ 00:00:11 v #435 > > | Palatal | Velar | Uvular +00:00:20 v #763 > > │ 00:00:11 v #436 > > | Pharyngeal | Epiglottal | +00:00:20 v #764 > > Glottal +00:00:20 v #765 > > │ 00:00:11 v #437 > > +00:00:20 v #766 > > │ 00:00:11 v #438 > > and MannerOfArticulation = +00:00:20 v #767 > > │ 00:00:11 v #439 > > | Plosive | Nasal | Trill +00:00:20 v #768 > > │ 00:00:11 v #440 > > | TapOrFlap | Fricative | +00:00:20 v #769 > > LateralFricative +00:00:20 v #770 > > │ 00:00:11 v #441 > > | Approximant | +00:00:20 v #771 > > LateralApproximant +00:00:20 v #772 > > │ 00:00:11 v #442 > > +00:00:20 v #773 > > │ 00:00:11 v #443 > > and Voicing = Voiced | Voiceless +00:00:20 v #774 > > │ 00:00:11 v #444 > > +00:00:20 v #775 > > │ 00:00:11 v #445 > > and SecondaryArticulation = +00:00:20 v #776 > > │ 00:00:11 v #446 > > | Labialization | Palatalization +00:00:20 v #777 > > | Velarization +00:00:20 v #778 > > │ 00:00:11 v #447 > > | Pharyngealization | Aspiration +00:00:20 v #779 > > │ 00:00:11 v #448 > > +00:00:20 v #780 > > │ 00:00:11 v #449 > > and Tone = +00:00:20 v #781 > > │ 00:00:11 v #450 > > | LevelTone of int +00:00:20 v #782 > > │ 00:00:11 v #451 > > | ContourTone of int list +00:00:20 v #783 > > │ 00:00:11 v #452 > > +00:00:20 v #784 > > │ 00:00:11 v #453 > > and MorphologicalFeature = +00:00:20 v #785 > > │ 00:00:11 v #454 > > | RootFeature of string +00:00:20 v #786 > > │ 00:00:11 v #455 > > | AffixFeature of AffixType * +00:00:20 v #787 > > string +00:00:20 v #788 > > │ 00:00:11 v #456 > > | IncorporationFeature of string +00:00:20 v #789 > > * MorphologicalFeature +00:00:20 v #790 > > │ 00:00:11 v #457 > > | NonConcatenativePattern of +00:00:20 v #791 > > string * string +00:00:20 v #792 > > │ 00:00:11 v #458 > > | AgglutinativeAffixFeature of +00:00:20 v #793 > > AgglutinativeAffixType * string +00:00:20 v #794 > > │ 00:00:11 v #459 > > | HonorificFeature of +00:00:20 v #795 > > HonorificType * string +00:00:20 v #796 > > │ 00:00:11 v #460 > > +00:00:20 v #797 > > │ 00:00:11 v #461 > > and AgglutinativeAffixType = Suffix +00:00:20 v #798 > > | Prefix +00:00:20 v #799 > > │ 00:00:11 v #462 > > +00:00:20 v #800 > > │ 00:00:11 v #463 > > and HonorificType = VerbHonorific | +00:00:20 v #801 > > NounHonorific +00:00:20 v #802 > > │ 00:00:11 v #464 > > +00:00:20 v #803 > > │ 00:00:11 v #465 > > and AffixType = +00:00:20 v #804 > > │ 00:00:11 v #466 > > | Prefix | Suffix | Infix +00:00:20 v #805 > > │ 00:00:11 v #467 > > | Circumfix +00:00:20 v #806 > > │ 00:00:11 v #468 > > +00:00:20 v #807 > > │ 00:00:11 v #469 > > type SyntacticFeature = +00:00:20 v #808 > > │ 00:00:11 v #470 > > | WordFeature of +00:00:20 v #809 > > MorphologicalFeature list * LexicalCategory +00:00:20 v #810 > > │ 00:00:11 v #471 > > | PhraseFeature of PhraseType * +00:00:20 v #811 > > SyntacticFeature list +00:00:20 v #812 > > │ 00:00:11 v #472 > > | GrammaticalRelation of +00:00:20 v #813 > > GrammaticalRelationType * SyntacticFeature list +00:00:20 v #814 > > │ 00:00:11 v #473 > > | SOVOrderFeature +00:00:20 v #815 > > │ 00:00:11 v #474 > > | TopicCommentFeature +00:00:20 v #816 > > │ 00:00:11 v #475 > > +00:00:20 v #817 > > │ 00:00:11 v #476 > > and GrammaticalRelationType = +00:00:20 v #818 > > │ 00:00:11 v #477 > > | Ergative | Absolutive | +00:00:20 v #819 > > Nominative +00:00:20 v #820 > > │ 00:00:11 v #478 > > | Accusative +00:00:20 v #821 > > │ 00:00:11 v #479 > > +00:00:20 v #822 > > │ 00:00:11 v #480 > > and LexicalCategory = +00:00:20 v #823 > > │ 00:00:11 v #481 > > | Noun | Verb | Adjective +00:00:20 v #824 > > │ 00:00:11 v #482 > > | Adverb | Pronoun | Preposition +00:00:20 v #825 > > │ 00:00:11 v #483 > > | Conjunction | Determiner | +00:00:20 v #826 > > Interjection +00:00:20 v #827 > > │ 00:00:11 v #484 > > +00:00:20 v #828 > > │ 00:00:11 v #485 > > and PhraseType = +00:00:20 v #829 > > │ 00:00:11 v #486 > > | NP | VP | AP +00:00:20 v #830 > > │ 00:00:11 v #487 > > | PP | CP +00:00:20 v #831 > > │ 00:00:11 v #488 > > +00:00:20 v #832 > > │ 00:00:11 v #489 > > and SemanticFeature = +00:00:20 v #833 > > │ 00:00:11 v #490 > > | Meaning of string +00:00:20 v #834 > > │ 00:00:11 v #491 > > | SemanticRole of +00:00:20 v #835 > > SemanticRoleType * SemanticFeature +00:00:20 v #836 > > │ 00:00:11 v #492 > > +00:00:20 v #837 > > │ 00:00:11 v #493 > > and SemanticRoleType = +00:00:20 v #838 > > │ 00:00:11 v #494 > > | Agent | Patient | Instrument +00:00:20 v #839 > > │ 00:00:11 v #495 > > | Location | Time | Cause +00:00:20 v #840 > > │ 00:00:11 v #496 > > +00:00:20 v #841 > > │ 00:00:11 v #497 > > and PragmaticFeature = +00:00:20 v #842 > > │ 00:00:11 v #498 > > | UseContext of string +00:00:20 v #843 > > │ 00:00:11 v #499 > > | PolitenessLevel of Politeness +00:00:20 v #844 > > │ 00:00:11 v #500 > > | SpeechAct of SpeechActType +00:00:20 v #845 > > │ 00:00:11 v #501 > > | SpeechLevel of SpeechLevelType +00:00:20 v #846 > > │ 00:00:11 v #502 > > +00:00:20 v #847 > > │ 00:00:11 v #503 > > and Politeness = Formal | Informal | +00:00:20 v #848 > > Neutral +00:00:20 v #849 > > │ 00:00:11 v #504 > > +00:00:20 v #850 > > │ 00:00:11 v #505 > > and SpeechActType = +00:00:20 v #851 > > │ 00:00:11 v #506 > > | Assertive | Directive | +00:00:20 v #852 > > Commissive +00:00:20 v #853 > > │ 00:00:11 v #507 > > | Expressive | Declarative +00:00:20 v #854 > > │ 00:00:11 v #508 > > +00:00:20 v #855 > > │ 00:00:11 v #509 > > and SpeechLevelType = +00:00:20 v #856 > > │ 00:00:11 v #510 > > | FormalHigh | FormalLow | +00:00:20 v #857 > > InformalHigh +00:00:20 v #858 > > │ 00:00:11 v #511 > > | InformalLow | Neutral +00:00:20 v #859 > > │ 00:00:11 v #512 > > +00:00:20 v #860 > > │ 00:00:11 v #513 > > type LinguisticFeature = +00:00:20 v #861 > > │ 00:00:11 v #514 > > | Phonological of +00:00:20 v #862 > > PhonologicalFeature +00:00:20 v #863 > > │ 00:00:11 v #515 > > | Morphological of +00:00:20 v #864 > > MorphologicalFeature +00:00:20 v #865 > > │ 00:00:11 v #516 > > | Syntactic of SyntacticFeature +00:00:20 v #866 > > │ 00:00:11 v #517 > > | Semantic of SemanticFeature +00:00:20 v #867 > > │ 00:00:11 v #518 > > | Pragmatic of PragmaticFeature +00:00:20 v #868 > > │ 00:00:11 v #519 > > +00:00:20 v #869 > > │ 00:00:11 v #520 > > type LanguageConstruct = +00:00:20 v #870 > > │ 00:00:11 v #521 > > | LanguageElement of +00:00:20 v #871 > > LinguisticFeature +00:00:20 v #872 > > │ 00:00:11 v #522 > > | LanguageStructure of +00:00:20 v #873 > > LanguageConstruct list +00:00:20 v #874 > > │ 00:00:11 v #523 > > | TranslationElement of +00:00:20 v #875 > > TranslationFeature +00:00:20 v #876 > > │ 00:00:11 v #524 > > +00:00:20 v #877 > > │ 00:00:11 v #525 > > and TranslationFeature = +00:00:20 v #878 > > │ 00:00:11 v #526 > > | LinkedPhonological of +00:00:20 v #879 > > PhonologicalFeature * PhonologicalFeature +00:00:20 v #880 > > │ 00:00:11 v #527 > > | LinkedMorphological of +00:00:20 v #881 > > MorphologicalFeature * MorphologicalFeature +00:00:20 v #882 > > │ 00:00:11 v #528 > > | LinkedSyntactic of +00:00:20 v #883 > > SyntacticFeature * SyntacticFeature +00:00:20 v #884 > > │ 00:00:11 v #529 > > | LinkedSemantic of +00:00:20 v #885 > > SemanticFeature * SemanticFeature +00:00:20 v #886 > > │ 00:00:11 v #530 > > +00:00:20 v #887 > > │ 00:00:11 v #531 > > type Discourse = DiscourseUnit of +00:00:20 v #888 > > LanguageConstruct list +00:00:20 v #889 > > │ 00:00:11 v #532 > > +00:00:20 v #890 > > │ 00:00:11 v #533 > > type LanguageModel = +00:00:20 v #891 > > │ 00:00:11 v #534 > > | Model of discourse: Discourse +00:00:20 v #892 > > │ 00:00:12 v #535 > > +00:00:20 v #893 > > │ 00:00:12 v #536 > > ── fsharp +00:00:20 v #894 > > ────────────────────────────────────────────────────────────────────── +00:00:20 v #895 > > │ 00:00:12 v #537 > > let testEnglish = +00:00:20 v #896 > > │ 00:00:12 v #538 > > Model( +00:00:20 v #897 > > │ 00:00:12 v #539 > > DiscourseUnit [[ +00:00:20 v #898 > > │ 00:00:12 v #540 > > LanguageElement +00:00:20 v #899 > > (Phonological (ConsonantFeature (Alveolar, Nasal, +00:00:20 v #900 > > │ 00:00:12 v #541 > > Voiced, Some(HalfLong)))); +00:00:20 v #901 > > │ 00:00:12 v #542 > > LanguageElement +00:00:20 v #902 > > (Phonological (VowelFeature (High, Front, Unrounded, +00:00:20 v #903 > > │ 00:00:12 v #543 > > Some(LevelTone 1), Some(Primary), +00:00:20 v #904 > > Some(Short)))); +00:00:20 v #905 > > │ 00:00:12 v #544 > > LanguageElement +00:00:20 v #906 > > (Phonological (VowelFeature (Low, Front, Unrounded, +00:00:20 v #907 > > │ 00:00:12 v #545 > > Some(LevelTone 2), Some(Secondary), +00:00:20 v #908 > > Some(Long)))); +00:00:20 v #909 > > │ 00:00:12 v #546 > > LanguageElement +00:00:20 v #910 > > (Phonological (ConsonantFeature (Velar, Plosive, +00:00:20 v #911 > > │ 00:00:12 v #547 > > Voiceless, Some(HalfLong)))); +00:00:20 v #912 > > │ 00:00:12 v #548 > > LanguageElement +00:00:20 v #913 > > (Morphological (RootFeature "I")); +00:00:20 v #914 > > │ 00:00:12 v #549 > > LanguageElement +00:00:20 v #915 > > (Morphological (RootFeature "see")); +00:00:20 v #916 > > │ 00:00:12 v #550 > > LanguageElement +00:00:20 v #917 > > (Morphological (RootFeature "a")); +00:00:20 v #918 > > │ 00:00:12 v #551 > > LanguageElement +00:00:20 v #919 > > (Morphological (RootFeature "cat")); +00:00:20 v #920 > > │ 00:00:12 v #552 > > LanguageElement +00:00:20 v #921 > > (Syntactic (PhraseFeature (NP, [[WordFeature +00:00:20 v #922 > > │ 00:00:12 v #553 > > ([[RootFeature "I"]], Pronoun)]]))); +00:00:20 v #923 > > │ 00:00:12 v #554 > > LanguageElement +00:00:20 v #924 > > (Syntactic (PhraseFeature (VP, [[WordFeature +00:00:20 v #925 > > │ 00:00:12 v #555 > > ([[RootFeature "see"]], Verb)]]))); +00:00:20 v #926 > > │ 00:00:12 v #556 > > LanguageElement +00:00:20 v #927 > > (Syntactic (PhraseFeature (NP, [[WordFeature +00:00:20 v #928 > > │ 00:00:12 v #557 > > ([[RootFeature "a"; RootFeature +00:00:20 v #929 > > "cat"]], Noun)]]))); +00:00:20 v #930 > > │ 00:00:12 v #558 > > LanguageElement +00:00:20 v #931 > > (Semantic (Meaning "Perception act of a feline by +00:00:20 v #932 > > │ 00:00:12 v #559 > > the speaker")); +00:00:20 v #933 > > │ 00:00:12 v #560 > > LanguageElement +00:00:20 v #934 > > (Pragmatic (UseContext "Statement of an action being +00:00:20 v #935 > > │ 00:00:12 v #561 > > observed")) +00:00:20 v #936 > > │ 00:00:12 v #562 > > ]] +00:00:20 v #937 > > │ 00:00:12 v #563 > > ) +00:00:20 v #938 > > │ 00:00:12 v #564 > > +00:00:20 v #939 > > │ 00:00:12 v #565 > > let testPortuguese = +00:00:20 v #940 > > │ 00:00:12 v #566 > > Model( +00:00:20 v #941 > > │ 00:00:12 v #567 > > DiscourseUnit [[ +00:00:20 v #942 > > │ 00:00:12 v #568 > > LanguageElement +00:00:20 v #943 > > (Phonological (VowelFeature (High, Front, Unrounded, +00:00:20 v #944 > > │ 00:00:12 v #569 > > Some(LevelTone 1), Some(Primary), +00:00:20 v #945 > > Some(Short)))); +00:00:20 v #946 > > │ 00:00:12 v #570 > > LanguageElement +00:00:20 v #947 > > (Phonological (VowelFeature (Low, Front, Unrounded, +00:00:20 v #948 > > │ 00:00:12 v #571 > > Some(LevelTone 2), Some(Secondary), +00:00:20 v #949 > > Some(Long)))); +00:00:20 v #950 > > │ 00:00:12 v #572 > > LanguageElement +00:00:20 v #951 > > (Phonological (VowelFeature (Mid, Back, Rounded, +00:00:20 v #952 > > │ 00:00:12 v #573 > > Some(LevelTone 3), Some(Primary), +00:00:20 v #953 > > Some(Short)))); +00:00:20 v #954 > > │ 00:00:12 v #574 > > LanguageElement +00:00:20 v #955 > > (Phonological (ConsonantFeature (Velar, Plosive, +00:00:20 v #956 > > │ 00:00:12 v #575 > > Voiceless, Some(HalfLong)))); +00:00:20 v #957 > > │ 00:00:12 v #576 > > LanguageElement +00:00:20 v #958 > > (Morphological (RootFeature "Eu")); +00:00:20 v #959 > > │ 00:00:12 v #577 > > LanguageElement +00:00:20 v #960 > > (Morphological (RootFeature "ver" |> ignore; +00:00:20 v #961 > > │ 00:00:12 v #578 > > AffixFeature (Suffix, "o"))); +00:00:20 v #962 > > │ 00:00:12 v #579 > > LanguageElement +00:00:20 v #963 > > (Morphological (RootFeature "um")); +00:00:20 v #964 > > │ 00:00:12 v #580 > > LanguageElement +00:00:20 v #965 > > (Morphological (RootFeature "gato")); +00:00:20 v #966 > > │ 00:00:12 v #581 > > LanguageElement +00:00:20 v #967 > > (Syntactic (PhraseFeature (NP, [[WordFeature +00:00:20 v #968 > > │ 00:00:12 v #582 > > ([[RootFeature "Eu"]], +00:00:20 v #969 > > Pronoun)]]))); +00:00:20 v #970 > > │ 00:00:12 v #583 > > LanguageElement +00:00:20 v #971 > > (Syntactic (PhraseFeature (VP, [[WordFeature +00:00:20 v #972 > > │ 00:00:12 v #584 > > ([[RootFeature "vejo"]], Verb)]]))); +00:00:20 v #973 > > │ 00:00:12 v #585 > > LanguageElement +00:00:20 v #974 > > (Syntactic (PhraseFeature (NP, [[WordFeature +00:00:20 v #975 > > │ 00:00:12 v #586 > > ([[RootFeature "um"; RootFeature +00:00:20 v #976 > > "gato"]], Noun)]]))); +00:00:20 v #977 > > │ 00:00:12 v #587 > > LanguageElement +00:00:20 v #978 > > (Semantic (Meaning "Ação de percepção de um felino +00:00:20 v #979 > > │ 00:00:12 v #588 > > pelo falante")); +00:00:20 v #980 > > │ 00:00:12 v #589 > > LanguageElement +00:00:20 v #981 > > (Pragmatic (UseContext "Declaração de uma ação sendo +00:00:20 v #982 > > │ 00:00:12 v #590 > > observada")) +00:00:20 v #983 > > │ 00:00:12 v #591 > > ]] +00:00:20 v #984 > > │ 00:00:12 v #592 > > ) +00:00:20 v #985 > > │ 00:00:12 v #593 > > +00:00:20 v #986 > > │ 00:00:12 v #594 > > let testKorean = +00:00:20 v #987 > > │ 00:00:12 v #595 > > Model( +00:00:20 v #988 > > │ 00:00:12 v #596 > > DiscourseUnit [[ +00:00:20 v #989 > > │ 00:00:12 v #597 > > LanguageElement +00:00:20 v #990 > > (Phonological (ConsonantFeature (Alveolar, Nasal, +00:00:20 v #991 > > │ 00:00:12 v #598 > > Voiced, Some(Short)))); +00:00:20 v #992 > > │ 00:00:12 v #599 > > LanguageElement +00:00:20 v #993 > > (Phonological (VowelFeature (High, Back, Rounded, +00:00:20 v #994 > > │ 00:00:12 v #600 > > None, None, Some(Short)))); +00:00:20 v #995 > > │ 00:00:12 v #601 > > LanguageElement +00:00:20 v #996 > > (Phonological (VowelFeature (Mid, Front, Unrounded, +00:00:20 v #997 > > │ 00:00:12 v #602 > > None, None, Some(Long)))); +00:00:20 v #998 > > │ 00:00:12 v #603 > > LanguageElement +00:00:20 v #999 > > (Phonological (ConsonantFeature (Bilabial, Plosive, +00:00:20 v #1000 > > │ 00:00:12 v #604 > > Voiceless, Some(Short)))); +00:00:20 v #1001 > > │ 00:00:12 v #605 > > LanguageElement +00:00:20 v #1002 > > (Morphological (RootFeature "나")); +00:00:20 v #1003 > > │ 00:00:12 v #606 > > LanguageElement +00:00:20 v #1004 > > (Morphological (RootFeature "보다")); +00:00:20 v #1005 > > │ 00:00:12 v #607 > > LanguageElement +00:00:20 v #1006 > > (Morphological (AffixFeature (Suffix, "아"))); +00:00:20 v #1007 > > │ 00:00:12 v #608 > > LanguageElement +00:00:20 v #1008 > > (Morphological (RootFeature "고양이")); +00:00:20 v #1009 > > │ 00:00:12 v #609 > > LanguageElement +00:00:20 v #1010 > > (Syntactic (PhraseFeature (NP, [[WordFeature +00:00:20 v #1011 > > │ 00:00:12 v #610 > > ([[RootFeature "나"]], +00:00:20 v #1012 > > Pronoun)]]))); +00:00:20 v #1013 > > │ 00:00:12 v #611 > > LanguageElement +00:00:20 v #1014 > > (Syntactic (PhraseFeature (VP, [[WordFeature +00:00:20 v #1015 > > │ 00:00:12 v #612 > > ([[RootFeature "보다"; AffixFeature +00:00:20 v #1016 > > (Suffix, "아")]], Verb)]]))); +00:00:20 v #1017 > > │ 00:00:12 v #613 > > LanguageElement +00:00:20 v #1018 > > (Syntactic (PhraseFeature (NP, [[WordFeature +00:00:20 v #1019 > > │ 00:00:12 v #614 > > ([[RootFeature "고양이"]], +00:00:20 v #1020 > > Noun)]]))); +00:00:20 v #1021 > > │ 00:00:12 v #615 > > LanguageElement +00:00:20 v #1022 > > (Semantic (Meaning "화자에 의한 고양이의 관찰 +00:00:20 v #1023 > > │ 00:00:12 v #616 > > 행위")); +00:00:20 v #1024 > > │ 00:00:12 v #617 > > LanguageElement +00:00:20 v #1025 > > (Pragmatic (UseContext "관찰되고 있는 행동의 진술")) +00:00:20 v #1026 > > │ 00:00:12 v #618 > > ]] +00:00:20 v #1027 > > │ 00:00:12 v #619 > > ) +00:00:20 v #1028 > > │ 00:00:12 v #620 > > +00:00:20 v #1029 > > │ 00:00:12 v #621 > > ── markdown +00:00:20 v #1030 > > ──────────────────────────────────────────────────────────────────── +00:00:20 v #1031 > > │ 00:00:12 v #622 > > │ ## main +00:00:20 v #1032 > > │ 00:00:12 v #623 > > +00:00:20 v #1033 > > │ 00:00:12 v #624 > > ── spiral +00:00:20 v #1034 > > ────────────────────────────────────────────────────────────────────── +00:00:20 v #1035 > > │ 00:00:12 v #625 > > inl main (_args : array_base string) +00:00:20 v #1036 > > = +00:00:20 v #1037 > > │ 00:00:12 v #626 > > 0i32 +00:00:20 v #1038 > > │ 00:00:12 v #627 > > +00:00:20 v #1039 > > │ 00:00:12 v #628 > > inl main () = +00:00:20 v #1040 > > │ 00:00:12 v #629 > > $'let main args = !main args' : +00:00:20 v #1041 > > () +00:00:20 v #1042 > > │ 00:00:13 v #630 > > +00:00:20 v #1043 > > │ 00:00:13 v #631 > > ── spiral +00:00:20 v #1044 > > ────────────────────────────────────────────────────────────────────── +00:00:20 v #1045 > > │ 00:00:13 v #632 > > inl app () = +00:00:20 v #1046 > > │ 00:00:13 v #633 > > "test" |> console.write_line +00:00:20 v #1047 > > │ 00:00:13 v #634 > > 0i32 +00:00:20 v #1048 > > │ 00:00:13 v #635 > > +00:00:20 v #1049 > > │ 00:00:13 v #636 > > inl main () = +00:00:20 v #1050 > > │ 00:00:13 v #637 > > print_static "<test>" +00:00:20 v #1051 > > │ 00:00:13 v #638 > > +00:00:20 v #1052 > > │ 00:00:13 v #639 > > app +00:00:20 v #1053 > > │ 00:00:13 v #640 > > |> dyn +00:00:20 v #1054 > > │ 00:00:13 v #641 > > |> ignore +00:00:20 v #1055 > > │ 00:00:13 v #642 > > +00:00:20 v #1056 > > │ 00:00:13 v #643 > > print_static "</test>" +00:00:20 v #1057 > > │ 00:00:13 v #644 > 00:00:13 v #3 +00:00:20 v #1058 > > runtime.execute_with_options / result / { exit_code = 0; std_trace_length = +00:00:20 v #1059 > > 27010 } +00:00:20 v #1060 > > │ 00:00:13 v #645 > 00:00:13 d #4 +00:00:20 v #1061 > > runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", +00:00:20 v #1062 > > "c:/home/git/polyglot/apps/spiral/temp/test/test.dib.ipynb", "--to", "html", +00:00:20 v #1063 > > "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert +00:00:20 v #1064 > > "c:/home/git/polyglot/apps/spiral/temp/test/test.dib.ipynb" --to html +00:00:20 v #1065 > > --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = +00:00:20 v #1066 > > Array(MutCell([])); on_line = None; stdin = None; trace = true; +00:00:20 v #1067 > > working_directory = None } } +00:00:20 v #1068 > > │ 00:00:15 v #646 > 00:00:14 v #5 ! [NbConvertApp] +00:00:20 v #1069 > > Converting notebook c:/home/git/polyglot/apps/spiral/temp/test/test.dib.ipynb to +00:00:20 v #1070 > > html +00:00:20 v #1071 > > │ 00:00:15 v #647 > 00:00:14 v #6 ! +00:00:20 v #1072 > > C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__. +00:00:20 v #1073 > > py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a +00:00:20 v #1074 > > hard error in future nbformat versions. You may want to use `normalize()` on +00:00:20 v #1075 > > your notebooks before validations (available since nbformat 5.1.4). Previous +00:00:20 v #1076 > > versions of nbformat are fixing this issue transparently, and will stop doing so +00:00:20 v #1077 > > in the future. +00:00:20 v #1078 > > │ 00:00:15 v #648 > 00:00:14 v #7 ! validate(nb) +00:00:20 v #1079 > > │ 00:00:15 v #649 > 00:00:15 v #8 ! +00:00:20 v #1080 > > C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\ +00:00:20 v #1081 > > highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python +00:00:20 v #1082 > > 3 +00:00:20 v #1083 > > │ 00:00:15 v #650 > 00:00:15 v #9 ! return +00:00:20 v #1084 > > _pygments_highlight( +00:00:20 v #1085 > > │ 00:00:16 v #651 > 00:00:15 v #10 ! [NbConvertApp] +00:00:20 v #1086 > > Writing 332700 bytes to c:\home\git\polyglot\apps\spiral\temp\test\test.dib.html +00:00:20 v #1087 > > │ 00:00:16 v #652 > 00:00:15 v #11 +00:00:20 v #1088 > > runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 872 +00:00:20 v #1089 > > } +00:00:20 v #1090 > > │ 00:00:16 v #653 > 00:00:15 d #12 spiral.run / dib +00:00:20 v #1091 > > / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 872 } +00:00:20 v #1092 > > │ 00:00:16 v #654 > 00:00:15 d #13 +00:00:20 v #1093 > > runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter +00:00:20 v #1094 > > = 1; $path = 'c:/home/git/polyglot/apps/spiral/temp/test/test.dib.html'; +00:00:20 v #1095 > > (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { +00:00:20 v #1096 > > $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = +00:00:20 v #1097 > > pwsh -c "$counter = 1; $path = +00:00:20 v #1098 > > 'c:/home/git/polyglot/apps/spiral/temp/test/test.dib.html'; (Get-Content $path +00:00:20 v #1099 > > -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + +00:00:20 v #1100 > > $counter++ } | Set-Content $path"; cancellation_token = None; +00:00:20 v #1101 > > environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace +00:00:20 v #1102 > > = true; working_directory = None } } +00:00:20 v #1103 > > │ 00:00:16 v #655 > 00:00:16 v #14 +00:00:20 v #1104 > > runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } +00:00:20 v #1105 > > │ 00:00:16 v #656 > 00:00:16 d #15 spiral.run / dib +00:00:20 v #1106 > > / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } +00:00:20 v #1107 > > │ 00:00:16 v #657 > 00:00:16 d #16 spiral.run / dib +00:00:20 v #1108 > > / { exit_code = 0; result_length = 27941 } +00:00:20 v #1109 > > │ 00:00:16 d #658 runtime.execute_with_options_async / { +00:00:20 v #1110 > > exit_code = 0; output_length = 31826 } +00:00:20 v #1111 > > │ 00:00:16 d #1 main / executeCommand / exitCode: 0 +00:00:20 v #1112 > > command: ../../../../deps/spiral/workspace/target/release/spiral.exe dib --path +00:00:20 v #1113 > > test.dib --retries 3 +00:00:20 v #1114 > > │ +00:00:20 v #1115 > > +00:00:20 v #1116 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:20 v #1117 > > │ ### parse the .dib file into .spi format with dibparser +00:00:20 v #1118 > > +00:00:20 v #1119 > > ── pwsh ──────────────────────────────────────────────────────────────────────── +00:00:20 v #1120 > > { . ../../../../apps/parser/dist/DibParser$(_exe) test.dib spi } | Invoke-Block +00:00:21 v #1121 > > +00:00:21 v #1122 > > ── [ 504.11ms - stdout ] ─────────────────────────────────────────────────────── +00:00:21 v #1123 > > │ 00:00:00 d #1 writeDibCode / output: Spi / path: +00:00:21 v #1124 > > test.dib +00:00:21 v #1125 > > │ 00:00:00 d #2 parseDibCode / output: Spi / file: +00:00:21 v #1126 > > test.dib +00:00:21 v #1127 > > │ +00:00:21 v #1128 > > +00:00:21 v #1129 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:21 v #1130 > > │ ### build .fsx file from .spi using supervisor +00:00:21 v #1131 > > +00:00:21 v #1132 > > ── pwsh ──────────────────────────────────────────────────────────────────────── +00:00:21 v #1133 > > { . ../../../../apps/spiral/dist/Supervisor$(_exe) --build-file test.spi +00:00:21 v #1134 > > test.fsx } | Invoke-Block +00:00:22 v #1135 > > +00:00:22 v #1136 > > ── [ 1.76s - stdout ] ────────────────────────────────────────────────────────── +00:00:22 v #1137 > > │ 00:00:00 v #1 async.run_with_timeout_async / { timeout = +00:00:22 v #1138 > > 180 } +00:00:22 v #1139 > > │ 00:00:01 v #2 async.run_with_timeout_async / { timeout = +00:00:22 v #1140 > > 180 } +00:00:22 v #1141 > > │ 00:00:01 d #1 Supervisor.buildFile / takeWhileInclusive +00:00:22 v #1142 > > / path: test.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: +00:00:22 v #1143 > > │ +00:00:22 v #1144 > > │ 00:00:01 d #2 Supervisor.buildFile / AsyncSeq.scan +00:00:22 v #1145 > > path: test.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: +00:00:22 v #1146 > > 0 / error: / outputContent: +00:00:22 v #1147 > > │ +00:00:22 v #1148 > > │ 00:00:01 d #3 Supervisor.buildFile / takeWhileInclusive +00:00:22 v #1149 > > / path: test.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: +00:00:22 v #1150 > > │ +00:00:22 v #1151 > > │ 00:00:01 v #4 Supervisor.sendJson / port: 13805 / json: +00:00:22 v #1152 > > {"FileOpen":{"spiText":"/// # test (Polyglot)\n\n/// ## main\ninl main (_args : +00:00:22 v #1153 > > array_base string) +00:00:22 v #1154 > > =...0022\u003C/test\u003E\u0022\n","uri":"file:///c:/home/git/polyglot/apps/spir +00:00:22 v #1155 > > al/temp/test/test.spi"}} / result: +00:00:22 v #1156 > > │ 00:00:01 v #5 Supervisor.sendJson / port: 13805 / json: +00:00:22 v #1157 > > {"BuildFile":{"backend":"Fsharp","uri":"file:///c:/home/git/polyglot/apps/spiral +00:00:22 v #1158 > > /temp/test/test.spi"}} / result: +00:00:22 v #1159 > > │ 00:00:01 d #6 Supervisor.buildFile / AsyncSeq.scan +00:00:22 v #1160 > > path: test.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: +00:00:22 v #1161 > > 0 / error: / outputContent: +00:00:22 v #1162 > > │ let rec closure1 () () : unit = +00:00:22 v #1163 > > │ let v0 : (string -> unit) = System.Console.WriteLine +00:00:22 v #1164 > > │ let v1 : string = "test" +00:00:22 v #1165 > > │ v0 v1 +00:00:22 v #1166 > > │ and closure0 () () : int32 = +00:00:22 v #1167 > > │ let v0 : unit = () +00:00:22 v #1168 > > │ let v1 : (unit -> unit) = closure1() +00:00:22 v #1169 > > │ let v2 : unit = (fun () -> v1 (); v0) () +00:00:22 v #1170 > > │ 0 +00:00:22 v #1171 > > │ let v0 : (unit -> int32) = closure0() +00:00:22 v #1172 > > │ () +00:00:22 v #1173 > > │ +00:00:22 v #1174 > > │ 00:00:01 d #7 Supervisor.buildFile / takeWhileInclusive +00:00:22 v #1175 > > / path: test.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent: +00:00:22 v #1176 > > │ let rec closure1 () () : unit = +00:00:22 v #1177 > > │ let v0 : (string -> unit) = System.Console.WriteLine +00:00:22 v #1178 > > │ let v1 : string = "test" +00:00:22 v #1179 > > │ v0 v1 +00:00:22 v #1180 > > │ and closure0 () () : int32 = +00:00:22 v #1181 > > │ let v0 : unit = () +00:00:22 v #1182 > > │ let v1 : (unit -> unit) = closure1() +00:00:22 v #1183 > > │ let v2 : unit = (fun () -> v1 (); v0) () +00:00:22 v #1184 > > │ 0 +00:00:22 v #1185 > > │ let v0 : (unit -> int32) = closure0() +00:00:22 v #1186 > > │ () +00:00:22 v #1187 > > │ +00:00:22 v #1188 > > │ 00:00:01 d #8 FileSystem.watchWithFilter / Disposing +00:00:22 v #1189 > > watch stream / filter: FileName, LastWrite +00:00:22 v #1190 > > │ +00:00:22 v #1191 > > +00:00:22 v #1192 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:22 v #1193 > > │ ## compile and format the project +00:00:22 v #1194 > > +00:00:22 v #1195 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:22 v #1196 > > │ ### compile project with fable targeting optimized rust +00:00:22 v #1197 > > +00:00:22 v #1198 > > ── pwsh ──────────────────────────────────────────────────────────────────────── +00:00:22 v #1199 > > dotnet fable --optimize --lang rs --extension .rs +00:00:26 v #1200 > > +00:00:26 v #1201 > > ── [ 3.18s - stdout ] ────────────────────────────────────────────────────────── +00:00:26 v #1202 > > │ Fable 5.0.0-alpha.5: F# to Rust compiler (status: alpha) +00:00:26 v #1203 > > │ +00:00:26 v #1204 > > │ Thanks to the contributor! @Pauan +00:00:26 v #1205 > > │ Stand with Ukraine! https://standwithukraine.com.ua +00:00:26 v #1206 > > │ +00:00:26 v #1207 > > │ Parsing test.fsproj... +00:00:26 v #1208 > > │ Retrieving project options from cache, in case of issues run +00:00:26 v #1209 > > `dotnet fable clean` or try `--noCache` option. +00:00:26 v #1210 > > │ Project and references (1 source files) parsed in 145ms +00:00:26 v #1211 > > │ +00:00:26 v #1212 > > │ Started Fable compilation... 00:00:26 v #1213 > > │ -00:00:26 v #1214 > > │ Thanks to the contributor! @enricosada -00:00:26 v #1215 > > │ Stand with Ukraine! https://standwithukraine.com.ua -00:00:26 v #1216 > > │ -00:00:26 v #1217 > > │ Parsing test.fsproj... -00:00:26 v #1218 > > │ Retrieving project options from cache, in case of issues run -00:00:26 v #1219 > > `dotnet fable clean` or try `--noCache` option. -00:00:26 v #1220 > > │ Project and references (1 source files) parsed in 159ms -00:00:26 v #1221 > > │ -00:00:26 v #1222 > > │ Started Fable compilation... -00:00:26 v #1223 > > │ -00:00:26 v #1224 > > │ Fable compilation finished in 1312ms -00:00:26 v #1225 > > │ -00:00:26 v #1226 > > │ .\test.fsx(11,0): (11,2) warning FABLE: For Rust, support for -00:00:26 v #1227 > > F# static and module do bindings is disabled by default. It can be enabled with -00:00:26 v #1228 > > the 'static_do_bindings' feature. Use at your own risk! -00:00:26 v #1229 > > │ +00:00:26 v #1214 > > │ Fable compilation finished in 1579ms +00:00:26 v #1215 > > │ +00:00:26 v #1216 > > │ .\test.fsx(11,0): (11,2) warning FABLE: For Rust, support for +00:00:26 v #1217 > > F# static and module do bindings is disabled by default. It can be enabled with +00:00:26 v #1218 > > the 'static_do_bindings' feature. Use at your own risk! +00:00:26 v #1219 > > │ +00:00:26 v #1220 > > +00:00:26 v #1221 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:26 v #1222 > > │ ### fix formatting issues in the .rs file using regex and +00:00:26 v #1223 > > set-content +00:00:26 v #1224 > > +00:00:26 v #1225 > > ── pwsh ──────────────────────────────────────────────────────────────────────── +00:00:26 v #1226 > > (Get-Content test.rs) ` +00:00:26 v #1227 > > -replace [[regex]]::Escape("),);"), "));" ` +00:00:26 v #1228 > > | FixRust ` +00:00:26 v #1229 > > | Set-Content test.rs 00:00:26 v #1230 > > 00:00:26 v #1231 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:26 v #1232 > > │ ### fix formatting issues in the .rs file using regex and -00:00:26 v #1233 > > set-content -00:00:26 v #1234 > > -00:00:26 v #1235 > > ── pwsh ──────────────────────────────────────────────────────────────────────── -00:00:26 v #1236 > > (Get-Content test.rs) ` -00:00:26 v #1237 > > -replace [[regex]]::Escape("),);"), "));" ` -00:00:26 v #1238 > > | FixRust ` -00:00:26 v #1239 > > | Set-Content test.rs -00:00:26 v #1240 > > -00:00:26 v #1241 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:26 v #1242 > > │ ### format the rust code using cargo fmt +00:00:26 v #1232 > > │ ### format the rust code using cargo fmt +00:00:26 v #1233 > > +00:00:26 v #1234 > > ── pwsh ──────────────────────────────────────────────────────────────────────── +00:00:26 v #1235 > > cargo fmt -- +00:00:26 v #1236 > > +00:00:26 v #1237 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:26 v #1238 > > │ ## build and test the project +00:00:26 v #1239 > > +00:00:26 v #1240 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:26 v #1241 > > │ ### build the project in release mode using nightly rust +00:00:26 v #1242 > > compiler 00:00:26 v #1243 > > 00:00:26 v #1244 > > ── pwsh ──────────────────────────────────────────────────────────────────────── -00:00:26 v #1245 > > cargo fmt -- -00:00:27 v #1246 > > -00:00:27 v #1247 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:27 v #1248 > > │ ## build and test the project -00:00:27 v #1249 > > -00:00:27 v #1250 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:27 v #1251 > > │ ### build the project in release mode using nightly rust -00:00:27 v #1252 > > compiler -00:00:27 v #1253 > > -00:00:27 v #1254 > > ── pwsh ──────────────────────────────────────────────────────────────────────── -00:00:27 v #1255 > > cargo build --release -00:00:43 v #1256 > > -00:00:43 v #1257 > > ── [ 16.77s - stdout ] ───────────────────────────────────────────────────────── -00:00:43 v #1258 > > │ Compiling proc-macro2 v1.0.92 -00:00:43 v #1259 > > │ Compiling unicode-ident v1.0.14 -00:00:43 v #1260 > > │ Compiling fable_library_rust v0.1.0 -00:00:43 v #1261 > > (C:\home\git\polyglot\lib\rust\fable\fable_modules\fable-library-rust) -00:00:43 v #1262 > > │ Compiling quote v1.0.37 -00:00:43 v #1263 > > │ Compiling syn v2.0.90 -00:00:43 v #1264 > > │ Compiling zerocopy-derive v0.7.35 -00:00:43 v #1265 > > │ Compiling thiserror-impl v1.0.69 -00:00:43 v #1266 > > │ Compiling zerocopy v0.7.35 -00:00:43 v #1267 > > │ Compiling thiserror v1.0.69 -00:00:43 v #1268 > > │ Compiling ppv-lite86 v0.2.20 -00:00:43 v #1269 > > │ Compiling rand_chacha v0.3.1 -00:00:43 v #1270 > > │ Compiling rand v0.8.5 -00:00:43 v #1271 > > │ Compiling proptest v1.5.0 -00:00:43 v #1272 > > │ Compiling spiral_temp_test v0.0.1 -00:00:43 v #1273 > > (C:\home\git\polyglot\apps\spiral\temp\test) -00:00:43 v #1274 > > │ Finished `release` profile [optimized] target(s) in -00:00:43 v #1275 > > 16.65s -00:00:43 v #1276 > > │ -00:00:43 v #1277 > > -00:00:43 v #1278 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:00:43 v #1279 > > │ ### run release tests with output enabled -00:00:43 v #1280 > > -00:00:43 v #1281 > > ── pwsh ──────────────────────────────────────────────────────────────────────── -00:00:43 v #1282 > > { cargo test --release -- --show-output } | Invoke-Block -00:01:09 v #1283 > > -00:01:09 v #1284 > > ── [ 25.45s - stdout ] ───────────────────────────────────────────────────────── -00:01:09 v #1285 > > │ Compiling zerocopy v0.7.35 -00:01:09 v #1286 > > │ Compiling thiserror v1.0.69 -00:01:09 v #1287 > > │ Compiling fable_library_rust v0.1.0 -00:01:09 v #1288 > > (C:\home\git\polyglot\lib\rust\fable\fable_modules\fable-library-rust) -00:01:09 v #1289 > > │ Compiling ppv-lite86 v0.2.20 -00:01:09 v #1290 > > │ Compiling rand_chacha v0.3.1 -00:01:09 v #1291 > > │ Compiling rand v0.8.5 -00:01:09 v #1292 > > │ Compiling proptest v1.5.0 -00:01:09 v #1293 > > │ Compiling spiral_temp_test v0.0.1 -00:01:09 v #1294 > > (C:\home\git\polyglot\apps\spiral\temp\test) -00:01:09 v #1295 > > │ Finished `release` profile [optimized] target(s) in -00:01:09 v #1296 > > 25.19s -00:01:09 v #1297 > > │ Running unittests main.rs -00:01:09 v #1298 > > (C:\home\git\polyglot\workspace\target\release\deps\spiral_temp_test-5730544e07b -00:01:09 v #1299 > > e5619.exe) -00:01:09 v #1300 > > │ -00:01:09 v #1301 > > │ running 3 tests -00:01:09 v #1302 > > │ test test_parse_number ... ok -00:01:09 v #1303 > > │ test prop_parse_format_idempotent ... ok -00:01:09 v #1304 > > │ test -00:01:09 v #1305 > > adding_and_then_removing_an_item_from_the_cart_leaves_the_cart_unchanged ... ok -00:01:09 v #1306 > > │ -00:01:09 v #1307 > > │ successes: -00:01:09 v #1308 > > │ -00:01:09 v #1309 > > │ ---- prop_parse_format_idempotent stdout ---- -00:01:09 v #1310 > > │ input=Operator("*") -00:01:09 v #1311 > > │ input=Comment(";s\\=%\\1|Z<?#:") -00:01:09 v #1312 > > │ input=Comment("YIZY9j</f^$p>") -00:01:09 v #1313 > > │ input=Identifier("ekR7O7qV6M4EPBS8U") -00:01:09 v #1314 > > │ input=Operator("*") -00:01:09 v #1315 > > │ input=Integer(3560713348761713228) -00:01:09 v #1316 > > │ input=Integer(5442841004700566541) -00:01:09 v #1317 > > │ input=Operator("+") -00:01:09 v #1318 > > │ input=StringLiteral("F!99qw$w:6Y&#hd`=Wdx&'a[/,Wb&*O") -00:01:09 v #1319 > > │ input=Comment("JZ).f=lr R=*:!6{M;`?\\&W<6rfs<%%2") -00:01:09 v #1320 > > │ input=Operator("/") -00:01:09 v #1321 > > │ input=Operator("(") -00:01:09 v #1322 > > │ input=Comment("&C2GE\"k") -00:01:09 v #1323 > > │ input=Identifier("Zf6cXOVrNb1F238pTqeJrhOSyjSKRevT") -00:01:09 v #1324 > > │ input=StringLiteral("ZnMz&,p<3=XA/%Z?~`;W") -00:01:09 v #1325 > > │ input=Identifier("wdihX3") -00:01:09 v #1326 > > │ input=Integer(4815361723045699421) -00:01:09 v #1327 > > │ input=Integer(5007367446898475126) -00:01:09 v #1328 > > │ input=Integer(-7174180546569974929) -00:01:09 v #1329 > > │ input=Identifier("dzsdkz66BH1rvAKV0xBsB1epZZs8LK4T") -00:01:09 v #1330 > > │ input=Integer(8006255127267590222) -00:01:09 v #1331 > > │ input=Integer(-6603646907540248504) -00:01:09 v #1332 > > │ input=Operator(")") -00:01:09 v #1333 > > │ input=Integer(5463748218279422754) -00:01:09 v #1334 > > │ input=StringLiteral("D&`t*=5f`Y%=='v84r") -00:01:09 v #1335 > > │ input=StringLiteral("F^X?wF=m9") -00:01:09 v #1336 > > │ input=Operator("+") -00:01:09 v #1337 > > │ input=Comment("'T") -00:01:09 v #1338 > > │ input=Operator("(") -00:01:09 v #1339 > > │ input=Operator("(") -00:01:09 v #1340 > > │ input=Identifier("JfV4jMy0kBnw8K") -00:01:09 v #1341 > > │ input=Identifier("nbQ0025mv") -00:01:09 v #1342 > > │ input=Identifier("kBTNDnq0i2fhxYZ") -00:01:09 v #1343 > > │ input=Integer(-9069109759507503585) -00:01:09 v #1344 > > │ input=Integer(2315721556443494858) -00:01:09 v #1345 > > │ input=Comment("aW/'dlf+t<*/?Gy!?.3E/< }u?/&Y<2/") -00:01:09 v #1346 > > │ input=Operator("+") -00:01:09 v #1347 > > │ input=Integer(8948007509734239984) -00:01:09 v #1348 > > │ input=Comment(")fobz>oP!/<mf2]P*PH%*.\"mh") -00:01:09 v #1349 > > │ input=Identifier("h6cv2iYV") -00:01:09 v #1350 > > │ input=Comment("&:cY=O$.O/Z4\"Uv9-.\\#$") -00:01:09 v #1351 > > │ input=StringLiteral("f/]>D<{q$3NV<:|GzS?") -00:01:09 v #1352 > > │ input=Operator(")") -00:01:09 v #1353 > > │ input=Identifier("aDUd0F6lOe9Ro0jjOlY0dhwOd") -00:01:09 v #1354 > > │ input=Operator("*") -00:01:09 v #1355 > > │ input=StringLiteral("W/VQ7mO$R/.$gD^Q/H)tT'") -00:01:09 v #1356 > > │ input=Identifier("NC") -00:01:09 v #1357 > > │ input=Comment("le6\\=g.") -00:01:09 v #1358 > > │ input=Identifier("HWDq2X817d1865OoH717DG") -00:01:09 v #1359 > > │ input=StringLiteral("O'.a''") -00:01:09 v #1360 > > │ input=Comment("X") -00:01:09 v #1361 > > │ input=Identifier("h") -00:01:09 v #1362 > > │ input=Comment("{|\"L") -00:01:09 v #1363 > > │ input=Integer(7173720529210389079) -00:01:09 v #1364 > > │ input=Identifier("fZbV5fA") -00:01:09 v #1365 > > │ input=Operator("(") -00:01:09 v #1366 > > │ input=StringLiteral("xqf* 9@:?ZI.EORF/N'x]") -00:01:09 v #1367 > > │ input=Comment("NoFc(") -00:01:09 v #1368 > > │ input=StringLiteral("") -00:01:09 v #1369 > > │ input=Comment("'p%Q{?Z$R?=") -00:01:09 v #1370 > > │ input=Comment("{ej") -00:01:09 v #1371 > > │ input=Comment("K4`&<'zs'z<k$RBD'[\\=}zlr`\\~z/IxK") -00:01:09 v #1372 > > │ input=Identifier("hxOh5cF16j5f7") -00:01:09 v #1373 > > │ input=StringLiteral("4{7W%Aq") -00:01:09 v #1374 > > │ input=Comment("c:<o6\"SJV:1&oU&z$Q*Dg=|`\"amr}[n") -00:01:09 v #1375 > > │ input=Identifier("mQr14a15uIMT04R6iV9uFV") -00:01:09 v #1376 > > │ input=StringLiteral("QZH=c{|O$") -00:01:09 v #1377 > > │ input=StringLiteral("F:$%&#.") -00:01:09 v #1378 > > │ input=Integer(-5398358596318470058) -00:01:09 v #1379 > > │ input=StringLiteral("0Kc$Bj2'E1U0qi?xQ*ckpn=c/-") -00:01:09 v #1380 > > │ input=Identifier("tjzBtU05Y") -00:01:09 v #1381 > > │ input=StringLiteral("5u:>-/g=") -00:01:09 v #1382 > > │ input=Integer(-6669135947589678644) -00:01:09 v #1383 > > │ input=Identifier("c61BxxggJ03Z54ReQ2ORVJ8V640") -00:01:09 v #1384 > > │ input=Operator("/") -00:01:09 v #1385 > > │ input=Operator("+") -00:01:09 v #1386 > > │ input=Integer(-5134599080409304891) -00:01:09 v #1387 > > │ input=Identifier("EzyUg0a89WPbuUYL7A") -00:01:09 v #1388 > > │ input=Operator("*") -00:01:09 v #1389 > > │ input=Identifier("mD1xzKDPn0M") -00:01:09 v #1390 > > │ input=Operator("=") -00:01:09 v #1391 > > │ input=StringLiteral("?v[.") -00:01:09 v #1392 > > │ input=Integer(2617299640226990259) -00:01:09 v #1393 > > │ input=Identifier("PC7Br6k65OM8skHHsF20i") -00:01:09 v #1394 > > │ input=Integer(-190618929158103596) -00:01:09 v #1395 > > │ input=Operator("*") -00:01:09 v #1396 > > │ input=Integer(8211160736211610054) -00:01:09 v #1397 > > │ input=StringLiteral("80jQmZ.YO@n") -00:01:09 v #1398 > > │ input=Operator(")") -00:01:09 v #1399 > > │ input=Identifier("kjrZ5rZ") -00:01:09 v #1400 > > │ input=Integer(1727653555934576348) -00:01:09 v #1401 > > │ input=Comment("JD.BJZ1\"") -00:01:09 v #1402 > > │ input=Integer(3745602686539078069) -00:01:09 v #1403 > > │ input=StringLiteral("&vT&`a?") -00:01:09 v #1404 > > │ input=Integer(8406730690302719631) -00:01:09 v #1405 > > │ input=Integer(-134733023365641929) -00:01:09 v #1406 > > │ input=Identifier("XqVtR1373ik4jZi7P0kWFU1k") -00:01:09 v #1407 > > │ input=Integer(-3652783330254808664) -00:01:09 v #1408 > > │ input=StringLiteral("Fqak<Y/O^&?`@l.%'&)?hd281") -00:01:09 v #1409 > > │ input=Integer(-6200165027166662488) -00:01:09 v #1410 > > │ input=Operator("(") -00:01:09 v #1411 > > │ input=Comment("'<\\o]Oj=m9g`<:rg'") -00:01:09 v #1412 > > │ input=Integer(-8972574821379987691) -00:01:09 v #1413 > > │ input=StringLiteral("bK.sFf<C%95h{i'{G0/&Y:ym&B=`") -00:01:09 v #1414 > > │ input=Operator(")") -00:01:09 v #1415 > > │ input=Operator("*") -00:01:09 v #1416 > > │ input=Identifier("IC3Pyv1c0lwpBtgaV8t") -00:01:09 v #1417 > > │ input=Operator("/") -00:01:09 v #1418 > > │ input=Comment("FAG\\)1V&t_@5p{ys4?m'vZ@0flgCE%") -00:01:09 v #1419 > > │ input=Operator("/") -00:01:09 v #1420 > > │ input=Integer(1307789852312038301) -00:01:09 v #1421 > > │ input=Integer(1507670896157723081) -00:01:09 v #1422 > > │ input=Operator("+") -00:01:09 v #1423 > > │ input=Identifier("p19A8Uz60Hw44D9eXhZSh1y5VoHwT56wR") -00:01:09 v #1424 > > │ input=Comment(":~%W.Y2$(\"B\\b#(%bfI") -00:01:09 v #1425 > > │ input=Identifier("Hnj") -00:01:09 v #1426 > > │ input=Operator("-") -00:01:09 v #1427 > > │ input=Operator("(") -00:01:09 v #1428 > > │ input=Comment("p;0~J^{=%!(m&WK^pc)hiCt#Ta2") -00:01:09 v #1429 > > │ input=Operator("-") -00:01:09 v #1430 > > │ input=Integer(337737762850312976) -00:01:09 v #1431 > > │ input=Identifier("jEytRh6CjCSSO2LGf") -00:01:09 v #1432 > > │ input=Operator(")") -00:01:09 v #1433 > > │ input=StringLiteral("8") -00:01:09 v #1434 > > │ input=Comment("%kj}") -00:01:09 v #1435 > > │ input=Integer(-680553938547888794) -00:01:09 v #1436 > > │ input=Integer(9121108081134550842) -00:01:09 v #1437 > > │ input=Integer(-6512670685776957157) -00:01:09 v #1438 > > │ input=Operator(")") -00:01:09 v #1439 > > │ input=Identifier("s") -00:01:09 v #1440 > > │ input=Integer(-2835533838524194273) -00:01:09 v #1441 > > │ input=Operator(")") -00:01:09 v #1442 > > │ input=Operator("+") -00:01:09 v #1443 > > │ input=Identifier("fc3to2C41lDkkeOQyUEE7") -00:01:09 v #1444 > > │ input=Identifier("knh36fB6vciq5aXfn0087BdnBfg11Jn7") -00:01:09 v #1445 > > │ input=Comment("0=oKFk(f)%q#47#?") -00:01:09 v #1446 > > │ input=StringLiteral("|m*nFvYGh& Xp`sP'&|*|01f") -00:01:09 v #1447 > > │ input=StringLiteral("Sr.lQE'M+t*UE") -00:01:09 v #1448 > > │ input=Identifier("lcZR005GpS0pckbvu7aAo0P1vlgcD5620") -00:01:09 v #1449 > > │ input=StringLiteral("gl+{I1}:%*0dQ%?)%k@q{';oo|.") -00:01:09 v #1450 > > │ input=StringLiteral("&Y'(.:X`M6qt`&*1EUks$.-`>=`<:?d") -00:01:09 v #1451 > > │ input=Comment("=#/") -00:01:09 v #1452 > > │ input=Comment("pXa?M2m'WJj)IC*V.%\"?&E/Q'(/m$MX") -00:01:09 v #1453 > > │ input=Comment("DV/:Zx8c*/]es\"<rI.4q_=/&") -00:01:09 v #1454 > > │ input=Comment("rH:J']Wm.3elh)'&") -00:01:09 v #1455 > > │ input=Identifier("X20J1vkBF1TiY") -00:01:09 v #1456 > > │ input=StringLiteral("{'0/") -00:01:09 v #1457 > > │ input=Comment("5x4e g:~3}'K%6\\\"D$7,\"c^Mt&e") -00:01:09 v #1458 > > │ input=Operator("*") -00:01:09 v #1459 > > │ input=Operator("(") -00:01:09 v #1460 > > │ input=StringLiteral("A@g0x&'`#c(ys5ac<<{YAOjf~s+KO") -00:01:09 v #1461 > > │ input=Comment("B$E?5R`iOU)/u:RcB==\"e*d73=%!$") -00:01:09 v #1462 > > │ input=Operator("-") -00:01:09 v #1463 > > │ input=Identifier("LATc") -00:01:09 v #1464 > > │ input=Operator("=") -00:01:09 v #1465 > > │ input=Integer(3399830109236260720) -00:01:09 v #1466 > > │ input=Comment("\"u4%&{yOB{n@nu!</`I?U{..a.H<b'") -00:01:09 v #1467 > > │ input=Operator(")") -00:01:09 v #1468 > > │ input=Operator("*") -00:01:09 v #1469 > > │ input=Comment("R1~&YP$s!N**<yf") -00:01:09 v #1470 > > │ input=Operator("-") -00:01:09 v #1471 > > │ input=Identifier("phS49X52f575oknTRdr1aAJ08bVp54") -00:01:09 v #1472 > > │ input=Operator("/") -00:01:09 v #1473 > > │ input=Comment(": &$>L`i}k") -00:01:09 v #1474 > > │ input=Identifier("X639XtGeoE9wTKCnu7oIis4OnrO") -00:01:09 v #1475 > > │ input=StringLiteral("%?$lo`UWOo2C#q<&XycQ`") -00:01:09 v #1476 > > │ input=Identifier("c7r0A9iD06lF3TJf01Ui3eIXRL2O7zN2") -00:01:09 v #1477 > > │ input=StringLiteral("u8oN:$7a1`!K<B=1Lh:oh/") -00:01:09 v #1478 > > │ input=Comment("`d{LAW'$fro$:0m!bn`") -00:01:09 v #1479 > > │ input=Identifier("vWpqzVWzuQNxz3t7Fg2Zfdk2V2dwMA6ff") -00:01:09 v #1480 > > │ input=StringLiteral("=/-.<L<-r??<a.+*{:<") -00:01:09 v #1481 > > │ input=StringLiteral(":{DAdFb{lFg`N..&:gYQ%") -00:01:09 v #1482 > > │ input=Operator("=") -00:01:09 v #1483 > > │ input=Operator("(") -00:01:09 v #1484 > > │ input=StringLiteral(":g; *rgudn*") -00:01:09 v #1485 > > │ input=Comment("") -00:01:09 v #1486 > > │ input=StringLiteral("%_#Zj$<al'?3l/)n'B") -00:01:09 v #1487 > > │ input=Comment("<#=X`$lF'S&_D") -00:01:09 v #1488 > > │ input=StringLiteral("Z.**oC6c:n?oN") -00:01:09 v #1489 > > │ input=Integer(7515725445225940171) -00:01:09 v #1490 > > │ input=StringLiteral("<&$l7Z<s{f*`33wZ") -00:01:09 v #1491 > > │ input=Comment(",#?1k!W?") -00:01:09 v #1492 > > │ input=Operator("+") -00:01:09 v #1493 > > │ input=Integer(6571713780999062961) -00:01:09 v #1494 > > │ input=Operator(")") -00:01:09 v #1495 > > │ input=Comment("%$GW\\'L@_&S<>9Y=:4&.=T ") -00:01:09 v #1496 > > │ input=StringLiteral("dG'Q={l/h:f") -00:01:09 v #1497 > > │ input=Integer(7487299668627183878) -00:01:09 v #1498 > > │ input=Operator("/") -00:01:09 v #1499 > > │ input=Integer(-6724839886348053677) -00:01:09 v #1500 > > │ input=Comment("YI=q1:WM`") -00:01:09 v #1501 > > │ input=Comment("<`}\"H&5}q.0#") -00:01:09 v #1502 > > │ input=Operator("*") -00:01:09 v #1503 > > │ input=Identifier("QUvabSV33") -00:01:09 v #1504 > > │ input=Identifier("hj") -00:01:09 v #1505 > > │ input=Operator(")") -00:01:09 v #1506 > > │ input=Identifier("i7i0i9GboF9") -00:01:09 v #1507 > > │ input=Identifier("OjltoIndEaCtcd") -00:01:09 v #1508 > > │ input=StringLiteral("@xl?wL{=`w.g&:R`") -00:01:09 v #1509 > > │ input=Identifier("qrv111REU45K") -00:01:09 v #1510 > > │ input=Comment("o<e'%.'6N;.i`1+2\\M$P3.'[{z") -00:01:09 v #1511 > > │ input=StringLiteral("=:|ock.uu$YW>='? ]%p:`&'?T") -00:01:09 v #1512 > > │ input=Comment("O") -00:01:09 v #1513 > > │ input=Operator("/") -00:01:09 v #1514 > > │ input=StringLiteral("E5:jl1-?*;?Dl;x'n%]uA^`'/M#mZ)") -00:01:09 v #1515 > > │ input=Identifier("h") -00:01:09 v #1516 > > │ input=Integer(6880324121068579272) -00:01:09 v #1517 > > │ input=Identifier("RozeF8Lut3ytp90mJUxO") -00:01:09 v #1518 > > │ input=Integer(-7145866504675695550) -00:01:09 v #1519 > > │ input=Operator("/") -00:01:09 v #1520 > > │ input=StringLiteral(",xk`2~>ep?%CKw5d") -00:01:09 v #1521 > > │ input=Identifier("lNpv0FdASC") -00:01:09 v #1522 > > │ input=Integer(1309706968147847605) -00:01:09 v #1523 > > │ input=Integer(-4000216995637493999) -00:01:09 v #1524 > > │ input=Comment("#pCDD\"ucL*PI%J$^g#?v.5j37>Ha|7lo") -00:01:09 v #1525 > > │ input=Comment("Xmb<-//W3gD6{\\`FSU\"U}7? Xkk?E") -00:01:09 v #1526 > > │ input=StringLiteral("*.{K'{") -00:01:09 v #1527 > > │ input=Integer(-6907892761273397405) -00:01:09 v #1528 > > │ input=Integer(6804561689535436141) -00:01:09 v #1529 > > │ input=Comment("") -00:01:09 v #1530 > > │ input=Identifier("t9gTgTY30cvfZ8sYrzddVJ94q") -00:01:09 v #1531 > > │ input=Integer(-5156732326405744759) -00:01:09 v #1532 > > │ input=Integer(-4094636963208644494) -00:01:09 v #1533 > > │ input=Identifier("bDx") -00:01:09 v #1534 > > │ input=Identifier("nbGG8iV6ywy8eSu47w97gIs78nN0Qk9qU") -00:01:09 v #1535 > > │ input=Integer(5306083472932589193) -00:01:09 v #1536 > > │ input=Integer(2723879740082653944) -00:01:09 v #1537 > > │ input=Identifier("N4vE7X78b4bco9hZwnz1Eo99U") -00:01:09 v #1538 > > │ input=StringLiteral("L:A<yNJ^!7-.{Wio~/{J:'?@*?*") -00:01:09 v #1539 > > │ input=Comment("sR`u{u1h\\W-H:&5!.V<1;`N") -00:01:09 v #1540 > > │ input=Operator("/") -00:01:09 v #1541 > > │ input=StringLiteral("i(1$6;&.=jXC&pu<`%") -00:01:09 v #1542 > > │ input=Operator(")") -00:01:09 v #1543 > > │ input=StringLiteral("p$.9%f2VYYkWjO") -00:01:09 v #1544 > > │ input=Operator("/") -00:01:09 v #1545 > > │ input=StringLiteral("fnAd#*7x`?&q9FMeOHW~$&:5&;") -00:01:09 v #1546 > > │ input=Integer(-7699573707121705742) -00:01:09 v #1547 > > │ input=StringLiteral("u-`") -00:01:09 v #1548 > > │ input=Integer(-7233849421958829248) -00:01:09 v #1549 > > │ input=Comment("a&-N\\\\Z6.\\\"3") -00:01:09 v #1550 > > │ input=Integer(2686678603207873741) -00:01:09 v #1551 > > │ input=StringLiteral("L%%o34'/H?6-x':?") -00:01:09 v #1552 > > │ input=StringLiteral("F:-`)N@q:/T$h=") -00:01:09 v #1553 > > │ input=Operator(")") -00:01:09 v #1554 > > │ input=Integer(-8172162629790533750) -00:01:09 v #1555 > > │ input=Integer(6698906741669274742) -00:01:09 v #1556 > > │ input=Identifier("BudttS6tu0k3w") -00:01:09 v #1557 > > │ input=Operator("/") -00:01:09 v #1558 > > │ input=Identifier("UArdufD6169RtQjmI8UiFMd") -00:01:09 v #1559 > > │ input=Comment("ZY/h0h\"V<=Zl`q2j0 \\bh") -00:01:09 v #1560 > > │ input=Comment("?~A") -00:01:09 v #1561 > > │ input=Comment(":D*VThu]Z=\"") -00:01:09 v #1562 > > │ input=Comment("3mD*s%Nj,") -00:01:09 v #1563 > > │ input=Integer(-460929577335747332) -00:01:09 v #1564 > > │ input=Comment("5?") -00:01:09 v #1565 > > │ input=Comment("\\Nq\\bU.3<{EA#:e9:O8?uD\"'aVId3") -00:01:09 v #1566 > > │ -00:01:09 v #1567 > > │ -00:01:09 v #1568 > > │ successes: -00:01:09 v #1569 > > │ -00:01:09 v #1570 > > adding_and_then_removing_an_item_from_the_cart_leaves_the_cart_unchanged -00:01:09 v #1571 > > │ prop_parse_format_idempotent -00:01:09 v #1572 > > │ test_parse_number -00:01:09 v #1573 > > │ -00:01:09 v #1574 > > │ test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 -00:01:09 v #1575 > > filtered out; finished in 0.13s -00:01:09 v #1576 > > │ -00:01:09 v #1577 > > │ -00:01:09 v #1578 > > -00:01:09 v #1579 > > ── markdown ──────────────────────────────────────────────────────────────────── -00:01:09 v #1580 > > │ ### execute the binary in release mode -00:01:09 v #1581 > > -00:01:09 v #1582 > > ── pwsh ──────────────────────────────────────────────────────────────────────── -00:01:09 v #1583 > > { . $ScriptDir/../../../../workspace/target/release/spiral_temp_test$(_exe) } | -00:01:09 v #1584 > > Invoke-Block -00:01:09 v #1585 > > -00:01:09 v #1586 > > ── [ 20.14ms - stdout ] ──────────────────────────────────────────────────────── -00:01:09 v #1587 > > │ app=test -00:01:09 v #1588 > > │ -00:01:09 v #1589 > 00:01:07 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 92183 } -00:01:09 v #1590 > 00:01:07 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/apps/spiral/temp/test/build.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/apps/spiral/temp/test/build.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:01:10 v #1591 > 00:01:09 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/apps/spiral/temp/test/build.dib.ipynb to html -00:01:10 v #1592 > 00:01:09 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. -00:01:10 v #1593 > 00:01:09 v #7 ! validate(nb) -00:01:11 v #1594 > 00:01:09 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 -00:01:11 v #1595 > 00:01:09 v #9 ! return _pygments_highlight( -00:01:11 v #1596 > 00:01:09 v #10 ! [NbConvertApp] Writing 393039 bytes to c:\home\git\polyglot\apps\spiral\temp\test\build.dib.html -00:01:11 v #1597 > 00:01:09 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 874 } -00:01:11 v #1598 > 00:01:09 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 874 } -00:01:11 v #1599 > 00:01:09 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/apps/spiral/temp/test/build.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/apps/spiral/temp/test/build.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } -00:01:11 v #1600 > 00:01:10 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } -00:01:11 v #1601 > 00:01:10 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } -00:01:11 v #1602 > 00:01:10 d #16 spiral.run / dib / { exit_code = 0; result_length = 93116 } -00:01:11 d #1603 runtime.execute_with_options_async / { exit_code = 0; output_length = 98862 } -00:01:11 d #3 main / executeCommand / exitCode: 0 / command: ../../../../deps/spiral/workspace/target/release/spiral.exe dib --path build.dib -00:01:12 v #5 async.run_with_timeout_async / { timeout = 100 } -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/apps/spiral/temp/blender +00:00:26 v #1245 > > cargo build --release +00:00:44 v #1246 > > +00:00:44 v #1247 > > ── [ 18.16s - stdout ] ───────────────────────────────────────────────────────── +00:00:44 v #1248 > > │ Compiling proc-macro2 v1.0.92 +00:00:44 v #1249 > > │ Compiling unicode-ident v1.0.14 +00:00:44 v #1250 > > │ Compiling fable_library_rust v0.1.0 +00:00:44 v #1251 > > (C:\home\git\polyglot\lib\rust\fable\fable_modules\fable-library-rust) +00:00:44 v #1252 > > │ Compiling quote v1.0.37 +00:00:44 v #1253 > > │ Compiling syn v2.0.90 +00:00:44 v #1254 > > │ Compiling zerocopy-derive v0.7.35 +00:00:44 v #1255 > > │ Compiling thiserror-impl v1.0.69 +00:00:44 v #1256 > > │ Compiling zerocopy v0.7.35 +00:00:44 v #1257 > > │ Compiling thiserror v1.0.69 +00:00:44 v #1258 > > │ Compiling ppv-lite86 v0.2.20 +00:00:44 v #1259 > > │ Compiling rand_chacha v0.3.1 +00:00:44 v #1260 > > │ Compiling rand v0.8.5 +00:00:44 v #1261 > > │ Compiling proptest v1.5.0 +00:00:44 v #1262 > > │ Compiling spiral_temp_test v0.0.1 +00:00:44 v #1263 > > (C:\home\git\polyglot\apps\spiral\temp\test) +00:00:44 v #1264 > > │ Finished `release` profile [optimized] target(s) in +00:00:44 v #1265 > > 18.04s +00:00:44 v #1266 > > │ +00:00:44 v #1267 > > +00:00:44 v #1268 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:00:44 v #1269 > > │ ### run release tests with output enabled +00:00:44 v #1270 > > +00:00:44 v #1271 > > ── pwsh ──────────────────────────────────────────────────────────────────────── +00:00:44 v #1272 > > { cargo test --release -- --show-output } | Invoke-Block +00:01:13 v #1273 > > +00:01:13 v #1274 > > ── [ 28.50s - stdout ] ───────────────────────────────────────────────────────── +00:01:13 v #1275 > > │ Compiling zerocopy v0.7.35 +00:01:13 v #1276 > > │ Compiling thiserror v1.0.69 +00:01:13 v #1277 > > │ Compiling fable_library_rust v0.1.0 +00:01:13 v #1278 > > (C:\home\git\polyglot\lib\rust\fable\fable_modules\fable-library-rust) +00:01:13 v #1279 > > │ Compiling ppv-lite86 v0.2.20 +00:01:13 v #1280 > > │ Compiling rand_chacha v0.3.1 +00:01:13 v #1281 > > │ Compiling rand v0.8.5 +00:01:13 v #1282 > > │ Compiling proptest v1.5.0 +00:01:13 v #1283 > > │ Compiling spiral_temp_test v0.0.1 +00:01:13 v #1284 > > (C:\home\git\polyglot\apps\spiral\temp\test) +00:01:13 v #1285 > > │ Finished `release` profile [optimized] target(s) in +00:01:13 v #1286 > > 28.21s +00:01:13 v #1287 > > │ Running unittests main.rs +00:01:13 v #1288 > > (C:\home\git\polyglot\workspace\target\release\deps\spiral_temp_test-5730544e07b +00:01:13 v #1289 > > e5619.exe) +00:01:13 v #1290 > > │ +00:01:13 v #1291 > > │ running 3 tests +00:01:13 v #1292 > > │ test test_parse_number ... ok +00:01:13 v #1293 > > │ test prop_parse_format_idempotent ... ok +00:01:13 v #1294 > > │ test +00:01:13 v #1295 > > adding_and_then_removing_an_item_from_the_cart_leaves_the_cart_unchanged ... ok +00:01:13 v #1296 > > │ +00:01:13 v #1297 > > │ successes: +00:01:13 v #1298 > > │ +00:01:13 v #1299 > > │ ---- prop_parse_format_idempotent stdout ---- +00:01:13 v #1300 > > │ input=Identifier("xPXzTaef") +00:01:13 v #1301 > > │ input=Operator("=") +00:01:13 v #1302 > > │ input=Integer(-494464219920411330) +00:01:13 v #1303 > > │ input=Operator("(") +00:01:13 v #1304 > > │ input=StringLiteral("vkN`&i?|r/t") +00:01:13 v #1305 > > │ input=Comment("JJ\\EateT{+`h:''gtiqA`iYm/$A") +00:01:13 v #1306 > > │ input=Identifier("Fi5W5OJe38z5eic832YP1") +00:01:13 v #1307 > > │ input=Integer(-1296536618781799937) +00:01:13 v #1308 > > │ input=Integer(8589746535227658917) +00:01:13 v #1309 > > │ input=Operator(")") +00:01:13 v #1310 > > │ input=Integer(-9019127109628221234) +00:01:13 v #1311 > > │ input=Integer(-2857353178482594664) +00:01:13 v #1312 > > │ input=StringLiteral("e`^/Wz:S?&B?o^Er$b`") +00:01:13 v #1313 > > │ input=Identifier("OzfFDT224sq4u") +00:01:13 v #1314 > > │ input=Identifier("ACQKgXLO609ySGRfb6mj4LzEm89Sd") +00:01:13 v #1315 > > │ input=Comment("O$\"iQg<==%<RJ5''%") +00:01:13 v #1316 > > │ input=Comment(";`[Hl|NTJ.:C@Jg$-I$<P\\.o=A\\Qk") +00:01:13 v #1317 > > │ input=StringLiteral("7':I") +00:01:13 v #1318 > > │ input=StringLiteral("+QF U=u[}sc.<lI:!M&hx{=}O") +00:01:13 v #1319 > > │ input=Identifier("LV7s0TNAL8c2b5sHQD") +00:01:13 v #1320 > > │ input=Integer(1098926820364590905) +00:01:13 v #1321 > > │ input=Identifier("PRPg4FAwxMDnrREV34T") +00:01:13 v #1322 > > │ input=StringLiteral("IsbCS-dHE$") +00:01:13 v #1323 > > │ input=Comment("~D%C[Mw={XFO<h?") +00:01:13 v #1324 > > │ input=Identifier("PXp") +00:01:13 v #1325 > > │ input=Identifier("VfbDO9nF3QZ") +00:01:13 v #1326 > > │ input=Integer(-1348588448212485264) +00:01:13 v #1327 > > │ input=Comment("p9F*") +00:01:13 v #1328 > > │ input=Comment("3|RrqGUesL+/l{&T") +00:01:13 v #1329 > > │ input=Integer(-7731584020339200474) +00:01:13 v #1330 > > │ input=Comment("%Xp=R{8@~") +00:01:13 v #1331 > > │ input=Integer(-7194143921737616367) +00:01:13 v #1332 > > │ input=Operator("/") +00:01:13 v #1333 > > │ input=Comment("\".\\") +00:01:13 v #1334 > > │ input=Comment("<GA2\\)`b@.0*/_{2.Jq.R }sA_") +00:01:13 v #1335 > > │ input=StringLiteral("'1%Z!") +00:01:13 v #1336 > > │ input=Operator("+") +00:01:13 v #1337 > > │ input=Identifier("leOwbhmazXRsWL") +00:01:13 v #1338 > > │ input=StringLiteral("T") +00:01:13 v #1339 > > │ input=Identifier("Nz7") +00:01:13 v #1340 > > │ input=Operator("+") +00:01:13 v #1341 > > │ input=Integer(7311081359437793310) +00:01:13 v #1342 > > │ input=Operator("/") +00:01:13 v #1343 > > │ input=Identifier("fN4hY7JsI6nEC0nnOYN8M") +00:01:13 v #1344 > > │ input=Operator(")") +00:01:13 v #1345 > > │ input=Integer(4739871423774143701) +00:01:13 v #1346 > > │ input=Identifier("t") +00:01:13 v #1347 > > │ input=Operator("/") +00:01:13 v #1348 > > │ input=Comment("X*/ky<7De=:PHl=L=<9\\\"6%i") +00:01:13 v #1349 > > │ input=Comment("pIa>hI h @+;t&%.~E.t\"e") +00:01:13 v #1350 > > │ input=Identifier("WQSEmNIL") +00:01:13 v #1351 > > │ input=StringLiteral("!M(i.<_.6^xvSBW/^K^nQ'4{/%1/") +00:01:13 v #1352 > > │ input=Integer(3563161738178687472) +00:01:13 v #1353 > > │ input=Operator("(") +00:01:13 v #1354 > > │ input=StringLiteral(".AK`|/7%>") +00:01:13 v #1355 > > │ input=Integer(-4564084504055589052) +00:01:13 v #1356 > > │ input=Identifier("Hj60i97") +00:01:13 v #1357 > > │ input=Integer(-4938262583073719406) +00:01:13 v #1358 > > │ input=Identifier("n") +00:01:13 v #1359 > > │ input=Comment(";<\"7+\"Nsy_a''-@<=%") +00:01:13 v #1360 > > │ input=Operator("=") +00:01:13 v #1361 > > │ input=Comment("Z6BS=K*?_I92C:NKEj") +00:01:13 v #1362 > > │ input=Integer(-150145989604256302) +00:01:13 v #1363 > > │ input=Operator("+") +00:01:13 v #1364 > > │ input=Identifier("Ct8CdRwXSAQAVZX5Iy0rf4t") +00:01:13 v #1365 > > │ input=Operator("+") +00:01:13 v #1366 > > │ input=Integer(7833575164356132030) +00:01:13 v #1367 > > │ input=StringLiteral("=St#h'rSC`5j)'Rux4") +00:01:13 v #1368 > > │ input=Integer(1366644541352062012) +00:01:13 v #1369 > > │ input=Operator("=") +00:01:13 v #1370 > > │ input=Operator("/") +00:01:13 v #1371 > > │ input=StringLiteral("'S?}$tQ") +00:01:13 v #1372 > > │ input=Integer(6097929455161482109) +00:01:13 v #1373 > > │ input=Integer(8096908176654595442) +00:01:13 v #1374 > > │ input=Comment("") +00:01:13 v #1375 > > │ input=Integer(-2056615946296220153) +00:01:13 v #1376 > > │ input=Identifier("xPRGe6FAQ5O0VI4aE933zsZFGTQN") +00:01:13 v #1377 > > │ input=Integer(8110458924151388662) +00:01:13 v #1378 > > │ input=StringLiteral("u`M`P/'7*{vQ`_c{13TV&=Z+**") +00:01:13 v #1379 > > │ input=Comment("<u.u2=") +00:01:13 v #1380 > > │ input=Integer(-4259264263876081343) +00:01:13 v #1381 > > │ input=Identifier("UDqK98XEr980M0HgVHyUT") +00:01:13 v #1382 > > │ input=Identifier("Du") +00:01:13 v #1383 > > │ input=Comment("(&/AlZimK/cY\\*") +00:01:13 v #1384 > > │ input=StringLiteral("HP=L<z{)&POHFaj") +00:01:13 v #1385 > > │ input=Operator("+") +00:01:13 v #1386 > > │ input=StringLiteral("av:K/X<#o:/nNW?'lr") +00:01:13 v #1387 > > │ input=Comment("\"1\\]n_~WHw>0q=\\\\>[Y`I/") +00:01:13 v #1388 > > │ input=StringLiteral("'F<Y9{&K.%<f8S<{,") +00:01:13 v #1389 > > │ input=StringLiteral("fhx`$%*P5G.su'4h*^QI +^S:k") +00:01:13 v #1390 > > │ input=Operator("+") +00:01:13 v #1391 > > │ input=Comment("Nv-zujh") +00:01:13 v #1392 > > │ input=StringLiteral("%rM29.UbI+&cQr=8{E_Peb:&E&dZ1") +00:01:13 v #1393 > > │ input=Operator("=") +00:01:13 v #1394 > > │ input=StringLiteral("[o$u0!iD:knnXSr]|p=Z") +00:01:13 v #1395 > > │ input=StringLiteral("n1%]_C2O1o<(`&E&EFcyB") +00:01:13 v #1396 > > │ input=Identifier("CJ517skWJQMKiV0t76ReN4JT") +00:01:13 v #1397 > > │ input=Operator("=") +00:01:13 v #1398 > > │ input=Identifier("fHNZy9yMe0zY2sy1jJJErf3") +00:01:13 v #1399 > > │ input=StringLiteral("DC&21= Ac86O/{L/*") +00:01:13 v #1400 > > │ input=Identifier("jiGG9Vhyn9k23J89Mrs5M1pBs4W278EB") +00:01:13 v #1401 > > │ input=Identifier("M53fG5I9JE5") +00:01:13 v #1402 > > │ input=Identifier("fCAxqiNez9JbFzgcq2A1g") +00:01:13 v #1403 > > │ input=Comment(" i84Q") +00:01:13 v #1404 > > │ input=Comment("cATP^}&DE-Z#1c<") +00:01:13 v #1405 > > │ input=Operator("-") +00:01:13 v #1406 > > │ input=Comment("?") +00:01:13 v #1407 > > │ input=Operator("+") +00:01:13 v #1408 > > │ input=Comment("/)'Dn/&&0") +00:01:13 v #1409 > > │ input=StringLiteral("2LG:=`0") +00:01:13 v #1410 > > │ input=Integer(-8082628599937722212) +00:01:13 v #1411 > > │ input=Identifier("yCyGgpCD9m7dmI2e9k1dvye56Zk9") +00:01:13 v #1412 > > │ input=Comment("y1]Y<") +00:01:13 v #1413 > > │ input=Operator("*") +00:01:13 v #1414 > > │ input=Operator("-") +00:01:13 v #1415 > > │ input=Comment("`gQ$=w&&<gL36Q{HOe=eN?`|%)i}]/`") +00:01:13 v #1416 > > │ input=Operator("-") +00:01:13 v #1417 > > │ input=Integer(4128227874417326122) +00:01:13 v #1418 > > │ input=StringLiteral("n;3d$_.E$}:}8i]*{=W/3cO}vJ") +00:01:13 v #1419 > > │ input=Operator("-") +00:01:13 v #1420 > > │ input=Integer(-8023901635489317287) +00:01:13 v #1421 > > │ input=Integer(388409752313751405) +00:01:13 v #1422 > > │ input=Operator(")") +00:01:13 v #1423 > > │ input=Integer(8442684124520287097) +00:01:13 v #1424 > > │ input=Identifier("YVj6k9IoSp1XJuVesmNWZIcy6r02Ii") +00:01:13 v #1425 > > │ input=Operator("-") +00:01:13 v #1426 > > │ input=Identifier("WzRO4wNrhSlDvmadedBP2t3t1O8") +00:01:13 v #1427 > > │ input=Identifier("S0QUXNbHk993ZLqVD7Ix") +00:01:13 v #1428 > > │ input=Integer(7102645395337228223) +00:01:13 v #1429 > > │ input=StringLiteral("J'!o") +00:01:13 v #1430 > > │ input=Comment("/=Kr\"Og\\Nb%") +00:01:13 v #1431 > > │ input=Operator("/") +00:01:13 v #1432 > > │ input=Integer(1863955057585462317) +00:01:13 v #1433 > > │ input=StringLiteral("=li.-5#p`%i9ZBA*/") +00:01:13 v #1434 > > │ input=Identifier("nUFpBSxw") +00:01:13 v #1435 > > │ input=Operator(")") +00:01:13 v #1436 > > │ input=Comment("g/[$}=%*::5.=2;") +00:01:13 v #1437 > > │ input=Operator("+") +00:01:13 v #1438 > > │ input=Integer(8652310293823345895) +00:01:13 v #1439 > > │ input=Integer(1878170474004718810) +00:01:13 v #1440 > > │ input=Comment("0/Yr*`{") +00:01:13 v #1441 > > │ input=Operator("=") +00:01:13 v #1442 > > │ input=StringLiteral("&vo%If}|E'") +00:01:13 v #1443 > > │ input=Identifier("nP86JLCDahkWcqnuHqtfC3r0r") +00:01:13 v #1444 > > │ input=StringLiteral("Mda&<<C.(L'%$$T%+6`PO`&1ZKn~") +00:01:13 v #1445 > > │ input=Integer(5180287650665862159) +00:01:13 v #1446 > > │ input=Operator("(") +00:01:13 v #1447 > > │ input=StringLiteral("q7.':qa/<2Zn,U<?") +00:01:13 v #1448 > > │ input=Integer(3642945913790324169) +00:01:13 v #1449 > > │ input=Integer(-1433671932162916997) +00:01:13 v #1450 > > │ input=StringLiteral("(?d].g.91!*&%?`po1j8") +00:01:13 v #1451 > > │ input=Identifier("NcDOqoVgAa86Tk6sh54mtKs79") +00:01:13 v #1452 > > │ input=StringLiteral("2{z''x$PH") +00:01:13 v #1453 > > │ input=Operator("=") +00:01:13 v #1454 > > │ input=Integer(-28999296215104115) +00:01:13 v #1455 > > │ input=Integer(-2590047140854968341) +00:01:13 v #1456 > > │ input=StringLiteral("p?/|$2`zS2:p[J_z<") +00:01:13 v #1457 > > │ input=Integer(-5947062622038156672) +00:01:13 v #1458 > > │ input=Identifier("hGUl2gx2R7WMq") +00:01:13 v #1459 > > │ input=StringLiteral("dr.F<.$'TO{Dl%iK/6") +00:01:13 v #1460 > > │ input=StringLiteral("$Y|4?Hi8r(,r3U}=") +00:01:13 v #1461 > > │ input=Integer(-3395034557988424876) +00:01:13 v #1462 > > │ input=StringLiteral("ia`VSx}7?2T&Y`x&^sAJ*S,/F") +00:01:13 v #1463 > > │ input=Integer(-1478373795459492051) +00:01:13 v #1464 > > │ input=StringLiteral(":H/d1") +00:01:13 v #1465 > > │ input=Comment("{M+r4\\") +00:01:13 v #1466 > > │ input=Operator("/") +00:01:13 v #1467 > > │ input=Integer(3095331252432935948) +00:01:13 v #1468 > > │ input=Comment("WN$h{0*%=*%9'5y?") +00:01:13 v #1469 > > │ input=Integer(-360436507010433909) +00:01:13 v #1470 > > │ input=Comment("PCG=D'JFwk/(6w,nCq?H") +00:01:13 v #1471 > > │ input=Integer(6585294117247150055) +00:01:13 v #1472 > > │ input=StringLiteral("I^yB") +00:01:13 v #1473 > > │ input=StringLiteral("wfHI0[?=dWY{5;=QC/uQ /?&Qx1") +00:01:13 v #1474 > > │ input=Operator("(") +00:01:13 v #1475 > > │ input=Comment("C{' ($#R") +00:01:13 v #1476 > > │ input=StringLiteral("-{^") +00:01:13 v #1477 > > │ input=StringLiteral("8D.x='C.w&dd$&%[nurHb{=") +00:01:13 v #1478 > > │ input=Comment("ZB|S:&)@<'Q*!.x") +00:01:13 v #1479 > > │ input=Operator("-") +00:01:13 v #1480 > > │ input=Integer(7236909433912809263) +00:01:13 v #1481 > > │ input=Identifier("p1") +00:01:13 v #1482 > > │ input=Integer(2576807912745851435) +00:01:13 v #1483 > > │ input=Operator("(") +00:01:13 v #1484 > > │ input=Identifier("txT3s5Hdoh4Wo5EJ4CGZoP1rsMoAg") +00:01:13 v #1485 > > │ input=Operator("/") +00:01:13 v #1486 > > │ input=Integer(9181734220672427392) +00:01:13 v #1487 > > │ input=StringLiteral(".+%:h%C%'h*{.Har8}$") +00:01:13 v #1488 > > │ input=Integer(-8391155563391526641) +00:01:13 v #1489 > > │ input=Operator(")") +00:01:13 v #1490 > > │ input=Integer(-4540169731705528113) +00:01:13 v #1491 > > │ input=Identifier("j") +00:01:13 v #1492 > > │ input=Comment("y/K\"A%Qy") +00:01:13 v #1493 > > │ input=StringLiteral("$xU$s(w}9{Iy^{5/:") +00:01:13 v #1494 > > │ input=Integer(-3344085009171501319) +00:01:13 v #1495 > > │ input=Operator("-") +00:01:13 v #1496 > > │ input=Identifier("ww8yBN6AC5AoTqw") +00:01:13 v #1497 > > │ input=StringLiteral("Boo(::.") +00:01:13 v #1498 > > │ input=StringLiteral("N|:L'?g5m14|)6d") +00:01:13 v #1499 > > │ input=StringLiteral(":2;c-d<F4") +00:01:13 v #1500 > > │ input=StringLiteral(",'8`d<'S'") +00:01:13 v #1501 > > │ input=Operator("/") +00:01:13 v #1502 > > │ input=Comment("?k/(i'3") +00:01:13 v #1503 > > │ input=Operator("-") +00:01:13 v #1504 > > │ input=Operator("(") +00:01:13 v #1505 > > │ input=Identifier("y9997JZLnSklj9hq7Mz0f3Cl8XA6kG") +00:01:13 v #1506 > > │ input=Identifier("iF29lKh") +00:01:13 v #1507 > > │ input=Identifier("y78OLUFJwfEuA3x8THYvo") +00:01:13 v #1508 > > │ input=Integer(3280352081676016132) +00:01:13 v #1509 > > │ input=Integer(-7028194247966638380) +00:01:13 v #1510 > > │ input=Integer(-4873094892637303607) +00:01:13 v #1511 > > │ input=Integer(1477931576948922386) +00:01:13 v #1512 > > │ input=Identifier("U68dv3x7P808q") +00:01:13 v #1513 > > │ input=Identifier("Hn") +00:01:13 v #1514 > > │ input=StringLiteral("Xs!$Z=@8<~") +00:01:13 v #1515 > > │ input=Operator("(") +00:01:13 v #1516 > > │ input=StringLiteral("K:?5<Rma}:07t/") +00:01:13 v #1517 > > │ input=StringLiteral("`T$si%&|=,V1fZQ@%Nz>{j%h''/") +00:01:13 v #1518 > > │ input=Operator("/") +00:01:13 v #1519 > > │ input=StringLiteral("Iov=4j3w)^M4%j)5$'Izq&={jI`8?L") +00:01:13 v #1520 > > │ input=Comment("&F#*~%&gk:ZA\"") +00:01:13 v #1521 > > │ input=Operator(")") +00:01:13 v #1522 > > │ input=Operator("=") +00:01:13 v #1523 > > │ input=StringLiteral("9&~A4YA^=q=K/{**<&.{G{2s") +00:01:13 v #1524 > > │ input=Identifier("yzqZM9jqhg3f") +00:01:13 v #1525 > > │ input=Comment("'''+~{$+C{J<.v`?<z/ C]") +00:01:13 v #1526 > > │ input=Comment(";&[E5G7z\"'.&h") +00:01:13 v #1527 > > │ input=Operator("*") +00:01:13 v #1528 > > │ input=Identifier("l2whG") +00:01:13 v #1529 > > │ input=Operator("+") +00:01:13 v #1530 > > │ input=Comment("6,`46aN#`\"@7pRpB$s<^\"90$") +00:01:13 v #1531 > > │ input=StringLiteral("$$&*Wv$Kw<:%kit") +00:01:13 v #1532 > > │ input=Comment(":dk*L,Jl/=C-_&$65") +00:01:13 v #1533 > > │ input=StringLiteral("+=:?2") +00:01:13 v #1534 > > │ input=Comment(";-n<Ymoz\\:%`{u,}qj?$<K8%Y.*eP.") +00:01:13 v #1535 > > │ input=Integer(7056125318013004113) +00:01:13 v #1536 > > │ input=StringLiteral("Gi$Zo") +00:01:13 v #1537 > > │ input=StringLiteral("'V?u`q`[N&iLrp:") +00:01:13 v #1538 > > │ input=Operator("=") +00:01:13 v #1539 > > │ input=StringLiteral("%:2hQv%<`;&pw/5@L{Y4{9`&A<") +00:01:13 v #1540 > > │ input=Identifier("Ek") +00:01:13 v #1541 > > │ input=StringLiteral("/p1.$&8Z'") +00:01:13 v #1542 > > │ input=Comment("g~e<\\$<&:'AG{?*`=%;$g/_*rGG'w") +00:01:13 v #1543 > > │ input=Comment("?v`?}KS") +00:01:13 v #1544 > > │ input=Integer(4248022805603876591) +00:01:13 v #1545 > > │ input=Comment(";1c6Tq;6ev-:K\\") +00:01:13 v #1546 > > │ input=StringLiteral("/KM&t=pQOr=gnM&bulPB2") +00:01:13 v #1547 > > │ input=Operator("/") +00:01:13 v #1548 > > │ input=Comment(":C&") +00:01:13 v #1549 > > │ input=Integer(1583798651562892036) +00:01:13 v #1550 > > │ input=Operator("*") +00:01:13 v #1551 > > │ input=StringLiteral("V.5p$NU,o(DaZ/u]?i:568?") +00:01:13 v #1552 > > │ input=StringLiteral("0{`=r*~o^S:q/T]j&%}z]a") +00:01:13 v #1553 > > │ input=Comment("Eph(=b]./%*zh%\"wMNJ") +00:01:13 v #1554 > > │ input=Operator("=") +00:01:13 v #1555 > > │ input=StringLiteral("S'HbX,[M]!B?)v%!8H") +00:01:13 v #1556 > > │ +00:01:13 v #1557 > > │ +00:01:13 v #1558 > > │ successes: +00:01:13 v #1559 > > │ +00:01:13 v #1560 > > adding_and_then_removing_an_item_from_the_cart_leaves_the_cart_unchanged +00:01:13 v #1561 > > │ prop_parse_format_idempotent +00:01:13 v #1562 > > │ test_parse_number +00:01:13 v #1563 > > │ +00:01:13 v #1564 > > │ test result: ok. 3 passed; 0 failed; 0 ignored; 0 measured; 0 +00:01:13 v #1565 > > filtered out; finished in 0.14s +00:01:13 v #1566 > > │ +00:01:13 v #1567 > > │ +00:01:13 v #1568 > > +00:01:13 v #1569 > > ── markdown ──────────────────────────────────────────────────────────────────── +00:01:13 v #1570 > > │ ### execute the binary in release mode +00:01:13 v #1571 > > +00:01:13 v #1572 > > ── pwsh ──────────────────────────────────────────────────────────────────────── +00:01:13 v #1573 > > { . $ScriptDir/../../../../workspace/target/release/spiral_temp_test$(_exe) } | +00:01:13 v #1574 > > Invoke-Block +00:01:13 v #1575 > > +00:01:13 v #1576 > > ── [ 18.00ms - stdout ] ──────────────────────────────────────────────────────── +00:01:13 v #1577 > > │ app=test +00:01:13 v #1578 > > │ +00:01:13 v #1579 > 00:01:12 v #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 92088 } +00:01:13 v #1580 > 00:01:12 d #4 runtime.execute_with_options / { file_name = jupyter; arguments = ["nbconvert", "c:/home/git/polyglot/apps/spiral/temp/test/build.dib.ipynb", "--to", "html", "--HTMLExporter.theme=dark"]; options = { command = jupyter nbconvert "c:/home/git/polyglot/apps/spiral/temp/test/build.dib.ipynb" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } +00:01:14 v #1581 > 00:01:13 v #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/apps/spiral/temp/test/build.dib.ipynb to html +00:01:14 v #1582 > 00:01:13 v #6 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbformat\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future. +00:01:14 v #1583 > 00:01:13 v #7 ! validate(nb) +00:01:15 v #1584 > 00:01:14 v #8 ! C:\Users\i574n\scoop\apps\python312\current\Lib\site-packages\nbconvert\filters\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3 +00:01:15 v #1585 > 00:01:14 v #9 ! return _pygments_highlight( +00:01:15 v #1586 > 00:01:14 v #10 ! [NbConvertApp] Writing 393014 bytes to c:\home\git\polyglot\apps\spiral\temp\test\build.dib.html +00:01:15 v #1587 > 00:01:14 v #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 874 } +00:01:15 v #1588 > 00:01:14 d #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 874 } +00:01:15 v #1589 > 00:01:14 d #13 runtime.execute_with_options / { file_name = pwsh; arguments = ["-c", "$counter = 1; $path = 'c:/home/git/polyglot/apps/spiral/temp/test/build.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"]; options = { command = pwsh -c "$counter = 1; $path = 'c:/home/git/polyglot/apps/spiral/temp/test/build.dib.html'; (Get-Content $path -Raw) -replace '(id=\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } } +00:01:16 v #1590 > 00:01:15 v #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 } +00:01:16 v #1591 > 00:01:15 d #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 } +00:01:16 v #1592 > 00:01:15 d #16 spiral.run / dib / { exit_code = 0; result_length = 93021 } +00:01:16 d #1593 runtime.execute_with_options_async / { exit_code = 0; output_length = 98767 } +00:01:16 d #1 main / executeCommand / exitCode: 0 / command: ../../../../deps/spiral/workspace/target/release/spiral.exe dib --path build.dib +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/polyglot/apps/spiral/temp/blender polyglot/scripts/core.ps1/GetFullPath / Path: ./build.py / Location: C:\home\git\polyglot\apps\spiral\temp\blender / ResolvedLocation: C:\home\git\polyglot\apps\spiral\temp\blender polyglot/scripts/core.ps1/GetFullPath / FullPath: C:\home\git\polyglot\apps\spiral\temp\blender\build.py blender / Path: C:\home\git\polyglot\apps\spiral\temp\blender\build.py @@ -80724,20 +38171,20 @@ Fra:1 Mem:10.13M (Peak 10.29M) | Time:00:00.00 | Mem:0.00M, Peak:0.00M | Scene, ViewLayer | Loading render kernels (may take a few minutes the first time) Fra:1 Mem:10.13M (Peak 10.29M) | Time:00:00.00 | Mem:0.00M, Peak:0.00M | Scene, ViewLayer | Updating Scene Fra:1 Mem:10.13M (Peak 10.29M) | Time:00:00.00 | Mem:0.00M, Peak:0.00M | Scene, ViewLayer | Updating Shaders -Fra:1 Mem:10.22M (Peak 10.29M) | Time:00:00.00 | Mem:0.00M, Peak:0.00M | Scene, ViewLayer | Updating Procedurals -Fra:1 Mem:10.22M (Peak 10.29M) | Time:00:00.00 | Mem:0.00M, Peak:0.00M | Scene, ViewLayer | Updating Background -Fra:1 Mem:10.22M (Peak 10.29M) | Time:00:00.00 | Mem:0.00M, Peak:0.00M | Scene, ViewLayer | Updating Camera -Fra:1 Mem:10.22M (Peak 10.29M) | Time:00:00.00 | Mem:0.00M, Peak:0.00M | Scene, ViewLayer | Updating Meshes Flags -Fra:1 Mem:10.22M (Peak 10.29M) | Time:00:00.00 | Mem:0.00M, Peak:0.00M | Scene, ViewLayer | Updating Objects -Fra:1 Mem:10.22M (Peak 10.29M) | Time:00:00.00 | Mem:0.00M, Peak:0.00M | Scene, ViewLayer | Updating Objects | Copying Transformations to device -Fra:1 Mem:10.22M (Peak 10.29M) | Time:00:00.00 | Mem:0.00M, Peak:0.00M | Scene, ViewLayer | Updating Objects | Applying Static Transformations -Fra:1 Mem:10.22M (Peak 10.29M) | Time:00:00.00 | Mem:0.00M, Peak:0.00M | Scene, ViewLayer | Updating Particle Systems -Fra:1 Mem:10.22M (Peak 10.29M) | Time:00:00.00 | Mem:0.00M, Peak:0.00M | Scene, ViewLayer | Updating Particle Systems | Copying Particles to device -Fra:1 Mem:10.22M (Peak 10.29M) | Time:00:00.00 | Mem:0.00M, Peak:0.00M | Scene, ViewLayer | Updating Meshes -Fra:1 Mem:10.23M (Peak 10.29M) | Time:00:00.00 | Mem:0.00M, Peak:0.00M | Scene, ViewLayer | Updating Mesh | Computing attributes -Fra:1 Mem:10.24M (Peak 10.29M) | Time:00:00.00 | Mem:0.00M, Peak:0.00M | Scene, ViewLayer | Updating Mesh | Copying Attributes to device -Fra:1 Mem:10.24M (Peak 10.29M) | Time:00:00.00 | Mem:0.01M, Peak:0.01M | Scene, ViewLayer | Updating Scene BVH | Building -Fra:1 Mem:10.24M (Peak 10.29M) | Time:00:00.00 | Mem:0.01M, Peak:0.01M | Scene, ViewLayer | Updating Scene BVH | Building BVH +Fra:1 Mem:10.22M (Peak 10.29M) | Time:00:00.01 | Mem:0.00M, Peak:0.00M | Scene, ViewLayer | Updating Procedurals +Fra:1 Mem:10.22M (Peak 10.29M) | Time:00:00.01 | Mem:0.00M, Peak:0.00M | Scene, ViewLayer | Updating Background +Fra:1 Mem:10.22M (Peak 10.29M) | Time:00:00.01 | Mem:0.00M, Peak:0.00M | Scene, ViewLayer | Updating Camera +Fra:1 Mem:10.22M (Peak 10.29M) | Time:00:00.01 | Mem:0.00M, Peak:0.00M | Scene, ViewLayer | Updating Meshes Flags +Fra:1 Mem:10.22M (Peak 10.29M) | Time:00:00.01 | Mem:0.00M, Peak:0.00M | Scene, ViewLayer | Updating Objects +Fra:1 Mem:10.22M (Peak 10.29M) | Time:00:00.01 | Mem:0.00M, Peak:0.00M | Scene, ViewLayer | Updating Objects | Copying Transformations to device +Fra:1 Mem:10.22M (Peak 10.29M) | Time:00:00.01 | Mem:0.00M, Peak:0.00M | Scene, ViewLayer | Updating Objects | Applying Static Transformations +Fra:1 Mem:10.22M (Peak 10.29M) | Time:00:00.01 | Mem:0.00M, Peak:0.00M | Scene, ViewLayer | Updating Particle Systems +Fra:1 Mem:10.22M (Peak 10.29M) | Time:00:00.01 | Mem:0.00M, Peak:0.00M | Scene, ViewLayer | Updating Particle Systems | Copying Particles to device +Fra:1 Mem:10.22M (Peak 10.29M) | Time:00:00.01 | Mem:0.00M, Peak:0.00M | Scene, ViewLayer | Updating Meshes +Fra:1 Mem:10.23M (Peak 10.29M) | Time:00:00.01 | Mem:0.00M, Peak:0.00M | Scene, ViewLayer | Updating Mesh | Computing attributes +Fra:1 Mem:10.24M (Peak 10.29M) | Time:00:00.01 | Mem:0.00M, Peak:0.00M | Scene, ViewLayer | Updating Mesh | Copying Attributes to device +Fra:1 Mem:10.24M (Peak 10.29M) | Time:00:00.01 | Mem:0.01M, Peak:0.01M | Scene, ViewLayer | Updating Scene BVH | Building +Fra:1 Mem:10.24M (Peak 10.29M) | Time:00:00.01 | Mem:0.01M, Peak:0.01M | Scene, ViewLayer | Updating Scene BVH | Building BVH Fra:1 Mem:10.24M (Peak 10.29M) | Time:00:00.01 | Mem:0.04M, Peak:0.04M | Scene, ViewLayer | Updating Scene BVH | Building BVH 0% Fra:1 Mem:10.24M (Peak 10.29M) | Time:00:00.01 | Mem:0.07M, Peak:0.10M | Scene, ViewLayer | Updating Scene BVH | Copying BVH to device Fra:1 Mem:10.24M (Peak 10.29M) | Time:00:00.01 | Mem:0.07M, Peak:0.10M | Scene, ViewLayer | Updating Mesh | Computing normals @@ -80756,262 +38203,262 @@ Fra:1 Mem:10.27M (Peak 10.29M) | Time:00:00.01 | Mem:0.19M, Peak:0.19M | Scene, ViewLayer | Updating Device | Writing constant memory Fra:1 Mem:10.27M (Peak 10.29M) | Time:00:00.01 | Mem:0.19M, Peak:0.19M | Scene, ViewLayer | Loading denoising kernels (may take a few minutes the first time) Fra:1 Mem:10.27M (Peak 10.29M) | Time:00:00.01 | Mem:0.19M, Peak:0.19M | Scene, ViewLayer | Sample 0/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:00.18 | Remaining:11:37.84 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:12.19 | Remaining:10:11.15 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 80/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:12.93 | Remaining:08:58.11 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 96/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:13.67 | Remaining:08:06.04 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 112/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:14.40 | Remaining:07:26.11 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 128/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:15.11 | Remaining:06:54.25 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 144/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:15.79 | Remaining:06:28.11 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 160/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:16.47 | Remaining:06:06.53 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 176/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:17.12 | Remaining:05:47.82 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 192/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:17.75 | Remaining:05:31.59 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 208/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:18.38 | Remaining:05:17.44 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 224/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:18.97 | Remaining:05:04.60 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 240/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:19.57 | Remaining:04:53.34 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 256/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:20.13 | Remaining:04:42.88 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 272/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:20.68 | Remaining:04:33.28 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 288/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:21.24 | Remaining:04:24.82 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 304/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:21.76 | Remaining:04:16.66 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 320/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:22.28 | Remaining:04:09.19 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 336/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:22.77 | Remaining:04:02.08 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 352/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:23.26 | Remaining:03:55.49 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 368/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:23.73 | Remaining:03:49.24 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 384/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:24.19 | Remaining:03:43.41 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 400/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:24.63 | Remaining:03:37.75 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 416/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:25.06 | Remaining:03:32.44 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 432/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:25.50 | Remaining:03:27.55 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 448/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:25.91 | Remaining:03:22.76 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 464/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:26.33 | Remaining:03:18.30 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 480/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:26.73 | Remaining:03:13.93 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 496/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:27.14 | Remaining:03:09.86 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 512/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:27.52 | Remaining:03:05.85 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 528/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:27.89 | Remaining:03:02.06 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 544/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:28.27 | Remaining:02:58.44 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 560/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:28.64 | Remaining:02:54.95 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 576/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:29.00 | Remaining:02:51.57 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 592/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:29.36 | Remaining:02:48.39 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 608/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:29.71 | Remaining:02:45.23 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 624/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:30.04 | Remaining:02:42.15 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 640/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:30.38 | Remaining:02:39.25 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 656/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:30.70 | Remaining:02:36.36 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 672/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:31.01 | Remaining:02:33.56 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 688/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:31.34 | Remaining:02:30.92 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 704/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:31.64 | Remaining:02:28.29 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 720/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:31.93 | Remaining:02:25.73 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 736/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:32.24 | Remaining:02:23.30 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 752/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:32.53 | Remaining:02:20.89 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 768/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:32.81 | Remaining:02:18.54 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 784/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:33.09 | Remaining:02:16.27 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 800/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:33.37 | Remaining:02:14.10 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 816/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:33.64 | Remaining:02:11.94 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 832/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:33.91 | Remaining:02:09.82 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 848/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:34.18 | Remaining:02:07.81 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 864/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:34.43 | Remaining:02:05.79 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 880/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:34.68 | Remaining:02:03.81 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 896/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:34.92 | Remaining:02:01.87 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 912/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:35.17 | Remaining:02:00.03 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 928/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:35.41 | Remaining:01:58.19 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 944/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:35.64 | Remaining:01:56.39 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 960/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:35.87 | Remaining:01:54.64 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 976/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:36.10 | Remaining:01:52.93 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 992/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:36.33 | Remaining:01:51.26 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1008/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:36.55 | Remaining:01:49.63 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1024/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:36.78 | Remaining:01:48.02 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1040/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:36.99 | Remaining:01:46.44 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1056/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:37.22 | Remaining:01:44.94 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1072/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:37.43 | Remaining:01:43.43 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1088/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:37.63 | Remaining:01:41.95 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1104/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:37.83 | Remaining:01:40.49 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1120/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:38.03 | Remaining:01:39.07 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1136/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:38.25 | Remaining:01:37.71 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1152/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:38.44 | Remaining:01:36.33 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1168/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:38.63 | Remaining:01:34.98 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1184/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:38.82 | Remaining:01:33.65 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1200/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:39.00 | Remaining:01:32.34 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1216/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:39.19 | Remaining:01:31.08 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1232/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:39.37 | Remaining:01:29.82 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1248/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:39.55 | Remaining:01:28.59 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1264/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:39.73 | Remaining:01:27.37 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1280/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:39.90 | Remaining:01:26.18 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1296/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:40.07 | Remaining:01:25.01 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1312/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:40.26 | Remaining:01:23.89 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1328/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:40.43 | Remaining:01:22.76 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1344/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:40.60 | Remaining:01:21.65 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1360/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:40.76 | Remaining:01:20.55 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1376/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:40.93 | Remaining:01:19.47 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1392/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:41.09 | Remaining:01:18.41 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1408/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:41.26 | Remaining:01:17.40 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1424/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:41.42 | Remaining:01:16.37 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1440/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:41.57 | Remaining:01:15.36 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1456/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:41.73 | Remaining:01:14.36 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1472/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:41.88 | Remaining:01:13.38 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1488/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:42.03 | Remaining:01:12.41 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1504/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:42.19 | Remaining:01:11.47 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1520/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:42.33 | Remaining:01:10.53 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1536/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:42.48 | Remaining:01:09.61 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1552/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:42.64 | Remaining:01:08.72 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1568/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:42.78 | Remaining:01:07.82 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1584/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:42.92 | Remaining:01:06.93 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1600/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:43.05 | Remaining:01:06.05 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1616/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:43.20 | Remaining:01:05.21 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1632/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:43.33 | Remaining:01:04.35 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1648/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:43.47 | Remaining:01:03.51 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1664/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:43.60 | Remaining:01:02.67 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1680/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:43.72 | Remaining:01:01.85 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1696/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:43.85 | Remaining:01:01.05 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1712/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:43.98 | Remaining:01:00.25 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1728/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:44.11 | Remaining:00:59.47 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1744/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:44.24 | Remaining:00:58.70 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1760/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:44.36 | Remaining:00:57.93 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1776/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:44.48 | Remaining:00:57.17 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1792/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:44.60 | Remaining:00:56.43 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1808/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:44.72 | Remaining:00:55.69 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1824/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:44.84 | Remaining:00:54.96 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1840/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:44.96 | Remaining:00:54.24 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1856/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:45.07 | Remaining:00:53.53 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1872/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:45.20 | Remaining:00:52.84 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1888/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:45.31 | Remaining:00:52.14 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1904/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:45.42 | Remaining:00:51.46 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1920/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:45.53 | Remaining:00:50.78 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1936/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:45.64 | Remaining:00:50.11 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1952/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:45.74 | Remaining:00:49.44 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1968/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:45.85 | Remaining:00:48.79 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1984/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:45.95 | Remaining:00:48.14 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2000/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:46.05 | Remaining:00:47.50 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2016/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:46.17 | Remaining:00:46.88 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2032/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:46.27 | Remaining:00:46.26 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2048/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:46.38 | Remaining:00:45.64 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2064/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:46.48 | Remaining:00:45.03 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2080/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:46.57 | Remaining:00:44.43 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2096/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:46.67 | Remaining:00:43.83 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2112/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:46.77 | Remaining:00:43.24 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2128/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:46.86 | Remaining:00:42.65 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2144/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:46.95 | Remaining:00:42.07 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2160/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:47.05 | Remaining:00:41.50 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2176/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:47.15 | Remaining:00:40.94 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2192/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:47.24 | Remaining:00:40.38 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2208/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:47.33 | Remaining:00:39.83 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2224/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:47.42 | Remaining:00:39.28 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2240/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:47.51 | Remaining:00:38.73 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2256/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:47.60 | Remaining:00:38.20 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2272/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:47.68 | Remaining:00:37.66 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2288/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:47.77 | Remaining:00:37.14 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2304/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:47.85 | Remaining:00:36.62 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2320/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:47.93 | Remaining:00:36.10 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2336/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:48.01 | Remaining:00:35.59 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2352/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:48.10 | Remaining:00:35.08 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2368/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:48.19 | Remaining:00:34.59 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2384/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:48.27 | Remaining:00:34.10 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2400/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:48.35 | Remaining:00:33.61 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2416/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:48.42 | Remaining:00:33.12 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2432/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:48.50 | Remaining:00:32.64 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2448/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:48.58 | Remaining:00:32.16 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2464/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:48.65 | Remaining:00:31.69 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2480/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:48.73 | Remaining:00:31.22 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2496/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:48.80 | Remaining:00:30.76 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2512/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:48.88 | Remaining:00:30.30 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2528/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:48.95 | Remaining:00:29.85 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2544/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:49.03 | Remaining:00:29.40 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2560/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:49.12 | Remaining:00:28.97 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2576/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:49.20 | Remaining:00:28.53 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2592/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:49.27 | Remaining:00:28.10 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2608/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:49.35 | Remaining:00:27.67 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2624/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:49.42 | Remaining:00:27.24 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2640/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:49.49 | Remaining:00:26.82 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2656/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:49.56 | Remaining:00:26.40 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2672/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:49.63 | Remaining:00:25.99 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2688/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:49.71 | Remaining:00:25.58 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2704/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:49.77 | Remaining:00:25.17 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2720/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:49.84 | Remaining:00:24.76 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2736/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:49.91 | Remaining:00:24.36 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2752/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:49.97 | Remaining:00:23.96 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2768/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:50.04 | Remaining:00:23.57 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2784/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:50.10 | Remaining:00:23.18 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2800/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:50.18 | Remaining:00:22.80 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2816/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:50.24 | Remaining:00:22.41 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2832/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:50.30 | Remaining:00:22.03 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2848/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:50.36 | Remaining:00:21.65 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2864/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:50.43 | Remaining:00:21.28 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2880/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:50.49 | Remaining:00:20.91 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2896/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:50.55 | Remaining:00:20.54 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2912/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:50.61 | Remaining:00:20.18 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2928/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:50.66 | Remaining:00:19.82 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2944/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:50.72 | Remaining:00:19.46 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2960/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:50.78 | Remaining:00:19.10 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2976/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:50.84 | Remaining:00:18.75 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2992/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:50.89 | Remaining:00:18.40 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3008/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:50.95 | Remaining:00:18.05 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3024/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:51.00 | Remaining:00:17.71 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3040/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:51.06 | Remaining:00:17.37 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3056/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:51.12 | Remaining:00:17.03 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3072/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:51.17 | Remaining:00:16.70 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3088/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:51.23 | Remaining:00:16.36 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3104/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:51.28 | Remaining:00:16.03 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3120/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:51.33 | Remaining:00:15.70 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3136/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:51.38 | Remaining:00:15.38 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3152/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:51.43 | Remaining:00:15.06 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3168/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:51.48 | Remaining:00:14.74 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3184/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:51.53 | Remaining:00:14.42 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3200/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:51.58 | Remaining:00:14.11 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3216/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:51.63 | Remaining:00:13.79 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3232/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:51.68 | Remaining:00:13.48 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3248/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:51.73 | Remaining:00:13.18 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3264/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:51.77 | Remaining:00:12.87 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3280/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:51.82 | Remaining:00:12.57 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3296/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:51.86 | Remaining:00:12.27 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3312/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:51.91 | Remaining:00:11.97 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3328/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:51.96 | Remaining:00:11.68 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3344/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:52.00 | Remaining:00:11.38 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3360/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:52.05 | Remaining:00:11.09 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3376/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:52.09 | Remaining:00:10.80 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3392/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:52.15 | Remaining:00:10.52 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3408/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:52.20 | Remaining:00:10.24 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3424/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:52.24 | Remaining:00:09.95 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3440/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:52.29 | Remaining:00:09.68 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3456/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:52.33 | Remaining:00:09.40 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3472/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:52.37 | Remaining:00:09.12 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3488/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:52.41 | Remaining:00:08.85 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3504/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:52.46 | Remaining:00:08.58 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3520/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:52.50 | Remaining:00:08.31 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3536/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:52.54 | Remaining:00:08.04 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3552/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:52.58 | Remaining:00:07.77 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3568/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:52.62 | Remaining:00:07.51 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3584/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:52.66 | Remaining:00:07.25 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3600/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:52.71 | Remaining:00:06.99 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3616/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:52.75 | Remaining:00:06.73 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3632/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:52.79 | Remaining:00:06.48 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3648/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:52.83 | Remaining:00:06.22 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3664/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:52.87 | Remaining:00:05.97 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3680/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:52.91 | Remaining:00:05.72 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3696/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:52.95 | Remaining:00:05.47 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3712/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:52.99 | Remaining:00:05.22 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3728/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:53.03 | Remaining:00:04.98 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3744/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:53.07 | Remaining:00:04.74 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3760/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:53.12 | Remaining:00:04.50 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3776/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:53.16 | Remaining:00:04.26 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3792/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:53.20 | Remaining:00:04.02 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3808/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:53.24 | Remaining:00:03.78 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3824/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:53.28 | Remaining:00:03.55 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3840/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:53.32 | Remaining:00:03.31 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3856/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:53.36 | Remaining:00:03.08 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3872/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:53.40 | Remaining:00:02.85 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3888/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:53.44 | Remaining:00:02.62 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3904/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:53.47 | Remaining:00:02.40 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3920/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:53.51 | Remaining:00:02.17 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3936/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:53.55 | Remaining:00:01.95 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3952/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:53.59 | Remaining:00:01.72 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3968/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:53.62 | Remaining:00:01.50 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3984/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:53.66 | Remaining:00:01.28 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 4000/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:53.70 | Remaining:00:01.06 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 4016/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:53.73 | Remaining:00:00.85 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 4032/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:53.77 | Remaining:00:00.63 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 4048/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:53.81 | Remaining:00:00.42 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 4064/4096 -Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:53.84 | Remaining:00:00.21 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 4080/4096 -Fra:1 Mem:118.31M (Peak 166.31M) | Time:01:04.18 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 4096/4096 -Fra:1 Mem:118.31M (Peak 166.31M) | Time:01:04.18 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Finished +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:00.22 | Remaining:14:16.13 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:15.80 | Remaining:13:12.50 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 80/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:16.89 | Remaining:11:43.19 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 96/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:17.84 | Remaining:10:33.97 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 112/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:18.76 | Remaining:09:41.01 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 128/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:19.66 | Remaining:08:59.18 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 144/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:20.64 | Remaining:08:27.28 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 160/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:21.51 | Remaining:07:58.78 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 176/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:22.35 | Remaining:07:34.22 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 192/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:23.15 | Remaining:07:12.44 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 208/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:23.94 | Remaining:06:53.65 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 224/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:24.71 | Remaining:06:36.85 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 240/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:25.47 | Remaining:06:21.81 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 256/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:26.20 | Remaining:06:08.10 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 272/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:27.03 | Remaining:05:57.22 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 288/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:27.82 | Remaining:05:46.86 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 304/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:28.57 | Remaining:05:36.90 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 320/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:29.25 | Remaining:05:27.12 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 336/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:29.94 | Remaining:05:18.32 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 352/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:30.59 | Remaining:05:09.75 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 368/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:31.21 | Remaining:05:01.55 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 384/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:31.81 | Remaining:04:53.74 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 400/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:32.39 | Remaining:04:46.43 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 416/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:32.94 | Remaining:04:39.28 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 432/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:33.51 | Remaining:04:32.72 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 448/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:34.03 | Remaining:04:26.29 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 464/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:34.64 | Remaining:04:20.82 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 480/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:35.22 | Remaining:04:15.53 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 496/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:35.73 | Remaining:04:09.98 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 512/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:36.23 | Remaining:04:04.71 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 528/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:36.71 | Remaining:03:59.62 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 544/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:37.17 | Remaining:03:54.60 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 560/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:37.64 | Remaining:03:49.92 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 576/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:38.09 | Remaining:03:45.35 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 592/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:38.54 | Remaining:03:41.01 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 608/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:38.97 | Remaining:03:36.74 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 624/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:39.40 | Remaining:03:32.69 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 640/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:39.82 | Remaining:03:28.71 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 656/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:40.22 | Remaining:03:24.83 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 672/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:40.64 | Remaining:03:21.22 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 688/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:41.04 | Remaining:03:17.65 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 704/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:41.45 | Remaining:03:14.27 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 720/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:41.83 | Remaining:03:10.89 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 736/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:42.21 | Remaining:03:07.62 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 752/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:42.59 | Remaining:03:04.50 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 768/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:42.96 | Remaining:03:01.41 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 784/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:43.31 | Remaining:02:58.38 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 800/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:43.70 | Remaining:02:55.59 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 816/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:44.08 | Remaining:02:52.88 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 832/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:44.48 | Remaining:02:50.29 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 848/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:44.86 | Remaining:02:47.75 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 864/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:45.38 | Remaining:02:45.77 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 880/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:45.74 | Remaining:02:43.30 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 896/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:46.05 | Remaining:02:40.71 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 912/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:46.37 | Remaining:02:38.23 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 928/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:46.68 | Remaining:02:35.82 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 944/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:46.98 | Remaining:02:33.42 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 960/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:47.27 | Remaining:02:31.07 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 976/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:47.58 | Remaining:02:28.81 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 992/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:47.85 | Remaining:02:26.55 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1008/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:48.13 | Remaining:02:24.35 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1024/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:48.41 | Remaining:02:22.21 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1040/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:48.68 | Remaining:02:20.10 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1056/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:48.95 | Remaining:02:18.04 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1072/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:49.21 | Remaining:02:16.02 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1088/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:49.49 | Remaining:02:14.07 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1104/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:49.74 | Remaining:02:12.12 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1120/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:49.98 | Remaining:02:10.20 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1136/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:50.23 | Remaining:02:08.33 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1152/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:50.49 | Remaining:02:06.53 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1168/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:50.74 | Remaining:02:04.75 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1184/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:50.97 | Remaining:02:02.98 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1200/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:51.21 | Remaining:02:01.24 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1216/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:51.45 | Remaining:01:59.57 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1232/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:51.68 | Remaining:01:57.90 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1248/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:51.91 | Remaining:01:56.26 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1264/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:52.12 | Remaining:01:54.64 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1280/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:52.35 | Remaining:01:53.06 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1296/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:52.57 | Remaining:01:51.51 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1312/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:52.78 | Remaining:01:49.98 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1328/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:53.00 | Remaining:01:48.50 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1344/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:53.24 | Remaining:01:47.06 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1360/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:53.47 | Remaining:01:45.67 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1376/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:53.71 | Remaining:01:44.30 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1392/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:53.94 | Remaining:01:42.95 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1408/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:54.18 | Remaining:01:41.62 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1424/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:54.40 | Remaining:01:40.30 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1440/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:54.60 | Remaining:01:38.96 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1456/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:54.79 | Remaining:01:37.63 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1472/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:54.99 | Remaining:01:36.34 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1488/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:55.17 | Remaining:01:35.05 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1504/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:55.36 | Remaining:01:33.78 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1520/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:55.53 | Remaining:01:32.53 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1536/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:55.72 | Remaining:01:31.31 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1552/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:55.90 | Remaining:01:30.09 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1568/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:56.07 | Remaining:01:28.90 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1584/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:56.25 | Remaining:01:27.72 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1600/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:56.43 | Remaining:01:26.57 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1616/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:56.60 | Remaining:01:25.42 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1632/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:56.76 | Remaining:01:24.28 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1648/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:56.92 | Remaining:01:23.16 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1664/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:57.08 | Remaining:01:22.06 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1680/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:57.24 | Remaining:01:20.97 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1696/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:57.41 | Remaining:01:19.91 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1712/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:57.56 | Remaining:01:18.85 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1728/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:57.71 | Remaining:01:17.80 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1744/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:57.86 | Remaining:01:16.77 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1760/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:58.01 | Remaining:01:15.75 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1776/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:58.16 | Remaining:01:14.75 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1792/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:58.31 | Remaining:01:13.77 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1808/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:58.47 | Remaining:01:12.81 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1824/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:58.61 | Remaining:01:11.84 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1840/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:58.75 | Remaining:01:10.89 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1856/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:58.89 | Remaining:01:09.94 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1872/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:59.03 | Remaining:01:09.01 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1888/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:59.16 | Remaining:01:08.09 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1904/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:59.30 | Remaining:01:07.18 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1920/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:59.43 | Remaining:01:06.29 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1936/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:59.56 | Remaining:01:05.40 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1952/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:59.69 | Remaining:01:04.52 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1968/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:59.82 | Remaining:01:03.66 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 1984/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:00:59.95 | Remaining:01:02.80 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2000/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:00.07 | Remaining:01:01.96 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2016/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:00.19 | Remaining:01:01.12 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2032/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:00.32 | Remaining:01:00.30 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2048/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:00.44 | Remaining:00:59.49 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2064/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:00.56 | Remaining:00:58.68 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2080/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:00.68 | Remaining:00:57.88 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2096/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:00.80 | Remaining:00:57.10 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2112/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:00.92 | Remaining:00:56.32 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2128/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:01.04 | Remaining:00:55.56 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2144/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:01.17 | Remaining:00:54.81 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2160/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:01.29 | Remaining:00:54.06 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2176/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:01.41 | Remaining:00:53.33 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2192/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:01.53 | Remaining:00:52.60 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2208/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:01.65 | Remaining:00:51.87 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2224/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:01.77 | Remaining:00:51.17 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2240/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:01.90 | Remaining:00:50.47 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2256/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:02.01 | Remaining:00:49.77 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2272/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:02.13 | Remaining:00:49.08 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2288/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:02.24 | Remaining:00:48.39 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2304/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:02.36 | Remaining:00:47.72 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2320/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:02.47 | Remaining:00:47.05 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2336/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:02.57 | Remaining:00:46.38 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2352/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:02.68 | Remaining:00:45.73 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2368/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:02.78 | Remaining:00:45.07 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2384/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:02.88 | Remaining:00:44.42 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2400/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:02.97 | Remaining:00:43.77 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2416/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:03.05 | Remaining:00:43.13 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2432/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:03.14 | Remaining:00:42.49 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2448/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:03.24 | Remaining:00:41.87 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2464/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:03.33 | Remaining:00:41.25 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2480/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:03.42 | Remaining:00:40.64 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2496/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:03.51 | Remaining:00:40.04 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2512/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:03.60 | Remaining:00:39.43 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2528/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:03.69 | Remaining:00:38.84 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2544/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:03.77 | Remaining:00:38.25 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2560/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:03.85 | Remaining:00:37.66 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2576/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:03.94 | Remaining:00:37.09 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2592/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:04.02 | Remaining:00:36.51 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2608/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:04.10 | Remaining:00:35.95 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2624/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:04.18 | Remaining:00:35.38 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2640/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:04.27 | Remaining:00:34.83 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2656/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:04.35 | Remaining:00:34.28 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2672/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:04.44 | Remaining:00:33.74 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2688/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:04.53 | Remaining:00:33.21 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2704/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:04.61 | Remaining:00:32.67 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2720/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:04.69 | Remaining:00:32.14 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2736/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:04.77 | Remaining:00:31.62 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2752/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:04.85 | Remaining:00:31.10 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2768/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:04.92 | Remaining:00:30.58 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2784/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:05.00 | Remaining:00:30.07 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2800/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:05.08 | Remaining:00:29.57 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2816/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:05.16 | Remaining:00:29.07 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2832/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:05.23 | Remaining:00:28.57 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2848/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:05.31 | Remaining:00:28.08 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2864/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:05.39 | Remaining:00:27.60 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2880/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:05.46 | Remaining:00:27.11 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2896/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:05.54 | Remaining:00:26.64 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2912/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:05.61 | Remaining:00:26.16 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2928/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:05.68 | Remaining:00:25.69 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2944/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:05.74 | Remaining:00:25.22 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2960/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:05.81 | Remaining:00:24.76 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2976/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:05.88 | Remaining:00:24.30 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 2992/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:05.94 | Remaining:00:23.84 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3008/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:06.01 | Remaining:00:23.39 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3024/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:06.07 | Remaining:00:22.94 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3040/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:06.13 | Remaining:00:22.49 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3056/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:06.19 | Remaining:00:22.05 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3072/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:06.25 | Remaining:00:21.62 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3088/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:06.31 | Remaining:00:21.18 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3104/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:06.38 | Remaining:00:20.76 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3120/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:06.44 | Remaining:00:20.33 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3136/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:06.50 | Remaining:00:19.91 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3152/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:06.56 | Remaining:00:19.49 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3168/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:06.62 | Remaining:00:19.07 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3184/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:06.68 | Remaining:00:18.66 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3200/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:06.73 | Remaining:00:18.25 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3216/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:06.79 | Remaining:00:17.84 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3232/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:06.85 | Remaining:00:17.44 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3248/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:06.90 | Remaining:00:17.04 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3264/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:06.96 | Remaining:00:16.65 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3280/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:07.01 | Remaining:00:16.26 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3296/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:07.06 | Remaining:00:15.87 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3312/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:07.11 | Remaining:00:15.48 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3328/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:07.17 | Remaining:00:15.10 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3344/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:07.22 | Remaining:00:14.72 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3360/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:07.27 | Remaining:00:14.34 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3376/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:07.33 | Remaining:00:13.97 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3392/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:07.38 | Remaining:00:13.59 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3408/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:07.43 | Remaining:00:13.23 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3424/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:07.48 | Remaining:00:12.86 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3440/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:07.53 | Remaining:00:12.50 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3456/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:07.58 | Remaining:00:12.14 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3472/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:07.63 | Remaining:00:11.78 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3488/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:07.68 | Remaining:00:11.43 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3504/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:07.73 | Remaining:00:11.08 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3520/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:07.78 | Remaining:00:10.73 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3536/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:07.82 | Remaining:00:10.38 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3552/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:07.87 | Remaining:00:10.04 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3568/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:07.92 | Remaining:00:09.70 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3584/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:07.97 | Remaining:00:09.36 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3600/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:08.01 | Remaining:00:09.02 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3616/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:08.06 | Remaining:00:08.69 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3632/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:08.10 | Remaining:00:08.36 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3648/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:08.15 | Remaining:00:08.03 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3664/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:08.19 | Remaining:00:07.70 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3680/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:08.24 | Remaining:00:07.38 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3696/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:08.29 | Remaining:00:07.06 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3712/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:08.34 | Remaining:00:06.74 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3728/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:08.38 | Remaining:00:06.42 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3744/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:08.43 | Remaining:00:06.11 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3760/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:08.47 | Remaining:00:05.80 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3776/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:08.51 | Remaining:00:05.49 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3792/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:08.55 | Remaining:00:05.18 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3808/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:08.60 | Remaining:00:04.87 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3824/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:08.65 | Remaining:00:04.57 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3840/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:08.69 | Remaining:00:04.27 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3856/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:08.73 | Remaining:00:03.97 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3872/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:08.78 | Remaining:00:03.67 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3888/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:08.82 | Remaining:00:03.38 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3904/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:08.87 | Remaining:00:03.09 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3920/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:08.91 | Remaining:00:02.80 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3936/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:08.95 | Remaining:00:02.51 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3952/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:08.99 | Remaining:00:02.22 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3968/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:09.03 | Remaining:00:01.94 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 3984/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:09.07 | Remaining:00:01.65 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 4000/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:09.11 | Remaining:00:01.37 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 4016/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:09.16 | Remaining:00:01.09 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 4032/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:09.20 | Remaining:00:00.82 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 4048/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:09.24 | Remaining:00:00.54 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 4064/4096 +Fra:1 Mem:86.31M (Peak 86.31M) | Time:01:09.28 | Remaining:00:00.27 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 4080/4096 +Fra:1 Mem:118.31M (Peak 166.31M) | Time:01:22.26 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Sample 4096/4096 +Fra:1 Mem:118.31M (Peak 166.31M) | Time:01:22.26 | Mem:76.19M, Peak:76.19M | Scene, ViewLayer | Finished Saved: 'C:\spiral_blender.png' -Time: 01:04.59 (Saving: 00:00.39) +Time: 01:22.82 (Saving: 00:00.54) Blender quit @@ -81020,7 +38467,7 @@
bun install v1.1.7 (b0b7db5c) +bun install v1.1.45 (196621f2) -Checked 203 installs across 191 packages (no changes) [197.00ms] -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/apps/spiral/vscode +Checked 203 installs across 191 packages (no changes) [187.00ms] +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/polyglot/apps/spiral/vscode polyglot/scripts/core.ps1/GetFullPath / Path: ./LICENSE / Location: C:\home\git\polyglot\apps\spiral\vscode / ResolvedLocation: C:\home\git\polyglot\apps\spiral\vscode polyglot/scripts/core.ps1/GetFullPath / FullPath: C:\home\git\polyglot\apps\spiral\vscode\LICENSE polyglot/scripts/core.ps1/EnsureSymbolicLink / Parent: C:\home\git\polyglot\apps\spiral\vscode / Path: C:\home\git\polyglot\apps\spiral\vscode\LICENSE -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/apps/spiral/vscode +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/polyglot/apps/spiral/vscode polyglot/scripts/core.ps1/GetFullPath / Path: ../../../LICENSE / Location: C:\home\git\polyglot\apps\spiral\vscode / ResolvedLocation: C:\home\git\polyglot\apps\spiral\vscode polyglot/scripts/core.ps1/GetFullPath / FullPath: C:\home\git\polyglot\LICENSE -polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\ / End: home/git/polyglot/LICENSE +polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\ / End: home/git/polyglot/LICENSE polyglot/scripts/core.ps1/EnsureSymbolicLink / FullPath: C:\home\git\polyglot\apps\spiral\vscode\LICENSE / Target: C:\home\git\polyglot\LICENSE / ResolvedTarget: C:\home\git\polyglot\LICENSE polyglot/scripts/core.ps1/EnsureSymbolicLink / Symlink already exists: C:\home\git\polyglot\apps\spiral\vscode\LICENSE -> C:\home\git\polyglot\LICENSE out\src\extension.js 2.4kb out\media\cellOutputScrollButtons.js 1.9kb -⚡ Done in 8ms - DONE Packaged: out\spiral-vscode-0.0.1.vsix (26 files, 98.15KB) +⚡ Done in 10ms + DONE Packaged: out\spiral-vscode-0.0.1.vsix (26 files, 101.01KB)
bun install v1.1.7 (b0b7db5c) +bun install v1.1.45 (196621f2) - Done! Checked 220 packages (no changes) [187.00ms] +Done! Checked 220 packages (no changes) [156.00ms]
0\n", "\u001B[38;2;38;140;38m│\u001B[0m
0\n", "> \u001B[38;2;38;140;38m│\u001B[0m
0\n", "> \u001B[38;2;38;140;38m│\u001B[0m
Success (JNull, { lines = [|"null"|]
\n",
"> position = { line = 0
column = 4 } \n",
@@ -3141,21 +3128,8 @@
"> })
Ite\n", "> m1 | class=\"dni-code-hint\"> |
IsJString | class=\"dni-plaintext\"> false\n", - "> \u001B[38;2;38;140;38m│\u001B[0m |
IsJNumber | class=\"dni-plaintext\"> false\n", - "> \u001B[38;2;38;140;38m│\u001B[0m |
IsJBool | class=\"dni-plaintext\"> false\n", - "> \u001B[38;2;38;140;38m│\u001B[0m |
IsJNull | class=\"dni-plaintext\"> true\n", - "> \u001B[38;2;38;140;38m│\u001B[0m |
IsJObject | class=\"dni-plaintext\"> false\n", - "> \u001B[38;2;38;140;38m│\u001B[0m |
IsJArray | class=\"dni-plaintext\"> false\n", - "> \u001B[38;2;38;140;38m│\u001B[0m \n", - "> |
{\n",
+ ">
{ \n",
"> lines = [|"null"|]
position = { line = 0
\n",
"> column = 4 } \n",
"> }
line\n",
@@ -3169,11 +3143,8 @@
"> class=\"dni-plaintext\">4\n", "> \u001B[38;2;38;140;38m│\u001B[0m \n", "> |
true\n", - "> \u001B[38;2;38;140;38m│\u001B[0m
false\n", - "> \u001B[38;2;38;140;38m│\u001B[0m
Failure ("null", "Unexpected \n",
"> 'p'", { currentLine = "nulp"
\n",
@@ -3243,11 +3214,8 @@
"> \u001B[38;2;38;140;38m│\u001B[0m column class=\"dni-plaintext\">3\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
- ">
false\n", - "> \u001B[38;2;38;140;38m│\u001B[0m
true\n", - "> \u001B[38;2;38;140;38m│\u001B[0m
Success (JBool true, { lines = \n",
"> [|"true"|]
position = { line = 0
\n",
@@ -3331,18 +3299,6 @@
"> class=\"dni-code-hint\">JBool \n",
"> true
I\n", "> tem | true\n", - "> \u001B[38;2;38;140;38m│\u001B[0m |
IsJString | class=\"dni-plaintext\"> false\n", - "> \u001B[38;2;38;140;38m│\u001B[0m |
IsJNumber | class=\"dni-plaintext\"> false\n", - "> \u001B[38;2;38;140;38m│\u001B[0m |
IsJBool | class=\"dni-plaintext\"> true\n", - "> \u001B[38;2;38;140;38m│\u001B[0m |
IsJNull | class=\"dni-plaintext\"> false\n", - "> \u001B[38;2;38;140;38m│\u001B[0m |
IsJObject | class=\"dni-plaintext\"> false\n", - "> \u001B[38;2;38;140;38m│\u001B[0m |
IsJArray | class=\"dni-plaintext\"> false\n", "> \u001B[38;2;38;140;38m│\u001B[0m \n", "> |
{\n",
@@ -3359,11 +3315,8 @@
"> class=\"dni-plaintext\">4\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
">
true\n", - "> \u001B[38;2;38;140;38m│\u001B[0m
false\n", - "> \u001B[38;2;38;140;38m│\u001B[0m
Success (JBool false, { lines = \n",
"> [|"false"|]
position = { line = 0
\n",
@@ -3422,18 +3375,6 @@
"> class=\"dni-code-hint\">JBool \n",
"> false
\n", "> Item | false\n", - "> \u001B[38;2;38;140;38m│\u001B[0m |
IsJString | class=\"dni-plaintext\"> false\n", - "> \u001B[38;2;38;140;38m│\u001B[0m |
IsJNumber | class=\"dni-plaintext\"> false\n", - "> \u001B[38;2;38;140;38m│\u001B[0m |
IsJBool | class=\"dni-plaintext\"> true\n", - "> \u001B[38;2;38;140;38m│\u001B[0m |
IsJNull | class=\"dni-plaintext\"> false\n", - "> \u001B[38;2;38;140;38m│\u001B[0m |
IsJObject | class=\"dni-plaintext\"> false\n", - "> \u001B[38;2;38;140;38m│\u001B[0m |
IsJArray | class=\"dni-plaintext\"> false\n", "> \u001B[38;2;38;140;38m│\u001B[0m \n", "> |
{\n",
@@ -3450,11 +3391,8 @@
"> class=\"dni-plaintext\">5\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
">
true\n", - "> \u001B[38;2;38;140;38m│\u001B[0m
false\n", - "> \u001B[38;2;38;140;38m│\u001B[0m
Failure ("bool", "Unexpected \n",
"> 't'", { currentLine = "truX"
\n",
@@ -3524,11 +3462,8 @@
"> \u001B[38;2;38;140;38m│\u001B[0m column class=\"dni-plaintext\">0\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
- ">
false\n", - "> \u001B[38;2;38;140;38m│\u001B[0m
true\n", - "> \u001B[38;2;38;140;38m│\u001B[0m
Success ('a', { lines = [|"a"|]
/> position = { line = 0
column\n",
@@ -3605,11 +3540,8 @@
"> class=\"dni-plaintext\">1\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
">
true\n", - "> \u001B[38;2;38;140;38m│\u001B[0m
false\n", - "> \u001B[38;2;38;140;38m│\u001B[0m
Failure ("char", "Unexpected \n",
"> '\\'", { currentLine = "\\"
\n",
@@ -3679,11 +3611,8 @@
"> \u001B[38;2;38;140;38m│\u001B[0m column class=\"dni-plaintext\">0\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
- ">
false\n", - "> \u001B[38;2;38;140;38m│\u001B[0m
true\n", - "> \u001B[38;2;38;140;38m│\u001B[0m
Success ('\\\\', { lines = \n",
"> [|"\\\\"|]
position = { line = 0
\n",
@@ -3774,11 +3703,8 @@
"> class=\"dni-plaintext\">2\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
">
true\n", - "> \u001B[38;2;38;140;38m│\u001B[0m
false\n", - "> \u001B[38;2;38;140;38m│\u001B[0m
Success ('\\009', { lines = \n",
"> [|"\\t"|]
position = { line = 0
\n",
@@ -3848,11 +3774,8 @@
"> class=\"dni-plaintext\">2\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
">
true\n", - "> \u001B[38;2;38;140;38m│\u001B[0m
false\n", - "> \u001B[38;2;38;140;38m│\u001B[0m
Success ('\\\\', { lines = \n",
"> [|"\\\\"|]
position = { line = 0
\n",
@@ -3922,11 +3845,8 @@
"> class=\"dni-plaintext\">2\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
">
true\n", - "> \u001B[38;2;38;140;38m│\u001B[0m
false\n", - "> \u001B[38;2;38;140;38m│\u001B[0m
Success ('\\010', { lines = [|"
/>"|]
position = { line = 0
\n",
@@ -3997,11 +3917,8 @@
"> class=\"dni-plaintext\">2\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
">
true\n", - "> \u001B[38;2;38;140;38m│\u001B[0m
false\n", - "> \u001B[38;2;38;140;38m│\u001B[0m
Failure ("escaped char", "Unexpected \n",
"> 'a'", { currentLine = "a"
\n",
@@ -4071,11 +3988,8 @@
"> \u001B[38;2;38;140;38m│\u001B[0m column class=\"dni-plaintext\">0\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
- ">
false\n", - "> \u001B[38;2;38;140;38m│\u001B[0m
true\n", - "> \u001B[38;2;38;140;38m│\u001B[0m
Success ('☺', { lines = \n",
"> [|"\\u263A"|]
position = { line = 0
\n",
@@ -4164,11 +4078,8 @@
"> class=\"dni-plaintext\">6\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
">
true\n", - "> \u001B[38;2;38;140;38m│\u001B[0m
false\n", - "> \u001B[38;2;38;140;38m│\u001B[0m
Success (JString "", { lines = \n",
"> [|""""|]
position = { line = \n",
@@ -4255,21 +4166,9 @@
"> class=\"dni-code-hint\">JString \n",
"> ""
Item | ""\n", - "> \u001B[38;2;38;140;38m│\u001B[0m |
IsJString | class=\"dni-plaintext\"> true\n", - "> \u001B[38;2;38;140;38m│\u001B[0m |
IsJNumber | class=\"dni-plaintext\"> false\n", - "> \u001B[38;2;38;140;38m│\u001B[0m |
IsJBool | class=\"dni-plaintext\"> false\n", - "> \u001B[38;2;38;140;38m│\u001B[0m |
IsJNull | class=\"dni-plaintext\"> false\n", - "> \u001B[38;2;38;140;38m│\u001B[0m |
IsJObject | class=\"dni-plaintext\"> false\n", - "> \u001B[38;2;38;140;38m│\u001B[0m |
IsJArray | class=\"dni-plaintext\"> false\n", "> \u001B[38;2;38;140;38m│\u001B[0m \n", "> |
{ \n",
+ "> d>{\n",
"> lines = [|""""|]
position = { line = 0
\n",
"> column = 2 } \n",
"> }
line\n",
@@ -4283,11 +4182,8 @@
"> class=\"dni-plaintext\">2\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
">
true\n", - "> \u001B[38;2;38;140;38m│\u001B[0m
false\n", - "> \u001B[38;2;38;140;38m│\u001B[0m
Success (JString "a", { lines = \n",
"> [|""a""|]
position = { line = \n",
@@ -4347,22 +4243,10 @@
"> class=\"dni-code-hint\">JString \n",
"> "a"
Item | "a"\n", - "> \u001B[38;2;38;140;38m│\u001B[0m |
IsJString | class=\"dni-plaintext\"> true\n", - "> \u001B[38;2;38;140;38m│\u001B[0m |
IsJNumber | class=\"dni-plaintext\"> false\n", - "> \u001B[38;2;38;140;38m│\u001B[0m |
IsJBool | class=\"dni-plaintext\"> false\n", - "> \u001B[38;2;38;140;38m│\u001B[0m |
IsJNull | class=\"dni-plaintext\"> false\n", - "> \u001B[38;2;38;140;38m│\u001B[0m |
IsJObject | class=\"dni-plaintext\"> false\n", - "> \u001B[38;2;38;140;38m│\u001B[0m |
IsJArray | class=\"dni-plaintext\"> false\n", "> \u001B[38;2;38;140;38m│\u001B[0m \n", "> |
{ lines = \n",
- "> [|""a""|]
position = { line = 0
\n",
+ "> d>{\n",
+ "> lines = [|""a""|]
position = { line = 0
\n",
"> column = 3 } \n",
"> }
line\n",
"> s [ "a" \n",
@@ -4375,11 +4259,8 @@
"> class=\"dni-plaintext\">3\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
">
true\n", - "> \u001B[38;2;38;140;38m│\u001B[0m
false\n", - "> \u001B[38;2;38;140;38m│\u001B[0m
Success (JString "ab", { lines = \n",
"> [|""ab""|]
position = { line =\n",
@@ -4439,22 +4320,10 @@
"> class=\"dni-code-hint\">JString \n",
"> "ab"
Item | "ab"\n", - "> \u001B[38;2;38;140;38m│\u001B[0m |
IsJString | class=\"dni-plaintext\"> true\n", - "> \u001B[38;2;38;140;38m│\u001B[0m |
IsJNumber | class=\"dni-plaintext\"> false\n", - "> \u001B[38;2;38;140;38m│\u001B[0m |
IsJBool | class=\"dni-plaintext\"> false\n", - "> \u001B[38;2;38;140;38m│\u001B[0m |
IsJNull | class=\"dni-plaintext\"> false\n", - "> \u001B[38;2;38;140;38m│\u001B[0m |
IsJObject | class=\"dni-plaintext\"> false\n", - "> \u001B[38;2;38;140;38m│\u001B[0m |
IsJArray | class=\"dni-plaintext\"> false\n", "> \u001B[38;2;38;140;38m│\u001B[0m \n", "> |
{ lines = \n",
- "> [|""ab""|]
position = { line = 0
\n",
+ "> d>{\n",
+ "> lines = [|""ab""|]
position = { line = 0
\n",
"> column = 4 } \n",
"> }
line\n",
"> s [ "ab" \n",
@@ -4467,11 +4336,8 @@
"> class=\"dni-plaintext\">4\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
">
true\n", - "> \u001B[38;2;38;140;38m│\u001B[0m
false\n", - "> \u001B[38;2;38;140;38m│\u001B[0m
Success (JString "ab\tde", { lines = \n",
"> [|""ab\\tde""|]
position = {\n",
@@ -4531,22 +4397,11 @@
"> class=\"dni-code-hint\">JString "ab\t\n",
"> de"
"ab\tde"\n", - "> \u001B[38;2;38;140;38m│\u001B[0m | |
IsJString | class=\"dni-plaintext\"> true\n", - "> \u001B[38;2;38;140;38m│\u001B[0m |
IsJNumber | class=\"dni-plaintext\"> false\n", - "> \u001B[38;2;38;140;38m│\u001B[0m |
IsJBool | class=\"dni-plaintext\"> false\n", - "> \u001B[38;2;38;140;38m│\u001B[0m |
IsJNull | class=\"dni-plaintext\"> false\n", - "> \u001B[38;2;38;140;38m│\u001B[0m |
IsJObject | class=\"dni-plaintext\"> false\n", - "> \u001B[38;2;38;140;38m│\u001B[0m |
IsJArray | class=\"dni-plaintext\"> false\n", "> \u001B[38;2;38;140;38m│\u001B[0m \n", - "> |
{ lines = [|""ab\\tde""|]
\n",
- "> position = { line = 0
column = 8 } \n",
+ ">
{\n",
+ "> lines = [|""ab\\tde""|]
position = { line = 0
\n",
+ "> column = 8 } \n",
"> }
line\n", "> s | [ "ab\\tde" \n", "> ] |
position | class=\"dni-plaintext\"> 8\n", "> \u001B[38;2;38;140;38m│\u001B[0m \n", "> |
true\n", - "> \u001B[38;2;38;140;38m│\u001B[0m
false\n", - "> \u001B[38;2;38;140;38m│\u001B[0m
Success (JString "ab☺de", { lines = \n",
"> [|""ab\\u263Ade""|]
position\n",
@@ -4622,21 +4474,10 @@
"> class=\"dni-code-hint\">JString \n",
"> "ab☺de"
Item | "ab☺de"\n", - "> \u001B[38;2;38;140;38m│\u001B[0m |
IsJString | class=\"dni-plaintext\"> true\n", - "> \u001B[38;2;38;140;38m│\u001B[0m |
IsJNumber | class=\"dni-plaintext\"> false\n", - "> \u001B[38;2;38;140;38m│\u001B[0m |
IsJBool | class=\"dni-plaintext\"> false\n", - "> \u001B[38;2;38;140;38m│\u001B[0m |
IsJNull | class=\"dni-plaintext\"> false\n", - "> \u001B[38;2;38;140;38m│\u001B[0m |
IsJObject | class=\"dni-plaintext\"> false\n", - "> \u001B[38;2;38;140;38m│\u001B[0m |
IsJArray | class=\"dni-plaintext\"> false\n", "> \u001B[38;2;38;140;38m│\u001B[0m \n", - "> |
\n",
- "> { lines = [|""ab\\u263Ade""|]
position = { line = 0
Item2 d> {\n",
+ "> lines = [|""ab\\u263Ade""|]
position = { line = 0
/> column = 12 } \n",
"> }
line\n",
"> s [ "ab\\u263Ade" \n",
@@ -4649,11 +4490,8 @@
"> class=\"dni-plaintext\">12\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
">
\n",
- "> IsSu\n",
- "> ccess true\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsFailure class=\"dni-plaintext\">false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
\n",
"> \n",
- "> ── [ 46.85ms - stdout ] ────────────────────────────────────────────────────────\n",
+ "> ── [ 48.20ms - stdout ] ────────────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m JString \"ab☺de\"\n",
"> \u001B[38;2;38;140;38m│\u001B[0m JString \"ab☺de\"\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
@@ -4769,7 +4607,7 @@
"> run jNumber \"123\"\n",
"> |> parserEqual (Success (JNumber 123.0))\n",
"> \n",
- "> ── [ 77.56ms - return value ] ──────────────────────────────────────────────────\n",
+ "> ── [ 67.01ms - return value ] ──────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m class=\"dni-code-hint\">Success (JNumber 123.0, { lines = \n",
"> [|"123"|]
position = { line = 0
\n",
@@ -4783,18 +4621,6 @@
"> class=\"dni-code-hint\">JNumber \n",
"> 123.0
\n",
"> Item 123.0\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJString class=\"dni-plaintext\">false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJNumber class=\"dni-plaintext\">true\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJBool class=\"dni-plaintext\">false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJNull class=\"dni-plaintext\">false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJObject class=\"dni-plaintext\">false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJArray class=\"dni-plaintext\">false\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
">
Item2 d> {\n",
@@ -4811,11 +4637,8 @@
"> class=\"dni-plaintext\">3\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
">
\n",
- "> IsSu\n",
- "> ccess true\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsFailure class=\"dni-plaintext\">false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
\n",
"> \n",
- "> ── [ 79.38ms - stdout ] ────────────────────────────────────────────────────────\n",
+ "> ── [ 69.01ms - stdout ] ────────────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m JNumber 123.0\n",
"> \u001B[38;2;38;140;38m│\u001B[0m JNumber 123.0\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
@@ -4860,7 +4683,7 @@
"> run jNumber \"-123\"\n",
"> |> parserEqual (Success (JNumber -123.0))\n",
"> \n",
- "> ── [ 41.35ms - return value ] ──────────────────────────────────────────────────\n",
+ "> ── [ 63.24ms - return value ] ──────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m class=\"dni-code-hint\">Success (JNumber -123.0, { lines = \n",
"> [|"-123"|]
position = { line = 0
\n",
@@ -4874,18 +4697,6 @@
"> class=\"dni-code-hint\">JNumber \n",
"> -123.0
>Item -123.0\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJString class=\"dni-plaintext\">false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJNumber class=\"dni-plaintext\">true\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJBool class=\"dni-plaintext\">false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJNull class=\"dni-plaintext\">false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJObject class=\"dni-plaintext\">false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJArray class=\"dni-plaintext\">false\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
">
Item2 d> {\n",
@@ -4902,11 +4713,8 @@
"> class=\"dni-plaintext\">4\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
">
\n",
- "> IsSu\n",
- "> ccess true\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsFailure class=\"dni-plaintext\">false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
\n",
"> \n",
- "> ── [ 43.06ms - stdout ] ────────────────────────────────────────────────────────\n",
+ "> ── [ 65.58ms - stdout ] ────────────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m JNumber -123.0\n",
"> \u001B[38;2;38;140;38m│\u001B[0m JNumber -123.0\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
@@ -4951,7 +4759,7 @@
"> run jNumber \"123.4\"\n",
"> |> parserEqual (Success (JNumber 123.4))\n",
"> \n",
- "> ── [ 37.45ms - return value ] ──────────────────────────────────────────────────\n",
+ "> ── [ 59.03ms - return value ] ──────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m class=\"dni-code-hint\">Success (JNumber 123.4, { lines = \n",
"> [|"123.4"|]
position = { line = 0
\n",
@@ -4965,18 +4773,6 @@
"> class=\"dni-code-hint\">JNumber \n",
"> 123.4
\n",
"> Item 123.4\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJString class=\"dni-plaintext\">false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJNumber class=\"dni-plaintext\">true\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJBool class=\"dni-plaintext\">false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJNull class=\"dni-plaintext\">false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJObject class=\"dni-plaintext\">false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJArray class=\"dni-plaintext\">false\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
">
Item2 d> {\n",
@@ -4993,11 +4789,8 @@
"> class=\"dni-plaintext\">5\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
">
\n",
- "> IsSu\n",
- "> ccess true\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsFailure class=\"dni-plaintext\">false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
\n",
"> \n",
- "> ── [ 39.16ms - stdout ] ────────────────────────────────────────────────────────\n",
+ "> ── [ 60.83ms - stdout ] ────────────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m JNumber 123.4\n",
"> \u001B[38;2;38;140;38m│\u001B[0m JNumber 123.4\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
@@ -5042,7 +4835,7 @@
"> run jNumber \"-123.\"\n",
"> |> parserEqual (Success (JNumber -123.0))\n",
"> \n",
- "> ── [ 41.67ms - return value ] ──────────────────────────────────────────────────\n",
+ "> ── [ 51.42ms - return value ] ──────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m class=\"dni-code-hint\">Success (JNumber -123.0, { lines = \n",
"> [|"-123."|]
position = { line = 0
class=\"dni-code-hint\">JNumber \n",
"> -123.0
>Item -123.0\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJString class=\"dni-plaintext\">false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJNumber class=\"dni-plaintext\">true\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJBool class=\"dni-plaintext\">false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJNull class=\"dni-plaintext\">false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJObject class=\"dni-plaintext\">false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJArray class=\"dni-plaintext\">false\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
">
Item2 d> {\n",
@@ -5084,11 +4865,8 @@
"> class=\"dni-plaintext\">4\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
">
\n",
- "> IsSu\n",
- "> ccess true\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsFailure class=\"dni-plaintext\">false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
\n",
"> \n",
- "> ── [ 43.55ms - stdout ] ────────────────────────────────────────────────────────\n",
+ "> ── [ 53.41ms - stdout ] ────────────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m JNumber -123.0\n",
"> \u001B[38;2;38;140;38m│\u001B[0m JNumber -123.0\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
@@ -5133,7 +4911,7 @@
"> run jNumber \"00.1\"\n",
"> |> parserEqual (Success (JNumber 0.0))\n",
"> \n",
- "> ── [ 44.04ms - return value ] ──────────────────────────────────────────────────\n",
+ "> ── [ 49.55ms - return value ] ──────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m class=\"dni-code-hint\">Success (JNumber 0.0, { lines = \n",
"> [|"00.1"|]
position = { line = 0
\n",
@@ -5147,18 +4925,6 @@
"> class=\"dni-code-hint\">JNumber \n",
"> 0.0
It\n",
"> em 0.0\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJString class=\"dni-plaintext\">false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJNumber class=\"dni-plaintext\">true\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJBool class=\"dni-plaintext\">false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJNull class=\"dni-plaintext\">false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJObject class=\"dni-plaintext\">false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJArray class=\"dni-plaintext\">false\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
">
Item2 d> {\n",
@@ -5175,11 +4941,8 @@
"> class=\"dni-plaintext\">1\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
">
\n",
- "> IsSu\n",
- "> ccess true\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsFailure class=\"dni-plaintext\">false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
\n",
"> \n",
- "> ── [ 45.98ms - stdout ] ────────────────────────────────────────────────────────\n",
+ "> ── [ 51.53ms - stdout ] ────────────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m JNumber 0.0\n",
"> \u001B[38;2;38;140;38m│\u001B[0m JNumber 0.0\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
@@ -5229,7 +4992,7 @@
"> run jNumber_ \"123\"\n",
"> |> parserEqual (Success (JNumber 123.0))\n",
"> \n",
- "> ── [ 41.55ms - return value ] ──────────────────────────────────────────────────\n",
+ "> ── [ 43.48ms - return value ] ──────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m class=\"dni-code-hint\">Success (JNumber 123.0, { lines = \n",
"> [|"123"|]
position = { line = 1
\n",
@@ -5243,18 +5006,6 @@
"> class=\"dni-code-hint\">JNumber \n",
"> 123.0
\n",
"> Item 123.0\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJString class=\"dni-plaintext\">false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJNumber class=\"dni-plaintext\">true\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJBool class=\"dni-plaintext\">false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJNull class=\"dni-plaintext\">false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJObject class=\"dni-plaintext\">false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJArray class=\"dni-plaintext\">false\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
">
Item2 d> {\n",
@@ -5271,11 +5022,8 @@
"> class=\"dni-plaintext\">0\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
">
\n",
- "> IsSu\n",
- "> ccess true\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsFailure class=\"dni-plaintext\">false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
\n",
"> \n",
- "> ── [ 43.25ms - stdout ] ────────────────────────────────────────────────────────\n",
+ "> ── [ 45.28ms - stdout ] ────────────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m JNumber 123.0\n",
"> \u001B[38;2;38;140;38m│\u001B[0m JNumber 123.0\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
@@ -5320,7 +5068,7 @@
"> run jNumber_ \"-123\"\n",
"> |> parserEqual (Success (JNumber -123.0))\n",
"> \n",
- "> ── [ 39.55ms - return value ] ──────────────────────────────────────────────────\n",
+ "> ── [ 46.68ms - return value ] ──────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m class=\"dni-code-hint\">Success (JNumber -123.0, { lines = \n",
"> [|"-123"|]
position = { line = 1
\n",
@@ -5334,18 +5082,6 @@
"> class=\"dni-code-hint\">JNumber \n",
"> -123.0
>Item -123.0\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJString class=\"dni-plaintext\">false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJNumber class=\"dni-plaintext\">true\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJBool class=\"dni-plaintext\">false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJNull class=\"dni-plaintext\">false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJObject class=\"dni-plaintext\">false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJArray class=\"dni-plaintext\">false\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
">
Item2 d> {\n",
@@ -5362,11 +5098,8 @@
"> class=\"dni-plaintext\">0\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
">
\n",
- "> IsSu\n",
- "> ccess true\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsFailure class=\"dni-plaintext\">false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
\n",
"> \n",
- "> ── [ 43.66ms - stdout ] ────────────────────────────────────────────────────────\n",
+ "> ── [ 48.53ms - stdout ] ────────────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m JNumber -123.0\n",
"> \u001B[38;2;38;140;38m│\u001B[0m JNumber -123.0\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
@@ -5417,7 +5150,7 @@
"> )\n",
"> )\n",
"> \n",
- "> ── [ 34.98ms - return value ] ──────────────────────────────────────────────────\n",
+ "> ── [ 49.01ms - return value ] ──────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m class=\"dni-code-hint\">Failure
("number andThen many1 \n",
"> whitespace", "Unexpected '.'", { currentLine = \n",
@@ -5439,11 +5172,8 @@
"> \u001B[38;2;38;140;38m│\u001B[0m column class=\"dni-plaintext\">4\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
- ">
IsSucces\n",
- "> s false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsFailure class=\"dni-plaintext\">true\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
\n",
"> \n",
- "> ── [ 36.30ms - stdout ] ────────────────────────────────────────────────────────\n",
+ "> ── [ 50.72ms - stdout ] ────────────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m Line:0 Col:4 Error parsing number andThen many1 whitespace\n",
"> \u001B[38;2;38;140;38m│\u001B[0m -123.\n",
"> \u001B[38;2;38;140;38m│\u001B[0m ^Unexpected '.'\n",
@@ -5488,7 +5218,7 @@
"> run jNumber_ \"123.4\"\n",
"> |> parserEqual (Success (JNumber 123.4))\n",
"> \n",
- "> ── [ 44.66ms - return value ] ──────────────────────────────────────────────────\n",
+ "> ── [ 50.96ms - return value ] ──────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m class=\"dni-code-hint\">Success (JNumber 123.4, { lines = \n",
"> [|"123.4"|]
position = { line = 1
\n",
@@ -5502,18 +5232,6 @@
"> class=\"dni-code-hint\">JNumber \n",
"> 123.4
\n",
"> Item 123.4\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJString class=\"dni-plaintext\">false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJNumber class=\"dni-plaintext\">true\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJBool class=\"dni-plaintext\">false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJNull class=\"dni-plaintext\">false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJObject class=\"dni-plaintext\">false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJArray class=\"dni-plaintext\">false\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
">
Item2 d> {\n",
@@ -5530,11 +5248,8 @@
"> class=\"dni-plaintext\">0\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
">
\n",
- "> IsSu\n",
- "> ccess true\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsFailure class=\"dni-plaintext\">false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
\n",
"> \n",
- "> ── [ 46.52ms - stdout ] ────────────────────────────────────────────────────────\n",
+ "> ── [ 52.68ms - stdout ] ────────────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m JNumber 123.4\n",
"> \u001B[38;2;38;140;38m│\u001B[0m JNumber 123.4\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
@@ -5585,7 +5300,7 @@
"> )\n",
"> )\n",
"> \n",
- "> ── [ 39.85ms - return value ] ──────────────────────────────────────────────────\n",
+ "> ── [ 40.93ms - return value ] ──────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m class=\"dni-code-hint\">Failure
("number andThen many1 \n",
"> whitespace", "Unexpected '0'", { currentLine = \n",
@@ -5607,11 +5322,8 @@
"> \u001B[38;2;38;140;38m│\u001B[0m column class=\"dni-plaintext\">1\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
- ">
IsSucces\n",
- "> s false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsFailure class=\"dni-plaintext\">true\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
\n",
"> \n",
- "> ── [ 41.09ms - stdout ] ────────────────────────────────────────────────────────\n",
+ "> ── [ 42.53ms - stdout ] ────────────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m Line:0 Col:1 Error parsing number andThen many1 whitespace\n",
"> \u001B[38;2;38;140;38m│\u001B[0m 00.4\n",
"> \u001B[38;2;38;140;38m│\u001B[0m ^Unexpected '0'\n",
@@ -5656,7 +5368,7 @@
"> run jNumber_ \"123e4\"\n",
"> |> parserEqual (Success (JNumber 1230000.0))\n",
"> \n",
- "> ── [ 38.51ms - return value ] ──────────────────────────────────────────────────\n",
+ "> ── [ 53.84ms - return value ] ──────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m class=\"dni-code-hint\">Success (JNumber 1230000.0, { lines = \n",
"> [|"123e4"|]
position = { line = \n",
@@ -5671,18 +5383,6 @@
"> class=\"dni-code-hint\">JNumber \n",
"> 1230000.0
\n",
"> Item 1230000.0\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJString class=\"dni-plaintext\">false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJNumber class=\"dni-plaintext\">true\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJBool class=\"dni-plaintext\">false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJNull class=\"dni-plaintext\">false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJObject class=\"dni-plaintext\">false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJArray class=\"dni-plaintext\">false\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
">
Item2 d> {\n",
@@ -5699,11 +5399,8 @@
"> class=\"dni-plaintext\">0\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
">
\n",
- "> IsSu\n",
- "> ccess true\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsFailure class=\"dni-plaintext\">false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
\n",
"> \n",
- "> ── [ 40.22ms - stdout ] ────────────────────────────────────────────────────────\n",
+ "> ── [ 55.52ms - stdout ] ────────────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m JNumber 1230000.0\n",
"> \u001B[38;2;38;140;38m│\u001B[0m JNumber 1230000.0\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
@@ -5748,7 +5445,7 @@
"> run jNumber_ \"123.4e5\"\n",
"> |> parserEqual (Success (JNumber 12340000.0))\n",
"> \n",
- "> ── [ 47.59ms - return value ] ──────────────────────────────────────────────────\n",
+ "> ── [ 53.06ms - return value ] ──────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m class=\"dni-code-hint\">Success (JNumber 12340000.0, { lines = \n",
"> [|"123.4e5"|]
position = { line = \n",
@@ -5763,18 +5460,6 @@
"> class=\"dni-code-hint\">JNumber \n",
"> 12340000.0
>Item 12340000.0\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJString class=\"dni-plaintext\">false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJNumber class=\"dni-plaintext\">true\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJBool class=\"dni-plaintext\">false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJNull class=\"dni-plaintext\">false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJObject class=\"dni-plaintext\">false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJArray class=\"dni-plaintext\">false\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
">
Item2 d> {\n",
@@ -5791,11 +5476,8 @@
"> class=\"dni-plaintext\">0\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
">
\n",
- "> IsSu\n",
- "> ccess true\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsFailure class=\"dni-plaintext\">false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
\n",
"> \n",
- "> ── [ 49.52ms - stdout ] ────────────────────────────────────────────────────────\n",
+ "> ── [ 55.02ms - stdout ] ────────────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m JNumber 12340000.0\n",
"> \u001B[38;2;38;140;38m│\u001B[0m JNumber 12340000.0\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
@@ -5840,7 +5522,7 @@
"> run jNumber_ \"123.4e-5\"\n",
"> |> parserEqual (Success (JNumber 0.001234))\n",
"> \n",
- "> ── [ 45.37ms - return value ] ──────────────────────────────────────────────────\n",
+ "> ── [ 46.77ms - return value ] ──────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m class=\"dni-code-hint\">Success (JNumber 0.001234, { lines = \n",
"> [|"123.4e-5"|]
position = { line = \n",
@@ -5855,18 +5537,6 @@
"> class=\"dni-code-hint\">JNumber \n",
"> 0.001234
<\n",
"> td>Item0.001234\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJString class=\"dni-plaintext\">false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJNumber class=\"dni-plaintext\">true\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJBool class=\"dni-plaintext\">false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJNull class=\"dni-plaintext\">false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJObject class=\"dni-plaintext\">false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJArray class=\"dni-plaintext\">false\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
">
Item2 d> {\n",
@@ -5883,11 +5553,8 @@
"> class=\"dni-plaintext\">0\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
">
\n",
- "> IsSu\n",
- "> ccess true\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsFailure class=\"dni-plaintext\">false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
\n",
"> \n",
- "> ── [ 47.16ms - stdout ] ────────────────────────────────────────────────────────\n",
+ "> ── [ 48.44ms - stdout ] ────────────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m JNumber 0.001234\n",
"> \u001B[38;2;38;140;38m│\u001B[0m JNumber 0.001234\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
@@ -5961,7 +5628,7 @@
"> run jArray \"[[ 1, 2 ]]\"\n",
"> |> parserEqual (Success (JArray [[ JNumber 1.0; JNumber 2.0 ]]))\n",
"> \n",
- "> ── [ 91.04ms - return value ] ──────────────────────────────────────────────────\n",
+ "> ── [ 88.16ms - return value ] ──────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m class=\"dni-code-hint\">Success (JArray [JNumber 1.0; JNumber 2.0], { lines \n",
"> = [|"[ 1, 2 ]"|]
\n",
@@ -5981,15 +5648,18 @@
"> class=\"dni-code-hint\">JNumber \n",
"> 1.0
It\n",
"> em 1.0\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJString class=\"dni-plaintext\">false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJNumber class=\"dni-plaintext\">true\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJBool class=\"dni-plaintext\">false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJNull ...ummary> class=\"dni-code-hint\">{ lines = [|"[ 1, 2 ]"|]
position =\n",
- "> { line = 1
column = 0 } \n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m \n",
+ ">
1 d> class=\"dni-code-hint\">JNumber \n",
+ "> 2.0
It\n",
+ "> em 2.0\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m \n",
+ ">
\n",
+ "> Item2 ls class=\"dni-treeview\">{ lines = \n",
+ "> [|"[ 1, 2 ]"|]
position = { line = 1
column\n",
+ "> = 0 } \n",
"> }
line\n",
"> s [ [ 1, 2 ] \n",
"> ]
position class=\"dni-plaintext\">0\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
">
\n",
- "> IsSu\n",
- "> ccess true\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsFailure class=\"dni-plaintext\">false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
\n",
"> \n",
- "> ── [ 92.98ms - stdout ] ────────────────────────────────────────────────────────\n",
+ "> ── [ 90.08ms - stdout ] ────────────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m JArray [JNumber 1.0; JNumber 2.0]\n",
"> \u001B[38;2;38;140;38m│\u001B[0m JArray [JNumber 1.0; JNumber 2.0]\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
@@ -6056,7 +5723,7 @@
"> )\n",
"> )\n",
"> \n",
- "> ── [ 43.55ms - return value ] ──────────────────────────────────────────────────\n",
+ "> ── [ 49.64ms - return value ] ──────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m class=\"dni-code-hint\">Failure ("array", "Unexpected \n",
"> ','", { currentLine = "[ 1, 2, ]"
\n",
@@ -6075,11 +5742,8 @@
"> \u001B[38;2;38;140;38m│\u001B[0m column class=\"dni-plaintext\">6\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
- ">
IsSucces\n",
- "> s false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsFailure class=\"dni-plaintext\">true\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
\n",
"> \n",
- "> ── [ 44.84ms - stdout ] ────────────────────────────────────────────────────────\n",
+ "> ── [ 50.85ms - stdout ] ────────────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m Line:0 Col:6 Error parsing array\n",
"> \u001B[38;2;38;140;38m│\u001B[0m [ 1, 2, ]\n",
"> \u001B[38;2;38;140;38m│\u001B[0m ^Unexpected ','\n",
@@ -6165,7 +5829,7 @@
"> )\n",
"> )\n",
"> \n",
- "> ── [ 95.05ms - return value ] ──────────────────────────────────────────────────\n",
+ "> ── [ 99.96ms - return value ] ──────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m class=\"dni-code-hint\">Success
(JObject (map [("a", \n",
"> JNumber 1.0); ("b", JNumber 2.0)]),
{ lines = [|"{ \n",
@@ -6188,11 +5852,14 @@
"> class=\"dni-treeview\">JNumber \n",
"> 1.0
It\n",
"> em 1.0\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJString class=\"dni-plaintext\">false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsJNumber "b" : 2 }"|]
position = { line = 1
\n",
- "> column = 0 } \n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m \n",
+ ">
class=\"dni-plaintext\">"b"\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m \n",
+ ">
Item2\n",
+ "> class=\"dni-code-hint\">{ lines = [|"{ "a":1, "b" \n",
+ "> : 2 }"|]
position = { line = 1
column = 0 } \n",
"> }
line\n",
"> s [ { "a":1, "b" :\n",
"> 2 } ]
position class=\"dni-plaintext\">0\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
">
\n",
- "> IsSu\n",
- "> ccess true\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsFailure class=\"dni-plaintext\">false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
\n",
"> \n",
- "> ── [ 96.94ms - stdout ] ────────────────────────────────────────────────────────\n",
+ "> ── [ 101.89ms - stdout ] ───────────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m JObject (map [(\"a\", JNumber 1.0); (\"b\", JNumber 2.0)])\n",
"> \u001B[38;2;38;140;38m│\u001B[0m JObject (map [(\"a\", JNumber 1.0); (\"b\", JNumber 2.0)])\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
@@ -6259,7 +5923,7 @@
"> )\n",
"> )\n",
"> \n",
- "> ── [ 45.68ms - return value ] ──────────────────────────────────────────────────\n",
+ "> ── [ 46.62ms - return value ] ──────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m class=\"dni-code-hint\">Failure ("object", "Unexpected \n",
"> ','", { currentLine = "{ "a":1, "b" : 2,\n",
@@ -6281,11 +5945,8 @@
"> \u001B[38;2;38;140;38m│\u001B[0m column class=\"dni-plaintext\">18\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
- ">
IsSucces\n",
- "> s false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsFailure class=\"dni-plaintext\">true\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
\n",
"> \n",
- "> ── [ 47.01ms - stdout ] ────────────────────────────────────────────────────────\n",
+ "> ── [ 47.81ms - stdout ] ────────────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m Line:0 Col:18 Error parsing object\n",
"> \u001B[38;2;38;140;38m│\u001B[0m { \"a\":1, \"b\" : 2, }\n",
"> \u001B[38;2;38;140;38m│\u001B[0m ^Unexpected ','\n",
@@ -6360,7 +6021,7 @@
"> )\n",
"> )\n",
"> \n",
- "> ── [ 157.93ms - return value ] ─────────────────────────────────────────────────\n",
+ "> ── [ 193.79ms - return value ] ─────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m class=\"dni-code-hint\">Success
(JObject
(map
\n",
"> [("bday",
JObject
(map
\n",
@@ -6381,11 +6042,13 @@
"> class=\"dni-code-hint\">JObject
(map
[("bday",
/> JObject
(map
[("day", JNumber \n",
"> 25.0); ("month", JNumber 12.0);
("year", \n",
- "> JNumber 2001.0)])); ("emptyArray", JArra...,, "isMale" :\n",
- "> true,, "bday" : {"year":2001, "month":12, \n",
- "> "day":25 },, "favouriteColors" : ["blue", \n",
- "> "green"],, "emptyArray" : [],, \n",
- "> "emptyObject" : {}, } \n",
+ "> JNumber 2001.0)])); ("emptyArray", JArra...0 } \n",
+ "> ...
li\n",
+ "> nes [ {, "name" : \n",
+ "> "Scott",, "isMale" : true,, "bday" : \n",
+ "> {"year":2001, "month":12, "day":25 },, \n",
+ "> "favouriteColors" : ["blue", "green"],, \n",
+ "> "emptyArray" : [],, "emptyObject" : {}, } \n",
"> ]
position class=\"dni-treeview\">{ line = 8
\n",
"> column = 0 \n",
@@ -6395,11 +6058,8 @@
"> class=\"dni-plaintext\">0\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
">
\n",
- "> IsSu\n",
- "> ccess true\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsFailure class=\"dni-plaintext\">false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
\n",
"> \n",
- "> ── [ 159.63ms - stdout ] ───────────────────────────────────────────────────────\n",
+ "> ── [ 195.80ms - stdout ] ───────────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m JObject\n",
"> \u001B[38;2;38;140;38m│\u001B[0m (map\n",
"> \u001B[38;2;38;140;38m│\u001B[0m [(\"bday\",\n",
@@ -6531,7 +6191,7 @@
"> )\n",
"> )\n",
"> \n",
- "> ── [ 343.79ms - return value ] ─────────────────────────────────────────────────\n",
+ "> ── [ 396.95ms - return value ] ─────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m class=\"dni-code-hint\">Success
(JObject
(map
\n",
"> [("widget",
JObject
(map
\n",
@@ -6552,8 +6212,11 @@
"> class=\"dni-code-hint\">JObject
(map
\n",
"> [("widget",
JObject
(map
\n",
"> [("debug", JString "on");
\n",
- "> ("image",
JObject
(...t;,,\n",
- "> "name": "text1",, "hOffset": 250,,\n",
+ "> ("image",
JObject
\n",
+ "> (...ot;center", },, "text": {, "data": \n",
+ "> "Click Here",, "size": 36,, \n",
+ "> "style": "bold",, "name": \n",
+ "> "text1",, "hOffset": 250,, \n",
"> "vOffset": 100,, "alignment": "center",,\n",
"> "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;",\n",
"> }, }} ]position class=\"dni-plaintext\">0\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
">
\n",
- "> IsSu\n",
- "> ccess true\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsFailure class=\"dni-plaintext\">false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
\n",
"> \n",
- "> ── [ 345.45ms - stdout ] ───────────────────────────────────────────────────────\n",
+ "> ── [ 398.76ms - stdout ] ───────────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m JObject\n",
"> \u001B[38;2;38;140;38m│\u001B[0m (map\n",
"> \u001B[38;2;38;140;38m│\u001B[0m [(\"widget\",\n",
@@ -6754,7 +6414,7 @@
"> )\n",
"> )\n",
"> \n",
- "> ── [ 485.70ms - return value ] ─────────────────────────────────────────────────\n",
+ "> ── [ 556.01ms - return value ] ─────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m class=\"dni-code-hint\">Success
(JObject
(map
\n",
"> [("array",
JArray
[JNumber 1.0; \n",
@@ -6776,11 +6436,14 @@
"> [("array",
JArray [JNumber 1.0; JNumber 2.0; JNumber 3.0; \n",
"> JNumber 4.0; JNumber 5.0]);
("boolean", JBool true); \n",
"> ("emptyArray", JArray []);
("emptyObject", \n",
- "> JObject (map []));
("es...nestedObject": {, \n",
- "> "nestedProperty": "Nested Object Value", }, },, \n",
- "> "nestedObjects": [, {"name": "Alice", \n",
- "> "age": 25},, {"name": "Bob", "age": \n",
- "> 30}, ], } ]position JObject (map []));
("es...ot;: 3.14,, \n",
+ "> "nestedBoolean": false,, "nestedNull": null,, \n",
+ "> "nestedArray": ["a", "b", "c"],, \n",
+ "> "nestedObject": {, "nestedProperty": "Nested \n",
+ "> Object Value", }, },, "nestedObjects": [, \n",
+ "> {"name": "Alice", "age": 25},, \n",
+ "> {"name": "Bob", "age": 30}, ], } \n",
+ "> ] position class=\"dni-treeview\">{ line = 29
/> column = 0 \n",
"> }
line\n",
@@ -6789,11 +6452,8 @@
"> class=\"dni-plaintext\">0\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
">
\n",
- ">
IsSu\n",
- "> ccess true\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
IsFailure class=\"dni-plaintext\">false\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m
\n",
"> \n",
- "> ── [ 488.40ms - stdout ] ───────────────────────────────────────────────────────\n",
+ "> ── [ 557.98ms - stdout ] ───────────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m JObject\n",
"> \u001B[38;2;38;140;38m│\u001B[0m (map\n",
"> \u001B[38;2;38;140;38m│\u001B[0m [(\"array\",\n",
@@ -6867,20 +6527,20 @@
"> \u001B[38;2;38;140;38m│\u001B[0m (\"number\", JNumber 42.0); ...])\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "00:00:22 \u001B[90mv\u001B[39m #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 172460 }\n",
- "00:00:22 \u001B[94md\u001B[39m #4 runtime.execute_with_options / { file_name = jupyter; arguments = [\"nbconvert\", \"c:/home/git/polyglot/apps/parser/JsonParser.dib.ipynb\", \"--to\", \"html\", \"--HTMLExporter.theme=dark\"]; options = { command = jupyter nbconvert \"c:/home/git/polyglot/apps/parser/JsonParser.dib.ipynb\" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }\n",
- "00:00:23 \u001B[90mv\u001B[39m #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/apps/parser/JsonParser.dib.ipynb to html\n",
- "00:00:23 \u001B[90mv\u001B[39m #6 ! C:\\Users\\i574n\\scoop\\apps\\python312\\current\\Lib\\site-packages\\nbformat\\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.\n",
- "00:00:23 \u001B[90mv\u001B[39m #7 ! validate(nb)\n",
- "00:00:24 \u001B[90mv\u001B[39m #8 ! C:\\Users\\i574n\\scoop\\apps\\python312\\current\\Lib\\site-packages\\nbconvert\\filters\\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3\n",
- "00:00:24 \u001B[90mv\u001B[39m #9 ! return _pygments_highlight(\n",
- "00:00:25 \u001B[90mv\u001B[39m #10 ! [NbConvertApp] Writing 534279 bytes to c:\\home\\git\\polyglot\\apps\\parser\\JsonParser.dib.html\n",
- "00:00:25 \u001B[90mv\u001B[39m #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 864 }\n",
- "00:00:25 \u001B[94md\u001B[39m #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 864 }\n",
- "00:00:25 \u001B[94md\u001B[39m #13 runtime.execute_with_options / { file_name = pwsh; arguments = [\"-c\", \"$counter = 1; $path = 'c:/home/git/polyglot/apps/parser/JsonParser.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\\\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path\"]; options = { command = pwsh -c \"$counter = 1; $path = 'c:/home/git/polyglot/apps/parser/JsonParser.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path\"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }\n",
- "00:00:25 \u001B[90mv\u001B[39m #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 }\n",
- "00:00:25 \u001B[94md\u001B[39m #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 }\n",
- "00:00:25 \u001B[94md\u001B[39m #16 spiral.run / dib / { exit_code = 0; result_length = 173383 }\n",
+ "00:00:26 \u001B[90mv\u001B[39m #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 152736 }\n",
+ "00:00:26 \u001B[94md\u001B[39m #4 runtime.execute_with_options / { file_name = jupyter; arguments = [\"nbconvert\", \"c:/home/git/polyglot/apps/parser/JsonParser.dib.ipynb\", \"--to\", \"html\", \"--HTMLExporter.theme=dark\"]; options = { command = jupyter nbconvert \"c:/home/git/polyglot/apps/parser/JsonParser.dib.ipynb\" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }\n",
+ "00:00:27 \u001B[90mv\u001B[39m #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/apps/parser/JsonParser.dib.ipynb to html\n",
+ "00:00:27 \u001B[90mv\u001B[39m #6 ! C:\\Users\\i574n\\scoop\\apps\\python312\\current\\Lib\\site-packages\\nbformat\\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.\n",
+ "00:00:27 \u001B[90mv\u001B[39m #7 ! validate(nb)\n",
+ "00:00:28 \u001B[90mv\u001B[39m #8 ! C:\\Users\\i574n\\scoop\\apps\\python312\\current\\Lib\\site-packages\\nbconvert\\filters\\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3\n",
+ "00:00:28 \u001B[90mv\u001B[39m #9 ! return _pygments_highlight(\n",
+ "00:00:29 \u001B[90mv\u001B[39m #10 ! [NbConvertApp] Writing 501905 bytes to c:\\home\\git\\polyglot\\apps\\parser\\JsonParser.dib.html\n",
+ "00:00:29 \u001B[90mv\u001B[39m #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 864 }\n",
+ "00:00:29 \u001B[94md\u001B[39m #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 864 }\n",
+ "00:00:29 \u001B[94md\u001B[39m #13 runtime.execute_with_options / { file_name = pwsh; arguments = [\"-c\", \"$counter = 1; $path = 'c:/home/git/polyglot/apps/parser/JsonParser.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\\\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path\"]; options = { command = pwsh -c \"$counter = 1; $path = 'c:/home/git/polyglot/apps/parser/JsonParser.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path\"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }\n",
+ "00:00:30 \u001B[90mv\u001B[39m #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 }\n",
+ "00:00:30 \u001B[94md\u001B[39m #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 }\n",
+ "00:00:30 \u001B[94md\u001B[39m #16 spiral.run / dib / { exit_code = 0; result_length = 153659 }\n",
"00:00:00 \u001B[94md\u001B[39m #1 spiral.main / { args = Array(MutCell([\"dib\", \"--path\", \"Parser.dib\"])) }\n",
"00:00:00 \u001B[94md\u001B[39m #2 runtime.execute_with_options / { file_name = dotnet; arguments = [\"repl\", \"--exit-after-run\", \"--run\", \"c:/home/git/polyglot/apps/parser/Parser.dib\", \"--output-path\", \"c:/home/git/polyglot/apps/parser/Parser.dib.ipynb\"]; options = { command = dotnet repl --exit-after-run --run \"c:/home/git/polyglot/apps/parser/Parser.dib\" --output-path \"c:/home/git/polyglot/apps/parser/Parser.dib.ipynb\"; cancellation_token = None; environment_variables = Array(MutCell([(\"TRACE_LEVEL\", \"Verbose\"), (\"AUTOMATION\", \"True\")])); on_line = None; stdin = None; trace = false; working_directory = None } }\n",
"> \n",
@@ -6936,7 +6596,7 @@
"> position = { line = 0; column = 0 }\n",
"> }\n",
"> \n",
- "> ── [ 57.90ms - stdout ] ────────────────────────────────────────────────────────\n",
+ "> ── [ 60.67ms - stdout ] ────────────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m { lines = [||]\n",
"> \u001B[38;2;38;140;38m│\u001B[0m position = { line = 0\n",
"> \u001B[38;2;38;140;38m│\u001B[0m column = 0 } }\n",
@@ -6951,7 +6611,7 @@
"> position = { line = 0; column = 0 }\n",
"> }\n",
"> \n",
- "> ── [ 27.02ms - stdout ] ────────────────────────────────────────────────────────\n",
+ "> ── [ 28.52ms - stdout ] ────────────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m { lines = [|\"Hello \"; \" World\"|]\n",
"> \u001B[38;2;38;140;38m│\u001B[0m position = { line = 0\n",
"> \u001B[38;2;38;140;38m│\u001B[0m column = 0 } }\n",
@@ -6996,7 +6656,7 @@
"> }\n",
"> charOpt |> _assertEqual (Some 'H')\n",
"> \n",
- "> ── [ 45.32ms - stdout ] ────────────────────────────────────────────────────────\n",
+ "> ── [ 51.97ms - stdout ] ────────────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m { lines = [|\"Hello World\"|]\n",
"> \u001B[38;2;38;140;38m│\u001B[0m position = { line = 0\n",
"> \u001B[38;2;38;140;38m│\u001B[0m column = 1 } }\n",
@@ -7016,7 +6676,7 @@
"> }\n",
"> charOpt |> _assertEqual (Some 'H')\n",
"> \n",
- "> ── [ 44.30ms - stdout ] ────────────────────────────────────────────────────────\n",
+ "> ── [ 36.58ms - stdout ] ────────────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m { lines = [|\"Hello\"; \"\"; \"World\"|]\n",
"> \u001B[38;2;38;140;38m│\u001B[0m position = { line = 0\n",
"> \u001B[38;2;38;140;38m│\u001B[0m column = 1 } }\n",
@@ -7131,7 +6791,7 @@
"> )\n",
"> )\n",
"> \n",
- "> ── [ 44.74ms - stdout ] ────────────────────────────────────────────────────────\n",
+ "> ── [ 47.08ms - stdout ] ────────────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m Success ('H', { lines = [|\"Hello\"|]\n",
"> \u001B[38;2;38;140;38m│\u001B[0m position = { line = 0\n",
"> \u001B[38;2;38;140;38m│\u001B[0m column = 1 } })\n",
@@ -7155,7 +6815,7 @@
"> )\n",
"> )\n",
"> \n",
- "> ── [ 40.44ms - stdout ] ────────────────────────────────────────────────────────\n",
+ "> ── [ 42.96ms - stdout ] ────────────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m Failure (\"H\", \"Unexpected 'W'\", { currentLine = \"World\"\n",
"> \u001B[38;2;38;140;38m│\u001B[0m line = 0\n",
"> \u001B[38;2;38;140;38m│\u001B[0m column = 0 })\n",
@@ -7192,7 +6852,7 @@
"> )\n",
"> )\n",
"> \n",
- "> ── [ 55.58ms - stdout ] ────────────────────────────────────────────────────────\n",
+ "> ── [ 59.20ms - stdout ] ────────────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m Success ('e', { lines = [|\"Hello\"|]\n",
"> \u001B[38;2;38;140;38m│\u001B[0m position = { line = 0\n",
"> \u001B[38;2;38;140;38m│\u001B[0m column = 2 } })\n",
@@ -7217,7 +6877,7 @@
"> )\n",
"> )\n",
"> \n",
- "> ── [ 56.08ms - stdout ] ────────────────────────────────────────────────────────\n",
+ "> ── [ 62.97ms - stdout ] ────────────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m Failure (\"e\", \"Unexpected 'o'\", { currentLine = \"World\"\n",
"> \u001B[38;2;38;140;38m│\u001B[0m line = 0\n",
"> \u001B[38;2;38;140;38m│\u001B[0m column = 1 })\n",
@@ -7246,7 +6906,7 @@
"> )\n",
"> )\n",
"> \n",
- "> ── [ 32.17ms - stdout ] ────────────────────────────────────────────────────────\n",
+ "> ── [ 35.70ms - stdout ] ────────────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m Success (\"Hello\", { lines = [|\"Hello\"|]\n",
"> \u001B[38;2;38;140;38m│\u001B[0m position = { line = 0\n",
"> \u001B[38;2;38;140;38m│\u001B[0m column = 0 } })\n",
@@ -7279,7 +6939,7 @@
"> )\n",
"> )\n",
"> \n",
- "> ── [ 46.63ms - stdout ] ────────────────────────────────────────────────────────\n",
+ "> ── [ 49.52ms - stdout ] ────────────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m Success (\"H\", { lines = [|\"Hello\"|]\n",
"> \u001B[38;2;38;140;38m│\u001B[0m position = { line = 0\n",
"> \u001B[38;2;38;140;38m│\u001B[0m column = 1 } })\n",
@@ -7318,7 +6978,7 @@
"> )\n",
"> )\n",
"> \n",
- "> ── [ 78.06ms - stdout ] ────────────────────────────────────────────────────────\n",
+ "> ── [ 74.74ms - stdout ] ────────────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m Success (\"He\", { lines = [|\"Hello\"|]\n",
"> \u001B[38;2;38;140;38m│\u001B[0m position = { line = 0\n",
"> \u001B[38;2;38;140;38m│\u001B[0m column = 2 } })\n",
@@ -7354,7 +7014,7 @@
"> )\n",
"> )\n",
"> \n",
- "> ── [ 53.36ms - stdout ] ────────────────────────────────────────────────────────\n",
+ "> ── [ 60.36ms - stdout ] ────────────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m Success (('H', 'e'), { lines = [|\"Hello\"|]\n",
"> \u001B[38;2;38;140;38m│\u001B[0m position = { line = 0\n",
"> \u001B[38;2;38;140;38m│\u001B[0m column = 2 } })\n",
@@ -7391,7 +7051,7 @@
"> )\n",
"> )\n",
"> \n",
- "> ── [ 51.88ms - stdout ] ────────────────────────────────────────────────────────\n",
+ "> ── [ 54.52ms - stdout ] ────────────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m Success ('h', { lines = [|\"hello\"|]\n",
"> \u001B[38;2;38;140;38m│\u001B[0m position = { line = 0\n",
"> \u001B[38;2;38;140;38m│\u001B[0m column = 1 } })\n",
@@ -7419,7 +7079,7 @@
"> )\n",
"> )\n",
"> \n",
- "> ── [ 49.89ms - stdout ] ────────────────────────────────────────────────────────\n",
+ "> ── [ 56.50ms - stdout ] ────────────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m Success ('h', { lines = [|\"hello\"|]\n",
"> \u001B[38;2;38;140;38m│\u001B[0m position = { line = 0\n",
"> \u001B[38;2;38;140;38m│\u001B[0m column = 1 } })\n",
@@ -7449,7 +7109,7 @@
"> )\n",
"> )\n",
"> \n",
- "> ── [ 60.79ms - stdout ] ────────────────────────────────────────────────────────\n",
+ "> ── [ 64.34ms - stdout ] ────────────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m Success (['H'; 'e'], { lines = [|\"Hello\"|]\n",
"> \u001B[38;2;38;140;38m│\u001B[0m position = { line = 0\n",
"> \u001B[38;2;38;140;38m│\u001B[0m column = 2 } })\n",
@@ -7489,7 +7149,7 @@
"> )\n",
"> )\n",
"> \n",
- "> ── [ 45.79ms - stdout ] ────────────────────────────────────────────────────────\n",
+ "> ── [ 47.82ms - stdout ] ────────────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m Success ([], { lines = [|\"hello\"|]\n",
"> \u001B[38;2;38;140;38m│\u001B[0m position = { line = 0\n",
"> \u001B[38;2;38;140;38m│\u001B[0m column = 0 } })\n",
@@ -7523,7 +7183,7 @@
"> )\n",
"> )\n",
"> \n",
- "> ── [ 63.93ms - stdout ] ────────────────────────────────────────────────────────\n",
+ "> ── [ 69.19ms - stdout ] ────────────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m Failure (\"many1 H\", \"Unexpected 'h'\", { currentLine = \"hello\"\n",
"> \u001B[38;2;38;140;38m│\u001B[0m line = 0\n",
"> \u001B[38;2;38;140;38m│\u001B[0m column = 0 })\n",
@@ -7553,7 +7213,7 @@
"> )\n",
"> )\n",
"> \n",
- "> ── [ 63.14ms - stdout ] ────────────────────────────────────────────────────────\n",
+ "> ── [ 61.32ms - stdout ] ────────────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m Success (None, { lines = [|\"hello\"|]\n",
"> \u001B[38;2;38;140;38m│\u001B[0m position = { line = 0\n",
"> \u001B[38;2;38;140;38m│\u001B[0m column = 0 } })\n",
@@ -7594,7 +7254,7 @@
"> )\n",
"> )\n",
"> \n",
- "> ── [ 143.91ms - stdout ] ───────────────────────────────────────────────────────\n",
+ "> ── [ 158.45ms - stdout ] ───────────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m Success (['H'; 'e'; 'l'; 'l'; 'o'], { lines = [|\"[Hello]\"|]\n",
"> \u001B[38;2;38;140;38m│\u001B[0m position = { line = 0\n",
"> \u001B[38;2;38;140;38m│\u001B[0m column = 7\n",
@@ -7629,7 +7289,7 @@
"> )\n",
"> )\n",
"> \n",
- "> ── [ 104.50ms - stdout ] ───────────────────────────────────────────────────────\n",
+ "> ── [ 107.64ms - stdout ] ───────────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m Success ([['H'; 'e'; 'l'; 'l'; 'o']; ['W'; 'o'; 'r'; 'l'; \n",
"> 'd'; '\\010']], { lines = [|\"Hello,World\"|]\n",
"> \u001B[38;2;38;140;38m│\u001B[0m\n",
@@ -7666,7 +7326,7 @@
"> )\n",
"> )\n",
"> \n",
- "> ── [ 57.50ms - stdout ] ────────────────────────────────────────────────────────\n",
+ "> ── [ 60.79ms - stdout ] ────────────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m Success (['H'; 'e'; 'l'; 'l'; 'o'], { lines = [|\"Hello\"|]\n",
"> \u001B[38;2;38;140;38m│\u001B[0m position = { line = 0\n",
"> \u001B[38;2;38;140;38m│\u001B[0m column = 5\n",
@@ -7703,7 +7363,7 @@
"> )\n",
"> )\n",
"> \n",
- "> ── [ 82.54ms - stdout ] ────────────────────────────────────────────────────────\n",
+ "> ── [ 85.67ms - stdout ] ────────────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m Success (\"Hello\", { lines = [|\"Hello\"|]\n",
"> \u001B[38;2;38;140;38m│\u001B[0m position = { line = 0\n",
"> \u001B[38;2;38;140;38m│\u001B[0m column = 5 } })\n",
@@ -7734,7 +7394,7 @@
"> )\n",
"> )\n",
"> \n",
- "> ── [ 65.04ms - stdout ] ────────────────────────────────────────────────────────\n",
+ "> ── [ 83.14ms - stdout ] ────────────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m Success (\"Hello\", { lines = [|\"Hello\"|]\n",
"> \u001B[38;2;38;140;38m│\u001B[0m position = { line = 0\n",
"> \u001B[38;2;38;140;38m│\u001B[0m column = 5 } })\n",
@@ -7766,7 +7426,7 @@
"> )\n",
"> )\n",
"> \n",
- "> ── [ 67.36ms - stdout ] ────────────────────────────────────────────────────────\n",
+ "> ── [ 84.42ms - stdout ] ────────────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m Success (([' '; ' '], \"Hello\"), { lines = [|\" Hello\"|]\n",
"> \u001B[38;2;38;140;38m│\u001B[0m position = { line = 0\n",
"> \u001B[38;2;38;140;38m│\u001B[0m column = 7 } \n",
@@ -7795,7 +7455,7 @@
"> )\n",
"> )\n",
"> \n",
- "> ── [ 28.34ms - stdout ] ────────────────────────────────────────────────────────\n",
+ "> ── [ 32.43ms - stdout ] ────────────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m Failure (\"digit\", \"Unexpected 'H'\", { currentLine = \"Hello\"\n",
"> \u001B[38;2;38;140;38m│\u001B[0m line = 0\n",
"> \u001B[38;2;38;140;38m│\u001B[0m column = 0 })\n",
@@ -7830,7 +7490,7 @@
"> )\n",
"> )\n",
"> \n",
- "> ── [ 33.26ms - stdout ] ────────────────────────────────────────────────────────\n",
+ "> ── [ 32.51ms - stdout ] ────────────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m Success (-123, { lines = [|\"-123\"|]\n",
"> \u001B[38;2;38;140;38m│\u001B[0m position = { line = 0\n",
"> \u001B[38;2;38;140;38m│\u001B[0m column = 4 } })\n",
@@ -7865,7 +7525,7 @@
"> )\n",
"> )\n",
"> \n",
- "> ── [ 39.17ms - stdout ] ────────────────────────────────────────────────────────\n",
+ "> ── [ 49.21ms - stdout ] ────────────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m Success (-123.45, { lines = [|\"-123.45\"|]\n",
"> \u001B[38;2;38;140;38m│\u001B[0m position = { line = 0\n",
"> \u001B[38;2;38;140;38m│\u001B[0m column = 7 } })\n",
@@ -7891,22 +7551,22 @@
"> let inline (>>%) p x =\n",
"> p\n",
"> |>> fun _ -> x\n",
- "00:00:20 \u001B[90mv\u001B[39m #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 31883 }\n",
- "00:00:20 \u001B[94md\u001B[39m #4 runtime.execute_with_options / { file_name = jupyter; arguments = [\"nbconvert\", \"c:/home/git/polyglot/apps/parser/Parser.dib.ipynb\", \"--to\", \"html\", \"--HTMLExporter.theme=dark\"]; options = { command = jupyter nbconvert \"c:/home/git/polyglot/apps/parser/Parser.dib.ipynb\" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }\n",
- "00:00:21 \u001B[90mv\u001B[39m #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/apps/parser/Parser.dib.ipynb to html\n",
- "00:00:21 \u001B[90mv\u001B[39m #6 ! C:\\Users\\i574n\\scoop\\apps\\python312\\current\\Lib\\site-packages\\nbformat\\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.\n",
- "00:00:21 \u001B[90mv\u001B[39m #7 ! validate(nb)\n",
- "00:00:22 \u001B[90mv\u001B[39m #8 ! C:\\Users\\i574n\\scoop\\apps\\python312\\current\\Lib\\site-packages\\nbconvert\\filters\\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3\n",
- "00:00:22 \u001B[90mv\u001B[39m #9 ! return _pygments_highlight(\n",
- "00:00:23 \u001B[90mv\u001B[39m #10 ! [NbConvertApp] Writing 413747 bytes to c:\\home\\git\\polyglot\\apps\\parser\\Parser.dib.html\n",
- "00:00:23 \u001B[90mv\u001B[39m #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 856 }\n",
- "00:00:23 \u001B[94md\u001B[39m #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 856 }\n",
- "00:00:23 \u001B[94md\u001B[39m #13 runtime.execute_with_options / { file_name = pwsh; arguments = [\"-c\", \"$counter = 1; $path = 'c:/home/git/polyglot/apps/parser/Parser.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\\\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path\"]; options = { command = pwsh -c \"$counter = 1; $path = 'c:/home/git/polyglot/apps/parser/Parser.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path\"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }\n",
- "00:00:23 \u001B[90mv\u001B[39m #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 }\n",
- "00:00:23 \u001B[94md\u001B[39m #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 }\n",
- "00:00:23 \u001B[94md\u001B[39m #16 spiral.run / dib / { exit_code = 0; result_length = 32798 }\n",
- "00:00:00 \u001B[94md\u001B[0m #1 writeDibCode / output: Fs / path: Parser.dib\n",
+ "00:00:22 \u001B[90mv\u001B[39m #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 31883 }\n",
+ "00:00:22 \u001B[94md\u001B[39m #4 runtime.execute_with_options / { file_name = jupyter; arguments = [\"nbconvert\", \"c:/home/git/polyglot/apps/parser/Parser.dib.ipynb\", \"--to\", \"html\", \"--HTMLExporter.theme=dark\"]; options = { command = jupyter nbconvert \"c:/home/git/polyglot/apps/parser/Parser.dib.ipynb\" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }\n",
+ "00:00:24 \u001B[90mv\u001B[39m #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/apps/parser/Parser.dib.ipynb to html\n",
+ "00:00:24 \u001B[90mv\u001B[39m #6 ! C:\\Users\\i574n\\scoop\\apps\\python312\\current\\Lib\\site-packages\\nbformat\\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.\n",
+ "00:00:24 \u001B[90mv\u001B[39m #7 ! validate(nb)\n",
+ "00:00:25 \u001B[90mv\u001B[39m #8 ! C:\\Users\\i574n\\scoop\\apps\\python312\\current\\Lib\\site-packages\\nbconvert\\filters\\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3\n",
+ "00:00:25 \u001B[90mv\u001B[39m #9 ! return _pygments_highlight(\n",
+ "00:00:26 \u001B[90mv\u001B[39m #10 ! [NbConvertApp] Writing 413747 bytes to c:\\home\\git\\polyglot\\apps\\parser\\Parser.dib.html\n",
+ "00:00:26 \u001B[90mv\u001B[39m #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 856 }\n",
+ "00:00:26 \u001B[94md\u001B[39m #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 856 }\n",
+ "00:00:26 \u001B[94md\u001B[39m #13 runtime.execute_with_options / { file_name = pwsh; arguments = [\"-c\", \"$counter = 1; $path = 'c:/home/git/polyglot/apps/parser/Parser.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\\\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path\"]; options = { command = pwsh -c \"$counter = 1; $path = 'c:/home/git/polyglot/apps/parser/Parser.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path\"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }\n",
+ "00:00:26 \u001B[90mv\u001B[39m #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 }\n",
+ "00:00:26 \u001B[94md\u001B[39m #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 }\n",
+ "00:00:26 \u001B[94md\u001B[39m #16 spiral.run / dib / { exit_code = 0; result_length = 32798 }\n",
"00:00:00 \u001B[94md\u001B[0m #1 writeDibCode / output: Fs / path: JsonParser.dib\n",
+ "00:00:00 \u001B[94md\u001B[0m #1 writeDibCode / output: Fs / path: Parser.dib\n",
"00:00:00 \u001B[94md\u001B[0m #2 parseDibCode / output: Fs / file: Parser.dib\n",
"00:00:00 \u001B[94md\u001B[0m #2 parseDibCode / output: Fs / file: JsonParser.dib\n"
]
@@ -8428,7 +8088,7 @@
"> (if spir then $\"{moduleName}_real*-\" else \"\"),\n",
"> if spi then moduleName else \"\"\n",
"> \n",
- "> let libLinkTargetPath = workspaceRoot > \"lib/spiral\"\n",
+ "> let libLinkTargetPath = workspaceRoot > \"../spiral/lib/spiral\"\n",
"> let libLinkPath = packageDir > \"spiral\"\n",
"> \n",
"> let packagesModule =\n",
@@ -8444,7 +8104,7 @@
"> \n",
"> let packageDir' =\n",
"> if input.packages |> Array.isEmpty\n",
- "> then workspaceRoot > \"lib\"\n",
+ "> then workspaceRoot > \"../spiral/lib\"\n",
"> else\n",
"> libLinkPath |> SpiralFileSystem.link_directory libLinkTargetPath\n",
"> packageDir\n",
@@ -8560,154 +8220,39 @@
"> )\n",
"> )\n",
"> \n",
- "> ── [ 5.73s - stdout ] ──────────────────────────────────────────────────────────\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:11 \u001B[90mv\u001B[0m #1 async.run_with_timeout_async / { timeout =\n",
+ "> ── [ 1.05s - stdout ] ──────────────────────────────────────────────────────────\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:13 \u001B[90mv\u001B[0m #1 async.run_with_timeout_async / { timeout =\n",
"> 180 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:09 \u001B[94md\u001B[0m #1 runtime.execute_with_options_async / { \n",
- "> file_name = dotnet; arguments = US5_0\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \"\"C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral \n",
- "> Language 2\\artifacts\\bin\\The Spiral Language 2\\release\\Spiral.dll\" --port 13805 \n",
- "> --default-int i32 --default-float f64\"; options = { command = dotnet \n",
- "> \"C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral Language \n",
- "> 2\\artifacts\\bin\\The Spiral Language 2\\release\\Spiral.dll\" --port 13805 \n",
- "> --default-int i32 --default-float f64; cancellation_token = Some \n",
- "> System.Threading.CancellationToken; environment_variables = [||]; on_line = Some\n",
- "> ; stdin = None; trace = true; working_directory = Some \n",
- "> \"C:\\home\\git\\polyglot\" } }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:09 \u001B[90mv\u001B[0m #2 > 00:00:00 \u001B[94md\u001B[0m #1 pwd: \n",
- "> C:\\home\\git\\polyglot\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:09 \u001B[90mv\u001B[0m #3 > 00:00:00 \u001B[94md\u001B[0m #2 dllPath: \n",
- "> C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral Language \n",
- "> 2\\artifacts\\bin\\The Spiral Language 2\\release\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:09 \u001B[90mv\u001B[0m #4 > 00:00:00 \u001B[94md\u001B[0m #3 targetDir: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:12 \u001B[90mv\u001B[0m #2 async.run_with_timeout_async / { timeout =\n",
- "> 100 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:12 \u001B[90mv\u001B[0m #3 async.run_with_timeout_async / { timeout =\n",
- "> 100 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:09 \u001B[90mv\u001B[0m #5 > Starting the Spiral Server. It is bound \n",
- "> to: http://localhost:13805\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:12 \u001B[90mv\u001B[0m #4 async.run_with_timeout_async / { timeout =\n",
- "> 100 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:06 \u001B[90mv\u001B[0m #1 Supervisor.sendJson / port: 13805 / json: \n",
- "> {\"Ping\":true} / result:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:06 \u001B[90mv\u001B[0m #2 Supervisor.awaitCompiler / Ping / result: \n",
- "> 'Some null' / port: 13805 / retry: 1\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:10 \u001B[90mv\u001B[0m #6 > Server bound to: http://localhost:13805\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:06 \u001B[94md\u001B[0m #3 Supervisor.buildFile / takeWhileInclusive \n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:05 \u001B[94md\u001B[0m #1 Supervisor.buildFile / takeWhileInclusive \n",
"> / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\22ccd04317d5605c65f81c7f777766f\n",
+ "> c:/home/git\\polyglot\\target/spiral_Eval\\packages\\22ccd04317d5605c65f81c7f777766f\n",
"> 357e85dc69f2d6d04b9dc60aebd08a0d6\\main.spi / errors: [] / typeErrorCount: 0 / \n",
"> retry: 0 / outputContent:\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:06 \u001B[94md\u001B[0m #4 Supervisor.buildFile / AsyncSeq.scan / \n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:05 \u001B[94md\u001B[0m #2 Supervisor.buildFile / AsyncSeq.scan / \n",
"> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\22ccd04317d5605c65f81c7f777766f\n",
+ "> c:/home/git\\polyglot\\target/spiral_Eval\\packages\\22ccd04317d5605c65f81c7f777766f\n",
"> 357e85dc69f2d6d04b9dc60aebd08a0d6\\main.spi / errors: [] / outputContentResult: \n",
"> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:06 \u001B[94md\u001B[0m #5 Supervisor.buildFile / takeWhileInclusive \n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:05 \u001B[94md\u001B[0m #3 Supervisor.buildFile / takeWhileInclusive \n",
"> / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\22ccd04317d5605c65f81c7f777766f\n",
+ "> c:/home/git\\polyglot\\target/spiral_Eval\\packages\\22ccd04317d5605c65f81c7f777766f\n",
"> 357e85dc69f2d6d04b9dc60aebd08a0d6\\main.spi / errors: [] / typeErrorCount: 0 / \n",
"> retry: 0 / outputContent:\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:06 \u001B[90mv\u001B[0m #6 Supervisor.sendJson / port: 13805 / json: \n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:05 \u001B[90mv\u001B[0m #4 Supervisor.sendJson / port: 13805 / json: \n",
"> {\"FileOpen\":{\"spiText\":\"inl app () =\\n console.write_line \\u0022text\\u0022\\n\n",
"> 1i32\\n\\ninl main \n",
"> ...et/spiral_Eval/packages/22ccd04317d5605c65f81c7f777766f357e85dc69f2d6d04b9dc6\n",
"> 0aebd08a0d6/main.spi\"}} / result:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:06 \u001B[90mv\u001B[0m #7 Supervisor.sendJson / port: 13805 / json: \n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:05 \u001B[90mv\u001B[0m #5 Supervisor.sendJson / port: 13805 / json: \n",
"> {\"BuildFile\":{\"backend\":\"Fsharp\",\"uri\":\"file:///c:/home/git/polyglot/target/spir\n",
"> al_Eval/packages/22ccd04317d5605c65f81c7f777766f357e85dc69f2d6d04b9dc60aebd08a0d\n",
"> 6/main.spi\"}} / result:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:07 \u001B[94md\u001B[0m #8 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\22ccd04317d5605c65f81c7f777766f\n",
- "> 357e85dc69f2d6d04b9dc60aebd08a0d6\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:07 \u001B[94md\u001B[0m #9 Supervisor.buildFile / takeWhileInclusive \n",
- "> / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\22ccd04317d5605c65f81c7f777766f\n",
- "> 357e85dc69f2d6d04b9dc60aebd08a0d6\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:07 \u001B[94md\u001B[0m #10 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\22ccd04317d5605c65f81c7f777766f\n",
- "> 357e85dc69f2d6d04b9dc60aebd08a0d6\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:07 \u001B[94md\u001B[0m #11 Supervisor.buildFile / takeWhileInclusive\n",
- "> / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\22ccd04317d5605c65f81c7f777766f\n",
- "> 357e85dc69f2d6d04b9dc60aebd08a0d6\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:08 \u001B[94md\u001B[0m #12 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\22ccd04317d5605c65f81c7f777766f\n",
- "> 357e85dc69f2d6d04b9dc60aebd08a0d6\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:08 \u001B[94md\u001B[0m #13 Supervisor.buildFile / takeWhileInclusive\n",
- "> / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\22ccd04317d5605c65f81c7f777766f\n",
- "> 357e85dc69f2d6d04b9dc60aebd08a0d6\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:08 \u001B[94md\u001B[0m #14 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\22ccd04317d5605c65f81c7f777766f\n",
- "> 357e85dc69f2d6d04b9dc60aebd08a0d6\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:08 \u001B[94md\u001B[0m #15 Supervisor.buildFile / takeWhileInclusive\n",
- "> / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\22ccd04317d5605c65f81c7f777766f\n",
- "> 357e85dc69f2d6d04b9dc60aebd08a0d6\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:09 \u001B[94md\u001B[0m #16 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\22ccd04317d5605c65f81c7f777766f\n",
- "> 357e85dc69f2d6d04b9dc60aebd08a0d6\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:09 \u001B[94md\u001B[0m #17 Supervisor.buildFile / takeWhileInclusive\n",
- "> / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\22ccd04317d5605c65f81c7f777766f\n",
- "> 357e85dc69f2d6d04b9dc60aebd08a0d6\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:09 \u001B[94md\u001B[0m #18 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\22ccd04317d5605c65f81c7f777766f\n",
- "> 357e85dc69f2d6d04b9dc60aebd08a0d6\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:09 \u001B[94md\u001B[0m #19 Supervisor.buildFile / takeWhileInclusive\n",
- "> / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\22ccd04317d5605c65f81c7f777766f\n",
- "> 357e85dc69f2d6d04b9dc60aebd08a0d6\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:10 \u001B[94md\u001B[0m #20 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\22ccd04317d5605c65f81c7f777766f\n",
- "> 357e85dc69f2d6d04b9dc60aebd08a0d6\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:10 \u001B[94md\u001B[0m #21 Supervisor.buildFile / takeWhileInclusive\n",
- "> / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\22ccd04317d5605c65f81c7f777766f\n",
- "> 357e85dc69f2d6d04b9dc60aebd08a0d6\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:10 \u001B[94md\u001B[0m #22 Supervisor.buildFile / AsyncSeq.scan / \n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:05 \u001B[94md\u001B[0m #6 Supervisor.buildFile / AsyncSeq.scan / \n",
"> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\22ccd04317d5605c65f81c7f777766f\n",
+ "> c:/home/git\\polyglot\\target/spiral_Eval\\packages\\22ccd04317d5605c65f81c7f777766f\n",
"> 357e85dc69f2d6d04b9dc60aebd08a0d6\\main.spi / errors: [] / outputContentResult: \n",
"> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
"> \u001B[38;2;38;140;38m│\u001B[0m let rec closure1 () () : unit =\n",
@@ -8722,9 +8267,9 @@
"> \u001B[38;2;38;140;38m│\u001B[0m let v0 : (unit -> int32) = closure0()\n",
"> \u001B[38;2;38;140;38m│\u001B[0m ()\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:10 \u001B[94md\u001B[0m #23 Supervisor.buildFile / takeWhileInclusive\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:05 \u001B[94md\u001B[0m #7 Supervisor.buildFile / takeWhileInclusive \n",
"> / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\22ccd04317d5605c65f81c7f777766f\n",
+ "> c:/home/git\\polyglot\\target/spiral_Eval\\packages\\22ccd04317d5605c65f81c7f777766f\n",
"> 357e85dc69f2d6d04b9dc60aebd08a0d6\\main.spi / errors: [] / typeErrorCount: 0 / \n",
"> retry: 0 / outputContent:\n",
"> \u001B[38;2;38;140;38m│\u001B[0m let rec closure1 () () : unit =\n",
@@ -8739,9 +8284,7 @@
"> \u001B[38;2;38;140;38m│\u001B[0m let v0 : (unit -> int32) = closure0()\n",
"> \u001B[38;2;38;140;38m│\u001B[0m ()\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:17 \u001B[90mv\u001B[0m #5 async.run_with_timeout_async / { timeout =\n",
- "> 100 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:10 \u001B[94md\u001B[0m #24 FileSystem.watchWithFilter / Disposing \n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:05 \u001B[94md\u001B[0m #8 FileSystem.watchWithFilter / Disposing \n",
"> watch stream / filter: FileName, LastWrite\n",
"> \u001B[38;2;38;140;38m│\u001B[0m Some\n",
"> \u001B[38;2;38;140;38m│\u001B[0m (Some\n",
@@ -8777,148 +8320,45 @@
"> )\n",
"> )\n",
"> \n",
- "> ── [ 4.64s - stdout ] ──────────────────────────────────────────────────────────\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:17 \u001B[90mv\u001B[0m #6 async.run_with_timeout_async / { timeout =\n",
+ "> ── [ 617.94ms - stdout ] ───────────────────────────────────────────────────────\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:14 \u001B[90mv\u001B[0m #2 async.run_with_timeout_async / { timeout =\n",
"> 180 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:14 \u001B[94md\u001B[0m #7 runtime.execute_with_options_async / { \n",
- "> file_name = dotnet; arguments = US5_0\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \"\"C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral \n",
- "> Language 2\\artifacts\\bin\\The Spiral Language 2\\release\\Spiral.dll\" --port 13805 \n",
- "> --default-int i32 --default-float f64\"; options = { command = dotnet \n",
- "> \"C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral Language \n",
- "> 2\\artifacts\\bin\\The Spiral Language 2\\release\\Spiral.dll\" --port 13805 \n",
- "> --default-int i32 --default-float f64; cancellation_token = Some \n",
- "> System.Threading.CancellationToken; environment_variables = [||]; on_line = Some\n",
- "> ; stdin = None; trace = true; working_directory = Some \n",
- "> \"C:\\home\\git\\polyglot\" } }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:15 \u001B[90mv\u001B[0m #8 > 00:00:00 \u001B[94md\u001B[0m #1 pwd: \n",
- "> C:\\home\\git\\polyglot\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:15 \u001B[90mv\u001B[0m #9 > 00:00:00 \u001B[94md\u001B[0m #2 dllPath: \n",
- "> C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral Language \n",
- "> 2\\artifacts\\bin\\The Spiral Language 2\\release\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:15 \u001B[90mv\u001B[0m #10 > 00:00:00 \u001B[94md\u001B[0m #3 targetDir: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:17 \u001B[90mv\u001B[0m #7 async.run_with_timeout_async / { timeout =\n",
- "> 100 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:18 \u001B[90mv\u001B[0m #8 async.run_with_timeout_async / { timeout =\n",
- "> 100 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:15 \u001B[90mv\u001B[0m #11 > Starting the Spiral Server. It is bound\n",
- "> to: http://localhost:13805\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:18 \u001B[90mv\u001B[0m #9 async.run_with_timeout_async / { timeout =\n",
- "> 100 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:12 \u001B[90mv\u001B[0m #25 Supervisor.sendJson / port: 13805 / json:\n",
- "> {\"Ping\":true} / result:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:12 \u001B[90mv\u001B[0m #26 Supervisor.awaitCompiler / Ping / result:\n",
- "> 'Some null' / port: 13805 / retry: 1\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:15 \u001B[90mv\u001B[0m #12 > Server bound to: http://localhost:13805\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:12 \u001B[94md\u001B[0m #27 Supervisor.buildFile / takeWhileInclusive\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:06 \u001B[94md\u001B[0m #9 Supervisor.buildFile / takeWhileInclusive \n",
"> / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\a65342ccc7da0da967b18d8e705d026\n",
+ "> c:/home/git\\polyglot\\target/spiral_Eval\\packages\\a65342ccc7da0da967b18d8e705d026\n",
"> 0e9a932e5e68c0feb33db55c4d28170aa\\main.spi / errors: [] / typeErrorCount: 0 / \n",
"> retry: 0 / outputContent:\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:12 \u001B[94md\u001B[0m #28 Supervisor.buildFile / AsyncSeq.scan / \n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:06 \u001B[94md\u001B[0m #10 Supervisor.buildFile / AsyncSeq.scan / \n",
"> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\a65342ccc7da0da967b18d8e705d026\n",
+ "> c:/home/git\\polyglot\\target/spiral_Eval\\packages\\a65342ccc7da0da967b18d8e705d026\n",
"> 0e9a932e5e68c0feb33db55c4d28170aa\\main.spi / errors: [] / outputContentResult: \n",
"> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:12 \u001B[94md\u001B[0m #29 Supervisor.buildFile / takeWhileInclusive\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:06 \u001B[94md\u001B[0m #11 Supervisor.buildFile / takeWhileInclusive\n",
"> / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\a65342ccc7da0da967b18d8e705d026\n",
+ "> c:/home/git\\polyglot\\target/spiral_Eval\\packages\\a65342ccc7da0da967b18d8e705d026\n",
"> 0e9a932e5e68c0feb33db55c4d28170aa\\main.spi / errors: [] / typeErrorCount: 0 / \n",
"> retry: 0 / outputContent:\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:12 \u001B[90mv\u001B[0m #30 Supervisor.sendJson / port: 13805 / json:\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:06 \u001B[90mv\u001B[0m #12 Supervisor.sendJson / port: 13805 / json:\n",
"> {\"FileOpen\":{\"spiText\":\"\",\"uri\":\"file:///c:/home/git/polyglot/target/spiral_Eval\n",
"> /packages/a65342ccc7da0da967b18d8e705d0260e9a932e5e68c0feb33db55c4d28170aa/main.\n",
"> spi\"}} / result:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:12 \u001B[90mv\u001B[0m #31 Supervisor.sendJson / port: 13805 / json:\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:06 \u001B[90mv\u001B[0m #13 Supervisor.sendJson / port: 13805 / json:\n",
"> {\"BuildFile\":{\"backend\":\"Fsharp\",\"uri\":\"file:///c:/home/git/polyglot/target/spir\n",
"> al_Eval/packages/a65342ccc7da0da967b18d8e705d0260e9a932e5e68c0feb33db55c4d28170a\n",
"> a/main.spi\"}} / result:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:12 \u001B[94md\u001B[0m #32 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\a65342ccc7da0da967b18d8e705d026\n",
- "> 0e9a932e5e68c0feb33db55c4d28170aa\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:12 \u001B[94md\u001B[0m #33 Supervisor.buildFile / takeWhileInclusive\n",
- "> / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\a65342ccc7da0da967b18d8e705d026\n",
- "> 0e9a932e5e68c0feb33db55c4d28170aa\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:13 \u001B[94md\u001B[0m #34 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\a65342ccc7da0da967b18d8e705d026\n",
- "> 0e9a932e5e68c0feb33db55c4d28170aa\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:13 \u001B[94md\u001B[0m #35 Supervisor.buildFile / takeWhileInclusive\n",
- "> / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\a65342ccc7da0da967b18d8e705d026\n",
- "> 0e9a932e5e68c0feb33db55c4d28170aa\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:13 \u001B[94md\u001B[0m #36 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\a65342ccc7da0da967b18d8e705d026\n",
- "> 0e9a932e5e68c0feb33db55c4d28170aa\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:13 \u001B[94md\u001B[0m #37 Supervisor.buildFile / takeWhileInclusive\n",
- "> / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\a65342ccc7da0da967b18d8e705d026\n",
- "> 0e9a932e5e68c0feb33db55c4d28170aa\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:14 \u001B[94md\u001B[0m #38 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\a65342ccc7da0da967b18d8e705d026\n",
- "> 0e9a932e5e68c0feb33db55c4d28170aa\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:14 \u001B[94md\u001B[0m #39 Supervisor.buildFile / takeWhileInclusive\n",
- "> / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\a65342ccc7da0da967b18d8e705d026\n",
- "> 0e9a932e5e68c0feb33db55c4d28170aa\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:14 \u001B[94md\u001B[0m #40 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\a65342ccc7da0da967b18d8e705d026\n",
- "> 0e9a932e5e68c0feb33db55c4d28170aa\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:14 \u001B[94md\u001B[0m #41 Supervisor.buildFile / takeWhileInclusive\n",
- "> / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\a65342ccc7da0da967b18d8e705d026\n",
- "> 0e9a932e5e68c0feb33db55c4d28170aa\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:15 \u001B[94md\u001B[0m #42 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\a65342ccc7da0da967b18d8e705d026\n",
- "> 0e9a932e5e68c0feb33db55c4d28170aa\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:15 \u001B[94md\u001B[0m #43 Supervisor.buildFile / takeWhileInclusive\n",
- "> / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\a65342ccc7da0da967b18d8e705d026\n",
- "> 0e9a932e5e68c0feb33db55c4d28170aa\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:15 \u001B[94md\u001B[0m #44 Supervisor.buildFile / AsyncSeq.scan / \n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:06 \u001B[94md\u001B[0m #14 Supervisor.buildFile / AsyncSeq.scan / \n",
"> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\a65342ccc7da0da967b18d8e705d026\n",
+ "> c:/home/git\\polyglot\\target/spiral_Eval\\packages\\a65342ccc7da0da967b18d8e705d026\n",
"> 0e9a932e5e68c0feb33db55c4d28170aa\\main.spi / errors: [] / outputContentResult: \n",
"> / typeErrorCount: 0 / retry: 0 / error: Some((Cannot find `main` in file main., \n",
"> FatalError \"Cannot find `main` in file main.\")) / outputContent:\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:15 \u001B[94md\u001B[0m #45 Supervisor.buildFile / takeWhileInclusive\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:06 \u001B[94md\u001B[0m #15 Supervisor.buildFile / takeWhileInclusive\n",
"> / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\a65342ccc7da0da967b18d8e705d026\n",
+ "> c:/home/git\\polyglot\\target/spiral_Eval\\packages\\a65342ccc7da0da967b18d8e705d026\n",
"> 0e9a932e5e68c0feb33db55c4d28170aa\\main.spi / errors: [\n",
"> \u001B[38;2;38;140;38m│\u001B[0m [\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \"Cannot find `main` in file main.\",\n",
@@ -8928,9 +8368,7 @@
"> \u001B[38;2;38;140;38m│\u001B[0m ]\n",
"> \u001B[38;2;38;140;38m│\u001B[0m ] / typeErrorCount: 0 / retry: 0 / outputContent:\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:21 \u001B[90mv\u001B[0m #10 async.run_with_timeout_async / { timeout \n",
- "> = 100 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:15 \u001B[94md\u001B[0m #46 FileSystem.watchWithFilter / Disposing \n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:06 \u001B[94md\u001B[0m #16 FileSystem.watchWithFilter / Disposing \n",
"> watch stream / filter: FileName, LastWrite\n",
"> \u001B[38;2;38;140;38m│\u001B[0m Some (None, [\"Cannot find `main` in file main.\"])\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
@@ -8954,141 +8392,38 @@
"> )\n",
"> )\n",
"> \n",
- "> ── [ 4.39s - stdout ] ──────────────────────────────────────────────────────────\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:22 \u001B[90mv\u001B[0m #11 async.run_with_timeout_async / { timeout \n",
- "> = 180 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:19 \u001B[94md\u001B[0m #13 runtime.execute_with_options_async / { \n",
- "> file_name = dotnet; arguments = US5_0\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \"\"C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral \n",
- "> Language 2\\artifacts\\bin\\The Spiral Language 2\\release\\Spiral.dll\" --port 13805 \n",
- "> --default-int i32 --default-float f64\"; options = { command = dotnet \n",
- "> \"C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral Language \n",
- "> 2\\artifacts\\bin\\The Spiral Language 2\\release\\Spiral.dll\" --port 13805 \n",
- "> --default-int i32 --default-float f64; cancellation_token = Some \n",
- "> System.Threading.CancellationToken; environment_variables = [||]; on_line = Some\n",
- "> ; stdin = None; trace = true; working_directory = Some \n",
- "> \"C:\\home\\git\\polyglot\" } }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:19 \u001B[90mv\u001B[0m #14 > 00:00:00 \u001B[94md\u001B[0m #1 pwd: \n",
- "> C:\\home\\git\\polyglot\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:19 \u001B[90mv\u001B[0m #15 > 00:00:00 \u001B[94md\u001B[0m #2 dllPath: \n",
- "> C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral Language \n",
- "> 2\\artifacts\\bin\\The Spiral Language 2\\release\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:19 \u001B[90mv\u001B[0m #16 > 00:00:00 \u001B[94md\u001B[0m #3 targetDir: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:22 \u001B[90mv\u001B[0m #12 async.run_with_timeout_async / { timeout \n",
- "> = 100 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:22 \u001B[90mv\u001B[0m #13 async.run_with_timeout_async / { timeout \n",
- "> = 100 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:19 \u001B[90mv\u001B[0m #17 > Starting the Spiral Server. It is bound\n",
- "> to: http://localhost:13805\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:22 \u001B[90mv\u001B[0m #14 async.run_with_timeout_async / { timeout \n",
- "> = 100 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:16 \u001B[90mv\u001B[0m #47 Supervisor.sendJson / port: 13805 / json:\n",
- "> {\"Ping\":true} / result:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:16 \u001B[90mv\u001B[0m #48 Supervisor.awaitCompiler / Ping / result:\n",
- "> 'Some null' / port: 13805 / retry: 1\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:20 \u001B[90mv\u001B[0m #18 > Server bound to: http://localhost:13805\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:16 \u001B[94md\u001B[0m #49 Supervisor.buildFile / takeWhileInclusive\n",
+ "> ── [ 705.26ms - stdout ] ───────────────────────────────────────────────────────\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:15 \u001B[90mv\u001B[0m #3 async.run_with_timeout_async / { timeout =\n",
+ "> 180 }\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:06 \u001B[94md\u001B[0m #17 Supervisor.buildFile / takeWhileInclusive\n",
"> / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\fef9812d9b06b75b1ab26589e52c6d6\n",
+ "> c:/home/git\\polyglot\\target/spiral_Eval\\packages\\fef9812d9b06b75b1ab26589e52c6d6\n",
"> ff05910b73ead9e8c4f27f88d2a5cdfb2\\main.spi / errors: [] / typeErrorCount: 0 / \n",
"> retry: 0 / outputContent:\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:16 \u001B[94md\u001B[0m #50 Supervisor.buildFile / AsyncSeq.scan / \n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:06 \u001B[94md\u001B[0m #18 Supervisor.buildFile / AsyncSeq.scan / \n",
"> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\fef9812d9b06b75b1ab26589e52c6d6\n",
+ "> c:/home/git\\polyglot\\target/spiral_Eval\\packages\\fef9812d9b06b75b1ab26589e52c6d6\n",
"> ff05910b73ead9e8c4f27f88d2a5cdfb2\\main.spi / errors: [] / outputContentResult: \n",
"> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:16 \u001B[94md\u001B[0m #51 Supervisor.buildFile / takeWhileInclusive\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:06 \u001B[94md\u001B[0m #19 Supervisor.buildFile / takeWhileInclusive\n",
"> / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\fef9812d9b06b75b1ab26589e52c6d6\n",
+ "> c:/home/git\\polyglot\\target/spiral_Eval\\packages\\fef9812d9b06b75b1ab26589e52c6d6\n",
"> ff05910b73ead9e8c4f27f88d2a5cdfb2\\main.spi / errors: [] / typeErrorCount: 0 / \n",
"> retry: 0 / outputContent:\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:16 \u001B[90mv\u001B[0m #52 Supervisor.sendJson / port: 13805 / json:\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:06 \u001B[90mv\u001B[0m #20 Supervisor.sendJson / port: 13805 / json:\n",
"> {\"FileOpen\":{\"spiText\":\"inl main () =\\n 1i32 / \n",
"> 0i32\\n\",\"uri\":\"file:///c:/home/git/polyglot/target/spiral_Eval/packages/fef9812d\n",
"> 9b06b75b1ab26589e52c6d6ff05910b73ead9e8c4f27f88d2a5cdfb2/main.spi\"}} / result:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:16 \u001B[90mv\u001B[0m #53 Supervisor.sendJson / port: 13805 / json:\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:06 \u001B[90mv\u001B[0m #21 Supervisor.sendJson / port: 13805 / json:\n",
"> {\"BuildFile\":{\"backend\":\"Fsharp\",\"uri\":\"file:///c:/home/git/polyglot/target/spir\n",
"> al_Eval/packages/fef9812d9b06b75b1ab26589e52c6d6ff05910b73ead9e8c4f27f88d2a5cdfb\n",
"> 2/main.spi\"}} / result:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:17 \u001B[94md\u001B[0m #54 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\fef9812d9b06b75b1ab26589e52c6d6\n",
- "> ff05910b73ead9e8c4f27f88d2a5cdfb2\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:17 \u001B[94md\u001B[0m #55 Supervisor.buildFile / takeWhileInclusive\n",
- "> / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\fef9812d9b06b75b1ab26589e52c6d6\n",
- "> ff05910b73ead9e8c4f27f88d2a5cdfb2\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:17 \u001B[94md\u001B[0m #56 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\fef9812d9b06b75b1ab26589e52c6d6\n",
- "> ff05910b73ead9e8c4f27f88d2a5cdfb2\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:17 \u001B[94md\u001B[0m #57 Supervisor.buildFile / takeWhileInclusive\n",
- "> / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\fef9812d9b06b75b1ab26589e52c6d6\n",
- "> ff05910b73ead9e8c4f27f88d2a5cdfb2\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:18 \u001B[94md\u001B[0m #58 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\fef9812d9b06b75b1ab26589e52c6d6\n",
- "> ff05910b73ead9e8c4f27f88d2a5cdfb2\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:18 \u001B[94md\u001B[0m #59 Supervisor.buildFile / takeWhileInclusive\n",
- "> / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\fef9812d9b06b75b1ab26589e52c6d6\n",
- "> ff05910b73ead9e8c4f27f88d2a5cdfb2\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:18 \u001B[94md\u001B[0m #60 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\fef9812d9b06b75b1ab26589e52c6d6\n",
- "> ff05910b73ead9e8c4f27f88d2a5cdfb2\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:18 \u001B[94md\u001B[0m #61 Supervisor.buildFile / takeWhileInclusive\n",
- "> / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\fef9812d9b06b75b1ab26589e52c6d6\n",
- "> ff05910b73ead9e8c4f27f88d2a5cdfb2\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:19 \u001B[94md\u001B[0m #62 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\fef9812d9b06b75b1ab26589e52c6d6\n",
- "> ff05910b73ead9e8c4f27f88d2a5cdfb2\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:19 \u001B[94md\u001B[0m #63 Supervisor.buildFile / takeWhileInclusive\n",
- "> / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\fef9812d9b06b75b1ab26589e52c6d6\n",
- "> ff05910b73ead9e8c4f27f88d2a5cdfb2\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:19 \u001B[94md\u001B[0m #64 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\fef9812d9b06b75b1ab26589e52c6d6\n",
- "> ff05910b73ead9e8c4f27f88d2a5cdfb2\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:19 \u001B[94md\u001B[0m #65 Supervisor.buildFile / takeWhileInclusive\n",
- "> / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\fef9812d9b06b75b1ab26589e52c6d6\n",
- "> ff05910b73ead9e8c4f27f88d2a5cdfb2\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:19 \u001B[94md\u001B[0m #66 Supervisor.buildFile / AsyncSeq.scan / \n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:07 \u001B[94md\u001B[0m #22 Supervisor.buildFile / AsyncSeq.scan / \n",
"> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\fef9812d9b06b75b1ab26589e52c6d6\n",
+ "> c:/home/git\\polyglot\\target/spiral_Eval\\packages\\fef9812d9b06b75b1ab26589e52c6d6\n",
"> ff05910b73ead9e8c4f27f88d2a5cdfb2\\main.spi / errors: [] / outputContentResult: \n",
"> / typeErrorCount: 0 / retry: 0 / error: Some((An attempt to divide by zero has \n",
"> been detected at compile time., TracedError\n",
@@ -9108,9 +8443,9 @@
"> \u001B[38;2;38;140;38m│\u001B[0m ^\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \"] })) / outputContent:\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:19 \u001B[94md\u001B[0m #67 Supervisor.buildFile / takeWhileInclusive\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:07 \u001B[94md\u001B[0m #23 Supervisor.buildFile / takeWhileInclusive\n",
"> / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\fef9812d9b06b75b1ab26589e52c6d6\n",
+ "> c:/home/git\\polyglot\\target/spiral_Eval\\packages\\fef9812d9b06b75b1ab26589e52c6d6\n",
"> ff05910b73ead9e8c4f27f88d2a5cdfb2\\main.spi / errors: [\n",
"> \u001B[38;2;38;140;38m│\u001B[0m [\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \"An attempt to divide by zero has been detected at \n",
@@ -9138,9 +8473,7 @@
"> \u001B[38;2;38;140;38m│\u001B[0m ]\n",
"> \u001B[38;2;38;140;38m│\u001B[0m ] / typeErrorCount: 0 / retry: 0 / outputContent:\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:26 \u001B[90mv\u001B[0m #15 async.run_with_timeout_async / { timeout \n",
- "> = 100 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:19 \u001B[94md\u001B[0m #68 FileSystem.watchWithFilter / Disposing \n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:07 \u001B[94md\u001B[0m #24 FileSystem.watchWithFilter / Disposing \n",
"> watch stream / filter: FileName, LastWrite\n",
"> \u001B[38;2;38;140;38m│\u001B[0m Some (None, [\"An attempt to divide by zero has been detected \n",
"> at compile time.\"])\n",
@@ -9170,249 +8503,59 @@
"> )\n",
"> )\n",
"> \n",
- "> ── [ 4.16s - stdout ] ──────────────────────────────────────────────────────────\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:26 \u001B[90mv\u001B[0m #16 async.run_with_timeout_async / { timeout \n",
- "> = 180 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:23 \u001B[94md\u001B[0m #19 runtime.execute_with_options_async / { \n",
- "> file_name = dotnet; arguments = US5_0\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \"\"C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral \n",
- "> Language 2\\artifacts\\bin\\The Spiral Language 2\\release\\Spiral.dll\" --port 13805 \n",
- "> --default-int i32 --default-float f64\"; options = { command = dotnet \n",
- "> \"C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral Language \n",
- "> 2\\artifacts\\bin\\The Spiral Language 2\\release\\Spiral.dll\" --port 13805 \n",
- "> --default-int i32 --default-float f64; cancellation_token = Some \n",
- "> System.Threading.CancellationToken; environment_variables = [||]; on_line = Some\n",
- "> ; stdin = None; trace = true; working_directory = Some \n",
- "> \"C:\\home\\git\\polyglot\" } }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:24 \u001B[90mv\u001B[0m #20 > 00:00:00 \u001B[94md\u001B[0m #1 pwd: \n",
- "> C:\\home\\git\\polyglot\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:24 \u001B[90mv\u001B[0m #21 > 00:00:00 \u001B[94md\u001B[0m #2 dllPath: \n",
- "> C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral Language \n",
- "> 2\\artifacts\\bin\\The Spiral Language 2\\release\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:24 \u001B[90mv\u001B[0m #22 > 00:00:00 \u001B[94md\u001B[0m #3 targetDir: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:26 \u001B[90mv\u001B[0m #17 async.run_with_timeout_async / { timeout \n",
- "> = 100 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:27 \u001B[90mv\u001B[0m #18 async.run_with_timeout_async / { timeout \n",
- "> = 100 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:24 \u001B[90mv\u001B[0m #23 > Starting the Spiral Server. It is bound\n",
- "> to: http://localhost:13805\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:27 \u001B[90mv\u001B[0m #19 async.run_with_timeout_async / { timeout \n",
- "> = 100 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:21 \u001B[90mv\u001B[0m #69 Supervisor.sendJson / port: 13805 / json:\n",
- "> {\"Ping\":true} / result:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:21 \u001B[90mv\u001B[0m #70 Supervisor.awaitCompiler / Ping / result:\n",
- "> 'Some null' / port: 13805 / retry: 1\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:24 \u001B[90mv\u001B[0m #24 > Server bound to: http://localhost:13805\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:21 \u001B[94md\u001B[0m #71 Supervisor.buildFile / takeWhileInclusive\n",
+ "> ── [ 425.16ms - stdout ] ───────────────────────────────────────────────────────\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:15 \u001B[90mv\u001B[0m #4 async.run_with_timeout_async / { timeout =\n",
+ "> 180 }\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:07 \u001B[94md\u001B[0m #25 Supervisor.buildFile / takeWhileInclusive\n",
"> / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\c030f84f8e553befcbdd9aabeace676\n",
+ "> c:/home/git\\polyglot\\target/spiral_Eval\\packages\\c030f84f8e553befcbdd9aabeace676\n",
"> 85221d91a46e3655199e42df713504aa0\\main.spi / errors: [] / typeErrorCount: 0 / \n",
"> retry: 0 / outputContent:\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:21 \u001B[94md\u001B[0m #72 Supervisor.buildFile / AsyncSeq.scan / \n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:07 \u001B[94md\u001B[0m #26 Supervisor.buildFile / AsyncSeq.scan / \n",
"> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\c030f84f8e553befcbdd9aabeace676\n",
+ "> c:/home/git\\polyglot\\target/spiral_Eval\\packages\\c030f84f8e553befcbdd9aabeace676\n",
"> 85221d91a46e3655199e42df713504aa0\\main.spi / errors: [] / outputContentResult: \n",
"> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:21 \u001B[94md\u001B[0m #73 Supervisor.buildFile / takeWhileInclusive\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:07 \u001B[94md\u001B[0m #27 Supervisor.buildFile / takeWhileInclusive\n",
"> / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\c030f84f8e553befcbdd9aabeace676\n",
+ "> c:/home/git\\polyglot\\target/spiral_Eval\\packages\\c030f84f8e553befcbdd9aabeace676\n",
"> 85221d91a46e3655199e42df713504aa0\\main.spi / errors: [] / typeErrorCount: 0 / \n",
"> retry: 0 / outputContent:\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:21 \u001B[90mv\u001B[0m #74 Supervisor.sendJson / port: 13805 / json:\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:07 \u001B[90mv\u001B[0m #28 Supervisor.sendJson / port: 13805 / json:\n",
"> {\"FileOpen\":{\"spiText\":\"inl main () =\\n 1 \\u002B \n",
"> \\u0022\\u0022\\n\",\"uri\":\"file:///c:/home/git/polyg...et/spiral_Eval/packages/c030f\n",
"> 84f8e553befcbdd9aabeace67685221d91a46e3655199e42df713504aa0/main.spi\"}} / \n",
"> result:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:21 \u001B[90mv\u001B[0m #75 Supervisor.sendJson / port: 13805 / json:\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:07 \u001B[90mv\u001B[0m #29 Supervisor.sendJson / port: 13805 / json:\n",
"> {\"BuildFile\":{\"backend\":\"Fsharp\",\"uri\":\"file:///c:/home/git/polyglot/target/spir\n",
"> al_Eval/packages/c030f84f8e553befcbdd9aabeace67685221d91a46e3655199e42df713504aa\n",
"> 0/main.spi\"}} / result:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:21 \u001B[94md\u001B[0m #76 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\c030f84f8e553befcbdd9aabeace676\n",
- "> 85221d91a46e3655199e42df713504aa0\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:21 \u001B[94md\u001B[0m #77 Supervisor.buildFile / takeWhileInclusive\n",
- "> / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\c030f84f8e553befcbdd9aabeace676\n",
- "> 85221d91a46e3655199e42df713504aa0\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:22 \u001B[94md\u001B[0m #78 Supervisor.buildFile / AsyncSeq.scan / \n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:07 \u001B[94md\u001B[0m #30 Supervisor.buildFile / AsyncSeq.scan / \n",
"> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\c030f84f8e553befcbdd9aabeace676\n",
+ "> c:/home/git\\polyglot\\target/spiral_Eval\\packages\\c030f84f8e553befcbdd9aabeace676\n",
"> 85221d91a46e3655199e42df713504aa0\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
+ "> / typeErrorCount: 0 / retry: 0 / error: Some((main.spi:\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m Constraint satisfaction error.\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m Got: string\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m Fails to satisfy: number, TypeErrors\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m { errors =\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m [(({ character = 8\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m line = 1 }, { character = 10\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m line = 1 }),\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m \"Constraint satisfaction error.\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m Got: string\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m Fails to satisfy: number\")]\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m uri =\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m \n",
+ "> \"file:///c:/home/git/polyglot/target/spiral_Eval/packages/c030f84f8e553befcbdd9a\n",
+ "> abeace67685221d91a46e3655199e42df713504aa0/main.spi\" })) / outputContent:\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:22 \u001B[94md\u001B[0m #79 Supervisor.buildFile / takeWhileInclusive\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:07 \u001B[94md\u001B[0m #31 Supervisor.buildFile / takeWhileInclusive\n",
"> / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\c030f84f8e553befcbdd9aabeace676\n",
- "> 85221d91a46e3655199e42df713504aa0\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:22 \u001B[94md\u001B[0m #80 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\c030f84f8e553befcbdd9aabeace676\n",
- "> 85221d91a46e3655199e42df713504aa0\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:22 \u001B[94md\u001B[0m #81 Supervisor.buildFile / takeWhileInclusive\n",
- "> / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\c030f84f8e553befcbdd9aabeace676\n",
- "> 85221d91a46e3655199e42df713504aa0\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:23 \u001B[94md\u001B[0m #82 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\c030f84f8e553befcbdd9aabeace676\n",
- "> 85221d91a46e3655199e42df713504aa0\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:23 \u001B[94md\u001B[0m #83 Supervisor.buildFile / takeWhileInclusive\n",
- "> / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\c030f84f8e553befcbdd9aabeace676\n",
- "> 85221d91a46e3655199e42df713504aa0\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:23 \u001B[94md\u001B[0m #84 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\c030f84f8e553befcbdd9aabeace676\n",
- "> 85221d91a46e3655199e42df713504aa0\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:23 \u001B[94md\u001B[0m #85 Supervisor.buildFile / takeWhileInclusive\n",
- "> / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\c030f84f8e553befcbdd9aabeace676\n",
- "> 85221d91a46e3655199e42df713504aa0\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:23 \u001B[94md\u001B[0m #86 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\c030f84f8e553befcbdd9aabeace676\n",
- "> 85221d91a46e3655199e42df713504aa0\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: Some((File main has a type error \n",
- "> somewhere in its path., FatalError \"File main has a type error somewhere in its \n",
- "> path.\")) / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:23 \u001B[94md\u001B[0m #87 Supervisor.buildFile / takeWhileInclusive\n",
- "> / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\c030f84f8e553befcbdd9aabeace676\n",
- "> 85221d91a46e3655199e42df713504aa0\\main.spi / errors: [] / typeErrorCount: 1 / \n",
- "> retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:23 \u001B[94md\u001B[0m #88 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\c030f84f8e553befcbdd9aabeace676\n",
- "> 85221d91a46e3655199e42df713504aa0\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 1 / retry: 0 / error: Some((main.spi:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m Constraint satisfaction error.\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m Got: string\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m Fails to satisfy: number, TypeErrors\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m { errors =\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m [(({ character = 8\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m line = 1 }, { character = 10\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m line = 1 }),\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \"Constraint satisfaction error.\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m Got: string\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m Fails to satisfy: number\")]\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m uri =\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \"file:///c:/home/git/polyglot/target/spiral_Eval/packages/c030f84f8e553befcbdd9a\n",
- "> abeace67685221d91a46e3655199e42df713504aa0/main.spi\" })) / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:23 \u001B[94md\u001B[0m #89 Supervisor.buildFile / takeWhileInclusive\n",
- "> / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\c030f84f8e553befcbdd9aabeace676\n",
- "> 85221d91a46e3655199e42df713504aa0\\main.spi / errors: [\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m [\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \"main.spi:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m Constraint satisfaction error.\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m Got: string\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m Fails to satisfy: number\",\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m {\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \"TypeErrors\": {\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \"errors\": [\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m [\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m [\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m {\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \"character\": 8,\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \"line\": 1\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m },\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m {\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \"character\": 10,\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \"line\": 1\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m ],\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \"Constraint satisfaction error.\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m Got: string\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m Fails to satisfy: number\"\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m ]\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m ],\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \"uri\": \n",
- "> \"file:///c:/home/git/polyglot/target/spiral_Eval/packages/c030f84f8e553befcbdd9a\n",
- "> abeace67685221d91a46e3655199e42df713504aa0/main.spi\"\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m ]\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m ] / typeErrorCount: 1 / retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:30 \u001B[90mv\u001B[0m #20 async.run_with_timeout_async / { timeout \n",
- "> = 180 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:23 \u001B[94md\u001B[0m #90 Supervisor.buildFile / takeWhileInclusive\n",
- "> / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\c030f84f8e553befcbdd9aabeace676\n",
- "> 85221d91a46e3655199e42df713504aa0\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 1 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:23 \u001B[94md\u001B[0m #91 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\c030f84f8e553befcbdd9aabeace676\n",
- "> 85221d91a46e3655199e42df713504aa0\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 1 / error: / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:23 \u001B[94md\u001B[0m #92 Supervisor.buildFile / takeWhileInclusive\n",
- "> / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\c030f84f8e553befcbdd9aabeace676\n",
- "> 85221d91a46e3655199e42df713504aa0\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 1 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:23 \u001B[90mv\u001B[0m #93 Supervisor.sendJson / port: 13805 / json:\n",
- "> {\"FileOpen\":{\"spiText\":\"inl main () =\\n 1 \\u002B \n",
- "> \\u0022\\u0022\\n\",\"uri\":\"file:///c:/home/git/polyg...et/spiral_Eval/packages/c030f\n",
- "> 84f8e553befcbdd9aabeace67685221d91a46e3655199e42df713504aa0/main.spi\"}} / \n",
- "> result:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:23 \u001B[90mv\u001B[0m #94 Supervisor.sendJson / port: 13805 / json:\n",
- "> {\"BuildFile\":{\"backend\":\"Fsharp\",\"uri\":\"file:///c:/home/git/polyglot/target/spir\n",
- "> al_Eval/packages/c030f84f8e553befcbdd9aabeace67685221d91a46e3655199e42df713504aa\n",
- "> 0/main.spi\"}} / result:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:23 \u001B[94md\u001B[0m #95 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\c030f84f8e553befcbdd9aabeace676\n",
- "> 85221d91a46e3655199e42df713504aa0\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 1 / error: Some((main.spi:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m Constraint satisfaction error.\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m Got: string\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m Fails to satisfy: number, TypeErrors\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m { errors =\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m [(({ character = 8\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m line = 1 }, { character = 10\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m line = 1 }),\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \"Constraint satisfaction error.\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m Got: string\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m Fails to satisfy: number\")]\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m uri =\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \"file:///c:/home/git/polyglot/target/spiral_Eval/packages/c030f84f8e553befcbdd9a\n",
- "> abeace67685221d91a46e3655199e42df713504aa0/main.spi\" })) / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:24 \u001B[94md\u001B[0m #96 Supervisor.buildFile / takeWhileInclusive\n",
- "> / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\c030f84f8e553befcbdd9aabeace676\n",
+ "> c:/home/git\\polyglot\\target/spiral_Eval\\packages\\c030f84f8e553befcbdd9aabeace676\n",
"> 85221d91a46e3655199e42df713504aa0\\main.spi / errors: [\n",
"> \u001B[38;2;38;140;38m│\u001B[0m [\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \"main.spi:\n",
@@ -9444,13 +8587,9 @@
"> \u001B[38;2;38;140;38m│\u001B[0m }\n",
"> \u001B[38;2;38;140;38m│\u001B[0m }\n",
"> \u001B[38;2;38;140;38m│\u001B[0m ]\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m ] / typeErrorCount: 0 / retry: 1 / outputContent:\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m ] / typeErrorCount: 0 / retry: 0 / outputContent:\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:24 \u001B[94md\u001B[0m #97 FileSystem.watchWithFilter / Disposing \n",
- "> watch stream / filter: FileName, LastWrite\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:30 \u001B[90mv\u001B[0m #21 async.run_with_timeout_async / { timeout \n",
- "> = 100 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:24 \u001B[94md\u001B[0m #98 FileSystem.watchWithFilter / Disposing \n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:07 \u001B[94md\u001B[0m #32 FileSystem.watchWithFilter / Disposing \n",
"> watch stream / filter: FileName, LastWrite\n",
"> \u001B[38;2;38;140;38m│\u001B[0m Some (None, [\"main.spi:\n",
"> \u001B[38;2;38;140;38m│\u001B[0m Constraint satisfaction error.\n",
@@ -9481,240 +8620,40 @@
"> )\n",
"> )\n",
"> \n",
- "> ── [ 4.16s - stdout ] ──────────────────────────────────────────────────────────\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:30 \u001B[90mv\u001B[0m #22 async.run_with_timeout_async / { timeout \n",
- "> = 180 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:27 \u001B[94md\u001B[0m #25 runtime.execute_with_options_async / { \n",
- "> file_name = dotnet; arguments = US5_0\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \"\"C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral \n",
- "> Language 2\\artifacts\\bin\\The Spiral Language 2\\release\\Spiral.dll\" --port 13805 \n",
- "> --default-int i32 --default-float f64\"; options = { command = dotnet \n",
- "> \"C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral Language \n",
- "> 2\\artifacts\\bin\\The Spiral Language 2\\release\\Spiral.dll\" --port 13805 \n",
- "> --default-int i32 --default-float f64; cancellation_token = Some \n",
- "> System.Threading.CancellationToken; environment_variables = [||]; on_line = Some\n",
- "> ; stdin = None; trace = true; working_directory = Some \n",
- "> \"C:\\home\\git\\polyglot\" } }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:28 \u001B[90mv\u001B[0m #26 > 00:00:00 \u001B[94md\u001B[0m #1 pwd: \n",
- "> C:\\home\\git\\polyglot\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:28 \u001B[90mv\u001B[0m #27 > 00:00:00 \u001B[94md\u001B[0m #2 dllPath: \n",
- "> C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral Language \n",
- "> 2\\artifacts\\bin\\The Spiral Language 2\\release\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:28 \u001B[90mv\u001B[0m #28 > 00:00:00 \u001B[94md\u001B[0m #3 targetDir: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:31 \u001B[90mv\u001B[0m #23 async.run_with_timeout_async / { timeout \n",
- "> = 100 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:31 \u001B[90mv\u001B[0m #24 async.run_with_timeout_async / { timeout \n",
- "> = 100 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:28 \u001B[90mv\u001B[0m #29 > Starting the Spiral Server. It is bound\n",
- "> to: http://localhost:13805\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:31 \u001B[90mv\u001B[0m #25 async.run_with_timeout_async / { timeout \n",
- "> = 100 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:25 \u001B[90mv\u001B[0m #99 Supervisor.sendJson / port: 13805 / json:\n",
- "> {\"Ping\":true} / result:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:25 \u001B[90mv\u001B[0m #100 Supervisor.awaitCompiler / Ping / \n",
- "> result: 'Some null' / port: 13805 / retry: 1\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:28 \u001B[90mv\u001B[0m #30 > Server bound to: http://localhost:13805\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:25 \u001B[94md\u001B[0m #101 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\6cdeec507f9de5ba9c8429cfa7049b7\n",
- "> 77a622aa3bf7333b151c767fde35dc5d1\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:25 \u001B[94md\u001B[0m #102 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\6cdeec507f9de5ba9c8429cfa7049b7\n",
- "> 77a622aa3bf7333b151c767fde35dc5d1\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:25 \u001B[94md\u001B[0m #103 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\6cdeec507f9de5ba9c8429cfa7049b7\n",
- "> 77a622aa3bf7333b151c767fde35dc5d1\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:25 \u001B[90mv\u001B[0m #104 Supervisor.sendJson / port: 13805 / \n",
- "> json: {\"FileOpen\":{\"spiText\":\"inl main () =\\n x \\u002B \n",
- "> y\\n\",\"uri\":\"file:///c:/home/git/polyglot/target/spiral_Eval/packages/6cdeec507f9\n",
- "> de5ba9c8429cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi\"}} / result:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:25 \u001B[90mv\u001B[0m #105 Supervisor.sendJson / port: 13805 / \n",
- "> json: \n",
- "> {\"BuildFile\":{\"backend\":\"Fsharp\",\"uri\":\"file:///c:/home/git/polyglot/target/spir\n",
- "> al_Eval/packages/6cdeec507f9de5ba9c8429cfa7049b777a622aa3bf7333b151c767fde35dc5d\n",
- "> 1/main.spi\"}} / result:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:25 \u001B[94md\u001B[0m #106 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\6cdeec507f9de5ba9c8429cfa7049b7\n",
- "> 77a622aa3bf7333b151c767fde35dc5d1\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:25 \u001B[94md\u001B[0m #107 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\6cdeec507f9de5ba9c8429cfa7049b7\n",
- "> 77a622aa3bf7333b151c767fde35dc5d1\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:26 \u001B[94md\u001B[0m #108 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\6cdeec507f9de5ba9c8429cfa7049b7\n",
- "> 77a622aa3bf7333b151c767fde35dc5d1\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:26 \u001B[94md\u001B[0m #109 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\6cdeec507f9de5ba9c8429cfa7049b7\n",
- "> 77a622aa3bf7333b151c767fde35dc5d1\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:26 \u001B[94md\u001B[0m #110 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\6cdeec507f9de5ba9c8429cfa7049b7\n",
- "> 77a622aa3bf7333b151c767fde35dc5d1\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:26 \u001B[94md\u001B[0m #111 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\6cdeec507f9de5ba9c8429cfa7049b7\n",
- "> 77a622aa3bf7333b151c767fde35dc5d1\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:27 \u001B[94md\u001B[0m #112 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\6cdeec507f9de5ba9c8429cfa7049b7\n",
- "> 77a622aa3bf7333b151c767fde35dc5d1\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:27 \u001B[94md\u001B[0m #113 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\6cdeec507f9de5ba9c8429cfa7049b7\n",
+ "> ── [ 373.06ms - stdout ] ───────────────────────────────────────────────────────\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:16 \u001B[90mv\u001B[0m #5 async.run_with_timeout_async / { timeout =\n",
+ "> 180 }\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:08 \u001B[94md\u001B[0m #33 Supervisor.buildFile / takeWhileInclusive\n",
+ "> / path: \n",
+ "> c:/home/git\\polyglot\\target/spiral_Eval\\packages\\6cdeec507f9de5ba9c8429cfa7049b7\n",
"> 77a622aa3bf7333b151c767fde35dc5d1\\main.spi / errors: [] / typeErrorCount: 0 / \n",
"> retry: 0 / outputContent:\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:27 \u001B[94md\u001B[0m #114 Supervisor.buildFile / AsyncSeq.scan / \n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:08 \u001B[94md\u001B[0m #34 Supervisor.buildFile / AsyncSeq.scan / \n",
"> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\6cdeec507f9de5ba9c8429cfa7049b7\n",
+ "> c:/home/git\\polyglot\\target/spiral_Eval\\packages\\6cdeec507f9de5ba9c8429cfa7049b7\n",
"> 77a622aa3bf7333b151c767fde35dc5d1\\main.spi / errors: [] / outputContentResult: \n",
"> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:27 \u001B[94md\u001B[0m #115 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\6cdeec507f9de5ba9c8429cfa7049b7\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:08 \u001B[94md\u001B[0m #35 Supervisor.buildFile / takeWhileInclusive\n",
+ "> / path: \n",
+ "> c:/home/git\\polyglot\\target/spiral_Eval\\packages\\6cdeec507f9de5ba9c8429cfa7049b7\n",
"> 77a622aa3bf7333b151c767fde35dc5d1\\main.spi / errors: [] / typeErrorCount: 0 / \n",
"> retry: 0 / outputContent:\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:27 \u001B[94md\u001B[0m #116 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\6cdeec507f9de5ba9c8429cfa7049b7\n",
- "> 77a622aa3bf7333b151c767fde35dc5d1\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: Some((File main has a type error \n",
- "> somewhere in its path., FatalError \"File main has a type error somewhere in its \n",
- "> path.\")) / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:27 \u001B[94md\u001B[0m #117 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\6cdeec507f9de5ba9c8429cfa7049b7\n",
- "> 77a622aa3bf7333b151c767fde35dc5d1\\main.spi / errors: [] / typeErrorCount: 1 / \n",
- "> retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:27 \u001B[94md\u001B[0m #118 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\6cdeec507f9de5ba9c8429cfa7049b7\n",
- "> 77a622aa3bf7333b151c767fde35dc5d1\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 1 / retry: 0 / error: Some((main.spi:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m Unbound variable: x.\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m Unbound variable: y., TypeErrors\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m { errors =\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m [(({ character = 4\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m line = 1 }, { character = 5\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m line = 1 }), \"Unbound variable: x.\");\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m (({ character = 8\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m line = 1 }, { character = 9\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m line = 1 }), \"Unbound variable: y.\")]\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m uri =\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \"file:///c:/home/git/polyglot/target/spiral_Eval/packages/6cdeec507f9de5ba9c8429\n",
- "> cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi\" })) / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:27 \u001B[94md\u001B[0m #119 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\6cdeec507f9de5ba9c8429cfa7049b7\n",
- "> 77a622aa3bf7333b151c767fde35dc5d1\\main.spi / errors: [\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m [\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \"main.spi:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m Unbound variable: x.\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m Unbound variable: y.\",\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m {\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \"TypeErrors\": {\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \"errors\": [\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m [\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m [\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m {\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \"character\": 4,\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \"line\": 1\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m },\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m {\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \"character\": 5,\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \"line\": 1\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m ],\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \"Unbound variable: x.\"\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m ],\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m [\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m [\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m {\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \"character\": 8,\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \"line\": 1\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m },\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m {\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \"character\": 9,\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \"line\": 1\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m ],\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \"Unbound variable: y.\"\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m ]\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m ],\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \"uri\": \n",
- "> \"file:///c:/home/git/polyglot/target/spiral_Eval/packages/6cdeec507f9de5ba9c8429\n",
- "> cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi\"\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m ]\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m ] / typeErrorCount: 1 / retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:34 \u001B[90mv\u001B[0m #26 async.run_with_timeout_async / { timeout \n",
- "> = 180 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:28 \u001B[94md\u001B[0m #120 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\6cdeec507f9de5ba9c8429cfa7049b7\n",
- "> 77a622aa3bf7333b151c767fde35dc5d1\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 1 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:28 \u001B[94md\u001B[0m #121 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\6cdeec507f9de5ba9c8429cfa7049b7\n",
- "> 77a622aa3bf7333b151c767fde35dc5d1\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 1 / error: / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:28 \u001B[94md\u001B[0m #122 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\6cdeec507f9de5ba9c8429cfa7049b7\n",
- "> 77a622aa3bf7333b151c767fde35dc5d1\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 1 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:28 \u001B[90mv\u001B[0m #123 Supervisor.sendJson / port: 13805 / \n",
- "> json: {\"FileOpen\":{\"spiText\":\"inl main () =\\n x \\u002B \n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:08 \u001B[90mv\u001B[0m #36 Supervisor.sendJson / port: 13805 / json:\n",
+ "> {\"FileOpen\":{\"spiText\":\"inl main () =\\n x \\u002B \n",
"> y\\n\",\"uri\":\"file:///c:/home/git/polyglot/target/spiral_Eval/packages/6cdeec507f9\n",
"> de5ba9c8429cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi\"}} / result:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:28 \u001B[90mv\u001B[0m #124 Supervisor.sendJson / port: 13805 / \n",
- "> json: \n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:08 \u001B[90mv\u001B[0m #37 Supervisor.sendJson / port: 13805 / json:\n",
"> {\"BuildFile\":{\"backend\":\"Fsharp\",\"uri\":\"file:///c:/home/git/polyglot/target/spir\n",
"> al_Eval/packages/6cdeec507f9de5ba9c8429cfa7049b777a622aa3bf7333b151c767fde35dc5d\n",
"> 1/main.spi\"}} / result:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:28 \u001B[94md\u001B[0m #125 Supervisor.buildFile / AsyncSeq.scan / \n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:08 \u001B[94md\u001B[0m #38 Supervisor.buildFile / AsyncSeq.scan / \n",
"> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\6cdeec507f9de5ba9c8429cfa7049b7\n",
+ "> c:/home/git\\polyglot\\target/spiral_Eval\\packages\\6cdeec507f9de5ba9c8429cfa7049b7\n",
"> 77a622aa3bf7333b151c767fde35dc5d1\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 1 / error: Some((main.spi:\n",
+ "> / typeErrorCount: 0 / retry: 0 / error: Some((main.spi:\n",
"> \u001B[38;2;38;140;38m│\u001B[0m Unbound variable: x.\n",
"> \u001B[38;2;38;140;38m│\u001B[0m Unbound variable: y., TypeErrors\n",
"> \u001B[38;2;38;140;38m│\u001B[0m { errors =\n",
@@ -9729,9 +8668,9 @@
"> \"file:///c:/home/git/polyglot/target/spiral_Eval/packages/6cdeec507f9de5ba9c8429\n",
"> cfa7049b777a622aa3bf7333b151c767fde35dc5d1/main.spi\" })) / outputContent:\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:28 \u001B[94md\u001B[0m #126 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\6cdeec507f9de5ba9c8429cfa7049b7\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:08 \u001B[94md\u001B[0m #39 Supervisor.buildFile / takeWhileInclusive\n",
+ "> / path: \n",
+ "> c:/home/git\\polyglot\\target/spiral_Eval\\packages\\6cdeec507f9de5ba9c8429cfa7049b7\n",
"> 77a622aa3bf7333b151c767fde35dc5d1\\main.spi / errors: [\n",
"> \u001B[38;2;38;140;38m│\u001B[0m [\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \"main.spi:\n",
@@ -9773,13 +8712,9 @@
"> \u001B[38;2;38;140;38m│\u001B[0m }\n",
"> \u001B[38;2;38;140;38m│\u001B[0m }\n",
"> \u001B[38;2;38;140;38m│\u001B[0m ]\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m ] / typeErrorCount: 0 / retry: 1 / outputContent:\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m ] / typeErrorCount: 0 / retry: 0 / outputContent:\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:28 \u001B[94md\u001B[0m #127 FileSystem.watchWithFilter / Disposing \n",
- "> watch stream / filter: FileName, LastWrite\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:34 \u001B[90mv\u001B[0m #27 async.run_with_timeout_async / { timeout \n",
- "> = 100 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:28 \u001B[94md\u001B[0m #128 FileSystem.watchWithFilter / Disposing \n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:08 \u001B[94md\u001B[0m #40 FileSystem.watchWithFilter / Disposing \n",
"> watch stream / filter: FileName, LastWrite\n",
"> \u001B[38;2;38;140;38m│\u001B[0m Some (None, [\"main.spi:\n",
"> \u001B[38;2;38;140;38m│\u001B[0m Unbound variable: x.\n",
@@ -9811,143 +8746,39 @@
"> )\n",
"> )\n",
"> \n",
- "> ── [ 4.67s - stdout ] ──────────────────────────────────────────────────────────\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:34 \u001B[90mv\u001B[0m #28 async.run_with_timeout_async / { timeout \n",
- "> = 180 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:32 \u001B[94md\u001B[0m #31 runtime.execute_with_options_async / { \n",
- "> file_name = dotnet; arguments = US5_0\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \"\"C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral \n",
- "> Language 2\\artifacts\\bin\\The Spiral Language 2\\release\\Spiral.dll\" --port 13805 \n",
- "> --default-int i32 --default-float f64\"; options = { command = dotnet \n",
- "> \"C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral Language \n",
- "> 2\\artifacts\\bin\\The Spiral Language 2\\release\\Spiral.dll\" --port 13805 \n",
- "> --default-int i32 --default-float f64; cancellation_token = Some \n",
- "> System.Threading.CancellationToken; environment_variables = [||]; on_line = Some\n",
- "> ; stdin = None; trace = true; working_directory = Some \n",
- "> \"C:\\home\\git\\polyglot\" } }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:32 \u001B[90mv\u001B[0m #32 > 00:00:00 \u001B[94md\u001B[0m #1 pwd: \n",
- "> C:\\home\\git\\polyglot\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:32 \u001B[90mv\u001B[0m #33 > 00:00:00 \u001B[94md\u001B[0m #2 dllPath: \n",
- "> C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral Language \n",
- "> 2\\artifacts\\bin\\The Spiral Language 2\\release\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:32 \u001B[90mv\u001B[0m #34 > 00:00:00 \u001B[94md\u001B[0m #3 targetDir: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:35 \u001B[90mv\u001B[0m #29 async.run_with_timeout_async / { timeout \n",
- "> = 100 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:35 \u001B[90mv\u001B[0m #30 async.run_with_timeout_async / { timeout \n",
- "> = 100 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:32 \u001B[90mv\u001B[0m #35 > Starting the Spiral Server. It is bound\n",
- "> to: http://localhost:13805\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:35 \u001B[90mv\u001B[0m #31 async.run_with_timeout_async / { timeout \n",
- "> = 100 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:29 \u001B[90mv\u001B[0m #129 Supervisor.sendJson / port: 13805 / \n",
- "> json: {\"Ping\":true} / result:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:29 \u001B[90mv\u001B[0m #130 Supervisor.awaitCompiler / Ping / \n",
- "> result: 'Some null' / port: 13805 / retry: 1\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:32 \u001B[90mv\u001B[0m #36 > Server bound to: http://localhost:13805\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:29 \u001B[94md\u001B[0m #131 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\667528659dc2e5af51a6ec17f1774bd\n",
+ "> ── [ 561.19ms - stdout ] ───────────────────────────────────────────────────────\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:16 \u001B[90mv\u001B[0m #6 async.run_with_timeout_async / { timeout =\n",
+ "> 180 }\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:08 \u001B[94md\u001B[0m #41 Supervisor.buildFile / takeWhileInclusive\n",
+ "> / path: \n",
+ "> c:/home/git\\polyglot\\target/spiral_Eval\\packages\\667528659dc2e5af51a6ec17f1774bd\n",
"> 7ffff5b5a47e4e117eec78e740987f29a\\main.spi / errors: [] / typeErrorCount: 0 / \n",
"> retry: 0 / outputContent:\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:29 \u001B[94md\u001B[0m #132 Supervisor.buildFile / AsyncSeq.scan / \n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:08 \u001B[94md\u001B[0m #42 Supervisor.buildFile / AsyncSeq.scan / \n",
"> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\667528659dc2e5af51a6ec17f1774bd\n",
+ "> c:/home/git\\polyglot\\target/spiral_Eval\\packages\\667528659dc2e5af51a6ec17f1774bd\n",
"> 7ffff5b5a47e4e117eec78e740987f29a\\main.spi / errors: [] / outputContentResult: \n",
"> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:29 \u001B[94md\u001B[0m #133 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\667528659dc2e5af51a6ec17f1774bd\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:08 \u001B[94md\u001B[0m #43 Supervisor.buildFile / takeWhileInclusive\n",
+ "> / path: \n",
+ "> c:/home/git\\polyglot\\target/spiral_Eval\\packages\\667528659dc2e5af51a6ec17f1774bd\n",
"> 7ffff5b5a47e4e117eec78e740987f29a\\main.spi / errors: [] / typeErrorCount: 0 / \n",
"> retry: 0 / outputContent:\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:29 \u001B[90mv\u001B[0m #134 Supervisor.sendJson / port: 13805 / \n",
- "> json: {\"FileOpen\":{\"spiText\":\"\\ninl main () =\\n real\\n inl unbox_real \n",
- "> forall a. (obj : a) : a \n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:08 \u001B[90mv\u001B[0m #44 Supervisor.sendJson / port: 13805 / json:\n",
+ "> {\"FileOpen\":{\"spiText\":\"\\ninl main () =\\n real\\n inl unbox_real forall\n",
+ "> a. (obj : a) : a \n",
"> =\\...et/spiral_Eval/packages/667528659dc2e5af51a6ec17f1774bd7ffff5b5a47e4e117eec\n",
"> 78e740987f29a/main.spi\"}} / result:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:29 \u001B[90mv\u001B[0m #135 Supervisor.sendJson / port: 13805 / \n",
- "> json: \n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:08 \u001B[90mv\u001B[0m #45 Supervisor.sendJson / port: 13805 / json:\n",
"> {\"BuildFile\":{\"backend\":\"Fsharp\",\"uri\":\"file:///c:/home/git/polyglot/target/spir\n",
"> al_Eval/packages/667528659dc2e5af51a6ec17f1774bd7ffff5b5a47e4e117eec78e740987f29\n",
"> a/main.spi\"}} / result:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:29 \u001B[94md\u001B[0m #136 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\667528659dc2e5af51a6ec17f1774bd\n",
- "> 7ffff5b5a47e4e117eec78e740987f29a\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:29 \u001B[94md\u001B[0m #137 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\667528659dc2e5af51a6ec17f1774bd\n",
- "> 7ffff5b5a47e4e117eec78e740987f29a\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:30 \u001B[94md\u001B[0m #138 Supervisor.buildFile / AsyncSeq.scan / \n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:08 \u001B[94md\u001B[0m #46 Supervisor.buildFile / AsyncSeq.scan / \n",
"> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\667528659dc2e5af51a6ec17f1774bd\n",
- "> 7ffff5b5a47e4e117eec78e740987f29a\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:30 \u001B[94md\u001B[0m #139 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\667528659dc2e5af51a6ec17f1774bd\n",
- "> 7ffff5b5a47e4e117eec78e740987f29a\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:30 \u001B[94md\u001B[0m #140 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\667528659dc2e5af51a6ec17f1774bd\n",
- "> 7ffff5b5a47e4e117eec78e740987f29a\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:30 \u001B[94md\u001B[0m #141 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\667528659dc2e5af51a6ec17f1774bd\n",
- "> 7ffff5b5a47e4e117eec78e740987f29a\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:31 \u001B[94md\u001B[0m #142 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\667528659dc2e5af51a6ec17f1774bd\n",
- "> 7ffff5b5a47e4e117eec78e740987f29a\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:31 \u001B[94md\u001B[0m #143 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\667528659dc2e5af51a6ec17f1774bd\n",
- "> 7ffff5b5a47e4e117eec78e740987f29a\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:31 \u001B[94md\u001B[0m #144 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\667528659dc2e5af51a6ec17f1774bd\n",
- "> 7ffff5b5a47e4e117eec78e740987f29a\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:31 \u001B[94md\u001B[0m #145 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\667528659dc2e5af51a6ec17f1774bd\n",
- "> 7ffff5b5a47e4e117eec78e740987f29a\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:32 \u001B[94md\u001B[0m #146 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\667528659dc2e5af51a6ec17f1774bd\n",
- "> 7ffff5b5a47e4e117eec78e740987f29a\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:32 \u001B[94md\u001B[0m #147 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\667528659dc2e5af51a6ec17f1774bd\n",
- "> 7ffff5b5a47e4e117eec78e740987f29a\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:32 \u001B[94md\u001B[0m #148 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\667528659dc2e5af51a6ec17f1774bd\n",
+ "> c:/home/git\\polyglot\\target/spiral_Eval\\packages\\667528659dc2e5af51a6ec17f1774bd\n",
"> 7ffff5b5a47e4e117eec78e740987f29a\\main.spi / errors: [] / outputContentResult: \n",
"> / typeErrorCount: 0 / retry: 0 / error: Some((Cannot apply a forall with a \n",
"> term., TracedError\n",
@@ -9972,9 +8803,9 @@
"> \u001B[38;2;38;140;38m│\u001B[0m ^\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \"] })) / outputContent:\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:32 \u001B[94md\u001B[0m #149 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\667528659dc2e5af51a6ec17f1774bd\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:08 \u001B[94md\u001B[0m #47 Supervisor.buildFile / takeWhileInclusive\n",
+ "> / path: \n",
+ "> c:/home/git\\polyglot\\target/spiral_Eval\\packages\\667528659dc2e5af51a6ec17f1774bd\n",
"> 7ffff5b5a47e4e117eec78e740987f29a\\main.spi / errors: [\n",
"> \u001B[38;2;38;140;38m│\u001B[0m [\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \"Cannot apply a forall with a term.\",\n",
@@ -10006,9 +8837,7 @@
"> \u001B[38;2;38;140;38m│\u001B[0m ]\n",
"> \u001B[38;2;38;140;38m│\u001B[0m ] / typeErrorCount: 0 / retry: 0 / outputContent:\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:39 \u001B[90mv\u001B[0m #32 async.run_with_timeout_async / { timeout \n",
- "> = 100 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:32 \u001B[94md\u001B[0m #150 FileSystem.watchWithFilter / Disposing \n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:08 \u001B[94md\u001B[0m #48 FileSystem.watchWithFilter / Disposing \n",
"> watch stream / filter: FileName, LastWrite\n",
"> \u001B[38;2;38;140;38m│\u001B[0m Some (None, [\"Cannot apply a forall with a term.\"])\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
@@ -10037,151 +8866,47 @@
"> )\n",
"> )\n",
"> \n",
- "> ── [ 4.53s - stdout ] ──────────────────────────────────────────────────────────\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:39 \u001B[90mv\u001B[0m #33 async.run_with_timeout_async / { timeout \n",
- "> = 180 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:36 \u001B[94md\u001B[0m #37 runtime.execute_with_options_async / { \n",
- "> file_name = dotnet; arguments = US5_0\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \"\"C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral \n",
- "> Language 2\\artifacts\\bin\\The Spiral Language 2\\release\\Spiral.dll\" --port 13805 \n",
- "> --default-int i32 --default-float f64\"; options = { command = dotnet \n",
- "> \"C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral Language \n",
- "> 2\\artifacts\\bin\\The Spiral Language 2\\release\\Spiral.dll\" --port 13805 \n",
- "> --default-int i32 --default-float f64; cancellation_token = Some \n",
- "> System.Threading.CancellationToken; environment_variables = [||]; on_line = Some\n",
- "> ; stdin = None; trace = true; working_directory = Some \n",
- "> \"C:\\home\\git\\polyglot\" } }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:37 \u001B[90mv\u001B[0m #38 > 00:00:00 \u001B[94md\u001B[0m #1 pwd: \n",
- "> C:\\home\\git\\polyglot\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:37 \u001B[90mv\u001B[0m #39 > 00:00:00 \u001B[94md\u001B[0m #2 dllPath: \n",
- "> C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral Language \n",
- "> 2\\artifacts\\bin\\The Spiral Language 2\\release\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:37 \u001B[90mv\u001B[0m #40 > 00:00:00 \u001B[94md\u001B[0m #3 targetDir: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:39 \u001B[90mv\u001B[0m #34 async.run_with_timeout_async / { timeout \n",
- "> = 100 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:40 \u001B[90mv\u001B[0m #35 async.run_with_timeout_async / { timeout \n",
- "> = 100 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:37 \u001B[90mv\u001B[0m #41 > Starting the Spiral Server. It is bound\n",
- "> to: http://localhost:13805\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:40 \u001B[90mv\u001B[0m #36 async.run_with_timeout_async / { timeout \n",
- "> = 100 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:34 \u001B[90mv\u001B[0m #151 Supervisor.sendJson / port: 13805 / \n",
- "> json: {\"Ping\":true} / result:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:34 \u001B[90mv\u001B[0m #152 Supervisor.awaitCompiler / Ping / \n",
- "> result: 'Some null' / port: 13805 / retry: 1\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:37 \u001B[90mv\u001B[0m #42 > Server bound to: http://localhost:13805\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:34 \u001B[94md\u001B[0m #153 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\0ba44c42df309b790acdf4f9fc55fcc\n",
+ "> ── [ 572.83ms - stdout ] ───────────────────────────────────────────────────────\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:17 \u001B[90mv\u001B[0m #7 async.run_with_timeout_async / { timeout =\n",
+ "> 180 }\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:08 \u001B[94md\u001B[0m #49 Supervisor.buildFile / takeWhileInclusive\n",
+ "> / path: \n",
+ "> c:/home/git\\polyglot\\target/spiral_Eval\\packages\\0ba44c42df309b790acdf4f9fc55fcc\n",
"> 7912380f5dd2d90fad118bad793251c4f\\main.spi / errors: [] / typeErrorCount: 0 / \n",
"> retry: 0 / outputContent:\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:34 \u001B[94md\u001B[0m #154 Supervisor.buildFile / AsyncSeq.scan / \n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:08 \u001B[94md\u001B[0m #50 Supervisor.buildFile / AsyncSeq.scan / \n",
"> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\0ba44c42df309b790acdf4f9fc55fcc\n",
+ "> c:/home/git\\polyglot\\target/spiral_Eval\\packages\\0ba44c42df309b790acdf4f9fc55fcc\n",
"> 7912380f5dd2d90fad118bad793251c4f\\main.spi / errors: [] / outputContentResult: \n",
"> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:34 \u001B[94md\u001B[0m #155 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\0ba44c42df309b790acdf4f9fc55fcc\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:08 \u001B[94md\u001B[0m #51 Supervisor.buildFile / takeWhileInclusive\n",
+ "> / path: \n",
+ "> c:/home/git\\polyglot\\target/spiral_Eval\\packages\\0ba44c42df309b790acdf4f9fc55fcc\n",
"> 7912380f5dd2d90fad118bad793251c4f\\main.spi / errors: [] / typeErrorCount: 0 / \n",
"> retry: 0 / outputContent:\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:34 \u001B[90mv\u001B[0m #156 Supervisor.sendJson / port: 13805 / \n",
- "> json: {\"FileOpen\":{\"spiText\":\"\\ninl main () =\\n real\\n inl unbox_real \n",
- "> forall a. (obj : a) : a \n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:08 \u001B[90mv\u001B[0m #52 Supervisor.sendJson / port: 13805 / json:\n",
+ "> {\"FileOpen\":{\"spiText\":\"\\ninl main () =\\n real\\n inl unbox_real forall\n",
+ "> a. (obj : a) : a \n",
"> =\\...et/spiral_Eval/packages/0ba44c42df309b790acdf4f9fc55fcc7912380f5dd2d90fad11\n",
"> 8bad793251c4f/main.spi\"}} / result:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:34 \u001B[90mv\u001B[0m #157 Supervisor.sendJson / port: 13805 / \n",
- "> json: \n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:08 \u001B[90mv\u001B[0m #53 Supervisor.sendJson / port: 13805 / json:\n",
"> {\"BuildFile\":{\"backend\":\"Fsharp\",\"uri\":\"file:///c:/home/git/polyglot/target/spir\n",
"> al_Eval/packages/0ba44c42df309b790acdf4f9fc55fcc7912380f5dd2d90fad118bad793251c4\n",
"> f/main.spi\"}} / result:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:34 \u001B[94md\u001B[0m #158 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\0ba44c42df309b790acdf4f9fc55fcc\n",
- "> 7912380f5dd2d90fad118bad793251c4f\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:34 \u001B[94md\u001B[0m #159 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\0ba44c42df309b790acdf4f9fc55fcc\n",
- "> 7912380f5dd2d90fad118bad793251c4f\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:35 \u001B[94md\u001B[0m #160 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\0ba44c42df309b790acdf4f9fc55fcc\n",
- "> 7912380f5dd2d90fad118bad793251c4f\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:35 \u001B[94md\u001B[0m #161 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\0ba44c42df309b790acdf4f9fc55fcc\n",
- "> 7912380f5dd2d90fad118bad793251c4f\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:35 \u001B[94md\u001B[0m #162 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\0ba44c42df309b790acdf4f9fc55fcc\n",
- "> 7912380f5dd2d90fad118bad793251c4f\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:35 \u001B[94md\u001B[0m #163 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\0ba44c42df309b790acdf4f9fc55fcc\n",
- "> 7912380f5dd2d90fad118bad793251c4f\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:36 \u001B[94md\u001B[0m #164 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\0ba44c42df309b790acdf4f9fc55fcc\n",
- "> 7912380f5dd2d90fad118bad793251c4f\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:36 \u001B[94md\u001B[0m #165 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\0ba44c42df309b790acdf4f9fc55fcc\n",
- "> 7912380f5dd2d90fad118bad793251c4f\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:36 \u001B[94md\u001B[0m #166 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\0ba44c42df309b790acdf4f9fc55fcc\n",
- "> 7912380f5dd2d90fad118bad793251c4f\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:36 \u001B[94md\u001B[0m #167 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\0ba44c42df309b790acdf4f9fc55fcc\n",
- "> 7912380f5dd2d90fad118bad793251c4f\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:37 \u001B[94md\u001B[0m #168 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\0ba44c42df309b790acdf4f9fc55fcc\n",
- "> 7912380f5dd2d90fad118bad793251c4f\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:37 \u001B[94md\u001B[0m #169 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\0ba44c42df309b790acdf4f9fc55fcc\n",
- "> 7912380f5dd2d90fad118bad793251c4f\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:37 \u001B[94md\u001B[0m #170 Supervisor.buildFile / AsyncSeq.scan / \n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:09 \u001B[94md\u001B[0m #54 Supervisor.buildFile / AsyncSeq.scan / \n",
"> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\0ba44c42df309b790acdf4f9fc55fcc\n",
+ "> c:/home/git\\polyglot\\target/spiral_Eval\\packages\\0ba44c42df309b790acdf4f9fc55fcc\n",
"> 7912380f5dd2d90fad118bad793251c4f\\main.spi / errors: [] / outputContentResult: \n",
"> / typeErrorCount: 0 / retry: 0 / error: Some((The main function should not have \n",
"> a forall., TracedError { message = \"The main function should not have a forall.\"\n",
"> \u001B[38;2;38;140;38m│\u001B[0m trace = [] })) / outputContent:\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:37 \u001B[94md\u001B[0m #171 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\0ba44c42df309b790acdf4f9fc55fcc\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:09 \u001B[94md\u001B[0m #55 Supervisor.buildFile / takeWhileInclusive\n",
+ "> / path: \n",
+ "> c:/home/git\\polyglot\\target/spiral_Eval\\packages\\0ba44c42df309b790acdf4f9fc55fcc\n",
"> 7912380f5dd2d90fad118bad793251c4f\\main.spi / errors: [\n",
"> \u001B[38;2;38;140;38m│\u001B[0m [\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \"The main function should not have a forall.\",\n",
@@ -10195,9 +8920,7 @@
"> \u001B[38;2;38;140;38m│\u001B[0m ]\n",
"> \u001B[38;2;38;140;38m│\u001B[0m ] / typeErrorCount: 0 / retry: 0 / outputContent:\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:43 \u001B[90mv\u001B[0m #37 async.run_with_timeout_async / { timeout \n",
- "> = 100 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:37 \u001B[94md\u001B[0m #172 FileSystem.watchWithFilter / Disposing \n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:09 \u001B[94md\u001B[0m #56 FileSystem.watchWithFilter / Disposing \n",
"> watch stream / filter: FileName, LastWrite\n",
"> \u001B[38;2;38;140;38m│\u001B[0m Some (None, [\"The main function should not have a forall.\"])\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
@@ -10234,157 +8957,51 @@
"> )\n",
"> )\n",
"> \n",
- "> ── [ 4.51s - stdout ] ──────────────────────────────────────────────────────────\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:44 \u001B[90mv\u001B[0m #38 async.run_with_timeout_async / { timeout \n",
- "> = 180 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:41 \u001B[94md\u001B[0m #43 runtime.execute_with_options_async / { \n",
- "> file_name = dotnet; arguments = US5_0\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \"\"C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral \n",
- "> Language 2\\artifacts\\bin\\The Spiral Language 2\\release\\Spiral.dll\" --port 13805 \n",
- "> --default-int i32 --default-float f64\"; options = { command = dotnet \n",
- "> \"C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral Language \n",
- "> 2\\artifacts\\bin\\The Spiral Language 2\\release\\Spiral.dll\" --port 13805 \n",
- "> --default-int i32 --default-float f64; cancellation_token = Some \n",
- "> System.Threading.CancellationToken; environment_variables = [||]; on_line = Some\n",
- "> ; stdin = None; trace = true; working_directory = Some \n",
- "> \"C:\\home\\git\\polyglot\" } }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:41 \u001B[90mv\u001B[0m #44 > 00:00:00 \u001B[94md\u001B[0m #1 pwd: \n",
- "> C:\\home\\git\\polyglot\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:41 \u001B[90mv\u001B[0m #45 > 00:00:00 \u001B[94md\u001B[0m #2 dllPath: \n",
- "> C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral Language \n",
- "> 2\\artifacts\\bin\\The Spiral Language 2\\release\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:41 \u001B[90mv\u001B[0m #46 > 00:00:00 \u001B[94md\u001B[0m #3 targetDir: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:44 \u001B[90mv\u001B[0m #39 async.run_with_timeout_async / { timeout \n",
- "> = 100 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:44 \u001B[90mv\u001B[0m #40 async.run_with_timeout_async / { timeout \n",
- "> = 100 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:41 \u001B[90mv\u001B[0m #47 > Starting the Spiral Server. It is bound\n",
- "> to: http://localhost:13805\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:44 \u001B[90mv\u001B[0m #41 async.run_with_timeout_async / { timeout \n",
- "> = 100 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:38 \u001B[90mv\u001B[0m #173 Supervisor.sendJson / port: 13805 / \n",
- "> json: {\"Ping\":true} / result:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:38 \u001B[90mv\u001B[0m #174 Supervisor.awaitCompiler / Ping / \n",
- "> result: 'Some null' / port: 13805 / retry: 1\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:42 \u001B[90mv\u001B[0m #48 > Server bound to: http://localhost:13805\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:38 \u001B[94md\u001B[0m #175 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\c127414de2a2a92d9fd93ea5a8e9312\n",
+ "> ── [ 549.93ms - stdout ] ───────────────────────────────────────────────────────\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:17 \u001B[90mv\u001B[0m #8 async.run_with_timeout_async / { timeout =\n",
+ "> 180 }\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:09 \u001B[94md\u001B[0m #57 Supervisor.buildFile / takeWhileInclusive\n",
+ "> / path: \n",
+ "> c:/home/git\\polyglot\\target/spiral_Eval\\packages\\c127414de2a2a92d9fd93ea5a8e9312\n",
"> a6aad9129ffd3cbd56ac7f0327106f1db\\main.spi / errors: [] / typeErrorCount: 0 / \n",
"> retry: 0 / outputContent:\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:38 \u001B[94md\u001B[0m #176 Supervisor.buildFile / AsyncSeq.scan / \n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:09 \u001B[94md\u001B[0m #58 Supervisor.buildFile / AsyncSeq.scan / \n",
"> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\c127414de2a2a92d9fd93ea5a8e9312\n",
+ "> c:/home/git\\polyglot\\target/spiral_Eval\\packages\\c127414de2a2a92d9fd93ea5a8e9312\n",
"> a6aad9129ffd3cbd56ac7f0327106f1db\\main.spi / errors: [] / outputContentResult: \n",
"> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:38 \u001B[94md\u001B[0m #177 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\c127414de2a2a92d9fd93ea5a8e9312\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:09 \u001B[94md\u001B[0m #59 Supervisor.buildFile / takeWhileInclusive\n",
+ "> / path: \n",
+ "> c:/home/git\\polyglot\\target/spiral_Eval\\packages\\c127414de2a2a92d9fd93ea5a8e9312\n",
"> a6aad9129ffd3cbd56ac7f0327106f1db\\main.spi / errors: [] / typeErrorCount: 0 / \n",
"> retry: 0 / outputContent:\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:38 \u001B[90mv\u001B[0m #178 Supervisor.sendJson / port: 13805 / \n",
- "> json: {\"FileOpen\":{\"spiText\":\"\\ninl init_series start end inc =\\n inl total :\n",
- "> f64 = conv ((end - \n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:09 \u001B[90mv\u001B[0m #60 Supervisor.sendJson / port: 13805 / json:\n",
+ "> {\"FileOpen\":{\"spiText\":\"\\ninl init_series start end inc =\\n inl total : f64 =\n",
+ "> conv ((end - \n",
"> start)...et/spiral_Eval/packages/c127414de2a2a92d9fd93ea5a8e9312a6aad9129ffd3cbd\n",
"> 56ac7f0327106f1db/main.spi\"}} / result:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:38 \u001B[90mv\u001B[0m #179 Supervisor.sendJson / port: 13805 / \n",
- "> json: \n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:09 \u001B[90mv\u001B[0m #61 Supervisor.sendJson / port: 13805 / json:\n",
"> {\"BuildFile\":{\"backend\":\"Fsharp\",\"uri\":\"file:///c:/home/git/polyglot/target/spir\n",
"> al_Eval/packages/c127414de2a2a92d9fd93ea5a8e9312a6aad9129ffd3cbd56ac7f0327106f1d\n",
"> b/main.spi\"}} / result:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:39 \u001B[94md\u001B[0m #180 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\c127414de2a2a92d9fd93ea5a8e9312\n",
- "> a6aad9129ffd3cbd56ac7f0327106f1db\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:39 \u001B[94md\u001B[0m #181 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\c127414de2a2a92d9fd93ea5a8e9312\n",
- "> a6aad9129ffd3cbd56ac7f0327106f1db\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:39 \u001B[94md\u001B[0m #182 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\c127414de2a2a92d9fd93ea5a8e9312\n",
- "> a6aad9129ffd3cbd56ac7f0327106f1db\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:39 \u001B[94md\u001B[0m #183 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\c127414de2a2a92d9fd93ea5a8e9312\n",
- "> a6aad9129ffd3cbd56ac7f0327106f1db\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:40 \u001B[94md\u001B[0m #184 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\c127414de2a2a92d9fd93ea5a8e9312\n",
- "> a6aad9129ffd3cbd56ac7f0327106f1db\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:40 \u001B[94md\u001B[0m #185 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\c127414de2a2a92d9fd93ea5a8e9312\n",
- "> a6aad9129ffd3cbd56ac7f0327106f1db\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:40 \u001B[94md\u001B[0m #186 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\c127414de2a2a92d9fd93ea5a8e9312\n",
- "> a6aad9129ffd3cbd56ac7f0327106f1db\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:40 \u001B[94md\u001B[0m #187 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\c127414de2a2a92d9fd93ea5a8e9312\n",
- "> a6aad9129ffd3cbd56ac7f0327106f1db\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:41 \u001B[94md\u001B[0m #188 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\c127414de2a2a92d9fd93ea5a8e9312\n",
- "> a6aad9129ffd3cbd56ac7f0327106f1db\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:41 \u001B[94md\u001B[0m #189 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\c127414de2a2a92d9fd93ea5a8e9312\n",
- "> a6aad9129ffd3cbd56ac7f0327106f1db\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:41 \u001B[94md\u001B[0m #190 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\c127414de2a2a92d9fd93ea5a8e9312\n",
- "> a6aad9129ffd3cbd56ac7f0327106f1db\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:41 \u001B[94md\u001B[0m #191 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\c127414de2a2a92d9fd93ea5a8e9312\n",
- "> a6aad9129ffd3cbd56ac7f0327106f1db\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:41 \u001B[94md\u001B[0m #192 Supervisor.buildFile / AsyncSeq.scan / \n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:09 \u001B[94md\u001B[0m #62 Supervisor.buildFile / AsyncSeq.scan / \n",
"> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\c127414de2a2a92d9fd93ea5a8e9312\n",
+ "> c:/home/git\\polyglot\\target/spiral_Eval\\packages\\c127414de2a2a92d9fd93ea5a8e9312\n",
"> a6aad9129ffd3cbd56ac7f0327106f1db\\main.spi / errors: [] / outputContentResult: \n",
"> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
"> \u001B[38;2;38;140;38m│\u001B[0m 0.3325000000000001\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:41 \u001B[94md\u001B[0m #193 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\c127414de2a2a92d9fd93ea5a8e9312\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:09 \u001B[94md\u001B[0m #63 Supervisor.buildFile / takeWhileInclusive\n",
+ "> / path: \n",
+ "> c:/home/git\\polyglot\\target/spiral_Eval\\packages\\c127414de2a2a92d9fd93ea5a8e9312\n",
"> a6aad9129ffd3cbd56ac7f0327106f1db\\main.spi / errors: [] / typeErrorCount: 0 / \n",
"> retry: 0 / outputContent:\n",
"> \u001B[38;2;38;140;38m│\u001B[0m 0.3325000000000001\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:48 \u001B[90mv\u001B[0m #42 async.run_with_timeout_async / { timeout \n",
- "> = 100 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:42 \u001B[94md\u001B[0m #194 FileSystem.watchWithFilter / Disposing \n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:09 \u001B[94md\u001B[0m #64 FileSystem.watchWithFilter / Disposing \n",
"> watch stream / filter: FileName, LastWrite\n",
"> \u001B[38;2;38;140;38m│\u001B[0m Some (Some \"0.3325000000000001\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \", [])\n",
@@ -10494,142 +9111,39 @@
"> )\n",
"> )\n",
"> \n",
- "> ── [ 4.73s - stdout ] ──────────────────────────────────────────────────────────\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:48 \u001B[90mv\u001B[0m #43 async.run_with_timeout_async / { timeout \n",
- "> = 180 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:45 \u001B[94md\u001B[0m #49 runtime.execute_with_options_async / { \n",
- "> file_name = dotnet; arguments = US5_0\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \"\"C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral \n",
- "> Language 2\\artifacts\\bin\\The Spiral Language 2\\release\\Spiral.dll\" --port 13805 \n",
- "> --default-int i32 --default-float f64\"; options = { command = dotnet \n",
- "> \"C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral Language \n",
- "> 2\\artifacts\\bin\\The Spiral Language 2\\release\\Spiral.dll\" --port 13805 \n",
- "> --default-int i32 --default-float f64; cancellation_token = Some \n",
- "> System.Threading.CancellationToken; environment_variables = [||]; on_line = Some\n",
- "> ; stdin = None; trace = true; working_directory = Some \n",
- "> \"C:\\home\\git\\polyglot\" } }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:46 \u001B[90mv\u001B[0m #50 > 00:00:00 \u001B[94md\u001B[0m #1 pwd: \n",
- "> C:\\home\\git\\polyglot\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:46 \u001B[90mv\u001B[0m #51 > 00:00:00 \u001B[94md\u001B[0m #2 dllPath: \n",
- "> C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral Language \n",
- "> 2\\artifacts\\bin\\The Spiral Language 2\\release\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:46 \u001B[90mv\u001B[0m #52 > 00:00:00 \u001B[94md\u001B[0m #3 targetDir: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:49 \u001B[90mv\u001B[0m #44 async.run_with_timeout_async / { timeout \n",
- "> = 100 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:49 \u001B[90mv\u001B[0m #45 async.run_with_timeout_async / { timeout \n",
- "> = 100 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:46 \u001B[90mv\u001B[0m #53 > Starting the Spiral Server. It is bound\n",
- "> to: http://localhost:13805\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:49 \u001B[90mv\u001B[0m #46 async.run_with_timeout_async / { timeout \n",
- "> = 100 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:43 \u001B[90mv\u001B[0m #195 Supervisor.sendJson / port: 13805 / \n",
- "> json: {\"Ping\":true} / result:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:43 \u001B[90mv\u001B[0m #196 Supervisor.awaitCompiler / Ping / \n",
- "> result: 'Some null' / port: 13805 / retry: 1\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:46 \u001B[90mv\u001B[0m #54 > Server bound to: http://localhost:13805\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:43 \u001B[94md\u001B[0m #197 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\ca288d6928a8e761855210f25f97fdc\n",
+ "> ── [ 578.85ms - stdout ] ───────────────────────────────────────────────────────\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:18 \u001B[90mv\u001B[0m #9 async.run_with_timeout_async / { timeout =\n",
+ "> 180 }\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:10 \u001B[94md\u001B[0m #65 Supervisor.buildFile / takeWhileInclusive\n",
+ "> / path: \n",
+ "> c:/home/git\\polyglot\\target/spiral_Eval\\packages\\ca288d6928a8e761855210f25f97fdc\n",
"> 056ee1f21be4a24b26e8533ec368831c8\\main.spi / errors: [] / typeErrorCount: 0 / \n",
"> retry: 0 / outputContent:\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:43 \u001B[94md\u001B[0m #198 Supervisor.buildFile / AsyncSeq.scan / \n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:10 \u001B[94md\u001B[0m #66 Supervisor.buildFile / AsyncSeq.scan / \n",
"> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\ca288d6928a8e761855210f25f97fdc\n",
+ "> c:/home/git\\polyglot\\target/spiral_Eval\\packages\\ca288d6928a8e761855210f25f97fdc\n",
"> 056ee1f21be4a24b26e8533ec368831c8\\main.spi / errors: [] / outputContentResult: \n",
"> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:43 \u001B[94md\u001B[0m #199 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\ca288d6928a8e761855210f25f97fdc\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:10 \u001B[94md\u001B[0m #67 Supervisor.buildFile / takeWhileInclusive\n",
+ "> / path: \n",
+ "> c:/home/git\\polyglot\\target/spiral_Eval\\packages\\ca288d6928a8e761855210f25f97fdc\n",
"> 056ee1f21be4a24b26e8533ec368831c8\\main.spi / errors: [] / typeErrorCount: 0 / \n",
"> retry: 0 / outputContent:\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:43 \u001B[90mv\u001B[0m #200 Supervisor.sendJson / port: 13805 / \n",
- "> json: {\"FileOpen\":{\"spiText\":\"\\ninl init_series start end inc =\\n inl total :\n",
- "> f64 = conv ((end - \n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:10 \u001B[90mv\u001B[0m #68 Supervisor.sendJson / port: 13805 / json:\n",
+ "> {\"FileOpen\":{\"spiText\":\"\\ninl init_series start end inc =\\n inl total : f64 =\n",
+ "> conv ((end - \n",
"> start)...et/spiral_Eval/packages/ca288d6928a8e761855210f25f97fdc056ee1f21be4a24b\n",
"> 26e8533ec368831c8/main.spi\"}} / result:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:43 \u001B[90mv\u001B[0m #201 Supervisor.sendJson / port: 13805 / \n",
- "> json: {\"BuildFile\":{\"backend\":\"Python \\u002B \n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:10 \u001B[90mv\u001B[0m #69 Supervisor.sendJson / port: 13805 / json:\n",
+ "> {\"BuildFile\":{\"backend\":\"Python \\u002B \n",
"> Cuda\",\"uri\":\"file:///c:/home/git/polyglot/target/spiral_Eval/packages/ca288d6928\n",
"> a8e761855210f25f97fdc056ee1f21be4a24b26e8533ec368831c8/main.spi\"}} / result:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:43 \u001B[94md\u001B[0m #202 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\ca288d6928a8e761855210f25f97fdc\n",
- "> 056ee1f21be4a24b26e8533ec368831c8\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:43 \u001B[94md\u001B[0m #203 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\ca288d6928a8e761855210f25f97fdc\n",
- "> 056ee1f21be4a24b26e8533ec368831c8\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:44 \u001B[94md\u001B[0m #204 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\ca288d6928a8e761855210f25f97fdc\n",
- "> 056ee1f21be4a24b26e8533ec368831c8\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:44 \u001B[94md\u001B[0m #205 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\ca288d6928a8e761855210f25f97fdc\n",
- "> 056ee1f21be4a24b26e8533ec368831c8\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:44 \u001B[94md\u001B[0m #206 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\ca288d6928a8e761855210f25f97fdc\n",
- "> 056ee1f21be4a24b26e8533ec368831c8\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:44 \u001B[94md\u001B[0m #207 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\ca288d6928a8e761855210f25f97fdc\n",
- "> 056ee1f21be4a24b26e8533ec368831c8\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:45 \u001B[94md\u001B[0m #208 Supervisor.buildFile / AsyncSeq.scan / \n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:10 \u001B[94md\u001B[0m #70 Supervisor.buildFile / AsyncSeq.scan / \n",
"> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\ca288d6928a8e761855210f25f97fdc\n",
- "> 056ee1f21be4a24b26e8533ec368831c8\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:45 \u001B[94md\u001B[0m #209 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\ca288d6928a8e761855210f25f97fdc\n",
- "> 056ee1f21be4a24b26e8533ec368831c8\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:45 \u001B[94md\u001B[0m #210 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\ca288d6928a8e761855210f25f97fdc\n",
- "> 056ee1f21be4a24b26e8533ec368831c8\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:45 \u001B[94md\u001B[0m #211 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\ca288d6928a8e761855210f25f97fdc\n",
- "> 056ee1f21be4a24b26e8533ec368831c8\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:46 \u001B[94md\u001B[0m #212 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\ca288d6928a8e761855210f25f97fdc\n",
- "> 056ee1f21be4a24b26e8533ec368831c8\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:46 \u001B[94md\u001B[0m #213 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\ca288d6928a8e761855210f25f97fdc\n",
- "> 056ee1f21be4a24b26e8533ec368831c8\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:46 \u001B[94md\u001B[0m #214 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\ca288d6928a8e761855210f25f97fdc\n",
+ "> c:/home/git\\polyglot\\target/spiral_Eval\\packages\\ca288d6928a8e761855210f25f97fdc\n",
"> 056ee1f21be4a24b26e8533ec368831c8\\main.spi / errors: [] / outputContentResult: \n",
"> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
"> \u001B[38;2;38;140;38m│\u001B[0m kernel = r\"\"\"\n",
@@ -10689,9 +9203,9 @@
"> \u001B[38;2;38;140;38m│\u001B[0m if __name__ == '__main__': result = main(); None if result is\n",
"> None else print(result)\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:46 \u001B[94md\u001B[0m #215 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\ca288d6928a8e761855210f25f97fdc\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:10 \u001B[94md\u001B[0m #71 Supervisor.buildFile / takeWhileInclusive\n",
+ "> / path: \n",
+ "> c:/home/git\\polyglot\\target/spiral_Eval\\packages\\ca288d6928a8e761855210f25f97fdc\n",
"> 056ee1f21be4a24b26e8533ec368831c8\\main.spi / errors: [] / typeErrorCount: 0 / \n",
"> retry: 0 / outputContent:\n",
"> \u001B[38;2;38;140;38m│\u001B[0m kernel = r\"\"\"\n",
@@ -10751,9 +9265,7 @@
"> \u001B[38;2;38;140;38m│\u001B[0m if __name__ == '__main__': result = main(); None if result is\n",
"> None else print(result)\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:53 \u001B[90mv\u001B[0m #47 async.run_with_timeout_async / { timeout \n",
- "> = 100 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:46 \u001B[94md\u001B[0m #216 FileSystem.watchWithFilter / Disposing \n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:10 \u001B[94md\u001B[0m #72 FileSystem.watchWithFilter / Disposing \n",
"> watch stream / filter: FileName, LastWrite\n",
"> \u001B[38;2;38;140;38m│\u001B[0m Some\n",
"> \u001B[38;2;38;140;38m│\u001B[0m (Some\n",
@@ -10870,157 +9382,51 @@
"> // |> _assertEqual None\n",
"> // |> fun x -> printfn $\"{x.ToDisplayString ()}\"\n",
"> \n",
- "> ── [ 4.78s - stdout ] ──────────────────────────────────────────────────────────\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:53 \u001B[90mv\u001B[0m #48 async.run_with_timeout_async / { timeout \n",
+ "> ── [ 615.96ms - stdout ] ───────────────────────────────────────────────────────\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:18 \u001B[90mv\u001B[0m #10 async.run_with_timeout_async / { timeout \n",
"> = 180 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:50 \u001B[94md\u001B[0m #55 runtime.execute_with_options_async / { \n",
- "> file_name = dotnet; arguments = US5_0\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \"\"C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral \n",
- "> Language 2\\artifacts\\bin\\The Spiral Language 2\\release\\Spiral.dll\" --port 13805 \n",
- "> --default-int i32 --default-float f64\"; options = { command = dotnet \n",
- "> \"C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral Language \n",
- "> 2\\artifacts\\bin\\The Spiral Language 2\\release\\Spiral.dll\" --port 13805 \n",
- "> --default-int i32 --default-float f64; cancellation_token = Some \n",
- "> System.Threading.CancellationToken; environment_variables = [||]; on_line = Some\n",
- "> ; stdin = None; trace = true; working_directory = Some \n",
- "> \"C:\\home\\git\\polyglot\" } }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:50 \u001B[90mv\u001B[0m #56 > 00:00:00 \u001B[94md\u001B[0m #1 pwd: \n",
- "> C:\\home\\git\\polyglot\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:50 \u001B[90mv\u001B[0m #57 > 00:00:00 \u001B[94md\u001B[0m #2 dllPath: \n",
- "> C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral Language \n",
- "> 2\\artifacts\\bin\\The Spiral Language 2\\release\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:50 \u001B[90mv\u001B[0m #58 > 00:00:00 \u001B[94md\u001B[0m #3 targetDir: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:53 \u001B[90mv\u001B[0m #49 async.run_with_timeout_async / { timeout \n",
- "> = 100 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:53 \u001B[90mv\u001B[0m #50 async.run_with_timeout_async / { timeout \n",
- "> = 100 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:51 \u001B[90mv\u001B[0m #59 > Starting the Spiral Server. It is bound\n",
- "> to: http://localhost:13805\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:54 \u001B[90mv\u001B[0m #51 async.run_with_timeout_async / { timeout \n",
- "> = 100 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:47 \u001B[90mv\u001B[0m #217 Supervisor.sendJson / port: 13805 / \n",
- "> json: {\"Ping\":true} / result:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:47 \u001B[90mv\u001B[0m #218 Supervisor.awaitCompiler / Ping / \n",
- "> result: 'Some null' / port: 13805 / retry: 1\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:51 \u001B[90mv\u001B[0m #60 > Server bound to: http://localhost:13805\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:47 \u001B[94md\u001B[0m #219 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\2acc44d97e6b50ce3caf39a0b931356\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:10 \u001B[94md\u001B[0m #73 Supervisor.buildFile / takeWhileInclusive\n",
+ "> / path: \n",
+ "> c:/home/git\\polyglot\\target/spiral_Eval\\packages\\2acc44d97e6b50ce3caf39a0b931356\n",
"> 33484d22c3ef6e7797ce64875a41451f4\\main.spi / errors: [] / typeErrorCount: 0 / \n",
"> retry: 0 / outputContent:\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:47 \u001B[94md\u001B[0m #220 Supervisor.buildFile / AsyncSeq.scan / \n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:10 \u001B[94md\u001B[0m #74 Supervisor.buildFile / AsyncSeq.scan / \n",
"> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\2acc44d97e6b50ce3caf39a0b931356\n",
+ "> c:/home/git\\polyglot\\target/spiral_Eval\\packages\\2acc44d97e6b50ce3caf39a0b931356\n",
"> 33484d22c3ef6e7797ce64875a41451f4\\main.spi / errors: [] / outputContentResult: \n",
"> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:47 \u001B[94md\u001B[0m #221 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\2acc44d97e6b50ce3caf39a0b931356\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:10 \u001B[94md\u001B[0m #75 Supervisor.buildFile / takeWhileInclusive\n",
+ "> / path: \n",
+ "> c:/home/git\\polyglot\\target/spiral_Eval\\packages\\2acc44d97e6b50ce3caf39a0b931356\n",
"> 33484d22c3ef6e7797ce64875a41451f4\\main.spi / errors: [] / typeErrorCount: 0 / \n",
"> retry: 0 / outputContent:\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:47 \u001B[90mv\u001B[0m #222 Supervisor.sendJson / port: 13805 / \n",
- "> json: {\"FileOpen\":{\"spiText\":\"\\ninl init_series start end inc =\\n inl total :\n",
- "> f64 = conv ((end - \n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:10 \u001B[90mv\u001B[0m #76 Supervisor.sendJson / port: 13805 / json:\n",
+ "> {\"FileOpen\":{\"spiText\":\"\\ninl init_series start end inc =\\n inl total : f64 =\n",
+ "> conv ((end - \n",
"> start)...et/spiral_Eval/packages/2acc44d97e6b50ce3caf39a0b93135633484d22c3ef6e77\n",
"> 97ce64875a41451f4/main.spi\"}} / result:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:47 \u001B[90mv\u001B[0m #223 Supervisor.sendJson / port: 13805 / \n",
- "> json: \n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:10 \u001B[90mv\u001B[0m #77 Supervisor.sendJson / port: 13805 / json:\n",
"> {\"BuildFile\":{\"backend\":\"Fsharp\",\"uri\":\"file:///c:/home/git/polyglot/target/spir\n",
"> al_Eval/packages/2acc44d97e6b50ce3caf39a0b93135633484d22c3ef6e7797ce64875a41451f\n",
"> 4/main.spi\"}} / result:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:48 \u001B[94md\u001B[0m #224 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\2acc44d97e6b50ce3caf39a0b931356\n",
- "> 33484d22c3ef6e7797ce64875a41451f4\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:48 \u001B[94md\u001B[0m #225 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\2acc44d97e6b50ce3caf39a0b931356\n",
- "> 33484d22c3ef6e7797ce64875a41451f4\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:48 \u001B[94md\u001B[0m #226 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\2acc44d97e6b50ce3caf39a0b931356\n",
- "> 33484d22c3ef6e7797ce64875a41451f4\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:48 \u001B[94md\u001B[0m #227 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\2acc44d97e6b50ce3caf39a0b931356\n",
- "> 33484d22c3ef6e7797ce64875a41451f4\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:49 \u001B[94md\u001B[0m #228 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\2acc44d97e6b50ce3caf39a0b931356\n",
- "> 33484d22c3ef6e7797ce64875a41451f4\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:49 \u001B[94md\u001B[0m #229 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\2acc44d97e6b50ce3caf39a0b931356\n",
- "> 33484d22c3ef6e7797ce64875a41451f4\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:49 \u001B[94md\u001B[0m #230 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\2acc44d97e6b50ce3caf39a0b931356\n",
- "> 33484d22c3ef6e7797ce64875a41451f4\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:49 \u001B[94md\u001B[0m #231 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\2acc44d97e6b50ce3caf39a0b931356\n",
- "> 33484d22c3ef6e7797ce64875a41451f4\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:50 \u001B[94md\u001B[0m #232 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\2acc44d97e6b50ce3caf39a0b931356\n",
- "> 33484d22c3ef6e7797ce64875a41451f4\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:50 \u001B[94md\u001B[0m #233 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\2acc44d97e6b50ce3caf39a0b931356\n",
- "> 33484d22c3ef6e7797ce64875a41451f4\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:50 \u001B[94md\u001B[0m #234 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\2acc44d97e6b50ce3caf39a0b931356\n",
- "> 33484d22c3ef6e7797ce64875a41451f4\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:50 \u001B[94md\u001B[0m #235 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\2acc44d97e6b50ce3caf39a0b931356\n",
- "> 33484d22c3ef6e7797ce64875a41451f4\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:51 \u001B[94md\u001B[0m #236 Supervisor.buildFile / AsyncSeq.scan / \n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:10 \u001B[94md\u001B[0m #78 Supervisor.buildFile / AsyncSeq.scan / \n",
"> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\2acc44d97e6b50ce3caf39a0b931356\n",
+ "> c:/home/git\\polyglot\\target/spiral_Eval\\packages\\2acc44d97e6b50ce3caf39a0b931356\n",
"> 33484d22c3ef6e7797ce64875a41451f4\\main.spi / errors: [] / outputContentResult: \n",
"> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
"> \u001B[38;2;38;140;38m│\u001B[0m 0.33332500000000004\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:51 \u001B[94md\u001B[0m #237 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\2acc44d97e6b50ce3caf39a0b931356\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:10 \u001B[94md\u001B[0m #79 Supervisor.buildFile / takeWhileInclusive\n",
+ "> / path: \n",
+ "> c:/home/git\\polyglot\\target/spiral_Eval\\packages\\2acc44d97e6b50ce3caf39a0b931356\n",
"> 33484d22c3ef6e7797ce64875a41451f4\\main.spi / errors: [] / typeErrorCount: 0 / \n",
"> retry: 0 / outputContent:\n",
"> \u001B[38;2;38;140;38m│\u001B[0m 0.33332500000000004\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:57 \u001B[90mv\u001B[0m #52 async.run_with_timeout_async / { timeout \n",
- "> = 100 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:51 \u001B[94md\u001B[0m #238 FileSystem.watchWithFilter / Disposing \n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:10 \u001B[94md\u001B[0m #80 FileSystem.watchWithFilter / Disposing \n",
"> watch stream / filter: FileName, LastWrite\n",
"> \u001B[38;2;38;140;38m│\u001B[0m Some (Some \"0.33332500000000004\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \", [])\n",
@@ -11051,255 +9457,60 @@
"> // |> _assertEqual None\n",
"> // |> fun x -> printfn $\"{x.ToDisplayString ()}\"\n",
"> \n",
- "> ── [ 4.34s - stdout ] ──────────────────────────────────────────────────────────\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:58 \u001B[90mv\u001B[0m #53 async.run_with_timeout_async / { timeout \n",
+ "> ── [ 386.72ms - stdout ] ───────────────────────────────────────────────────────\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:19 \u001B[90mv\u001B[0m #11 async.run_with_timeout_async / { timeout \n",
"> = 180 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:55 \u001B[94md\u001B[0m #61 runtime.execute_with_options_async / { \n",
- "> file_name = dotnet; arguments = US5_0\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \"\"C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral \n",
- "> Language 2\\artifacts\\bin\\The Spiral Language 2\\release\\Spiral.dll\" --port 13805 \n",
- "> --default-int i32 --default-float f64\"; options = { command = dotnet \n",
- "> \"C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral Language \n",
- "> 2\\artifacts\\bin\\The Spiral Language 2\\release\\Spiral.dll\" --port 13805 \n",
- "> --default-int i32 --default-float f64; cancellation_token = Some \n",
- "> System.Threading.CancellationToken; environment_variables = [||]; on_line = Some\n",
- "> ; stdin = None; trace = true; working_directory = Some \n",
- "> \"C:\\home\\git\\polyglot\" } }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:55 \u001B[90mv\u001B[0m #62 > 00:00:00 \u001B[94md\u001B[0m #1 pwd: \n",
- "> C:\\home\\git\\polyglot\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:55 \u001B[90mv\u001B[0m #63 > 00:00:00 \u001B[94md\u001B[0m #2 dllPath: \n",
- "> C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral Language \n",
- "> 2\\artifacts\\bin\\The Spiral Language 2\\release\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:55 \u001B[90mv\u001B[0m #64 > 00:00:00 \u001B[94md\u001B[0m #3 targetDir: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:58 \u001B[90mv\u001B[0m #54 async.run_with_timeout_async / { timeout \n",
- "> = 100 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:58 \u001B[90mv\u001B[0m #55 async.run_with_timeout_async / { timeout \n",
- "> = 100 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:55 \u001B[90mv\u001B[0m #65 > Starting the Spiral Server. It is bound\n",
- "> to: http://localhost:13805\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:58 \u001B[90mv\u001B[0m #56 async.run_with_timeout_async / { timeout \n",
- "> = 100 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:52 \u001B[90mv\u001B[0m #239 Supervisor.sendJson / port: 13805 / \n",
- "> json: {\"Ping\":true} / result:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:52 \u001B[90mv\u001B[0m #240 Supervisor.awaitCompiler / Ping / \n",
- "> result: 'Some null' / port: 13805 / retry: 1\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:56 \u001B[90mv\u001B[0m #66 > Server bound to: http://localhost:13805\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:52 \u001B[94md\u001B[0m #241 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\883e0123fe6304a9501da46e85facc3\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:11 \u001B[94md\u001B[0m #81 Supervisor.buildFile / takeWhileInclusive\n",
+ "> / path: \n",
+ "> c:/home/git\\polyglot\\target/spiral_Eval\\packages\\883e0123fe6304a9501da46e85facc3\n",
"> 9c4ac4e3dbb77895f8ccd4581901ee2b7\\main.spi / errors: [] / typeErrorCount: 0 / \n",
"> retry: 0 / outputContent:\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:52 \u001B[94md\u001B[0m #242 Supervisor.buildFile / AsyncSeq.scan / \n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:11 \u001B[94md\u001B[0m #82 Supervisor.buildFile / AsyncSeq.scan / \n",
"> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\883e0123fe6304a9501da46e85facc3\n",
+ "> c:/home/git\\polyglot\\target/spiral_Eval\\packages\\883e0123fe6304a9501da46e85facc3\n",
"> 9c4ac4e3dbb77895f8ccd4581901ee2b7\\main.spi / errors: [] / outputContentResult: \n",
"> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:52 \u001B[94md\u001B[0m #243 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\883e0123fe6304a9501da46e85facc3\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:11 \u001B[94md\u001B[0m #83 Supervisor.buildFile / takeWhileInclusive\n",
+ "> / path: \n",
+ "> c:/home/git\\polyglot\\target/spiral_Eval\\packages\\883e0123fe6304a9501da46e85facc3\n",
"> 9c4ac4e3dbb77895f8ccd4581901ee2b7\\main.spi / errors: [] / typeErrorCount: 0 / \n",
"> retry: 0 / outputContent:\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:52 \u001B[90mv\u001B[0m #244 Supervisor.sendJson / port: 13805 / \n",
- "> json: {\"FileOpen\":{\"spiText\":\"inl rec main () = \n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:11 \u001B[90mv\u001B[0m #84 Supervisor.sendJson / port: 13805 / json:\n",
+ "> {\"FileOpen\":{\"spiText\":\"inl rec main () = \n",
"> main\",\"uri\":\"file:///c:/home/git/polyglot/target/spiral_Eval/packages/883e0123fe\n",
"> 6304a9501da46e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi\"}} / result:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:52 \u001B[90mv\u001B[0m #245 Supervisor.sendJson / port: 13805 / \n",
- "> json: \n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:11 \u001B[90mv\u001B[0m #85 Supervisor.sendJson / port: 13805 / json:\n",
"> {\"BuildFile\":{\"backend\":\"Fsharp\",\"uri\":\"file:///c:/home/git/polyglot/target/spir\n",
"> al_Eval/packages/883e0123fe6304a9501da46e85facc39c4ac4e3dbb77895f8ccd4581901ee2b\n",
"> 7/main.spi\"}} / result:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:53 \u001B[94md\u001B[0m #246 Supervisor.buildFile / AsyncSeq.scan / \n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:11 \u001B[94md\u001B[0m #86 Supervisor.buildFile / AsyncSeq.scan / \n",
"> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\883e0123fe6304a9501da46e85facc3\n",
+ "> c:/home/git\\polyglot\\target/spiral_Eval\\packages\\883e0123fe6304a9501da46e85facc3\n",
"> 9c4ac4e3dbb77895f8ccd4581901ee2b7\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:53 \u001B[94md\u001B[0m #247 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\883e0123fe6304a9501da46e85facc3\n",
- "> 9c4ac4e3dbb77895f8ccd4581901ee2b7\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 0 / outputContent:\n",
+ "> / typeErrorCount: 0 / retry: 0 / error: Some((main.spi:\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m Recursive metavariables are not allowed. A metavar cannot be \n",
+ "> unified with a type that has itself.\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m Got: 'a\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m Expected: () -> 'a, TypeErrors\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m { errors =\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m [(({ character = 18\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m line = 0 }, { character = 22\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m line = 0 }),\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m \"Recursive metavariables are not allowed. A metavar \n",
+ "> cannot be unified with a type that has itself.\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m Got: 'a\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m Expected: () -> 'a\")]\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m uri =\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m \n",
+ "> \"file:///c:/home/git/polyglot/target/spiral_Eval/packages/883e0123fe6304a9501da4\n",
+ "> 6e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi\" })) / outputContent:\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:53 \u001B[94md\u001B[0m #248 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\883e0123fe6304a9501da46e85facc3\n",
- "> 9c4ac4e3dbb77895f8ccd4581901ee2b7\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:53 \u001B[94md\u001B[0m #249 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\883e0123fe6304a9501da46e85facc3\n",
- "> 9c4ac4e3dbb77895f8ccd4581901ee2b7\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:54 \u001B[94md\u001B[0m #250 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\883e0123fe6304a9501da46e85facc3\n",
- "> 9c4ac4e3dbb77895f8ccd4581901ee2b7\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:54 \u001B[94md\u001B[0m #251 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\883e0123fe6304a9501da46e85facc3\n",
- "> 9c4ac4e3dbb77895f8ccd4581901ee2b7\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:54 \u001B[94md\u001B[0m #252 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\883e0123fe6304a9501da46e85facc3\n",
- "> 9c4ac4e3dbb77895f8ccd4581901ee2b7\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:54 \u001B[94md\u001B[0m #253 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\883e0123fe6304a9501da46e85facc3\n",
- "> 9c4ac4e3dbb77895f8ccd4581901ee2b7\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:55 \u001B[94md\u001B[0m #254 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\883e0123fe6304a9501da46e85facc3\n",
- "> 9c4ac4e3dbb77895f8ccd4581901ee2b7\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:55 \u001B[94md\u001B[0m #255 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\883e0123fe6304a9501da46e85facc3\n",
- "> 9c4ac4e3dbb77895f8ccd4581901ee2b7\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:55 \u001B[94md\u001B[0m #256 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\883e0123fe6304a9501da46e85facc3\n",
- "> 9c4ac4e3dbb77895f8ccd4581901ee2b7\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 0 / error: Some((File main has a type error \n",
- "> somewhere in its path., FatalError \"File main has a type error somewhere in its \n",
- "> path.\")) / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:55 \u001B[94md\u001B[0m #257 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\883e0123fe6304a9501da46e85facc3\n",
- "> 9c4ac4e3dbb77895f8ccd4581901ee2b7\\main.spi / errors: [] / typeErrorCount: 1 / \n",
- "> retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:55 \u001B[94md\u001B[0m #258 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\883e0123fe6304a9501da46e85facc3\n",
- "> 9c4ac4e3dbb77895f8ccd4581901ee2b7\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 1 / retry: 0 / error: Some((main.spi:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m Recursive metavariables are not allowed. A metavar cannot be \n",
- "> unified with a type that has itself.\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m Got: 'a\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m Expected: () -> 'a, TypeErrors\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m { errors =\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m [(({ character = 18\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m line = 0 }, { character = 22\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m line = 0 }),\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \"Recursive metavariables are not allowed. A metavar \n",
- "> cannot be unified with a type that has itself.\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m Got: 'a\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m Expected: () -> 'a\")]\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m uri =\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \"file:///c:/home/git/polyglot/target/spiral_Eval/packages/883e0123fe6304a9501da4\n",
- "> 6e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi\" })) / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:55 \u001B[94md\u001B[0m #259 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\883e0123fe6304a9501da46e85facc3\n",
- "> 9c4ac4e3dbb77895f8ccd4581901ee2b7\\main.spi / errors: [\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m [\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \"main.spi:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m Recursive metavariables are not allowed. A metavar cannot be \n",
- "> unified with a type that has itself.\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m Got: 'a\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m Expected: () -> 'a\",\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m {\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \"TypeErrors\": {\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \"errors\": [\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m [\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m [\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m {\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \"character\": 18,\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \"line\": 0\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m },\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m {\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \"character\": 22,\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \"line\": 0\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m ],\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \"Recursive metavariables are not allowed. A \n",
- "> metavar cannot be unified with a type that has itself.\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m Got: 'a\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m Expected: () -> 'a\"\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m ]\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m ],\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \"uri\": \n",
- "> \"file:///c:/home/git/polyglot/target/spiral_Eval/packages/883e0123fe6304a9501da4\n",
- "> 6e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi\"\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m ]\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m ] / typeErrorCount: 1 / retry: 0 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:01 \u001B[90mv\u001B[0m #57 async.run_with_timeout_async / { timeout \n",
- "> = 180 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:55 \u001B[94md\u001B[0m #260 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\883e0123fe6304a9501da46e85facc3\n",
- "> 9c4ac4e3dbb77895f8ccd4581901ee2b7\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 1 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:55 \u001B[94md\u001B[0m #261 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\883e0123fe6304a9501da46e85facc3\n",
- "> 9c4ac4e3dbb77895f8ccd4581901ee2b7\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 1 / error: / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:55 \u001B[94md\u001B[0m #262 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\883e0123fe6304a9501da46e85facc3\n",
- "> 9c4ac4e3dbb77895f8ccd4581901ee2b7\\main.spi / errors: [] / typeErrorCount: 0 / \n",
- "> retry: 1 / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:55 \u001B[90mv\u001B[0m #263 Supervisor.sendJson / port: 13805 / \n",
- "> json: {\"FileOpen\":{\"spiText\":\"inl rec main () = \n",
- "> main\",\"uri\":\"file:///c:/home/git/polyglot/target/spiral_Eval/packages/883e0123fe\n",
- "> 6304a9501da46e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi\"}} / result:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:55 \u001B[90mv\u001B[0m #264 Supervisor.sendJson / port: 13805 / \n",
- "> json: \n",
- "> {\"BuildFile\":{\"backend\":\"Fsharp\",\"uri\":\"file:///c:/home/git/polyglot/target/spir\n",
- "> al_Eval/packages/883e0123fe6304a9501da46e85facc39c4ac4e3dbb77895f8ccd4581901ee2b\n",
- "> 7/main.spi\"}} / result:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:55 \u001B[94md\u001B[0m #265 Supervisor.buildFile / AsyncSeq.scan / \n",
- "> path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\883e0123fe6304a9501da46e85facc3\n",
- "> 9c4ac4e3dbb77895f8ccd4581901ee2b7\\main.spi / errors: [] / outputContentResult: \n",
- "> / typeErrorCount: 0 / retry: 1 / error: Some((main.spi:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m Recursive metavariables are not allowed. A metavar cannot be \n",
- "> unified with a type that has itself.\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m Got: 'a\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m Expected: () -> 'a, TypeErrors\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m { errors =\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m [(({ character = 18\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m line = 0 }, { character = 22\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m line = 0 }),\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \"Recursive metavariables are not allowed. A metavar \n",
- "> cannot be unified with a type that has itself.\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m Got: 'a\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m Expected: () -> 'a\")]\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m uri =\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \"file:///c:/home/git/polyglot/target/spiral_Eval/packages/883e0123fe6304a9501da4\n",
- "> 6e85facc39c4ac4e3dbb77895f8ccd4581901ee2b7/main.spi\" })) / outputContent:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:55 \u001B[94md\u001B[0m #266 Supervisor.buildFile / \n",
- "> takeWhileInclusive / path: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\\packages\\883e0123fe6304a9501da46e85facc3\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:11 \u001B[94md\u001B[0m #87 Supervisor.buildFile / takeWhileInclusive\n",
+ "> / path: \n",
+ "> c:/home/git\\polyglot\\target/spiral_Eval\\packages\\883e0123fe6304a9501da46e85facc3\n",
"> 9c4ac4e3dbb77895f8ccd4581901ee2b7\\main.spi / errors: [\n",
"> \u001B[38;2;38;140;38m│\u001B[0m [\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \"main.spi:\n",
@@ -11333,13 +9544,9 @@
"> \u001B[38;2;38;140;38m│\u001B[0m }\n",
"> \u001B[38;2;38;140;38m│\u001B[0m }\n",
"> \u001B[38;2;38;140;38m│\u001B[0m ]\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m ] / typeErrorCount: 0 / retry: 1 / outputContent:\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m ] / typeErrorCount: 0 / retry: 0 / outputContent:\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:55 \u001B[94md\u001B[0m #267 FileSystem.watchWithFilter / Disposing \n",
- "> watch stream / filter: FileName, LastWrite\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:02 \u001B[90mv\u001B[0m #58 async.run_with_timeout_async / { timeout \n",
- "> = 100 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:55 \u001B[94md\u001B[0m #268 FileSystem.watchWithFilter / Disposing \n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:11 \u001B[94md\u001B[0m #88 FileSystem.watchWithFilter / Disposing \n",
"> watch stream / filter: FileName, LastWrite\n",
"> \u001B[38;2;38;140;38m│\u001B[0m Some\n",
"> \u001B[38;2;38;140;38m│\u001B[0m (None,\n",
@@ -11450,46 +9657,14 @@
"> 8; 0; 0; 2; 1; 4; 0; 0;\n",
"> 2; 1; 8; 0; 0; 1; 1; 8; 0 |]])\n",
"> \n",
- "> ── [ 2.19s - stdout ] ──────────────────────────────────────────────────────────\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:02 \u001B[90mv\u001B[0m #59 async.run_with_timeout_async / { timeout \n",
+ "> ── [ 388.86ms - stdout ] ───────────────────────────────────────────────────────\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:20 \u001B[90mv\u001B[0m #12 async.run_with_timeout_async / { timeout \n",
"> = 180 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:59 \u001B[94md\u001B[0m #67 runtime.execute_with_options_async / { \n",
- "> file_name = dotnet; arguments = US5_0\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \"\"C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral \n",
- "> Language 2\\artifacts\\bin\\The Spiral Language 2\\release\\Spiral.dll\" --port 13805 \n",
- "> --default-int i32 --default-float f64\"; options = { command = dotnet \n",
- "> \"C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral Language \n",
- "> 2\\artifacts\\bin\\The Spiral Language 2\\release\\Spiral.dll\" --port 13805 \n",
- "> --default-int i32 --default-float f64; cancellation_token = Some \n",
- "> System.Threading.CancellationToken; environment_variables = [||]; on_line = Some\n",
- "> ; stdin = None; trace = true; working_directory = Some \n",
- "> \"C:\\home\\git\\polyglot\" } }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:00 \u001B[90mv\u001B[0m #68 > 00:00:00 \u001B[94md\u001B[0m #1 pwd: \n",
- "> C:\\home\\git\\polyglot\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:00 \u001B[90mv\u001B[0m #69 > 00:00:00 \u001B[94md\u001B[0m #2 dllPath: \n",
- "> C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral Language \n",
- "> 2\\artifacts\\bin\\The Spiral Language 2\\release\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:00 \u001B[90mv\u001B[0m #70 > 00:00:00 \u001B[94md\u001B[0m #3 targetDir: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:03 \u001B[90mv\u001B[0m #60 async.run_with_timeout_async / { timeout \n",
- "> = 100 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:03 \u001B[90mv\u001B[0m #61 async.run_with_timeout_async / { timeout \n",
- "> = 100 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:00 \u001B[90mv\u001B[0m #71 > Starting the Spiral Server. It is bound\n",
- "> to: http://localhost:13805\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:03 \u001B[90mv\u001B[0m #62 async.run_with_timeout_async / { timeout \n",
- "> = 100 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:57 \u001B[90mv\u001B[0m #269 Supervisor.sendJson / port: 13805 / \n",
- "> json: {\"Ping\":true} / result:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:57 \u001B[90mv\u001B[0m #270 Supervisor.awaitCompiler / Ping / \n",
- "> result: 'Some null' / port: 13805 / retry: 1\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:00 \u001B[90mv\u001B[0m #72 > Server bound to: http://localhost:13805\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:57 \u001B[90mv\u001B[0m #271 Supervisor.sendJson / port: 13805 / \n",
- "> json: {\"FileOpen\":{\"spiText\":\"inl main () = \n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:11 \u001B[90mv\u001B[0m #89 Supervisor.sendJson / port: 13805 / json:\n",
+ "> {\"FileOpen\":{\"spiText\":\"inl main () = \n",
"> ()\",\"uri\":\"file:///c:/home/git/polyglot/target/spiral_Eval/packages/20e725d46cfd\n",
"> c99c0f307f1933a76ec7da4570c1b757721164d86f19feaf821e/main.spi\"}} / result:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:58 \u001B[90mv\u001B[0m #272 Supervisor.sendJson / port: 13805 / \n",
- "> json: \n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:12 \u001B[90mv\u001B[0m #90 Supervisor.sendJson / port: 13805 / json:\n",
"> {\"FileTokenRange\":{\"range\":[{\"character\":0,\"line\":0},{\"character\":16,\"line\":0}],\n",
"> \"uri\":\"file:///c:/ho...et/spiral_Eval/packages/20e725d46cfdc99c0f307f1933a76ec7d\n",
"> a4570c1b757721164d86f19feaf821e/main.spi\"}} / result: Some([\n",
@@ -11527,12 +9702,6 @@
"> \u001B[38;2;38;140;38m│\u001B[0m 8,\n",
"> \u001B[38;2;38;140;38m│\u001B[0m 0\n",
"> \u001B[38;2;38;140;38m│\u001B[0m ])\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:58 \u001B[90mv\u001B[0m #273 Supervisor.sendJson / port: 13805 / \n",
- "> json: \n",
- "> {\"FileDelete\":{\"uris\":[\"file:///c:/home/git/polyglot/target/spiral_Eval/packages\n",
- "> /20e725d46cfdc99c0f307f1933a76ec7da4570c1b757721164d86f19feaf821e\"]}} / result:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:04 \u001B[90mv\u001B[0m #63 async.run_with_timeout_async / { timeout \n",
- "> = 100 }\n",
"> \u001B[38;2;38;140;38m│\u001B[0m Some [|0; 0; 3; 7; 0; 0; 4; 4; 0; 0; 0; 5; 1; 8; 0; 0; 1; 1; \n",
"> 8; 0; 0; 2; 1; 4; 0; 0; 2; 1; 8; 0; 0; 1; 1; 8; 0|]\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
@@ -11549,46 +9718,14 @@
"> 8; 0; 0; 2; 1; 4; 0; 0;\n",
"> 2; 1; 3; 0; 0; 1; 3; 12; 0 |]])\n",
"> \n",
- "> ── [ 2.20s - stdout ] ──────────────────────────────────────────────────────────\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:04 \u001B[90mv\u001B[0m #64 async.run_with_timeout_async / { timeout \n",
+ "> ── [ 359.95ms - stdout ] ───────────────────────────────────────────────────────\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:20 \u001B[90mv\u001B[0m #13 async.run_with_timeout_async / { timeout \n",
"> = 180 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:02 \u001B[94md\u001B[0m #73 runtime.execute_with_options_async / { \n",
- "> file_name = dotnet; arguments = US5_0\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \"\"C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral \n",
- "> Language 2\\artifacts\\bin\\The Spiral Language 2\\release\\Spiral.dll\" --port 13805 \n",
- "> --default-int i32 --default-float f64\"; options = { command = dotnet \n",
- "> \"C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral Language \n",
- "> 2\\artifacts\\bin\\The Spiral Language 2\\release\\Spiral.dll\" --port 13805 \n",
- "> --default-int i32 --default-float f64; cancellation_token = Some \n",
- "> System.Threading.CancellationToken; environment_variables = [||]; on_line = Some\n",
- "> ; stdin = None; trace = true; working_directory = Some \n",
- "> \"C:\\home\\git\\polyglot\" } }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:02 \u001B[90mv\u001B[0m #74 > 00:00:00 \u001B[94md\u001B[0m #1 pwd: \n",
- "> C:\\home\\git\\polyglot\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:02 \u001B[90mv\u001B[0m #75 > 00:00:00 \u001B[94md\u001B[0m #2 dllPath: \n",
- "> C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral Language \n",
- "> 2\\artifacts\\bin\\The Spiral Language 2\\release\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:02 \u001B[90mv\u001B[0m #76 > 00:00:00 \u001B[94md\u001B[0m #3 targetDir: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:05 \u001B[90mv\u001B[0m #65 async.run_with_timeout_async / { timeout \n",
- "> = 100 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:05 \u001B[90mv\u001B[0m #66 async.run_with_timeout_async / { timeout \n",
- "> = 100 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:02 \u001B[90mv\u001B[0m #77 > Starting the Spiral Server. It is bound\n",
- "> to: http://localhost:13805\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:05 \u001B[90mv\u001B[0m #67 async.run_with_timeout_async / { timeout \n",
- "> = 100 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:59 \u001B[90mv\u001B[0m #274 Supervisor.sendJson / port: 13805 / \n",
- "> json: {\"Ping\":true} / result:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:59 \u001B[90mv\u001B[0m #275 Supervisor.awaitCompiler / Ping / \n",
- "> result: 'Some null' / port: 13805 / retry: 1\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:02 \u001B[90mv\u001B[0m #78 > Server bound to: http://localhost:13805\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:59 \u001B[90mv\u001B[0m #276 Supervisor.sendJson / port: 13805 / \n",
- "> json: {\"FileOpen\":{\"spiText\":\"inl main () = \n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:12 \u001B[90mv\u001B[0m #91 Supervisor.sendJson / port: 13805 / json:\n",
+ "> {\"FileOpen\":{\"spiText\":\"inl main () = \n",
"> 1i32\",\"uri\":\"file:///c:/home/git/polyglot/target/spiral_Eval/packages/5370829508\n",
"> ddefc7386d6b4d280722b47d97cb925585525bee733a187ff8f18b/main.spi\"}} / result:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:00 \u001B[90mv\u001B[0m #277 Supervisor.sendJson / port: 13805 / \n",
- "> json: \n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:12 \u001B[90mv\u001B[0m #92 Supervisor.sendJson / port: 13805 / json:\n",
"> {\"FileTokenRange\":{\"range\":[{\"character\":0,\"line\":0},{\"character\":18,\"line\":0}],\n",
"> \"uri\":\"file:///c:/ho...et/spiral_Eval/packages/5370829508ddefc7386d6b4d280722b47\n",
"> d97cb925585525bee733a187ff8f18b/main.spi\"}} / result: Some([\n",
@@ -11626,12 +9763,6 @@
"> \u001B[38;2;38;140;38m│\u001B[0m 12,\n",
"> \u001B[38;2;38;140;38m│\u001B[0m 0\n",
"> \u001B[38;2;38;140;38m│\u001B[0m ])\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:00 \u001B[90mv\u001B[0m #278 Supervisor.sendJson / port: 13805 / \n",
- "> json: \n",
- "> {\"FileDelete\":{\"uris\":[\"file:///c:/home/git/polyglot/target/spiral_Eval/packages\n",
- "> /5370829508ddefc7386d6b4d280722b47d97cb925585525bee733a187ff8f18b\"]}} / result:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:06 \u001B[90mv\u001B[0m #68 async.run_with_timeout_async / { timeout \n",
- "> = 100 }\n",
"> \u001B[38;2;38;140;38m│\u001B[0m Some [|0; 0; 3; 7; 0; 0; 4; 4; 0; 0; 0; 5; 1; 8; 0; 0; 1; 1; \n",
"> 8; 0; 0; 2; 1; 4; 0; 0; 2; 1; 3; 0; 0; 1; 3; 12; 0|]\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
@@ -11727,55 +9858,17 @@
"> |> Option.flatten\n",
"> |> _assertEqual (Some \"() -> ()\")\n",
"> \n",
- "> ── [ 4.08s - stdout ] ──────────────────────────────────────────────────────────\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:07 \u001B[90mv\u001B[0m #69 async.run_with_timeout_async / { timeout \n",
+ "> ── [ 350.21ms - stdout ] ───────────────────────────────────────────────────────\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:21 \u001B[90mv\u001B[0m #14 async.run_with_timeout_async / { timeout \n",
"> = 180 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:04 \u001B[94md\u001B[0m #79 runtime.execute_with_options_async / { \n",
- "> file_name = dotnet; arguments = US5_0\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \"\"C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral \n",
- "> Language 2\\artifacts\\bin\\The Spiral Language 2\\release\\Spiral.dll\" --port 13805 \n",
- "> --default-int i32 --default-float f64\"; options = { command = dotnet \n",
- "> \"C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral Language \n",
- "> 2\\artifacts\\bin\\The Spiral Language 2\\release\\Spiral.dll\" --port 13805 \n",
- "> --default-int i32 --default-float f64; cancellation_token = Some \n",
- "> System.Threading.CancellationToken; environment_variables = [||]; on_line = Some\n",
- "> ; stdin = None; trace = true; working_directory = Some \n",
- "> \"C:\\home\\git\\polyglot\" } }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:04 \u001B[90mv\u001B[0m #80 > 00:00:00 \u001B[94md\u001B[0m #1 pwd: \n",
- "> C:\\home\\git\\polyglot\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:04 \u001B[90mv\u001B[0m #81 > 00:00:00 \u001B[94md\u001B[0m #2 dllPath: \n",
- "> C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral Language \n",
- "> 2\\artifacts\\bin\\The Spiral Language 2\\release\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:04 \u001B[90mv\u001B[0m #82 > 00:00:00 \u001B[94md\u001B[0m #3 targetDir: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:07 \u001B[90mv\u001B[0m #70 async.run_with_timeout_async / { timeout \n",
- "> = 100 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:07 \u001B[90mv\u001B[0m #71 async.run_with_timeout_async / { timeout \n",
- "> = 100 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:05 \u001B[90mv\u001B[0m #83 > Starting the Spiral Server. It is bound\n",
- "> to: http://localhost:13805\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:08 \u001B[90mv\u001B[0m #72 async.run_with_timeout_async / { timeout \n",
- "> = 100 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:01 \u001B[90mv\u001B[0m #279 Supervisor.sendJson / port: 13805 / \n",
- "> json: {\"Ping\":true} / result:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:01 \u001B[90mv\u001B[0m #280 Supervisor.awaitCompiler / Ping / \n",
- "> result: 'Some null' / port: 13805 / retry: 1\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:05 \u001B[90mv\u001B[0m #84 > Server bound to: http://localhost:13805\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:01 \u001B[90mv\u001B[0m #281 Supervisor.sendJson / port: 13805 / \n",
- "> json: {\"FileOpen\":{\"spiText\":\"inl main () = \n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:12 \u001B[90mv\u001B[0m #93 Supervisor.sendJson / port: 13805 / json:\n",
+ "> {\"FileOpen\":{\"spiText\":\"inl main () = \n",
"> ()\",\"uri\":\"file:///c:/home/git/polyglot/target/spiral_Eval/packages/20e725d46cfd\n",
"> c99c0f307f1933a76ec7da4570c1b757721164d86f19feaf821e/main.spi\"}} / result:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:04 \u001B[90mv\u001B[0m #282 Supervisor.sendJson / port: 13805 / \n",
- "> json: \n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:12 \u001B[90mv\u001B[0m #94 Supervisor.sendJson / port: 13805 / json:\n",
"> {\"HoverAt\":{\"pos\":{\"character\":4,\"line\":0},\"uri\":\"file:///c:/home/git/polyglot/t\n",
"> arget/spiral_Eval/packages/20e725d46cfdc99c0f307f1933a76ec7da4570c1b757721164d86\n",
"> f19feaf821e/main.spi\"}} / result: Some(() -> ())\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:04 \u001B[90mv\u001B[0m #283 Supervisor.sendJson / port: 13805 / \n",
- "> json: \n",
- "> {\"FileDelete\":{\"uris\":[\"file:///c:/home/git/polyglot/target/spiral_Eval/packages\n",
- "> /20e725d46cfdc99c0f307f1933a76ec7da4570c1b757721164d86f19feaf821e\"]}} / result:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:11 \u001B[90mv\u001B[0m #73 async.run_with_timeout_async / { timeout \n",
- "> = 100 }\n",
"> \u001B[38;2;38;140;38m│\u001B[0m Some \"() -> ()\"\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
@@ -11788,55 +9881,17 @@
"> |> Option.flatten\n",
"> |> _assertEqual (Some null)\n",
"> \n",
- "> ── [ 4.03s - stdout ] ──────────────────────────────────────────────────────────\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:11 \u001B[90mv\u001B[0m #74 async.run_with_timeout_async / { timeout \n",
+ "> ── [ 341.42ms - stdout ] ───────────────────────────────────────────────────────\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:21 \u001B[90mv\u001B[0m #15 async.run_with_timeout_async / { timeout \n",
"> = 180 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:08 \u001B[94md\u001B[0m #85 runtime.execute_with_options_async / { \n",
- "> file_name = dotnet; arguments = US5_0\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \"\"C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral \n",
- "> Language 2\\artifacts\\bin\\The Spiral Language 2\\release\\Spiral.dll\" --port 13805 \n",
- "> --default-int i32 --default-float f64\"; options = { command = dotnet \n",
- "> \"C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral Language \n",
- "> 2\\artifacts\\bin\\The Spiral Language 2\\release\\Spiral.dll\" --port 13805 \n",
- "> --default-int i32 --default-float f64; cancellation_token = Some \n",
- "> System.Threading.CancellationToken; environment_variables = [||]; on_line = Some\n",
- "> ; stdin = None; trace = true; working_directory = Some \n",
- "> \"C:\\home\\git\\polyglot\" } }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:08 \u001B[90mv\u001B[0m #86 > 00:00:00 \u001B[94md\u001B[0m #1 pwd: \n",
- "> C:\\home\\git\\polyglot\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:08 \u001B[90mv\u001B[0m #87 > 00:00:00 \u001B[94md\u001B[0m #2 dllPath: \n",
- "> C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral Language \n",
- "> 2\\artifacts\\bin\\The Spiral Language 2\\release\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:08 \u001B[90mv\u001B[0m #88 > 00:00:00 \u001B[94md\u001B[0m #3 targetDir: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:11 \u001B[90mv\u001B[0m #75 async.run_with_timeout_async / { timeout \n",
- "> = 100 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:12 \u001B[90mv\u001B[0m #76 async.run_with_timeout_async / { timeout \n",
- "> = 100 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:09 \u001B[90mv\u001B[0m #89 > Starting the Spiral Server. It is bound\n",
- "> to: http://localhost:13805\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:12 \u001B[90mv\u001B[0m #77 async.run_with_timeout_async / { timeout \n",
- "> = 100 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:06 \u001B[90mv\u001B[0m #284 Supervisor.sendJson / port: 13805 / \n",
- "> json: {\"Ping\":true} / result:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:06 \u001B[90mv\u001B[0m #285 Supervisor.awaitCompiler / Ping / \n",
- "> result: 'Some null' / port: 13805 / retry: 1\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:09 \u001B[90mv\u001B[0m #90 > Server bound to: http://localhost:13805\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:06 \u001B[90mv\u001B[0m #286 Supervisor.sendJson / port: 13805 / \n",
- "> json: {\"FileOpen\":{\"spiText\":\"inl main () = \n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:13 \u001B[90mv\u001B[0m #95 Supervisor.sendJson / port: 13805 / json:\n",
+ "> {\"FileOpen\":{\"spiText\":\"inl main () = \n",
"> ()\",\"uri\":\"file:///c:/home/git/polyglot/target/spiral_Eval/packages/20e725d46cfd\n",
"> c99c0f307f1933a76ec7da4570c1b757721164d86f19feaf821e/main.spi\"}} / result:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:08 \u001B[90mv\u001B[0m #287 Supervisor.sendJson / port: 13805 / \n",
- "> json: \n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:13 \u001B[90mv\u001B[0m #96 Supervisor.sendJson / port: 13805 / json:\n",
"> {\"HoverAt\":{\"pos\":{\"character\":0,\"line\":0},\"uri\":\"file:///c:/home/git/polyglot/t\n",
"> arget/spiral_Eval/packages/20e725d46cfdc99c0f307f1933a76ec7da4570c1b757721164d86\n",
"> f19feaf821e/main.spi\"}} / result:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:08 \u001B[90mv\u001B[0m #288 Supervisor.sendJson / port: 13805 / \n",
- "> json: \n",
- "> {\"FileDelete\":{\"uris\":[\"file:///c:/home/git/polyglot/target/spiral_Eval/packages\n",
- "> /20e725d46cfdc99c0f307f1933a76ec7da4570c1b757721164d86f19feaf821e\"]}} / result:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:15 \u001B[90mv\u001B[0m #78 async.run_with_timeout_async / { timeout \n",
- "> = 100 }\n",
"> \u001B[38;2;38;140;38m│\u001B[0m Some null\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
@@ -11849,55 +9904,17 @@
"> |> Option.flatten\n",
"> |> _assertEqual (Some \"forall 'a. () -> 'a\")\n",
"> \n",
- "> ── [ 4.12s - stdout ] ──────────────────────────────────────────────────────────\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:15 \u001B[90mv\u001B[0m #79 async.run_with_timeout_async / { timeout \n",
+ "> ── [ 374.20ms - stdout ] ───────────────────────────────────────────────────────\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:21 \u001B[90mv\u001B[0m #16 async.run_with_timeout_async / { timeout \n",
"> = 180 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:12 \u001B[94md\u001B[0m #91 runtime.execute_with_options_async / { \n",
- "> file_name = dotnet; arguments = US5_0\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \"\"C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral \n",
- "> Language 2\\artifacts\\bin\\The Spiral Language 2\\release\\Spiral.dll\" --port 13805 \n",
- "> --default-int i32 --default-float f64\"; options = { command = dotnet \n",
- "> \"C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral Language \n",
- "> 2\\artifacts\\bin\\The Spiral Language 2\\release\\Spiral.dll\" --port 13805 \n",
- "> --default-int i32 --default-float f64; cancellation_token = Some \n",
- "> System.Threading.CancellationToken; environment_variables = [||]; on_line = Some\n",
- "> ; stdin = None; trace = true; working_directory = Some \n",
- "> \"C:\\home\\git\\polyglot\" } }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:13 \u001B[90mv\u001B[0m #92 > 00:00:00 \u001B[94md\u001B[0m #1 pwd: \n",
- "> C:\\home\\git\\polyglot\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:13 \u001B[90mv\u001B[0m #93 > 00:00:00 \u001B[94md\u001B[0m #2 dllPath: \n",
- "> C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral Language \n",
- "> 2\\artifacts\\bin\\The Spiral Language 2\\release\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:13 \u001B[90mv\u001B[0m #94 > 00:00:00 \u001B[94md\u001B[0m #3 targetDir: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:15 \u001B[90mv\u001B[0m #80 async.run_with_timeout_async / { timeout \n",
- "> = 100 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:16 \u001B[90mv\u001B[0m #81 async.run_with_timeout_async / { timeout \n",
- "> = 100 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:13 \u001B[90mv\u001B[0m #95 > Starting the Spiral Server. It is bound\n",
- "> to: http://localhost:13805\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:16 \u001B[90mv\u001B[0m #82 async.run_with_timeout_async / { timeout \n",
- "> = 100 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:10 \u001B[90mv\u001B[0m #289 Supervisor.sendJson / port: 13805 / \n",
- "> json: {\"Ping\":true} / result:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:10 \u001B[90mv\u001B[0m #290 Supervisor.awaitCompiler / Ping / \n",
- "> result: 'Some null' / port: 13805 / retry: 1\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:13 \u001B[90mv\u001B[0m #96 > Server bound to: http://localhost:13805\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:10 \u001B[90mv\u001B[0m #291 Supervisor.sendJson / port: 13805 / \n",
- "> json: {\"FileOpen\":{\"spiText\":\"inl rec main () = \n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:13 \u001B[90mv\u001B[0m #97 Supervisor.sendJson / port: 13805 / json:\n",
+ "> {\"FileOpen\":{\"spiText\":\"inl rec main () = \n",
"> main\",\"uri\":\"file:///c:/home/git/polyglot/target/spiral_Eval/packages/7fa7f94d5c\n",
"> b478aa7827ac687ed3514a89f2a8e22fc895db0f8b03cacf92c7e2/main.spi\"}} / result:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:12 \u001B[90mv\u001B[0m #292 Supervisor.sendJson / port: 13805 / \n",
- "> json: \n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:13 \u001B[90mv\u001B[0m #98 Supervisor.sendJson / port: 13805 / json:\n",
"> {\"HoverAt\":{\"pos\":{\"character\":8,\"line\":0},\"uri\":\"file:///c:/home/git/polyglot/t\n",
"> arget/spiral_Eval/packages/7fa7f94d5cb478aa7827ac687ed3514a89f2a8e22fc895db0f8b0\n",
"> 3cacf92c7e2/main.spi\"}} / result: Some(forall 'a. () -> 'a)\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:12 \u001B[90mv\u001B[0m #293 Supervisor.sendJson / port: 13805 / \n",
- "> json: \n",
- "> {\"FileDelete\":{\"uris\":[\"file:///c:/home/git/polyglot/target/spiral_Eval/packages\n",
- "> /7fa7f94d5cb478aa7827ac687ed3514a89f2a8e22fc895db0f8b03cacf92c7e2\"]}} / result:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:19 \u001B[90mv\u001B[0m #83 async.run_with_timeout_async / { timeout \n",
- "> = 100 }\n",
"> \u001B[38;2;38;140;38m│\u001B[0m Some \"forall 'a. () -> 'a\"\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
@@ -11910,56 +9927,18 @@
"> |> Option.flatten\n",
"> |> _assertEqual (Some \"forall 'a {number}. () -> 'a\")\n",
"> \n",
- "> ── [ 4.08s - stdout ] ──────────────────────────────────────────────────────────\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:19 \u001B[90mv\u001B[0m #84 async.run_with_timeout_async / { timeout \n",
+ "> ── [ 376.53ms - stdout ] ───────────────────────────────────────────────────────\n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:22 \u001B[90mv\u001B[0m #17 async.run_with_timeout_async / { timeout \n",
"> = 180 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:16 \u001B[94md\u001B[0m #97 runtime.execute_with_options_async / { \n",
- "> file_name = dotnet; arguments = US5_0\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m \"\"C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral \n",
- "> Language 2\\artifacts\\bin\\The Spiral Language 2\\release\\Spiral.dll\" --port 13805 \n",
- "> --default-int i32 --default-float f64\"; options = { command = dotnet \n",
- "> \"C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral Language \n",
- "> 2\\artifacts\\bin\\The Spiral Language 2\\release\\Spiral.dll\" --port 13805 \n",
- "> --default-int i32 --default-float f64; cancellation_token = Some \n",
- "> System.Threading.CancellationToken; environment_variables = [||]; on_line = Some\n",
- "> ; stdin = None; trace = true; working_directory = Some \n",
- "> \"C:\\home\\git\\polyglot\" } }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:17 \u001B[90mv\u001B[0m #98 > 00:00:00 \u001B[94md\u001B[0m #1 pwd: \n",
- "> C:\\home\\git\\polyglot\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:17 \u001B[90mv\u001B[0m #99 > 00:00:00 \u001B[94md\u001B[0m #2 dllPath: \n",
- "> C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral Language \n",
- "> 2\\artifacts\\bin\\The Spiral Language 2\\release\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:17 \u001B[90mv\u001B[0m #100 > 00:00:00 \u001B[94md\u001B[0m #3 targetDir: \n",
- "> C:\\home\\git\\polyglot\\target/spiral_Eval\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:20 \u001B[90mv\u001B[0m #85 async.run_with_timeout_async / { timeout \n",
- "> = 100 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:20 \u001B[90mv\u001B[0m #86 async.run_with_timeout_async / { timeout \n",
- "> = 100 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:17 \u001B[90mv\u001B[0m #101 > Starting the Spiral Server. It is \n",
- "> bound to: http://localhost:13805\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:20 \u001B[90mv\u001B[0m #87 async.run_with_timeout_async / { timeout \n",
- "> = 100 }\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:14 \u001B[90mv\u001B[0m #294 Supervisor.sendJson / port: 13805 / \n",
- "> json: {\"Ping\":true} / result:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:14 \u001B[90mv\u001B[0m #295 Supervisor.awaitCompiler / Ping / \n",
- "> result: 'Some null' / port: 13805 / retry: 1\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:17 \u001B[90mv\u001B[0m #102 > Server bound to: \n",
- "> http://localhost:13805\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:14 \u001B[90mv\u001B[0m #296 Supervisor.sendJson / port: 13805 / \n",
- "> json: {\"FileOpen\":{\"spiText\":\"inl main () = \n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:14 \u001B[90mv\u001B[0m #99 Supervisor.sendJson / port: 13805 / json:\n",
+ "> {\"FileOpen\":{\"spiText\":\"inl main () = \n",
"> 1\",\"uri\":\"file:///c:/home/git/polyglot/target/spiral_Eval/packages/2f51fd7aa58d1\n",
"> ea373b484460dba65cec845b6dddbc1fc6de2eea30335846eee/main.spi\"}} / result:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:16 \u001B[90mv\u001B[0m #297 Supervisor.sendJson / port: 13805 / \n",
+ "> \u001B[38;2;38;140;38m│\u001B[0m 00:00:14 \u001B[90mv\u001B[0m #100 Supervisor.sendJson / port: 13805 / \n",
"> json: \n",
"> {\"HoverAt\":{\"pos\":{\"character\":4,\"line\":0},\"uri\":\"file:///c:/home/git/polyglot/t\n",
"> arget/spiral_Eval/packages/2f51fd7aa58d1ea373b484460dba65cec845b6dddbc1fc6de2eea\n",
"> 30335846eee/main.spi\"}} / result: Some(forall 'a {number}. () -> 'a)\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:17 \u001B[90mv\u001B[0m #298 Supervisor.sendJson / port: 13805 / \n",
- "> json: \n",
- "> {\"FileDelete\":{\"uris\":[\"file:///c:/home/git/polyglot/target/spiral_Eval/packages\n",
- "> /2f51fd7aa58d1ea373b484460dba65cec845b6dddbc1fc6de2eea30335846eee\"]}} / result:\n",
- "> \u001B[38;2;38;140;38m│\u001B[0m 00:01:23 \u001B[90mv\u001B[0m #88 async.run_with_timeout_async / { timeout \n",
- "> = 100 }\n",
"> \u001B[38;2;38;140;38m│\u001B[0m Some \"forall 'a {number}. () -> 'a\"\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
"> \u001B[38;2;38;140;38m│\u001B[0m \n",
@@ -11996,7 +9975,7 @@
"> \n",
"> Argu.ArgumentParser.Create().PrintUsage ()\n",
"> \n",
- "> ── [ 112.60ms - return value ] ─────────────────────────────────────────────────\n",
+ "> ── [ 107.98ms - return value ] ─────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m \"USAGE: dotnet-repl [--help] [--build-file ]\n",
"> \u001B[38;2;38;140;38m│\u001B[0m [--file-token-range ]\n",
"> \u001B[38;2;38;140;38m│\u001B[0m [--file-hover-at \n",
@@ -12215,7 +10194,7 @@
"> | [[||]] -> 0\n",
"> | args -> if main args = 0 then 0 else failwith \"main failed\"\n",
"> \n",
- "> ── [ 74.92ms - return value ] ──────────────────────────────────────────────────\n",
+ "> ── [ 78.83ms - return value ] ──────────────────────────────────────────────────\n",
"> \u001B[38;2;38;140;38m│\u001B[0m 0\n",
"> \u001B[38;2;38;140;38m│\u001B[0m
\n",
- "00:01:34 \u001B[90mv\u001B[39m #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 202911 }\n",
- "00:01:34 \u001B[94md\u001B[39m #4 runtime.execute_with_options / { file_name = jupyter; arguments = [\"nbconvert\", \"c:/home/git/polyglot/apps/spiral/Supervisor.dib.ipynb\", \"--to\", \"html\", \"--HTMLExporter.theme=dark\"]; options = { command = jupyter nbconvert \"c:/home/git/polyglot/apps/spiral/Supervisor.dib.ipynb\" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }\n",
- "00:01:35 \u001B[90mv\u001B[39m #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/apps/spiral/Supervisor.dib.ipynb to html\n",
- "00:01:35 \u001B[90mv\u001B[39m #6 ! C:\\Users\\i574n\\scoop\\apps\\python312\\current\\Lib\\site-packages\\nbformat\\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.\n",
- "00:01:35 \u001B[90mv\u001B[39m #7 ! validate(nb)\n",
- "00:01:36 \u001B[90mv\u001B[39m #8 ! C:\\Users\\i574n\\scoop\\apps\\python312\\current\\Lib\\site-packages\\nbconvert\\filters\\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3\n",
- "00:01:36 \u001B[90mv\u001B[39m #9 ! return _pygments_highlight(\n",
- "00:01:38 \u001B[90mv\u001B[39m #10 ! [NbConvertApp] Writing 623167 bytes to c:\\home\\git\\polyglot\\apps\\spiral\\Supervisor.dib.html\n",
- "00:01:38 \u001B[90mv\u001B[39m #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 864 }\n",
- "00:01:38 \u001B[94md\u001B[39m #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 864 }\n",
- "00:01:38 \u001B[94md\u001B[39m #13 runtime.execute_with_options / { file_name = pwsh; arguments = [\"-c\", \"$counter = 1; $path = 'c:/home/git/polyglot/apps/spiral/Supervisor.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\\\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path\"]; options = { command = pwsh -c \"$counter = 1; $path = 'c:/home/git/polyglot/apps/spiral/Supervisor.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path\"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }\n",
- "00:01:38 \u001B[90mv\u001B[39m #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 }\n",
- "00:01:38 \u001B[94md\u001B[39m #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 }\n",
- "00:01:38 \u001B[94md\u001B[39m #16 spiral.run / dib / { exit_code = 0; result_length = 203834 }\n",
+ "00:00:34 \u001B[90mv\u001B[39m #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 109482 }\n",
+ "00:00:34 \u001B[94md\u001B[39m #4 runtime.execute_with_options / { file_name = jupyter; arguments = [\"nbconvert\", \"c:/home/git/polyglot/apps/spiral/Supervisor.dib.ipynb\", \"--to\", \"html\", \"--HTMLExporter.theme=dark\"]; options = { command = jupyter nbconvert \"c:/home/git/polyglot/apps/spiral/Supervisor.dib.ipynb\" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }\n",
+ "00:00:36 \u001B[90mv\u001B[39m #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/apps/spiral/Supervisor.dib.ipynb to html\n",
+ "00:00:36 \u001B[90mv\u001B[39m #6 ! C:\\Users\\i574n\\scoop\\apps\\python312\\current\\Lib\\site-packages\\nbformat\\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.\n",
+ "00:00:36 \u001B[90mv\u001B[39m #7 ! validate(nb)\n",
+ "00:00:36 \u001B[90mv\u001B[39m #8 ! C:\\Users\\i574n\\scoop\\apps\\python312\\current\\Lib\\site-packages\\nbconvert\\filters\\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3\n",
+ "00:00:36 \u001B[90mv\u001B[39m #9 ! return _pygments_highlight(\n",
+ "00:00:38 \u001B[90mv\u001B[39m #10 ! [NbConvertApp] Writing 531162 bytes to c:\\home\\git\\polyglot\\apps\\spiral\\Supervisor.dib.html\n",
+ "00:00:38 \u001B[90mv\u001B[39m #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 864 }\n",
+ "00:00:38 \u001B[94md\u001B[39m #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 864 }\n",
+ "00:00:38 \u001B[94md\u001B[39m #13 runtime.execute_with_options / { file_name = pwsh; arguments = [\"-c\", \"$counter = 1; $path = 'c:/home/git/polyglot/apps/spiral/Supervisor.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\\\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path\"]; options = { command = pwsh -c \"$counter = 1; $path = 'c:/home/git/polyglot/apps/spiral/Supervisor.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path\"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }\n",
+ "00:00:39 \u001B[90mv\u001B[39m #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 }\n",
+ "00:00:39 \u001B[94md\u001B[39m #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 }\n",
+ "00:00:39 \u001B[94md\u001B[39m #16 spiral.run / dib / { exit_code = 0; result_length = 110405 }\n",
"00:00:00 \u001B[94md\u001B[0m #1 writeDibCode / output: Fs / path: Supervisor.dib\n",
"00:00:00 \u001B[94md\u001B[0m #2 parseDibCode / output: Fs / file: Supervisor.dib\n",
- "00:00:00 \u001B[94md\u001B[0m #1 persistCodeProject / packages: [Argu; FSharp.Control.AsyncSeq; FSharp.Json; ... ] / modules: [lib/spiral/common.fsx; lib/spiral/sm.fsx; lib/spiral/crypto.fsx; ... ] / name: Supervisor / hash: / code.Length: 32767\n",
- "00:00:00 \u001B[94md\u001B[0m #2 buildProject / fullPath: C:\\home\\git\\polyglot\\target\\Builder\\Supervisor\\Supervisor.fsproj\n",
+ "00:00:00 \u001B[94md\u001B[0m #1 persistCodeProject / packages: [Argu; FSharp.Control.AsyncSeq; FSharp.Json; ... ] / modules: [deps/spiral/lib/spiral/common.fsx; deps/spiral/lib/spiral/sm.fsx; deps/spiral/lib/spiral/crypto.fsx; ... ] / name: Supervisor / hash: / code.Length: 32787\n",
+ "00:00:00 \u001B[94md\u001B[0m #2 buildProject / fullPath: c:\\home\\git\\polyglot\\target\\Builder\\Supervisor\\Supervisor.fsproj\n",
"00:00:00 \u001B[94md\u001B[0m #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0\n",
- " \"publish \"C:\\home\\git\\polyglot\\target/Builder\\Supervisor\\Supervisor.fsproj\" --configuration Release --output \"C:\\home\\git\\polyglot\\apps\\spiral\\dist\" --runtime linux-x64\"; options = { command = dotnet publish \"C:\\home\\git\\polyglot\\target/Builder\\Supervisor\\Supervisor.fsproj\" --configuration Release --output \"C:\\home\\git\\polyglot\\apps\\spiral\\dist\" --runtime linux-x64; cancellation_token = None; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = Some \"C:\\home\\git\\polyglot\\target\\Builder\\Supervisor\" } }\n",
+ " \"publish \"c:/home/git\\polyglot\\target/Builder\\Supervisor\\Supervisor.fsproj\" --configuration Release --output \"C:\\home\\git\\polyglot\\apps\\spiral\\dist\" --runtime linux-x64\"; options = { command = dotnet publish \"c:/home/git\\polyglot\\target/Builder\\Supervisor\\Supervisor.fsproj\" --configuration Release --output \"C:\\home\\git\\polyglot\\apps\\spiral\\dist\" --runtime linux-x64; cancellation_token = None; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = Some \"c:\\home\\git\\polyglot\\target\\Builder\\Supervisor\" } }\n",
"00:00:01 \u001B[90mv\u001B[0m #2 > Determining projects to restore...\n",
"00:00:01 \u001B[90mv\u001B[0m #3 > Paket version 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0\n",
"00:00:01 \u001B[90mv\u001B[0m #4 > The last full restore is still up to date. Nothing left to do.\n",
"00:00:01 \u001B[90mv\u001B[0m #5 > Total time taken: 0 milliseconds\n",
- "00:00:02 \u001B[90mv\u001B[0m #6 > Restored C:\\home\\git\\polyglot\\target\\Builder\\Supervisor\\Supervisor.fsproj (in 398 ms).\n",
- "00:00:15 \u001B[90mv\u001B[0m #7 > Supervisor -> C:\\home\\git\\polyglot\\target\\Builder\\Supervisor\\bin\\Release\\net9.0\\linux-x64\\Supervisor.dll\n",
+ "00:00:02 \u001B[90mv\u001B[0m #6 > Restored c:\\home\\git\\polyglot\\target\\Builder\\Supervisor\\Supervisor.fsproj (in 403 ms).\n",
+ "00:00:16 \u001B[90mv\u001B[0m #7 > Supervisor -> c:\\home\\git\\polyglot\\target\\Builder\\Supervisor\\bin\\Release\\net9.0\\linux-x64\\Supervisor.dll\n",
"00:00:17 \u001B[90mv\u001B[0m #8 > Supervisor -> C:\\home\\git\\polyglot\\apps\\spiral\\dist\\\n",
"00:00:17 \u001B[90mv\u001B[0m #9 >\n",
"00:00:17 \u001B[90mv\u001B[0m #10 > Workload updates are available. Run `dotnet workload list` for more information.\n",
- "00:00:17 \u001B[94md\u001B[0m #11 runtime.execute_with_options_async / { exit_code = 0; output_length = 532 }\n",
- "00:00:17 \u001B[94md\u001B[0m #12 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0\n",
- " \"publish \"C:\\home\\git\\polyglot\\target/Builder\\Supervisor\\Supervisor.fsproj\" --configuration Release --output \"C:\\home\\git\\polyglot\\apps\\spiral\\dist\" --runtime win-x64\"; options = { command = dotnet publish \"C:\\home\\git\\polyglot\\target/Builder\\Supervisor\\Supervisor.fsproj\" --configuration Release --output \"C:\\home\\git\\polyglot\\apps\\spiral\\dist\" --runtime win-x64; cancellation_token = None; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = Some \"C:\\home\\git\\polyglot\\target\\Builder\\Supervisor\" } }\n",
- "00:00:17 \u001B[90mv\u001B[0m #13 > Determining projects to restore...\n",
- "00:00:18 \u001B[90mv\u001B[0m #14 > Paket version 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0\n",
- "00:00:18 \u001B[90mv\u001B[0m #15 > The last full restore is still up to date. Nothing left to do.\n",
- "00:00:18 \u001B[90mv\u001B[0m #16 > Total time taken: 0 milliseconds\n",
- "00:00:18 \u001B[90mv\u001B[0m #17 > Restored C:\\home\\git\\polyglot\\target\\Builder\\Supervisor\\Supervisor.fsproj (in 384 ms).\n",
- "00:00:32 \u001B[90mv\u001B[0m #18 > Supervisor -> C:\\home\\git\\polyglot\\target\\Builder\\Supervisor\\bin\\Release\\net9.0\\win-x64\\Supervisor.dll\n",
- "00:00:33 \u001B[90mv\u001B[0m #19 > Supervisor -> C:\\home\\git\\polyglot\\apps\\spiral\\dist\\\n",
- "00:00:33 \u001B[90mv\u001B[0m #20 >\n",
- "00:00:33 \u001B[90mv\u001B[0m #21 > Workload updates are available. Run `dotnet workload list` for more information.\n",
- "00:00:33 \u001B[94md\u001B[0m #22 runtime.execute_with_options_async / { exit_code = 0; output_length = 530 }\n",
+ "00:00:18 \u001B[94md\u001B[0m #11 runtime.execute_with_options_async / { exit_code = 0; output_length = 532 }\n",
+ "00:00:18 \u001B[94md\u001B[0m #12 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0\n",
+ " \"publish \"c:/home/git\\polyglot\\target/Builder\\Supervisor\\Supervisor.fsproj\" --configuration Release --output \"C:\\home\\git\\polyglot\\apps\\spiral\\dist\" --runtime win-x64\"; options = { command = dotnet publish \"c:/home/git\\polyglot\\target/Builder\\Supervisor\\Supervisor.fsproj\" --configuration Release --output \"C:\\home\\git\\polyglot\\apps\\spiral\\dist\" --runtime win-x64; cancellation_token = None; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = Some \"c:\\home\\git\\polyglot\\target\\Builder\\Supervisor\" } }\n",
+ "00:00:18 \u001B[90mv\u001B[0m #13 > Determining projects to restore...\n",
+ "00:00:19 \u001B[90mv\u001B[0m #14 > Paket version 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0\n",
+ "00:00:19 \u001B[90mv\u001B[0m #15 > The last full restore is still up to date. Nothing left to do.\n",
+ "00:00:19 \u001B[90mv\u001B[0m #16 > Total time taken: 0 milliseconds\n",
+ "00:00:19 \u001B[90mv\u001B[0m #17 > Restored c:\\home\\git\\polyglot\\target\\Builder\\Supervisor\\Supervisor.fsproj (in 416 ms).\n",
+ "00:00:34 \u001B[90mv\u001B[0m #18 > Supervisor -> c:\\home\\git\\polyglot\\target\\Builder\\Supervisor\\bin\\Release\\net9.0\\win-x64\\Supervisor.dll\n",
+ "00:00:35 \u001B[90mv\u001B[0m #19 > Supervisor -> C:\\home\\git\\polyglot\\apps\\spiral\\dist\\\n",
+ "00:00:35 \u001B[90mv\u001B[0m #20 >\n",
+ "00:00:35 \u001B[90mv\u001B[0m #21 > Workload updates are available. Run `dotnet workload list` for more information.\n",
+ "00:00:35 \u001B[94md\u001B[0m #22 runtime.execute_with_options_async / { exit_code = 0; output_length = 530 }\n",
"00:00:00 \u001B[94md\u001B[39m #1 spiral.main / { args = Array(MutCell([\"dib\", \"--path\", \"Eval.dib\", \"--retries\", \"3\"])) }\n",
"00:00:00 \u001B[94md\u001B[39m #2 runtime.execute_with_options / { file_name = dotnet; arguments = [\"repl\", \"--exit-after-run\", \"--run\", \"c:/home/git/polyglot/apps/spiral/Eval.dib\", \"--output-path\", \"c:/home/git/polyglot/apps/spiral/Eval.dib.ipynb\"]; options = { command = dotnet repl --exit-after-run --run \"c:/home/git/polyglot/apps/spiral/Eval.dib\" --output-path \"c:/home/git/polyglot/apps/spiral/Eval.dib.ipynb\"; cancellation_token = None; environment_variables = Array(MutCell([(\"TRACE_LEVEL\", \"Verbose\"), (\"AUTOMATION\", \"True\")])); on_line = None; stdin = None; trace = false; working_directory = None } }\n",
"> \n",
@@ -13472,20 +11451,20 @@
"> )\n",
"> |]]\n",
"> ))\n",
- "00:00:28 \u001B[90mv\u001B[39m #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 49516 }\n",
- "00:00:28 \u001B[94md\u001B[39m #4 runtime.execute_with_options / { file_name = jupyter; arguments = [\"nbconvert\", \"c:/home/git/polyglot/apps/spiral/Eval.dib.ipynb\", \"--to\", \"html\", \"--HTMLExporter.theme=dark\"]; options = { command = jupyter nbconvert \"c:/home/git/polyglot/apps/spiral/Eval.dib.ipynb\" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }\n",
- "00:00:30 \u001B[90mv\u001B[39m #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/apps/spiral/Eval.dib.ipynb to html\n",
- "00:00:30 \u001B[90mv\u001B[39m #6 ! C:\\Users\\i574n\\scoop\\apps\\python312\\current\\Lib\\site-packages\\nbformat\\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.\n",
- "00:00:30 \u001B[90mv\u001B[39m #7 ! validate(nb)\n",
- "00:00:30 \u001B[90mv\u001B[39m #8 ! C:\\Users\\i574n\\scoop\\apps\\python312\\current\\Lib\\site-packages\\nbconvert\\filters\\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3\n",
- "00:00:30 \u001B[90mv\u001B[39m #9 ! return _pygments_highlight(\n",
- "00:00:32 \u001B[90mv\u001B[39m #10 ! [NbConvertApp] Writing 459172 bytes to c:\\home\\git\\polyglot\\apps\\spiral\\Eval.dib.html\n",
- "00:00:32 \u001B[90mv\u001B[39m #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 852 }\n",
- "00:00:32 \u001B[94md\u001B[39m #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 852 }\n",
- "00:00:32 \u001B[94md\u001B[39m #13 runtime.execute_with_options / { file_name = pwsh; arguments = [\"-c\", \"$counter = 1; $path = 'c:/home/git/polyglot/apps/spiral/Eval.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\\\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path\"]; options = { command = pwsh -c \"$counter = 1; $path = 'c:/home/git/polyglot/apps/spiral/Eval.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path\"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }\n",
- "00:00:32 \u001B[90mv\u001B[39m #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 }\n",
- "00:00:32 \u001B[94md\u001B[39m #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 }\n",
- "00:00:32 \u001B[94md\u001B[39m #16 spiral.run / dib / { exit_code = 0; result_length = 50427 }\n",
+ "00:00:30 \u001B[90mv\u001B[39m #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 49516 }\n",
+ "00:00:30 \u001B[94md\u001B[39m #4 runtime.execute_with_options / { file_name = jupyter; arguments = [\"nbconvert\", \"c:/home/git/polyglot/apps/spiral/Eval.dib.ipynb\", \"--to\", \"html\", \"--HTMLExporter.theme=dark\"]; options = { command = jupyter nbconvert \"c:/home/git/polyglot/apps/spiral/Eval.dib.ipynb\" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }\n",
+ "00:00:31 \u001B[90mv\u001B[39m #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/apps/spiral/Eval.dib.ipynb to html\n",
+ "00:00:31 \u001B[90mv\u001B[39m #6 ! C:\\Users\\i574n\\scoop\\apps\\python312\\current\\Lib\\site-packages\\nbformat\\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.\n",
+ "00:00:31 \u001B[90mv\u001B[39m #7 ! validate(nb)\n",
+ "00:00:32 \u001B[90mv\u001B[39m #8 ! C:\\Users\\i574n\\scoop\\apps\\python312\\current\\Lib\\site-packages\\nbconvert\\filters\\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3\n",
+ "00:00:32 \u001B[90mv\u001B[39m #9 ! return _pygments_highlight(\n",
+ "00:00:33 \u001B[90mv\u001B[39m #10 ! [NbConvertApp] Writing 459172 bytes to c:\\home\\git\\polyglot\\apps\\spiral\\Eval.dib.html\n",
+ "00:00:33 \u001B[90mv\u001B[39m #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 852 }\n",
+ "00:00:33 \u001B[94md\u001B[39m #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 852 }\n",
+ "00:00:33 \u001B[94md\u001B[39m #13 runtime.execute_with_options / { file_name = pwsh; arguments = [\"-c\", \"$counter = 1; $path = 'c:/home/git/polyglot/apps/spiral/Eval.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\\\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path\"]; options = { command = pwsh -c \"$counter = 1; $path = 'c:/home/git/polyglot/apps/spiral/Eval.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path\"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }\n",
+ "00:00:34 \u001B[90mv\u001B[39m #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 }\n",
+ "00:00:34 \u001B[94md\u001B[39m #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 }\n",
+ "00:00:34 \u001B[94md\u001B[39m #16 spiral.run / dib / { exit_code = 0; result_length = 50427 }\n",
"00:00:00 \u001B[94md\u001B[0m #1 writeDibCode / output: Fs / path: Eval.dib\n",
"00:00:00 \u001B[94md\u001B[0m #2 parseDibCode / output: Fs / file: Eval.dib\n"
]
@@ -13512,1997 +11491,1983 @@
"output_type": "stream",
"text": [
"00:00:00 \u001B[90mv\u001B[0m #1 async.run_with_timeout_async / { timeout = 180 }\n",
- "00:00:00 \u001B[94md\u001B[0m #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0\n",
- " \"\"C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral Language 2\\artifacts\\bin\\The Spiral Language 2\\release\\Spiral.dll\" --port 13805 --default-int i32 --default-float f64\"; options = { command = dotnet \"C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral Language 2\\artifacts\\bin\\The Spiral Language 2\\release\\Spiral.dll\" --port 13805 --default-int i32 --default-float f64; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = Some ; stdin = None; trace = true; working_directory = Some \"C:\\home\\git\\polyglot\" } }\n",
- "00:00:01 \u001B[90mv\u001B[0m #2 > 00:00:00 \u001B[94md\u001B[0m #1 pwd: C:\\home\\git\\polyglot\n",
- "00:00:01 \u001B[90mv\u001B[0m #3 > 00:00:00 \u001B[94md\u001B[0m #2 dllPath: C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral Language 2\\artifacts\\bin\\The Spiral Language 2\\release\n",
- "00:00:01 \u001B[90mv\u001B[0m #4 > 00:00:00 \u001B[94md\u001B[0m #3 targetDir: C:\\home\\git\\polyglot\\target/spiral_Eval\n",
- "00:00:01 \u001B[90mv\u001B[0m #2 async.run_with_timeout_async / { timeout = 100 }\n",
- "00:00:01 \u001B[90mv\u001B[0m #3 async.run_with_timeout_async / { timeout = 100 }\n",
- "00:00:01 \u001B[90mv\u001B[0m #5 > Starting the Spiral Server. It is bound to: http://localhost:13805\n",
- "00:00:01 \u001B[90mv\u001B[0m #4 async.run_with_timeout_async / { timeout = 100 }\n",
- "00:00:01 \u001B[90mv\u001B[0m #1 Supervisor.sendJson / port: 13805 / json: {\"Ping\":true} / result:\n",
- "00:00:01 \u001B[90mv\u001B[0m #2 Supervisor.awaitCompiler / Ping / result: 'Some null' / port: 13805 / retry: 1\n",
- "00:00:01 \u001B[90mv\u001B[0m #6 > Server bound to: http://localhost:13805\n",
- "00:00:01 \u001B[94md\u001B[0m #7 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 \"dib --path Async.dib --retries 3\"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path Async.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }\n",
- "00:00:01 \u001B[90mv\u001B[0m #8 > 00:00:00 \u001B[94md\u001B[39m #1 spiral.main / { args = Array(MutCell([\"dib\", \"--path\", \"Async.dib\", \"--retries\", \"3\"])) }\n",
- "00:00:01 \u001B[90mv\u001B[0m #9 > 00:00:00 \u001B[94md\u001B[39m #2 runtime.execute_with_options / { file_name = dotnet; arguments = [\"repl\", \"--exit-after-run\", \"--run\", \"c:/home/git/polyglot/lib/fsharp/Async.dib\", \"--output-path\", \"c:/home/git/polyglot/lib/fsharp/Async.dib.ipynb\"]; options = { command = dotnet repl --exit-after-run --run \"c:/home/git/polyglot/lib/fsharp/Async.dib\" --output-path \"c:/home/git/polyglot/lib/fsharp/Async.dib.ipynb\"; cancellation_token = None; environment_variables = Array(MutCell([(\"TRACE_LEVEL\", \"Verbose\"), (\"AUTOMATION\", \"True\")])); on_line = None; stdin = None; trace = false; working_directory = None } }\n",
- "00:00:03 \u001B[90mv\u001B[0m #10 > >\n",
- "00:00:03 \u001B[90mv\u001B[0m #11 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:03 \u001B[90mv\u001B[0m #12 > > \u001B[38;2;146;146;178m│\u001B[0m # Async (Polyglot)\n",
- "00:00:20 \u001B[90mv\u001B[0m #13 > >\n",
- "00:00:20 \u001B[90mv\u001B[0m #14 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:00:20 \u001B[90mv\u001B[0m #15 > > #if !INTERACTIVE\n",
- "00:00:20 \u001B[90mv\u001B[0m #16 > > open Lib\n",
- "00:00:20 \u001B[90mv\u001B[0m #17 > > #endif\n",
- "00:00:20 \u001B[90mv\u001B[0m #18 > >\n",
- "00:00:20 \u001B[90mv\u001B[0m #19 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:00:20 \u001B[90mv\u001B[0m #20 > > open Common\n",
- "00:00:20 \u001B[90mv\u001B[0m #21 > >\n",
- "00:00:20 \u001B[90mv\u001B[0m #22 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:20 \u001B[90mv\u001B[0m #23 > > \u001B[38;2;146;146;178m│\u001B[0m ## choice\n",
- "00:00:20 \u001B[90mv\u001B[0m #24 > >\n",
- "00:00:20 \u001B[90mv\u001B[0m #25 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:00:20 \u001B[90mv\u001B[0m #26 > > let inline choice asyncs = async {\n",
- "00:00:20 \u001B[90mv\u001B[0m #27 > > let e = Event<_> ()\n",
- "00:00:20 \u001B[90mv\u001B[0m #28 > > use cts = new System.Threading.CancellationTokenSource ()\n",
- "00:00:20 \u001B[90mv\u001B[0m #29 > > let fn =\n",
- "00:00:20 \u001B[90mv\u001B[0m #30 > > asyncs\n",
- "00:00:20 \u001B[90mv\u001B[0m #31 > > |> Seq.map (fun a -> async {\n",
- "00:00:20 \u001B[90mv\u001B[0m #32 > > let! x = a\n",
- "00:00:20 \u001B[90mv\u001B[0m #33 > > e.Trigger x\n",
- "00:00:20 \u001B[90mv\u001B[0m #34 > > })\n",
- "00:00:20 \u001B[90mv\u001B[0m #35 > > |> Async.Parallel\n",
- "00:00:20 \u001B[90mv\u001B[0m #36 > > |> Async.Ignore\n",
- "00:00:20 \u001B[90mv\u001B[0m #37 > > Async.Start (fn, cts.Token)\n",
- "00:00:20 \u001B[90mv\u001B[0m #38 > > let! result = Async.AwaitEvent e.Publish\n",
- "00:00:20 \u001B[90mv\u001B[0m #39 > > cts.Cancel ()\n",
- "00:00:20 \u001B[90mv\u001B[0m #40 > > return result\n",
- "00:00:20 \u001B[90mv\u001B[0m #41 > > }\n",
- "00:00:20 \u001B[90mv\u001B[0m #42 > >\n",
- "00:00:20 \u001B[90mv\u001B[0m #43 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:20 \u001B[90mv\u001B[0m #44 > > \u001B[38;2;146;146;178m│\u001B[0m ## map\n",
- "00:00:20 \u001B[90mv\u001B[0m #45 > >\n",
- "00:00:20 \u001B[90mv\u001B[0m #46 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:00:20 \u001B[90mv\u001B[0m #47 > > let inline map fn a = async {\n",
- "00:00:20 \u001B[90mv\u001B[0m #48 > > let! x = a\n",
- "00:00:20 \u001B[90mv\u001B[0m #49 > > return fn x\n",
- "00:00:20 \u001B[90mv\u001B[0m #50 > > }\n",
- "00:00:20 \u001B[90mv\u001B[0m #51 > >\n",
- "00:00:20 \u001B[90mv\u001B[0m #52 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:20 \u001B[90mv\u001B[0m #53 > > \u001B[38;2;146;146;178m│\u001B[0m ## runWithTimeoutChoiceAsync\n",
- "00:00:20 \u001B[90mv\u001B[0m #54 > >\n",
- "00:00:20 \u001B[90mv\u001B[0m #55 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:00:20 \u001B[90mv\u001B[0m #56 > > let inline runWithTimeoutChoiceAsync (timeout : int) fn =\n",
- "00:00:20 \u001B[90mv\u001B[0m #57 > > let _locals () = $\"timeout: {timeout} / {_locals ()}\"\n",
- "00:00:20 \u001B[90mv\u001B[0m #58 > >\n",
- "00:00:20 \u001B[90mv\u001B[0m #59 > > let timeoutTask = async {\n",
- "00:00:20 \u001B[90mv\u001B[0m #60 > > do! Async.Sleep timeout\n",
- "00:00:20 \u001B[90mv\u001B[0m #61 > > trace Debug (fun () -> \"runWithTimeoutChoiceAsync\") _locals\n",
- "00:00:20 \u001B[90mv\u001B[0m #62 > > return None\n",
- "00:00:20 \u001B[90mv\u001B[0m #63 > > }\n",
- "00:00:20 \u001B[90mv\u001B[0m #64 > >\n",
- "00:00:20 \u001B[90mv\u001B[0m #65 > > let task = async {\n",
- "00:00:20 \u001B[90mv\u001B[0m #66 > > try\n",
- "00:00:20 \u001B[90mv\u001B[0m #67 > > let! result = fn\n",
- "00:00:20 \u001B[90mv\u001B[0m #68 > > return Some result\n",
- "00:00:20 \u001B[90mv\u001B[0m #69 > > with\n",
- "00:00:20 \u001B[90mv\u001B[0m #70 > > | :? System.AggregateException as ex when\n",
- "00:00:20 \u001B[90mv\u001B[0m #71 > > ex.InnerExceptions\n",
- "00:00:20 \u001B[90mv\u001B[0m #72 > > |> Seq.exists (function :?\n",
- "00:00:20 \u001B[90mv\u001B[0m #73 > > System.Threading.Tasks.TaskCanceledException -> true | _ -> false)\n",
- "00:00:20 \u001B[90mv\u001B[0m #74 > > ->\n",
- "00:00:20 \u001B[90mv\u001B[0m #75 > > trace Warning\n",
- "00:00:20 \u001B[90mv\u001B[0m #76 > > (fun () -> \"runWithTimeoutChoiceAsync\")\n",
- "00:00:20 \u001B[90mv\u001B[0m #77 > > (fun () -> $\"ex: {ex |> SpiralSm.format_exception} / {_locals\n",
- "00:00:20 \u001B[90mv\u001B[0m #78 > > ()}\")\n",
- "00:00:20 \u001B[90mv\u001B[0m #79 > > return None\n",
- "00:00:20 \u001B[90mv\u001B[0m #80 > > | ex ->\n",
- "00:00:20 \u001B[90mv\u001B[0m #81 > > trace Critical\n",
- "00:00:20 \u001B[90mv\u001B[0m #82 > > (fun () -> \"runWithTimeoutChoiceAsync\")\n",
- "00:00:20 \u001B[90mv\u001B[0m #83 > > (fun () -> $\"ex: {ex |> SpiralSm.format_exception} / {_locals\n",
- "00:00:20 \u001B[90mv\u001B[0m #84 > > ()}\")\n",
- "00:00:20 \u001B[90mv\u001B[0m #85 > > return None\n",
- "00:00:20 \u001B[90mv\u001B[0m #86 > > }\n",
- "00:00:20 \u001B[90mv\u001B[0m #87 > >\n",
- "00:00:20 \u001B[90mv\u001B[0m #88 > > [[ timeoutTask; task ]]\n",
- "00:00:20 \u001B[90mv\u001B[0m #89 > > |> choice\n",
+ "00:00:00 \u001B[94md\u001B[0m #1 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 \"dib --path Async.dib --retries 3\"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path Async.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }\n",
+ "00:00:00 \u001B[90mv\u001B[0m #2 > 00:00:00 \u001B[94md\u001B[39m #1 spiral.main / { args = Array(MutCell([\"dib\", \"--path\", \"Async.dib\", \"--retries\", \"3\"])) }\n",
+ "00:00:00 \u001B[90mv\u001B[0m #3 > 00:00:00 \u001B[94md\u001B[39m #2 runtime.execute_with_options / { file_name = dotnet; arguments = [\"repl\", \"--exit-after-run\", \"--run\", \"c:/home/git/polyglot/lib/fsharp/Async.dib\", \"--output-path\", \"c:/home/git/polyglot/lib/fsharp/Async.dib.ipynb\"]; options = { command = dotnet repl --exit-after-run --run \"c:/home/git/polyglot/lib/fsharp/Async.dib\" --output-path \"c:/home/git/polyglot/lib/fsharp/Async.dib.ipynb\"; cancellation_token = None; environment_variables = Array(MutCell([(\"TRACE_LEVEL\", \"Verbose\"), (\"AUTOMATION\", \"True\")])); on_line = None; stdin = None; trace = false; working_directory = None } }\n",
+ "00:00:02 \u001B[90mv\u001B[0m #4 > >\n",
+ "00:00:02 \u001B[90mv\u001B[0m #5 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
+ "00:00:02 \u001B[90mv\u001B[0m #6 > > \u001B[38;2;146;146;178m│\u001B[0m # Async (Polyglot)\n",
+ "00:00:19 \u001B[90mv\u001B[0m #7 > >\n",
+ "00:00:19 \u001B[90mv\u001B[0m #8 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:00:19 \u001B[90mv\u001B[0m #9 > > #if !INTERACTIVE\n",
+ "00:00:19 \u001B[90mv\u001B[0m #10 > > open Lib\n",
+ "00:00:19 \u001B[90mv\u001B[0m #11 > > #endif\n",
+ "00:00:19 \u001B[90mv\u001B[0m #12 > >\n",
+ "00:00:19 \u001B[90mv\u001B[0m #13 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:00:19 \u001B[90mv\u001B[0m #14 > > open Common\n",
+ "00:00:19 \u001B[90mv\u001B[0m #15 > >\n",
+ "00:00:19 \u001B[90mv\u001B[0m #16 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
+ "00:00:19 \u001B[90mv\u001B[0m #17 > > \u001B[38;2;146;146;178m│\u001B[0m ## choice\n",
+ "00:00:19 \u001B[90mv\u001B[0m #18 > >\n",
+ "00:00:19 \u001B[90mv\u001B[0m #19 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:00:19 \u001B[90mv\u001B[0m #20 > > let inline choice asyncs = async {\n",
+ "00:00:19 \u001B[90mv\u001B[0m #21 > > let e = Event<_> ()\n",
+ "00:00:19 \u001B[90mv\u001B[0m #22 > > use cts = new System.Threading.CancellationTokenSource ()\n",
+ "00:00:19 \u001B[90mv\u001B[0m #23 > > let fn =\n",
+ "00:00:19 \u001B[90mv\u001B[0m #24 > > asyncs\n",
+ "00:00:19 \u001B[90mv\u001B[0m #25 > > |> Seq.map (fun a -> async {\n",
+ "00:00:19 \u001B[90mv\u001B[0m #26 > > let! x = a\n",
+ "00:00:19 \u001B[90mv\u001B[0m #27 > > e.Trigger x\n",
+ "00:00:19 \u001B[90mv\u001B[0m #28 > > })\n",
+ "00:00:19 \u001B[90mv\u001B[0m #29 > > |> Async.Parallel\n",
+ "00:00:19 \u001B[90mv\u001B[0m #30 > > |> Async.Ignore\n",
+ "00:00:19 \u001B[90mv\u001B[0m #31 > > Async.Start (fn, cts.Token)\n",
+ "00:00:19 \u001B[90mv\u001B[0m #32 > > let! result = Async.AwaitEvent e.Publish\n",
+ "00:00:19 \u001B[90mv\u001B[0m #33 > > cts.Cancel ()\n",
+ "00:00:19 \u001B[90mv\u001B[0m #34 > > return result\n",
+ "00:00:19 \u001B[90mv\u001B[0m #35 > > }\n",
+ "00:00:19 \u001B[90mv\u001B[0m #36 > >\n",
+ "00:00:19 \u001B[90mv\u001B[0m #37 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
+ "00:00:19 \u001B[90mv\u001B[0m #38 > > \u001B[38;2;146;146;178m│\u001B[0m ## map\n",
+ "00:00:19 \u001B[90mv\u001B[0m #39 > >\n",
+ "00:00:19 \u001B[90mv\u001B[0m #40 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:00:19 \u001B[90mv\u001B[0m #41 > > let inline map fn a = async {\n",
+ "00:00:19 \u001B[90mv\u001B[0m #42 > > let! x = a\n",
+ "00:00:19 \u001B[90mv\u001B[0m #43 > > return fn x\n",
+ "00:00:19 \u001B[90mv\u001B[0m #44 > > }\n",
+ "00:00:19 \u001B[90mv\u001B[0m #45 > >\n",
+ "00:00:19 \u001B[90mv\u001B[0m #46 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
+ "00:00:19 \u001B[90mv\u001B[0m #47 > > \u001B[38;2;146;146;178m│\u001B[0m ## runWithTimeoutChoiceAsync\n",
+ "00:00:19 \u001B[90mv\u001B[0m #48 > >\n",
+ "00:00:19 \u001B[90mv\u001B[0m #49 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:00:19 \u001B[90mv\u001B[0m #50 > > let inline runWithTimeoutChoiceAsync (timeout : int) fn =\n",
+ "00:00:19 \u001B[90mv\u001B[0m #51 > > let _locals () = $\"timeout: {timeout} / {_locals ()}\"\n",
+ "00:00:19 \u001B[90mv\u001B[0m #52 > >\n",
+ "00:00:19 \u001B[90mv\u001B[0m #53 > > let timeoutTask = async {\n",
+ "00:00:19 \u001B[90mv\u001B[0m #54 > > do! Async.Sleep timeout\n",
+ "00:00:19 \u001B[90mv\u001B[0m #55 > > trace Debug (fun () -> \"runWithTimeoutChoiceAsync\") _locals\n",
+ "00:00:19 \u001B[90mv\u001B[0m #56 > > return None\n",
+ "00:00:19 \u001B[90mv\u001B[0m #57 > > }\n",
+ "00:00:19 \u001B[90mv\u001B[0m #58 > >\n",
+ "00:00:19 \u001B[90mv\u001B[0m #59 > > let task = async {\n",
+ "00:00:19 \u001B[90mv\u001B[0m #60 > > try\n",
+ "00:00:19 \u001B[90mv\u001B[0m #61 > > let! result = fn\n",
+ "00:00:19 \u001B[90mv\u001B[0m #62 > > return Some result\n",
+ "00:00:19 \u001B[90mv\u001B[0m #63 > > with\n",
+ "00:00:19 \u001B[90mv\u001B[0m #64 > > | :? System.AggregateException as ex when\n",
+ "00:00:19 \u001B[90mv\u001B[0m #65 > > ex.InnerExceptions\n",
+ "00:00:19 \u001B[90mv\u001B[0m #66 > > |> Seq.exists (function :?\n",
+ "00:00:19 \u001B[90mv\u001B[0m #67 > > System.Threading.Tasks.TaskCanceledException -> true | _ -> false)\n",
+ "00:00:19 \u001B[90mv\u001B[0m #68 > > ->\n",
+ "00:00:19 \u001B[90mv\u001B[0m #69 > > trace Warning\n",
+ "00:00:19 \u001B[90mv\u001B[0m #70 > > (fun () -> \"runWithTimeoutChoiceAsync\")\n",
+ "00:00:19 \u001B[90mv\u001B[0m #71 > > (fun () -> $\"ex: {ex |> SpiralSm.format_exception} / {_locals\n",
+ "00:00:19 \u001B[90mv\u001B[0m #72 > > ()}\")\n",
+ "00:00:19 \u001B[90mv\u001B[0m #73 > > return None\n",
+ "00:00:19 \u001B[90mv\u001B[0m #74 > > | ex ->\n",
+ "00:00:19 \u001B[90mv\u001B[0m #75 > > trace Critical\n",
+ "00:00:19 \u001B[90mv\u001B[0m #76 > > (fun () -> \"runWithTimeoutChoiceAsync\")\n",
+ "00:00:19 \u001B[90mv\u001B[0m #77 > > (fun () -> $\"ex: {ex |> SpiralSm.format_exception} / {_locals\n",
+ "00:00:19 \u001B[90mv\u001B[0m #78 > > ()}\")\n",
+ "00:00:19 \u001B[90mv\u001B[0m #79 > > return None\n",
+ "00:00:19 \u001B[90mv\u001B[0m #80 > > }\n",
+ "00:00:19 \u001B[90mv\u001B[0m #81 > >\n",
+ "00:00:19 \u001B[90mv\u001B[0m #82 > > [[ timeoutTask; task ]]\n",
+ "00:00:19 \u001B[90mv\u001B[0m #83 > > |> choice\n",
+ "00:00:20 \u001B[90mv\u001B[0m #84 > >\n",
+ "00:00:20 \u001B[90mv\u001B[0m #85 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:00:20 \u001B[90mv\u001B[0m #86 > > let inline runWithTimeoutChoice timeout fn =\n",
+ "00:00:20 \u001B[90mv\u001B[0m #87 > > fn\n",
+ "00:00:20 \u001B[90mv\u001B[0m #88 > > |> runWithTimeoutChoiceAsync timeout\n",
+ "00:00:20 \u001B[90mv\u001B[0m #89 > > |> Async.RunSynchronously\n",
"00:00:20 \u001B[90mv\u001B[0m #90 > >\n",
"00:00:20 \u001B[90mv\u001B[0m #91 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:00:20 \u001B[90mv\u001B[0m #92 > > let inline runWithTimeoutChoice timeout fn =\n",
- "00:00:20 \u001B[90mv\u001B[0m #93 > > fn\n",
- "00:00:20 \u001B[90mv\u001B[0m #94 > > |> runWithTimeoutChoiceAsync timeout\n",
- "00:00:20 \u001B[90mv\u001B[0m #95 > > |> Async.RunSynchronously\n",
- "00:00:20 \u001B[90mv\u001B[0m #96 > >\n",
- "00:00:20 \u001B[90mv\u001B[0m #97 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:00:20 \u001B[90mv\u001B[0m #98 > > //// test\n",
- "00:00:20 \u001B[90mv\u001B[0m #99 > >\n",
- "00:00:20 \u001B[90mv\u001B[0m #100 > > Async.Sleep 120\n",
- "00:00:20 \u001B[90mv\u001B[0m #101 > > |> runWithTimeoutChoice 10\n",
- "00:00:20 \u001B[90mv\u001B[0m #102 > > |> _assertEqual None\n",
+ "00:00:20 \u001B[90mv\u001B[0m #92 > > //// test\n",
+ "00:00:20 \u001B[90mv\u001B[0m #93 > >\n",
+ "00:00:20 \u001B[90mv\u001B[0m #94 > > Async.Sleep 120\n",
+ "00:00:20 \u001B[90mv\u001B[0m #95 > > |> runWithTimeoutChoice 10\n",
+ "00:00:20 \u001B[90mv\u001B[0m #96 > > |> _assertEqual None\n",
+ "00:00:20 \u001B[90mv\u001B[0m #97 > >\n",
+ "00:00:20 \u001B[90mv\u001B[0m #98 > > ── [ 220.65ms - stdout ] ───────────────────────────────────────────────────────\n",
+ "00:00:20 \u001B[90mv\u001B[0m #99 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:01 \u001B[94md\u001B[0m #1 runWithTimeoutChoiceAsync / timeout: 10\n",
+ "00:00:20 \u001B[90mv\u001B[0m #100 > > \u001B[38;2;38;140;38m│\u001B[0m \n",
+ "00:00:20 \u001B[90mv\u001B[0m #101 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:20 \u001B[90mv\u001B[0m #102 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
"00:00:20 \u001B[90mv\u001B[0m #103 > >\n",
- "00:00:20 \u001B[90mv\u001B[0m #104 > > ── [ 208.74ms - stdout ] ───────────────────────────────────────────────────────\n",
- "00:00:20 \u001B[90mv\u001B[0m #105 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:01 \u001B[94md\u001B[0m #1 runWithTimeoutChoiceAsync / timeout: 10\n",
- "00:00:20 \u001B[90mv\u001B[0m #106 > > \u001B[38;2;38;140;38m│\u001B[0m \n",
- "00:00:20 \u001B[90mv\u001B[0m #107 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:20 \u001B[90mv\u001B[0m #108 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:20 \u001B[90mv\u001B[0m #109 > >\n",
- "00:00:20 \u001B[90mv\u001B[0m #110 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:00:20 \u001B[90mv\u001B[0m #111 > > //// test\n",
- "00:00:20 \u001B[90mv\u001B[0m #112 > >\n",
- "00:00:20 \u001B[90mv\u001B[0m #113 > > Async.Sleep 10\n",
- "00:00:20 \u001B[90mv\u001B[0m #114 > > |> runWithTimeoutChoice 60\n",
- "00:00:20 \u001B[90mv\u001B[0m #115 > > |> _assertEqual (Some ())\n",
- "00:00:20 \u001B[90mv\u001B[0m #116 > >\n",
- "00:00:20 \u001B[90mv\u001B[0m #117 > > ── [ 180.15ms - stdout ] ───────────────────────────────────────────────────────\n",
- "00:00:20 \u001B[90mv\u001B[0m #118 > > \u001B[38;2;38;140;38m│\u001B[0m Some ()\n",
- "00:00:20 \u001B[90mv\u001B[0m #119 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:20 \u001B[90mv\u001B[0m #120 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:20 \u001B[90mv\u001B[0m #121 > >\n",
- "00:00:20 \u001B[90mv\u001B[0m #122 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:00:20 \u001B[90mv\u001B[0m #123 > > //// test\n",
+ "00:00:20 \u001B[90mv\u001B[0m #104 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:00:20 \u001B[90mv\u001B[0m #105 > > //// test\n",
+ "00:00:20 \u001B[90mv\u001B[0m #106 > >\n",
+ "00:00:20 \u001B[90mv\u001B[0m #107 > > Async.Sleep 10\n",
+ "00:00:20 \u001B[90mv\u001B[0m #108 > > |> runWithTimeoutChoice 60\n",
+ "00:00:20 \u001B[90mv\u001B[0m #109 > > |> _assertEqual (Some ())\n",
+ "00:00:20 \u001B[90mv\u001B[0m #110 > >\n",
+ "00:00:20 \u001B[90mv\u001B[0m #111 > > ── [ 178.92ms - stdout ] ───────────────────────────────────────────────────────\n",
+ "00:00:20 \u001B[90mv\u001B[0m #112 > > \u001B[38;2;38;140;38m│\u001B[0m Some ()\n",
+ "00:00:20 \u001B[90mv\u001B[0m #113 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:20 \u001B[90mv\u001B[0m #114 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:20 \u001B[90mv\u001B[0m #115 > >\n",
+ "00:00:20 \u001B[90mv\u001B[0m #116 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:00:20 \u001B[90mv\u001B[0m #117 > > //// test\n",
+ "00:00:20 \u001B[90mv\u001B[0m #118 > >\n",
+ "00:00:20 \u001B[90mv\u001B[0m #119 > > async {\n",
+ "00:00:20 \u001B[90mv\u001B[0m #120 > > raise (exn \"error\")\n",
+ "00:00:20 \u001B[90mv\u001B[0m #121 > > }\n",
+ "00:00:20 \u001B[90mv\u001B[0m #122 > > |> runWithTimeoutChoice 60\n",
+ "00:00:20 \u001B[90mv\u001B[0m #123 > > |> _assertEqual None\n",
"00:00:20 \u001B[90mv\u001B[0m #124 > >\n",
- "00:00:20 \u001B[90mv\u001B[0m #125 > > async {\n",
- "00:00:20 \u001B[90mv\u001B[0m #126 > > raise (exn \"error\")\n",
- "00:00:20 \u001B[90mv\u001B[0m #127 > > }\n",
- "00:00:20 \u001B[90mv\u001B[0m #128 > > |> runWithTimeoutChoice 60\n",
- "00:00:20 \u001B[90mv\u001B[0m #129 > > |> _assertEqual None\n",
- "00:00:21 \u001B[90mv\u001B[0m #130 > >\n",
- "00:00:21 \u001B[90mv\u001B[0m #131 > > ── [ 172.74ms - stdout ] ───────────────────────────────────────────────────────\n",
- "00:00:21 \u001B[90mv\u001B[0m #132 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:01 \u001B[91mc\u001B[0m #2 runWithTimeoutChoiceAsync / ex:\n",
- "00:00:21 \u001B[90mv\u001B[0m #133 > > System.Exception: error / timeout: 60\n",
- "00:00:21 \u001B[90mv\u001B[0m #134 > > \u001B[38;2;38;140;38m│\u001B[0m \n",
- "00:00:21 \u001B[90mv\u001B[0m #135 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:21 \u001B[90mv\u001B[0m #136 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:21 \u001B[90mv\u001B[0m #137 > >\n",
- "00:00:21 \u001B[90mv\u001B[0m #138 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:21 \u001B[90mv\u001B[0m #139 > > \u001B[38;2;146;146;178m│\u001B[0m ## catch\n",
- "00:00:21 \u001B[90mv\u001B[0m #140 > >\n",
- "00:00:21 \u001B[90mv\u001B[0m #141 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:00:21 \u001B[90mv\u001B[0m #142 > > let inline catch a =\n",
- "00:00:21 \u001B[90mv\u001B[0m #143 > > a\n",
- "00:00:21 \u001B[90mv\u001B[0m #144 > > |> Async.Catch\n",
- "00:00:21 \u001B[90mv\u001B[0m #145 > > |> map (function\n",
- "00:00:21 \u001B[90mv\u001B[0m #146 > > | Choice1Of2 result -> Ok result\n",
- "00:00:21 \u001B[90mv\u001B[0m #147 > > | Choice2Of2 ex -> Error ex\n",
- "00:00:21 \u001B[90mv\u001B[0m #148 > > )\n",
- "00:00:21 \u001B[90mv\u001B[0m #149 > >\n",
- "00:00:21 \u001B[90mv\u001B[0m #150 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:21 \u001B[90mv\u001B[0m #151 > > \u001B[38;2;146;146;178m│\u001B[0m ## runWithTimeoutAsync\n",
- "00:00:21 \u001B[90mv\u001B[0m #152 > >\n",
- "00:00:21 \u001B[90mv\u001B[0m #153 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:00:21 \u001B[90mv\u001B[0m #154 > > let inline runWithTimeoutAsync (timeout : int) fn = async {\n",
- "00:00:21 \u001B[90mv\u001B[0m #155 > > let _locals () = $\"timeout: {timeout} / {_locals ()}\"\n",
- "00:00:21 \u001B[90mv\u001B[0m #156 > > let! child = Async.StartChild (fn, timeout)\n",
- "00:00:21 \u001B[90mv\u001B[0m #157 > > return!\n",
- "00:00:21 \u001B[90mv\u001B[0m #158 > > child\n",
- "00:00:21 \u001B[90mv\u001B[0m #159 > > |> catch\n",
- "00:00:21 \u001B[90mv\u001B[0m #160 > > |> map (function\n",
- "00:00:21 \u001B[90mv\u001B[0m #161 > > | Ok result -> Some result\n",
- "00:00:21 \u001B[90mv\u001B[0m #162 > > | Error (:? System.TimeoutException as ex) ->\n",
- "00:00:21 \u001B[90mv\u001B[0m #163 > > trace Debug (fun () -> $\"Async.runWithTimeoutAsync\") _locals\n",
- "00:00:21 \u001B[90mv\u001B[0m #164 > > None\n",
- "00:00:21 \u001B[90mv\u001B[0m #165 > > | Error ex ->\n",
- "00:00:21 \u001B[90mv\u001B[0m #166 > > trace Critical (fun () -> $\"Async.runWithTimeoutAsync** / ex:\n",
- "00:00:21 \u001B[90mv\u001B[0m #167 > > %A{ex}\") _locals\n",
- "00:00:21 \u001B[90mv\u001B[0m #168 > > None\n",
- "00:00:21 \u001B[90mv\u001B[0m #169 > > )\n",
- "00:00:21 \u001B[90mv\u001B[0m #170 > > }\n",
+ "00:00:20 \u001B[90mv\u001B[0m #125 > > ── [ 162.70ms - stdout ] ───────────────────────────────────────────────────────\n",
+ "00:00:20 \u001B[90mv\u001B[0m #126 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:01 \u001B[91mc\u001B[0m #2 runWithTimeoutChoiceAsync / ex:\n",
+ "00:00:20 \u001B[90mv\u001B[0m #127 > > System.Exception: error / timeout: 60\n",
+ "00:00:20 \u001B[90mv\u001B[0m #128 > > \u001B[38;2;38;140;38m│\u001B[0m \n",
+ "00:00:20 \u001B[90mv\u001B[0m #129 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:20 \u001B[90mv\u001B[0m #130 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:20 \u001B[90mv\u001B[0m #131 > >\n",
+ "00:00:20 \u001B[90mv\u001B[0m #132 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
+ "00:00:20 \u001B[90mv\u001B[0m #133 > > \u001B[38;2;146;146;178m│\u001B[0m ## catch\n",
+ "00:00:20 \u001B[90mv\u001B[0m #134 > >\n",
+ "00:00:20 \u001B[90mv\u001B[0m #135 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:00:20 \u001B[90mv\u001B[0m #136 > > let inline catch a =\n",
+ "00:00:20 \u001B[90mv\u001B[0m #137 > > a\n",
+ "00:00:20 \u001B[90mv\u001B[0m #138 > > |> Async.Catch\n",
+ "00:00:20 \u001B[90mv\u001B[0m #139 > > |> map (function\n",
+ "00:00:20 \u001B[90mv\u001B[0m #140 > > | Choice1Of2 result -> Ok result\n",
+ "00:00:20 \u001B[90mv\u001B[0m #141 > > | Choice2Of2 ex -> Error ex\n",
+ "00:00:20 \u001B[90mv\u001B[0m #142 > > )\n",
+ "00:00:20 \u001B[90mv\u001B[0m #143 > >\n",
+ "00:00:20 \u001B[90mv\u001B[0m #144 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
+ "00:00:20 \u001B[90mv\u001B[0m #145 > > \u001B[38;2;146;146;178m│\u001B[0m ## runWithTimeoutAsync\n",
+ "00:00:20 \u001B[90mv\u001B[0m #146 > >\n",
+ "00:00:20 \u001B[90mv\u001B[0m #147 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:00:20 \u001B[90mv\u001B[0m #148 > > let inline runWithTimeoutAsync (timeout : int) fn = async {\n",
+ "00:00:20 \u001B[90mv\u001B[0m #149 > > let _locals () = $\"timeout: {timeout} / {_locals ()}\"\n",
+ "00:00:20 \u001B[90mv\u001B[0m #150 > > let! child = Async.StartChild (fn, timeout)\n",
+ "00:00:20 \u001B[90mv\u001B[0m #151 > > return!\n",
+ "00:00:20 \u001B[90mv\u001B[0m #152 > > child\n",
+ "00:00:20 \u001B[90mv\u001B[0m #153 > > |> catch\n",
+ "00:00:20 \u001B[90mv\u001B[0m #154 > > |> map (function\n",
+ "00:00:20 \u001B[90mv\u001B[0m #155 > > | Ok result -> Some result\n",
+ "00:00:20 \u001B[90mv\u001B[0m #156 > > | Error (:? System.TimeoutException as ex) ->\n",
+ "00:00:20 \u001B[90mv\u001B[0m #157 > > trace Debug (fun () -> $\"Async.runWithTimeoutAsync\") _locals\n",
+ "00:00:20 \u001B[90mv\u001B[0m #158 > > None\n",
+ "00:00:20 \u001B[90mv\u001B[0m #159 > > | Error ex ->\n",
+ "00:00:20 \u001B[90mv\u001B[0m #160 > > trace Critical (fun () -> $\"Async.runWithTimeoutAsync** / ex:\n",
+ "00:00:20 \u001B[90mv\u001B[0m #161 > > %A{ex}\") _locals\n",
+ "00:00:20 \u001B[90mv\u001B[0m #162 > > None\n",
+ "00:00:20 \u001B[90mv\u001B[0m #163 > > )\n",
+ "00:00:20 \u001B[90mv\u001B[0m #164 > > }\n",
+ "00:00:20 \u001B[90mv\u001B[0m #165 > >\n",
+ "00:00:20 \u001B[90mv\u001B[0m #166 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:00:20 \u001B[90mv\u001B[0m #167 > > let inline runWithTimeout timeout fn =\n",
+ "00:00:20 \u001B[90mv\u001B[0m #168 > > fn\n",
+ "00:00:20 \u001B[90mv\u001B[0m #169 > > |> runWithTimeoutAsync timeout\n",
+ "00:00:20 \u001B[90mv\u001B[0m #170 > > |> Async.RunSynchronously\n",
"00:00:21 \u001B[90mv\u001B[0m #171 > >\n",
"00:00:21 \u001B[90mv\u001B[0m #172 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:00:21 \u001B[90mv\u001B[0m #173 > > let inline runWithTimeout timeout fn =\n",
- "00:00:21 \u001B[90mv\u001B[0m #174 > > fn\n",
- "00:00:21 \u001B[90mv\u001B[0m #175 > > |> runWithTimeoutAsync timeout\n",
- "00:00:21 \u001B[90mv\u001B[0m #176 > > |> Async.RunSynchronously\n",
- "00:00:21 \u001B[90mv\u001B[0m #177 > >\n",
- "00:00:21 \u001B[90mv\u001B[0m #178 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:00:21 \u001B[90mv\u001B[0m #179 > > //// test\n",
- "00:00:21 \u001B[90mv\u001B[0m #180 > >\n",
- "00:00:21 \u001B[90mv\u001B[0m #181 > > Async.Sleep 60\n",
- "00:00:21 \u001B[90mv\u001B[0m #182 > > |> runWithTimeout 10\n",
- "00:00:21 \u001B[90mv\u001B[0m #183 > > |> _assertEqual None\n",
+ "00:00:21 \u001B[90mv\u001B[0m #173 > > //// test\n",
+ "00:00:21 \u001B[90mv\u001B[0m #174 > >\n",
+ "00:00:21 \u001B[90mv\u001B[0m #175 > > Async.Sleep 60\n",
+ "00:00:21 \u001B[90mv\u001B[0m #176 > > |> runWithTimeout 10\n",
+ "00:00:21 \u001B[90mv\u001B[0m #177 > > |> _assertEqual None\n",
+ "00:00:21 \u001B[90mv\u001B[0m #178 > >\n",
+ "00:00:21 \u001B[90mv\u001B[0m #179 > > ── [ 125.43ms - stdout ] ───────────────────────────────────────────────────────\n",
+ "00:00:21 \u001B[90mv\u001B[0m #180 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:01 \u001B[94md\u001B[0m #3 Async.runWithTimeoutAsync / timeout: 10\n",
+ "00:00:21 \u001B[90mv\u001B[0m #181 > > \u001B[38;2;38;140;38m│\u001B[0m \n",
+ "00:00:21 \u001B[90mv\u001B[0m #182 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:21 \u001B[90mv\u001B[0m #183 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
"00:00:21 \u001B[90mv\u001B[0m #184 > >\n",
- "00:00:21 \u001B[90mv\u001B[0m #185 > > ── [ 115.53ms - stdout ] ───────────────────────────────────────────────────────\n",
- "00:00:21 \u001B[90mv\u001B[0m #186 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:01 \u001B[94md\u001B[0m #3 Async.runWithTimeoutAsync / timeout: 10\n",
- "00:00:21 \u001B[90mv\u001B[0m #187 > > \u001B[38;2;38;140;38m│\u001B[0m \n",
- "00:00:21 \u001B[90mv\u001B[0m #188 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:21 \u001B[90mv\u001B[0m #189 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:21 \u001B[90mv\u001B[0m #190 > >\n",
- "00:00:21 \u001B[90mv\u001B[0m #191 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:00:21 \u001B[90mv\u001B[0m #192 > > //// test\n",
- "00:00:21 \u001B[90mv\u001B[0m #193 > >\n",
- "00:00:21 \u001B[90mv\u001B[0m #194 > > Async.Sleep 10\n",
- "00:00:21 \u001B[90mv\u001B[0m #195 > > |> runWithTimeout 60\n",
- "00:00:21 \u001B[90mv\u001B[0m #196 > > |> _assertEqual (Some ())\n",
- "00:00:21 \u001B[90mv\u001B[0m #197 > >\n",
- "00:00:21 \u001B[90mv\u001B[0m #198 > > ── [ 89.50ms - stdout ] ────────────────────────────────────────────────────────\n",
- "00:00:21 \u001B[90mv\u001B[0m #199 > > \u001B[38;2;38;140;38m│\u001B[0m Some ()\n",
- "00:00:21 \u001B[90mv\u001B[0m #200 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:21 \u001B[90mv\u001B[0m #201 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:21 \u001B[90mv\u001B[0m #202 > >\n",
- "00:00:21 \u001B[90mv\u001B[0m #203 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:00:21 \u001B[90mv\u001B[0m #204 > > //// test\n",
+ "00:00:21 \u001B[90mv\u001B[0m #185 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:00:21 \u001B[90mv\u001B[0m #186 > > //// test\n",
+ "00:00:21 \u001B[90mv\u001B[0m #187 > >\n",
+ "00:00:21 \u001B[90mv\u001B[0m #188 > > Async.Sleep 10\n",
+ "00:00:21 \u001B[90mv\u001B[0m #189 > > |> runWithTimeout 60\n",
+ "00:00:21 \u001B[90mv\u001B[0m #190 > > |> _assertEqual (Some ())\n",
+ "00:00:21 \u001B[90mv\u001B[0m #191 > >\n",
+ "00:00:21 \u001B[90mv\u001B[0m #192 > > ── [ 105.38ms - stdout ] ───────────────────────────────────────────────────────\n",
+ "00:00:21 \u001B[90mv\u001B[0m #193 > > \u001B[38;2;38;140;38m│\u001B[0m Some ()\n",
+ "00:00:21 \u001B[90mv\u001B[0m #194 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:21 \u001B[90mv\u001B[0m #195 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:21 \u001B[90mv\u001B[0m #196 > >\n",
+ "00:00:21 \u001B[90mv\u001B[0m #197 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:00:21 \u001B[90mv\u001B[0m #198 > > //// test\n",
+ "00:00:21 \u001B[90mv\u001B[0m #199 > >\n",
+ "00:00:21 \u001B[90mv\u001B[0m #200 > > async {\n",
+ "00:00:21 \u001B[90mv\u001B[0m #201 > > raise (exn \"error\")\n",
+ "00:00:21 \u001B[90mv\u001B[0m #202 > > }\n",
+ "00:00:21 \u001B[90mv\u001B[0m #203 > > |> runWithTimeout 60\n",
+ "00:00:21 \u001B[90mv\u001B[0m #204 > > |> _assertEqual None\n",
"00:00:21 \u001B[90mv\u001B[0m #205 > >\n",
- "00:00:21 \u001B[90mv\u001B[0m #206 > > async {\n",
- "00:00:21 \u001B[90mv\u001B[0m #207 > > raise (exn \"error\")\n",
- "00:00:21 \u001B[90mv\u001B[0m #208 > > }\n",
- "00:00:21 \u001B[90mv\u001B[0m #209 > > |> runWithTimeout 60\n",
- "00:00:21 \u001B[90mv\u001B[0m #210 > > |> _assertEqual None\n",
- "00:00:21 \u001B[90mv\u001B[0m #211 > >\n",
- "00:00:21 \u001B[90mv\u001B[0m #212 > > ── [ 119.53ms - stdout ] ───────────────────────────────────────────────────────\n",
- "00:00:21 \u001B[90mv\u001B[0m #213 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:02 \u001B[91mc\u001B[0m #4 Async.runWithTimeoutAsync** / ex:\n",
- "00:00:21 \u001B[90mv\u001B[0m #214 > > System.Exception: error\n",
- "00:00:21 \u001B[90mv\u001B[0m #215 > > \u001B[38;2;38;140;38m│\u001B[0m at FSI_0036.it@4-119.Invoke(Unit unitVar)\n",
- "00:00:21 \u001B[90mv\u001B[0m #216 > > \u001B[38;2;38;140;38m│\u001B[0m at\n",
- "00:00:21 \u001B[90mv\u001B[0m #217 > > Microsoft.FSharp.Control.AsyncPrimitives.CallThenInvoke[T,TResult](AsyncActivati\n",
- "00:00:21 \u001B[90mv\u001B[0m #218 > > on`1 ctxt, TResult result1, FSharpFunc`2 part2) in\n",
- "00:00:21 \u001B[90mv\u001B[0m #219 > > D:\\a\\_work\\1\\s\\src\\FSharp.Core\\async.fs:line 510\n",
+ "00:00:21 \u001B[90mv\u001B[0m #206 > > ── [ 102.18ms - stdout ] ───────────────────────────────────────────────────────\n",
+ "00:00:21 \u001B[90mv\u001B[0m #207 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:01 \u001B[91mc\u001B[0m #4 Async.runWithTimeoutAsync** / ex:\n",
+ "00:00:21 \u001B[90mv\u001B[0m #208 > > System.Exception: error\n",
+ "00:00:21 \u001B[90mv\u001B[0m #209 > > \u001B[38;2;38;140;38m│\u001B[0m at FSI_0036.it@4-119.Invoke(Unit unitVar)\n",
+ "00:00:21 \u001B[90mv\u001B[0m #210 > > \u001B[38;2;38;140;38m│\u001B[0m at\n",
+ "00:00:21 \u001B[90mv\u001B[0m #211 > > Microsoft.FSharp.Control.AsyncPrimitives.CallThenInvoke[T,TResult](AsyncActivati\n",
+ "00:00:21 \u001B[90mv\u001B[0m #212 > > on`1 ctxt, TResult result1, FSharpFunc`2 part2) in\n",
+ "00:00:21 \u001B[90mv\u001B[0m #213 > > D:\\a\\_work\\1\\s\\src\\FSharp.Core\\async.fs:line 510\n",
+ "00:00:21 \u001B[90mv\u001B[0m #214 > > \u001B[38;2;38;140;38m│\u001B[0m at\n",
+ "00:00:21 \u001B[90mv\u001B[0m #215 > > Microsoft.FSharp.Control.Trampoline.Execute(FSharpFunc`2 firstAction) in\n",
+ "00:00:21 \u001B[90mv\u001B[0m #216 > > D:\\a\\_work\\1\\s\\src\\FSharp.Core\\async.fs:line 112\n",
+ "00:00:21 \u001B[90mv\u001B[0m #217 > > \u001B[38;2;38;140;38m│\u001B[0m --- End of stack trace from previous location ---\n",
+ "00:00:21 \u001B[90mv\u001B[0m #218 > > \u001B[38;2;38;140;38m│\u001B[0m at Microsoft.FSharp.Control.AsyncResult`1.Commit() in\n",
+ "00:00:21 \u001B[90mv\u001B[0m #219 > > D:\\a\\_work\\1\\s\\src\\FSharp.Core\\async.fs:line 454\n",
"00:00:21 \u001B[90mv\u001B[0m #220 > > \u001B[38;2;38;140;38m│\u001B[0m at\n",
- "00:00:21 \u001B[90mv\u001B[0m #221 > > Microsoft.FSharp.Control.Trampoline.Execute(FSharpFunc`2 firstAction) in\n",
- "00:00:21 \u001B[90mv\u001B[0m #222 > > D:\\a\\_work\\1\\s\\src\\FSharp.Core\\async.fs:line 112\n",
- "00:00:21 \u001B[90mv\u001B[0m #223 > > \u001B[38;2;38;140;38m│\u001B[0m --- End of stack trace from previous location ---\n",
- "00:00:21 \u001B[90mv\u001B[0m #224 > > \u001B[38;2;38;140;38m│\u001B[0m at Microsoft.FSharp.Control.AsyncResult`1.Commit() in\n",
- "00:00:21 \u001B[90mv\u001B[0m #225 > > D:\\a\\_work\\1\\s\\src\\FSharp.Core\\async.fs:line 454\n",
- "00:00:21 \u001B[90mv\u001B[0m #226 > > \u001B[38;2;38;140;38m│\u001B[0m at\n",
- "00:00:21 \u001B[90mv\u001B[0m #227 > > .$Async.AwaitAndBindChildResult@1962-4.Invoke(Unit\n",
- "00:00:21 \u001B[90mv\u001B[0m #228 > > unitVar) in D:\\a\\_work\\1\\s\\src\\FSharp.Core\\async.fs:line 1964\n",
- "00:00:21 \u001B[90mv\u001B[0m #229 > > \u001B[38;2;38;140;38m│\u001B[0m at\n",
- "00:00:21 \u001B[90mv\u001B[0m #230 > > Microsoft.FSharp.Control.AsyncPrimitives.CallThenInvoke[T,TResult](AsyncActivati\n",
- "00:00:21 \u001B[90mv\u001B[0m #231 > > on`1 ctxt, TResult result1, FSharpFunc`2 part2) in\n",
- "00:00:21 \u001B[90mv\u001B[0m #232 > > D:\\a\\_work\\1\\s\\src\\FSharp.Core\\async.fs:line 510\n",
- "00:00:21 \u001B[90mv\u001B[0m #233 > > \u001B[38;2;38;140;38m│\u001B[0m at\n",
- "00:00:21 \u001B[90mv\u001B[0m #234 > > Microsoft.FSharp.Control.Trampoline.Execute(FSharpFunc`2 firstAction) in\n",
- "00:00:21 \u001B[90mv\u001B[0m #235 > > D:\\a\\_work\\1\\s\\src\\FSharp.Core\\async.fs:line 112 / timeout: 60\n",
- "00:00:21 \u001B[90mv\u001B[0m #236 > > \u001B[38;2;38;140;38m│\u001B[0m \n",
- "00:00:21 \u001B[90mv\u001B[0m #237 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:21 \u001B[90mv\u001B[0m #238 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:21 \u001B[90mv\u001B[0m #239 > >\n",
- "00:00:21 \u001B[90mv\u001B[0m #240 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:21 \u001B[90mv\u001B[0m #241 > > \u001B[38;2;146;146;178m│\u001B[0m ## runWithTimeoutStrict\n",
- "00:00:21 \u001B[90mv\u001B[0m #242 > >\n",
- "00:00:21 \u001B[90mv\u001B[0m #243 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:00:21 \u001B[90mv\u001B[0m #244 > > let inline runWithTimeoutStrict (timeout : int) fn =\n",
- "00:00:21 \u001B[90mv\u001B[0m #245 > > let _locals () = $\"timeout: {timeout} / {_locals ()}\"\n",
- "00:00:21 \u001B[90mv\u001B[0m #246 > >\n",
- "00:00:21 \u001B[90mv\u001B[0m #247 > > let timeoutTask = async {\n",
- "00:00:21 \u001B[90mv\u001B[0m #248 > > do! Async.Sleep timeout\n",
- "00:00:21 \u001B[90mv\u001B[0m #249 > > return None, _locals\n",
- "00:00:21 \u001B[90mv\u001B[0m #250 > > }\n",
- "00:00:21 \u001B[90mv\u001B[0m #251 > >\n",
- "00:00:21 \u001B[90mv\u001B[0m #252 > > let task = async {\n",
- "00:00:21 \u001B[90mv\u001B[0m #253 > > try\n",
- "00:00:21 \u001B[90mv\u001B[0m #254 > > return Async.RunSynchronously (fn, timeout) |> Some, _locals\n",
- "00:00:21 \u001B[90mv\u001B[0m #255 > > with\n",
- "00:00:21 \u001B[90mv\u001B[0m #256 > > | :? System.TimeoutException as ex ->\n",
- "00:00:21 \u001B[90mv\u001B[0m #257 > > let _locals () = $\"ex: {ex |> SpiralSm.format_exception} / {_locals\n",
- "00:00:21 \u001B[90mv\u001B[0m #258 > > ()}\"\n",
- "00:00:21 \u001B[90mv\u001B[0m #259 > > return None, _locals\n",
- "00:00:21 \u001B[90mv\u001B[0m #260 > > | ex ->\n",
- "00:00:21 \u001B[90mv\u001B[0m #261 > > trace Critical\n",
- "00:00:21 \u001B[90mv\u001B[0m #262 > > (fun () -> \"Async.runWithTimeoutStrict / async error\")\n",
- "00:00:21 \u001B[90mv\u001B[0m #263 > > (fun () -> $\"ex: {ex |> SpiralSm.format_exception} / {_locals\n",
- "00:00:21 \u001B[90mv\u001B[0m #264 > > ()}\")\n",
- "00:00:21 \u001B[90mv\u001B[0m #265 > > return raise ex\n",
- "00:00:21 \u001B[90mv\u001B[0m #266 > > }\n",
- "00:00:21 \u001B[90mv\u001B[0m #267 > >\n",
- "00:00:21 \u001B[90mv\u001B[0m #268 > > try\n",
- "00:00:21 \u001B[90mv\u001B[0m #269 > > [[| timeoutTask; task |]]\n",
- "00:00:21 \u001B[90mv\u001B[0m #270 > > |> Array.map Async.StartAsTask\n",
- "00:00:21 \u001B[90mv\u001B[0m #271 > > |> System.Threading.Tasks.Task.WhenAny\n",
- "00:00:21 \u001B[90mv\u001B[0m #272 > > |> fun task ->\n",
- "00:00:21 \u001B[90mv\u001B[0m #273 > > match task.Result.Result with\n",
- "00:00:21 \u001B[90mv\u001B[0m #274 > > | None, _locals ->\n",
- "00:00:21 \u001B[90mv\u001B[0m #275 > > trace Debug (fun () -> \"runWithTimeoutStrict\") _locals\n",
- "00:00:21 \u001B[90mv\u001B[0m #276 > > None\n",
- "00:00:21 \u001B[90mv\u001B[0m #277 > > | result, _ -> result\n",
- "00:00:21 \u001B[90mv\u001B[0m #278 > > with\n",
- "00:00:21 \u001B[90mv\u001B[0m #279 > > | :? System.AggregateException as ex when\n",
- "00:00:21 \u001B[90mv\u001B[0m #280 > > ex.InnerExceptions\n",
- "00:00:21 \u001B[90mv\u001B[0m #281 > > |> Seq.exists (function :? System.Threading.Tasks.TaskCanceledException\n",
- "00:00:21 \u001B[90mv\u001B[0m #282 > > -> true | _ -> false)\n",
- "00:00:21 \u001B[90mv\u001B[0m #283 > > ->\n",
- "00:00:21 \u001B[90mv\u001B[0m #284 > > trace Warning\n",
- "00:00:21 \u001B[90mv\u001B[0m #285 > > (fun () -> \"Async.runWithTimeoutStrict\")\n",
- "00:00:21 \u001B[90mv\u001B[0m #286 > > (fun () -> $\"ex: {ex |> SpiralSm.format_exception} / {_locals ()}\")\n",
- "00:00:21 \u001B[90mv\u001B[0m #287 > > None\n",
- "00:00:21 \u001B[90mv\u001B[0m #288 > > | ex ->\n",
- "00:00:21 \u001B[90mv\u001B[0m #289 > > trace Critical\n",
- "00:00:21 \u001B[90mv\u001B[0m #290 > > (fun () -> \"Async.runWithTimeoutStrict / task error\")\n",
- "00:00:21 \u001B[90mv\u001B[0m #291 > > (fun () -> $\"ex: {ex |> SpiralSm.format_exception} / {_locals ()}\")\n",
- "00:00:21 \u001B[90mv\u001B[0m #292 > > None\n",
- "00:00:21 \u001B[90mv\u001B[0m #293 > >\n",
- "00:00:21 \u001B[90mv\u001B[0m #294 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:00:21 \u001B[90mv\u001B[0m #295 > > //// test\n",
- "00:00:21 \u001B[90mv\u001B[0m #296 > >\n",
- "00:00:21 \u001B[90mv\u001B[0m #297 > > Async.Sleep 60\n",
- "00:00:21 \u001B[90mv\u001B[0m #298 > > |> runWithTimeoutStrict 10\n",
- "00:00:21 \u001B[90mv\u001B[0m #299 > > |> _assertEqual None\n",
- "00:00:22 \u001B[90mv\u001B[0m #300 > >\n",
- "00:00:22 \u001B[90mv\u001B[0m #301 > > ── [ 140.94ms - stdout ] ───────────────────────────────────────────────────────\n",
- "00:00:22 \u001B[90mv\u001B[0m #302 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:02 \u001B[94md\u001B[0m #5 runWithTimeoutStrict / timeout: 10\n",
- "00:00:22 \u001B[90mv\u001B[0m #303 > > \u001B[38;2;38;140;38m│\u001B[0m \n",
- "00:00:22 \u001B[90mv\u001B[0m #304 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:22 \u001B[90mv\u001B[0m #305 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:22 \u001B[90mv\u001B[0m #306 > >\n",
- "00:00:22 \u001B[90mv\u001B[0m #307 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:00:22 \u001B[90mv\u001B[0m #308 > > //// test\n",
- "00:00:22 \u001B[90mv\u001B[0m #309 > >\n",
- "00:00:22 \u001B[90mv\u001B[0m #310 > > Async.Sleep 10\n",
- "00:00:22 \u001B[90mv\u001B[0m #311 > > |> runWithTimeoutStrict 60\n",
- "00:00:22 \u001B[90mv\u001B[0m #312 > > |> _assertEqual (Some ())\n",
- "00:00:22 \u001B[90mv\u001B[0m #313 > >\n",
- "00:00:22 \u001B[90mv\u001B[0m #314 > > ── [ 139.15ms - stdout ] ───────────────────────────────────────────────────────\n",
- "00:00:22 \u001B[90mv\u001B[0m #315 > > \u001B[38;2;38;140;38m│\u001B[0m Some ()\n",
- "00:00:22 \u001B[90mv\u001B[0m #316 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:22 \u001B[90mv\u001B[0m #317 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:22 \u001B[90mv\u001B[0m #318 > >\n",
- "00:00:22 \u001B[90mv\u001B[0m #319 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:00:22 \u001B[90mv\u001B[0m #320 > > //// test\n",
- "00:00:22 \u001B[90mv\u001B[0m #321 > >\n",
- "00:00:22 \u001B[90mv\u001B[0m #322 > > async {\n",
- "00:00:22 \u001B[90mv\u001B[0m #323 > > raise (exn \"error\")\n",
- "00:00:22 \u001B[90mv\u001B[0m #324 > > }\n",
- "00:00:22 \u001B[90mv\u001B[0m #325 > > |> runWithTimeoutStrict 60\n",
- "00:00:22 \u001B[90mv\u001B[0m #326 > > |> _assertEqual None\n",
- "00:00:22 \u001B[90mv\u001B[0m #327 > >\n",
- "00:00:22 \u001B[90mv\u001B[0m #328 > > ── [ 161.72ms - stdout ] ───────────────────────────────────────────────────────\n",
- "00:00:22 \u001B[90mv\u001B[0m #329 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:02 \u001B[91mc\u001B[0m #6 Async.runWithTimeoutStrict / async error\n",
- "00:00:22 \u001B[90mv\u001B[0m #330 > > ex: System.Exception: error / timeout: 60\n",
- "00:00:22 \u001B[90mv\u001B[0m #331 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:02 \u001B[91mc\u001B[0m #7 Async.runWithTimeoutStrict / task error\n",
- "00:00:22 \u001B[90mv\u001B[0m #332 > > ex: System.AggregateException: One or more errors occurred. (error) / timeout:\n",
- "00:00:22 \u001B[90mv\u001B[0m #333 > > 60\n",
- "00:00:22 \u001B[90mv\u001B[0m #334 > > \u001B[38;2;38;140;38m│\u001B[0m \n",
- "00:00:22 \u001B[90mv\u001B[0m #335 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:22 \u001B[90mv\u001B[0m #336 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:22 \u001B[90mv\u001B[0m #337 > >\n",
- "00:00:22 \u001B[90mv\u001B[0m #338 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:22 \u001B[90mv\u001B[0m #339 > > \u001B[38;2;146;146;178m│\u001B[0m ## awaitValueTask\n",
- "00:00:22 \u001B[90mv\u001B[0m #340 > >\n",
- "00:00:22 \u001B[90mv\u001B[0m #341 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:00:22 \u001B[90mv\u001B[0m #342 > > let inline awaitValueTaskUnit (task : System.Threading.Tasks.ValueTask) =\n",
- "00:00:22 \u001B[90mv\u001B[0m #343 > > task.AsTask () |> Async.AwaitTask\n",
+ "00:00:21 \u001B[90mv\u001B[0m #221 > > .$Async.AwaitAndBindChildResult@1966-4.Invoke(Unit\n",
+ "00:00:21 \u001B[90mv\u001B[0m #222 > > unitVar) in D:\\a\\_work\\1\\s\\src\\FSharp.Core\\async.fs:line 1968\n",
+ "00:00:21 \u001B[90mv\u001B[0m #223 > > \u001B[38;2;38;140;38m│\u001B[0m at\n",
+ "00:00:21 \u001B[90mv\u001B[0m #224 > > Microsoft.FSharp.Control.AsyncPrimitives.CallThenInvoke[T,TResult](AsyncActivati\n",
+ "00:00:21 \u001B[90mv\u001B[0m #225 > > on`1 ctxt, TResult result1, FSharpFunc`2 part2) in\n",
+ "00:00:21 \u001B[90mv\u001B[0m #226 > > D:\\a\\_work\\1\\s\\src\\FSharp.Core\\async.fs:line 510\n",
+ "00:00:21 \u001B[90mv\u001B[0m #227 > > \u001B[38;2;38;140;38m│\u001B[0m at\n",
+ "00:00:21 \u001B[90mv\u001B[0m #228 > > Microsoft.FSharp.Control.Trampoline.Execute(FSharpFunc`2 firstAction) in\n",
+ "00:00:21 \u001B[90mv\u001B[0m #229 > > D:\\a\\_work\\1\\s\\src\\FSharp.Core\\async.fs:line 112 / timeout: 60\n",
+ "00:00:21 \u001B[90mv\u001B[0m #230 > > \u001B[38;2;38;140;38m│\u001B[0m \n",
+ "00:00:21 \u001B[90mv\u001B[0m #231 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:21 \u001B[90mv\u001B[0m #232 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:21 \u001B[90mv\u001B[0m #233 > >\n",
+ "00:00:21 \u001B[90mv\u001B[0m #234 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
+ "00:00:21 \u001B[90mv\u001B[0m #235 > > \u001B[38;2;146;146;178m│\u001B[0m ## runWithTimeoutStrict\n",
+ "00:00:21 \u001B[90mv\u001B[0m #236 > >\n",
+ "00:00:21 \u001B[90mv\u001B[0m #237 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:00:21 \u001B[90mv\u001B[0m #238 > > let inline runWithTimeoutStrict (timeout : int) fn =\n",
+ "00:00:21 \u001B[90mv\u001B[0m #239 > > let _locals () = $\"timeout: {timeout} / {_locals ()}\"\n",
+ "00:00:21 \u001B[90mv\u001B[0m #240 > >\n",
+ "00:00:21 \u001B[90mv\u001B[0m #241 > > let timeoutTask = async {\n",
+ "00:00:21 \u001B[90mv\u001B[0m #242 > > do! Async.Sleep timeout\n",
+ "00:00:21 \u001B[90mv\u001B[0m #243 > > return None, _locals\n",
+ "00:00:21 \u001B[90mv\u001B[0m #244 > > }\n",
+ "00:00:21 \u001B[90mv\u001B[0m #245 > >\n",
+ "00:00:21 \u001B[90mv\u001B[0m #246 > > let task = async {\n",
+ "00:00:21 \u001B[90mv\u001B[0m #247 > > try\n",
+ "00:00:21 \u001B[90mv\u001B[0m #248 > > return Async.RunSynchronously (fn, timeout) |> Some, _locals\n",
+ "00:00:21 \u001B[90mv\u001B[0m #249 > > with\n",
+ "00:00:21 \u001B[90mv\u001B[0m #250 > > | :? System.TimeoutException as ex ->\n",
+ "00:00:21 \u001B[90mv\u001B[0m #251 > > let _locals () = $\"ex: {ex |> SpiralSm.format_exception} / {_locals\n",
+ "00:00:21 \u001B[90mv\u001B[0m #252 > > ()}\"\n",
+ "00:00:21 \u001B[90mv\u001B[0m #253 > > return None, _locals\n",
+ "00:00:21 \u001B[90mv\u001B[0m #254 > > | ex ->\n",
+ "00:00:21 \u001B[90mv\u001B[0m #255 > > trace Critical\n",
+ "00:00:21 \u001B[90mv\u001B[0m #256 > > (fun () -> \"Async.runWithTimeoutStrict / async error\")\n",
+ "00:00:21 \u001B[90mv\u001B[0m #257 > > (fun () -> $\"ex: {ex |> SpiralSm.format_exception} / {_locals\n",
+ "00:00:21 \u001B[90mv\u001B[0m #258 > > ()}\")\n",
+ "00:00:21 \u001B[90mv\u001B[0m #259 > > return raise ex\n",
+ "00:00:21 \u001B[90mv\u001B[0m #260 > > }\n",
+ "00:00:21 \u001B[90mv\u001B[0m #261 > >\n",
+ "00:00:21 \u001B[90mv\u001B[0m #262 > > try\n",
+ "00:00:21 \u001B[90mv\u001B[0m #263 > > [[| timeoutTask; task |]]\n",
+ "00:00:21 \u001B[90mv\u001B[0m #264 > > |> Array.map Async.StartAsTask\n",
+ "00:00:21 \u001B[90mv\u001B[0m #265 > > |> System.Threading.Tasks.Task.WhenAny\n",
+ "00:00:21 \u001B[90mv\u001B[0m #266 > > |> fun task ->\n",
+ "00:00:21 \u001B[90mv\u001B[0m #267 > > match task.Result.Result with\n",
+ "00:00:21 \u001B[90mv\u001B[0m #268 > > | None, _locals ->\n",
+ "00:00:21 \u001B[90mv\u001B[0m #269 > > trace Debug (fun () -> \"runWithTimeoutStrict\") _locals\n",
+ "00:00:21 \u001B[90mv\u001B[0m #270 > > None\n",
+ "00:00:21 \u001B[90mv\u001B[0m #271 > > | result, _ -> result\n",
+ "00:00:21 \u001B[90mv\u001B[0m #272 > > with\n",
+ "00:00:21 \u001B[90mv\u001B[0m #273 > > | :? System.AggregateException as ex when\n",
+ "00:00:21 \u001B[90mv\u001B[0m #274 > > ex.InnerExceptions\n",
+ "00:00:21 \u001B[90mv\u001B[0m #275 > > |> Seq.exists (function :? System.Threading.Tasks.TaskCanceledException\n",
+ "00:00:21 \u001B[90mv\u001B[0m #276 > > -> true | _ -> false)\n",
+ "00:00:21 \u001B[90mv\u001B[0m #277 > > ->\n",
+ "00:00:21 \u001B[90mv\u001B[0m #278 > > trace Warning\n",
+ "00:00:21 \u001B[90mv\u001B[0m #279 > > (fun () -> \"Async.runWithTimeoutStrict\")\n",
+ "00:00:21 \u001B[90mv\u001B[0m #280 > > (fun () -> $\"ex: {ex |> SpiralSm.format_exception} / {_locals ()}\")\n",
+ "00:00:21 \u001B[90mv\u001B[0m #281 > > None\n",
+ "00:00:21 \u001B[90mv\u001B[0m #282 > > | ex ->\n",
+ "00:00:21 \u001B[90mv\u001B[0m #283 > > trace Critical\n",
+ "00:00:21 \u001B[90mv\u001B[0m #284 > > (fun () -> \"Async.runWithTimeoutStrict / task error\")\n",
+ "00:00:21 \u001B[90mv\u001B[0m #285 > > (fun () -> $\"ex: {ex |> SpiralSm.format_exception} / {_locals ()}\")\n",
+ "00:00:21 \u001B[90mv\u001B[0m #286 > > None\n",
+ "00:00:21 \u001B[90mv\u001B[0m #287 > >\n",
+ "00:00:21 \u001B[90mv\u001B[0m #288 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:00:21 \u001B[90mv\u001B[0m #289 > > //// test\n",
+ "00:00:21 \u001B[90mv\u001B[0m #290 > >\n",
+ "00:00:21 \u001B[90mv\u001B[0m #291 > > Async.Sleep 60\n",
+ "00:00:21 \u001B[90mv\u001B[0m #292 > > |> runWithTimeoutStrict 10\n",
+ "00:00:21 \u001B[90mv\u001B[0m #293 > > |> _assertEqual None\n",
+ "00:00:21 \u001B[90mv\u001B[0m #294 > >\n",
+ "00:00:21 \u001B[90mv\u001B[0m #295 > > ── [ 143.83ms - stdout ] ───────────────────────────────────────────────────────\n",
+ "00:00:21 \u001B[90mv\u001B[0m #296 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:02 \u001B[94md\u001B[0m #5 runWithTimeoutStrict / timeout: 10\n",
+ "00:00:21 \u001B[90mv\u001B[0m #297 > > \u001B[38;2;38;140;38m│\u001B[0m \n",
+ "00:00:21 \u001B[90mv\u001B[0m #298 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:21 \u001B[90mv\u001B[0m #299 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:21 \u001B[90mv\u001B[0m #300 > >\n",
+ "00:00:21 \u001B[90mv\u001B[0m #301 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:00:21 \u001B[90mv\u001B[0m #302 > > //// test\n",
+ "00:00:21 \u001B[90mv\u001B[0m #303 > >\n",
+ "00:00:21 \u001B[90mv\u001B[0m #304 > > Async.Sleep 10\n",
+ "00:00:21 \u001B[90mv\u001B[0m #305 > > |> runWithTimeoutStrict 60\n",
+ "00:00:21 \u001B[90mv\u001B[0m #306 > > |> _assertEqual (Some ())\n",
+ "00:00:21 \u001B[90mv\u001B[0m #307 > >\n",
+ "00:00:21 \u001B[90mv\u001B[0m #308 > > ── [ 139.73ms - stdout ] ───────────────────────────────────────────────────────\n",
+ "00:00:21 \u001B[90mv\u001B[0m #309 > > \u001B[38;2;38;140;38m│\u001B[0m Some ()\n",
+ "00:00:21 \u001B[90mv\u001B[0m #310 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:21 \u001B[90mv\u001B[0m #311 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:21 \u001B[90mv\u001B[0m #312 > >\n",
+ "00:00:21 \u001B[90mv\u001B[0m #313 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:00:21 \u001B[90mv\u001B[0m #314 > > //// test\n",
+ "00:00:21 \u001B[90mv\u001B[0m #315 > >\n",
+ "00:00:21 \u001B[90mv\u001B[0m #316 > > async {\n",
+ "00:00:21 \u001B[90mv\u001B[0m #317 > > raise (exn \"error\")\n",
+ "00:00:21 \u001B[90mv\u001B[0m #318 > > }\n",
+ "00:00:21 \u001B[90mv\u001B[0m #319 > > |> runWithTimeoutStrict 60\n",
+ "00:00:21 \u001B[90mv\u001B[0m #320 > > |> _assertEqual None\n",
+ "00:00:21 \u001B[90mv\u001B[0m #321 > >\n",
+ "00:00:21 \u001B[90mv\u001B[0m #322 > > ── [ 142.41ms - stdout ] ───────────────────────────────────────────────────────\n",
+ "00:00:21 \u001B[90mv\u001B[0m #323 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:02 \u001B[91mc\u001B[0m #6 Async.runWithTimeoutStrict / async error\n",
+ "00:00:21 \u001B[90mv\u001B[0m #324 > > ex: System.Exception: error / timeout: 60\n",
+ "00:00:21 \u001B[90mv\u001B[0m #325 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:02 \u001B[91mc\u001B[0m #7 Async.runWithTimeoutStrict / task error\n",
+ "00:00:21 \u001B[90mv\u001B[0m #326 > > ex: System.AggregateException: One or more errors occurred. (error) / timeout:\n",
+ "00:00:21 \u001B[90mv\u001B[0m #327 > > 60\n",
+ "00:00:21 \u001B[90mv\u001B[0m #328 > > \u001B[38;2;38;140;38m│\u001B[0m \n",
+ "00:00:21 \u001B[90mv\u001B[0m #329 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:21 \u001B[90mv\u001B[0m #330 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:21 \u001B[90mv\u001B[0m #331 > >\n",
+ "00:00:21 \u001B[90mv\u001B[0m #332 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
+ "00:00:21 \u001B[90mv\u001B[0m #333 > > \u001B[38;2;146;146;178m│\u001B[0m ## awaitValueTask\n",
+ "00:00:21 \u001B[90mv\u001B[0m #334 > >\n",
+ "00:00:21 \u001B[90mv\u001B[0m #335 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:00:21 \u001B[90mv\u001B[0m #336 > > let inline awaitValueTaskUnit (task : System.Threading.Tasks.ValueTask) =\n",
+ "00:00:21 \u001B[90mv\u001B[0m #337 > > task.AsTask () |> Async.AwaitTask\n",
+ "00:00:21 \u001B[90mv\u001B[0m #338 > >\n",
+ "00:00:21 \u001B[90mv\u001B[0m #339 > > let inline awaitValueTask (task : System.Threading.Tasks.ValueTask<_>) =\n",
+ "00:00:21 \u001B[90mv\u001B[0m #340 > > task.AsTask () |> Async.AwaitTask\n",
+ "00:00:22 \u001B[90mv\u001B[0m #341 > >\n",
+ "00:00:22 \u001B[90mv\u001B[0m #342 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
+ "00:00:22 \u001B[90mv\u001B[0m #343 > > \u001B[38;2;146;146;178m│\u001B[0m ## init\n",
"00:00:22 \u001B[90mv\u001B[0m #344 > >\n",
- "00:00:22 \u001B[90mv\u001B[0m #345 > > let inline awaitValueTask (task : System.Threading.Tasks.ValueTask<_>) =\n",
- "00:00:22 \u001B[90mv\u001B[0m #346 > > task.AsTask () |> Async.AwaitTask\n",
- "00:00:22 \u001B[90mv\u001B[0m #347 > >\n",
- "00:00:22 \u001B[90mv\u001B[0m #348 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:22 \u001B[90mv\u001B[0m #349 > > \u001B[38;2;146;146;178m│\u001B[0m ## init\n",
- "00:00:22 \u001B[90mv\u001B[0m #350 > >\n",
- "00:00:22 \u001B[90mv\u001B[0m #351 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:00:22 \u001B[90mv\u001B[0m #352 > > let inline init x = async {\n",
- "00:00:22 \u001B[90mv\u001B[0m #353 > > return x\n",
- "00:00:22 \u001B[90mv\u001B[0m #354 > > }\n",
- "00:00:22 \u001B[90mv\u001B[0m #355 > >\n",
- "00:00:22 \u001B[90mv\u001B[0m #356 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:00:22 \u001B[90mv\u001B[0m #357 > > //// test\n",
- "00:00:22 \u001B[90mv\u001B[0m #358 > >\n",
- "00:00:22 \u001B[90mv\u001B[0m #359 > > init 1\n",
- "00:00:22 \u001B[90mv\u001B[0m #360 > > |> Async.RunSynchronously\n",
- "00:00:22 \u001B[90mv\u001B[0m #361 > > |> _assertEqual 1\n",
- "00:00:22 \u001B[90mv\u001B[0m #362 > >\n",
- "00:00:22 \u001B[90mv\u001B[0m #363 > > ── [ 37.05ms - stdout ] ────────────────────────────────────────────────────────\n",
- "00:00:22 \u001B[90mv\u001B[0m #364 > > \u001B[38;2;38;140;38m│\u001B[0m 1\n",
- "00:00:22 \u001B[90mv\u001B[0m #365 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:22 \u001B[90mv\u001B[0m #366 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:22 \u001B[90mv\u001B[0m #367 > >\n",
- "00:00:22 \u001B[90mv\u001B[0m #368 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:22 \u001B[90mv\u001B[0m #369 > > \u001B[38;2;146;146;178m│\u001B[0m ## withCancellationToken\n",
- "00:00:22 \u001B[90mv\u001B[0m #370 > >\n",
- "00:00:22 \u001B[90mv\u001B[0m #371 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:00:22 \u001B[90mv\u001B[0m #372 > > let inline withCancellationToken (ct : System.Threading.CancellationToken) fn =\n",
- "00:00:22 \u001B[90mv\u001B[0m #373 > > Async.StartImmediateAsTask (fn, ct)\n",
- "00:00:22 \u001B[90mv\u001B[0m #374 > > |> Async.AwaitTask\n",
- "00:00:22 \u001B[90mv\u001B[0m #375 > >\n",
- "00:00:22 \u001B[90mv\u001B[0m #376 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:00:22 \u001B[90mv\u001B[0m #377 > > //// test\n",
- "00:00:22 \u001B[90mv\u001B[0m #378 > >\n",
- "00:00:22 \u001B[90mv\u001B[0m #379 > > let cts = new System.Threading.CancellationTokenSource ()\n",
+ "00:00:22 \u001B[90mv\u001B[0m #345 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:00:22 \u001B[90mv\u001B[0m #346 > > let inline init x = async {\n",
+ "00:00:22 \u001B[90mv\u001B[0m #347 > > return x\n",
+ "00:00:22 \u001B[90mv\u001B[0m #348 > > }\n",
+ "00:00:22 \u001B[90mv\u001B[0m #349 > >\n",
+ "00:00:22 \u001B[90mv\u001B[0m #350 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:00:22 \u001B[90mv\u001B[0m #351 > > //// test\n",
+ "00:00:22 \u001B[90mv\u001B[0m #352 > >\n",
+ "00:00:22 \u001B[90mv\u001B[0m #353 > > init 1\n",
+ "00:00:22 \u001B[90mv\u001B[0m #354 > > |> Async.RunSynchronously\n",
+ "00:00:22 \u001B[90mv\u001B[0m #355 > > |> _assertEqual 1\n",
+ "00:00:22 \u001B[90mv\u001B[0m #356 > >\n",
+ "00:00:22 \u001B[90mv\u001B[0m #357 > > ── [ 35.12ms - stdout ] ────────────────────────────────────────────────────────\n",
+ "00:00:22 \u001B[90mv\u001B[0m #358 > > \u001B[38;2;38;140;38m│\u001B[0m 1\n",
+ "00:00:22 \u001B[90mv\u001B[0m #359 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:22 \u001B[90mv\u001B[0m #360 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:22 \u001B[90mv\u001B[0m #361 > >\n",
+ "00:00:22 \u001B[90mv\u001B[0m #362 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
+ "00:00:22 \u001B[90mv\u001B[0m #363 > > \u001B[38;2;146;146;178m│\u001B[0m ## withCancellationToken\n",
+ "00:00:22 \u001B[90mv\u001B[0m #364 > >\n",
+ "00:00:22 \u001B[90mv\u001B[0m #365 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:00:22 \u001B[90mv\u001B[0m #366 > > let inline withCancellationToken (ct : System.Threading.CancellationToken) fn =\n",
+ "00:00:22 \u001B[90mv\u001B[0m #367 > > Async.StartImmediateAsTask (fn, ct)\n",
+ "00:00:22 \u001B[90mv\u001B[0m #368 > > |> Async.AwaitTask\n",
+ "00:00:22 \u001B[90mv\u001B[0m #369 > >\n",
+ "00:00:22 \u001B[90mv\u001B[0m #370 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:00:22 \u001B[90mv\u001B[0m #371 > > //// test\n",
+ "00:00:22 \u001B[90mv\u001B[0m #372 > >\n",
+ "00:00:22 \u001B[90mv\u001B[0m #373 > > let cts = new System.Threading.CancellationTokenSource ()\n",
+ "00:00:22 \u001B[90mv\u001B[0m #374 > >\n",
+ "00:00:22 \u001B[90mv\u001B[0m #375 > > async {\n",
+ "00:00:22 \u001B[90mv\u001B[0m #376 > > let run = async {\n",
+ "00:00:22 \u001B[90mv\u001B[0m #377 > > do! Async.Sleep 100\n",
+ "00:00:22 \u001B[90mv\u001B[0m #378 > > return 1\n",
+ "00:00:22 \u001B[90mv\u001B[0m #379 > > }\n",
"00:00:22 \u001B[90mv\u001B[0m #380 > >\n",
- "00:00:22 \u001B[90mv\u001B[0m #381 > > async {\n",
- "00:00:22 \u001B[90mv\u001B[0m #382 > > let run = async {\n",
- "00:00:22 \u001B[90mv\u001B[0m #383 > > do! Async.Sleep 100\n",
- "00:00:22 \u001B[90mv\u001B[0m #384 > > return 1\n",
- "00:00:22 \u001B[90mv\u001B[0m #385 > > }\n",
+ "00:00:22 \u001B[90mv\u001B[0m #381 > > let! child =\n",
+ "00:00:22 \u001B[90mv\u001B[0m #382 > > run\n",
+ "00:00:22 \u001B[90mv\u001B[0m #383 > > |> withCancellationToken cts.Token\n",
+ "00:00:22 \u001B[90mv\u001B[0m #384 > > |> catch\n",
+ "00:00:22 \u001B[90mv\u001B[0m #385 > > |> Async.StartChild\n",
"00:00:22 \u001B[90mv\u001B[0m #386 > >\n",
- "00:00:22 \u001B[90mv\u001B[0m #387 > > let! child =\n",
- "00:00:22 \u001B[90mv\u001B[0m #388 > > run\n",
- "00:00:22 \u001B[90mv\u001B[0m #389 > > |> withCancellationToken cts.Token\n",
- "00:00:22 \u001B[90mv\u001B[0m #390 > > |> catch\n",
- "00:00:22 \u001B[90mv\u001B[0m #391 > > |> Async.StartChild\n",
- "00:00:22 \u001B[90mv\u001B[0m #392 > >\n",
- "00:00:22 \u001B[90mv\u001B[0m #393 > > do! Async.Sleep 50\n",
- "00:00:22 \u001B[90mv\u001B[0m #394 > > cts.Cancel ()\n",
- "00:00:22 \u001B[90mv\u001B[0m #395 > > return! child\n",
- "00:00:22 \u001B[90mv\u001B[0m #396 > > }\n",
- "00:00:22 \u001B[90mv\u001B[0m #397 > > |> Async.RunSynchronously\n",
- "00:00:22 \u001B[90mv\u001B[0m #398 > > |> Result.mapError _.Message\n",
- "00:00:22 \u001B[90mv\u001B[0m #399 > > |> _assertEqual (Error (\"A task was canceled.\"))\n",
- "00:00:22 \u001B[90mv\u001B[0m #400 > >\n",
- "00:00:22 \u001B[90mv\u001B[0m #401 > > ── [ 223.84ms - stdout ] ───────────────────────────────────────────────────────\n",
- "00:00:22 \u001B[90mv\u001B[0m #402 > > \u001B[38;2;38;140;38m│\u001B[0m Error \"A task was canceled.\"\n",
- "00:00:22 \u001B[90mv\u001B[0m #403 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:22 \u001B[90mv\u001B[0m #404 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:22 \u001B[90mv\u001B[0m #405 > >\n",
- "00:00:22 \u001B[90mv\u001B[0m #406 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:22 \u001B[90mv\u001B[0m #407 > > \u001B[38;2;146;146;178m│\u001B[0m ## retryAsync\n",
- "00:00:22 \u001B[90mv\u001B[0m #408 > >\n",
- "00:00:22 \u001B[90mv\u001B[0m #409 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:00:22 \u001B[90mv\u001B[0m #410 > > let inline retryAsync retries fn =\n",
- "00:00:22 \u001B[90mv\u001B[0m #411 > > let rec loop retry lastError = async {\n",
- "00:00:22 \u001B[90mv\u001B[0m #412 > > try\n",
- "00:00:22 \u001B[90mv\u001B[0m #413 > > return!\n",
- "00:00:22 \u001B[90mv\u001B[0m #414 > > if retry <= retries\n",
- "00:00:22 \u001B[90mv\u001B[0m #415 > > then fn |> map Ok\n",
- "00:00:22 \u001B[90mv\u001B[0m #416 > > else lastError |> Error |> init\n",
- "00:00:22 \u001B[90mv\u001B[0m #417 > > with ex ->\n",
- "00:00:22 \u001B[90mv\u001B[0m #418 > > trace Debug (fun () -> $\"Async.retryAsync / retry: {retry}/{retries}\n",
- "00:00:22 \u001B[90mv\u001B[0m #419 > > / ex: {ex |> SpiralSm.format_exception}\") _locals\n",
- "00:00:22 \u001B[90mv\u001B[0m #420 > > do! Async.Sleep 30\n",
- "00:00:22 \u001B[90mv\u001B[0m #421 > > return! loop (retry + 1) (ex |> SpiralSm.format_exception)\n",
- "00:00:22 \u001B[90mv\u001B[0m #422 > > }\n",
- "00:00:22 \u001B[90mv\u001B[0m #423 > > loop 1 \"Async.retryAsync / invalid retries / retries: {retries}\"\n",
- "00:00:22 \u001B[90mv\u001B[0m #424 > >\n",
- "00:00:22 \u001B[90mv\u001B[0m #425 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:00:22 \u001B[90mv\u001B[0m #426 > > //// test\n",
- "00:00:22 \u001B[90mv\u001B[0m #427 > >\n",
- "00:00:22 \u001B[90mv\u001B[0m #428 > > let retry_fn_test = ref 0\n",
- "00:00:22 \u001B[90mv\u001B[0m #429 > > async {\n",
- "00:00:22 \u001B[90mv\u001B[0m #430 > > retry_fn_test.Value <- retry_fn_test.Value + 1\n",
- "00:00:22 \u001B[90mv\u001B[0m #431 > > return retry_fn_test.Value\n",
- "00:00:22 \u001B[90mv\u001B[0m #432 > > }\n",
- "00:00:22 \u001B[90mv\u001B[0m #433 > > |> retryAsync 3\n",
- "00:00:22 \u001B[90mv\u001B[0m #434 > > |> Async.RunSynchronously\n",
- "00:00:22 \u001B[90mv\u001B[0m #435 > > |> _assertEqual (Ok 1)\n",
- "00:00:22 \u001B[90mv\u001B[0m #436 > >\n",
- "00:00:22 \u001B[90mv\u001B[0m #437 > > ── [ 124.25ms - stdout ] ───────────────────────────────────────────────────────\n",
- "00:00:22 \u001B[90mv\u001B[0m #438 > > \u001B[38;2;38;140;38m│\u001B[0m Ok 1\n",
- "00:00:22 \u001B[90mv\u001B[0m #439 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:22 \u001B[90mv\u001B[0m #440 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:22 \u001B[90mv\u001B[0m #441 > >\n",
- "00:00:22 \u001B[90mv\u001B[0m #442 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:00:22 \u001B[90mv\u001B[0m #443 > > //// test\n",
- "00:00:22 \u001B[90mv\u001B[0m #444 > >\n",
- "00:00:22 \u001B[90mv\u001B[0m #445 > > let retry_fn_test = ref 0\n",
- "00:00:22 \u001B[90mv\u001B[0m #446 > > async {\n",
- "00:00:22 \u001B[90mv\u001B[0m #447 > > return\n",
- "00:00:22 \u001B[90mv\u001B[0m #448 > > if retry_fn_test.Value >= 2\n",
- "00:00:22 \u001B[90mv\u001B[0m #449 > > then retry_fn_test.Value\n",
- "00:00:22 \u001B[90mv\u001B[0m #450 > > else\n",
- "00:00:22 \u001B[90mv\u001B[0m #451 > > retry_fn_test.Value <- retry_fn_test.Value + 1\n",
- "00:00:22 \u001B[90mv\u001B[0m #452 > > failwith \"test\"\n",
- "00:00:22 \u001B[90mv\u001B[0m #453 > > }\n",
- "00:00:22 \u001B[90mv\u001B[0m #454 > > |> retryAsync 3\n",
- "00:00:22 \u001B[90mv\u001B[0m #455 > > |> Async.RunSynchronously\n",
- "00:00:22 \u001B[90mv\u001B[0m #456 > > |> _assertEqual (Ok 2)\n",
- "00:00:23 \u001B[90mv\u001B[0m #457 > >\n",
- "00:00:23 \u001B[90mv\u001B[0m #458 > > ── [ 186.97ms - stdout ] ───────────────────────────────────────────────────────\n",
- "00:00:23 \u001B[90mv\u001B[0m #459 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:03 \u001B[94md\u001B[0m #8 Async.retryAsync / retry: 1/3 / ex:\n",
- "00:00:23 \u001B[90mv\u001B[0m #460 > > System.Exception: test\n",
- "00:00:23 \u001B[90mv\u001B[0m #461 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:03 \u001B[94md\u001B[0m #9 Async.retryAsync / retry: 2/3 / ex:\n",
- "00:00:23 \u001B[90mv\u001B[0m #462 > > System.Exception: test\n",
- "00:00:23 \u001B[90mv\u001B[0m #463 > > \u001B[38;2;38;140;38m│\u001B[0m Ok 2\n",
- "00:00:23 \u001B[90mv\u001B[0m #464 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:23 \u001B[90mv\u001B[0m #465 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:23 \u001B[90mv\u001B[0m #466 > >\n",
- "00:00:23 \u001B[90mv\u001B[0m #467 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:23 \u001B[90mv\u001B[0m #468 > > \u001B[38;2;146;146;178m│\u001B[0m ## fold\n",
- "00:00:23 \u001B[90mv\u001B[0m #469 > >\n",
- "00:00:23 \u001B[90mv\u001B[0m #470 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:00:23 \u001B[90mv\u001B[0m #471 > > let fold folder state array =\n",
- "00:00:23 \u001B[90mv\u001B[0m #472 > > let rec loop acc i =\n",
- "00:00:23 \u001B[90mv\u001B[0m #473 > > async {\n",
- "00:00:23 \u001B[90mv\u001B[0m #474 > > if i < Array.length array then\n",
- "00:00:23 \u001B[90mv\u001B[0m #475 > > let! newAcc = folder acc array.[[i]]\n",
- "00:00:23 \u001B[90mv\u001B[0m #476 > > return! loop newAcc (i + 1)\n",
- "00:00:23 \u001B[90mv\u001B[0m #477 > > else\n",
- "00:00:23 \u001B[90mv\u001B[0m #478 > > return acc\n",
- "00:00:23 \u001B[90mv\u001B[0m #479 > > }\n",
- "00:00:23 \u001B[90mv\u001B[0m #480 > > loop state 0\n",
- "00:00:23 \u001B[90mv\u001B[0m #481 > 00:00:21 \u001B[90mv\u001B[39m #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 15150 }\n",
- "00:00:23 \u001B[90mv\u001B[0m #482 > 00:00:21 \u001B[94md\u001B[39m #4 runtime.execute_with_options / { file_name = jupyter; arguments = [\"nbconvert\", \"c:/home/git/polyglot/lib/fsharp/Async.dib.ipynb\", \"--to\", \"html\", \"--HTMLExporter.theme=dark\"]; options = { command = jupyter nbconvert \"c:/home/git/polyglot/lib/fsharp/Async.dib.ipynb\" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }\n",
- "00:00:24 \u001B[90mv\u001B[0m #483 > 00:00:22 \u001B[90mv\u001B[39m #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/lib/fsharp/Async.dib.ipynb to html\n",
- "00:00:24 \u001B[90mv\u001B[0m #484 > 00:00:22 \u001B[90mv\u001B[39m #6 ! C:\\Users\\i574n\\scoop\\apps\\python312\\current\\Lib\\site-packages\\nbformat\\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.\n",
- "00:00:24 \u001B[90mv\u001B[0m #485 > 00:00:22 \u001B[90mv\u001B[39m #7 ! validate(nb)\n",
- "00:00:25 \u001B[90mv\u001B[0m #486 > 00:00:23 \u001B[90mv\u001B[39m #8 ! C:\\Users\\i574n\\scoop\\apps\\python312\\current\\Lib\\site-packages\\nbconvert\\filters\\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3\n",
- "00:00:25 \u001B[90mv\u001B[0m #487 > 00:00:23 \u001B[90mv\u001B[39m #9 ! return _pygments_highlight(\n",
- "00:00:25 \u001B[90mv\u001B[0m #488 > 00:00:24 \u001B[90mv\u001B[39m #10 ! [NbConvertApp] Writing 332808 bytes to c:\\home\\git\\polyglot\\lib\\fsharp\\Async.dib.html\n",
- "00:00:26 \u001B[90mv\u001B[0m #489 > 00:00:24 \u001B[90mv\u001B[39m #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 852 }\n",
- "00:00:26 \u001B[90mv\u001B[0m #490 > 00:00:24 \u001B[94md\u001B[39m #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 852 }\n",
- "00:00:26 \u001B[90mv\u001B[0m #491 > 00:00:24 \u001B[94md\u001B[39m #13 runtime.execute_with_options / { file_name = pwsh; arguments = [\"-c\", \"$counter = 1; $path = 'c:/home/git/polyglot/lib/fsharp/Async.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\\\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path\"]; options = { command = pwsh -c \"$counter = 1; $path = 'c:/home/git/polyglot/lib/fsharp/Async.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path\"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }\n",
- "00:00:26 \u001B[90mv\u001B[0m #492 > 00:00:24 \u001B[90mv\u001B[39m #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 }\n",
- "00:00:26 \u001B[90mv\u001B[0m #493 > 00:00:24 \u001B[94md\u001B[39m #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 }\n",
- "00:00:26 \u001B[90mv\u001B[0m #494 > 00:00:24 \u001B[94md\u001B[39m #16 spiral.run / dib / { exit_code = 0; result_length = 16061 }\n",
- "00:00:26 \u001B[94md\u001B[0m #495 runtime.execute_with_options_async / { exit_code = 0; output_length = 19529 }\n",
- "00:00:26 \u001B[94md\u001B[0m #3 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path Async.dib --retries 3\n",
- "00:00:26 \u001B[94md\u001B[0m #496 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 \"dib --path AsyncSeq.dib --retries 3\"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path AsyncSeq.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }\n",
- "00:00:26 \u001B[90mv\u001B[0m #497 > 00:00:00 \u001B[94md\u001B[39m #1 spiral.main / { args = Array(MutCell([\"dib\", \"--path\", \"AsyncSeq.dib\", \"--retries\", \"3\"])) }\n",
- "00:00:26 \u001B[90mv\u001B[0m #498 > 00:00:00 \u001B[94md\u001B[39m #2 runtime.execute_with_options / { file_name = dotnet; arguments = [\"repl\", \"--exit-after-run\", \"--run\", \"c:/home/git/polyglot/lib/fsharp/AsyncSeq.dib\", \"--output-path\", \"c:/home/git/polyglot/lib/fsharp/AsyncSeq.dib.ipynb\"]; options = { command = dotnet repl --exit-after-run --run \"c:/home/git/polyglot/lib/fsharp/AsyncSeq.dib\" --output-path \"c:/home/git/polyglot/lib/fsharp/AsyncSeq.dib.ipynb\"; cancellation_token = None; environment_variables = Array(MutCell([(\"TRACE_LEVEL\", \"Verbose\"), (\"AUTOMATION\", \"True\")])); on_line = None; stdin = None; trace = false; working_directory = None } }\n",
- "00:00:28 \u001B[90mv\u001B[0m #499 > >\n",
- "00:00:28 \u001B[90mv\u001B[0m #500 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:28 \u001B[90mv\u001B[0m #501 > > \u001B[38;2;146;146;178m│\u001B[0m # AsyncSeq (Polyglot)\n",
- "00:00:44 \u001B[90mv\u001B[0m #502 > >\n",
- "00:00:44 \u001B[90mv\u001B[0m #503 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:00:22 \u001B[90mv\u001B[0m #387 > > do! Async.Sleep 50\n",
+ "00:00:22 \u001B[90mv\u001B[0m #388 > > cts.Cancel ()\n",
+ "00:00:22 \u001B[90mv\u001B[0m #389 > > return! child\n",
+ "00:00:22 \u001B[90mv\u001B[0m #390 > > }\n",
+ "00:00:22 \u001B[90mv\u001B[0m #391 > > |> Async.RunSynchronously\n",
+ "00:00:22 \u001B[90mv\u001B[0m #392 > > |> Result.mapError _.Message\n",
+ "00:00:22 \u001B[90mv\u001B[0m #393 > > |> _assertEqual (Error (\"A task was canceled.\"))\n",
+ "00:00:22 \u001B[90mv\u001B[0m #394 > >\n",
+ "00:00:22 \u001B[90mv\u001B[0m #395 > > ── [ 210.13ms - stdout ] ───────────────────────────────────────────────────────\n",
+ "00:00:22 \u001B[90mv\u001B[0m #396 > > \u001B[38;2;38;140;38m│\u001B[0m Error \"A task was canceled.\"\n",
+ "00:00:22 \u001B[90mv\u001B[0m #397 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:22 \u001B[90mv\u001B[0m #398 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:22 \u001B[90mv\u001B[0m #399 > >\n",
+ "00:00:22 \u001B[90mv\u001B[0m #400 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
+ "00:00:22 \u001B[90mv\u001B[0m #401 > > \u001B[38;2;146;146;178m│\u001B[0m ## retryAsync\n",
+ "00:00:22 \u001B[90mv\u001B[0m #402 > >\n",
+ "00:00:22 \u001B[90mv\u001B[0m #403 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:00:22 \u001B[90mv\u001B[0m #404 > > let inline retryAsync retries fn =\n",
+ "00:00:22 \u001B[90mv\u001B[0m #405 > > let rec loop retry lastError = async {\n",
+ "00:00:22 \u001B[90mv\u001B[0m #406 > > try\n",
+ "00:00:22 \u001B[90mv\u001B[0m #407 > > return!\n",
+ "00:00:22 \u001B[90mv\u001B[0m #408 > > if retry <= retries\n",
+ "00:00:22 \u001B[90mv\u001B[0m #409 > > then fn |> map Ok\n",
+ "00:00:22 \u001B[90mv\u001B[0m #410 > > else lastError |> Error |> init\n",
+ "00:00:22 \u001B[90mv\u001B[0m #411 > > with ex ->\n",
+ "00:00:22 \u001B[90mv\u001B[0m #412 > > trace Debug (fun () -> $\"Async.retryAsync / retry: {retry}/{retries}\n",
+ "00:00:22 \u001B[90mv\u001B[0m #413 > > / ex: {ex |> SpiralSm.format_exception}\") _locals\n",
+ "00:00:22 \u001B[90mv\u001B[0m #414 > > do! Async.Sleep 30\n",
+ "00:00:22 \u001B[90mv\u001B[0m #415 > > return! loop (retry + 1) (ex |> SpiralSm.format_exception)\n",
+ "00:00:22 \u001B[90mv\u001B[0m #416 > > }\n",
+ "00:00:22 \u001B[90mv\u001B[0m #417 > > loop 1 \"Async.retryAsync / invalid retries / retries: {retries}\"\n",
+ "00:00:22 \u001B[90mv\u001B[0m #418 > >\n",
+ "00:00:22 \u001B[90mv\u001B[0m #419 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:00:22 \u001B[90mv\u001B[0m #420 > > //// test\n",
+ "00:00:22 \u001B[90mv\u001B[0m #421 > >\n",
+ "00:00:22 \u001B[90mv\u001B[0m #422 > > let retry_fn_test = ref 0\n",
+ "00:00:22 \u001B[90mv\u001B[0m #423 > > async {\n",
+ "00:00:22 \u001B[90mv\u001B[0m #424 > > retry_fn_test.Value <- retry_fn_test.Value + 1\n",
+ "00:00:22 \u001B[90mv\u001B[0m #425 > > return retry_fn_test.Value\n",
+ "00:00:22 \u001B[90mv\u001B[0m #426 > > }\n",
+ "00:00:22 \u001B[90mv\u001B[0m #427 > > |> retryAsync 3\n",
+ "00:00:22 \u001B[90mv\u001B[0m #428 > > |> Async.RunSynchronously\n",
+ "00:00:22 \u001B[90mv\u001B[0m #429 > > |> _assertEqual (Ok 1)\n",
+ "00:00:22 \u001B[90mv\u001B[0m #430 > >\n",
+ "00:00:22 \u001B[90mv\u001B[0m #431 > > ── [ 114.03ms - stdout ] ───────────────────────────────────────────────────────\n",
+ "00:00:22 \u001B[90mv\u001B[0m #432 > > \u001B[38;2;38;140;38m│\u001B[0m Ok 1\n",
+ "00:00:22 \u001B[90mv\u001B[0m #433 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:22 \u001B[90mv\u001B[0m #434 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:22 \u001B[90mv\u001B[0m #435 > >\n",
+ "00:00:22 \u001B[90mv\u001B[0m #436 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:00:22 \u001B[90mv\u001B[0m #437 > > //// test\n",
+ "00:00:22 \u001B[90mv\u001B[0m #438 > >\n",
+ "00:00:22 \u001B[90mv\u001B[0m #439 > > let retry_fn_test = ref 0\n",
+ "00:00:22 \u001B[90mv\u001B[0m #440 > > async {\n",
+ "00:00:22 \u001B[90mv\u001B[0m #441 > > return\n",
+ "00:00:22 \u001B[90mv\u001B[0m #442 > > if retry_fn_test.Value >= 2\n",
+ "00:00:22 \u001B[90mv\u001B[0m #443 > > then retry_fn_test.Value\n",
+ "00:00:22 \u001B[90mv\u001B[0m #444 > > else\n",
+ "00:00:22 \u001B[90mv\u001B[0m #445 > > retry_fn_test.Value <- retry_fn_test.Value + 1\n",
+ "00:00:22 \u001B[90mv\u001B[0m #446 > > failwith \"test\"\n",
+ "00:00:22 \u001B[90mv\u001B[0m #447 > > }\n",
+ "00:00:22 \u001B[90mv\u001B[0m #448 > > |> retryAsync 3\n",
+ "00:00:22 \u001B[90mv\u001B[0m #449 > > |> Async.RunSynchronously\n",
+ "00:00:22 \u001B[90mv\u001B[0m #450 > > |> _assertEqual (Ok 2)\n",
+ "00:00:22 \u001B[90mv\u001B[0m #451 > >\n",
+ "00:00:22 \u001B[90mv\u001B[0m #452 > > ── [ 162.30ms - stdout ] ───────────────────────────────────────────────────────\n",
+ "00:00:22 \u001B[90mv\u001B[0m #453 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:03 \u001B[94md\u001B[0m #8 Async.retryAsync / retry: 1/3 / ex:\n",
+ "00:00:22 \u001B[90mv\u001B[0m #454 > > System.Exception: test\n",
+ "00:00:22 \u001B[90mv\u001B[0m #455 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:03 \u001B[94md\u001B[0m #9 Async.retryAsync / retry: 2/3 / ex:\n",
+ "00:00:22 \u001B[90mv\u001B[0m #456 > > System.Exception: test\n",
+ "00:00:22 \u001B[90mv\u001B[0m #457 > > \u001B[38;2;38;140;38m│\u001B[0m Ok 2\n",
+ "00:00:22 \u001B[90mv\u001B[0m #458 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:22 \u001B[90mv\u001B[0m #459 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:22 \u001B[90mv\u001B[0m #460 > >\n",
+ "00:00:22 \u001B[90mv\u001B[0m #461 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
+ "00:00:22 \u001B[90mv\u001B[0m #462 > > \u001B[38;2;146;146;178m│\u001B[0m ## fold\n",
+ "00:00:22 \u001B[90mv\u001B[0m #463 > >\n",
+ "00:00:22 \u001B[90mv\u001B[0m #464 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:00:22 \u001B[90mv\u001B[0m #465 > > let fold folder state array =\n",
+ "00:00:22 \u001B[90mv\u001B[0m #466 > > let rec loop acc i =\n",
+ "00:00:22 \u001B[90mv\u001B[0m #467 > > async {\n",
+ "00:00:22 \u001B[90mv\u001B[0m #468 > > if i < Array.length array then\n",
+ "00:00:22 \u001B[90mv\u001B[0m #469 > > let! newAcc = folder acc array.[[i]]\n",
+ "00:00:22 \u001B[90mv\u001B[0m #470 > > return! loop newAcc (i + 1)\n",
+ "00:00:22 \u001B[90mv\u001B[0m #471 > > else\n",
+ "00:00:22 \u001B[90mv\u001B[0m #472 > > return acc\n",
+ "00:00:22 \u001B[90mv\u001B[0m #473 > > }\n",
+ "00:00:22 \u001B[90mv\u001B[0m #474 > > loop state 0\n",
+ "00:00:22 \u001B[90mv\u001B[0m #475 > 00:00:21 \u001B[90mv\u001B[39m #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 15150 }\n",
+ "00:00:22 \u001B[90mv\u001B[0m #476 > 00:00:21 \u001B[94md\u001B[39m #4 runtime.execute_with_options / { file_name = jupyter; arguments = [\"nbconvert\", \"c:/home/git/polyglot/lib/fsharp/Async.dib.ipynb\", \"--to\", \"html\", \"--HTMLExporter.theme=dark\"]; options = { command = jupyter nbconvert \"c:/home/git/polyglot/lib/fsharp/Async.dib.ipynb\" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }\n",
+ "00:00:24 \u001B[90mv\u001B[0m #477 > 00:00:23 \u001B[90mv\u001B[39m #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/lib/fsharp/Async.dib.ipynb to html\n",
+ "00:00:24 \u001B[90mv\u001B[0m #478 > 00:00:23 \u001B[90mv\u001B[39m #6 ! C:\\Users\\i574n\\scoop\\apps\\python312\\current\\Lib\\site-packages\\nbformat\\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.\n",
+ "00:00:24 \u001B[90mv\u001B[0m #479 > 00:00:23 \u001B[90mv\u001B[39m #7 ! validate(nb)\n",
+ "00:00:24 \u001B[90mv\u001B[0m #480 > 00:00:23 \u001B[90mv\u001B[39m #8 ! C:\\Users\\i574n\\scoop\\apps\\python312\\current\\Lib\\site-packages\\nbconvert\\filters\\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3\n",
+ "00:00:24 \u001B[90mv\u001B[0m #481 > 00:00:23 \u001B[90mv\u001B[39m #9 ! return _pygments_highlight(\n",
+ "00:00:25 \u001B[90mv\u001B[0m #482 > 00:00:24 \u001B[90mv\u001B[39m #10 ! [NbConvertApp] Writing 332808 bytes to c:\\home\\git\\polyglot\\lib\\fsharp\\Async.dib.html\n",
+ "00:00:25 \u001B[90mv\u001B[0m #483 > 00:00:24 \u001B[90mv\u001B[39m #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 852 }\n",
+ "00:00:25 \u001B[90mv\u001B[0m #484 > 00:00:24 \u001B[94md\u001B[39m #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 852 }\n",
+ "00:00:25 \u001B[90mv\u001B[0m #485 > 00:00:24 \u001B[94md\u001B[39m #13 runtime.execute_with_options / { file_name = pwsh; arguments = [\"-c\", \"$counter = 1; $path = 'c:/home/git/polyglot/lib/fsharp/Async.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\\\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path\"]; options = { command = pwsh -c \"$counter = 1; $path = 'c:/home/git/polyglot/lib/fsharp/Async.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path\"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }\n",
+ "00:00:25 \u001B[90mv\u001B[0m #486 > 00:00:24 \u001B[90mv\u001B[39m #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 }\n",
+ "00:00:25 \u001B[90mv\u001B[0m #487 > 00:00:24 \u001B[94md\u001B[39m #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 }\n",
+ "00:00:25 \u001B[90mv\u001B[0m #488 > 00:00:24 \u001B[94md\u001B[39m #16 spiral.run / dib / { exit_code = 0; result_length = 16061 }\n",
+ "00:00:25 \u001B[94md\u001B[0m #489 runtime.execute_with_options_async / { exit_code = 0; output_length = 19529 }\n",
+ "00:00:25 \u001B[94md\u001B[0m #1 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path Async.dib --retries 3\n",
+ "00:00:25 \u001B[94md\u001B[0m #490 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 \"dib --path AsyncSeq.dib --retries 3\"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path AsyncSeq.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }\n",
+ "00:00:25 \u001B[90mv\u001B[0m #491 > 00:00:00 \u001B[94md\u001B[39m #1 spiral.main / { args = Array(MutCell([\"dib\", \"--path\", \"AsyncSeq.dib\", \"--retries\", \"3\"])) }\n",
+ "00:00:25 \u001B[90mv\u001B[0m #492 > 00:00:00 \u001B[94md\u001B[39m #2 runtime.execute_with_options / { file_name = dotnet; arguments = [\"repl\", \"--exit-after-run\", \"--run\", \"c:/home/git/polyglot/lib/fsharp/AsyncSeq.dib\", \"--output-path\", \"c:/home/git/polyglot/lib/fsharp/AsyncSeq.dib.ipynb\"]; options = { command = dotnet repl --exit-after-run --run \"c:/home/git/polyglot/lib/fsharp/AsyncSeq.dib\" --output-path \"c:/home/git/polyglot/lib/fsharp/AsyncSeq.dib.ipynb\"; cancellation_token = None; environment_variables = Array(MutCell([(\"TRACE_LEVEL\", \"Verbose\"), (\"AUTOMATION\", \"True\")])); on_line = None; stdin = None; trace = false; working_directory = None } }\n",
+ "00:00:27 \u001B[90mv\u001B[0m #493 > >\n",
+ "00:00:27 \u001B[90mv\u001B[0m #494 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
+ "00:00:27 \u001B[90mv\u001B[0m #495 > > \u001B[38;2;146;146;178m│\u001B[0m # AsyncSeq (Polyglot)\n",
+ "00:00:44 \u001B[90mv\u001B[0m #496 > >\n",
+ "00:00:44 \u001B[90mv\u001B[0m #497 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:00:44 \u001B[90mv\u001B[0m #498 > > #r\n",
+ "00:00:44 \u001B[90mv\u001B[0m #499 > > @\"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan\n",
+ "00:00:44 \u001B[90mv\u001B[0m #500 > > dard2.1/FSharp.Control.AsyncSeq.dll\"\n",
+ "00:00:44 \u001B[90mv\u001B[0m #501 > > #r\n",
+ "00:00:44 \u001B[90mv\u001B[0m #502 > > @\"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6.\n",
+ "00:00:44 \u001B[90mv\u001B[0m #503 > > 0/System.Reactive.dll\"\n",
"00:00:44 \u001B[90mv\u001B[0m #504 > > #r\n",
- "00:00:44 \u001B[90mv\u001B[0m #505 > > @\"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan\n",
- "00:00:44 \u001B[90mv\u001B[0m #506 > > dard2.1/FSharp.Control.AsyncSeq.dll\"\n",
- "00:00:44 \u001B[90mv\u001B[0m #507 > > #r\n",
- "00:00:44 \u001B[90mv\u001B[0m #508 > > @\"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6.\n",
- "00:00:44 \u001B[90mv\u001B[0m #509 > > 0/System.Reactive.dll\"\n",
- "00:00:44 \u001B[90mv\u001B[0m #510 > > #r\n",
- "00:00:44 \u001B[90mv\u001B[0m #511 > > @\"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib\n",
- "00:00:44 \u001B[90mv\u001B[0m #512 > > netstandard2.0/System.Reactive.Linq.dll\"\n",
- "00:00:45 \u001B[90mv\u001B[0m #513 > >\n",
- "00:00:45 \u001B[90mv\u001B[0m #514 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:00:45 \u001B[90mv\u001B[0m #515 > > #if !INTERACTIVE\n",
- "00:00:45 \u001B[90mv\u001B[0m #516 > > open Lib\n",
- "00:00:45 \u001B[90mv\u001B[0m #517 > > #endif\n",
+ "00:00:44 \u001B[90mv\u001B[0m #505 > > @\"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib\n",
+ "00:00:44 \u001B[90mv\u001B[0m #506 > > netstandard2.0/System.Reactive.Linq.dll\"\n",
+ "00:00:45 \u001B[90mv\u001B[0m #507 > >\n",
+ "00:00:45 \u001B[90mv\u001B[0m #508 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:00:45 \u001B[90mv\u001B[0m #509 > > #if !INTERACTIVE\n",
+ "00:00:45 \u001B[90mv\u001B[0m #510 > > open Lib\n",
+ "00:00:45 \u001B[90mv\u001B[0m #511 > > #endif\n",
+ "00:00:45 \u001B[90mv\u001B[0m #512 > >\n",
+ "00:00:45 \u001B[90mv\u001B[0m #513 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:00:45 \u001B[90mv\u001B[0m #514 > > open Common\n",
+ "00:00:45 \u001B[90mv\u001B[0m #515 > >\n",
+ "00:00:45 \u001B[90mv\u001B[0m #516 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
+ "00:00:45 \u001B[90mv\u001B[0m #517 > > \u001B[38;2;146;146;178m│\u001B[0m ## subscribeEvent\n",
"00:00:45 \u001B[90mv\u001B[0m #518 > >\n",
"00:00:45 \u001B[90mv\u001B[0m #519 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:00:45 \u001B[90mv\u001B[0m #520 > > open Common\n",
- "00:00:45 \u001B[90mv\u001B[0m #521 > >\n",
- "00:00:45 \u001B[90mv\u001B[0m #522 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:45 \u001B[90mv\u001B[0m #523 > > \u001B[38;2;146;146;178m│\u001B[0m ## subscribeEvent\n",
- "00:00:45 \u001B[90mv\u001B[0m #524 > >\n",
- "00:00:45 \u001B[90mv\u001B[0m #525 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:00:45 \u001B[90mv\u001B[0m #526 > > let inline subscribeEvent (event: IEvent<'H, 'A>) map =\n",
- "00:00:45 \u001B[90mv\u001B[0m #527 > > let observable = System.Reactive.Linq.Observable.FromEventPattern<'H,\n",
- "00:00:45 \u001B[90mv\u001B[0m #528 > > 'A>(event.AddHandler, event.RemoveHandler)\n",
- "00:00:45 \u001B[90mv\u001B[0m #529 > > System.Reactive.Linq.Observable.Select (observable, fun event -> map\n",
- "00:00:45 \u001B[90mv\u001B[0m #530 > > event.EventArgs)\n",
- "00:00:45 \u001B[90mv\u001B[0m #531 > > |> FSharp.Control.AsyncSeq.ofObservableBuffered\n",
- "00:00:45 \u001B[90mv\u001B[0m #532 > >\n",
- "00:00:45 \u001B[90mv\u001B[0m #533 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:00:45 \u001B[90mv\u001B[0m #534 > > //// test\n",
- "00:00:45 \u001B[90mv\u001B[0m #535 > >\n",
- "00:00:45 \u001B[90mv\u001B[0m #536 > > type TestEvent () as self =\n",
- "00:00:45 \u001B[90mv\u001B[0m #537 > > member val Calls = [[]] with get, set\n",
- "00:00:45 \u001B[90mv\u001B[0m #538 > > member val Event = Event () with get\n",
- "00:00:45 \u001B[90mv\u001B[0m #539 > >\n",
- "00:00:45 \u001B[90mv\u001B[0m #540 > > member _.AddCall text =\n",
- "00:00:45 \u001B[90mv\u001B[0m #541 > > self.Calls <- self.Calls @ [[ text ]]\n",
+ "00:00:45 \u001B[90mv\u001B[0m #520 > > let inline subscribeEvent (event: IEvent<'H, 'A>) map =\n",
+ "00:00:45 \u001B[90mv\u001B[0m #521 > > let observable = System.Reactive.Linq.Observable.FromEventPattern<'H,\n",
+ "00:00:45 \u001B[90mv\u001B[0m #522 > > 'A>(event.AddHandler, event.RemoveHandler)\n",
+ "00:00:45 \u001B[90mv\u001B[0m #523 > > System.Reactive.Linq.Observable.Select (observable, fun event -> map\n",
+ "00:00:45 \u001B[90mv\u001B[0m #524 > > event.EventArgs)\n",
+ "00:00:45 \u001B[90mv\u001B[0m #525 > > |> FSharp.Control.AsyncSeq.ofObservableBuffered\n",
+ "00:00:45 \u001B[90mv\u001B[0m #526 > >\n",
+ "00:00:45 \u001B[90mv\u001B[0m #527 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:00:45 \u001B[90mv\u001B[0m #528 > > //// test\n",
+ "00:00:45 \u001B[90mv\u001B[0m #529 > >\n",
+ "00:00:45 \u001B[90mv\u001B[0m #530 > > type TestEvent () as self =\n",
+ "00:00:45 \u001B[90mv\u001B[0m #531 > > member val Calls = [[]] with get, set\n",
+ "00:00:45 \u001B[90mv\u001B[0m #532 > > member val Event = Event () with get\n",
+ "00:00:45 \u001B[90mv\u001B[0m #533 > >\n",
+ "00:00:45 \u001B[90mv\u001B[0m #534 > > member _.AddCall text =\n",
+ "00:00:45 \u001B[90mv\u001B[0m #535 > > self.Calls <- self.Calls @ [[ text ]]\n",
+ "00:00:45 \u001B[90mv\u001B[0m #536 > >\n",
+ "00:00:45 \u001B[90mv\u001B[0m #537 > > member _.EventInterface =\n",
+ "00:00:45 \u001B[90mv\u001B[0m #538 > > { new IEvent with\n",
+ "00:00:45 \u001B[90mv\u001B[0m #539 > > member _.AddHandler handler =\n",
+ "00:00:45 \u001B[90mv\u001B[0m #540 > > self.AddCall \"AddHandler\"\n",
+ "00:00:45 \u001B[90mv\u001B[0m #541 > > self.Event.Publish.AddHandler handler\n",
"00:00:45 \u001B[90mv\u001B[0m #542 > >\n",
- "00:00:45 \u001B[90mv\u001B[0m #543 > > member _.EventInterface =\n",
- "00:00:45 \u001B[90mv\u001B[0m #544 > > { new IEvent with\n",
- "00:00:45 \u001B[90mv\u001B[0m #545 > > member _.AddHandler handler =\n",
- "00:00:45 \u001B[90mv\u001B[0m #546 > > self.AddCall \"AddHandler\"\n",
- "00:00:45 \u001B[90mv\u001B[0m #547 > > self.Event.Publish.AddHandler handler\n",
- "00:00:45 \u001B[90mv\u001B[0m #548 > >\n",
- "00:00:45 \u001B[90mv\u001B[0m #549 > > member _.RemoveHandler handler =\n",
- "00:00:45 \u001B[90mv\u001B[0m #550 > > self.AddCall \"RemoveHandler\"\n",
- "00:00:45 \u001B[90mv\u001B[0m #551 > > self.Event.Publish.RemoveHandler handler\n",
- "00:00:45 \u001B[90mv\u001B[0m #552 > >\n",
- "00:00:45 \u001B[90mv\u001B[0m #553 > > member _.Subscribe observer =\n",
- "00:00:45 \u001B[90mv\u001B[0m #554 > > self.AddCall \"IObservable.Subscribe\"\n",
- "00:00:45 \u001B[90mv\u001B[0m #555 > > let disposable = self.Event.Publish.Subscribe observer\n",
- "00:00:45 \u001B[90mv\u001B[0m #556 > > new_disposable (fun () ->\n",
- "00:00:45 \u001B[90mv\u001B[0m #557 > > self.AddCall \"IObservable.Dispose\"\n",
- "00:00:45 \u001B[90mv\u001B[0m #558 > > disposable.Dispose ()\n",
- "00:00:45 \u001B[90mv\u001B[0m #559 > > )\n",
- "00:00:45 \u001B[90mv\u001B[0m #560 > > }\n",
- "00:00:45 \u001B[90mv\u001B[0m #561 > >\n",
- "00:00:45 \u001B[90mv\u001B[0m #562 > > member _.Subscribe () =\n",
- "00:00:45 \u001B[90mv\u001B[0m #563 > > subscribeEvent\n",
- "00:00:45 \u001B[90mv\u001B[0m #564 > > self.EventInterface\n",
- "00:00:45 \u001B[90mv\u001B[0m #565 > > (fun args ->\n",
- "00:00:45 \u001B[90mv\u001B[0m #566 > > let result = args.GetException () |> SpiralSm.format_exception\n",
- "00:00:45 \u001B[90mv\u001B[0m #567 > > self.AddCall $\"TestEvent.Subscribe({result})\"\n",
- "00:00:45 \u001B[90mv\u001B[0m #568 > > result\n",
- "00:00:45 \u001B[90mv\u001B[0m #569 > > )\n",
+ "00:00:45 \u001B[90mv\u001B[0m #543 > > member _.RemoveHandler handler =\n",
+ "00:00:45 \u001B[90mv\u001B[0m #544 > > self.AddCall \"RemoveHandler\"\n",
+ "00:00:45 \u001B[90mv\u001B[0m #545 > > self.Event.Publish.RemoveHandler handler\n",
+ "00:00:45 \u001B[90mv\u001B[0m #546 > >\n",
+ "00:00:45 \u001B[90mv\u001B[0m #547 > > member _.Subscribe observer =\n",
+ "00:00:45 \u001B[90mv\u001B[0m #548 > > self.AddCall \"IObservable.Subscribe\"\n",
+ "00:00:45 \u001B[90mv\u001B[0m #549 > > let disposable = self.Event.Publish.Subscribe observer\n",
+ "00:00:45 \u001B[90mv\u001B[0m #550 > > new_disposable (fun () ->\n",
+ "00:00:45 \u001B[90mv\u001B[0m #551 > > self.AddCall \"IObservable.Dispose\"\n",
+ "00:00:45 \u001B[90mv\u001B[0m #552 > > disposable.Dispose ()\n",
+ "00:00:45 \u001B[90mv\u001B[0m #553 > > )\n",
+ "00:00:45 \u001B[90mv\u001B[0m #554 > > }\n",
+ "00:00:45 \u001B[90mv\u001B[0m #555 > >\n",
+ "00:00:45 \u001B[90mv\u001B[0m #556 > > member _.Subscribe () =\n",
+ "00:00:45 \u001B[90mv\u001B[0m #557 > > subscribeEvent\n",
+ "00:00:45 \u001B[90mv\u001B[0m #558 > > self.EventInterface\n",
+ "00:00:45 \u001B[90mv\u001B[0m #559 > > (fun args ->\n",
+ "00:00:45 \u001B[90mv\u001B[0m #560 > > let result = args.GetException () |> SpiralSm.format_exception\n",
+ "00:00:45 \u001B[90mv\u001B[0m #561 > > self.AddCall $\"TestEvent.Subscribe({result})\"\n",
+ "00:00:45 \u001B[90mv\u001B[0m #562 > > result\n",
+ "00:00:45 \u001B[90mv\u001B[0m #563 > > )\n",
+ "00:00:45 \u001B[90mv\u001B[0m #564 > >\n",
+ "00:00:45 \u001B[90mv\u001B[0m #565 > > member _.Iter subscription =\n",
+ "00:00:45 \u001B[90mv\u001B[0m #566 > > subscription\n",
+ "00:00:45 \u001B[90mv\u001B[0m #567 > > |> FSharp.Control.AsyncSeq.iteriAsync (fun i error -> async {\n",
+ "00:00:45 \u001B[90mv\u001B[0m #568 > > self.AddCall $\"TestEvent.Iter({i}: {error})\"\n",
+ "00:00:45 \u001B[90mv\u001B[0m #569 > > })\n",
"00:00:45 \u001B[90mv\u001B[0m #570 > >\n",
- "00:00:45 \u001B[90mv\u001B[0m #571 > > member _.Iter subscription =\n",
- "00:00:45 \u001B[90mv\u001B[0m #572 > > subscription\n",
- "00:00:45 \u001B[90mv\u001B[0m #573 > > |> FSharp.Control.AsyncSeq.iteriAsync (fun i error -> async {\n",
- "00:00:45 \u001B[90mv\u001B[0m #574 > > self.AddCall $\"TestEvent.Iter({i}: {error})\"\n",
- "00:00:45 \u001B[90mv\u001B[0m #575 > > })\n",
- "00:00:45 \u001B[90mv\u001B[0m #576 > >\n",
- "00:00:45 \u001B[90mv\u001B[0m #577 > > member _.WaitCall text = async {\n",
- "00:00:45 \u001B[90mv\u001B[0m #578 > > while self.Calls |> List.last <> text do\n",
- "00:00:45 \u001B[90mv\u001B[0m #579 > > do! Async.SwitchToThreadPool ()\n",
- "00:00:45 \u001B[90mv\u001B[0m #580 > > }\n",
- "00:00:45 \u001B[90mv\u001B[0m #581 > >\n",
- "00:00:45 \u001B[90mv\u001B[0m #582 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:00:45 \u001B[90mv\u001B[0m #583 > > //// test\n",
- "00:00:45 \u001B[90mv\u001B[0m #584 > >\n",
- "00:00:45 \u001B[90mv\u001B[0m #585 > > let testEvent = TestEvent ()\n",
- "00:00:45 \u001B[90mv\u001B[0m #586 > >\n",
- "00:00:45 \u001B[90mv\u001B[0m #587 > > async {\n",
- "00:00:45 \u001B[90mv\u001B[0m #588 > > testEvent.AddCall \"1\"\n",
- "00:00:45 \u001B[90mv\u001B[0m #589 > > let! child = testEvent.Subscribe () |> testEvent.Iter |> Async.StartChild\n",
- "00:00:45 \u001B[90mv\u001B[0m #590 > > do! testEvent.WaitCall \"AddHandler\"\n",
- "00:00:45 \u001B[90mv\u001B[0m #591 > > testEvent.AddCall \"2\"\n",
- "00:00:45 \u001B[90mv\u001B[0m #592 > > do! child\n",
- "00:00:45 \u001B[90mv\u001B[0m #593 > > testEvent.AddCall \"3\"\n",
- "00:00:45 \u001B[90mv\u001B[0m #594 > > }\n",
- "00:00:45 \u001B[90mv\u001B[0m #595 > > |> Async.runWithTimeout 300\n",
- "00:00:45 \u001B[90mv\u001B[0m #596 > > |> _assertEqual None\n",
- "00:00:45 \u001B[90mv\u001B[0m #597 > >\n",
- "00:00:45 \u001B[90mv\u001B[0m #598 > > testEvent.Calls\n",
- "00:00:45 \u001B[90mv\u001B[0m #599 > > |> Seq.toList\n",
- "00:00:45 \u001B[90mv\u001B[0m #600 > > |> _assertEqual [[ \"1\"; \"AddHandler\"; \"2\"; \"RemoveHandler\" ]]\n",
- "00:00:46 \u001B[90mv\u001B[0m #601 > >\n",
- "00:00:46 \u001B[90mv\u001B[0m #602 > > ── [ 533.25ms - stdout ] ───────────────────────────────────────────────────────\n",
- "00:00:46 \u001B[90mv\u001B[0m #603 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:02 \u001B[94md\u001B[0m #1 Async.runWithTimeoutAsync / timeout: 300\n",
- "00:00:46 \u001B[90mv\u001B[0m #604 > > \u001B[38;2;38;140;38m│\u001B[0m \n",
- "00:00:46 \u001B[90mv\u001B[0m #605 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:46 \u001B[90mv\u001B[0m #606 > > \u001B[38;2;38;140;38m│\u001B[0m [\"1\"; \"AddHandler\"; \"2\"; \"RemoveHandler\"]\n",
- "00:00:46 \u001B[90mv\u001B[0m #607 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:46 \u001B[90mv\u001B[0m #608 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:46 \u001B[90mv\u001B[0m #609 > >\n",
- "00:00:46 \u001B[90mv\u001B[0m #610 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:00:46 \u001B[90mv\u001B[0m #611 > > //// test\n",
- "00:00:46 \u001B[90mv\u001B[0m #612 > >\n",
- "00:00:46 \u001B[90mv\u001B[0m #613 > > let testEvent = TestEvent ()\n",
- "00:00:46 \u001B[90mv\u001B[0m #614 > >\n",
- "00:00:46 \u001B[90mv\u001B[0m #615 > > async {\n",
- "00:00:46 \u001B[90mv\u001B[0m #616 > > testEvent.AddCall \"1\"\n",
- "00:00:46 \u001B[90mv\u001B[0m #617 > > let! child = testEvent.Subscribe () |> testEvent.Iter |> Async.StartChild\n",
- "00:00:46 \u001B[90mv\u001B[0m #618 > > do! testEvent.WaitCall \"AddHandler\"\n",
- "00:00:46 \u001B[90mv\u001B[0m #619 > > testEvent.AddCall \"2\"\n",
- "00:00:46 \u001B[90mv\u001B[0m #620 > > use _ = testEvent.EventInterface.Subscribe (fun args ->\n",
- "00:00:46 \u001B[90mv\u001B[0m #621 > > testEvent.AddCall $\"testEvent.EventInterface.Subscribe({args})\"\n",
- "00:00:46 \u001B[90mv\u001B[0m #622 > > )\n",
- "00:00:46 \u001B[90mv\u001B[0m #623 > > testEvent.AddCall \"3\"\n",
- "00:00:46 \u001B[90mv\u001B[0m #624 > > do! child\n",
- "00:00:46 \u001B[90mv\u001B[0m #625 > > testEvent.AddCall \"4\"\n",
- "00:00:46 \u001B[90mv\u001B[0m #626 > > }\n",
- "00:00:46 \u001B[90mv\u001B[0m #627 > > |> Async.runWithTimeout 300\n",
- "00:00:46 \u001B[90mv\u001B[0m #628 > > |> _assertEqual None\n",
- "00:00:46 \u001B[90mv\u001B[0m #629 > >\n",
- "00:00:46 \u001B[90mv\u001B[0m #630 > > testEvent.Calls\n",
- "00:00:46 \u001B[90mv\u001B[0m #631 > > |> _assertEqual [[ \"1\"; \"AddHandler\"; \"2\"; \"IObservable.Subscribe\"; \"3\";\n",
- "00:00:46 \u001B[90mv\u001B[0m #632 > > \"RemoveHandler\"; \"IObservable.Dispose\" ]]\n",
- "00:00:46 \u001B[90mv\u001B[0m #633 > >\n",
- "00:00:46 \u001B[90mv\u001B[0m #634 > > ── [ 460.96ms - stdout ] ───────────────────────────────────────────────────────\n",
- "00:00:46 \u001B[90mv\u001B[0m #635 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:02 \u001B[94md\u001B[0m #2 Async.runWithTimeoutAsync / timeout: 300\n",
- "00:00:46 \u001B[90mv\u001B[0m #636 > > \u001B[38;2;38;140;38m│\u001B[0m \n",
- "00:00:46 \u001B[90mv\u001B[0m #637 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:46 \u001B[90mv\u001B[0m #638 > > \u001B[38;2;38;140;38m│\u001B[0m [\"1\"; \"AddHandler\"; \"2\"; \"IObservable.Subscribe\"; \"3\";\n",
- "00:00:46 \u001B[90mv\u001B[0m #639 > > \"RemoveHandler\"; \"IObservable.Dispose\"]\n",
- "00:00:46 \u001B[90mv\u001B[0m #640 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:46 \u001B[90mv\u001B[0m #641 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:46 \u001B[90mv\u001B[0m #642 > >\n",
- "00:00:46 \u001B[90mv\u001B[0m #643 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:00:46 \u001B[90mv\u001B[0m #644 > > //// test\n",
- "00:00:46 \u001B[90mv\u001B[0m #645 > >\n",
- "00:00:46 \u001B[90mv\u001B[0m #646 > > let testEvent = TestEvent ()\n",
- "00:00:46 \u001B[90mv\u001B[0m #647 > >\n",
- "00:00:46 \u001B[90mv\u001B[0m #648 > > async {\n",
- "00:00:46 \u001B[90mv\u001B[0m #649 > > testEvent.AddCall \"1\"\n",
- "00:00:46 \u001B[90mv\u001B[0m #650 > > let! child = testEvent.Subscribe () |> testEvent.Iter |> Async.StartChild\n",
- "00:00:46 \u001B[90mv\u001B[0m #651 > > do! testEvent.WaitCall \"AddHandler\"\n",
- "00:00:46 \u001B[90mv\u001B[0m #652 > > testEvent.AddCall \"2\"\n",
- "00:00:46 \u001B[90mv\u001B[0m #653 > > use _ = testEvent.EventInterface.Subscribe (fun args ->\n",
- "00:00:46 \u001B[90mv\u001B[0m #654 > > async {\n",
- "00:00:46 \u001B[90mv\u001B[0m #655 > > do! testEvent.WaitCall \"TestEvent.Iter(0: System.Exception: error)\"\n",
- "00:00:46 \u001B[90mv\u001B[0m #656 > > testEvent.AddCall\n",
- "00:00:46 \u001B[90mv\u001B[0m #657 > > $\"testEvent.EventInterface.Subscribe({args.GetException () |>\n",
- "00:00:46 \u001B[90mv\u001B[0m #658 > > SpiralSm.format_exception})\"\n",
- "00:00:46 \u001B[90mv\u001B[0m #659 > > }\n",
- "00:00:46 \u001B[90mv\u001B[0m #660 > > |> Async.RunSynchronously\n",
- "00:00:46 \u001B[90mv\u001B[0m #661 > > )\n",
- "00:00:46 \u001B[90mv\u001B[0m #662 > > testEvent.AddCall \"3\"\n",
- "00:00:46 \u001B[90mv\u001B[0m #663 > > testEvent.Event.Trigger (null, ErrorEventArgs (Exception \"error\"))\n",
- "00:00:46 \u001B[90mv\u001B[0m #664 > > testEvent.AddCall \"4\"\n",
- "00:00:46 \u001B[90mv\u001B[0m #665 > > do! child\n",
- "00:00:46 \u001B[90mv\u001B[0m #666 > > testEvent.AddCall \"5\"\n",
- "00:00:46 \u001B[90mv\u001B[0m #667 > > }\n",
- "00:00:46 \u001B[90mv\u001B[0m #668 > > |> Async.runWithTimeout 300\n",
- "00:00:46 \u001B[90mv\u001B[0m #669 > > |> _assertEqual None\n",
- "00:00:46 \u001B[90mv\u001B[0m #670 > >\n",
- "00:00:46 \u001B[90mv\u001B[0m #671 > > testEvent.Calls\n",
- "00:00:46 \u001B[90mv\u001B[0m #672 > > |> _assertEqual [[\n",
- "00:00:46 \u001B[90mv\u001B[0m #673 > > \"1\"\n",
- "00:00:46 \u001B[90mv\u001B[0m #674 > > \"AddHandler\"\n",
- "00:00:46 \u001B[90mv\u001B[0m #675 > > \"2\"\n",
- "00:00:46 \u001B[90mv\u001B[0m #676 > > \"IObservable.Subscribe\"\n",
- "00:00:46 \u001B[90mv\u001B[0m #677 > > \"3\"\n",
- "00:00:46 \u001B[90mv\u001B[0m #678 > > \"TestEvent.Subscribe(System.Exception: error)\"\n",
- "00:00:46 \u001B[90mv\u001B[0m #679 > > \"TestEvent.Iter(0: System.Exception: error)\"\n",
- "00:00:46 \u001B[90mv\u001B[0m #680 > > \"testEvent.EventInterface.Subscribe(System.Exception: error)\"\n",
- "00:00:46 \u001B[90mv\u001B[0m #681 > > \"4\"\n",
- "00:00:46 \u001B[90mv\u001B[0m #682 > > \"RemoveHandler\"\n",
- "00:00:46 \u001B[90mv\u001B[0m #683 > > \"IObservable.Dispose\"\n",
- "00:00:46 \u001B[90mv\u001B[0m #684 > > ]]\n",
- "00:00:47 \u001B[90mv\u001B[0m #685 > >\n",
- "00:00:47 \u001B[90mv\u001B[0m #686 > > ── [ 483.37ms - stdout ] ───────────────────────────────────────────────────────\n",
- "00:00:47 \u001B[90mv\u001B[0m #687 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:03 \u001B[94md\u001B[0m #3 Async.runWithTimeoutAsync / timeout: 300\n",
- "00:00:47 \u001B[90mv\u001B[0m #688 > > \u001B[38;2;38;140;38m│\u001B[0m \n",
- "00:00:47 \u001B[90mv\u001B[0m #689 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:47 \u001B[90mv\u001B[0m #690 > > \u001B[38;2;38;140;38m│\u001B[0m [\"1\"; \"AddHandler\"; \"2\"; \"IObservable.Subscribe\"; \"3\";\n",
- "00:00:47 \u001B[90mv\u001B[0m #691 > > \"TestEvent.Subscribe(System.Exception: error)\";\n",
- "00:00:47 \u001B[90mv\u001B[0m #692 > > \u001B[38;2;38;140;38m│\u001B[0m \"TestEvent.Iter(0: System.Exception: error)\";\n",
- "00:00:47 \u001B[90mv\u001B[0m #693 > > \"testEvent.EventInterface.Subscribe(System.Exception: error)\"; \"4\";\n",
- "00:00:47 \u001B[90mv\u001B[0m #694 > > \u001B[38;2;38;140;38m│\u001B[0m \"RemoveHandler\"; \"IObservable.Dispose\"]\n",
- "00:00:47 \u001B[90mv\u001B[0m #695 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:47 \u001B[90mv\u001B[0m #696 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:47 \u001B[90mv\u001B[0m #697 > >\n",
- "00:00:47 \u001B[90mv\u001B[0m #698 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:47 \u001B[90mv\u001B[0m #699 > > \u001B[38;2;146;146;178m│\u001B[0m ## subscribeToken\n",
- "00:00:47 \u001B[90mv\u001B[0m #700 > >\n",
- "00:00:47 \u001B[90mv\u001B[0m #701 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:00:47 \u001B[90mv\u001B[0m #702 > > let subscribeToken (token : System.Threading.CancellationToken) =\n",
- "00:00:47 \u001B[90mv\u001B[0m #703 > > let tcs = new System.Threading.Tasks.TaskCompletionSource ()\n",
- "00:00:47 \u001B[90mv\u001B[0m #704 > > System.Action tcs.SetResult |> token.Register |> ignore\n",
- "00:00:47 \u001B[90mv\u001B[0m #705 > > let start = System.DateTime.Now.Ticks\n",
- "00:00:47 \u001B[90mv\u001B[0m #706 > > FSharp.Control.AsyncSeq.unfoldAsync\n",
- "00:00:47 \u001B[90mv\u001B[0m #707 > > (fun () -> async {\n",
- "00:00:47 \u001B[90mv\u001B[0m #708 > > do! tcs.Task |> Async.AwaitTask\n",
- "00:00:47 \u001B[90mv\u001B[0m #709 > > return Some (System.DateTime.Now.Ticks - start, ())\n",
- "00:00:47 \u001B[90mv\u001B[0m #710 > > })\n",
- "00:00:47 \u001B[90mv\u001B[0m #711 > > ()\n",
- "00:00:47 \u001B[90mv\u001B[0m #712 > >\n",
- "00:00:47 \u001B[90mv\u001B[0m #713 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:00:47 \u001B[90mv\u001B[0m #714 > > //// test\n",
- "00:00:47 \u001B[90mv\u001B[0m #715 > >\n",
- "00:00:47 \u001B[90mv\u001B[0m #716 > > let cts = new System.Threading.CancellationTokenSource ()\n",
- "00:00:47 \u001B[90mv\u001B[0m #717 > >\n",
- "00:00:47 \u001B[90mv\u001B[0m #718 > > async {\n",
- "00:00:47 \u001B[90mv\u001B[0m #719 > > let! child =\n",
- "00:00:47 \u001B[90mv\u001B[0m #720 > > cts.Token\n",
- "00:00:47 \u001B[90mv\u001B[0m #721 > > |> subscribeToken\n",
- "00:00:47 \u001B[90mv\u001B[0m #722 > > |> FSharp.Control.AsyncSeq.tryFirst\n",
- "00:00:47 \u001B[90mv\u001B[0m #723 > > |> Async.StartChild\n",
- "00:00:47 \u001B[90mv\u001B[0m #724 > >\n",
- "00:00:47 \u001B[90mv\u001B[0m #725 > > do! Async.Sleep 100\n",
- "00:00:47 \u001B[90mv\u001B[0m #726 > > cts.Cancel ()\n",
- "00:00:47 \u001B[90mv\u001B[0m #727 > > return! child\n",
- "00:00:47 \u001B[90mv\u001B[0m #728 > > }\n",
- "00:00:47 \u001B[90mv\u001B[0m #729 > > |> Async.RunSynchronously\n",
- "00:00:47 \u001B[90mv\u001B[0m #730 > > |> Option.get\n",
- "00:00:47 \u001B[90mv\u001B[0m #731 > > |> fun x -> x > 900000\n",
- "00:00:47 \u001B[90mv\u001B[0m #732 > > |> _assertEqual true\n",
- "00:00:47 \u001B[90mv\u001B[0m #733 > >\n",
- "00:00:47 \u001B[90mv\u001B[0m #734 > > ── [ 185.21ms - stdout ] ───────────────────────────────────────────────────────\n",
- "00:00:47 \u001B[90mv\u001B[0m #735 > > \u001B[38;2;38;140;38m│\u001B[0m true\n",
- "00:00:47 \u001B[90mv\u001B[0m #736 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:47 \u001B[90mv\u001B[0m #737 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:47 \u001B[90mv\u001B[0m #738 > 00:00:21 \u001B[90mv\u001B[39m #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 7850 }\n",
- "00:00:47 \u001B[90mv\u001B[0m #739 > 00:00:21 \u001B[94md\u001B[39m #4 runtime.execute_with_options / { file_name = jupyter; arguments = [\"nbconvert\", \"c:/home/git/polyglot/lib/fsharp/AsyncSeq.dib.ipynb\", \"--to\", \"html\", \"--HTMLExporter.theme=dark\"]; options = { command = jupyter nbconvert \"c:/home/git/polyglot/lib/fsharp/AsyncSeq.dib.ipynb\" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }\n",
- "00:00:49 \u001B[90mv\u001B[0m #740 > 00:00:22 \u001B[90mv\u001B[39m #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/lib/fsharp/AsyncSeq.dib.ipynb to html\n",
- "00:00:49 \u001B[90mv\u001B[0m #741 > 00:00:22 \u001B[90mv\u001B[39m #6 ! C:\\Users\\i574n\\scoop\\apps\\python312\\current\\Lib\\site-packages\\nbformat\\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.\n",
- "00:00:49 \u001B[90mv\u001B[0m #742 > 00:00:22 \u001B[90mv\u001B[39m #7 ! validate(nb)\n",
- "00:00:49 \u001B[90mv\u001B[0m #743 > 00:00:23 \u001B[90mv\u001B[39m #8 ! C:\\Users\\i574n\\scoop\\apps\\python312\\current\\Lib\\site-packages\\nbconvert\\filters\\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3\n",
- "00:00:49 \u001B[90mv\u001B[0m #744 > 00:00:23 \u001B[90mv\u001B[39m #9 ! return _pygments_highlight(\n",
- "00:00:50 \u001B[90mv\u001B[0m #745 > 00:00:23 \u001B[90mv\u001B[39m #10 ! [NbConvertApp] Writing 303129 bytes to c:\\home\\git\\polyglot\\lib\\fsharp\\AsyncSeq.dib.html\n",
- "00:00:50 \u001B[90mv\u001B[0m #746 > 00:00:23 \u001B[90mv\u001B[39m #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 858 }\n",
- "00:00:50 \u001B[90mv\u001B[0m #747 > 00:00:23 \u001B[94md\u001B[39m #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 858 }\n",
- "00:00:50 \u001B[90mv\u001B[0m #748 > 00:00:23 \u001B[94md\u001B[39m #13 runtime.execute_with_options / { file_name = pwsh; arguments = [\"-c\", \"$counter = 1; $path = 'c:/home/git/polyglot/lib/fsharp/AsyncSeq.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\\\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path\"]; options = { command = pwsh -c \"$counter = 1; $path = 'c:/home/git/polyglot/lib/fsharp/AsyncSeq.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path\"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }\n",
- "00:00:50 \u001B[90mv\u001B[0m #749 > 00:00:24 \u001B[90mv\u001B[39m #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 }\n",
- "00:00:50 \u001B[90mv\u001B[0m #750 > 00:00:24 \u001B[94md\u001B[39m #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 }\n",
- "00:00:50 \u001B[90mv\u001B[0m #751 > 00:00:24 \u001B[94md\u001B[39m #16 spiral.run / dib / { exit_code = 0; result_length = 8767 }\n",
- "00:00:50 \u001B[94md\u001B[0m #752 runtime.execute_with_options_async / { exit_code = 0; output_length = 11796 }\n",
- "00:00:50 \u001B[94md\u001B[0m #4 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path AsyncSeq.dib --retries 3\n",
- "00:00:50 \u001B[94md\u001B[0m #753 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 \"dib --path Common.dib --retries 3\"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path Common.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }\n",
- "00:00:50 \u001B[90mv\u001B[0m #754 > 00:00:00 \u001B[94md\u001B[39m #1 spiral.main / { args = Array(MutCell([\"dib\", \"--path\", \"Common.dib\", \"--retries\", \"3\"])) }\n",
- "00:00:50 \u001B[90mv\u001B[0m #755 > 00:00:00 \u001B[94md\u001B[39m #2 runtime.execute_with_options / { file_name = dotnet; arguments = [\"repl\", \"--exit-after-run\", \"--run\", \"c:/home/git/polyglot/lib/fsharp/Common.dib\", \"--output-path\", \"c:/home/git/polyglot/lib/fsharp/Common.dib.ipynb\"]; options = { command = dotnet repl --exit-after-run --run \"c:/home/git/polyglot/lib/fsharp/Common.dib\" --output-path \"c:/home/git/polyglot/lib/fsharp/Common.dib.ipynb\"; cancellation_token = None; environment_variables = Array(MutCell([(\"TRACE_LEVEL\", \"Verbose\"), (\"AUTOMATION\", \"True\")])); on_line = None; stdin = None; trace = false; working_directory = None } }\n",
- "00:00:52 \u001B[90mv\u001B[0m #756 > >\n",
- "00:00:52 \u001B[90mv\u001B[0m #757 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:52 \u001B[90mv\u001B[0m #758 > > \u001B[38;2;146;146;178m│\u001B[0m # Common (Polyglot)\n",
- "00:01:08 \u001B[90mv\u001B[0m #759 > >\n",
- "00:01:08 \u001B[90mv\u001B[0m #760 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:01:08 \u001B[90mv\u001B[0m #761 > > #if !INTERACTIVE\n",
- "00:01:08 \u001B[90mv\u001B[0m #762 > > open Lib\n",
- "00:01:08 \u001B[90mv\u001B[0m #763 > > #endif\n",
- "00:01:08 \u001B[90mv\u001B[0m #764 > >\n",
- "00:01:08 \u001B[90mv\u001B[0m #765 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:01:08 \u001B[90mv\u001B[0m #766 > > let nl = System.Environment.NewLine\n",
- "00:01:08 \u001B[90mv\u001B[0m #767 > > let q = @\"\"\"\"\n",
+ "00:00:45 \u001B[90mv\u001B[0m #571 > > member _.WaitCall text = async {\n",
+ "00:00:45 \u001B[90mv\u001B[0m #572 > > while self.Calls |> List.last <> text do\n",
+ "00:00:45 \u001B[90mv\u001B[0m #573 > > do! Async.SwitchToThreadPool ()\n",
+ "00:00:45 \u001B[90mv\u001B[0m #574 > > }\n",
+ "00:00:45 \u001B[90mv\u001B[0m #575 > >\n",
+ "00:00:45 \u001B[90mv\u001B[0m #576 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:00:45 \u001B[90mv\u001B[0m #577 > > //// test\n",
+ "00:00:45 \u001B[90mv\u001B[0m #578 > >\n",
+ "00:00:45 \u001B[90mv\u001B[0m #579 > > let testEvent = TestEvent ()\n",
+ "00:00:45 \u001B[90mv\u001B[0m #580 > >\n",
+ "00:00:45 \u001B[90mv\u001B[0m #581 > > async {\n",
+ "00:00:45 \u001B[90mv\u001B[0m #582 > > testEvent.AddCall \"1\"\n",
+ "00:00:45 \u001B[90mv\u001B[0m #583 > > let! child = testEvent.Subscribe () |> testEvent.Iter |> Async.StartChild\n",
+ "00:00:45 \u001B[90mv\u001B[0m #584 > > do! testEvent.WaitCall \"AddHandler\"\n",
+ "00:00:45 \u001B[90mv\u001B[0m #585 > > testEvent.AddCall \"2\"\n",
+ "00:00:45 \u001B[90mv\u001B[0m #586 > > do! child\n",
+ "00:00:45 \u001B[90mv\u001B[0m #587 > > testEvent.AddCall \"3\"\n",
+ "00:00:45 \u001B[90mv\u001B[0m #588 > > }\n",
+ "00:00:45 \u001B[90mv\u001B[0m #589 > > |> Async.runWithTimeout 300\n",
+ "00:00:45 \u001B[90mv\u001B[0m #590 > > |> _assertEqual None\n",
+ "00:00:45 \u001B[90mv\u001B[0m #591 > >\n",
+ "00:00:45 \u001B[90mv\u001B[0m #592 > > testEvent.Calls\n",
+ "00:00:45 \u001B[90mv\u001B[0m #593 > > |> Seq.toList\n",
+ "00:00:45 \u001B[90mv\u001B[0m #594 > > |> _assertEqual [[ \"1\"; \"AddHandler\"; \"2\"; \"RemoveHandler\" ]]\n",
+ "00:00:45 \u001B[90mv\u001B[0m #595 > >\n",
+ "00:00:46 \u001B[90mv\u001B[0m #596 > > ── [ 531.54ms - stdout ] ───────────────────────────────────────────────────────\n",
+ "00:00:46 \u001B[90mv\u001B[0m #597 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:02 \u001B[94md\u001B[0m #1 Async.runWithTimeoutAsync / timeout: 300\n",
+ "00:00:46 \u001B[90mv\u001B[0m #598 > > \u001B[38;2;38;140;38m│\u001B[0m \n",
+ "00:00:46 \u001B[90mv\u001B[0m #599 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:46 \u001B[90mv\u001B[0m #600 > > \u001B[38;2;38;140;38m│\u001B[0m [\"1\"; \"AddHandler\"; \"2\"; \"RemoveHandler\"]\n",
+ "00:00:46 \u001B[90mv\u001B[0m #601 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:46 \u001B[90mv\u001B[0m #602 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:46 \u001B[90mv\u001B[0m #603 > >\n",
+ "00:00:46 \u001B[90mv\u001B[0m #604 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:00:46 \u001B[90mv\u001B[0m #605 > > //// test\n",
+ "00:00:46 \u001B[90mv\u001B[0m #606 > >\n",
+ "00:00:46 \u001B[90mv\u001B[0m #607 > > let testEvent = TestEvent ()\n",
+ "00:00:46 \u001B[90mv\u001B[0m #608 > >\n",
+ "00:00:46 \u001B[90mv\u001B[0m #609 > > async {\n",
+ "00:00:46 \u001B[90mv\u001B[0m #610 > > testEvent.AddCall \"1\"\n",
+ "00:00:46 \u001B[90mv\u001B[0m #611 > > let! child = testEvent.Subscribe () |> testEvent.Iter |> Async.StartChild\n",
+ "00:00:46 \u001B[90mv\u001B[0m #612 > > do! testEvent.WaitCall \"AddHandler\"\n",
+ "00:00:46 \u001B[90mv\u001B[0m #613 > > testEvent.AddCall \"2\"\n",
+ "00:00:46 \u001B[90mv\u001B[0m #614 > > use _ = testEvent.EventInterface.Subscribe (fun args ->\n",
+ "00:00:46 \u001B[90mv\u001B[0m #615 > > testEvent.AddCall $\"testEvent.EventInterface.Subscribe({args})\"\n",
+ "00:00:46 \u001B[90mv\u001B[0m #616 > > )\n",
+ "00:00:46 \u001B[90mv\u001B[0m #617 > > testEvent.AddCall \"3\"\n",
+ "00:00:46 \u001B[90mv\u001B[0m #618 > > do! child\n",
+ "00:00:46 \u001B[90mv\u001B[0m #619 > > testEvent.AddCall \"4\"\n",
+ "00:00:46 \u001B[90mv\u001B[0m #620 > > }\n",
+ "00:00:46 \u001B[90mv\u001B[0m #621 > > |> Async.runWithTimeout 300\n",
+ "00:00:46 \u001B[90mv\u001B[0m #622 > > |> _assertEqual None\n",
+ "00:00:46 \u001B[90mv\u001B[0m #623 > >\n",
+ "00:00:46 \u001B[90mv\u001B[0m #624 > > testEvent.Calls\n",
+ "00:00:46 \u001B[90mv\u001B[0m #625 > > |> _assertEqual [[ \"1\"; \"AddHandler\"; \"2\"; \"IObservable.Subscribe\"; \"3\";\n",
+ "00:00:46 \u001B[90mv\u001B[0m #626 > > \"RemoveHandler\"; \"IObservable.Dispose\" ]]\n",
+ "00:00:46 \u001B[90mv\u001B[0m #627 > >\n",
+ "00:00:46 \u001B[90mv\u001B[0m #628 > > ── [ 449.00ms - stdout ] ───────────────────────────────────────────────────────\n",
+ "00:00:46 \u001B[90mv\u001B[0m #629 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:02 \u001B[94md\u001B[0m #2 Async.runWithTimeoutAsync / timeout: 300\n",
+ "00:00:46 \u001B[90mv\u001B[0m #630 > > \u001B[38;2;38;140;38m│\u001B[0m \n",
+ "00:00:46 \u001B[90mv\u001B[0m #631 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:46 \u001B[90mv\u001B[0m #632 > > \u001B[38;2;38;140;38m│\u001B[0m [\"1\"; \"AddHandler\"; \"2\"; \"IObservable.Subscribe\"; \"3\";\n",
+ "00:00:46 \u001B[90mv\u001B[0m #633 > > \"RemoveHandler\"; \"IObservable.Dispose\"]\n",
+ "00:00:46 \u001B[90mv\u001B[0m #634 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:46 \u001B[90mv\u001B[0m #635 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:46 \u001B[90mv\u001B[0m #636 > >\n",
+ "00:00:46 \u001B[90mv\u001B[0m #637 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:00:46 \u001B[90mv\u001B[0m #638 > > //// test\n",
+ "00:00:46 \u001B[90mv\u001B[0m #639 > >\n",
+ "00:00:46 \u001B[90mv\u001B[0m #640 > > let testEvent = TestEvent ()\n",
+ "00:00:46 \u001B[90mv\u001B[0m #641 > >\n",
+ "00:00:46 \u001B[90mv\u001B[0m #642 > > async {\n",
+ "00:00:46 \u001B[90mv\u001B[0m #643 > > testEvent.AddCall \"1\"\n",
+ "00:00:46 \u001B[90mv\u001B[0m #644 > > let! child = testEvent.Subscribe () |> testEvent.Iter |> Async.StartChild\n",
+ "00:00:46 \u001B[90mv\u001B[0m #645 > > do! testEvent.WaitCall \"AddHandler\"\n",
+ "00:00:46 \u001B[90mv\u001B[0m #646 > > testEvent.AddCall \"2\"\n",
+ "00:00:46 \u001B[90mv\u001B[0m #647 > > use _ = testEvent.EventInterface.Subscribe (fun args ->\n",
+ "00:00:46 \u001B[90mv\u001B[0m #648 > > async {\n",
+ "00:00:46 \u001B[90mv\u001B[0m #649 > > do! testEvent.WaitCall \"TestEvent.Iter(0: System.Exception: error)\"\n",
+ "00:00:46 \u001B[90mv\u001B[0m #650 > > testEvent.AddCall\n",
+ "00:00:46 \u001B[90mv\u001B[0m #651 > > $\"testEvent.EventInterface.Subscribe({args.GetException () |>\n",
+ "00:00:46 \u001B[90mv\u001B[0m #652 > > SpiralSm.format_exception})\"\n",
+ "00:00:46 \u001B[90mv\u001B[0m #653 > > }\n",
+ "00:00:46 \u001B[90mv\u001B[0m #654 > > |> Async.RunSynchronously\n",
+ "00:00:46 \u001B[90mv\u001B[0m #655 > > )\n",
+ "00:00:46 \u001B[90mv\u001B[0m #656 > > testEvent.AddCall \"3\"\n",
+ "00:00:46 \u001B[90mv\u001B[0m #657 > > testEvent.Event.Trigger (null, ErrorEventArgs (Exception \"error\"))\n",
+ "00:00:46 \u001B[90mv\u001B[0m #658 > > testEvent.AddCall \"4\"\n",
+ "00:00:46 \u001B[90mv\u001B[0m #659 > > do! child\n",
+ "00:00:46 \u001B[90mv\u001B[0m #660 > > testEvent.AddCall \"5\"\n",
+ "00:00:46 \u001B[90mv\u001B[0m #661 > > }\n",
+ "00:00:46 \u001B[90mv\u001B[0m #662 > > |> Async.runWithTimeout 300\n",
+ "00:00:46 \u001B[90mv\u001B[0m #663 > > |> _assertEqual None\n",
+ "00:00:46 \u001B[90mv\u001B[0m #664 > >\n",
+ "00:00:46 \u001B[90mv\u001B[0m #665 > > testEvent.Calls\n",
+ "00:00:46 \u001B[90mv\u001B[0m #666 > > |> _assertEqual [[\n",
+ "00:00:46 \u001B[90mv\u001B[0m #667 > > \"1\"\n",
+ "00:00:46 \u001B[90mv\u001B[0m #668 > > \"AddHandler\"\n",
+ "00:00:46 \u001B[90mv\u001B[0m #669 > > \"2\"\n",
+ "00:00:46 \u001B[90mv\u001B[0m #670 > > \"IObservable.Subscribe\"\n",
+ "00:00:46 \u001B[90mv\u001B[0m #671 > > \"3\"\n",
+ "00:00:46 \u001B[90mv\u001B[0m #672 > > \"TestEvent.Subscribe(System.Exception: error)\"\n",
+ "00:00:46 \u001B[90mv\u001B[0m #673 > > \"TestEvent.Iter(0: System.Exception: error)\"\n",
+ "00:00:46 \u001B[90mv\u001B[0m #674 > > \"testEvent.EventInterface.Subscribe(System.Exception: error)\"\n",
+ "00:00:46 \u001B[90mv\u001B[0m #675 > > \"4\"\n",
+ "00:00:46 \u001B[90mv\u001B[0m #676 > > \"RemoveHandler\"\n",
+ "00:00:46 \u001B[90mv\u001B[0m #677 > > \"IObservable.Dispose\"\n",
+ "00:00:46 \u001B[90mv\u001B[0m #678 > > ]]\n",
+ "00:00:46 \u001B[90mv\u001B[0m #679 > >\n",
+ "00:00:46 \u001B[90mv\u001B[0m #680 > > ── [ 468.00ms - stdout ] ───────────────────────────────────────────────────────\n",
+ "00:00:46 \u001B[90mv\u001B[0m #681 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:03 \u001B[94md\u001B[0m #3 Async.runWithTimeoutAsync / timeout: 300\n",
+ "00:00:46 \u001B[90mv\u001B[0m #682 > > \u001B[38;2;38;140;38m│\u001B[0m \n",
+ "00:00:46 \u001B[90mv\u001B[0m #683 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:46 \u001B[90mv\u001B[0m #684 > > \u001B[38;2;38;140;38m│\u001B[0m [\"1\"; \"AddHandler\"; \"2\"; \"IObservable.Subscribe\"; \"3\";\n",
+ "00:00:46 \u001B[90mv\u001B[0m #685 > > \"TestEvent.Subscribe(System.Exception: error)\";\n",
+ "00:00:46 \u001B[90mv\u001B[0m #686 > > \u001B[38;2;38;140;38m│\u001B[0m \"TestEvent.Iter(0: System.Exception: error)\";\n",
+ "00:00:46 \u001B[90mv\u001B[0m #687 > > \"testEvent.EventInterface.Subscribe(System.Exception: error)\"; \"4\";\n",
+ "00:00:46 \u001B[90mv\u001B[0m #688 > > \u001B[38;2;38;140;38m│\u001B[0m \"RemoveHandler\"; \"IObservable.Dispose\"]\n",
+ "00:00:46 \u001B[90mv\u001B[0m #689 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:46 \u001B[90mv\u001B[0m #690 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:46 \u001B[90mv\u001B[0m #691 > >\n",
+ "00:00:46 \u001B[90mv\u001B[0m #692 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
+ "00:00:46 \u001B[90mv\u001B[0m #693 > > \u001B[38;2;146;146;178m│\u001B[0m ## subscribeToken\n",
+ "00:00:46 \u001B[90mv\u001B[0m #694 > >\n",
+ "00:00:46 \u001B[90mv\u001B[0m #695 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:00:46 \u001B[90mv\u001B[0m #696 > > let subscribeToken (token : System.Threading.CancellationToken) =\n",
+ "00:00:46 \u001B[90mv\u001B[0m #697 > > let tcs = new System.Threading.Tasks.TaskCompletionSource ()\n",
+ "00:00:46 \u001B[90mv\u001B[0m #698 > > System.Action tcs.SetResult |> token.Register |> ignore\n",
+ "00:00:46 \u001B[90mv\u001B[0m #699 > > let start = System.DateTime.Now.Ticks\n",
+ "00:00:46 \u001B[90mv\u001B[0m #700 > > FSharp.Control.AsyncSeq.unfoldAsync\n",
+ "00:00:46 \u001B[90mv\u001B[0m #701 > > (fun () -> async {\n",
+ "00:00:46 \u001B[90mv\u001B[0m #702 > > do! tcs.Task |> Async.AwaitTask\n",
+ "00:00:46 \u001B[90mv\u001B[0m #703 > > return Some (System.DateTime.Now.Ticks - start, ())\n",
+ "00:00:46 \u001B[90mv\u001B[0m #704 > > })\n",
+ "00:00:46 \u001B[90mv\u001B[0m #705 > > ()\n",
+ "00:00:46 \u001B[90mv\u001B[0m #706 > >\n",
+ "00:00:46 \u001B[90mv\u001B[0m #707 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:00:46 \u001B[90mv\u001B[0m #708 > > //// test\n",
+ "00:00:46 \u001B[90mv\u001B[0m #709 > >\n",
+ "00:00:46 \u001B[90mv\u001B[0m #710 > > let cts = new System.Threading.CancellationTokenSource ()\n",
+ "00:00:46 \u001B[90mv\u001B[0m #711 > >\n",
+ "00:00:46 \u001B[90mv\u001B[0m #712 > > async {\n",
+ "00:00:46 \u001B[90mv\u001B[0m #713 > > let! child =\n",
+ "00:00:46 \u001B[90mv\u001B[0m #714 > > cts.Token\n",
+ "00:00:46 \u001B[90mv\u001B[0m #715 > > |> subscribeToken\n",
+ "00:00:46 \u001B[90mv\u001B[0m #716 > > |> FSharp.Control.AsyncSeq.tryFirst\n",
+ "00:00:46 \u001B[90mv\u001B[0m #717 > > |> Async.StartChild\n",
+ "00:00:46 \u001B[90mv\u001B[0m #718 > >\n",
+ "00:00:46 \u001B[90mv\u001B[0m #719 > > do! Async.Sleep 100\n",
+ "00:00:46 \u001B[90mv\u001B[0m #720 > > cts.Cancel ()\n",
+ "00:00:46 \u001B[90mv\u001B[0m #721 > > return! child\n",
+ "00:00:46 \u001B[90mv\u001B[0m #722 > > }\n",
+ "00:00:46 \u001B[90mv\u001B[0m #723 > > |> Async.RunSynchronously\n",
+ "00:00:46 \u001B[90mv\u001B[0m #724 > > |> Option.get\n",
+ "00:00:46 \u001B[90mv\u001B[0m #725 > > |> fun x -> x > 900000\n",
+ "00:00:46 \u001B[90mv\u001B[0m #726 > > |> _assertEqual true\n",
+ "00:00:47 \u001B[90mv\u001B[0m #727 > >\n",
+ "00:00:47 \u001B[90mv\u001B[0m #728 > > ── [ 174.98ms - stdout ] ───────────────────────────────────────────────────────\n",
+ "00:00:47 \u001B[90mv\u001B[0m #729 > > \u001B[38;2;38;140;38m│\u001B[0m true\n",
+ "00:00:47 \u001B[90mv\u001B[0m #730 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:47 \u001B[90mv\u001B[0m #731 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:47 \u001B[90mv\u001B[0m #732 > 00:00:21 \u001B[90mv\u001B[39m #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 7850 }\n",
+ "00:00:47 \u001B[90mv\u001B[0m #733 > 00:00:21 \u001B[94md\u001B[39m #4 runtime.execute_with_options / { file_name = jupyter; arguments = [\"nbconvert\", \"c:/home/git/polyglot/lib/fsharp/AsyncSeq.dib.ipynb\", \"--to\", \"html\", \"--HTMLExporter.theme=dark\"]; options = { command = jupyter nbconvert \"c:/home/git/polyglot/lib/fsharp/AsyncSeq.dib.ipynb\" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }\n",
+ "00:00:48 \u001B[90mv\u001B[0m #734 > 00:00:22 \u001B[90mv\u001B[39m #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/lib/fsharp/AsyncSeq.dib.ipynb to html\n",
+ "00:00:48 \u001B[90mv\u001B[0m #735 > 00:00:22 \u001B[90mv\u001B[39m #6 ! C:\\Users\\i574n\\scoop\\apps\\python312\\current\\Lib\\site-packages\\nbformat\\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.\n",
+ "00:00:48 \u001B[90mv\u001B[0m #736 > 00:00:22 \u001B[90mv\u001B[39m #7 ! validate(nb)\n",
+ "00:00:49 \u001B[90mv\u001B[0m #737 > 00:00:23 \u001B[90mv\u001B[39m #8 ! C:\\Users\\i574n\\scoop\\apps\\python312\\current\\Lib\\site-packages\\nbconvert\\filters\\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3\n",
+ "00:00:49 \u001B[90mv\u001B[0m #738 > 00:00:23 \u001B[90mv\u001B[39m #9 ! return _pygments_highlight(\n",
+ "00:00:49 \u001B[90mv\u001B[0m #739 > 00:00:23 \u001B[90mv\u001B[39m #10 ! [NbConvertApp] Writing 303129 bytes to c:\\home\\git\\polyglot\\lib\\fsharp\\AsyncSeq.dib.html\n",
+ "00:00:49 \u001B[90mv\u001B[0m #740 > 00:00:23 \u001B[90mv\u001B[39m #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 858 }\n",
+ "00:00:49 \u001B[90mv\u001B[0m #741 > 00:00:23 \u001B[94md\u001B[39m #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 858 }\n",
+ "00:00:49 \u001B[90mv\u001B[0m #742 > 00:00:23 \u001B[94md\u001B[39m #13 runtime.execute_with_options / { file_name = pwsh; arguments = [\"-c\", \"$counter = 1; $path = 'c:/home/git/polyglot/lib/fsharp/AsyncSeq.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\\\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path\"]; options = { command = pwsh -c \"$counter = 1; $path = 'c:/home/git/polyglot/lib/fsharp/AsyncSeq.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path\"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }\n",
+ "00:00:49 \u001B[90mv\u001B[0m #743 > 00:00:24 \u001B[90mv\u001B[39m #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 }\n",
+ "00:00:49 \u001B[90mv\u001B[0m #744 > 00:00:24 \u001B[94md\u001B[39m #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 }\n",
+ "00:00:49 \u001B[90mv\u001B[0m #745 > 00:00:24 \u001B[94md\u001B[39m #16 spiral.run / dib / { exit_code = 0; result_length = 8767 }\n",
+ "00:00:50 \u001B[94md\u001B[0m #746 runtime.execute_with_options_async / { exit_code = 0; output_length = 11796 }\n",
+ "00:00:49 \u001B[94md\u001B[0m #2 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path AsyncSeq.dib --retries 3\n",
+ "00:00:50 \u001B[94md\u001B[0m #747 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 \"dib --path Common.dib --retries 3\"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path Common.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }\n",
+ "00:00:50 \u001B[90mv\u001B[0m #748 > 00:00:00 \u001B[94md\u001B[39m #1 spiral.main / { args = Array(MutCell([\"dib\", \"--path\", \"Common.dib\", \"--retries\", \"3\"])) }\n",
+ "00:00:50 \u001B[90mv\u001B[0m #749 > 00:00:00 \u001B[94md\u001B[39m #2 runtime.execute_with_options / { file_name = dotnet; arguments = [\"repl\", \"--exit-after-run\", \"--run\", \"c:/home/git/polyglot/lib/fsharp/Common.dib\", \"--output-path\", \"c:/home/git/polyglot/lib/fsharp/Common.dib.ipynb\"]; options = { command = dotnet repl --exit-after-run --run \"c:/home/git/polyglot/lib/fsharp/Common.dib\" --output-path \"c:/home/git/polyglot/lib/fsharp/Common.dib.ipynb\"; cancellation_token = None; environment_variables = Array(MutCell([(\"TRACE_LEVEL\", \"Verbose\"), (\"AUTOMATION\", \"True\")])); on_line = None; stdin = None; trace = false; working_directory = None } }\n",
+ "00:00:51 \u001B[90mv\u001B[0m #750 > >\n",
+ "00:00:51 \u001B[90mv\u001B[0m #751 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
+ "00:00:51 \u001B[90mv\u001B[0m #752 > > \u001B[38;2;146;146;178m│\u001B[0m # Common (Polyglot)\n",
+ "00:01:08 \u001B[90mv\u001B[0m #753 > >\n",
+ "00:01:08 \u001B[90mv\u001B[0m #754 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:01:08 \u001B[90mv\u001B[0m #755 > > #if !INTERACTIVE\n",
+ "00:01:08 \u001B[90mv\u001B[0m #756 > > open Lib\n",
+ "00:01:08 \u001B[90mv\u001B[0m #757 > > #endif\n",
+ "00:01:08 \u001B[90mv\u001B[0m #758 > >\n",
+ "00:01:08 \u001B[90mv\u001B[0m #759 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:01:08 \u001B[90mv\u001B[0m #760 > > let nl = System.Environment.NewLine\n",
+ "00:01:08 \u001B[90mv\u001B[0m #761 > > let q = @\"\"\"\"\n",
+ "00:01:08 \u001B[90mv\u001B[0m #762 > >\n",
+ "00:01:08 \u001B[90mv\u001B[0m #763 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:01:08 \u001B[90mv\u001B[0m #764 > > let inline cons head tail = head :: tail\n",
+ "00:01:08 \u001B[90mv\u001B[0m #765 > >\n",
+ "00:01:08 \u001B[90mv\u001B[0m #766 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
+ "00:01:08 \u001B[90mv\u001B[0m #767 > > \u001B[38;2;146;146;178m│\u001B[0m ## memoize\n",
"00:01:08 \u001B[90mv\u001B[0m #768 > >\n",
"00:01:08 \u001B[90mv\u001B[0m #769 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:01:08 \u001B[90mv\u001B[0m #770 > > let inline cons head tail = head :: tail\n",
- "00:01:08 \u001B[90mv\u001B[0m #771 > >\n",
- "00:01:08 \u001B[90mv\u001B[0m #772 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:01:08 \u001B[90mv\u001B[0m #773 > > \u001B[38;2;146;146;178m│\u001B[0m ## memoize\n",
- "00:01:08 \u001B[90mv\u001B[0m #774 > >\n",
- "00:01:08 \u001B[90mv\u001B[0m #775 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:01:08 \u001B[90mv\u001B[0m #776 > > let inline memoize fn =\n",
- "00:01:08 \u001B[90mv\u001B[0m #777 > > let result = lazy fn ()\n",
- "00:01:08 \u001B[90mv\u001B[0m #778 > > fun () -> result.Value\n",
- "00:01:08 \u001B[90mv\u001B[0m #779 > >\n",
- "00:01:08 \u001B[90mv\u001B[0m #780 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:01:08 \u001B[90mv\u001B[0m #781 > > \u001B[38;2;146;146;178m│\u001B[0m ## TraceLevel\n",
- "00:01:08 \u001B[90mv\u001B[0m #782 > >\n",
- "00:01:08 \u001B[90mv\u001B[0m #783 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:01:08 \u001B[90mv\u001B[0m #784 > > type TraceLevel =\n",
- "00:01:08 \u001B[90mv\u001B[0m #785 > > | Verbose\n",
- "00:01:08 \u001B[90mv\u001B[0m #786 > > | Debug\n",
- "00:01:08 \u001B[90mv\u001B[0m #787 > > | Info\n",
- "00:01:08 \u001B[90mv\u001B[0m #788 > > | Warning\n",
- "00:01:08 \u001B[90mv\u001B[0m #789 > > | Critical\n",
- "00:01:08 \u001B[90mv\u001B[0m #790 > >\n",
- "00:01:08 \u001B[90mv\u001B[0m #791 > > let inline _locals () = \"\"\n",
- "00:01:08 \u001B[90mv\u001B[0m #792 > >\n",
- "00:01:08 \u001B[90mv\u001B[0m #793 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:01:08 \u001B[90mv\u001B[0m #794 > > \u001B[38;2;146;146;178m│\u001B[0m ## trace\n",
- "00:01:08 \u001B[90mv\u001B[0m #795 > >\n",
- "00:01:08 \u001B[90mv\u001B[0m #796 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:01:08 \u001B[90mv\u001B[0m #797 > > let to_trace_level = function\n",
- "00:01:08 \u001B[90mv\u001B[0m #798 > > | Verbose -> SpiralTrace.TraceLevel.US0_0\n",
- "00:01:08 \u001B[90mv\u001B[0m #799 > > | Debug -> SpiralTrace.TraceLevel.US0_1\n",
- "00:01:08 \u001B[90mv\u001B[0m #800 > > | Info -> SpiralTrace.TraceLevel.US0_2\n",
- "00:01:08 \u001B[90mv\u001B[0m #801 > > | Warning -> SpiralTrace.TraceLevel.US0_3\n",
- "00:01:08 \u001B[90mv\u001B[0m #802 > > | Critical -> SpiralTrace.TraceLevel.US0_4\n",
- "00:01:08 \u001B[90mv\u001B[0m #803 > >\n",
- "00:01:08 \u001B[90mv\u001B[0m #804 > > let trace level fn locals =\n",
- "00:01:08 \u001B[90mv\u001B[0m #805 > > let level = level |> to_trace_level\n",
- "00:01:08 \u001B[90mv\u001B[0m #806 > > SpiralTrace.trace level fn locals\n",
- "00:01:08 \u001B[90mv\u001B[0m #807 > >\n",
- "00:01:08 \u001B[90mv\u001B[0m #808 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:01:08 \u001B[90mv\u001B[0m #809 > > //// test\n",
- "00:01:08 \u001B[90mv\u001B[0m #810 > >\n",
- "00:01:08 \u001B[90mv\u001B[0m #811 > > trace Debug (fun () -> \"test\") _locals\n",
- "00:01:08 \u001B[90mv\u001B[0m #812 > >\n",
- "00:01:08 \u001B[90mv\u001B[0m #813 > > ── [ 24.67ms - stdout ] ────────────────────────────────────────────────────────\n",
- "00:01:08 \u001B[90mv\u001B[0m #814 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:00 \u001B[94md\u001B[0m #1 test\n",
- "00:01:08 \u001B[90mv\u001B[0m #815 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:01:08 \u001B[90mv\u001B[0m #816 > 00:00:17 \u001B[90mv\u001B[39m #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 1940 }\n",
- "00:01:08 \u001B[90mv\u001B[0m #817 > 00:00:17 \u001B[94md\u001B[39m #4 runtime.execute_with_options / { file_name = jupyter; arguments = [\"nbconvert\", \"c:/home/git/polyglot/lib/fsharp/Common.dib.ipynb\", \"--to\", \"html\", \"--HTMLExporter.theme=dark\"]; options = { command = jupyter nbconvert \"c:/home/git/polyglot/lib/fsharp/Common.dib.ipynb\" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }\n",
- "00:01:09 \u001B[90mv\u001B[0m #818 > 00:00:19 \u001B[90mv\u001B[39m #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/lib/fsharp/Common.dib.ipynb to html\n",
- "00:01:09 \u001B[90mv\u001B[0m #819 > 00:00:19 \u001B[90mv\u001B[39m #6 ! C:\\Users\\i574n\\scoop\\apps\\python312\\current\\Lib\\site-packages\\nbformat\\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.\n",
- "00:01:09 \u001B[90mv\u001B[0m #820 > 00:00:19 \u001B[90mv\u001B[39m #7 ! validate(nb)\n",
- "00:01:10 \u001B[90mv\u001B[0m #821 > 00:00:19 \u001B[90mv\u001B[39m #8 ! C:\\Users\\i574n\\scoop\\apps\\python312\\current\\Lib\\site-packages\\nbconvert\\filters\\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3\n",
- "00:01:10 \u001B[90mv\u001B[0m #822 > 00:00:19 \u001B[90mv\u001B[39m #9 ! return _pygments_highlight(\n",
- "00:01:10 \u001B[90mv\u001B[0m #823 > 00:00:20 \u001B[90mv\u001B[39m #10 ! [NbConvertApp] Writing 280728 bytes to c:\\home\\git\\polyglot\\lib\\fsharp\\Common.dib.html\n",
- "00:01:10 \u001B[90mv\u001B[0m #824 > 00:00:20 \u001B[90mv\u001B[39m #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 854 }\n",
- "00:01:10 \u001B[90mv\u001B[0m #825 > 00:00:20 \u001B[94md\u001B[39m #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 854 }\n",
- "00:01:10 \u001B[90mv\u001B[0m #826 > 00:00:20 \u001B[94md\u001B[39m #13 runtime.execute_with_options / { file_name = pwsh; arguments = [\"-c\", \"$counter = 1; $path = 'c:/home/git/polyglot/lib/fsharp/Common.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\\\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path\"]; options = { command = pwsh -c \"$counter = 1; $path = 'c:/home/git/polyglot/lib/fsharp/Common.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path\"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }\n",
- "00:01:11 \u001B[90mv\u001B[0m #827 > 00:00:20 \u001B[90mv\u001B[39m #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 }\n",
- "00:01:11 \u001B[90mv\u001B[0m #828 > 00:00:20 \u001B[94md\u001B[39m #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 }\n",
- "00:01:11 \u001B[90mv\u001B[0m #829 > 00:00:20 \u001B[94md\u001B[39m #16 spiral.run / dib / { exit_code = 0; result_length = 2853 }\n",
- "00:01:11 \u001B[94md\u001B[0m #830 runtime.execute_with_options_async / { exit_code = 0; output_length = 5506 }\n",
- "00:01:11 \u001B[94md\u001B[0m #5 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path Common.dib --retries 3\n",
- "00:01:11 \u001B[94md\u001B[0m #831 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 \"dib --path CommonFSharp.dib --retries 3\"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path CommonFSharp.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }\n",
- "00:01:11 \u001B[90mv\u001B[0m #832 > 00:00:00 \u001B[94md\u001B[39m #1 spiral.main / { args = Array(MutCell([\"dib\", \"--path\", \"CommonFSharp.dib\", \"--retries\", \"3\"])) }\n",
- "00:01:11 \u001B[90mv\u001B[0m #833 > 00:00:00 \u001B[94md\u001B[39m #2 runtime.execute_with_options / { file_name = dotnet; arguments = [\"repl\", \"--exit-after-run\", \"--run\", \"c:/home/git/polyglot/lib/fsharp/CommonFSharp.dib\", \"--output-path\", \"c:/home/git/polyglot/lib/fsharp/CommonFSharp.dib.ipynb\"]; options = { command = dotnet repl --exit-after-run --run \"c:/home/git/polyglot/lib/fsharp/CommonFSharp.dib\" --output-path \"c:/home/git/polyglot/lib/fsharp/CommonFSharp.dib.ipynb\"; cancellation_token = None; environment_variables = Array(MutCell([(\"TRACE_LEVEL\", \"Verbose\"), (\"AUTOMATION\", \"True\")])); on_line = None; stdin = None; trace = false; working_directory = None } }\n",
- "00:01:12 \u001B[90mv\u001B[0m #834 > >\n",
- "00:01:12 \u001B[90mv\u001B[0m #835 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:01:12 \u001B[90mv\u001B[0m #836 > > \u001B[38;2;146;146;178m│\u001B[0m # CommonFSharp (Polyglot)\n",
- "00:01:27 \u001B[90mv\u001B[0m #837 > >\n",
- "00:01:27 \u001B[90mv\u001B[0m #838 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:01:27 \u001B[90mv\u001B[0m #839 > > open Common\n",
- "00:01:27 \u001B[90mv\u001B[0m #840 > >\n",
- "00:01:27 \u001B[90mv\u001B[0m #841 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:01:27 \u001B[90mv\u001B[0m #842 > > \u001B[38;2;146;146;178m│\u001B[0m ## getUnionCaseName\n",
- "00:01:27 \u001B[90mv\u001B[0m #843 > >\n",
- "00:01:27 \u001B[90mv\u001B[0m #844 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:01:27 \u001B[90mv\u001B[0m #845 > > let inline getUnionCaseName<'T> (x: 'T) =\n",
- "00:01:27 \u001B[90mv\u001B[0m #846 > > match Reflection.FSharpValue.GetUnionFields(x, typeof<'T>) with\n",
- "00:01:27 \u001B[90mv\u001B[0m #847 > > | case, _ -> case.Name\n",
- "00:01:27 \u001B[90mv\u001B[0m #848 > >\n",
- "00:01:27 \u001B[90mv\u001B[0m #849 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:01:27 \u001B[90mv\u001B[0m #850 > > //// test\n",
- "00:01:27 \u001B[90mv\u001B[0m #851 > >\n",
- "00:01:27 \u001B[90mv\u001B[0m #852 > > TraceLevel.Critical\n",
- "00:01:27 \u001B[90mv\u001B[0m #853 > > |> getUnionCaseName\n",
- "00:01:27 \u001B[90mv\u001B[0m #854 > > |> _assertEqual (nameof TraceLevel.Critical)\n",
- "00:01:28 \u001B[90mv\u001B[0m #855 > >\n",
- "00:01:28 \u001B[90mv\u001B[0m #856 > > ── [ 67.61ms - stdout ] ────────────────────────────────────────────────────────\n",
- "00:01:28 \u001B[90mv\u001B[0m #857 > > \u001B[38;2;38;140;38m│\u001B[0m \"Critical\"\n",
- "00:01:28 \u001B[90mv\u001B[0m #858 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:01:28 \u001B[90mv\u001B[0m #859 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:01:28 \u001B[90mv\u001B[0m #860 > 00:00:16 \u001B[90mv\u001B[39m #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 914 }\n",
- "00:01:28 \u001B[90mv\u001B[0m #861 > 00:00:16 \u001B[94md\u001B[39m #4 runtime.execute_with_options / { file_name = jupyter; arguments = [\"nbconvert\", \"c:/home/git/polyglot/lib/fsharp/CommonFSharp.dib.ipynb\", \"--to\", \"html\", \"--HTMLExporter.theme=dark\"]; options = { command = jupyter nbconvert \"c:/home/git/polyglot/lib/fsharp/CommonFSharp.dib.ipynb\" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }\n",
- "00:01:29 \u001B[90mv\u001B[0m #862 > 00:00:18 \u001B[90mv\u001B[39m #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/lib/fsharp/CommonFSharp.dib.ipynb to html\n",
- "00:01:29 \u001B[90mv\u001B[0m #863 > 00:00:18 \u001B[90mv\u001B[39m #6 ! C:\\Users\\i574n\\scoop\\apps\\python312\\current\\Lib\\site-packages\\nbformat\\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.\n",
- "00:01:29 \u001B[90mv\u001B[0m #864 > 00:00:18 \u001B[90mv\u001B[39m #7 ! validate(nb)\n",
- "00:01:30 \u001B[90mv\u001B[0m #865 > 00:00:18 \u001B[90mv\u001B[39m #8 ! C:\\Users\\i574n\\scoop\\apps\\python312\\current\\Lib\\site-packages\\nbconvert\\filters\\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3\n",
- "00:01:30 \u001B[90mv\u001B[0m #866 > 00:00:18 \u001B[90mv\u001B[39m #9 ! return _pygments_highlight(\n",
- "00:01:30 \u001B[90mv\u001B[0m #867 > 00:00:19 \u001B[90mv\u001B[39m #10 ! [NbConvertApp] Writing 275592 bytes to c:\\home\\git\\polyglot\\lib\\fsharp\\CommonFSharp.dib.html\n",
- "00:01:30 \u001B[90mv\u001B[0m #868 > 00:00:19 \u001B[90mv\u001B[39m #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 866 }\n",
- "00:01:30 \u001B[90mv\u001B[0m #869 > 00:00:19 \u001B[94md\u001B[39m #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 866 }\n",
- "00:01:30 \u001B[90mv\u001B[0m #870 > 00:00:19 \u001B[94md\u001B[39m #13 runtime.execute_with_options / { file_name = pwsh; arguments = [\"-c\", \"$counter = 1; $path = 'c:/home/git/polyglot/lib/fsharp/CommonFSharp.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\\\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path\"]; options = { command = pwsh -c \"$counter = 1; $path = 'c:/home/git/polyglot/lib/fsharp/CommonFSharp.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path\"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }\n",
- "00:01:30 \u001B[90mv\u001B[0m #871 > 00:00:19 \u001B[90mv\u001B[39m #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 }\n",
- "00:01:30 \u001B[90mv\u001B[0m #872 > 00:00:19 \u001B[94md\u001B[39m #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 }\n",
- "00:01:30 \u001B[90mv\u001B[0m #873 > 00:00:19 \u001B[94md\u001B[39m #16 spiral.run / dib / { exit_code = 0; result_length = 1839 }\n",
- "00:01:30 \u001B[94md\u001B[0m #874 runtime.execute_with_options_async / { exit_code = 0; output_length = 4477 }\n",
- "00:01:30 \u001B[94md\u001B[0m #6 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path CommonFSharp.dib --retries 3\n",
- "00:01:30 \u001B[94md\u001B[0m #875 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 \"dib --path FileSystem.dib --retries 3\"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path FileSystem.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }\n",
- "00:01:30 \u001B[90mv\u001B[0m #876 > 00:00:00 \u001B[94md\u001B[39m #1 spiral.main / { args = Array(MutCell([\"dib\", \"--path\", \"FileSystem.dib\", \"--retries\", \"3\"])) }\n",
- "00:01:30 \u001B[90mv\u001B[0m #877 > 00:00:00 \u001B[94md\u001B[39m #2 runtime.execute_with_options / { file_name = dotnet; arguments = [\"repl\", \"--exit-after-run\", \"--run\", \"c:/home/git/polyglot/lib/fsharp/FileSystem.dib\", \"--output-path\", \"c:/home/git/polyglot/lib/fsharp/FileSystem.dib.ipynb\"]; options = { command = dotnet repl --exit-after-run --run \"c:/home/git/polyglot/lib/fsharp/FileSystem.dib\" --output-path \"c:/home/git/polyglot/lib/fsharp/FileSystem.dib.ipynb\"; cancellation_token = None; environment_variables = Array(MutCell([(\"TRACE_LEVEL\", \"Verbose\"), (\"AUTOMATION\", \"True\")])); on_line = None; stdin = None; trace = false; working_directory = None } }\n",
- "00:01:32 \u001B[90mv\u001B[0m #878 > >\n",
- "00:01:32 \u001B[90mv\u001B[0m #879 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:01:32 \u001B[90mv\u001B[0m #880 > > \u001B[38;2;146;146;178m│\u001B[0m # FileSystem (Polyglot)\n",
- "00:01:36 \u001B[90mv\u001B[0m #881 > >\n",
- "00:01:36 \u001B[90mv\u001B[0m #882 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:01:36 \u001B[90mv\u001B[0m #883 > > #r\n",
- "00:01:36 \u001B[90mv\u001B[0m #884 > > @\"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan\n",
- "00:01:36 \u001B[90mv\u001B[0m #885 > > dard2.1/FSharp.Control.AsyncSeq.dll\"\n",
- "00:01:36 \u001B[90mv\u001B[0m #886 > > #r\n",
- "00:01:36 \u001B[90mv\u001B[0m #887 > > @\"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6.\n",
- "00:01:36 \u001B[90mv\u001B[0m #888 > > 0/System.Reactive.dll\"\n",
- "00:01:36 \u001B[90mv\u001B[0m #889 > > #r\n",
- "00:01:36 \u001B[90mv\u001B[0m #890 > > @\"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib\n",
- "00:01:36 \u001B[90mv\u001B[0m #891 > > netstandard2.0/System.Reactive.Linq.dll\"\n",
- "00:01:36 \u001B[90mv\u001B[0m #892 > > #r\n",
- "00:01:36 \u001B[90mv\u001B[0m #893 > > @\"../../../../../../../.nuget/packages/argu/6.2.4/lib/netstandard2.0/Argu.dll\"\n",
- "00:01:48 \u001B[90mv\u001B[0m #894 > >\n",
- "00:01:48 \u001B[90mv\u001B[0m #895 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:01:48 \u001B[90mv\u001B[0m #896 > > #if !INTERACTIVE\n",
- "00:01:48 \u001B[90mv\u001B[0m #897 > > open Lib\n",
- "00:01:48 \u001B[90mv\u001B[0m #898 > > #endif\n",
- "00:01:48 \u001B[90mv\u001B[0m #899 > >\n",
- "00:01:48 \u001B[90mv\u001B[0m #900 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:01:48 \u001B[90mv\u001B[0m #901 > > open Common\n",
- "00:01:48 \u001B[90mv\u001B[0m #902 > > open SpiralFileSystem.Operators\n",
- "00:01:48 \u001B[90mv\u001B[0m #903 > >\n",
- "00:01:48 \u001B[90mv\u001B[0m #904 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:01:48 \u001B[90mv\u001B[0m #905 > > \u001B[38;2;146;146;178m│\u001B[0m ## watchDirectory\n",
- "00:01:48 \u001B[90mv\u001B[0m #906 > >\n",
- "00:01:48 \u001B[90mv\u001B[0m #907 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:01:48 \u001B[90mv\u001B[0m #908 > > [[]]\n",
- "00:01:48 \u001B[90mv\u001B[0m #909 > > type FileSystemChangeType =\n",
- "00:01:48 \u001B[90mv\u001B[0m #910 > > | Failure\n",
- "00:01:48 \u001B[90mv\u001B[0m #911 > > | Changed\n",
- "00:01:48 \u001B[90mv\u001B[0m #912 > > | Created\n",
- "00:01:48 \u001B[90mv\u001B[0m #913 > > | Deleted\n",
- "00:01:48 \u001B[90mv\u001B[0m #914 > > | Renamed\n",
- "00:01:48 \u001B[90mv\u001B[0m #915 > >\n",
- "00:01:48 \u001B[90mv\u001B[0m #916 > > [[]]\n",
- "00:01:48 \u001B[90mv\u001B[0m #917 > > type FileSystemChange =\n",
- "00:01:48 \u001B[90mv\u001B[0m #918 > > | Failure of exn: exn\n",
- "00:01:48 \u001B[90mv\u001B[0m #919 > > | Changed of path: string * content: string option\n",
- "00:01:48 \u001B[90mv\u001B[0m #920 > > | Created of path: string * content: string option\n",
- "00:01:48 \u001B[90mv\u001B[0m #921 > > | Deleted of path: string\n",
- "00:01:48 \u001B[90mv\u001B[0m #922 > > | Renamed of oldPath: string * (string * string option)\n",
- "00:01:48 \u001B[90mv\u001B[0m #923 > >\n",
- "00:01:48 \u001B[90mv\u001B[0m #924 > >\n",
- "00:01:48 \u001B[90mv\u001B[0m #925 > > let inline watchDirectoryWithFilter filter shouldReadContent path =\n",
- "00:01:48 \u001B[90mv\u001B[0m #926 > > let fullPath = path |> System.IO.Path.GetFullPath\n",
- "00:01:48 \u001B[90mv\u001B[0m #927 > > let _locals () = $\"filter: {filter} / {_locals ()}\"\n",
- "00:01:48 \u001B[90mv\u001B[0m #928 > >\n",
- "00:01:48 \u001B[90mv\u001B[0m #929 > > let watcher =\n",
- "00:01:48 \u001B[90mv\u001B[0m #930 > > new System.IO.FileSystemWatcher (\n",
- "00:01:48 \u001B[90mv\u001B[0m #931 > > Path = fullPath,\n",
- "00:01:48 \u001B[90mv\u001B[0m #932 > > NotifyFilter = filter,\n",
- "00:01:48 \u001B[90mv\u001B[0m #933 > > EnableRaisingEvents = true,\n",
- "00:01:48 \u001B[90mv\u001B[0m #934 > > IncludeSubdirectories = true\n",
- "00:01:48 \u001B[90mv\u001B[0m #935 > > )\n",
- "00:01:48 \u001B[90mv\u001B[0m #936 > >\n",
- "00:01:48 \u001B[90mv\u001B[0m #937 > > let inline getEventPath (path : string) =\n",
- "00:01:48 \u001B[90mv\u001B[0m #938 > > path |> SpiralSm.trim |> SpiralSm.replace fullPath \"\" |>\n",
- "00:01:48 \u001B[90mv\u001B[0m #939 > > SpiralSm.trim_start [[| '/'; '\\\\' |]]\n",
- "00:01:48 \u001B[90mv\u001B[0m #940 > >\n",
- "00:01:48 \u001B[90mv\u001B[0m #941 > > let inline ticks () =\n",
- "00:01:48 \u001B[90mv\u001B[0m #942 > > System.DateTime.UtcNow.Ticks\n",
- "00:01:48 \u001B[90mv\u001B[0m #943 > >\n",
- "00:01:48 \u001B[90mv\u001B[0m #944 > > let changedStream =\n",
- "00:01:48 \u001B[90mv\u001B[0m #945 > > AsyncSeq.subscribeEvent\n",
- "00:01:48 \u001B[90mv\u001B[0m #946 > > watcher.Changed\n",
- "00:01:48 \u001B[90mv\u001B[0m #947 > > (fun event ->\n",
- "00:01:48 \u001B[90mv\u001B[0m #948 > > ticks (),\n",
- "00:01:48 \u001B[90mv\u001B[0m #949 > > [[ FileSystemChange.Changed (getEventPath event.FullPath, None)\n",
- "00:01:48 \u001B[90mv\u001B[0m #950 > > ]]\n",
- "00:01:48 \u001B[90mv\u001B[0m #951 > > )\n",
- "00:01:48 \u001B[90mv\u001B[0m #952 > >\n",
- "00:01:48 \u001B[90mv\u001B[0m #953 > > let deletedStream =\n",
- "00:01:48 \u001B[90mv\u001B[0m #954 > > AsyncSeq.subscribeEvent\n",
- "00:01:48 \u001B[90mv\u001B[0m #955 > > watcher.Deleted\n",
- "00:01:48 \u001B[90mv\u001B[0m #956 > > (fun event ->\n",
- "00:01:48 \u001B[90mv\u001B[0m #957 > > ticks (),\n",
- "00:01:48 \u001B[90mv\u001B[0m #958 > > [[ FileSystemChange.Deleted (getEventPath event.FullPath) ]]\n",
- "00:01:48 \u001B[90mv\u001B[0m #959 > > )\n",
- "00:01:48 \u001B[90mv\u001B[0m #960 > >\n",
- "00:01:48 \u001B[90mv\u001B[0m #961 > > let createdStream =\n",
- "00:01:48 \u001B[90mv\u001B[0m #962 > > AsyncSeq.subscribeEvent\n",
- "00:01:48 \u001B[90mv\u001B[0m #963 > > watcher.Created\n",
- "00:01:48 \u001B[90mv\u001B[0m #964 > > (fun event ->\n",
- "00:01:48 \u001B[90mv\u001B[0m #965 > > let path = getEventPath event.FullPath\n",
- "00:01:48 \u001B[90mv\u001B[0m #966 > > ticks (), [[\n",
- "00:01:48 \u001B[90mv\u001B[0m #967 > > FileSystemChange.Created (path, None)\n",
- "00:01:48 \u001B[90mv\u001B[0m #968 > > if SpiralPlatform.is_windows () then\n",
- "00:01:48 \u001B[90mv\u001B[0m #969 > > FileSystemChange.Changed (path, None)\n",
- "00:01:48 \u001B[90mv\u001B[0m #970 > > ]])\n",
- "00:01:48 \u001B[90mv\u001B[0m #971 > >\n",
- "00:01:48 \u001B[90mv\u001B[0m #972 > > let renamedStream =\n",
- "00:01:48 \u001B[90mv\u001B[0m #973 > > AsyncSeq.subscribeEvent\n",
- "00:01:48 \u001B[90mv\u001B[0m #974 > > watcher.Renamed\n",
- "00:01:48 \u001B[90mv\u001B[0m #975 > > (fun event ->\n",
- "00:01:48 \u001B[90mv\u001B[0m #976 > > ticks (), [[\n",
- "00:01:48 \u001B[90mv\u001B[0m #977 > > FileSystemChange.Renamed (\n",
- "00:01:48 \u001B[90mv\u001B[0m #978 > > getEventPath event.OldFullPath,\n",
- "00:01:48 \u001B[90mv\u001B[0m #979 > > (getEventPath event.FullPath, None)\n",
- "00:01:48 \u001B[90mv\u001B[0m #980 > > )\n",
- "00:01:48 \u001B[90mv\u001B[0m #981 > > ]]\n",
- "00:01:48 \u001B[90mv\u001B[0m #982 > > )\n",
- "00:01:48 \u001B[90mv\u001B[0m #983 > >\n",
- "00:01:48 \u001B[90mv\u001B[0m #984 > > let failureStream =\n",
- "00:01:48 \u001B[90mv\u001B[0m #985 > > AsyncSeq.subscribeEvent\n",
- "00:01:48 \u001B[90mv\u001B[0m #986 > > watcher.Error\n",
- "00:01:48 \u001B[90mv\u001B[0m #987 > > (fun event -> ticks (), [[ FileSystemChange.Failure\n",
- "00:01:48 \u001B[90mv\u001B[0m #988 > > (event.GetException ()) ]])\n",
- "00:01:48 \u001B[90mv\u001B[0m #989 > >\n",
- "00:01:48 \u001B[90mv\u001B[0m #990 > > let stream =\n",
- "00:01:48 \u001B[90mv\u001B[0m #991 > > [[\n",
- "00:01:48 \u001B[90mv\u001B[0m #992 > > changedStream\n",
- "00:01:48 \u001B[90mv\u001B[0m #993 > > deletedStream\n",
- "00:01:48 \u001B[90mv\u001B[0m #994 > > createdStream\n",
- "00:01:48 \u001B[90mv\u001B[0m #995 > > renamedStream\n",
- "00:01:48 \u001B[90mv\u001B[0m #996 > > failureStream\n",
- "00:01:48 \u001B[90mv\u001B[0m #997 > > ]]\n",
- "00:01:48 \u001B[90mv\u001B[0m #998 > > |> FSharp.Control.AsyncSeq.mergeAll\n",
- "00:01:48 \u001B[90mv\u001B[0m #999 > > |> FSharp.Control.AsyncSeq.map (fun (t, events) ->\n",
- "00:01:48 \u001B[90mv\u001B[0m #1000 > > events\n",
- "00:01:48 \u001B[90mv\u001B[0m #1001 > > |> List.fold\n",
- "00:01:48 \u001B[90mv\u001B[0m #1002 > > (fun (i, events) event ->\n",
- "00:01:48 \u001B[90mv\u001B[0m #1003 > > i + 1L,\n",
- "00:01:48 \u001B[90mv\u001B[0m #1004 > > (t + i, event) :: events)\n",
- "00:01:48 \u001B[90mv\u001B[0m #1005 > > (0L, [[]])\n",
- "00:01:48 \u001B[90mv\u001B[0m #1006 > > |> snd\n",
- "00:01:48 \u001B[90mv\u001B[0m #1007 > > |> List.rev\n",
- "00:01:48 \u001B[90mv\u001B[0m #1008 > > )\n",
- "00:01:48 \u001B[90mv\u001B[0m #1009 > > |> FSharp.Control.AsyncSeq.concatSeq\n",
- "00:01:48 \u001B[90mv\u001B[0m #1010 > > |> FSharp.Control.AsyncSeq.mapAsyncParallel (fun (t, event) -> async {\n",
- "00:01:48 \u001B[90mv\u001B[0m #1011 > > match shouldReadContent event, event with\n",
- "00:01:48 \u001B[90mv\u001B[0m #1012 > > | true, FileSystemChange.Changed (path, _) ->\n",
- "00:01:48 \u001B[90mv\u001B[0m #1013 > > do! Async.Sleep 5\n",
- "00:01:48 \u001B[90mv\u001B[0m #1014 > > let! content = fullPath > path |>\n",
- "00:01:48 \u001B[90mv\u001B[0m #1015 > > SpiralFileSystem.read_all_text_retry_async\n",
- "00:01:48 \u001B[90mv\u001B[0m #1016 > > return t, FileSystemChange.Changed (path, content)\n",
- "00:01:48 \u001B[90mv\u001B[0m #1017 > > | true, FileSystemChange.Created (path, _) ->\n",
- "00:01:48 \u001B[90mv\u001B[0m #1018 > > do! Async.Sleep 5\n",
- "00:01:48 \u001B[90mv\u001B[0m #1019 > > let! content = fullPath > path |>\n",
- "00:01:48 \u001B[90mv\u001B[0m #1020 > > SpiralFileSystem.read_all_text_retry_async\n",
- "00:01:48 \u001B[90mv\u001B[0m #1021 > > return t, FileSystemChange.Created (path, content)\n",
- "00:01:48 \u001B[90mv\u001B[0m #1022 > > | true, FileSystemChange.Renamed (oldPath, (newPath, _)) ->\n",
- "00:01:48 \u001B[90mv\u001B[0m #1023 > > let! content = fullPath > newPath |>\n",
- "00:01:48 \u001B[90mv\u001B[0m #1024 > > SpiralFileSystem.read_all_text_retry_async\n",
- "00:01:48 \u001B[90mv\u001B[0m #1025 > > return t, FileSystemChange.Renamed (oldPath, (newPath, content))\n",
- "00:01:48 \u001B[90mv\u001B[0m #1026 > > | _ -> return t, event\n",
- "00:01:48 \u001B[90mv\u001B[0m #1027 > > })\n",
- "00:01:48 \u001B[90mv\u001B[0m #1028 > >\n",
- "00:01:48 \u001B[90mv\u001B[0m #1029 > > let disposable =\n",
- "00:01:48 \u001B[90mv\u001B[0m #1030 > > new_disposable (fun () ->\n",
- "00:01:48 \u001B[90mv\u001B[0m #1031 > > trace Debug (fun () -> \"FileSystem.watchWithFilter / Disposing watch\n",
- "00:01:48 \u001B[90mv\u001B[0m #1032 > > stream\") _locals\n",
- "00:01:48 \u001B[90mv\u001B[0m #1033 > > watcher.EnableRaisingEvents <- false\n",
- "00:01:48 \u001B[90mv\u001B[0m #1034 > > watcher.Dispose ()\n",
- "00:01:48 \u001B[90mv\u001B[0m #1035 > > )\n",
- "00:01:48 \u001B[90mv\u001B[0m #1036 > >\n",
- "00:01:48 \u001B[90mv\u001B[0m #1037 > > stream, disposable\n",
- "00:01:48 \u001B[90mv\u001B[0m #1038 > >\n",
- "00:01:48 \u001B[90mv\u001B[0m #1039 > > let inline watchDirectory path =\n",
- "00:01:48 \u001B[90mv\u001B[0m #1040 > > watchDirectoryWithFilter\n",
- "00:01:48 \u001B[90mv\u001B[0m #1041 > > (System.IO.NotifyFilters.FileName\n",
- "00:01:48 \u001B[90mv\u001B[0m #1042 > > // ||| System.IO.NotifyFilters.DirectoryName\n",
- "00:01:48 \u001B[90mv\u001B[0m #1043 > > // ||| System.IO.NotifyFilters.Attributes\n",
- "00:01:48 \u001B[90mv\u001B[0m #1044 > > //// ||| System.IO.NotifyFilters.Size\n",
- "00:01:48 \u001B[90mv\u001B[0m #1045 > > ||| System.IO.NotifyFilters.LastWrite\n",
- "00:01:48 \u001B[90mv\u001B[0m #1046 > > //// ||| System.IO.NotifyFilters.LastAccess\n",
- "00:01:48 \u001B[90mv\u001B[0m #1047 > > // ||| System.IO.NotifyFilters.CreationTime\n",
- "00:01:48 \u001B[90mv\u001B[0m #1048 > > // ||| System.IO.NotifyFilters.Security\n",
- "00:01:48 \u001B[90mv\u001B[0m #1049 > > )\n",
- "00:01:48 \u001B[90mv\u001B[0m #1050 > > path\n",
- "00:01:49 \u001B[90mv\u001B[0m #1051 > >\n",
- "00:01:49 \u001B[90mv\u001B[0m #1052 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:01:49 \u001B[90mv\u001B[0m #1053 > > \u001B[38;2;146;146;178m│\u001B[0m ### testEventsRaw (test)\n",
- "00:01:49 \u001B[90mv\u001B[0m #1054 > >\n",
- "00:01:49 \u001B[90mv\u001B[0m #1055 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:01:49 \u001B[90mv\u001B[0m #1056 > > //// test\n",
- "00:01:49 \u001B[90mv\u001B[0m #1057 > >\n",
- "00:01:49 \u001B[90mv\u001B[0m #1058 > > let inline testEventsRaw\n",
- "00:01:49 \u001B[90mv\u001B[0m #1059 > > (watchFn : (_ -> bool) -> string -> FSharp.Control.AsyncSeq > FileSystemChange> * IDisposable)\n",
- "00:01:49 \u001B[90mv\u001B[0m #1061 > > write\n",
- "00:01:49 \u001B[90mv\u001B[0m #1062 > > =\n",
- "00:01:49 \u001B[90mv\u001B[0m #1063 > > let struct (tempDir, tempDisposable) =\n",
- "00:01:49 \u001B[90mv\u001B[0m #1064 > > \"FileSystem.testEventsRaw\"\n",
- "00:01:49 \u001B[90mv\u001B[0m #1065 > > |> SpiralCrypto.hash_text\n",
- "00:01:49 \u001B[90mv\u001B[0m #1066 > > |> SpiralFileSystem.create_temp_dir'\n",
- "00:01:49 \u001B[90mv\u001B[0m #1067 > > let stream, disposable = watchFn (fun _ -> true) tempDir\n",
- "00:01:49 \u001B[90mv\u001B[0m #1068 > >\n",
- "00:01:49 \u001B[90mv\u001B[0m #1069 > > let events = System.Collections.Concurrent.ConcurrentBag ()\n",
- "00:01:49 \u001B[90mv\u001B[0m #1070 > >\n",
- "00:01:49 \u001B[90mv\u001B[0m #1071 > > let inline iter () =\n",
- "00:01:49 \u001B[90mv\u001B[0m #1072 > > stream\n",
- "00:01:49 \u001B[90mv\u001B[0m #1073 > > |> FSharp.Control.AsyncSeq.iterAsyncParallel (fun event -> async {\n",
- "00:01:49 \u001B[90mv\u001B[0m #1074 > > events.Add event })\n",
- "00:01:49 \u001B[90mv\u001B[0m #1075 > >\n",
- "00:01:49 \u001B[90mv\u001B[0m #1076 > > let run = async {\n",
- "00:01:49 \u001B[90mv\u001B[0m #1077 > > let! _ = iter () |> Async.StartChild\n",
- "00:01:49 \u001B[90mv\u001B[0m #1078 > > do! Async.Sleep 250\n",
- "00:01:49 \u001B[90mv\u001B[0m #1079 > > return! write tempDir\n",
- "00:01:49 \u001B[90mv\u001B[0m #1080 > > }\n",
- "00:01:49 \u001B[90mv\u001B[0m #1081 > >\n",
- "00:01:49 \u001B[90mv\u001B[0m #1082 > > try\n",
- "00:01:49 \u001B[90mv\u001B[0m #1083 > > run\n",
- "00:01:49 \u001B[90mv\u001B[0m #1084 > > |> Async.runWithTimeout 60000\n",
- "00:01:49 \u001B[90mv\u001B[0m #1085 > > |> _assertEqual (Some ())\n",
- "00:01:49 \u001B[90mv\u001B[0m #1086 > > finally\n",
- "00:01:49 \u001B[90mv\u001B[0m #1087 > > disposable.Dispose ()\n",
- "00:01:49 \u001B[90mv\u001B[0m #1088 > > tempDisposable.Dispose ()\n",
- "00:01:49 \u001B[90mv\u001B[0m #1089 > >\n",
- "00:01:49 \u001B[90mv\u001B[0m #1090 > > let eventsLog =\n",
- "00:01:49 \u001B[90mv\u001B[0m #1091 > > events\n",
- "00:01:49 \u001B[90mv\u001B[0m #1092 > > |> Seq.toList\n",
- "00:01:49 \u001B[90mv\u001B[0m #1093 > > |> List.sortBy fst\n",
- "00:01:49 \u001B[90mv\u001B[0m #1094 > > |> List.fold\n",
- "00:01:49 \u001B[90mv\u001B[0m #1095 > > (fun (prev, acc) (ticks, event) ->\n",
- "00:01:49 \u001B[90mv\u001B[0m #1096 > > ticks, (ticks, (if prev = 0L then 0L else ticks - prev), event)\n",
- "00:01:49 \u001B[90mv\u001B[0m #1097 > > :: acc\n",
- "00:01:49 \u001B[90mv\u001B[0m #1098 > > )\n",
- "00:01:49 \u001B[90mv\u001B[0m #1099 > > (0L, [[]])\n",
- "00:01:49 \u001B[90mv\u001B[0m #1100 > > |> snd\n",
- "00:01:49 \u001B[90mv\u001B[0m #1101 > > |> List.rev\n",
- "00:01:49 \u001B[90mv\u001B[0m #1102 > > |> List.map (fun (diff, n, event) -> $\"{n} / {diff} / {event}\" |>\n",
- "00:01:49 \u001B[90mv\u001B[0m #1103 > > SpiralSm.ellipsis_end 100L)\n",
- "00:01:49 \u001B[90mv\u001B[0m #1104 > > |> SpiralSm.concat \"\\n\"\n",
- "00:01:49 \u001B[90mv\u001B[0m #1105 > > let _locals () = $\"eventsLog: \\n{eventsLog} / {_locals ()}\"\n",
- "00:01:49 \u001B[90mv\u001B[0m #1106 > > trace Debug (fun () -> \"FileSystem.testEventsRaw\") _locals\n",
- "00:01:49 \u001B[90mv\u001B[0m #1107 > >\n",
- "00:01:49 \u001B[90mv\u001B[0m #1108 > > events\n",
- "00:01:49 \u001B[90mv\u001B[0m #1109 > > |> Seq.toList\n",
- "00:01:49 \u001B[90mv\u001B[0m #1110 > > |> List.sortBy fst\n",
- "00:01:49 \u001B[90mv\u001B[0m #1111 > > |> List.map snd\n",
- "00:01:49 \u001B[90mv\u001B[0m #1112 > > |> List.fold\n",
- "00:01:49 \u001B[90mv\u001B[0m #1113 > > (fun acc event ->\n",
- "00:01:49 \u001B[90mv\u001B[0m #1114 > > match acc, event with\n",
- "00:01:49 \u001B[90mv\u001B[0m #1115 > > | FileSystemChange.Changed (lastPath, Some lastContent) as lastEvent\n",
- "00:01:49 \u001B[90mv\u001B[0m #1116 > > :: acc,\n",
- "00:01:49 \u001B[90mv\u001B[0m #1117 > > FileSystemChange.Changed (path, Some content)\n",
- "00:01:49 \u001B[90mv\u001B[0m #1118 > > when lastPath = path && content |> SpiralSm.starts_with\n",
- "00:01:49 \u001B[90mv\u001B[0m #1119 > > lastContent\n",
- "00:01:49 \u001B[90mv\u001B[0m #1120 > > ->\n",
- "00:01:49 \u001B[90mv\u001B[0m #1121 > > event :: acc\n",
- "00:01:49 \u001B[90mv\u001B[0m #1122 > > | _ -> event :: acc\n",
- "00:01:49 \u001B[90mv\u001B[0m #1123 > > )\n",
- "00:01:49 \u001B[90mv\u001B[0m #1124 > > [[]]\n",
- "00:01:49 \u001B[90mv\u001B[0m #1125 > > |> List.rev\n",
- "00:01:49 \u001B[90mv\u001B[0m #1126 > >\n",
- "00:01:49 \u001B[90mv\u001B[0m #1127 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:01:49 \u001B[90mv\u001B[0m #1128 > > \u001B[38;2;146;146;178m│\u001B[0m #### fast (test)\n",
- "00:01:49 \u001B[90mv\u001B[0m #1129 > >\n",
- "00:01:49 \u001B[90mv\u001B[0m #1130 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:01:49 \u001B[90mv\u001B[0m #1131 > > //// test\n",
- "00:01:49 \u001B[90mv\u001B[0m #1132 > >\n",
- "00:01:49 \u001B[90mv\u001B[0m #1133 > > let inline write path = async {\n",
- "00:01:49 \u001B[90mv\u001B[0m #1134 > > let n = 2\n",
- "00:01:49 \u001B[90mv\u001B[0m #1135 > >\n",
- "00:01:49 \u001B[90mv\u001B[0m #1136 > > for i = 1 to n do\n",
- "00:01:49 \u001B[90mv\u001B[0m #1137 > > do! $\"a{i}\" |> SpiralFileSystem.write_all_text_async (path >\n",
- "00:01:49 \u001B[90mv\u001B[0m #1138 > > $\"file{i}.txt\")\n",
- "00:01:49 \u001B[90mv\u001B[0m #1139 > >\n",
- "00:01:49 \u001B[90mv\u001B[0m #1140 > > do! Async.Sleep 250\n",
- "00:01:49 \u001B[90mv\u001B[0m #1141 > >\n",
- "00:01:49 \u001B[90mv\u001B[0m #1142 > > for i = 1 to n do\n",
- "00:01:49 \u001B[90mv\u001B[0m #1143 > > do! $\"b{i}\" |> SpiralFileSystem.write_all_text_async (path >\n",
- "00:01:49 \u001B[90mv\u001B[0m #1144 > > $\"file{i}.txt\")\n",
- "00:01:49 \u001B[90mv\u001B[0m #1145 > >\n",
- "00:01:49 \u001B[90mv\u001B[0m #1146 > > do! Async.Sleep 250\n",
- "00:01:49 \u001B[90mv\u001B[0m #1147 > >\n",
- "00:01:49 \u001B[90mv\u001B[0m #1148 > > for i = 1 to n do\n",
- "00:01:49 \u001B[90mv\u001B[0m #1149 > > do! path > $\"file{i}.txt\" |> SpiralFileSystem.move_file_async (path\n",
- "00:01:49 \u001B[90mv\u001B[0m #1150 > > > $\"file_{i}.txt\") |> Async.Ignore\n",
- "00:01:49 \u001B[90mv\u001B[0m #1151 > >\n",
- "00:01:49 \u001B[90mv\u001B[0m #1152 > > do! Async.Sleep 250\n",
- "00:01:49 \u001B[90mv\u001B[0m #1153 > >\n",
- "00:01:49 \u001B[90mv\u001B[0m #1154 > > for i = 1 to n do\n",
- "00:01:49 \u001B[90mv\u001B[0m #1155 > > do! $\"c{i}\" |> SpiralFileSystem.write_all_text_async (path >\n",
- "00:01:49 \u001B[90mv\u001B[0m #1156 > > $\"file_{i}.txt\")\n",
- "00:01:49 \u001B[90mv\u001B[0m #1157 > >\n",
- "00:01:49 \u001B[90mv\u001B[0m #1158 > > do! Async.Sleep 250\n",
- "00:01:49 \u001B[90mv\u001B[0m #1159 > >\n",
- "00:01:49 \u001B[90mv\u001B[0m #1160 > > for i = 1 to n do\n",
- "00:01:49 \u001B[90mv\u001B[0m #1161 > > do! SpiralFileSystem.delete_file_async (path > $\"file_{i}.txt\") |>\n",
- "00:01:49 \u001B[90mv\u001B[0m #1162 > > Async.Ignore\n",
- "00:01:49 \u001B[90mv\u001B[0m #1163 > >\n",
- "00:01:49 \u001B[90mv\u001B[0m #1164 > > do! Async.Sleep 250\n",
- "00:01:49 \u001B[90mv\u001B[0m #1165 > > }\n",
- "00:01:49 \u001B[90mv\u001B[0m #1166 > >\n",
- "00:01:49 \u001B[90mv\u001B[0m #1167 > > let inline run () =\n",
- "00:01:49 \u001B[90mv\u001B[0m #1168 > > let events = testEventsRaw watchDirectory write\n",
- "00:01:49 \u001B[90mv\u001B[0m #1169 > >\n",
- "00:01:49 \u001B[90mv\u001B[0m #1170 > > events\n",
- "00:01:49 \u001B[90mv\u001B[0m #1171 > > |> _sequenceEqual [[\n",
- "00:01:49 \u001B[90mv\u001B[0m #1172 > > FileSystemChange.Created (\"file1.txt\", Some \"a1\")\n",
- "00:01:49 \u001B[90mv\u001B[0m #1173 > > FileSystemChange.Changed (\"file1.txt\", Some \"a1\")\n",
- "00:01:49 \u001B[90mv\u001B[0m #1174 > > FileSystemChange.Created (\"file2.txt\", Some \"a2\")\n",
- "00:01:49 \u001B[90mv\u001B[0m #1175 > > FileSystemChange.Changed (\"file2.txt\", Some \"a2\")\n",
- "00:01:49 \u001B[90mv\u001B[0m #1176 > >\n",
- "00:01:49 \u001B[90mv\u001B[0m #1177 > > FileSystemChange.Changed (\"file1.txt\", Some \"b1\")\n",
- "00:01:49 \u001B[90mv\u001B[0m #1178 > > FileSystemChange.Changed (\"file2.txt\", Some \"b2\")\n",
- "00:01:49 \u001B[90mv\u001B[0m #1179 > >\n",
- "00:01:49 \u001B[90mv\u001B[0m #1180 > > FileSystemChange.Renamed (\"file1.txt\", (\"file_1.txt\", Some \"b1\"))\n",
- "00:01:49 \u001B[90mv\u001B[0m #1181 > > FileSystemChange.Renamed (\"file2.txt\", (\"file_2.txt\", Some \"b2\"))\n",
- "00:01:49 \u001B[90mv\u001B[0m #1182 > >\n",
- "00:01:49 \u001B[90mv\u001B[0m #1183 > > FileSystemChange.Changed (\"file_1.txt\", Some \"c1\")\n",
- "00:01:49 \u001B[90mv\u001B[0m #1184 > > FileSystemChange.Changed (\"file_2.txt\", Some \"c2\")\n",
- "00:01:49 \u001B[90mv\u001B[0m #1185 > >\n",
- "00:01:49 \u001B[90mv\u001B[0m #1186 > > FileSystemChange.Deleted \"file_1.txt\"\n",
- "00:01:49 \u001B[90mv\u001B[0m #1187 > > FileSystemChange.Deleted \"file_2.txt\"\n",
- "00:01:49 \u001B[90mv\u001B[0m #1188 > > ]]\n",
- "00:01:49 \u001B[90mv\u001B[0m #1189 > >\n",
- "00:01:49 \u001B[90mv\u001B[0m #1190 > > run\n",
- "00:01:49 \u001B[90mv\u001B[0m #1191 > > |> retry_fn 3\n",
- "00:01:49 \u001B[90mv\u001B[0m #1192 > > |> _assertEqual (Some ())\n",
- "00:01:53 \u001B[90mv\u001B[0m #1193 > >\n",
- "00:01:53 \u001B[90mv\u001B[0m #1194 > > ── [ 3.52s - stdout ] ──────────────────────────────────────────────────────────\n",
- "00:01:53 \u001B[90mv\u001B[0m #1195 > > \u001B[38;2;38;140;38m│\u001B[0m Some ()\n",
- "00:01:53 \u001B[90mv\u001B[0m #1196 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:01:53 \u001B[90mv\u001B[0m #1197 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:06 \u001B[94md\u001B[0m #1 FileSystem.watchWithFilter / Disposing\n",
- "00:01:53 \u001B[90mv\u001B[0m #1198 > > watch stream / filter: FileName, LastWrite\n",
- "00:01:53 \u001B[90mv\u001B[0m #1199 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:06 \u001B[94md\u001B[0m #2 FileSystem.testEventsRaw / eventsLog:\n",
- "00:01:53 \u001B[90mv\u001B[0m #1200 > > \u001B[38;2;38;140;38m│\u001B[0m 0 / 638723834507838576 / Created (\"file1.txt\", Some \"a1\")\n",
- "00:01:53 \u001B[90mv\u001B[0m #1201 > > \u001B[38;2;38;140;38m│\u001B[0m 1 / 638723834507838577 / Changed (\"file1.txt\", Some \"a1\")\n",
- "00:01:53 \u001B[90mv\u001B[0m #1202 > > \u001B[38;2;38;140;38m│\u001B[0m 22914 / 638723834507861491 / Changed (\"file1.txt\", Some \"a1\")\n",
- "00:01:53 \u001B[90mv\u001B[0m #1203 > > \u001B[38;2;38;140;38m│\u001B[0m 1570 / 638723834507863061 / Created (\"file2.txt\", Some \"a2\")\n",
- "00:01:53 \u001B[90mv\u001B[0m #1204 > > \u001B[38;2;38;140;38m│\u001B[0m 1 / 638723834507863062 / Changed (\"file2.txt\", Some \"a2\")\n",
- "00:01:53 \u001B[90mv\u001B[0m #1205 > > \u001B[38;2;38;140;38m│\u001B[0m 46 / 638723834507863108 / Changed (\"file2.txt\", Some \"a2\")\n",
- "00:01:53 \u001B[90mv\u001B[0m #1206 > > \u001B[38;2;38;140;38m│\u001B[0m 2406209 / 638723834510269317 / Changed (\"file1.txt\", Some\n",
- "00:01:53 \u001B[90mv\u001B[0m #1207 > > \"b1\")\n",
- "00:01:53 \u001B[90mv\u001B[0m #1208 > > \u001B[38;2;38;140;38m│\u001B[0m 2427 / 638723834510271744 / Changed (\"file1.txt\", Some \"b1\")\n",
- "00:01:53 \u001B[90mv\u001B[0m #1209 > > \u001B[38;2;38;140;38m│\u001B[0m 10769 / 638723834510282513 / Changed (\"file2.txt\", Some \"b2\")\n",
- "00:01:53 \u001B[90mv\u001B[0m #1210 > > \u001B[38;2;38;140;38m│\u001B[0m 2485 / 638723834510284998 / Changed (\"file2.txt\", Some \"b2\")\n",
- "00:01:53 \u001B[90mv\u001B[0m #1211 > > \u001B[38;2;38;140;38m│\u001B[0m 2541693 / 638723834512826691 / Renamed (\"file1.txt\",\n",
- "00:01:53 \u001B[90mv\u001B[0m #1212 > > (\"file_1.txt\", Some \"b1\"))\n",
- "00:01:53 \u001B[90mv\u001B[0m #1213 > > \u001B[38;2;38;140;38m│\u001B[0m 13970 / 638723834512840661 / Renamed (\"file2.txt\",\n",
- "00:01:53 \u001B[90mv\u001B[0m #1214 > > (\"file_2.txt\", Some \"b2\"))\n",
- "00:01:53 \u001B[90mv\u001B[0m #1215 > > \u001B[38;2;38;140;38m│\u001B[0m 2455222 / 638723834515295883 / Changed (\"file_1.txt\", Some\n",
- "00:01:53 \u001B[90mv\u001B[0m #1216 > > \"c1\")\n",
- "00:01:53 \u001B[90mv\u001B[0m #1217 > > \u001B[38;2;38;140;38m│\u001B[0m 4553 / 638723834515300436 / Changed (\"file_1.txt\", Some \"c1\")\n",
- "00:01:53 \u001B[90mv\u001B[0m #1218 > > \u001B[38;2;38;140;38m│\u001B[0m 21099 / 638723834515321535 / Changed (\"file_2.txt\", Some\n",
- "00:01:53 \u001B[90mv\u001B[0m #1219 > > \"c2\")\n",
- "00:01:53 \u001B[90mv\u001B[0m #1220 > > \u001B[38;2;38;140;38m│\u001B[0m 3605 / 638723834515325140 / Changed (\"file_2.txt\", Some \"c2\")\n",
- "00:01:53 \u001B[90mv\u001B[0m #1221 > > \u001B[38;2;38;140;38m│\u001B[0m 2471305 / 638723834517796445 / Deleted \"file_1.txt\"\n",
- "00:01:53 \u001B[90mv\u001B[0m #1222 > > \u001B[38;2;38;140;38m│\u001B[0m 3668 / 638723834517800113 / Deleted \"file_2.txt\"\n",
- "00:01:53 \u001B[90mv\u001B[0m #1223 > > \u001B[38;2;38;140;38m│\u001B[0m [Created (\"file1.txt\", Some \"a1\"); Changed (\"file1.txt\", Some\n",
- "00:01:53 \u001B[90mv\u001B[0m #1224 > > \"a1\"); Created (\"file2.txt\", Some \"a2\");\n",
- "00:01:53 \u001B[90mv\u001B[0m #1225 > > \u001B[38;2;38;140;38m│\u001B[0m Changed (\"file2.txt\", Some \"a2\"); Changed (\"file1.txt\", Some\n",
- "00:01:53 \u001B[90mv\u001B[0m #1226 > > \"b1\"); Changed (\"file2.txt\", Some \"b2\");\n",
- "00:01:53 \u001B[90mv\u001B[0m #1227 > > \u001B[38;2;38;140;38m│\u001B[0m Renamed (\"file1.txt\", (\"file_1.txt\", Some \"b1\")); Renamed\n",
- "00:01:53 \u001B[90mv\u001B[0m #1228 > > (\"file2.txt\", (\"file_2.txt\", Some \"b2\"));\n",
- "00:01:53 \u001B[90mv\u001B[0m #1229 > > \u001B[38;2;38;140;38m│\u001B[0m Changed (\"file_1.txt\", Some \"c1\"); Changed (\"file_2.txt\",\n",
- "00:01:53 \u001B[90mv\u001B[0m #1230 > > Some \"c2\"); Deleted \"file_1.txt\"; Deleted \"file_2.txt\"]\n",
- "00:01:53 \u001B[90mv\u001B[0m #1231 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:01:53 \u001B[90mv\u001B[0m #1232 > > \u001B[38;2;38;140;38m│\u001B[0m Some ()\n",
- "00:01:53 \u001B[90mv\u001B[0m #1233 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:01:53 \u001B[90mv\u001B[0m #1234 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:01:53 \u001B[90mv\u001B[0m #1235 > >\n",
- "00:01:53 \u001B[90mv\u001B[0m #1236 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:01:53 \u001B[90mv\u001B[0m #1237 > > \u001B[38;2;146;146;178m│\u001B[0m #### slow (test)\n",
- "00:01:53 \u001B[90mv\u001B[0m #1238 > >\n",
- "00:01:53 \u001B[90mv\u001B[0m #1239 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:01:53 \u001B[90mv\u001B[0m #1240 > > //// test\n",
- "00:01:53 \u001B[90mv\u001B[0m #1241 > >\n",
- "00:01:53 \u001B[90mv\u001B[0m #1242 > > let inline write path = async {\n",
- "00:01:53 \u001B[90mv\u001B[0m #1243 > > let n = 2\n",
- "00:01:53 \u001B[90mv\u001B[0m #1244 > >\n",
- "00:01:53 \u001B[90mv\u001B[0m #1245 > > let contents =\n",
- "00:01:53 \u001B[90mv\u001B[0m #1246 > > [[ 1 .. n ]]\n",
- "00:01:53 \u001B[90mv\u001B[0m #1247 > > |> List.map (string >> String.replicate 1_000_000)\n",
- "00:01:53 \u001B[90mv\u001B[0m #1248 > >\n",
- "00:01:53 \u001B[90mv\u001B[0m #1249 > > for i = 1 to n do\n",
- "00:01:53 \u001B[90mv\u001B[0m #1250 > > do! $\"{contents.[[i - 1]]}a\" |> SpiralFileSystem.write_all_text_async\n",
- "00:01:53 \u001B[90mv\u001B[0m #1251 > > (path > $\"file{i}.txt\")\n",
- "00:01:53 \u001B[90mv\u001B[0m #1252 > >\n",
- "00:01:53 \u001B[90mv\u001B[0m #1253 > > do! Async.Sleep 1500\n",
- "00:01:53 \u001B[90mv\u001B[0m #1254 > >\n",
- "00:01:53 \u001B[90mv\u001B[0m #1255 > > for i = 1 to n do\n",
- "00:01:53 \u001B[90mv\u001B[0m #1256 > > do! $\"{contents.[[i - 1]]}b\" |> SpiralFileSystem.write_all_text_async\n",
- "00:01:53 \u001B[90mv\u001B[0m #1257 > > (path > $\"file{i}.txt\")\n",
- "00:01:53 \u001B[90mv\u001B[0m #1258 > >\n",
- "00:01:53 \u001B[90mv\u001B[0m #1259 > > do! Async.Sleep 1500\n",
- "00:01:53 \u001B[90mv\u001B[0m #1260 > >\n",
- "00:01:53 \u001B[90mv\u001B[0m #1261 > > for i = 1 to n do\n",
- "00:01:53 \u001B[90mv\u001B[0m #1262 > > do! path > $\"file{i}.txt\" |> SpiralFileSystem.move_file_async (path\n",
- "00:01:53 \u001B[90mv\u001B[0m #1263 > > > $\"file_{i}.txt\") |> Async.Ignore\n",
- "00:01:53 \u001B[90mv\u001B[0m #1264 > >\n",
- "00:01:53 \u001B[90mv\u001B[0m #1265 > > do! Async.Sleep 1500\n",
- "00:01:53 \u001B[90mv\u001B[0m #1266 > >\n",
- "00:01:53 \u001B[90mv\u001B[0m #1267 > > for i = 1 to n do\n",
- "00:01:53 \u001B[90mv\u001B[0m #1268 > > do! $\"{contents.[[i - 1]]}c\" |> SpiralFileSystem.write_all_text_async\n",
- "00:01:53 \u001B[90mv\u001B[0m #1269 > > (path > $\"file_{i}.txt\")\n",
- "00:01:53 \u001B[90mv\u001B[0m #1270 > >\n",
- "00:01:53 \u001B[90mv\u001B[0m #1271 > > do! Async.Sleep 1500\n",
- "00:01:53 \u001B[90mv\u001B[0m #1272 > >\n",
- "00:01:53 \u001B[90mv\u001B[0m #1273 > > for i = 1 to n do\n",
- "00:01:53 \u001B[90mv\u001B[0m #1274 > > do! SpiralFileSystem.delete_file_async (path > $\"file_{i}.txt\") |>\n",
- "00:01:53 \u001B[90mv\u001B[0m #1275 > > Async.Ignore\n",
- "00:01:53 \u001B[90mv\u001B[0m #1276 > >\n",
- "00:01:53 \u001B[90mv\u001B[0m #1277 > > do! Async.Sleep 1500\n",
- "00:01:53 \u001B[90mv\u001B[0m #1278 > > }\n",
- "00:01:53 \u001B[90mv\u001B[0m #1279 > >\n",
- "00:01:53 \u001B[90mv\u001B[0m #1280 > > let inline run () =\n",
- "00:01:53 \u001B[90mv\u001B[0m #1281 > > let events =\n",
- "00:01:53 \u001B[90mv\u001B[0m #1282 > > testEventsRaw watchDirectory write\n",
- "00:01:53 \u001B[90mv\u001B[0m #1283 > > |> List.map (function\n",
- "00:01:53 \u001B[90mv\u001B[0m #1284 > > | FileSystemChange.Changed (path, Some content) ->\n",
- "00:01:53 \u001B[90mv\u001B[0m #1285 > > FileSystemChange.Changed (path, content |> Seq.distinct |>\n",
- "00:01:53 \u001B[90mv\u001B[0m #1286 > > Seq.map string |> SpiralSm.concat \"\" |> Some)\n",
- "00:01:53 \u001B[90mv\u001B[0m #1287 > > | FileSystemChange.Created (path, Some content) ->\n",
- "00:01:53 \u001B[90mv\u001B[0m #1288 > > FileSystemChange.Created (path, content |> Seq.distinct |>\n",
- "00:01:53 \u001B[90mv\u001B[0m #1289 > > Seq.map string |> SpiralSm.concat \"\" |> Some)\n",
- "00:01:53 \u001B[90mv\u001B[0m #1290 > > | FileSystemChange.Renamed (oldPath, (newPath, Some content)) ->\n",
- "00:01:53 \u001B[90mv\u001B[0m #1291 > > FileSystemChange.Renamed (\n",
- "00:01:53 \u001B[90mv\u001B[0m #1292 > > oldPath,\n",
- "00:01:53 \u001B[90mv\u001B[0m #1293 > > (newPath, content |> Seq.distinct |> Seq.map string |>\n",
- "00:01:53 \u001B[90mv\u001B[0m #1294 > > SpiralSm.concat \"\" |> Some)\n",
- "00:01:53 \u001B[90mv\u001B[0m #1295 > > )\n",
- "00:01:53 \u001B[90mv\u001B[0m #1296 > > | event -> event\n",
- "00:01:53 \u001B[90mv\u001B[0m #1297 > > )\n",
- "00:01:53 \u001B[90mv\u001B[0m #1298 > >\n",
- "00:01:53 \u001B[90mv\u001B[0m #1299 > > events\n",
- "00:01:53 \u001B[90mv\u001B[0m #1300 > > |> _sequenceEqual [[\n",
- "00:01:53 \u001B[90mv\u001B[0m #1301 > > FileSystemChange.Created (\"file1.txt\", Some \"1a\")\n",
- "00:01:53 \u001B[90mv\u001B[0m #1302 > > FileSystemChange.Changed (\"file1.txt\", Some \"1a\")\n",
- "00:01:53 \u001B[90mv\u001B[0m #1303 > > FileSystemChange.Created (\"file2.txt\", Some \"2a\")\n",
- "00:01:53 \u001B[90mv\u001B[0m #1304 > > FileSystemChange.Changed (\"file2.txt\", Some \"2a\")\n",
- "00:01:53 \u001B[90mv\u001B[0m #1305 > >\n",
- "00:01:53 \u001B[90mv\u001B[0m #1306 > > FileSystemChange.Changed (\"file1.txt\", Some \"1b\")\n",
- "00:01:53 \u001B[90mv\u001B[0m #1307 > > FileSystemChange.Changed (\"file2.txt\", Some \"2b\")\n",
- "00:01:53 \u001B[90mv\u001B[0m #1308 > >\n",
- "00:01:53 \u001B[90mv\u001B[0m #1309 > > FileSystemChange.Renamed (\"file1.txt\", (\"file_1.txt\", Some \"1b\"))\n",
- "00:01:53 \u001B[90mv\u001B[0m #1310 > > FileSystemChange.Renamed (\"file2.txt\", (\"file_2.txt\", Some \"2b\"))\n",
- "00:01:53 \u001B[90mv\u001B[0m #1311 > >\n",
- "00:01:53 \u001B[90mv\u001B[0m #1312 > > FileSystemChange.Changed (\"file_1.txt\", Some \"1c\")\n",
- "00:01:53 \u001B[90mv\u001B[0m #1313 > > FileSystemChange.Changed (\"file_2.txt\", Some \"2c\")\n",
- "00:01:53 \u001B[90mv\u001B[0m #1314 > >\n",
- "00:01:53 \u001B[90mv\u001B[0m #1315 > > FileSystemChange.Deleted \"file_1.txt\"\n",
- "00:01:53 \u001B[90mv\u001B[0m #1316 > > FileSystemChange.Deleted \"file_2.txt\"\n",
- "00:01:53 \u001B[90mv\u001B[0m #1317 > > ]]\n",
- "00:01:53 \u001B[90mv\u001B[0m #1318 > >\n",
- "00:01:53 \u001B[90mv\u001B[0m #1319 > > run\n",
- "00:01:53 \u001B[90mv\u001B[0m #1320 > > |> retry_fn 5\n",
- "00:01:53 \u001B[90mv\u001B[0m #1321 > > |> _assertEqual (Some ())\n",
- "00:02:03 \u001B[90mv\u001B[0m #1322 > >\n",
- "00:02:03 \u001B[90mv\u001B[0m #1323 > > ── [ 10.54s - stdout ] ─────────────────────────────────────────────────────────\n",
- "00:02:03 \u001B[90mv\u001B[0m #1324 > > \u001B[38;2;38;140;38m│\u001B[0m Some ()\n",
- "00:02:03 \u001B[90mv\u001B[0m #1325 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:02:03 \u001B[90mv\u001B[0m #1326 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:16 \u001B[94md\u001B[0m #3 FileSystem.watchWithFilter / Disposing\n",
- "00:02:03 \u001B[90mv\u001B[0m #1327 > > watch stream / filter: FileName, LastWrite\n",
- "00:02:03 \u001B[90mv\u001B[0m #1328 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:16 \u001B[94md\u001B[0m #4 FileSystem.testEventsRaw / eventsLog:\n",
- "00:02:03 \u001B[90mv\u001B[0m #1329 > > \u001B[38;2;38;140;38m│\u001B[0m 0 / 638723834545432786 / Created\n",
- "00:02:03 \u001B[90mv\u001B[0m #1330 > > \u001B[38;2;38;140;38m│\u001B[0m (\"file1.txt\",\n",
- "00:02:03 \u001B[90mv\u001B[0m #1331 > > \u001B[38;2;38;140;38m│\u001B[0m ...11111111111111111111111111111111111111111111111a\")\n",
- "00:02:03 \u001B[90mv\u001B[0m #1332 > > \u001B[38;2;38;140;38m│\u001B[0m 1 / 638723834545432787 / Changed\n",
- "00:02:03 \u001B[90mv\u001B[0m #1333 > > \u001B[38;2;38;140;38m│\u001B[0m (\"file1.txt\",\n",
- "00:02:03 \u001B[90mv\u001B[0m #1334 > > \u001B[38;2;38;140;38m│\u001B[0m ...11111111111111111111111111111111111111111111111a\")\n",
- "00:02:03 \u001B[90mv\u001B[0m #1335 > > \u001B[38;2;38;140;38m│\u001B[0m 67168 / 638723834545499955 / Changed\n",
- "00:02:03 \u001B[90mv\u001B[0m #1336 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:02:03 \u001B[90mv\u001B[0m #1337 > > (\"file1.txt...11111111111111111111111111111111111111111111111a\")\n",
- "00:02:03 \u001B[90mv\u001B[0m #1338 > > \u001B[38;2;38;140;38m│\u001B[0m 247993 / 638723834545747948 / Created\n",
- "00:02:03 \u001B[90mv\u001B[0m #1339 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:02:03 \u001B[90mv\u001B[0m #1340 > > (\"file2.tx...22222222222222222222222222222222222222222222222a\")\n",
- "00:02:03 \u001B[90mv\u001B[0m #1341 > > \u001B[38;2;38;140;38m│\u001B[0m 1 / 638723834545747949 / Changed\n",
- "00:02:03 \u001B[90mv\u001B[0m #1342 > > \u001B[38;2;38;140;38m│\u001B[0m (\"file2.txt\",\n",
- "00:02:03 \u001B[90mv\u001B[0m #1343 > > \u001B[38;2;38;140;38m│\u001B[0m ...22222222222222222222222222222222222222222222222a\")\n",
- "00:02:03 \u001B[90mv\u001B[0m #1344 > > \u001B[38;2;38;140;38m│\u001B[0m 71702 / 638723834545819651 / Changed\n",
- "00:02:03 \u001B[90mv\u001B[0m #1345 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:02:03 \u001B[90mv\u001B[0m #1346 > > (\"file2.txt...22222222222222222222222222222222222222222222222a\")\n",
- "00:02:03 \u001B[90mv\u001B[0m #1347 > > \u001B[38;2;38;140;38m│\u001B[0m 15040640 / 638723834560860291 / Changed\n",
- "00:02:03 \u001B[90mv\u001B[0m #1348 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:02:03 \u001B[90mv\u001B[0m #1349 > > (\"file1....11111111111111111111111111111111111111111111111b\")\n",
- "00:02:03 \u001B[90mv\u001B[0m #1350 > > \u001B[38;2;38;140;38m│\u001B[0m 149798 / 638723834561010089 / Changed\n",
- "00:02:03 \u001B[90mv\u001B[0m #1351 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:02:03 \u001B[90mv\u001B[0m #1352 > > (\"file1.tx...11111111111111111111111111111111111111111111111b\")\n",
- "00:02:03 \u001B[90mv\u001B[0m #1353 > > \u001B[38;2;38;140;38m│\u001B[0m 43119 / 638723834561053208 / Changed\n",
- "00:02:03 \u001B[90mv\u001B[0m #1354 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:02:03 \u001B[90mv\u001B[0m #1355 > > (\"file2.txt...22222222222222222222222222222222222222222222222b\")\n",
- "00:02:03 \u001B[90mv\u001B[0m #1356 > > \u001B[38;2;38;140;38m│\u001B[0m 94456 / 638723834561147664 / Changed\n",
- "00:02:03 \u001B[90mv\u001B[0m #1357 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:02:03 \u001B[90mv\u001B[0m #1358 > > (\"file2.txt...22222222222222222222222222222222222222222222222b\")\n",
- "00:02:03 \u001B[90mv\u001B[0m #1359 > > \u001B[38;2;38;140;38m│\u001B[0m 14961274 / 638723834576108938 / Renamed\n",
- "00:02:03 \u001B[90mv\u001B[0m #1360 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:02:03 \u001B[90mv\u001B[0m #1361 > > (\"file1....1111111111111111111111111111111111111111111111b\"))\n",
- "00:02:03 \u001B[90mv\u001B[0m #1362 > > \u001B[38;2;38;140;38m│\u001B[0m 3257 / 638723834576112195 / Renamed\n",
- "00:02:03 \u001B[90mv\u001B[0m #1363 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:02:03 \u001B[90mv\u001B[0m #1364 > > (\"file2.txt\"...2222222222222222222222222222222222222222222222b\"))\n",
- "00:02:03 \u001B[90mv\u001B[0m #1365 > > \u001B[38;2;38;140;38m│\u001B[0m 15006169 / 638723834591118364 / Changed\n",
- "00:02:03 \u001B[90mv\u001B[0m #1366 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:02:03 \u001B[90mv\u001B[0m #1367 > > (\"file_1...11111111111111111111111111111111111111111111111c\")\n",
- "00:02:03 \u001B[90mv\u001B[0m #1368 > > \u001B[38;2;38;140;38m│\u001B[0m 163138 / 638723834591281502 / Changed\n",
- "00:02:03 \u001B[90mv\u001B[0m #1369 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:02:03 \u001B[90mv\u001B[0m #1370 > > (\"file_1.t...11111111111111111111111111111111111111111111111c\")\n",
- "00:02:03 \u001B[90mv\u001B[0m #1371 > > \u001B[38;2;38;140;38m│\u001B[0m 52575 / 638723834591334077 / Changed\n",
- "00:02:03 \u001B[90mv\u001B[0m #1372 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:02:03 \u001B[90mv\u001B[0m #1373 > > (\"file_2.tx...22222222222222222222222222222222222222222222222c\")\n",
- "00:02:03 \u001B[90mv\u001B[0m #1374 > > \u001B[38;2;38;140;38m│\u001B[0m 90837 / 638723834591424914 / Changed\n",
- "00:02:03 \u001B[90mv\u001B[0m #1375 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:02:03 \u001B[90mv\u001B[0m #1376 > > (\"file_2.tx...22222222222222222222222222222222222222222222222c\")\n",
- "00:02:03 \u001B[90mv\u001B[0m #1377 > > \u001B[38;2;38;140;38m│\u001B[0m 15146009 / 638723834606570923 / Deleted \"file_1.txt\"\n",
- "00:02:03 \u001B[90mv\u001B[0m #1378 > > \u001B[38;2;38;140;38m│\u001B[0m 6929 / 638723834606577852 / Deleted \"file_2.txt\"\n",
- "00:02:03 \u001B[90mv\u001B[0m #1379 > > \u001B[38;2;38;140;38m│\u001B[0m [Created (\"file1.txt\", Some \"1a\"); Changed (\"file1.txt\", Some\n",
- "00:02:03 \u001B[90mv\u001B[0m #1380 > > \"1a\"); Created (\"file2.txt\", Some \"2a\");\n",
- "00:02:03 \u001B[90mv\u001B[0m #1381 > > \u001B[38;2;38;140;38m│\u001B[0m Changed (\"file2.txt\", Some \"2a\"); Changed (\"file1.txt\", Some\n",
- "00:02:03 \u001B[90mv\u001B[0m #1382 > > \"1b\"); Changed (\"file2.txt\", Some \"2b\");\n",
- "00:02:03 \u001B[90mv\u001B[0m #1383 > > \u001B[38;2;38;140;38m│\u001B[0m Renamed (\"file1.txt\", (\"file_1.txt\", Some \"1b\")); Renamed\n",
- "00:02:03 \u001B[90mv\u001B[0m #1384 > > (\"file2.txt\", (\"file_2.txt\", Some \"2b\"));\n",
- "00:02:03 \u001B[90mv\u001B[0m #1385 > > \u001B[38;2;38;140;38m│\u001B[0m Changed (\"file_1.txt\", Some \"1c\"); Changed (\"file_2.txt\",\n",
- "00:02:03 \u001B[90mv\u001B[0m #1386 > > Some \"2c\"); Deleted \"file_1.txt\"; Deleted \"file_2.txt\"]\n",
- "00:02:03 \u001B[90mv\u001B[0m #1387 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:02:03 \u001B[90mv\u001B[0m #1388 > > \u001B[38;2;38;140;38m│\u001B[0m Some ()\n",
- "00:02:03 \u001B[90mv\u001B[0m #1389 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:02:03 \u001B[90mv\u001B[0m #1390 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:02:03 \u001B[90mv\u001B[0m #1391 > >\n",
- "00:02:03 \u001B[90mv\u001B[0m #1392 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:02:03 \u001B[90mv\u001B[0m #1393 > > \u001B[38;2;146;146;178m│\u001B[0m ### testEventsSorted (test)\n",
- "00:02:03 \u001B[90mv\u001B[0m #1394 > >\n",
- "00:02:03 \u001B[90mv\u001B[0m #1395 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:02:03 \u001B[90mv\u001B[0m #1396 > > //// test\n",
- "00:02:03 \u001B[90mv\u001B[0m #1397 > >\n",
- "00:02:03 \u001B[90mv\u001B[0m #1398 > > let inline sortEvent event =\n",
- "00:02:03 \u001B[90mv\u001B[0m #1399 > > match event with\n",
- "00:02:03 \u001B[90mv\u001B[0m #1400 > > | FileSystemChange.Failure _ -> 0\n",
- "00:02:03 \u001B[90mv\u001B[0m #1401 > > | FileSystemChange.Created _ -> 1\n",
- "00:02:03 \u001B[90mv\u001B[0m #1402 > > | FileSystemChange.Changed _ -> 2\n",
- "00:02:03 \u001B[90mv\u001B[0m #1403 > > | FileSystemChange.Renamed (_oldPath, _) -> 3\n",
- "00:02:03 \u001B[90mv\u001B[0m #1404 > > | FileSystemChange.Deleted _ -> 4\n",
- "00:02:03 \u001B[90mv\u001B[0m #1405 > >\n",
- "00:02:03 \u001B[90mv\u001B[0m #1406 > > let inline formatEvents events =\n",
- "00:02:03 \u001B[90mv\u001B[0m #1407 > > events\n",
- "00:02:03 \u001B[90mv\u001B[0m #1408 > > |> Seq.toList\n",
- "00:02:03 \u001B[90mv\u001B[0m #1409 > > |> List.sortBy (snd >> sortEvent)\n",
- "00:02:03 \u001B[90mv\u001B[0m #1410 > > |> List.choose (fun (ticks, event) ->\n",
- "00:02:03 \u001B[90mv\u001B[0m #1411 > > match event with\n",
- "00:02:03 \u001B[90mv\u001B[0m #1412 > > | FileSystemChange.Failure _ ->\n",
- "00:02:03 \u001B[90mv\u001B[0m #1413 > > None\n",
- "00:02:03 \u001B[90mv\u001B[0m #1414 > > | FileSystemChange.Changed (path, _) ->\n",
- "00:02:03 \u001B[90mv\u001B[0m #1415 > > Some (ticks, System.IO.Path.GetFileName path, nameof\n",
- "00:02:03 \u001B[90mv\u001B[0m #1416 > > FileSystemChangeType.Changed)\n",
- "00:02:03 \u001B[90mv\u001B[0m #1417 > > | FileSystemChange.Created (path, _) ->\n",
- "00:02:03 \u001B[90mv\u001B[0m #1418 > > Some (ticks, System.IO.Path.GetFileName path, nameof\n",
- "00:02:03 \u001B[90mv\u001B[0m #1419 > > FileSystemChangeType.Created)\n",
- "00:02:03 \u001B[90mv\u001B[0m #1420 > > | FileSystemChange.Deleted path ->\n",
- "00:02:03 \u001B[90mv\u001B[0m #1421 > > Some (ticks, System.IO.Path.GetFileName path, nameof\n",
- "00:02:03 \u001B[90mv\u001B[0m #1422 > > FileSystemChangeType.Deleted)\n",
- "00:02:03 \u001B[90mv\u001B[0m #1423 > > | FileSystemChange.Renamed (_oldPath, (path, _)) ->\n",
- "00:02:03 \u001B[90mv\u001B[0m #1424 > > Some (ticks, System.IO.Path.GetFileName path, nameof\n",
- "00:02:03 \u001B[90mv\u001B[0m #1425 > > FileSystemChangeType.Renamed)\n",
- "00:02:03 \u001B[90mv\u001B[0m #1426 > > )\n",
- "00:02:03 \u001B[90mv\u001B[0m #1427 > > |> List.sortBy (fun (_, path, _) -> path)\n",
- "00:02:03 \u001B[90mv\u001B[0m #1428 > > |> List.distinctBy (fun (_, path, event) -> path, event)\n",
- "00:02:03 \u001B[90mv\u001B[0m #1429 > >\n",
- "00:02:03 \u001B[90mv\u001B[0m #1430 > > let inline testEventsSorted\n",
- "00:02:03 \u001B[90mv\u001B[0m #1431 > > (watchFn : string -> FSharp.Control.AsyncSeq *\n",
- "00:02:03 \u001B[90mv\u001B[0m #1432 > > IDisposable)\n",
- "00:02:03 \u001B[90mv\u001B[0m #1433 > > write\n",
- "00:02:03 \u001B[90mv\u001B[0m #1434 > > =\n",
- "00:02:03 \u001B[90mv\u001B[0m #1435 > > let struct (tempDir, tempDisposable) =\n",
- "00:02:03 \u001B[90mv\u001B[0m #1436 > > \"FileSystem.testEventsSorted\"\n",
- "00:02:03 \u001B[90mv\u001B[0m #1437 > > |> SpiralCrypto.hash_text\n",
- "00:02:03 \u001B[90mv\u001B[0m #1438 > > |> SpiralFileSystem.create_temp_dir'\n",
- "00:02:03 \u001B[90mv\u001B[0m #1439 > > let stream, disposable = watchFn tempDir\n",
- "00:02:03 \u001B[90mv\u001B[0m #1440 > >\n",
- "00:02:03 \u001B[90mv\u001B[0m #1441 > > let events = System.Collections.Concurrent.ConcurrentBag ()\n",
- "00:02:03 \u001B[90mv\u001B[0m #1442 > >\n",
- "00:02:03 \u001B[90mv\u001B[0m #1443 > > let inline iter () =\n",
- "00:02:03 \u001B[90mv\u001B[0m #1444 > > stream\n",
- "00:02:03 \u001B[90mv\u001B[0m #1445 > > |> FSharp.Control.AsyncSeq.iterAsyncParallel (fun event -> async {\n",
- "00:02:03 \u001B[90mv\u001B[0m #1446 > > events.Add event })\n",
- "00:02:03 \u001B[90mv\u001B[0m #1447 > >\n",
- "00:02:03 \u001B[90mv\u001B[0m #1448 > > let run = async {\n",
- "00:02:03 \u001B[90mv\u001B[0m #1449 > > let! _ = iter () |> Async.StartChild\n",
- "00:02:03 \u001B[90mv\u001B[0m #1450 > > do! Async.Sleep 250\n",
- "00:02:03 \u001B[90mv\u001B[0m #1451 > > return! write tempDir\n",
- "00:02:03 \u001B[90mv\u001B[0m #1452 > > }\n",
- "00:02:03 \u001B[90mv\u001B[0m #1453 > >\n",
- "00:02:03 \u001B[90mv\u001B[0m #1454 > > try\n",
- "00:02:03 \u001B[90mv\u001B[0m #1455 > > run\n",
- "00:02:03 \u001B[90mv\u001B[0m #1456 > > |> Async.runWithTimeout 5000\n",
- "00:02:03 \u001B[90mv\u001B[0m #1457 > > |> _assertEqual (Some ())\n",
- "00:02:03 \u001B[90mv\u001B[0m #1458 > > finally\n",
- "00:02:03 \u001B[90mv\u001B[0m #1459 > > disposable.Dispose ()\n",
- "00:02:03 \u001B[90mv\u001B[0m #1460 > > tempDisposable.Dispose ()\n",
- "00:02:03 \u001B[90mv\u001B[0m #1461 > >\n",
- "00:02:03 \u001B[90mv\u001B[0m #1462 > > let events = formatEvents events\n",
- "00:02:03 \u001B[90mv\u001B[0m #1463 > >\n",
- "00:02:03 \u001B[90mv\u001B[0m #1464 > > let eventMap =\n",
- "00:02:03 \u001B[90mv\u001B[0m #1465 > > events\n",
- "00:02:03 \u001B[90mv\u001B[0m #1466 > > |> List.map (fun (ticks, path, event) -> path, (event, ticks))\n",
- "00:02:03 \u001B[90mv\u001B[0m #1467 > > |> List.groupBy fst\n",
- "00:02:03 \u001B[90mv\u001B[0m #1468 > > |> List.map (fun (path, events) ->\n",
- "00:02:03 \u001B[90mv\u001B[0m #1469 > > let event, _ticks =\n",
- "00:02:03 \u001B[90mv\u001B[0m #1470 > > events\n",
- "00:02:03 \u001B[90mv\u001B[0m #1471 > > |> List.map snd\n",
- "00:02:03 \u001B[90mv\u001B[0m #1472 > > |> List.sortByDescending snd\n",
- "00:02:03 \u001B[90mv\u001B[0m #1473 > > |> List.head\n",
- "00:02:03 \u001B[90mv\u001B[0m #1474 > >\n",
- "00:02:03 \u001B[90mv\u001B[0m #1475 > > path, event\n",
- "00:02:03 \u001B[90mv\u001B[0m #1476 > > )\n",
- "00:02:03 \u001B[90mv\u001B[0m #1477 > > |> Map.ofList\n",
- "00:02:03 \u001B[90mv\u001B[0m #1478 > >\n",
- "00:02:03 \u001B[90mv\u001B[0m #1479 > > let eventList =\n",
- "00:02:03 \u001B[90mv\u001B[0m #1480 > > events\n",
- "00:02:03 \u001B[90mv\u001B[0m #1481 > > |> List.map (fun (_ticks, path, event) -> path, event)\n",
- "00:02:03 \u001B[90mv\u001B[0m #1482 > >\n",
- "00:02:03 \u001B[90mv\u001B[0m #1483 > > eventMap, eventList\n",
- "00:02:04 \u001B[90mv\u001B[0m #1484 > >\n",
- "00:02:04 \u001B[90mv\u001B[0m #1485 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:02:04 \u001B[90mv\u001B[0m #1486 > > \u001B[38;2;146;146;178m│\u001B[0m #### create and delete (test)\n",
- "00:02:04 \u001B[90mv\u001B[0m #1487 > >\n",
- "00:02:04 \u001B[90mv\u001B[0m #1488 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:02:04 \u001B[90mv\u001B[0m #1489 > > //// test\n",
- "00:02:04 \u001B[90mv\u001B[0m #1490 > >\n",
- "00:02:04 \u001B[90mv\u001B[0m #1491 > > let inline write path = async {\n",
- "00:02:04 \u001B[90mv\u001B[0m #1492 > > let n = 3\n",
- "00:02:04 \u001B[90mv\u001B[0m #1493 > >\n",
- "00:02:04 \u001B[90mv\u001B[0m #1494 > > for i = 1 to n do\n",
- "00:02:04 \u001B[90mv\u001B[0m #1495 > > do! $\"{i}\" |> SpiralFileSystem.write_all_text_async (path >\n",
- "00:02:04 \u001B[90mv\u001B[0m #1496 > > $\"file{i}.txt\")\n",
- "00:02:04 \u001B[90mv\u001B[0m #1497 > >\n",
- "00:02:04 \u001B[90mv\u001B[0m #1498 > > for i = 1 to n do\n",
- "00:02:04 \u001B[90mv\u001B[0m #1499 > > do! SpiralFileSystem.delete_file_async (path > $\"file{i}.txt\") |>\n",
- "00:02:04 \u001B[90mv\u001B[0m #1500 > > Async.Ignore\n",
- "00:02:04 \u001B[90mv\u001B[0m #1501 > >\n",
- "00:02:04 \u001B[90mv\u001B[0m #1502 > > do! Async.Sleep 150\n",
- "00:02:04 \u001B[90mv\u001B[0m #1503 > > }\n",
- "00:02:04 \u001B[90mv\u001B[0m #1504 > >\n",
- "00:02:04 \u001B[90mv\u001B[0m #1505 > > let inline run () =\n",
- "00:02:04 \u001B[90mv\u001B[0m #1506 > > let eventMap, eventList = testEventsSorted (watchDirectory (fun _ -> false))\n",
- "00:02:04 \u001B[90mv\u001B[0m #1507 > > write\n",
- "00:02:04 \u001B[90mv\u001B[0m #1508 > >\n",
- "00:02:04 \u001B[90mv\u001B[0m #1509 > > [[\n",
- "00:02:04 \u001B[90mv\u001B[0m #1510 > > \"file1.txt\", nameof FileSystemChangeType.Created\n",
- "00:02:04 \u001B[90mv\u001B[0m #1511 > > \"file1.txt\", nameof FileSystemChangeType.Changed\n",
- "00:02:04 \u001B[90mv\u001B[0m #1512 > > \"file1.txt\", nameof FileSystemChangeType.Deleted\n",
- "00:02:04 \u001B[90mv\u001B[0m #1513 > >\n",
- "00:02:04 \u001B[90mv\u001B[0m #1514 > > \"file2.txt\", nameof FileSystemChangeType.Created\n",
- "00:02:04 \u001B[90mv\u001B[0m #1515 > > \"file2.txt\", nameof FileSystemChangeType.Changed\n",
- "00:02:04 \u001B[90mv\u001B[0m #1516 > > \"file2.txt\", nameof FileSystemChangeType.Deleted\n",
- "00:02:04 \u001B[90mv\u001B[0m #1517 > >\n",
- "00:02:04 \u001B[90mv\u001B[0m #1518 > > \"file3.txt\", nameof FileSystemChangeType.Created\n",
- "00:02:04 \u001B[90mv\u001B[0m #1519 > > \"file3.txt\", nameof FileSystemChangeType.Changed\n",
- "00:02:04 \u001B[90mv\u001B[0m #1520 > > \"file3.txt\", nameof FileSystemChangeType.Deleted\n",
- "00:02:04 \u001B[90mv\u001B[0m #1521 > > ]]\n",
- "00:02:04 \u001B[90mv\u001B[0m #1522 > > |> _sequenceEqual eventList\n",
- "00:02:04 \u001B[90mv\u001B[0m #1523 > >\n",
- "00:02:04 \u001B[90mv\u001B[0m #1524 > > [[\n",
- "00:02:04 \u001B[90mv\u001B[0m #1525 > > \"file1.txt\", nameof FileSystemChangeType.Deleted\n",
- "00:02:04 \u001B[90mv\u001B[0m #1526 > > \"file2.txt\", nameof FileSystemChangeType.Deleted\n",
- "00:02:04 \u001B[90mv\u001B[0m #1527 > > \"file3.txt\", nameof FileSystemChangeType.Deleted\n",
- "00:02:04 \u001B[90mv\u001B[0m #1528 > > ]]\n",
- "00:02:04 \u001B[90mv\u001B[0m #1529 > > |> Map.ofList\n",
- "00:02:04 \u001B[90mv\u001B[0m #1530 > > |> _sequenceEqual eventMap\n",
- "00:02:04 \u001B[90mv\u001B[0m #1531 > >\n",
- "00:02:04 \u001B[90mv\u001B[0m #1532 > > run\n",
- "00:02:04 \u001B[90mv\u001B[0m #1533 > > |> retry_fn 3\n",
- "00:02:04 \u001B[90mv\u001B[0m #1534 > > |> _assertEqual (Some ())\n",
- "00:02:06 \u001B[90mv\u001B[0m #1535 > >\n",
- "00:02:06 \u001B[90mv\u001B[0m #1536 > > ── [ 1.83s - stdout ] ──────────────────────────────────────────────────────────\n",
- "00:02:06 \u001B[90mv\u001B[0m #1537 > > \u001B[38;2;38;140;38m│\u001B[0m Some ()\n",
- "00:02:06 \u001B[90mv\u001B[0m #1538 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:02:06 \u001B[90mv\u001B[0m #1539 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:19 \u001B[94md\u001B[0m #5 FileSystem.watchWithFilter / Disposing\n",
- "00:02:06 \u001B[90mv\u001B[0m #1540 > > watch stream / filter: FileName, LastWrite\n",
- "00:02:06 \u001B[90mv\u001B[0m #1541 > > \u001B[38;2;38;140;38m│\u001B[0m [(\"file1.txt\", \"Created\"); (\"file1.txt\", \"Changed\");\n",
- "00:02:06 \u001B[90mv\u001B[0m #1542 > > (\"file1.txt\", \"Deleted\"); (\"file2.txt\", \"Created\");\n",
- "00:02:06 \u001B[90mv\u001B[0m #1543 > > \u001B[38;2;38;140;38m│\u001B[0m (\"file2.txt\", \"Changed\"); (\"file2.txt\", \"Deleted\");\n",
- "00:02:06 \u001B[90mv\u001B[0m #1544 > > (\"file3.txt\", \"Created\"); (\"file3.txt\", \"Changed\");\n",
- "00:02:06 \u001B[90mv\u001B[0m #1545 > > \u001B[38;2;38;140;38m│\u001B[0m (\"file3.txt\", \"Deleted\")]\n",
- "00:02:06 \u001B[90mv\u001B[0m #1546 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:02:06 \u001B[90mv\u001B[0m #1547 > > \u001B[38;2;38;140;38m│\u001B[0m map [(\"file1.txt\", \"Deleted\"); (\"file2.txt\", \"Deleted\");\n",
- "00:02:06 \u001B[90mv\u001B[0m #1548 > > (\"file3.txt\", \"Deleted\")]\n",
- "00:02:06 \u001B[90mv\u001B[0m #1549 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:02:06 \u001B[90mv\u001B[0m #1550 > > \u001B[38;2;38;140;38m│\u001B[0m Some ()\n",
- "00:02:06 \u001B[90mv\u001B[0m #1551 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:02:06 \u001B[90mv\u001B[0m #1552 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:02:06 \u001B[90mv\u001B[0m #1553 > >\n",
- "00:02:06 \u001B[90mv\u001B[0m #1554 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:02:06 \u001B[90mv\u001B[0m #1555 > > \u001B[38;2;146;146;178m│\u001B[0m #### change (test)\n",
- "00:02:06 \u001B[90mv\u001B[0m #1556 > >\n",
- "00:02:06 \u001B[90mv\u001B[0m #1557 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:02:06 \u001B[90mv\u001B[0m #1558 > > //// test\n",
- "00:02:06 \u001B[90mv\u001B[0m #1559 > >\n",
- "00:02:06 \u001B[90mv\u001B[0m #1560 > > let inline write path = async {\n",
- "00:02:06 \u001B[90mv\u001B[0m #1561 > > let n = 2\n",
- "00:02:06 \u001B[90mv\u001B[0m #1562 > >\n",
- "00:02:06 \u001B[90mv\u001B[0m #1563 > > for i = 1 to n do\n",
- "00:02:06 \u001B[90mv\u001B[0m #1564 > > do! $\"{i}\" |> SpiralFileSystem.write_all_text_async (path >\n",
- "00:02:06 \u001B[90mv\u001B[0m #1565 > > $\"file{i}.txt\")\n",
- "00:02:06 \u001B[90mv\u001B[0m #1566 > >\n",
- "00:02:06 \u001B[90mv\u001B[0m #1567 > > for i = 1 to n do\n",
- "00:02:06 \u001B[90mv\u001B[0m #1568 > > do! \"\" |> SpiralFileSystem.write_all_text_async (path >\n",
- "00:02:06 \u001B[90mv\u001B[0m #1569 > > $\"file{i}.txt\")\n",
- "00:02:06 \u001B[90mv\u001B[0m #1570 > >\n",
- "00:02:06 \u001B[90mv\u001B[0m #1571 > > for i = 1 to n do\n",
- "00:02:06 \u001B[90mv\u001B[0m #1572 > > do! SpiralFileSystem.delete_file_async (path > $\"file{i}.txt\") |>\n",
- "00:02:06 \u001B[90mv\u001B[0m #1573 > > Async.Ignore\n",
- "00:02:06 \u001B[90mv\u001B[0m #1574 > >\n",
- "00:02:06 \u001B[90mv\u001B[0m #1575 > > do! Async.Sleep 150\n",
- "00:02:06 \u001B[90mv\u001B[0m #1576 > > }\n",
- "00:02:06 \u001B[90mv\u001B[0m #1577 > >\n",
- "00:02:06 \u001B[90mv\u001B[0m #1578 > > let inline run () =\n",
- "00:02:06 \u001B[90mv\u001B[0m #1579 > > let eventMap, eventList = testEventsSorted (watchDirectory (fun _ -> false))\n",
- "00:02:06 \u001B[90mv\u001B[0m #1580 > > write\n",
- "00:02:06 \u001B[90mv\u001B[0m #1581 > >\n",
- "00:02:06 \u001B[90mv\u001B[0m #1582 > > [[\n",
- "00:02:06 \u001B[90mv\u001B[0m #1583 > > \"file1.txt\", nameof FileSystemChangeType.Created\n",
- "00:02:06 \u001B[90mv\u001B[0m #1584 > > \"file1.txt\", nameof FileSystemChangeType.Changed\n",
- "00:02:06 \u001B[90mv\u001B[0m #1585 > > \"file1.txt\", nameof FileSystemChangeType.Deleted\n",
- "00:02:06 \u001B[90mv\u001B[0m #1586 > >\n",
- "00:02:06 \u001B[90mv\u001B[0m #1587 > > \"file2.txt\", nameof FileSystemChangeType.Created\n",
- "00:02:06 \u001B[90mv\u001B[0m #1588 > > \"file2.txt\", nameof FileSystemChangeType.Changed\n",
- "00:02:06 \u001B[90mv\u001B[0m #1589 > > \"file2.txt\", nameof FileSystemChangeType.Deleted\n",
- "00:02:06 \u001B[90mv\u001B[0m #1590 > > ]]\n",
- "00:02:06 \u001B[90mv\u001B[0m #1591 > > |> _sequenceEqual eventList\n",
- "00:02:06 \u001B[90mv\u001B[0m #1592 > >\n",
- "00:02:06 \u001B[90mv\u001B[0m #1593 > > [[\n",
- "00:02:06 \u001B[90mv\u001B[0m #1594 > > \"file1.txt\", nameof FileSystemChangeType.Deleted\n",
- "00:02:06 \u001B[90mv\u001B[0m #1595 > > \"file2.txt\", nameof FileSystemChangeType.Deleted\n",
- "00:02:06 \u001B[90mv\u001B[0m #1596 > > ]]\n",
- "00:02:06 \u001B[90mv\u001B[0m #1597 > > |> Map.ofList\n",
- "00:02:06 \u001B[90mv\u001B[0m #1598 > > |> _sequenceEqual eventMap\n",
- "00:02:06 \u001B[90mv\u001B[0m #1599 > >\n",
- "00:02:06 \u001B[90mv\u001B[0m #1600 > > run\n",
- "00:02:06 \u001B[90mv\u001B[0m #1601 > > |> retry_fn 3\n",
- "00:02:06 \u001B[90mv\u001B[0m #1602 > > |> _assertEqual (Some ())\n",
- "00:02:08 \u001B[90mv\u001B[0m #1603 > >\n",
- "00:02:08 \u001B[90mv\u001B[0m #1604 > > ── [ 2.07s - stdout ] ──────────────────────────────────────────────────────────\n",
- "00:02:08 \u001B[90mv\u001B[0m #1605 > > \u001B[38;2;38;140;38m│\u001B[0m Some ()\n",
- "00:02:08 \u001B[90mv\u001B[0m #1606 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:02:08 \u001B[90mv\u001B[0m #1607 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:21 \u001B[94md\u001B[0m #6 FileSystem.watchWithFilter / Disposing\n",
- "00:02:08 \u001B[90mv\u001B[0m #1608 > > watch stream / filter: FileName, LastWrite\n",
- "00:02:08 \u001B[90mv\u001B[0m #1609 > > \u001B[38;2;38;140;38m│\u001B[0m [(\"file1.txt\", \"Created\"); (\"file1.txt\", \"Changed\");\n",
- "00:02:08 \u001B[90mv\u001B[0m #1610 > > (\"file1.txt\", \"Deleted\"); (\"file2.txt\", \"Created\");\n",
- "00:02:08 \u001B[90mv\u001B[0m #1611 > > \u001B[38;2;38;140;38m│\u001B[0m (\"file2.txt\", \"Changed\"); (\"file2.txt\", \"Deleted\")]\n",
- "00:02:08 \u001B[90mv\u001B[0m #1612 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:02:08 \u001B[90mv\u001B[0m #1613 > > \u001B[38;2;38;140;38m│\u001B[0m map [(\"file1.txt\", \"Deleted\"); (\"file2.txt\", \"Deleted\")]\n",
- "00:02:08 \u001B[90mv\u001B[0m #1614 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:02:08 \u001B[90mv\u001B[0m #1615 > > \u001B[38;2;38;140;38m│\u001B[0m Some ()\n",
- "00:02:08 \u001B[90mv\u001B[0m #1616 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:02:08 \u001B[90mv\u001B[0m #1617 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:02:08 \u001B[90mv\u001B[0m #1618 > >\n",
- "00:02:08 \u001B[90mv\u001B[0m #1619 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:02:08 \u001B[90mv\u001B[0m #1620 > > \u001B[38;2;146;146;178m│\u001B[0m #### rename (test)\n",
- "00:02:08 \u001B[90mv\u001B[0m #1621 > >\n",
- "00:02:08 \u001B[90mv\u001B[0m #1622 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:02:08 \u001B[90mv\u001B[0m #1623 > > //// test\n",
- "00:02:08 \u001B[90mv\u001B[0m #1624 > >\n",
- "00:02:08 \u001B[90mv\u001B[0m #1625 > > let inline write path = async {\n",
- "00:02:08 \u001B[90mv\u001B[0m #1626 > > let n = 2\n",
- "00:02:08 \u001B[90mv\u001B[0m #1627 > >\n",
- "00:02:08 \u001B[90mv\u001B[0m #1628 > > for i = 1 to n do\n",
- "00:02:08 \u001B[90mv\u001B[0m #1629 > > do! $\"{i}\" |> SpiralFileSystem.write_all_text_async (path >\n",
- "00:02:08 \u001B[90mv\u001B[0m #1630 > > $\"file{i}.txt\")\n",
- "00:02:08 \u001B[90mv\u001B[0m #1631 > >\n",
- "00:02:08 \u001B[90mv\u001B[0m #1632 > > for i = 1 to n do\n",
- "00:02:08 \u001B[90mv\u001B[0m #1633 > > do! path > $\"file{i}.txt\" |> SpiralFileSystem.move_file_async (path\n",
- "00:02:08 \u001B[90mv\u001B[0m #1634 > > > $\"file_{i}.txt\") |> Async.Ignore\n",
- "00:02:08 \u001B[90mv\u001B[0m #1635 > >\n",
- "00:02:08 \u001B[90mv\u001B[0m #1636 > > for i = 1 to n do\n",
- "00:02:08 \u001B[90mv\u001B[0m #1637 > > do! SpiralFileSystem.delete_file_async (path > $\"file_{i}.txt\") |>\n",
- "00:02:08 \u001B[90mv\u001B[0m #1638 > > Async.Ignore\n",
- "00:02:08 \u001B[90mv\u001B[0m #1639 > >\n",
- "00:02:08 \u001B[90mv\u001B[0m #1640 > > do! Async.Sleep 150\n",
- "00:02:08 \u001B[90mv\u001B[0m #1641 > > }\n",
- "00:02:08 \u001B[90mv\u001B[0m #1642 > >\n",
- "00:02:08 \u001B[90mv\u001B[0m #1643 > > let inline run () =\n",
- "00:02:08 \u001B[90mv\u001B[0m #1644 > > let eventMap, eventList = testEventsSorted (watchDirectory (fun _ -> false))\n",
- "00:02:08 \u001B[90mv\u001B[0m #1645 > > write\n",
- "00:02:08 \u001B[90mv\u001B[0m #1646 > >\n",
- "00:02:08 \u001B[90mv\u001B[0m #1647 > > [[\n",
- "00:02:08 \u001B[90mv\u001B[0m #1648 > > \"file1.txt\", nameof FileSystemChangeType.Created\n",
- "00:02:08 \u001B[90mv\u001B[0m #1649 > > \"file1.txt\", nameof FileSystemChangeType.Changed\n",
- "00:02:08 \u001B[90mv\u001B[0m #1650 > > \"file2.txt\", nameof FileSystemChangeType.Created\n",
- "00:02:08 \u001B[90mv\u001B[0m #1651 > > \"file2.txt\", nameof FileSystemChangeType.Changed\n",
- "00:02:08 \u001B[90mv\u001B[0m #1652 > >\n",
- "00:02:08 \u001B[90mv\u001B[0m #1653 > > \"file_1.txt\", nameof FileSystemChangeType.Renamed\n",
- "00:02:08 \u001B[90mv\u001B[0m #1654 > > \"file_1.txt\", nameof FileSystemChangeType.Deleted\n",
- "00:02:08 \u001B[90mv\u001B[0m #1655 > >\n",
- "00:02:08 \u001B[90mv\u001B[0m #1656 > > \"file_2.txt\", nameof FileSystemChangeType.Renamed\n",
- "00:02:08 \u001B[90mv\u001B[0m #1657 > > \"file_2.txt\", nameof FileSystemChangeType.Deleted\n",
- "00:02:08 \u001B[90mv\u001B[0m #1658 > > ]]\n",
- "00:02:08 \u001B[90mv\u001B[0m #1659 > > |> _sequenceEqual eventList\n",
- "00:02:08 \u001B[90mv\u001B[0m #1660 > >\n",
- "00:02:08 \u001B[90mv\u001B[0m #1661 > > [[\n",
- "00:02:08 \u001B[90mv\u001B[0m #1662 > > \"file1.txt\", nameof FileSystemChangeType.Changed\n",
- "00:02:08 \u001B[90mv\u001B[0m #1663 > > \"file2.txt\", nameof FileSystemChangeType.Changed\n",
- "00:02:08 \u001B[90mv\u001B[0m #1664 > > \"file_1.txt\", nameof FileSystemChangeType.Deleted\n",
- "00:02:08 \u001B[90mv\u001B[0m #1665 > > \"file_2.txt\", nameof FileSystemChangeType.Deleted\n",
- "00:02:08 \u001B[90mv\u001B[0m #1666 > > ]]\n",
- "00:02:08 \u001B[90mv\u001B[0m #1667 > > |> Map.ofList\n",
- "00:02:08 \u001B[90mv\u001B[0m #1668 > > |> _sequenceEqual eventMap\n",
- "00:02:08 \u001B[90mv\u001B[0m #1669 > >\n",
- "00:02:08 \u001B[90mv\u001B[0m #1670 > > run\n",
- "00:02:08 \u001B[90mv\u001B[0m #1671 > > |> retry_fn 3\n",
- "00:02:08 \u001B[90mv\u001B[0m #1672 > > |> _assertEqual (Some ())\n",
- "00:02:10 \u001B[90mv\u001B[0m #1673 > >\n",
- "00:02:10 \u001B[90mv\u001B[0m #1674 > > ── [ 2.20s - stdout ] ──────────────────────────────────────────────────────────\n",
- "00:02:10 \u001B[90mv\u001B[0m #1675 > > \u001B[38;2;38;140;38m│\u001B[0m Some ()\n",
- "00:02:10 \u001B[90mv\u001B[0m #1676 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:02:10 \u001B[90mv\u001B[0m #1677 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:23 \u001B[94md\u001B[0m #7 FileSystem.watchWithFilter / Disposing\n",
- "00:02:10 \u001B[90mv\u001B[0m #1678 > > watch stream / filter: FileName, LastWrite\n",
- "00:02:10 \u001B[90mv\u001B[0m #1679 > > \u001B[38;2;38;140;38m│\u001B[0m [(\"file1.txt\", \"Created\"); (\"file1.txt\", \"Changed\");\n",
- "00:02:10 \u001B[90mv\u001B[0m #1680 > > (\"file2.txt\", \"Created\"); (\"file2.txt\", \"Changed\");\n",
- "00:02:10 \u001B[90mv\u001B[0m #1681 > > \u001B[38;2;38;140;38m│\u001B[0m (\"file_1.txt\", \"Renamed\"); (\"file_1.txt\", \"Deleted\");\n",
- "00:02:10 \u001B[90mv\u001B[0m #1682 > > (\"file_2.txt\", \"Renamed\"); (\"file_2.txt\", \"Deleted\")]\n",
- "00:02:10 \u001B[90mv\u001B[0m #1683 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:02:10 \u001B[90mv\u001B[0m #1684 > > \u001B[38;2;38;140;38m│\u001B[0m map [(\"file1.txt\", \"Changed\"); (\"file2.txt\", \"Changed\");\n",
- "00:02:10 \u001B[90mv\u001B[0m #1685 > > (\"file_1.txt\", \"Deleted\"); (\"file_2.txt\", \"Deleted\")]\n",
- "00:02:10 \u001B[90mv\u001B[0m #1686 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:02:10 \u001B[90mv\u001B[0m #1687 > > \u001B[38;2;38;140;38m│\u001B[0m Some ()\n",
- "00:02:10 \u001B[90mv\u001B[0m #1688 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:02:10 \u001B[90mv\u001B[0m #1689 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:02:10 \u001B[90mv\u001B[0m #1690 > >\n",
- "00:02:10 \u001B[90mv\u001B[0m #1691 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:02:10 \u001B[90mv\u001B[0m #1692 > > \u001B[38;2;146;146;178m│\u001B[0m #### full (test)\n",
- "00:02:10 \u001B[90mv\u001B[0m #1693 > >\n",
- "00:02:10 \u001B[90mv\u001B[0m #1694 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:02:10 \u001B[90mv\u001B[0m #1695 > > //// test\n",
- "00:02:10 \u001B[90mv\u001B[0m #1696 > >\n",
- "00:02:10 \u001B[90mv\u001B[0m #1697 > > let inline write path = async {\n",
- "00:02:10 \u001B[90mv\u001B[0m #1698 > > let n = 2\n",
- "00:02:10 \u001B[90mv\u001B[0m #1699 > >\n",
- "00:02:10 \u001B[90mv\u001B[0m #1700 > > for i = 1 to n do\n",
- "00:02:10 \u001B[90mv\u001B[0m #1701 > > do! $\"{i}\" |> SpiralFileSystem.write_all_text_async (path >\n",
- "00:02:10 \u001B[90mv\u001B[0m #1702 > > $\"file{i}.txt\")\n",
- "00:02:10 \u001B[90mv\u001B[0m #1703 > >\n",
- "00:02:10 \u001B[90mv\u001B[0m #1704 > > for i = 1 to n do\n",
- "00:02:10 \u001B[90mv\u001B[0m #1705 > > do! \"\" |> SpiralFileSystem.write_all_text_async (path >\n",
- "00:02:10 \u001B[90mv\u001B[0m #1706 > > $\"file{i}.txt\")\n",
- "00:02:10 \u001B[90mv\u001B[0m #1707 > >\n",
- "00:02:10 \u001B[90mv\u001B[0m #1708 > > for i = 1 to n do\n",
- "00:02:10 \u001B[90mv\u001B[0m #1709 > > do! path > $\"file{i}.txt\" |> SpiralFileSystem.move_file_async (path\n",
- "00:02:10 \u001B[90mv\u001B[0m #1710 > > > $\"file_{i}.txt\") |> Async.Ignore\n",
- "00:02:10 \u001B[90mv\u001B[0m #1711 > >\n",
- "00:02:10 \u001B[90mv\u001B[0m #1712 > > for i = 1 to n do\n",
- "00:02:10 \u001B[90mv\u001B[0m #1713 > > do! $\"{i}\" |> SpiralFileSystem.write_all_text_async (path >\n",
- "00:02:10 \u001B[90mv\u001B[0m #1714 > > $\"file_{i}.txt\")\n",
- "00:02:10 \u001B[90mv\u001B[0m #1715 > >\n",
- "00:02:10 \u001B[90mv\u001B[0m #1716 > > for i = 1 to n do\n",
- "00:02:10 \u001B[90mv\u001B[0m #1717 > > do! SpiralFileSystem.delete_file_async (path > $\"file_{i}.txt\") |>\n",
- "00:02:10 \u001B[90mv\u001B[0m #1718 > > Async.Ignore\n",
- "00:02:10 \u001B[90mv\u001B[0m #1719 > >\n",
- "00:02:10 \u001B[90mv\u001B[0m #1720 > > do! Async.Sleep 150\n",
- "00:02:10 \u001B[90mv\u001B[0m #1721 > > }\n",
- "00:02:10 \u001B[90mv\u001B[0m #1722 > >\n",
- "00:02:10 \u001B[90mv\u001B[0m #1723 > > let inline run () =\n",
- "00:02:10 \u001B[90mv\u001B[0m #1724 > > let eventMap, eventList = testEventsSorted (watchDirectory (fun _ -> false))\n",
- "00:02:10 \u001B[90mv\u001B[0m #1725 > > write\n",
- "00:02:10 \u001B[90mv\u001B[0m #1726 > >\n",
- "00:02:10 \u001B[90mv\u001B[0m #1727 > > [[\n",
- "00:02:10 \u001B[90mv\u001B[0m #1728 > > \"file1.txt\", nameof FileSystemChangeType.Created\n",
- "00:02:10 \u001B[90mv\u001B[0m #1729 > > \"file1.txt\", nameof FileSystemChangeType.Changed\n",
- "00:02:10 \u001B[90mv\u001B[0m #1730 > > \"file2.txt\", nameof FileSystemChangeType.Created\n",
- "00:02:10 \u001B[90mv\u001B[0m #1731 > > \"file2.txt\", nameof FileSystemChangeType.Changed\n",
- "00:02:10 \u001B[90mv\u001B[0m #1732 > >\n",
- "00:02:10 \u001B[90mv\u001B[0m #1733 > > \"file_1.txt\", nameof FileSystemChangeType.Changed\n",
- "00:02:10 \u001B[90mv\u001B[0m #1734 > > \"file_1.txt\", nameof FileSystemChangeType.Renamed\n",
- "00:02:10 \u001B[90mv\u001B[0m #1735 > > \"file_1.txt\", nameof FileSystemChangeType.Deleted\n",
- "00:02:10 \u001B[90mv\u001B[0m #1736 > >\n",
- "00:02:10 \u001B[90mv\u001B[0m #1737 > > \"file_2.txt\", nameof FileSystemChangeType.Changed\n",
- "00:02:10 \u001B[90mv\u001B[0m #1738 > > \"file_2.txt\", nameof FileSystemChangeType.Renamed\n",
- "00:02:10 \u001B[90mv\u001B[0m #1739 > > \"file_2.txt\", nameof FileSystemChangeType.Deleted\n",
- "00:02:10 \u001B[90mv\u001B[0m #1740 > > ]]\n",
- "00:02:10 \u001B[90mv\u001B[0m #1741 > > |> _sequenceEqual eventList\n",
- "00:02:10 \u001B[90mv\u001B[0m #1742 > >\n",
- "00:02:10 \u001B[90mv\u001B[0m #1743 > > [[\n",
- "00:02:10 \u001B[90mv\u001B[0m #1744 > > \"file1.txt\", nameof FileSystemChangeType.Changed\n",
- "00:02:10 \u001B[90mv\u001B[0m #1745 > > \"file2.txt\", nameof FileSystemChangeType.Changed\n",
- "00:02:10 \u001B[90mv\u001B[0m #1746 > > \"file_1.txt\", nameof FileSystemChangeType.Deleted\n",
- "00:02:10 \u001B[90mv\u001B[0m #1747 > > \"file_2.txt\", nameof FileSystemChangeType.Deleted\n",
- "00:02:10 \u001B[90mv\u001B[0m #1748 > > ]]\n",
- "00:02:10 \u001B[90mv\u001B[0m #1749 > > |> Map.ofList\n",
- "00:02:10 \u001B[90mv\u001B[0m #1750 > > |> _sequenceEqual eventMap\n",
- "00:02:10 \u001B[90mv\u001B[0m #1751 > >\n",
- "00:02:10 \u001B[90mv\u001B[0m #1752 > > run\n",
- "00:02:10 \u001B[90mv\u001B[0m #1753 > > |> retry_fn 3\n",
- "00:02:10 \u001B[90mv\u001B[0m #1754 > > |> _assertEqual (Some ())\n",
- "00:02:13 \u001B[90mv\u001B[0m #1755 > >\n",
- "00:02:13 \u001B[90mv\u001B[0m #1756 > > ── [ 2.70s - stdout ] ──────────────────────────────────────────────────────────\n",
- "00:02:13 \u001B[90mv\u001B[0m #1757 > > \u001B[38;2;38;140;38m│\u001B[0m Some ()\n",
- "00:02:13 \u001B[90mv\u001B[0m #1758 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:02:13 \u001B[90mv\u001B[0m #1759 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:26 \u001B[94md\u001B[0m #8 FileSystem.watchWithFilter / Disposing\n",
- "00:02:13 \u001B[90mv\u001B[0m #1760 > > watch stream / filter: FileName, LastWrite\n",
- "00:02:13 \u001B[90mv\u001B[0m #1761 > > \u001B[38;2;38;140;38m│\u001B[0m [(\"file1.txt\", \"Created\"); (\"file1.txt\", \"Changed\");\n",
- "00:02:13 \u001B[90mv\u001B[0m #1762 > > (\"file2.txt\", \"Created\"); (\"file2.txt\", \"Changed\");\n",
- "00:02:13 \u001B[90mv\u001B[0m #1763 > > \u001B[38;2;38;140;38m│\u001B[0m (\"file_1.txt\", \"Changed\"); (\"file_1.txt\", \"Renamed\");\n",
- "00:02:13 \u001B[90mv\u001B[0m #1764 > > (\"file_1.txt\", \"Deleted\"); (\"file_2.txt\", \"Changed\");\n",
- "00:02:13 \u001B[90mv\u001B[0m #1765 > > \u001B[38;2;38;140;38m│\u001B[0m (\"file_2.txt\", \"Renamed\"); (\"file_2.txt\", \"Deleted\")]\n",
- "00:02:13 \u001B[90mv\u001B[0m #1766 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:02:13 \u001B[90mv\u001B[0m #1767 > > \u001B[38;2;38;140;38m│\u001B[0m map [(\"file1.txt\", \"Changed\"); (\"file2.txt\", \"Changed\");\n",
- "00:02:13 \u001B[90mv\u001B[0m #1768 > > (\"file_1.txt\", \"Deleted\"); (\"file_2.txt\", \"Deleted\")]\n",
- "00:02:13 \u001B[90mv\u001B[0m #1769 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:02:13 \u001B[90mv\u001B[0m #1770 > > \u001B[38;2;38;140;38m│\u001B[0m Some ()\n",
- "00:02:13 \u001B[90mv\u001B[0m #1771 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:02:13 \u001B[90mv\u001B[0m #1772 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:02:13 \u001B[90mv\u001B[0m #1773 > 00:00:42 \u001B[90mv\u001B[39m #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 30913 }\n",
- "00:02:13 \u001B[90mv\u001B[0m #1774 > 00:00:42 \u001B[94md\u001B[39m #4 runtime.execute_with_options / { file_name = jupyter; arguments = [\"nbconvert\", \"c:/home/git/polyglot/lib/fsharp/FileSystem.dib.ipynb\", \"--to\", \"html\", \"--HTMLExporter.theme=dark\"]; options = { command = jupyter nbconvert \"c:/home/git/polyglot/lib/fsharp/FileSystem.dib.ipynb\" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }\n",
- "00:02:14 \u001B[90mv\u001B[0m #1775 > 00:00:43 \u001B[90mv\u001B[39m #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/lib/fsharp/FileSystem.dib.ipynb to html\n",
- "00:02:14 \u001B[90mv\u001B[0m #1776 > 00:00:43 \u001B[90mv\u001B[39m #6 ! C:\\Users\\i574n\\scoop\\apps\\python312\\current\\Lib\\site-packages\\nbformat\\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.\n",
- "00:02:14 \u001B[90mv\u001B[0m #1777 > 00:00:43 \u001B[90mv\u001B[39m #7 ! validate(nb)\n",
- "00:02:15 \u001B[90mv\u001B[0m #1778 > 00:00:44 \u001B[90mv\u001B[39m #8 ! C:\\Users\\i574n\\scoop\\apps\\python312\\current\\Lib\\site-packages\\nbconvert\\filters\\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3\n",
- "00:02:15 \u001B[90mv\u001B[0m #1779 > 00:00:44 \u001B[90mv\u001B[39m #9 ! return _pygments_highlight(\n",
- "00:02:15 \u001B[90mv\u001B[0m #1780 > 00:00:45 \u001B[90mv\u001B[39m #10 ! [NbConvertApp] Writing 383449 bytes to c:\\home\\git\\polyglot\\lib\\fsharp\\FileSystem.dib.html\n",
- "00:02:16 \u001B[90mv\u001B[0m #1781 > 00:00:45 \u001B[90mv\u001B[39m #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 862 }\n",
- "00:02:16 \u001B[90mv\u001B[0m #1782 > 00:00:45 \u001B[94md\u001B[39m #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 862 }\n",
- "00:02:16 \u001B[90mv\u001B[0m #1783 > 00:00:45 \u001B[94md\u001B[39m #13 runtime.execute_with_options / { file_name = pwsh; arguments = [\"-c\", \"$counter = 1; $path = 'c:/home/git/polyglot/lib/fsharp/FileSystem.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\\\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path\"]; options = { command = pwsh -c \"$counter = 1; $path = 'c:/home/git/polyglot/lib/fsharp/FileSystem.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path\"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }\n",
- "00:02:16 \u001B[90mv\u001B[0m #1784 > 00:00:45 \u001B[90mv\u001B[39m #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 }\n",
- "00:02:16 \u001B[90mv\u001B[0m #1785 > 00:00:45 \u001B[94md\u001B[39m #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 }\n",
- "00:02:16 \u001B[90mv\u001B[0m #1786 > 00:00:45 \u001B[94md\u001B[39m #16 spiral.run / dib / { exit_code = 0; result_length = 31834 }\n",
- "00:02:16 \u001B[94md\u001B[0m #1787 runtime.execute_with_options_async / { exit_code = 0; output_length = 36195 }\n",
- "00:02:16 \u001B[94md\u001B[0m #7 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path FileSystem.dib --retries 3\n",
- "00:02:16 \u001B[94md\u001B[0m #1788 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 \"dib --path Runtime.dib --retries 3\"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path Runtime.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }\n",
- "00:02:16 \u001B[90mv\u001B[0m #1789 > 00:00:00 \u001B[94md\u001B[39m #1 spiral.main / { args = Array(MutCell([\"dib\", \"--path\", \"Runtime.dib\", \"--retries\", \"3\"])) }\n",
- "00:02:16 \u001B[90mv\u001B[0m #1790 > 00:00:00 \u001B[94md\u001B[39m #2 runtime.execute_with_options / { file_name = dotnet; arguments = [\"repl\", \"--exit-after-run\", \"--run\", \"c:/home/git/polyglot/lib/fsharp/Runtime.dib\", \"--output-path\", \"c:/home/git/polyglot/lib/fsharp/Runtime.dib.ipynb\"]; options = { command = dotnet repl --exit-after-run --run \"c:/home/git/polyglot/lib/fsharp/Runtime.dib\" --output-path \"c:/home/git/polyglot/lib/fsharp/Runtime.dib.ipynb\"; cancellation_token = None; environment_variables = Array(MutCell([(\"TRACE_LEVEL\", \"Verbose\"), (\"AUTOMATION\", \"True\")])); on_line = None; stdin = None; trace = false; working_directory = None } }\n",
- "00:02:18 \u001B[90mv\u001B[0m #1791 > >\n",
- "00:02:18 \u001B[90mv\u001B[0m #1792 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:02:18 \u001B[90mv\u001B[0m #1793 > > \u001B[38;2;146;146;178m│\u001B[0m # Runtime (Polyglot)\n",
- "00:02:21 \u001B[90mv\u001B[0m #1794 > >\n",
- "00:02:21 \u001B[90mv\u001B[0m #1795 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:02:21 \u001B[90mv\u001B[0m #1796 > > #r\n",
- "00:02:21 \u001B[90mv\u001B[0m #1797 > > @\"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan\n",
- "00:02:21 \u001B[90mv\u001B[0m #1798 > > dard2.1/FSharp.Control.AsyncSeq.dll\"\n",
- "00:02:21 \u001B[90mv\u001B[0m #1799 > > #r\n",
- "00:02:21 \u001B[90mv\u001B[0m #1800 > > @\"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6.\n",
- "00:02:21 \u001B[90mv\u001B[0m #1801 > > 0/System.Reactive.dll\"\n",
- "00:02:21 \u001B[90mv\u001B[0m #1802 > > #r\n",
- "00:02:21 \u001B[90mv\u001B[0m #1803 > > @\"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib\n",
- "00:02:21 \u001B[90mv\u001B[0m #1804 > > netstandard2.0/System.Reactive.Linq.dll\"\n",
- "00:02:21 \u001B[90mv\u001B[0m #1805 > > #r\n",
- "00:02:21 \u001B[90mv\u001B[0m #1806 > > @\"../../../../../../../.nuget/packages/argu/6.2.4/lib/netstandard2.0/Argu.dll\"\n",
- "00:02:35 \u001B[90mv\u001B[0m #1807 > >\n",
- "00:02:35 \u001B[90mv\u001B[0m #1808 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:02:35 \u001B[90mv\u001B[0m #1809 > > #if !INTERACTIVE\n",
- "00:02:35 \u001B[90mv\u001B[0m #1810 > > open Lib\n",
- "00:02:35 \u001B[90mv\u001B[0m #1811 > > #endif\n",
- "00:02:35 \u001B[90mv\u001B[0m #1812 > >\n",
- "00:02:35 \u001B[90mv\u001B[0m #1813 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:02:35 \u001B[90mv\u001B[0m #1814 > > open Common\n",
- "00:02:35 \u001B[90mv\u001B[0m #1815 > >\n",
- "00:02:35 \u001B[90mv\u001B[0m #1816 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:02:35 \u001B[90mv\u001B[0m #1817 > > //// test\n",
- "00:02:35 \u001B[90mv\u001B[0m #1818 > >\n",
- "00:02:35 \u001B[90mv\u001B[0m #1819 > > open SpiralFileSystem.Operators\n",
- "00:02:35 \u001B[90mv\u001B[0m #1820 > >\n",
- "00:02:35 \u001B[90mv\u001B[0m #1821 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:02:35 \u001B[90mv\u001B[0m #1822 > > \u001B[38;2;146;146;178m│\u001B[0m ## parseArgs\n",
- "00:02:35 \u001B[90mv\u001B[0m #1823 > >\n",
- "00:02:35 \u001B[90mv\u001B[0m #1824 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:02:35 \u001B[90mv\u001B[0m #1825 > > let inline parseArgs<'T when 'T :> Argu.IArgParserTemplate> args =\n",
- "00:02:35 \u001B[90mv\u001B[0m #1826 > > let assemblyName =\n",
- "00:02:35 \u001B[90mv\u001B[0m #1827 > > System.Reflection.Assembly.GetEntryAssembly().GetName().Name\n",
- "00:02:35 \u001B[90mv\u001B[0m #1828 > > let errorHandler : Argu.IExiter =\n",
- "00:02:35 \u001B[90mv\u001B[0m #1829 > > if [[ \"Microsoft.DotNet.Interactive.App\"; \"dotnet-repl\" ]] |>\n",
- "00:02:35 \u001B[90mv\u001B[0m #1830 > > List.contains assemblyName\n",
- "00:02:35 \u001B[90mv\u001B[0m #1831 > > then Argu.ExceptionExiter ()\n",
- "00:02:35 \u001B[90mv\u001B[0m #1832 > > else Argu.ProcessExiter (function Argu.ErrorCode.HelpText -> None | _ ->\n",
- "00:02:35 \u001B[90mv\u001B[0m #1833 > > Some System.ConsoleColor.Red)\n",
- "00:02:35 \u001B[90mv\u001B[0m #1834 > >\n",
- "00:02:35 \u001B[90mv\u001B[0m #1835 > > let parser =\n",
- "00:02:35 \u001B[90mv\u001B[0m #1836 > > Argu.ArgumentParser.Create<'T> (\n",
- "00:02:35 \u001B[90mv\u001B[0m #1837 > > programName = $\"{assemblyName}{SpiralPlatform.get_executable_suffix\n",
- "00:02:35 \u001B[90mv\u001B[0m #1838 > > ()}\",\n",
- "00:02:35 \u001B[90mv\u001B[0m #1839 > > errorHandler = errorHandler\n",
- "00:02:35 \u001B[90mv\u001B[0m #1840 > > )\n",
- "00:02:35 \u001B[90mv\u001B[0m #1841 > >\n",
- "00:02:35 \u001B[90mv\u001B[0m #1842 > > parser.ParseCommandLine args\n",
- "00:02:35 \u001B[90mv\u001B[0m #1843 > >\n",
- "00:02:35 \u001B[90mv\u001B[0m #1844 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:02:35 \u001B[90mv\u001B[0m #1845 > > //// test\n",
- "00:02:35 \u001B[90mv\u001B[0m #1846 > >\n",
- "00:02:35 \u001B[90mv\u001B[0m #1847 > > [[]]\n",
- "00:02:35 \u001B[90mv\u001B[0m #1848 > > type Arguments =\n",
- "00:02:35 \u001B[90mv\u001B[0m #1849 > > | [[ > Argu.ArguAttributes.Last>]]\n",
- "00:02:35 \u001B[90mv\u001B[0m #1851 > > Paths of paths : string list\n",
- "00:02:35 \u001B[90mv\u001B[0m #1852 > >\n",
- "00:02:35 \u001B[90mv\u001B[0m #1853 > > interface Argu.IArgParserTemplate with\n",
- "00:02:35 \u001B[90mv\u001B[0m #1854 > > member s.Usage =\n",
- "00:02:35 \u001B[90mv\u001B[0m #1855 > > match s with\n",
- "00:02:35 \u001B[90mv\u001B[0m #1856 > > | Paths _ -> nameof Paths\n",
- "00:02:35 \u001B[90mv\u001B[0m #1857 > >\n",
- "00:02:35 \u001B[90mv\u001B[0m #1858 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:02:35 \u001B[90mv\u001B[0m #1859 > > //// test\n",
- "00:02:35 \u001B[90mv\u001B[0m #1860 > >\n",
- "00:02:35 \u001B[90mv\u001B[0m #1861 > > Argu.ArgumentParser.Create().PrintUsage ()\n",
- "00:02:35 \u001B[90mv\u001B[0m #1862 > >\n",
- "00:02:35 \u001B[90mv\u001B[0m #1863 > > ── [ 109.36ms - return value ] ─────────────────────────────────────────────────\n",
- "00:02:35 \u001B[90mv\u001B[0m #1864 > > \u001B[38;2;38;140;38m│\u001B[0m \"USAGE: dotnet-repl [--help] ...\n",
- "00:02:35 \u001B[90mv\u001B[0m #1865 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:02:35 \u001B[90mv\u001B[0m #1866 > > \u001B[38;2;38;140;38m│\u001B[0m PATHS:\n",
- "00:02:35 \u001B[90mv\u001B[0m #1867 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:02:35 \u001B[90mv\u001B[0m #1868 > > \u001B[38;2;38;140;38m│\u001B[0m ... Paths\n",
- "00:02:35 \u001B[90mv\u001B[0m #1869 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:02:35 \u001B[90mv\u001B[0m #1870 > > \u001B[38;2;38;140;38m│\u001B[0m OPTIONS:\n",
- "00:02:35 \u001B[90mv\u001B[0m #1871 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:02:35 \u001B[90mv\u001B[0m #1872 > > \u001B[38;2;38;140;38m│\u001B[0m --help display this list of options.\n",
- "00:02:35 \u001B[90mv\u001B[0m #1873 > > \u001B[38;2;38;140;38m│\u001B[0m \"\n",
- "00:02:35 \u001B[90mv\u001B[0m #1874 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:02:35 \u001B[90mv\u001B[0m #1875 > >\n",
- "00:02:35 \u001B[90mv\u001B[0m #1876 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:02:35 \u001B[90mv\u001B[0m #1877 > > //// test\n",
- "00:02:35 \u001B[90mv\u001B[0m #1878 > >\n",
- "00:02:35 \u001B[90mv\u001B[0m #1879 > > fun () -> parseArgs [[||]] |> ignore\n",
- "00:02:35 \u001B[90mv\u001B[0m #1880 > > |> _throwsC (fun ex _ ->\n",
- "00:02:35 \u001B[90mv\u001B[0m #1881 > > SpiralSm.format_exception ex\n",
- "00:02:35 \u001B[90mv\u001B[0m #1882 > > |> _stringContains \"Argu.ArguParseException: ERROR: missing parameter\n",
- "00:02:35 \u001B[90mv\u001B[0m #1883 > > '...'.\"\n",
- "00:02:35 \u001B[90mv\u001B[0m #1884 > > )\n",
- "00:02:35 \u001B[90mv\u001B[0m #1885 > >\n",
- "00:02:35 \u001B[90mv\u001B[0m #1886 > > ── [ 69.99ms - stdout ] ────────────────────────────────────────────────────────\n",
- "00:02:35 \u001B[90mv\u001B[0m #1887 > > \u001B[38;2;38;140;38m│\u001B[0m \n",
- "00:02:35 \u001B[90mv\u001B[0m #1888 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:02:35 \u001B[90mv\u001B[0m #1889 > > \u001B[38;2;38;140;38m│\u001B[0m \"Argu.ArguParseException: ERROR: missing parameter\n",
- "00:02:35 \u001B[90mv\u001B[0m #1890 > > '...'.\n",
- "00:02:35 \u001B[90mv\u001B[0m #1891 > > \u001B[38;2;38;140;38m│\u001B[0m USAGE: dotnet-repl.exe [--help] ...\n",
- "00:02:35 \u001B[90mv\u001B[0m #1892 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:02:35 \u001B[90mv\u001B[0m #1893 > > \u001B[38;2;38;140;38m│\u001B[0m PATHS:\n",
- "00:02:35 \u001B[90mv\u001B[0m #1894 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:02:35 \u001B[90mv\u001B[0m #1895 > > \u001B[38;2;38;140;38m│\u001B[0m ... Paths\n",
- "00:02:35 \u001B[90mv\u001B[0m #1896 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:02:35 \u001B[90mv\u001B[0m #1897 > > \u001B[38;2;38;140;38m│\u001B[0m OPTIONS:\n",
- "00:02:35 \u001B[90mv\u001B[0m #1898 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:02:35 \u001B[90mv\u001B[0m #1899 > > \u001B[38;2;38;140;38m│\u001B[0m --help display this list of options.\n",
- "00:02:35 \u001B[90mv\u001B[0m #1900 > > \u001B[38;2;38;140;38m│\u001B[0m \"\n",
- "00:02:35 \u001B[90mv\u001B[0m #1901 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:02:35 \u001B[90mv\u001B[0m #1902 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:02:35 \u001B[90mv\u001B[0m #1903 > >\n",
- "00:02:35 \u001B[90mv\u001B[0m #1904 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:02:35 \u001B[90mv\u001B[0m #1905 > > let inline parseAllArgs<'T when 'T :> Argu.IArgParserTemplate> args =\n",
- "00:02:35 \u001B[90mv\u001B[0m #1906 > > args\n",
- "00:02:35 \u001B[90mv\u001B[0m #1907 > > |> parseArgs<'T>\n",
- "00:02:35 \u001B[90mv\u001B[0m #1908 > > |> fun results -> results.GetAllResults ()\n",
- "00:02:35 \u001B[90mv\u001B[0m #1909 > >\n",
- "00:02:35 \u001B[90mv\u001B[0m #1910 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:02:35 \u001B[90mv\u001B[0m #1911 > > //// test\n",
- "00:02:35 \u001B[90mv\u001B[0m #1912 > >\n",
- "00:02:35 \u001B[90mv\u001B[0m #1913 > > [[]]\n",
- "00:02:35 \u001B[90mv\u001B[0m #1914 > > type Arguments =\n",
- "00:02:35 \u001B[90mv\u001B[0m #1915 > > | [[ > Argu.ArguAttributes.Last>]]\n",
- "00:02:35 \u001B[90mv\u001B[0m #1917 > > Paths of paths : string list\n",
- "00:02:35 \u001B[90mv\u001B[0m #1918 > >\n",
- "00:02:35 \u001B[90mv\u001B[0m #1919 > > interface Argu.IArgParserTemplate with\n",
- "00:02:35 \u001B[90mv\u001B[0m #1920 > > member s.Usage =\n",
- "00:02:35 \u001B[90mv\u001B[0m #1921 > > match s with\n",
- "00:02:35 \u001B[90mv\u001B[0m #1922 > > | Paths _ -> nameof Paths\n",
- "00:02:35 \u001B[90mv\u001B[0m #1923 > >\n",
- "00:02:35 \u001B[90mv\u001B[0m #1924 > > parseAllArgs [[| \"a b\"; \"c\" |]]\n",
- "00:02:35 \u001B[90mv\u001B[0m #1925 > > |> _assertEqual [[ Arguments.Paths [[ \"a b\"; \"c\" ]] ]]\n",
- "00:02:35 \u001B[90mv\u001B[0m #1926 > >\n",
- "00:02:35 \u001B[90mv\u001B[0m #1927 > > ── [ 100.69ms - stdout ] ───────────────────────────────────────────────────────\n",
- "00:02:35 \u001B[90mv\u001B[0m #1928 > > \u001B[38;2;38;140;38m│\u001B[0m [Paths [\"a b\"; \"c\"]]\n",
- "00:02:35 \u001B[90mv\u001B[0m #1929 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:02:35 \u001B[90mv\u001B[0m #1930 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:02:35 \u001B[90mv\u001B[0m #1931 > >\n",
- "00:02:35 \u001B[90mv\u001B[0m #1932 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:02:35 \u001B[90mv\u001B[0m #1933 > > let inline parseArgsMap<'T when 'T :> Argu.IArgParserTemplate> args =\n",
- "00:02:35 \u001B[90mv\u001B[0m #1934 > > args\n",
- "00:02:35 \u001B[90mv\u001B[0m #1935 > > |> parseAllArgs<'T>\n",
- "00:02:35 \u001B[90mv\u001B[0m #1936 > > |> List.groupBy CommonFSharp.getUnionCaseName<'T>\n",
- "00:02:35 \u001B[90mv\u001B[0m #1937 > > |> Map.ofList\n",
- "00:02:35 \u001B[90mv\u001B[0m #1938 > >\n",
- "00:02:35 \u001B[90mv\u001B[0m #1939 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:02:35 \u001B[90mv\u001B[0m #1940 > > //// test\n",
- "00:02:35 \u001B[90mv\u001B[0m #1941 > >\n",
- "00:02:35 \u001B[90mv\u001B[0m #1942 > > parseArgsMap [[| \"a b\"; \"c\" |]]\n",
- "00:02:35 \u001B[90mv\u001B[0m #1943 > > |> _assertEqual (\n",
- "00:02:35 \u001B[90mv\u001B[0m #1944 > > [[ nameof Arguments.Paths, [[ Arguments.Paths [[ \"a b\"; \"c\" ]] ]] ]]\n",
- "00:02:35 \u001B[90mv\u001B[0m #1945 > > |> Map.ofList\n",
- "00:02:35 \u001B[90mv\u001B[0m #1946 > > )\n",
- "00:02:35 \u001B[90mv\u001B[0m #1947 > >\n",
- "00:02:35 \u001B[90mv\u001B[0m #1948 > > ── [ 57.56ms - stdout ] ────────────────────────────────────────────────────────\n",
- "00:02:35 \u001B[90mv\u001B[0m #1949 > > \u001B[38;2;38;140;38m│\u001B[0m map [(\"Paths\", [Paths [\"a b\"; \"c\"]])]\n",
- "00:02:35 \u001B[90mv\u001B[0m #1950 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:02:35 \u001B[90mv\u001B[0m #1951 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:02:35 \u001B[90mv\u001B[0m #1952 > 00:00:19 \u001B[90mv\u001B[39m #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 5457 }\n",
- "00:02:35 \u001B[90mv\u001B[0m #1953 > 00:00:19 \u001B[94md\u001B[39m #4 runtime.execute_with_options / { file_name = jupyter; arguments = [\"nbconvert\", \"c:/home/git/polyglot/lib/fsharp/Runtime.dib.ipynb\", \"--to\", \"html\", \"--HTMLExporter.theme=dark\"]; options = { command = jupyter nbconvert \"c:/home/git/polyglot/lib/fsharp/Runtime.dib.ipynb\" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }\n",
- "00:02:37 \u001B[90mv\u001B[0m #1954 > 00:00:20 \u001B[90mv\u001B[39m #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/lib/fsharp/Runtime.dib.ipynb to html\n",
- "00:02:37 \u001B[90mv\u001B[0m #1955 > 00:00:20 \u001B[90mv\u001B[39m #6 ! C:\\Users\\i574n\\scoop\\apps\\python312\\current\\Lib\\site-packages\\nbformat\\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.\n",
- "00:02:37 \u001B[90mv\u001B[0m #1956 > 00:00:20 \u001B[90mv\u001B[39m #7 ! validate(nb)\n",
- "00:02:37 \u001B[90mv\u001B[0m #1957 > 00:00:21 \u001B[90mv\u001B[39m #8 ! C:\\Users\\i574n\\scoop\\apps\\python312\\current\\Lib\\site-packages\\nbconvert\\filters\\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3\n",
- "00:02:37 \u001B[90mv\u001B[0m #1958 > 00:00:21 \u001B[90mv\u001B[39m #9 ! return _pygments_highlight(\n",
- "00:02:37 \u001B[90mv\u001B[0m #1959 > 00:00:21 \u001B[90mv\u001B[39m #10 ! [NbConvertApp] Writing 292946 bytes to c:\\home\\git\\polyglot\\lib\\fsharp\\Runtime.dib.html\n",
- "00:02:38 \u001B[90mv\u001B[0m #1960 > 00:00:21 \u001B[90mv\u001B[39m #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 856 }\n",
- "00:02:38 \u001B[90mv\u001B[0m #1961 > 00:00:21 \u001B[94md\u001B[39m #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 856 }\n",
- "00:02:38 \u001B[90mv\u001B[0m #1962 > 00:00:21 \u001B[94md\u001B[39m #13 runtime.execute_with_options / { file_name = pwsh; arguments = [\"-c\", \"$counter = 1; $path = 'c:/home/git/polyglot/lib/fsharp/Runtime.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\\\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path\"]; options = { command = pwsh -c \"$counter = 1; $path = 'c:/home/git/polyglot/lib/fsharp/Runtime.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path\"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }\n",
- "00:02:38 \u001B[90mv\u001B[0m #1963 > 00:00:22 \u001B[90mv\u001B[39m #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 }\n",
- "00:02:38 \u001B[90mv\u001B[0m #1964 > 00:00:22 \u001B[94md\u001B[39m #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 }\n",
- "00:02:38 \u001B[90mv\u001B[0m #1965 > 00:00:22 \u001B[94md\u001B[39m #16 spiral.run / dib / { exit_code = 0; result_length = 6372 }\n",
- "00:02:38 \u001B[94md\u001B[0m #1966 runtime.execute_with_options_async / { exit_code = 0; output_length = 9236 }\n",
- "00:02:38 \u001B[94md\u001B[0m #8 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path Runtime.dib --retries 3\n",
- "00:02:38 \u001B[90mv\u001B[0m #5 async.run_with_timeout_async / { timeout = 100 }\n",
+ "00:01:08 \u001B[90mv\u001B[0m #770 > > let inline memoize fn =\n",
+ "00:01:08 \u001B[90mv\u001B[0m #771 > > let result = lazy fn ()\n",
+ "00:01:08 \u001B[90mv\u001B[0m #772 > > fun () -> result.Value\n",
+ "00:01:08 \u001B[90mv\u001B[0m #773 > >\n",
+ "00:01:08 \u001B[90mv\u001B[0m #774 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
+ "00:01:08 \u001B[90mv\u001B[0m #775 > > \u001B[38;2;146;146;178m│\u001B[0m ## TraceLevel\n",
+ "00:01:08 \u001B[90mv\u001B[0m #776 > >\n",
+ "00:01:08 \u001B[90mv\u001B[0m #777 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:01:08 \u001B[90mv\u001B[0m #778 > > type TraceLevel =\n",
+ "00:01:08 \u001B[90mv\u001B[0m #779 > > | Verbose\n",
+ "00:01:08 \u001B[90mv\u001B[0m #780 > > | Debug\n",
+ "00:01:08 \u001B[90mv\u001B[0m #781 > > | Info\n",
+ "00:01:08 \u001B[90mv\u001B[0m #782 > > | Warning\n",
+ "00:01:08 \u001B[90mv\u001B[0m #783 > > | Critical\n",
+ "00:01:08 \u001B[90mv\u001B[0m #784 > >\n",
+ "00:01:08 \u001B[90mv\u001B[0m #785 > > let inline _locals () = \"\"\n",
+ "00:01:08 \u001B[90mv\u001B[0m #786 > >\n",
+ "00:01:08 \u001B[90mv\u001B[0m #787 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
+ "00:01:08 \u001B[90mv\u001B[0m #788 > > \u001B[38;2;146;146;178m│\u001B[0m ## trace\n",
+ "00:01:08 \u001B[90mv\u001B[0m #789 > >\n",
+ "00:01:08 \u001B[90mv\u001B[0m #790 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:01:08 \u001B[90mv\u001B[0m #791 > > let to_trace_level = function\n",
+ "00:01:08 \u001B[90mv\u001B[0m #792 > > | Verbose -> SpiralTrace.TraceLevel.US0_0\n",
+ "00:01:08 \u001B[90mv\u001B[0m #793 > > | Debug -> SpiralTrace.TraceLevel.US0_1\n",
+ "00:01:08 \u001B[90mv\u001B[0m #794 > > | Info -> SpiralTrace.TraceLevel.US0_2\n",
+ "00:01:08 \u001B[90mv\u001B[0m #795 > > | Warning -> SpiralTrace.TraceLevel.US0_3\n",
+ "00:01:08 \u001B[90mv\u001B[0m #796 > > | Critical -> SpiralTrace.TraceLevel.US0_4\n",
+ "00:01:08 \u001B[90mv\u001B[0m #797 > >\n",
+ "00:01:08 \u001B[90mv\u001B[0m #798 > > let trace level fn locals =\n",
+ "00:01:08 \u001B[90mv\u001B[0m #799 > > let level = level |> to_trace_level\n",
+ "00:01:08 \u001B[90mv\u001B[0m #800 > > SpiralTrace.trace level fn locals\n",
+ "00:01:08 \u001B[90mv\u001B[0m #801 > >\n",
+ "00:01:08 \u001B[90mv\u001B[0m #802 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:01:08 \u001B[90mv\u001B[0m #803 > > //// test\n",
+ "00:01:08 \u001B[90mv\u001B[0m #804 > >\n",
+ "00:01:08 \u001B[90mv\u001B[0m #805 > > trace Debug (fun () -> \"test\") _locals\n",
+ "00:01:08 \u001B[90mv\u001B[0m #806 > >\n",
+ "00:01:08 \u001B[90mv\u001B[0m #807 > > ── [ 23.99ms - stdout ] ────────────────────────────────────────────────────────\n",
+ "00:01:08 \u001B[90mv\u001B[0m #808 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:00 \u001B[94md\u001B[0m #1 test\n",
+ "00:01:08 \u001B[90mv\u001B[0m #809 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:01:08 \u001B[90mv\u001B[0m #810 > 00:00:18 \u001B[90mv\u001B[39m #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 1940 }\n",
+ "00:01:08 \u001B[90mv\u001B[0m #811 > 00:00:18 \u001B[94md\u001B[39m #4 runtime.execute_with_options / { file_name = jupyter; arguments = [\"nbconvert\", \"c:/home/git/polyglot/lib/fsharp/Common.dib.ipynb\", \"--to\", \"html\", \"--HTMLExporter.theme=dark\"]; options = { command = jupyter nbconvert \"c:/home/git/polyglot/lib/fsharp/Common.dib.ipynb\" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }\n",
+ "00:01:10 \u001B[90mv\u001B[0m #812 > 00:00:20 \u001B[90mv\u001B[39m #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/lib/fsharp/Common.dib.ipynb to html\n",
+ "00:01:10 \u001B[90mv\u001B[0m #813 > 00:00:20 \u001B[90mv\u001B[39m #6 ! C:\\Users\\i574n\\scoop\\apps\\python312\\current\\Lib\\site-packages\\nbformat\\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.\n",
+ "00:01:10 \u001B[90mv\u001B[0m #814 > 00:00:20 \u001B[90mv\u001B[39m #7 ! validate(nb)\n",
+ "00:01:10 \u001B[90mv\u001B[0m #815 > 00:00:20 \u001B[90mv\u001B[39m #8 ! C:\\Users\\i574n\\scoop\\apps\\python312\\current\\Lib\\site-packages\\nbconvert\\filters\\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3\n",
+ "00:01:10 \u001B[90mv\u001B[0m #816 > 00:00:20 \u001B[90mv\u001B[39m #9 ! return _pygments_highlight(\n",
+ "00:01:11 \u001B[90mv\u001B[0m #817 > 00:00:21 \u001B[90mv\u001B[39m #10 ! [NbConvertApp] Writing 280728 bytes to c:\\home\\git\\polyglot\\lib\\fsharp\\Common.dib.html\n",
+ "00:01:11 \u001B[90mv\u001B[0m #818 > 00:00:21 \u001B[90mv\u001B[39m #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 854 }\n",
+ "00:01:11 \u001B[90mv\u001B[0m #819 > 00:00:21 \u001B[94md\u001B[39m #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 854 }\n",
+ "00:01:11 \u001B[90mv\u001B[0m #820 > 00:00:21 \u001B[94md\u001B[39m #13 runtime.execute_with_options / { file_name = pwsh; arguments = [\"-c\", \"$counter = 1; $path = 'c:/home/git/polyglot/lib/fsharp/Common.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\\\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path\"]; options = { command = pwsh -c \"$counter = 1; $path = 'c:/home/git/polyglot/lib/fsharp/Common.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path\"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }\n",
+ "00:01:11 \u001B[90mv\u001B[0m #821 > 00:00:21 \u001B[90mv\u001B[39m #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 }\n",
+ "00:01:11 \u001B[90mv\u001B[0m #822 > 00:00:21 \u001B[94md\u001B[39m #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 }\n",
+ "00:01:11 \u001B[90mv\u001B[0m #823 > 00:00:21 \u001B[94md\u001B[39m #16 spiral.run / dib / { exit_code = 0; result_length = 2853 }\n",
+ "00:01:11 \u001B[94md\u001B[0m #824 runtime.execute_with_options_async / { exit_code = 0; output_length = 5506 }\n",
+ "00:01:11 \u001B[94md\u001B[0m #3 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path Common.dib --retries 3\n",
+ "00:01:11 \u001B[94md\u001B[0m #825 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 \"dib --path CommonFSharp.dib --retries 3\"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path CommonFSharp.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }\n",
+ "00:01:11 \u001B[90mv\u001B[0m #826 > 00:00:00 \u001B[94md\u001B[39m #1 spiral.main / { args = Array(MutCell([\"dib\", \"--path\", \"CommonFSharp.dib\", \"--retries\", \"3\"])) }\n",
+ "00:01:11 \u001B[90mv\u001B[0m #827 > 00:00:00 \u001B[94md\u001B[39m #2 runtime.execute_with_options / { file_name = dotnet; arguments = [\"repl\", \"--exit-after-run\", \"--run\", \"c:/home/git/polyglot/lib/fsharp/CommonFSharp.dib\", \"--output-path\", \"c:/home/git/polyglot/lib/fsharp/CommonFSharp.dib.ipynb\"]; options = { command = dotnet repl --exit-after-run --run \"c:/home/git/polyglot/lib/fsharp/CommonFSharp.dib\" --output-path \"c:/home/git/polyglot/lib/fsharp/CommonFSharp.dib.ipynb\"; cancellation_token = None; environment_variables = Array(MutCell([(\"TRACE_LEVEL\", \"Verbose\"), (\"AUTOMATION\", \"True\")])); on_line = None; stdin = None; trace = false; working_directory = None } }\n",
+ "00:01:13 \u001B[90mv\u001B[0m #828 > >\n",
+ "00:01:13 \u001B[90mv\u001B[0m #829 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
+ "00:01:13 \u001B[90mv\u001B[0m #830 > > \u001B[38;2;146;146;178m│\u001B[0m # CommonFSharp (Polyglot)\n",
+ "00:01:30 \u001B[90mv\u001B[0m #831 > >\n",
+ "00:01:30 \u001B[90mv\u001B[0m #832 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:01:30 \u001B[90mv\u001B[0m #833 > > open Common\n",
+ "00:01:30 \u001B[90mv\u001B[0m #834 > >\n",
+ "00:01:30 \u001B[90mv\u001B[0m #835 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
+ "00:01:30 \u001B[90mv\u001B[0m #836 > > \u001B[38;2;146;146;178m│\u001B[0m ## getUnionCaseName\n",
+ "00:01:30 \u001B[90mv\u001B[0m #837 > >\n",
+ "00:01:30 \u001B[90mv\u001B[0m #838 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:01:30 \u001B[90mv\u001B[0m #839 > > let inline getUnionCaseName<'T> (x: 'T) =\n",
+ "00:01:30 \u001B[90mv\u001B[0m #840 > > match Reflection.FSharpValue.GetUnionFields(x, typeof<'T>) with\n",
+ "00:01:30 \u001B[90mv\u001B[0m #841 > > | case, _ -> case.Name\n",
+ "00:01:30 \u001B[90mv\u001B[0m #842 > >\n",
+ "00:01:30 \u001B[90mv\u001B[0m #843 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:01:30 \u001B[90mv\u001B[0m #844 > > //// test\n",
+ "00:01:30 \u001B[90mv\u001B[0m #845 > >\n",
+ "00:01:30 \u001B[90mv\u001B[0m #846 > > TraceLevel.Critical\n",
+ "00:01:30 \u001B[90mv\u001B[0m #847 > > |> getUnionCaseName\n",
+ "00:01:30 \u001B[90mv\u001B[0m #848 > > |> _assertEqual (nameof TraceLevel.Critical)\n",
+ "00:01:30 \u001B[90mv\u001B[0m #849 > >\n",
+ "00:01:30 \u001B[90mv\u001B[0m #850 > > ── [ 71.42ms - stdout ] ────────────────────────────────────────────────────────\n",
+ "00:01:30 \u001B[90mv\u001B[0m #851 > > \u001B[38;2;38;140;38m│\u001B[0m \"Critical\"\n",
+ "00:01:30 \u001B[90mv\u001B[0m #852 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:01:30 \u001B[90mv\u001B[0m #853 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:01:30 \u001B[90mv\u001B[0m #854 > 00:00:19 \u001B[90mv\u001B[39m #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 914 }\n",
+ "00:01:30 \u001B[90mv\u001B[0m #855 > 00:00:19 \u001B[94md\u001B[39m #4 runtime.execute_with_options / { file_name = jupyter; arguments = [\"nbconvert\", \"c:/home/git/polyglot/lib/fsharp/CommonFSharp.dib.ipynb\", \"--to\", \"html\", \"--HTMLExporter.theme=dark\"]; options = { command = jupyter nbconvert \"c:/home/git/polyglot/lib/fsharp/CommonFSharp.dib.ipynb\" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }\n",
+ "00:01:32 \u001B[90mv\u001B[0m #856 > 00:00:20 \u001B[90mv\u001B[39m #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/lib/fsharp/CommonFSharp.dib.ipynb to html\n",
+ "00:01:32 \u001B[90mv\u001B[0m #857 > 00:00:20 \u001B[90mv\u001B[39m #6 ! C:\\Users\\i574n\\scoop\\apps\\python312\\current\\Lib\\site-packages\\nbformat\\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.\n",
+ "00:01:32 \u001B[90mv\u001B[0m #858 > 00:00:20 \u001B[90mv\u001B[39m #7 ! validate(nb)\n",
+ "00:01:32 \u001B[90mv\u001B[0m #859 > 00:00:21 \u001B[90mv\u001B[39m #8 ! C:\\Users\\i574n\\scoop\\apps\\python312\\current\\Lib\\site-packages\\nbconvert\\filters\\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3\n",
+ "00:01:32 \u001B[90mv\u001B[0m #860 > 00:00:21 \u001B[90mv\u001B[39m #9 ! return _pygments_highlight(\n",
+ "00:01:32 \u001B[90mv\u001B[0m #861 > 00:00:21 \u001B[90mv\u001B[39m #10 ! [NbConvertApp] Writing 275592 bytes to c:\\home\\git\\polyglot\\lib\\fsharp\\CommonFSharp.dib.html\n",
+ "00:01:32 \u001B[90mv\u001B[0m #862 > 00:00:21 \u001B[90mv\u001B[39m #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 866 }\n",
+ "00:01:32 \u001B[90mv\u001B[0m #863 > 00:00:21 \u001B[94md\u001B[39m #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 866 }\n",
+ "00:01:32 \u001B[90mv\u001B[0m #864 > 00:00:21 \u001B[94md\u001B[39m #13 runtime.execute_with_options / { file_name = pwsh; arguments = [\"-c\", \"$counter = 1; $path = 'c:/home/git/polyglot/lib/fsharp/CommonFSharp.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\\\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path\"]; options = { command = pwsh -c \"$counter = 1; $path = 'c:/home/git/polyglot/lib/fsharp/CommonFSharp.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path\"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }\n",
+ "00:01:33 \u001B[90mv\u001B[0m #865 > 00:00:21 \u001B[90mv\u001B[39m #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 }\n",
+ "00:01:33 \u001B[90mv\u001B[0m #866 > 00:00:21 \u001B[94md\u001B[39m #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 }\n",
+ "00:01:33 \u001B[90mv\u001B[0m #867 > 00:00:21 \u001B[94md\u001B[39m #16 spiral.run / dib / { exit_code = 0; result_length = 1839 }\n",
+ "00:01:33 \u001B[94md\u001B[0m #868 runtime.execute_with_options_async / { exit_code = 0; output_length = 4477 }\n",
+ "00:01:33 \u001B[94md\u001B[0m #4 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path CommonFSharp.dib --retries 3\n",
+ "00:01:33 \u001B[94md\u001B[0m #869 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 \"dib --path FileSystem.dib --retries 3\"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path FileSystem.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }\n",
+ "00:01:33 \u001B[90mv\u001B[0m #870 > 00:00:00 \u001B[94md\u001B[39m #1 spiral.main / { args = Array(MutCell([\"dib\", \"--path\", \"FileSystem.dib\", \"--retries\", \"3\"])) }\n",
+ "00:01:33 \u001B[90mv\u001B[0m #871 > 00:00:00 \u001B[94md\u001B[39m #2 runtime.execute_with_options / { file_name = dotnet; arguments = [\"repl\", \"--exit-after-run\", \"--run\", \"c:/home/git/polyglot/lib/fsharp/FileSystem.dib\", \"--output-path\", \"c:/home/git/polyglot/lib/fsharp/FileSystem.dib.ipynb\"]; options = { command = dotnet repl --exit-after-run --run \"c:/home/git/polyglot/lib/fsharp/FileSystem.dib\" --output-path \"c:/home/git/polyglot/lib/fsharp/FileSystem.dib.ipynb\"; cancellation_token = None; environment_variables = Array(MutCell([(\"TRACE_LEVEL\", \"Verbose\"), (\"AUTOMATION\", \"True\")])); on_line = None; stdin = None; trace = false; working_directory = None } }\n",
+ "00:01:35 \u001B[90mv\u001B[0m #872 > >\n",
+ "00:01:35 \u001B[90mv\u001B[0m #873 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
+ "00:01:35 \u001B[90mv\u001B[0m #874 > > \u001B[38;2;146;146;178m│\u001B[0m # FileSystem (Polyglot)\n",
+ "00:01:39 \u001B[90mv\u001B[0m #875 > >\n",
+ "00:01:39 \u001B[90mv\u001B[0m #876 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:01:39 \u001B[90mv\u001B[0m #877 > > #r\n",
+ "00:01:39 \u001B[90mv\u001B[0m #878 > > @\"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan\n",
+ "00:01:39 \u001B[90mv\u001B[0m #879 > > dard2.1/FSharp.Control.AsyncSeq.dll\"\n",
+ "00:01:39 \u001B[90mv\u001B[0m #880 > > #r\n",
+ "00:01:39 \u001B[90mv\u001B[0m #881 > > @\"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6.\n",
+ "00:01:39 \u001B[90mv\u001B[0m #882 > > 0/System.Reactive.dll\"\n",
+ "00:01:39 \u001B[90mv\u001B[0m #883 > > #r\n",
+ "00:01:39 \u001B[90mv\u001B[0m #884 > > @\"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib\n",
+ "00:01:39 \u001B[90mv\u001B[0m #885 > > netstandard2.0/System.Reactive.Linq.dll\"\n",
+ "00:01:39 \u001B[90mv\u001B[0m #886 > > #r\n",
+ "00:01:39 \u001B[90mv\u001B[0m #887 > > @\"../../../../../../../.nuget/packages/argu/6.2.4/lib/netstandard2.0/Argu.dll\"\n",
+ "00:01:53 \u001B[90mv\u001B[0m #888 > >\n",
+ "00:01:53 \u001B[90mv\u001B[0m #889 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:01:53 \u001B[90mv\u001B[0m #890 > > #if !INTERACTIVE\n",
+ "00:01:53 \u001B[90mv\u001B[0m #891 > > open Lib\n",
+ "00:01:53 \u001B[90mv\u001B[0m #892 > > #endif\n",
+ "00:01:53 \u001B[90mv\u001B[0m #893 > >\n",
+ "00:01:53 \u001B[90mv\u001B[0m #894 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:01:53 \u001B[90mv\u001B[0m #895 > > open Common\n",
+ "00:01:53 \u001B[90mv\u001B[0m #896 > > open SpiralFileSystem.Operators\n",
+ "00:01:53 \u001B[90mv\u001B[0m #897 > >\n",
+ "00:01:53 \u001B[90mv\u001B[0m #898 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
+ "00:01:53 \u001B[90mv\u001B[0m #899 > > \u001B[38;2;146;146;178m│\u001B[0m ## watchDirectory\n",
+ "00:01:53 \u001B[90mv\u001B[0m #900 > >\n",
+ "00:01:53 \u001B[90mv\u001B[0m #901 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:01:53 \u001B[90mv\u001B[0m #902 > > [[]]\n",
+ "00:01:53 \u001B[90mv\u001B[0m #903 > > type FileSystemChangeType =\n",
+ "00:01:53 \u001B[90mv\u001B[0m #904 > > | Failure\n",
+ "00:01:53 \u001B[90mv\u001B[0m #905 > > | Changed\n",
+ "00:01:53 \u001B[90mv\u001B[0m #906 > > | Created\n",
+ "00:01:53 \u001B[90mv\u001B[0m #907 > > | Deleted\n",
+ "00:01:53 \u001B[90mv\u001B[0m #908 > > | Renamed\n",
+ "00:01:53 \u001B[90mv\u001B[0m #909 > >\n",
+ "00:01:53 \u001B[90mv\u001B[0m #910 > > [[]]\n",
+ "00:01:53 \u001B[90mv\u001B[0m #911 > > type FileSystemChange =\n",
+ "00:01:53 \u001B[90mv\u001B[0m #912 > > | Failure of exn: exn\n",
+ "00:01:53 \u001B[90mv\u001B[0m #913 > > | Changed of path: string * content: string option\n",
+ "00:01:53 \u001B[90mv\u001B[0m #914 > > | Created of path: string * content: string option\n",
+ "00:01:53 \u001B[90mv\u001B[0m #915 > > | Deleted of path: string\n",
+ "00:01:53 \u001B[90mv\u001B[0m #916 > > | Renamed of oldPath: string * (string * string option)\n",
+ "00:01:53 \u001B[90mv\u001B[0m #917 > >\n",
+ "00:01:53 \u001B[90mv\u001B[0m #918 > >\n",
+ "00:01:53 \u001B[90mv\u001B[0m #919 > > let inline watchDirectoryWithFilter filter shouldReadContent path =\n",
+ "00:01:53 \u001B[90mv\u001B[0m #920 > > let fullPath = path |> System.IO.Path.GetFullPath\n",
+ "00:01:53 \u001B[90mv\u001B[0m #921 > > let _locals () = $\"filter: {filter} / {_locals ()}\"\n",
+ "00:01:53 \u001B[90mv\u001B[0m #922 > >\n",
+ "00:01:53 \u001B[90mv\u001B[0m #923 > > let watcher =\n",
+ "00:01:53 \u001B[90mv\u001B[0m #924 > > new System.IO.FileSystemWatcher (\n",
+ "00:01:53 \u001B[90mv\u001B[0m #925 > > Path = fullPath,\n",
+ "00:01:53 \u001B[90mv\u001B[0m #926 > > NotifyFilter = filter,\n",
+ "00:01:53 \u001B[90mv\u001B[0m #927 > > EnableRaisingEvents = true,\n",
+ "00:01:53 \u001B[90mv\u001B[0m #928 > > IncludeSubdirectories = true\n",
+ "00:01:53 \u001B[90mv\u001B[0m #929 > > )\n",
+ "00:01:53 \u001B[90mv\u001B[0m #930 > >\n",
+ "00:01:53 \u001B[90mv\u001B[0m #931 > > let inline getEventPath (path : string) =\n",
+ "00:01:53 \u001B[90mv\u001B[0m #932 > > path |> SpiralSm.trim |> SpiralSm.replace fullPath \"\" |>\n",
+ "00:01:53 \u001B[90mv\u001B[0m #933 > > SpiralSm.trim_start [[| '/'; '\\\\' |]]\n",
+ "00:01:53 \u001B[90mv\u001B[0m #934 > >\n",
+ "00:01:53 \u001B[90mv\u001B[0m #935 > > let inline ticks () =\n",
+ "00:01:53 \u001B[90mv\u001B[0m #936 > > System.DateTime.UtcNow.Ticks\n",
+ "00:01:53 \u001B[90mv\u001B[0m #937 > >\n",
+ "00:01:53 \u001B[90mv\u001B[0m #938 > > let changedStream =\n",
+ "00:01:53 \u001B[90mv\u001B[0m #939 > > AsyncSeq.subscribeEvent\n",
+ "00:01:53 \u001B[90mv\u001B[0m #940 > > watcher.Changed\n",
+ "00:01:53 \u001B[90mv\u001B[0m #941 > > (fun event ->\n",
+ "00:01:53 \u001B[90mv\u001B[0m #942 > > ticks (),\n",
+ "00:01:53 \u001B[90mv\u001B[0m #943 > > [[ FileSystemChange.Changed (getEventPath event.FullPath, None)\n",
+ "00:01:53 \u001B[90mv\u001B[0m #944 > > ]]\n",
+ "00:01:53 \u001B[90mv\u001B[0m #945 > > )\n",
+ "00:01:53 \u001B[90mv\u001B[0m #946 > >\n",
+ "00:01:53 \u001B[90mv\u001B[0m #947 > > let deletedStream =\n",
+ "00:01:53 \u001B[90mv\u001B[0m #948 > > AsyncSeq.subscribeEvent\n",
+ "00:01:53 \u001B[90mv\u001B[0m #949 > > watcher.Deleted\n",
+ "00:01:53 \u001B[90mv\u001B[0m #950 > > (fun event ->\n",
+ "00:01:53 \u001B[90mv\u001B[0m #951 > > ticks (),\n",
+ "00:01:53 \u001B[90mv\u001B[0m #952 > > [[ FileSystemChange.Deleted (getEventPath event.FullPath) ]]\n",
+ "00:01:53 \u001B[90mv\u001B[0m #953 > > )\n",
+ "00:01:53 \u001B[90mv\u001B[0m #954 > >\n",
+ "00:01:53 \u001B[90mv\u001B[0m #955 > > let createdStream =\n",
+ "00:01:53 \u001B[90mv\u001B[0m #956 > > AsyncSeq.subscribeEvent\n",
+ "00:01:53 \u001B[90mv\u001B[0m #957 > > watcher.Created\n",
+ "00:01:53 \u001B[90mv\u001B[0m #958 > > (fun event ->\n",
+ "00:01:53 \u001B[90mv\u001B[0m #959 > > let path = getEventPath event.FullPath\n",
+ "00:01:53 \u001B[90mv\u001B[0m #960 > > ticks (), [[\n",
+ "00:01:53 \u001B[90mv\u001B[0m #961 > > FileSystemChange.Created (path, None)\n",
+ "00:01:53 \u001B[90mv\u001B[0m #962 > > if SpiralPlatform.is_windows () then\n",
+ "00:01:53 \u001B[90mv\u001B[0m #963 > > FileSystemChange.Changed (path, None)\n",
+ "00:01:53 \u001B[90mv\u001B[0m #964 > > ]])\n",
+ "00:01:53 \u001B[90mv\u001B[0m #965 > >\n",
+ "00:01:53 \u001B[90mv\u001B[0m #966 > > let renamedStream =\n",
+ "00:01:53 \u001B[90mv\u001B[0m #967 > > AsyncSeq.subscribeEvent\n",
+ "00:01:53 \u001B[90mv\u001B[0m #968 > > watcher.Renamed\n",
+ "00:01:53 \u001B[90mv\u001B[0m #969 > > (fun event ->\n",
+ "00:01:53 \u001B[90mv\u001B[0m #970 > > ticks (), [[\n",
+ "00:01:53 \u001B[90mv\u001B[0m #971 > > FileSystemChange.Renamed (\n",
+ "00:01:53 \u001B[90mv\u001B[0m #972 > > getEventPath event.OldFullPath,\n",
+ "00:01:53 \u001B[90mv\u001B[0m #973 > > (getEventPath event.FullPath, None)\n",
+ "00:01:53 \u001B[90mv\u001B[0m #974 > > )\n",
+ "00:01:53 \u001B[90mv\u001B[0m #975 > > ]]\n",
+ "00:01:53 \u001B[90mv\u001B[0m #976 > > )\n",
+ "00:01:53 \u001B[90mv\u001B[0m #977 > >\n",
+ "00:01:53 \u001B[90mv\u001B[0m #978 > > let failureStream =\n",
+ "00:01:53 \u001B[90mv\u001B[0m #979 > > AsyncSeq.subscribeEvent\n",
+ "00:01:53 \u001B[90mv\u001B[0m #980 > > watcher.Error\n",
+ "00:01:53 \u001B[90mv\u001B[0m #981 > > (fun event -> ticks (), [[ FileSystemChange.Failure\n",
+ "00:01:53 \u001B[90mv\u001B[0m #982 > > (event.GetException ()) ]])\n",
+ "00:01:53 \u001B[90mv\u001B[0m #983 > >\n",
+ "00:01:53 \u001B[90mv\u001B[0m #984 > > let stream =\n",
+ "00:01:53 \u001B[90mv\u001B[0m #985 > > [[\n",
+ "00:01:53 \u001B[90mv\u001B[0m #986 > > changedStream\n",
+ "00:01:53 \u001B[90mv\u001B[0m #987 > > deletedStream\n",
+ "00:01:53 \u001B[90mv\u001B[0m #988 > > createdStream\n",
+ "00:01:53 \u001B[90mv\u001B[0m #989 > > renamedStream\n",
+ "00:01:53 \u001B[90mv\u001B[0m #990 > > failureStream\n",
+ "00:01:53 \u001B[90mv\u001B[0m #991 > > ]]\n",
+ "00:01:53 \u001B[90mv\u001B[0m #992 > > |> FSharp.Control.AsyncSeq.mergeAll\n",
+ "00:01:53 \u001B[90mv\u001B[0m #993 > > |> FSharp.Control.AsyncSeq.map (fun (t, events) ->\n",
+ "00:01:53 \u001B[90mv\u001B[0m #994 > > events\n",
+ "00:01:53 \u001B[90mv\u001B[0m #995 > > |> List.fold\n",
+ "00:01:53 \u001B[90mv\u001B[0m #996 > > (fun (i, events) event ->\n",
+ "00:01:53 \u001B[90mv\u001B[0m #997 > > i + 1L,\n",
+ "00:01:53 \u001B[90mv\u001B[0m #998 > > (t + i, event) :: events)\n",
+ "00:01:53 \u001B[90mv\u001B[0m #999 > > (0L, [[]])\n",
+ "00:01:53 \u001B[90mv\u001B[0m #1000 > > |> snd\n",
+ "00:01:53 \u001B[90mv\u001B[0m #1001 > > |> List.rev\n",
+ "00:01:53 \u001B[90mv\u001B[0m #1002 > > )\n",
+ "00:01:53 \u001B[90mv\u001B[0m #1003 > > |> FSharp.Control.AsyncSeq.concatSeq\n",
+ "00:01:53 \u001B[90mv\u001B[0m #1004 > > |> FSharp.Control.AsyncSeq.mapAsyncParallel (fun (t, event) -> async {\n",
+ "00:01:53 \u001B[90mv\u001B[0m #1005 > > match shouldReadContent event, event with\n",
+ "00:01:53 \u001B[90mv\u001B[0m #1006 > > | true, FileSystemChange.Changed (path, _) ->\n",
+ "00:01:53 \u001B[90mv\u001B[0m #1007 > > do! Async.Sleep 5\n",
+ "00:01:53 \u001B[90mv\u001B[0m #1008 > > let! content = fullPath > path |>\n",
+ "00:01:53 \u001B[90mv\u001B[0m #1009 > > SpiralFileSystem.read_all_text_retry_async\n",
+ "00:01:53 \u001B[90mv\u001B[0m #1010 > > return t, FileSystemChange.Changed (path, content)\n",
+ "00:01:53 \u001B[90mv\u001B[0m #1011 > > | true, FileSystemChange.Created (path, _) ->\n",
+ "00:01:53 \u001B[90mv\u001B[0m #1012 > > do! Async.Sleep 5\n",
+ "00:01:53 \u001B[90mv\u001B[0m #1013 > > let! content = fullPath > path |>\n",
+ "00:01:53 \u001B[90mv\u001B[0m #1014 > > SpiralFileSystem.read_all_text_retry_async\n",
+ "00:01:53 \u001B[90mv\u001B[0m #1015 > > return t, FileSystemChange.Created (path, content)\n",
+ "00:01:53 \u001B[90mv\u001B[0m #1016 > > | true, FileSystemChange.Renamed (oldPath, (newPath, _)) ->\n",
+ "00:01:53 \u001B[90mv\u001B[0m #1017 > > let! content = fullPath > newPath |>\n",
+ "00:01:53 \u001B[90mv\u001B[0m #1018 > > SpiralFileSystem.read_all_text_retry_async\n",
+ "00:01:53 \u001B[90mv\u001B[0m #1019 > > return t, FileSystemChange.Renamed (oldPath, (newPath, content))\n",
+ "00:01:53 \u001B[90mv\u001B[0m #1020 > > | _ -> return t, event\n",
+ "00:01:53 \u001B[90mv\u001B[0m #1021 > > })\n",
+ "00:01:53 \u001B[90mv\u001B[0m #1022 > >\n",
+ "00:01:53 \u001B[90mv\u001B[0m #1023 > > let disposable =\n",
+ "00:01:53 \u001B[90mv\u001B[0m #1024 > > new_disposable (fun () ->\n",
+ "00:01:53 \u001B[90mv\u001B[0m #1025 > > trace Debug (fun () -> \"FileSystem.watchWithFilter / Disposing watch\n",
+ "00:01:53 \u001B[90mv\u001B[0m #1026 > > stream\") _locals\n",
+ "00:01:53 \u001B[90mv\u001B[0m #1027 > > watcher.EnableRaisingEvents <- false\n",
+ "00:01:53 \u001B[90mv\u001B[0m #1028 > > watcher.Dispose ()\n",
+ "00:01:53 \u001B[90mv\u001B[0m #1029 > > )\n",
+ "00:01:53 \u001B[90mv\u001B[0m #1030 > >\n",
+ "00:01:53 \u001B[90mv\u001B[0m #1031 > > stream, disposable\n",
+ "00:01:53 \u001B[90mv\u001B[0m #1032 > >\n",
+ "00:01:53 \u001B[90mv\u001B[0m #1033 > > let inline watchDirectory path =\n",
+ "00:01:53 \u001B[90mv\u001B[0m #1034 > > watchDirectoryWithFilter\n",
+ "00:01:53 \u001B[90mv\u001B[0m #1035 > > (System.IO.NotifyFilters.FileName\n",
+ "00:01:53 \u001B[90mv\u001B[0m #1036 > > // ||| System.IO.NotifyFilters.DirectoryName\n",
+ "00:01:53 \u001B[90mv\u001B[0m #1037 > > // ||| System.IO.NotifyFilters.Attributes\n",
+ "00:01:53 \u001B[90mv\u001B[0m #1038 > > //// ||| System.IO.NotifyFilters.Size\n",
+ "00:01:53 \u001B[90mv\u001B[0m #1039 > > ||| System.IO.NotifyFilters.LastWrite\n",
+ "00:01:53 \u001B[90mv\u001B[0m #1040 > > //// ||| System.IO.NotifyFilters.LastAccess\n",
+ "00:01:53 \u001B[90mv\u001B[0m #1041 > > // ||| System.IO.NotifyFilters.CreationTime\n",
+ "00:01:53 \u001B[90mv\u001B[0m #1042 > > // ||| System.IO.NotifyFilters.Security\n",
+ "00:01:53 \u001B[90mv\u001B[0m #1043 > > )\n",
+ "00:01:53 \u001B[90mv\u001B[0m #1044 > > path\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1045 > >\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1046 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1047 > > \u001B[38;2;146;146;178m│\u001B[0m ### testEventsRaw (test)\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1048 > >\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1049 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1050 > > //// test\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1051 > >\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1052 > > let inline testEventsRaw\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1053 > > (watchFn : (_ -> bool) -> string -> FSharp.Control.AsyncSeq > FileSystemChange> * IDisposable)\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1055 > > write\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1056 > > =\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1057 > > let struct (tempDir, tempDisposable) =\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1058 > > \"FileSystem.testEventsRaw\"\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1059 > > |> SpiralCrypto.hash_text\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1060 > > |> SpiralFileSystem.create_temp_dir'\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1061 > > let stream, disposable = watchFn (fun _ -> true) tempDir\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1062 > >\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1063 > > let events = System.Collections.Concurrent.ConcurrentBag ()\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1064 > >\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1065 > > let inline iter () =\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1066 > > stream\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1067 > > |> FSharp.Control.AsyncSeq.iterAsyncParallel (fun event -> async {\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1068 > > events.Add event })\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1069 > >\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1070 > > let run = async {\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1071 > > let! _ = iter () |> Async.StartChild\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1072 > > do! Async.Sleep 250\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1073 > > return! write tempDir\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1074 > > }\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1075 > >\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1076 > > try\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1077 > > run\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1078 > > |> Async.runWithTimeout 60000\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1079 > > |> _assertEqual (Some ())\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1080 > > finally\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1081 > > disposable.Dispose ()\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1082 > > tempDisposable.Dispose ()\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1083 > >\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1084 > > let eventsLog =\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1085 > > events\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1086 > > |> Seq.toList\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1087 > > |> List.sortBy fst\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1088 > > |> List.fold\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1089 > > (fun (prev, acc) (ticks, event) ->\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1090 > > ticks, (ticks, (if prev = 0L then 0L else ticks - prev), event)\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1091 > > :: acc\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1092 > > )\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1093 > > (0L, [[]])\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1094 > > |> snd\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1095 > > |> List.rev\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1096 > > |> List.map (fun (diff, n, event) -> $\"{n} / {diff} / {event}\" |>\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1097 > > SpiralSm.ellipsis_end 100L)\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1098 > > |> SpiralSm.concat \"\\n\"\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1099 > > let _locals () = $\"eventsLog: \\n{eventsLog} / {_locals ()}\"\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1100 > > trace Debug (fun () -> \"FileSystem.testEventsRaw\") _locals\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1101 > >\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1102 > > events\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1103 > > |> Seq.toList\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1104 > > |> List.sortBy fst\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1105 > > |> List.map snd\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1106 > > |> List.fold\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1107 > > (fun acc event ->\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1108 > > match acc, event with\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1109 > > | FileSystemChange.Changed (lastPath, Some lastContent) as lastEvent\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1110 > > :: acc,\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1111 > > FileSystemChange.Changed (path, Some content)\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1112 > > when lastPath = path && content |> SpiralSm.starts_with\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1113 > > lastContent\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1114 > > ->\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1115 > > event :: acc\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1116 > > | _ -> event :: acc\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1117 > > )\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1118 > > [[]]\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1119 > > |> List.rev\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1120 > >\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1121 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1122 > > \u001B[38;2;146;146;178m│\u001B[0m #### fast (test)\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1123 > >\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1124 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1125 > > //// test\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1126 > >\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1127 > > let inline write path = async {\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1128 > > let n = 2\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1129 > >\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1130 > > for i = 1 to n do\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1131 > > do! $\"a{i}\" |> SpiralFileSystem.write_all_text_async (path >\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1132 > > $\"file{i}.txt\")\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1133 > >\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1134 > > do! Async.Sleep 250\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1135 > >\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1136 > > for i = 1 to n do\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1137 > > do! $\"b{i}\" |> SpiralFileSystem.write_all_text_async (path >\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1138 > > $\"file{i}.txt\")\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1139 > >\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1140 > > do! Async.Sleep 250\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1141 > >\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1142 > > for i = 1 to n do\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1143 > > do! path > $\"file{i}.txt\" |> SpiralFileSystem.move_file_async (path\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1144 > > > $\"file_{i}.txt\") |> Async.Ignore\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1145 > >\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1146 > > do! Async.Sleep 250\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1147 > >\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1148 > > for i = 1 to n do\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1149 > > do! $\"c{i}\" |> SpiralFileSystem.write_all_text_async (path >\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1150 > > $\"file_{i}.txt\")\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1151 > >\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1152 > > do! Async.Sleep 250\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1153 > >\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1154 > > for i = 1 to n do\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1155 > > do! SpiralFileSystem.delete_file_async (path > $\"file_{i}.txt\") |>\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1156 > > Async.Ignore\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1157 > >\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1158 > > do! Async.Sleep 250\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1159 > > }\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1160 > >\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1161 > > let inline run () =\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1162 > > let events = testEventsRaw watchDirectory write\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1163 > >\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1164 > > events\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1165 > > |> _sequenceEqual [[\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1166 > > FileSystemChange.Created (\"file1.txt\", Some \"a1\")\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1167 > > FileSystemChange.Changed (\"file1.txt\", Some \"a1\")\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1168 > > FileSystemChange.Created (\"file2.txt\", Some \"a2\")\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1169 > > FileSystemChange.Changed (\"file2.txt\", Some \"a2\")\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1170 > >\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1171 > > FileSystemChange.Changed (\"file1.txt\", Some \"b1\")\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1172 > > FileSystemChange.Changed (\"file2.txt\", Some \"b2\")\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1173 > >\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1174 > > FileSystemChange.Renamed (\"file1.txt\", (\"file_1.txt\", Some \"b1\"))\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1175 > > FileSystemChange.Renamed (\"file2.txt\", (\"file_2.txt\", Some \"b2\"))\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1176 > >\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1177 > > FileSystemChange.Changed (\"file_1.txt\", Some \"c1\")\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1178 > > FileSystemChange.Changed (\"file_2.txt\", Some \"c2\")\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1179 > >\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1180 > > FileSystemChange.Deleted \"file_1.txt\"\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1181 > > FileSystemChange.Deleted \"file_2.txt\"\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1182 > > ]]\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1183 > >\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1184 > > run\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1185 > > |> retry_fn 3\n",
+ "00:01:54 \u001B[90mv\u001B[0m #1186 > > |> _assertEqual (Some ())\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1187 > >\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1188 > > ── [ 3.57s - stdout ] ──────────────────────────────────────────────────────────\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1189 > > \u001B[38;2;38;140;38m│\u001B[0m Some ()\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1190 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1191 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:06 \u001B[94md\u001B[0m #1 FileSystem.watchWithFilter / Disposing\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1192 > > watch stream / filter: FileName, LastWrite\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1193 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:06 \u001B[94md\u001B[0m #2 FileSystem.testEventsRaw / eventsLog:\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1194 > > \u001B[38;2;38;140;38m│\u001B[0m 0 / 638732381950194874 / Created (\"file1.txt\", Some \"a1\")\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1195 > > \u001B[38;2;38;140;38m│\u001B[0m 1 / 638732381950194875 / Changed (\"file1.txt\", Some \"a1\")\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1196 > > \u001B[38;2;38;140;38m│\u001B[0m 24609 / 638732381950219484 / Changed (\"file1.txt\", Some \"a1\")\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1197 > > \u001B[38;2;38;140;38m│\u001B[0m 1399 / 638732381950220883 / Created (\"file2.txt\", Some \"a2\")\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1198 > > \u001B[38;2;38;140;38m│\u001B[0m 1 / 638732381950220884 / Changed (\"file2.txt\", Some \"a2\")\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1199 > > \u001B[38;2;38;140;38m│\u001B[0m 42 / 638732381950220926 / Changed (\"file2.txt\", Some \"a2\")\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1200 > > \u001B[38;2;38;140;38m│\u001B[0m 2455120 / 638732381952676046 / Changed (\"file1.txt\", Some\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1201 > > \"b1\")\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1202 > > \u001B[38;2;38;140;38m│\u001B[0m 4608 / 638732381952680654 / Changed (\"file1.txt\", Some \"b1\")\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1203 > > \u001B[38;2;38;140;38m│\u001B[0m 18870 / 638732381952699524 / Changed (\"file2.txt\", Some \"b2\")\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1204 > > \u001B[38;2;38;140;38m│\u001B[0m 4441 / 638732381952703965 / Changed (\"file2.txt\", Some \"b2\")\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1205 > > \u001B[38;2;38;140;38m│\u001B[0m 2509411 / 638732381955213376 / Renamed (\"file1.txt\",\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1206 > > (\"file_1.txt\", Some \"b1\"))\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1207 > > \u001B[38;2;38;140;38m│\u001B[0m 15004 / 638732381955228380 / Renamed (\"file2.txt\",\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1208 > > (\"file_2.txt\", Some \"b2\"))\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1209 > > \u001B[38;2;38;140;38m│\u001B[0m 2531890 / 638732381957760270 / Changed (\"file_1.txt\", Some\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1210 > > \"c1\")\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1211 > > \u001B[38;2;38;140;38m│\u001B[0m 1355 / 638732381957761625 / Changed (\"file_1.txt\", Some \"c1\")\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1212 > > \u001B[38;2;38;140;38m│\u001B[0m 8176 / 638732381957769801 / Changed (\"file_2.txt\", Some \"c2\")\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1213 > > \u001B[38;2;38;140;38m│\u001B[0m 1006 / 638732381957770807 / Changed (\"file_2.txt\", Some \"c2\")\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1214 > > \u001B[38;2;38;140;38m│\u001B[0m 2531083 / 638732381960301890 / Deleted \"file_1.txt\"\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1215 > > \u001B[38;2;38;140;38m│\u001B[0m 2375 / 638732381960304265 / Deleted \"file_2.txt\"\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1216 > > \u001B[38;2;38;140;38m│\u001B[0m [Created (\"file1.txt\", Some \"a1\"); Changed (\"file1.txt\", Some\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1217 > > \"a1\"); Created (\"file2.txt\", Some \"a2\");\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1218 > > \u001B[38;2;38;140;38m│\u001B[0m Changed (\"file2.txt\", Some \"a2\"); Changed (\"file1.txt\", Some\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1219 > > \"b1\"); Changed (\"file2.txt\", Some \"b2\");\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1220 > > \u001B[38;2;38;140;38m│\u001B[0m Renamed (\"file1.txt\", (\"file_1.txt\", Some \"b1\")); Renamed\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1221 > > (\"file2.txt\", (\"file_2.txt\", Some \"b2\"));\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1222 > > \u001B[38;2;38;140;38m│\u001B[0m Changed (\"file_1.txt\", Some \"c1\"); Changed (\"file_2.txt\",\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1223 > > Some \"c2\"); Deleted \"file_1.txt\"; Deleted \"file_2.txt\"]\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1224 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1225 > > \u001B[38;2;38;140;38m│\u001B[0m Some ()\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1226 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1227 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1228 > >\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1229 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1230 > > \u001B[38;2;146;146;178m│\u001B[0m #### slow (test)\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1231 > >\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1232 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1233 > > //// test\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1234 > >\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1235 > > let inline write path = async {\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1236 > > let n = 2\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1237 > >\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1238 > > let contents =\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1239 > > [[ 1 .. n ]]\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1240 > > |> List.map (string >> String.replicate 1_000_000)\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1241 > >\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1242 > > for i = 1 to n do\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1243 > > do! $\"{contents.[[i - 1]]}a\" |> SpiralFileSystem.write_all_text_async\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1244 > > (path > $\"file{i}.txt\")\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1245 > >\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1246 > > do! Async.Sleep 1500\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1247 > >\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1248 > > for i = 1 to n do\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1249 > > do! $\"{contents.[[i - 1]]}b\" |> SpiralFileSystem.write_all_text_async\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1250 > > (path > $\"file{i}.txt\")\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1251 > >\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1252 > > do! Async.Sleep 1500\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1253 > >\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1254 > > for i = 1 to n do\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1255 > > do! path > $\"file{i}.txt\" |> SpiralFileSystem.move_file_async (path\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1256 > > > $\"file_{i}.txt\") |> Async.Ignore\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1257 > >\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1258 > > do! Async.Sleep 1500\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1259 > >\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1260 > > for i = 1 to n do\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1261 > > do! $\"{contents.[[i - 1]]}c\" |> SpiralFileSystem.write_all_text_async\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1262 > > (path > $\"file_{i}.txt\")\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1263 > >\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1264 > > do! Async.Sleep 1500\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1265 > >\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1266 > > for i = 1 to n do\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1267 > > do! SpiralFileSystem.delete_file_async (path > $\"file_{i}.txt\") |>\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1268 > > Async.Ignore\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1269 > >\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1270 > > do! Async.Sleep 1500\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1271 > > }\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1272 > >\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1273 > > let inline run () =\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1274 > > let events =\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1275 > > testEventsRaw watchDirectory write\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1276 > > |> List.map (function\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1277 > > | FileSystemChange.Changed (path, Some content) ->\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1278 > > FileSystemChange.Changed (path, content |> Seq.distinct |>\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1279 > > Seq.map string |> SpiralSm.concat \"\" |> Some)\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1280 > > | FileSystemChange.Created (path, Some content) ->\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1281 > > FileSystemChange.Created (path, content |> Seq.distinct |>\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1282 > > Seq.map string |> SpiralSm.concat \"\" |> Some)\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1283 > > | FileSystemChange.Renamed (oldPath, (newPath, Some content)) ->\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1284 > > FileSystemChange.Renamed (\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1285 > > oldPath,\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1286 > > (newPath, content |> Seq.distinct |> Seq.map string |>\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1287 > > SpiralSm.concat \"\" |> Some)\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1288 > > )\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1289 > > | event -> event\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1290 > > )\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1291 > >\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1292 > > events\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1293 > > |> _sequenceEqual [[\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1294 > > FileSystemChange.Created (\"file1.txt\", Some \"1a\")\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1295 > > FileSystemChange.Changed (\"file1.txt\", Some \"1a\")\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1296 > > FileSystemChange.Created (\"file2.txt\", Some \"2a\")\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1297 > > FileSystemChange.Changed (\"file2.txt\", Some \"2a\")\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1298 > >\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1299 > > FileSystemChange.Changed (\"file1.txt\", Some \"1b\")\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1300 > > FileSystemChange.Changed (\"file2.txt\", Some \"2b\")\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1301 > >\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1302 > > FileSystemChange.Renamed (\"file1.txt\", (\"file_1.txt\", Some \"1b\"))\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1303 > > FileSystemChange.Renamed (\"file2.txt\", (\"file_2.txt\", Some \"2b\"))\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1304 > >\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1305 > > FileSystemChange.Changed (\"file_1.txt\", Some \"1c\")\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1306 > > FileSystemChange.Changed (\"file_2.txt\", Some \"2c\")\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1307 > >\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1308 > > FileSystemChange.Deleted \"file_1.txt\"\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1309 > > FileSystemChange.Deleted \"file_2.txt\"\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1310 > > ]]\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1311 > >\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1312 > > run\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1313 > > |> retry_fn 5\n",
+ "00:01:58 \u001B[90mv\u001B[0m #1314 > > |> _assertEqual (Some ())\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1315 > >\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1316 > > ── [ 10.55s - stdout ] ─────────────────────────────────────────────────────────\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1317 > > \u001B[38;2;38;140;38m│\u001B[0m Some ()\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1318 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1319 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:16 \u001B[94md\u001B[0m #3 FileSystem.watchWithFilter / Disposing\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1320 > > watch stream / filter: FileName, LastWrite\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1321 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:16 \u001B[94md\u001B[0m #4 FileSystem.testEventsRaw / eventsLog:\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1322 > > \u001B[38;2;38;140;38m│\u001B[0m 0 / 638732381988701302 / Created\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1323 > > \u001B[38;2;38;140;38m│\u001B[0m (\"file1.txt\",\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1324 > > \u001B[38;2;38;140;38m│\u001B[0m ...11111111111111111111111111111111111111111111111a\")\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1325 > > \u001B[38;2;38;140;38m│\u001B[0m 1 / 638732381988701303 / Changed\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1326 > > \u001B[38;2;38;140;38m│\u001B[0m (\"file1.txt\",\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1327 > > \u001B[38;2;38;140;38m│\u001B[0m ...11111111111111111111111111111111111111111111111a\")\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1328 > > \u001B[38;2;38;140;38m│\u001B[0m 69249 / 638732381988770552 / Changed\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1329 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1330 > > (\"file1.txt...11111111111111111111111111111111111111111111111a\")\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1331 > > \u001B[38;2;38;140;38m│\u001B[0m 9668 / 638732381988780220 / Created\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1332 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1333 > > (\"file2.txt\"...22222222222222222222222222222222222222222222222a\")\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1334 > > \u001B[38;2;38;140;38m│\u001B[0m 1 / 638732381988780221 / Changed\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1335 > > \u001B[38;2;38;140;38m│\u001B[0m (\"file2.txt\",\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1336 > > \u001B[38;2;38;140;38m│\u001B[0m ...22222222222222222222222222222222222222222222222a\")\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1337 > > \u001B[38;2;38;140;38m│\u001B[0m 85334 / 638732381988865555 / Changed\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1338 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1339 > > (\"file2.txt...22222222222222222222222222222222222222222222222a\")\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1340 > > \u001B[38;2;38;140;38m│\u001B[0m 14955620 / 638732382003821175 / Changed\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1341 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1342 > > (\"file1....11111111111111111111111111111111111111111111111b\")\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1343 > > \u001B[38;2;38;140;38m│\u001B[0m 47302 / 638732382003868477 / Changed\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1344 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1345 > > (\"file1.txt...11111111111111111111111111111111111111111111111b\")\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1346 > > \u001B[38;2;38;140;38m│\u001B[0m 11204 / 638732382003879681 / Changed\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1347 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1348 > > (\"file2.txt...22222222222222222222222222222222222222222222222b\")\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1349 > > \u001B[38;2;38;140;38m│\u001B[0m 37166 / 638732382003916847 / Changed\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1350 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1351 > > (\"file2.txt...22222222222222222222222222222222222222222222222b\")\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1352 > > \u001B[38;2;38;140;38m│\u001B[0m 14974036 / 638732382018890883 / Renamed\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1353 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1354 > > (\"file1....1111111111111111111111111111111111111111111111b\"))\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1355 > > \u001B[38;2;38;140;38m│\u001B[0m 3754 / 638732382018894637 / Renamed\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1356 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1357 > > (\"file2.txt\"...2222222222222222222222222222222222222222222222b\"))\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1358 > > \u001B[38;2;38;140;38m│\u001B[0m 15043295 / 638732382033937932 / Changed\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1359 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1360 > > (\"file_1...11111111111111111111111111111111111111111111111c\")\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1361 > > \u001B[38;2;38;140;38m│\u001B[0m 58380 / 638732382033996312 / Changed\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1362 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1363 > > (\"file_1.tx...11111111111111111111111111111111111111111111111c\")\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1364 > > \u001B[38;2;38;140;38m│\u001B[0m 25047 / 638732382034021359 / Changed\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1365 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1366 > > (\"file_2.tx...22222222222222222222222222222222222222222222222c\")\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1367 > > \u001B[38;2;38;140;38m│\u001B[0m 67638 / 638732382034088997 / Changed\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1368 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1369 > > (\"file_2.tx...22222222222222222222222222222222222222222222222c\")\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1370 > > \u001B[38;2;38;140;38m│\u001B[0m 15204020 / 638732382049293017 / Deleted \"file_1.txt\"\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1371 > > \u001B[38;2;38;140;38m│\u001B[0m 6504 / 638732382049299521 / Deleted \"file_2.txt\"\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1372 > > \u001B[38;2;38;140;38m│\u001B[0m [Created (\"file1.txt\", Some \"1a\"); Changed (\"file1.txt\", Some\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1373 > > \"1a\"); Created (\"file2.txt\", Some \"2a\");\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1374 > > \u001B[38;2;38;140;38m│\u001B[0m Changed (\"file2.txt\", Some \"2a\"); Changed (\"file1.txt\", Some\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1375 > > \"1b\"); Changed (\"file2.txt\", Some \"2b\");\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1376 > > \u001B[38;2;38;140;38m│\u001B[0m Renamed (\"file1.txt\", (\"file_1.txt\", Some \"1b\")); Renamed\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1377 > > (\"file2.txt\", (\"file_2.txt\", Some \"2b\"));\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1378 > > \u001B[38;2;38;140;38m│\u001B[0m Changed (\"file_1.txt\", Some \"1c\"); Changed (\"file_2.txt\",\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1379 > > Some \"2c\"); Deleted \"file_1.txt\"; Deleted \"file_2.txt\"]\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1380 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1381 > > \u001B[38;2;38;140;38m│\u001B[0m Some ()\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1382 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1383 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1384 > >\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1385 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1386 > > \u001B[38;2;146;146;178m│\u001B[0m ### testEventsSorted (test)\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1387 > >\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1388 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1389 > > //// test\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1390 > >\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1391 > > let inline sortEvent event =\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1392 > > match event with\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1393 > > | FileSystemChange.Failure _ -> 0\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1394 > > | FileSystemChange.Created _ -> 1\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1395 > > | FileSystemChange.Changed _ -> 2\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1396 > > | FileSystemChange.Renamed (_oldPath, _) -> 3\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1397 > > | FileSystemChange.Deleted _ -> 4\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1398 > >\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1399 > > let inline formatEvents events =\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1400 > > events\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1401 > > |> Seq.toList\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1402 > > |> List.sortBy (snd >> sortEvent)\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1403 > > |> List.choose (fun (ticks, event) ->\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1404 > > match event with\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1405 > > | FileSystemChange.Failure _ ->\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1406 > > None\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1407 > > | FileSystemChange.Changed (path, _) ->\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1408 > > Some (ticks, System.IO.Path.GetFileName path, nameof\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1409 > > FileSystemChangeType.Changed)\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1410 > > | FileSystemChange.Created (path, _) ->\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1411 > > Some (ticks, System.IO.Path.GetFileName path, nameof\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1412 > > FileSystemChangeType.Created)\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1413 > > | FileSystemChange.Deleted path ->\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1414 > > Some (ticks, System.IO.Path.GetFileName path, nameof\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1415 > > FileSystemChangeType.Deleted)\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1416 > > | FileSystemChange.Renamed (_oldPath, (path, _)) ->\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1417 > > Some (ticks, System.IO.Path.GetFileName path, nameof\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1418 > > FileSystemChangeType.Renamed)\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1419 > > )\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1420 > > |> List.sortBy (fun (_, path, _) -> path)\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1421 > > |> List.distinctBy (fun (_, path, event) -> path, event)\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1422 > >\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1423 > > let inline testEventsSorted\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1424 > > (watchFn : string -> FSharp.Control.AsyncSeq *\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1425 > > IDisposable)\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1426 > > write\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1427 > > =\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1428 > > let struct (tempDir, tempDisposable) =\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1429 > > \"FileSystem.testEventsSorted\"\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1430 > > |> SpiralCrypto.hash_text\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1431 > > |> SpiralFileSystem.create_temp_dir'\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1432 > > let stream, disposable = watchFn tempDir\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1433 > >\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1434 > > let events = System.Collections.Concurrent.ConcurrentBag ()\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1435 > >\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1436 > > let inline iter () =\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1437 > > stream\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1438 > > |> FSharp.Control.AsyncSeq.iterAsyncParallel (fun event -> async {\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1439 > > events.Add event })\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1440 > >\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1441 > > let run = async {\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1442 > > let! _ = iter () |> Async.StartChild\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1443 > > do! Async.Sleep 250\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1444 > > return! write tempDir\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1445 > > }\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1446 > >\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1447 > > try\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1448 > > run\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1449 > > |> Async.runWithTimeout 5000\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1450 > > |> _assertEqual (Some ())\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1451 > > finally\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1452 > > disposable.Dispose ()\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1453 > > tempDisposable.Dispose ()\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1454 > >\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1455 > > let events = formatEvents events\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1456 > >\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1457 > > let eventMap =\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1458 > > events\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1459 > > |> List.map (fun (ticks, path, event) -> path, (event, ticks))\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1460 > > |> List.groupBy fst\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1461 > > |> List.map (fun (path, events) ->\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1462 > > let event, _ticks =\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1463 > > events\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1464 > > |> List.map snd\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1465 > > |> List.sortByDescending snd\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1466 > > |> List.head\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1467 > >\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1468 > > path, event\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1469 > > )\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1470 > > |> Map.ofList\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1471 > >\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1472 > > let eventList =\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1473 > > events\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1474 > > |> List.map (fun (_ticks, path, event) -> path, event)\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1475 > >\n",
+ "00:02:08 \u001B[90mv\u001B[0m #1476 > > eventMap, eventList\n",
+ "00:02:09 \u001B[90mv\u001B[0m #1477 > >\n",
+ "00:02:09 \u001B[90mv\u001B[0m #1478 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
+ "00:02:09 \u001B[90mv\u001B[0m #1479 > > \u001B[38;2;146;146;178m│\u001B[0m #### create and delete (test)\n",
+ "00:02:09 \u001B[90mv\u001B[0m #1480 > >\n",
+ "00:02:09 \u001B[90mv\u001B[0m #1481 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:02:09 \u001B[90mv\u001B[0m #1482 > > //// test\n",
+ "00:02:09 \u001B[90mv\u001B[0m #1483 > >\n",
+ "00:02:09 \u001B[90mv\u001B[0m #1484 > > let inline write path = async {\n",
+ "00:02:09 \u001B[90mv\u001B[0m #1485 > > let n = 3\n",
+ "00:02:09 \u001B[90mv\u001B[0m #1486 > >\n",
+ "00:02:09 \u001B[90mv\u001B[0m #1487 > > for i = 1 to n do\n",
+ "00:02:09 \u001B[90mv\u001B[0m #1488 > > do! $\"{i}\" |> SpiralFileSystem.write_all_text_async (path >\n",
+ "00:02:09 \u001B[90mv\u001B[0m #1489 > > $\"file{i}.txt\")\n",
+ "00:02:09 \u001B[90mv\u001B[0m #1490 > >\n",
+ "00:02:09 \u001B[90mv\u001B[0m #1491 > > for i = 1 to n do\n",
+ "00:02:09 \u001B[90mv\u001B[0m #1492 > > do! SpiralFileSystem.delete_file_async (path > $\"file{i}.txt\") |>\n",
+ "00:02:09 \u001B[90mv\u001B[0m #1493 > > Async.Ignore\n",
+ "00:02:09 \u001B[90mv\u001B[0m #1494 > >\n",
+ "00:02:09 \u001B[90mv\u001B[0m #1495 > > do! Async.Sleep 150\n",
+ "00:02:09 \u001B[90mv\u001B[0m #1496 > > }\n",
+ "00:02:09 \u001B[90mv\u001B[0m #1497 > >\n",
+ "00:02:09 \u001B[90mv\u001B[0m #1498 > > let inline run () =\n",
+ "00:02:09 \u001B[90mv\u001B[0m #1499 > > let eventMap, eventList = testEventsSorted (watchDirectory (fun _ -> false))\n",
+ "00:02:09 \u001B[90mv\u001B[0m #1500 > > write\n",
+ "00:02:09 \u001B[90mv\u001B[0m #1501 > >\n",
+ "00:02:09 \u001B[90mv\u001B[0m #1502 > > [[\n",
+ "00:02:09 \u001B[90mv\u001B[0m #1503 > > \"file1.txt\", nameof FileSystemChangeType.Created\n",
+ "00:02:09 \u001B[90mv\u001B[0m #1504 > > \"file1.txt\", nameof FileSystemChangeType.Changed\n",
+ "00:02:09 \u001B[90mv\u001B[0m #1505 > > \"file1.txt\", nameof FileSystemChangeType.Deleted\n",
+ "00:02:09 \u001B[90mv\u001B[0m #1506 > >\n",
+ "00:02:09 \u001B[90mv\u001B[0m #1507 > > \"file2.txt\", nameof FileSystemChangeType.Created\n",
+ "00:02:09 \u001B[90mv\u001B[0m #1508 > > \"file2.txt\", nameof FileSystemChangeType.Changed\n",
+ "00:02:09 \u001B[90mv\u001B[0m #1509 > > \"file2.txt\", nameof FileSystemChangeType.Deleted\n",
+ "00:02:09 \u001B[90mv\u001B[0m #1510 > >\n",
+ "00:02:09 \u001B[90mv\u001B[0m #1511 > > \"file3.txt\", nameof FileSystemChangeType.Created\n",
+ "00:02:09 \u001B[90mv\u001B[0m #1512 > > \"file3.txt\", nameof FileSystemChangeType.Changed\n",
+ "00:02:09 \u001B[90mv\u001B[0m #1513 > > \"file3.txt\", nameof FileSystemChangeType.Deleted\n",
+ "00:02:09 \u001B[90mv\u001B[0m #1514 > > ]]\n",
+ "00:02:09 \u001B[90mv\u001B[0m #1515 > > |> _sequenceEqual eventList\n",
+ "00:02:09 \u001B[90mv\u001B[0m #1516 > >\n",
+ "00:02:09 \u001B[90mv\u001B[0m #1517 > > [[\n",
+ "00:02:09 \u001B[90mv\u001B[0m #1518 > > \"file1.txt\", nameof FileSystemChangeType.Deleted\n",
+ "00:02:09 \u001B[90mv\u001B[0m #1519 > > \"file2.txt\", nameof FileSystemChangeType.Deleted\n",
+ "00:02:09 \u001B[90mv\u001B[0m #1520 > > \"file3.txt\", nameof FileSystemChangeType.Deleted\n",
+ "00:02:09 \u001B[90mv\u001B[0m #1521 > > ]]\n",
+ "00:02:09 \u001B[90mv\u001B[0m #1522 > > |> Map.ofList\n",
+ "00:02:09 \u001B[90mv\u001B[0m #1523 > > |> _sequenceEqual eventMap\n",
+ "00:02:09 \u001B[90mv\u001B[0m #1524 > >\n",
+ "00:02:09 \u001B[90mv\u001B[0m #1525 > > run\n",
+ "00:02:09 \u001B[90mv\u001B[0m #1526 > > |> retry_fn 3\n",
+ "00:02:09 \u001B[90mv\u001B[0m #1527 > > |> _assertEqual (Some ())\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1528 > >\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1529 > > ── [ 1.98s - stdout ] ──────────────────────────────────────────────────────────\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1530 > > \u001B[38;2;38;140;38m│\u001B[0m Some ()\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1531 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1532 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:18 \u001B[94md\u001B[0m #5 FileSystem.watchWithFilter / Disposing\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1533 > > watch stream / filter: FileName, LastWrite\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1534 > > \u001B[38;2;38;140;38m│\u001B[0m [(\"file1.txt\", \"Created\"); (\"file1.txt\", \"Changed\");\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1535 > > (\"file1.txt\", \"Deleted\"); (\"file2.txt\", \"Created\");\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1536 > > \u001B[38;2;38;140;38m│\u001B[0m (\"file2.txt\", \"Changed\"); (\"file2.txt\", \"Deleted\");\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1537 > > (\"file3.txt\", \"Created\"); (\"file3.txt\", \"Changed\");\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1538 > > \u001B[38;2;38;140;38m│\u001B[0m (\"file3.txt\", \"Deleted\")]\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1539 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1540 > > \u001B[38;2;38;140;38m│\u001B[0m map [(\"file1.txt\", \"Deleted\"); (\"file2.txt\", \"Deleted\");\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1541 > > (\"file3.txt\", \"Deleted\")]\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1542 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1543 > > \u001B[38;2;38;140;38m│\u001B[0m Some ()\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1544 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1545 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1546 > >\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1547 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1548 > > \u001B[38;2;146;146;178m│\u001B[0m #### change (test)\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1549 > >\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1550 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1551 > > //// test\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1552 > >\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1553 > > let inline write path = async {\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1554 > > let n = 2\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1555 > >\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1556 > > for i = 1 to n do\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1557 > > do! $\"{i}\" |> SpiralFileSystem.write_all_text_async (path >\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1558 > > $\"file{i}.txt\")\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1559 > >\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1560 > > for i = 1 to n do\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1561 > > do! \"\" |> SpiralFileSystem.write_all_text_async (path >\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1562 > > $\"file{i}.txt\")\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1563 > >\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1564 > > for i = 1 to n do\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1565 > > do! SpiralFileSystem.delete_file_async (path > $\"file{i}.txt\") |>\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1566 > > Async.Ignore\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1567 > >\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1568 > > do! Async.Sleep 150\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1569 > > }\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1570 > >\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1571 > > let inline run () =\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1572 > > let eventMap, eventList = testEventsSorted (watchDirectory (fun _ -> false))\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1573 > > write\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1574 > >\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1575 > > [[\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1576 > > \"file1.txt\", nameof FileSystemChangeType.Created\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1577 > > \"file1.txt\", nameof FileSystemChangeType.Changed\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1578 > > \"file1.txt\", nameof FileSystemChangeType.Deleted\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1579 > >\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1580 > > \"file2.txt\", nameof FileSystemChangeType.Created\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1581 > > \"file2.txt\", nameof FileSystemChangeType.Changed\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1582 > > \"file2.txt\", nameof FileSystemChangeType.Deleted\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1583 > > ]]\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1584 > > |> _sequenceEqual eventList\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1585 > >\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1586 > > [[\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1587 > > \"file1.txt\", nameof FileSystemChangeType.Deleted\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1588 > > \"file2.txt\", nameof FileSystemChangeType.Deleted\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1589 > > ]]\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1590 > > |> Map.ofList\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1591 > > |> _sequenceEqual eventMap\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1592 > >\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1593 > > run\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1594 > > |> retry_fn 3\n",
+ "00:02:11 \u001B[90mv\u001B[0m #1595 > > |> _assertEqual (Some ())\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1596 > >\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1597 > > ── [ 2.25s - stdout ] ──────────────────────────────────────────────────────────\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1598 > > \u001B[38;2;38;140;38m│\u001B[0m Some ()\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1599 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1600 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:21 \u001B[94md\u001B[0m #6 FileSystem.watchWithFilter / Disposing\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1601 > > watch stream / filter: FileName, LastWrite\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1602 > > \u001B[38;2;38;140;38m│\u001B[0m [(\"file1.txt\", \"Created\"); (\"file1.txt\", \"Changed\");\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1603 > > (\"file1.txt\", \"Deleted\"); (\"file2.txt\", \"Created\");\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1604 > > \u001B[38;2;38;140;38m│\u001B[0m (\"file2.txt\", \"Changed\"); (\"file2.txt\", \"Deleted\")]\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1605 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1606 > > \u001B[38;2;38;140;38m│\u001B[0m map [(\"file1.txt\", \"Deleted\"); (\"file2.txt\", \"Deleted\")]\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1607 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1608 > > \u001B[38;2;38;140;38m│\u001B[0m Some ()\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1609 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1610 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1611 > >\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1612 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1613 > > \u001B[38;2;146;146;178m│\u001B[0m #### rename (test)\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1614 > >\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1615 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1616 > > //// test\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1617 > >\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1618 > > let inline write path = async {\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1619 > > let n = 2\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1620 > >\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1621 > > for i = 1 to n do\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1622 > > do! $\"{i}\" |> SpiralFileSystem.write_all_text_async (path >\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1623 > > $\"file{i}.txt\")\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1624 > >\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1625 > > for i = 1 to n do\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1626 > > do! path > $\"file{i}.txt\" |> SpiralFileSystem.move_file_async (path\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1627 > > > $\"file_{i}.txt\") |> Async.Ignore\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1628 > >\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1629 > > for i = 1 to n do\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1630 > > do! SpiralFileSystem.delete_file_async (path > $\"file_{i}.txt\") |>\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1631 > > Async.Ignore\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1632 > >\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1633 > > do! Async.Sleep 150\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1634 > > }\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1635 > >\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1636 > > let inline run () =\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1637 > > let eventMap, eventList = testEventsSorted (watchDirectory (fun _ -> false))\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1638 > > write\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1639 > >\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1640 > > [[\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1641 > > \"file1.txt\", nameof FileSystemChangeType.Created\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1642 > > \"file1.txt\", nameof FileSystemChangeType.Changed\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1643 > > \"file2.txt\", nameof FileSystemChangeType.Created\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1644 > > \"file2.txt\", nameof FileSystemChangeType.Changed\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1645 > >\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1646 > > \"file_1.txt\", nameof FileSystemChangeType.Renamed\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1647 > > \"file_1.txt\", nameof FileSystemChangeType.Deleted\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1648 > >\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1649 > > \"file_2.txt\", nameof FileSystemChangeType.Renamed\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1650 > > \"file_2.txt\", nameof FileSystemChangeType.Deleted\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1651 > > ]]\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1652 > > |> _sequenceEqual eventList\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1653 > >\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1654 > > [[\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1655 > > \"file1.txt\", nameof FileSystemChangeType.Changed\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1656 > > \"file2.txt\", nameof FileSystemChangeType.Changed\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1657 > > \"file_1.txt\", nameof FileSystemChangeType.Deleted\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1658 > > \"file_2.txt\", nameof FileSystemChangeType.Deleted\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1659 > > ]]\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1660 > > |> Map.ofList\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1661 > > |> _sequenceEqual eventMap\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1662 > >\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1663 > > run\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1664 > > |> retry_fn 3\n",
+ "00:02:13 \u001B[90mv\u001B[0m #1665 > > |> _assertEqual (Some ())\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1666 > >\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1667 > > ── [ 2.34s - stdout ] ──────────────────────────────────────────────────────────\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1668 > > \u001B[38;2;38;140;38m│\u001B[0m Some ()\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1669 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1670 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:23 \u001B[94md\u001B[0m #7 FileSystem.watchWithFilter / Disposing\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1671 > > watch stream / filter: FileName, LastWrite\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1672 > > \u001B[38;2;38;140;38m│\u001B[0m [(\"file1.txt\", \"Created\"); (\"file1.txt\", \"Changed\");\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1673 > > (\"file2.txt\", \"Created\"); (\"file2.txt\", \"Changed\");\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1674 > > \u001B[38;2;38;140;38m│\u001B[0m (\"file_1.txt\", \"Renamed\"); (\"file_1.txt\", \"Deleted\");\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1675 > > (\"file_2.txt\", \"Renamed\"); (\"file_2.txt\", \"Deleted\")]\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1676 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1677 > > \u001B[38;2;38;140;38m│\u001B[0m map [(\"file1.txt\", \"Changed\"); (\"file2.txt\", \"Changed\");\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1678 > > (\"file_1.txt\", \"Deleted\"); (\"file_2.txt\", \"Deleted\")]\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1679 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1680 > > \u001B[38;2;38;140;38m│\u001B[0m Some ()\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1681 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1682 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1683 > >\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1684 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1685 > > \u001B[38;2;146;146;178m│\u001B[0m #### full (test)\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1686 > >\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1687 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1688 > > //// test\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1689 > >\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1690 > > let inline write path = async {\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1691 > > let n = 2\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1692 > >\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1693 > > for i = 1 to n do\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1694 > > do! $\"{i}\" |> SpiralFileSystem.write_all_text_async (path >\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1695 > > $\"file{i}.txt\")\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1696 > >\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1697 > > for i = 1 to n do\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1698 > > do! \"\" |> SpiralFileSystem.write_all_text_async (path >\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1699 > > $\"file{i}.txt\")\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1700 > >\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1701 > > for i = 1 to n do\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1702 > > do! path > $\"file{i}.txt\" |> SpiralFileSystem.move_file_async (path\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1703 > > > $\"file_{i}.txt\") |> Async.Ignore\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1704 > >\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1705 > > for i = 1 to n do\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1706 > > do! $\"{i}\" |> SpiralFileSystem.write_all_text_async (path >\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1707 > > $\"file_{i}.txt\")\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1708 > >\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1709 > > for i = 1 to n do\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1710 > > do! SpiralFileSystem.delete_file_async (path > $\"file_{i}.txt\") |>\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1711 > > Async.Ignore\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1712 > >\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1713 > > do! Async.Sleep 150\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1714 > > }\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1715 > >\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1716 > > let inline run () =\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1717 > > let eventMap, eventList = testEventsSorted (watchDirectory (fun _ -> false))\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1718 > > write\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1719 > >\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1720 > > [[\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1721 > > \"file1.txt\", nameof FileSystemChangeType.Created\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1722 > > \"file1.txt\", nameof FileSystemChangeType.Changed\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1723 > > \"file2.txt\", nameof FileSystemChangeType.Created\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1724 > > \"file2.txt\", nameof FileSystemChangeType.Changed\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1725 > >\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1726 > > \"file_1.txt\", nameof FileSystemChangeType.Changed\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1727 > > \"file_1.txt\", nameof FileSystemChangeType.Renamed\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1728 > > \"file_1.txt\", nameof FileSystemChangeType.Deleted\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1729 > >\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1730 > > \"file_2.txt\", nameof FileSystemChangeType.Changed\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1731 > > \"file_2.txt\", nameof FileSystemChangeType.Renamed\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1732 > > \"file_2.txt\", nameof FileSystemChangeType.Deleted\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1733 > > ]]\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1734 > > |> _sequenceEqual eventList\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1735 > >\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1736 > > [[\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1737 > > \"file1.txt\", nameof FileSystemChangeType.Changed\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1738 > > \"file2.txt\", nameof FileSystemChangeType.Changed\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1739 > > \"file_1.txt\", nameof FileSystemChangeType.Deleted\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1740 > > \"file_2.txt\", nameof FileSystemChangeType.Deleted\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1741 > > ]]\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1742 > > |> Map.ofList\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1743 > > |> _sequenceEqual eventMap\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1744 > >\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1745 > > run\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1746 > > |> retry_fn 3\n",
+ "00:02:15 \u001B[90mv\u001B[0m #1747 > > |> _assertEqual (Some ())\n",
+ "00:02:18 \u001B[90mv\u001B[0m #1748 > >\n",
+ "00:02:18 \u001B[90mv\u001B[0m #1749 > > ── [ 2.83s - stdout ] ──────────────────────────────────────────────────────────\n",
+ "00:02:18 \u001B[90mv\u001B[0m #1750 > > \u001B[38;2;38;140;38m│\u001B[0m Some ()\n",
+ "00:02:18 \u001B[90mv\u001B[0m #1751 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:18 \u001B[90mv\u001B[0m #1752 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:26 \u001B[94md\u001B[0m #8 FileSystem.watchWithFilter / Disposing\n",
+ "00:02:18 \u001B[90mv\u001B[0m #1753 > > watch stream / filter: FileName, LastWrite\n",
+ "00:02:18 \u001B[90mv\u001B[0m #1754 > > \u001B[38;2;38;140;38m│\u001B[0m [(\"file1.txt\", \"Created\"); (\"file1.txt\", \"Changed\");\n",
+ "00:02:18 \u001B[90mv\u001B[0m #1755 > > (\"file2.txt\", \"Created\"); (\"file2.txt\", \"Changed\");\n",
+ "00:02:18 \u001B[90mv\u001B[0m #1756 > > \u001B[38;2;38;140;38m│\u001B[0m (\"file_1.txt\", \"Changed\"); (\"file_1.txt\", \"Renamed\");\n",
+ "00:02:18 \u001B[90mv\u001B[0m #1757 > > (\"file_1.txt\", \"Deleted\"); (\"file_2.txt\", \"Changed\");\n",
+ "00:02:18 \u001B[90mv\u001B[0m #1758 > > \u001B[38;2;38;140;38m│\u001B[0m (\"file_2.txt\", \"Renamed\"); (\"file_2.txt\", \"Deleted\")]\n",
+ "00:02:18 \u001B[90mv\u001B[0m #1759 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:18 \u001B[90mv\u001B[0m #1760 > > \u001B[38;2;38;140;38m│\u001B[0m map [(\"file1.txt\", \"Changed\"); (\"file2.txt\", \"Changed\");\n",
+ "00:02:18 \u001B[90mv\u001B[0m #1761 > > (\"file_1.txt\", \"Deleted\"); (\"file_2.txt\", \"Deleted\")]\n",
+ "00:02:18 \u001B[90mv\u001B[0m #1762 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:18 \u001B[90mv\u001B[0m #1763 > > \u001B[38;2;38;140;38m│\u001B[0m Some ()\n",
+ "00:02:18 \u001B[90mv\u001B[0m #1764 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:18 \u001B[90mv\u001B[0m #1765 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:18 \u001B[90mv\u001B[0m #1766 > 00:00:45 \u001B[90mv\u001B[39m #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 30911 }\n",
+ "00:02:18 \u001B[90mv\u001B[0m #1767 > 00:00:45 \u001B[94md\u001B[39m #4 runtime.execute_with_options / { file_name = jupyter; arguments = [\"nbconvert\", \"c:/home/git/polyglot/lib/fsharp/FileSystem.dib.ipynb\", \"--to\", \"html\", \"--HTMLExporter.theme=dark\"]; options = { command = jupyter nbconvert \"c:/home/git/polyglot/lib/fsharp/FileSystem.dib.ipynb\" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }\n",
+ "00:02:19 \u001B[90mv\u001B[0m #1768 > 00:00:46 \u001B[90mv\u001B[39m #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/lib/fsharp/FileSystem.dib.ipynb to html\n",
+ "00:02:19 \u001B[90mv\u001B[0m #1769 > 00:00:46 \u001B[90mv\u001B[39m #6 ! C:\\Users\\i574n\\scoop\\apps\\python312\\current\\Lib\\site-packages\\nbformat\\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.\n",
+ "00:02:19 \u001B[90mv\u001B[0m #1770 > 00:00:46 \u001B[90mv\u001B[39m #7 ! validate(nb)\n",
+ "00:02:20 \u001B[90mv\u001B[0m #1771 > 00:00:47 \u001B[90mv\u001B[39m #8 ! C:\\Users\\i574n\\scoop\\apps\\python312\\current\\Lib\\site-packages\\nbconvert\\filters\\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3\n",
+ "00:02:20 \u001B[90mv\u001B[0m #1772 > 00:00:47 \u001B[90mv\u001B[39m #9 ! return _pygments_highlight(\n",
+ "00:02:21 \u001B[90mv\u001B[0m #1773 > 00:00:48 \u001B[90mv\u001B[39m #10 ! [NbConvertApp] Writing 383448 bytes to c:\\home\\git\\polyglot\\lib\\fsharp\\FileSystem.dib.html\n",
+ "00:02:21 \u001B[90mv\u001B[0m #1774 > 00:00:48 \u001B[90mv\u001B[39m #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 862 }\n",
+ "00:02:21 \u001B[90mv\u001B[0m #1775 > 00:00:48 \u001B[94md\u001B[39m #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 862 }\n",
+ "00:02:21 \u001B[90mv\u001B[0m #1776 > 00:00:48 \u001B[94md\u001B[39m #13 runtime.execute_with_options / { file_name = pwsh; arguments = [\"-c\", \"$counter = 1; $path = 'c:/home/git/polyglot/lib/fsharp/FileSystem.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\\\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path\"]; options = { command = pwsh -c \"$counter = 1; $path = 'c:/home/git/polyglot/lib/fsharp/FileSystem.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path\"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }\n",
+ "00:02:21 \u001B[90mv\u001B[0m #1777 > 00:00:48 \u001B[90mv\u001B[39m #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 }\n",
+ "00:02:21 \u001B[90mv\u001B[0m #1778 > 00:00:48 \u001B[94md\u001B[39m #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 }\n",
+ "00:02:21 \u001B[90mv\u001B[0m #1779 > 00:00:48 \u001B[94md\u001B[39m #16 spiral.run / dib / { exit_code = 0; result_length = 31832 }\n",
+ "00:02:21 \u001B[94md\u001B[0m #1780 runtime.execute_with_options_async / { exit_code = 0; output_length = 36191 }\n",
+ "00:02:21 \u001B[94md\u001B[0m #5 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path FileSystem.dib --retries 3\n",
+ "00:02:21 \u001B[94md\u001B[0m #1781 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 \"dib --path Runtime.dib --retries 3\"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path Runtime.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }\n",
+ "00:02:21 \u001B[90mv\u001B[0m #1782 > 00:00:00 \u001B[94md\u001B[39m #1 spiral.main / { args = Array(MutCell([\"dib\", \"--path\", \"Runtime.dib\", \"--retries\", \"3\"])) }\n",
+ "00:02:21 \u001B[90mv\u001B[0m #1783 > 00:00:00 \u001B[94md\u001B[39m #2 runtime.execute_with_options / { file_name = dotnet; arguments = [\"repl\", \"--exit-after-run\", \"--run\", \"c:/home/git/polyglot/lib/fsharp/Runtime.dib\", \"--output-path\", \"c:/home/git/polyglot/lib/fsharp/Runtime.dib.ipynb\"]; options = { command = dotnet repl --exit-after-run --run \"c:/home/git/polyglot/lib/fsharp/Runtime.dib\" --output-path \"c:/home/git/polyglot/lib/fsharp/Runtime.dib.ipynb\"; cancellation_token = None; environment_variables = Array(MutCell([(\"TRACE_LEVEL\", \"Verbose\"), (\"AUTOMATION\", \"True\")])); on_line = None; stdin = None; trace = false; working_directory = None } }\n",
+ "00:02:23 \u001B[90mv\u001B[0m #1784 > >\n",
+ "00:02:23 \u001B[90mv\u001B[0m #1785 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
+ "00:02:23 \u001B[90mv\u001B[0m #1786 > > \u001B[38;2;146;146;178m│\u001B[0m # Runtime (Polyglot)\n",
+ "00:02:27 \u001B[90mv\u001B[0m #1787 > >\n",
+ "00:02:27 \u001B[90mv\u001B[0m #1788 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:02:27 \u001B[90mv\u001B[0m #1789 > > #r\n",
+ "00:02:27 \u001B[90mv\u001B[0m #1790 > > @\"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan\n",
+ "00:02:27 \u001B[90mv\u001B[0m #1791 > > dard2.1/FSharp.Control.AsyncSeq.dll\"\n",
+ "00:02:27 \u001B[90mv\u001B[0m #1792 > > #r\n",
+ "00:02:27 \u001B[90mv\u001B[0m #1793 > > @\"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6.\n",
+ "00:02:27 \u001B[90mv\u001B[0m #1794 > > 0/System.Reactive.dll\"\n",
+ "00:02:27 \u001B[90mv\u001B[0m #1795 > > #r\n",
+ "00:02:27 \u001B[90mv\u001B[0m #1796 > > @\"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib\n",
+ "00:02:27 \u001B[90mv\u001B[0m #1797 > > netstandard2.0/System.Reactive.Linq.dll\"\n",
+ "00:02:27 \u001B[90mv\u001B[0m #1798 > > #r\n",
+ "00:02:27 \u001B[90mv\u001B[0m #1799 > > @\"../../../../../../../.nuget/packages/argu/6.2.4/lib/netstandard2.0/Argu.dll\"\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1800 > >\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1801 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1802 > > #if !INTERACTIVE\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1803 > > open Lib\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1804 > > #endif\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1805 > >\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1806 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1807 > > open Common\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1808 > >\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1809 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1810 > > //// test\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1811 > >\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1812 > > open SpiralFileSystem.Operators\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1813 > >\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1814 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1815 > > \u001B[38;2;146;146;178m│\u001B[0m ## parseArgs\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1816 > >\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1817 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1818 > > let inline parseArgs<'T when 'T :> Argu.IArgParserTemplate> args =\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1819 > > let assemblyName =\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1820 > > System.Reflection.Assembly.GetEntryAssembly().GetName().Name\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1821 > > let errorHandler : Argu.IExiter =\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1822 > > if [[ \"Microsoft.DotNet.Interactive.App\"; \"dotnet-repl\" ]] |>\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1823 > > List.contains assemblyName\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1824 > > then Argu.ExceptionExiter ()\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1825 > > else Argu.ProcessExiter (function Argu.ErrorCode.HelpText -> None | _ ->\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1826 > > Some System.ConsoleColor.Red)\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1827 > >\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1828 > > let parser =\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1829 > > Argu.ArgumentParser.Create<'T> (\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1830 > > programName = $\"{assemblyName}{SpiralPlatform.get_executable_suffix\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1831 > > ()}\",\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1832 > > errorHandler = errorHandler\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1833 > > )\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1834 > >\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1835 > > parser.ParseCommandLine args\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1836 > >\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1837 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1838 > > //// test\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1839 > >\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1840 > > [[]]\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1841 > > type Arguments =\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1842 > > | [[ > Argu.ArguAttributes.Last>]]\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1844 > > Paths of paths : string list\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1845 > >\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1846 > > interface Argu.IArgParserTemplate with\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1847 > > member s.Usage =\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1848 > > match s with\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1849 > > | Paths _ -> nameof Paths\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1850 > >\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1851 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1852 > > //// test\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1853 > >\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1854 > > Argu.ArgumentParser.Create().PrintUsage ()\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1855 > >\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1856 > > ── [ 114.25ms - return value ] ─────────────────────────────────────────────────\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1857 > > \u001B[38;2;38;140;38m│\u001B[0m \"USAGE: dotnet-repl [--help] ...\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1858 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1859 > > \u001B[38;2;38;140;38m│\u001B[0m PATHS:\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1860 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1861 > > \u001B[38;2;38;140;38m│\u001B[0m ... Paths\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1862 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1863 > > \u001B[38;2;38;140;38m│\u001B[0m OPTIONS:\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1864 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1865 > > \u001B[38;2;38;140;38m│\u001B[0m --help display this list of options.\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1866 > > \u001B[38;2;38;140;38m│\u001B[0m \"\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1867 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1868 > >\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1869 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1870 > > //// test\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1871 > >\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1872 > > fun () -> parseArgs [[||]] |> ignore\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1873 > > |> _throwsC (fun ex _ ->\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1874 > > SpiralSm.format_exception ex\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1875 > > |> _stringContains \"Argu.ArguParseException: ERROR: missing parameter\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1876 > > '...'.\"\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1877 > > )\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1878 > >\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1879 > > ── [ 67.85ms - stdout ] ────────────────────────────────────────────────────────\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1880 > > \u001B[38;2;38;140;38m│\u001B[0m \n",
+ "00:02:42 \u001B[90mv\u001B[0m #1881 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1882 > > \u001B[38;2;38;140;38m│\u001B[0m \"Argu.ArguParseException: ERROR: missing parameter\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1883 > > '...'.\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1884 > > \u001B[38;2;38;140;38m│\u001B[0m USAGE: dotnet-repl.exe [--help] ...\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1885 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1886 > > \u001B[38;2;38;140;38m│\u001B[0m PATHS:\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1887 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1888 > > \u001B[38;2;38;140;38m│\u001B[0m ... Paths\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1889 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1890 > > \u001B[38;2;38;140;38m│\u001B[0m OPTIONS:\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1891 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1892 > > \u001B[38;2;38;140;38m│\u001B[0m --help display this list of options.\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1893 > > \u001B[38;2;38;140;38m│\u001B[0m \"\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1894 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1895 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1896 > >\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1897 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1898 > > let inline parseAllArgs<'T when 'T :> Argu.IArgParserTemplate> args =\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1899 > > args\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1900 > > |> parseArgs<'T>\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1901 > > |> fun results -> results.GetAllResults ()\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1902 > >\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1903 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1904 > > //// test\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1905 > >\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1906 > > [[]]\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1907 > > type Arguments =\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1908 > > | [[ > Argu.ArguAttributes.Last>]]\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1910 > > Paths of paths : string list\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1911 > >\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1912 > > interface Argu.IArgParserTemplate with\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1913 > > member s.Usage =\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1914 > > match s with\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1915 > > | Paths _ -> nameof Paths\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1916 > >\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1917 > > parseAllArgs [[| \"a b\"; \"c\" |]]\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1918 > > |> _assertEqual [[ Arguments.Paths [[ \"a b\"; \"c\" ]] ]]\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1919 > >\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1920 > > ── [ 92.17ms - stdout ] ────────────────────────────────────────────────────────\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1921 > > \u001B[38;2;38;140;38m│\u001B[0m [Paths [\"a b\"; \"c\"]]\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1922 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1923 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1924 > >\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1925 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1926 > > let inline parseArgsMap<'T when 'T :> Argu.IArgParserTemplate> args =\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1927 > > args\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1928 > > |> parseAllArgs<'T>\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1929 > > |> List.groupBy CommonFSharp.getUnionCaseName<'T>\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1930 > > |> Map.ofList\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1931 > >\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1932 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1933 > > //// test\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1934 > >\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1935 > > parseArgsMap [[| \"a b\"; \"c\" |]]\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1936 > > |> _assertEqual (\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1937 > > [[ nameof Arguments.Paths, [[ Arguments.Paths [[ \"a b\"; \"c\" ]] ]] ]]\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1938 > > |> Map.ofList\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1939 > > )\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1940 > >\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1941 > > ── [ 57.84ms - stdout ] ────────────────────────────────────────────────────────\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1942 > > \u001B[38;2;38;140;38m│\u001B[0m map [(\"Paths\", [Paths [\"a b\"; \"c\"]])]\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1943 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1944 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1945 > 00:00:20 \u001B[90mv\u001B[39m #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 5457 }\n",
+ "00:02:42 \u001B[90mv\u001B[0m #1946 > 00:00:20 \u001B[94md\u001B[39m #4 runtime.execute_with_options / { file_name = jupyter; arguments = [\"nbconvert\", \"c:/home/git/polyglot/lib/fsharp/Runtime.dib.ipynb\", \"--to\", \"html\", \"--HTMLExporter.theme=dark\"]; options = { command = jupyter nbconvert \"c:/home/git/polyglot/lib/fsharp/Runtime.dib.ipynb\" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }\n",
+ "00:02:44 \u001B[90mv\u001B[0m #1947 > 00:00:22 \u001B[90mv\u001B[39m #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/lib/fsharp/Runtime.dib.ipynb to html\n",
+ "00:02:44 \u001B[90mv\u001B[0m #1948 > 00:00:22 \u001B[90mv\u001B[39m #6 ! C:\\Users\\i574n\\scoop\\apps\\python312\\current\\Lib\\site-packages\\nbformat\\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.\n",
+ "00:02:44 \u001B[90mv\u001B[0m #1949 > 00:00:22 \u001B[90mv\u001B[39m #7 ! validate(nb)\n",
+ "00:02:44 \u001B[90mv\u001B[0m #1950 > 00:00:22 \u001B[90mv\u001B[39m #8 ! C:\\Users\\i574n\\scoop\\apps\\python312\\current\\Lib\\site-packages\\nbconvert\\filters\\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3\n",
+ "00:02:44 \u001B[90mv\u001B[0m #1951 > 00:00:22 \u001B[90mv\u001B[39m #9 ! return _pygments_highlight(\n",
+ "00:02:44 \u001B[90mv\u001B[0m #1952 > 00:00:23 \u001B[90mv\u001B[39m #10 ! [NbConvertApp] Writing 292946 bytes to c:\\home\\git\\polyglot\\lib\\fsharp\\Runtime.dib.html\n",
+ "00:02:45 \u001B[90mv\u001B[0m #1953 > 00:00:23 \u001B[90mv\u001B[39m #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 856 }\n",
+ "00:02:45 \u001B[90mv\u001B[0m #1954 > 00:00:23 \u001B[94md\u001B[39m #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 856 }\n",
+ "00:02:45 \u001B[90mv\u001B[0m #1955 > 00:00:23 \u001B[94md\u001B[39m #13 runtime.execute_with_options / { file_name = pwsh; arguments = [\"-c\", \"$counter = 1; $path = 'c:/home/git/polyglot/lib/fsharp/Runtime.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\\\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path\"]; options = { command = pwsh -c \"$counter = 1; $path = 'c:/home/git/polyglot/lib/fsharp/Runtime.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path\"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }\n",
+ "00:02:45 \u001B[90mv\u001B[0m #1956 > 00:00:23 \u001B[90mv\u001B[39m #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 }\n",
+ "00:02:45 \u001B[90mv\u001B[0m #1957 > 00:00:23 \u001B[94md\u001B[39m #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 }\n",
+ "00:02:45 \u001B[90mv\u001B[0m #1958 > 00:00:23 \u001B[94md\u001B[39m #16 spiral.run / dib / { exit_code = 0; result_length = 6372 }\n",
+ "00:02:45 \u001B[94md\u001B[0m #1959 runtime.execute_with_options_async / { exit_code = 0; output_length = 9236 }\n",
+ "00:02:45 \u001B[94md\u001B[0m #6 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path Runtime.dib --retries 3\n",
"00:00:00 \u001B[94md\u001B[0m #1 writeDibCode / output: Fs / path: Async.dib\n",
- "00:00:00 \u001B[94md\u001B[0m #1 writeDibCode / output: Fs / path: CommonFSharp.dib\n",
- "00:00:00 \u001B[94md\u001B[0m #1 writeDibCode / output: Fs / path: Runtime.dib\n",
- "00:00:00 \u001B[94md\u001B[0m #1 writeDibCode / output: Fs / path: AsyncSeq.dib\n",
"00:00:00 \u001B[94md\u001B[0m #1 writeDibCode / output: Fs / path: FileSystem.dib\n",
+ "00:00:00 \u001B[94md\u001B[0m #1 writeDibCode / output: Fs / path: Runtime.dib\n",
"00:00:00 \u001B[94md\u001B[0m #1 writeDibCode / output: Fs / path: Common.dib\n",
- "00:00:00 \u001B[94md\u001B[0m #2 parseDibCode / output: Fs / file: Runtime.dib\n",
+ "00:00:00 \u001B[94md\u001B[0m #1 writeDibCode / output: Fs / path: AsyncSeq.dib\n",
+ "00:00:00 \u001B[94md\u001B[0m #1 writeDibCode / output: Fs / path: CommonFSharp.dib\n",
+ "00:00:00 \u001B[94md\u001B[0m #2 parseDibCode / output: Fs / file: CommonFSharp.dib\n",
+ "00:00:00 \u001B[94md\u001B[0m #3 parseDibCode / output: Fs / file: Common.dib\n",
"00:00:00 \u001B[94md\u001B[0m #3 parseDibCode / output: Fs / file: Async.dib\n",
- "00:00:00 \u001B[94md\u001B[0m #3 parseDibCode / output: Fs / file: CommonFSharp.dib\n",
- "00:00:00 \u001B[94md\u001B[0m #4 parseDibCode / output: Fs / file: FileSystem.dib\n",
- "00:00:00 \u001B[94md\u001B[0m #7 parseDibCode / output: Fs / file: Common.dib\n",
- "00:00:00 \u001B[94md\u001B[0m #5 parseDibCode / output: Fs / file: AsyncSeq.dib\n"
+ "00:00:00 \u001B[94md\u001B[0m #5 parseDibCode / output: Fs / file: FileSystem.dib\n",
+ "00:00:00 \u001B[94md\u001B[0m #5 parseDibCode / output: Fs / file: AsyncSeq.dib\n",
+ "00:00:00 \u001B[94md\u001B[0m #5 parseDibCode / output: Fs / file: Runtime.dib\n"
]
}
],
@@ -15526,227 +13491,62 @@
"name": "stdout",
"output_type": "stream",
"text": [
- "00:00:00 \u001B[94md\u001B[0m #1 writeDibCode / output: Spi / path: spiral_wasm.dib\n",
- "00:00:00 \u001B[94md\u001B[0m #2 parseDibCode / output: Spi / file: spiral_wasm.dib\n",
- "00:00:00 \u001B[90mv\u001B[0m #1 async.run_with_timeout_async / { timeout = 180 }\n",
- "00:00:00 \u001B[94md\u001B[0m #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0\n",
- " \"\"C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral Language 2\\artifacts\\bin\\The Spiral Language 2\\release\\Spiral.dll\" --port 13805 --default-int i32 --default-float f64\"; options = { command = dotnet \"C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral Language 2\\artifacts\\bin\\The Spiral Language 2\\release\\Spiral.dll\" --port 13805 --default-int i32 --default-float f64; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = Some ; stdin = None; trace = true; working_directory = Some \"C:\\home\\git\\polyglot\" } }\n",
- "00:00:00 \u001B[90mv\u001B[0m #2 > 00:00:00 \u001B[94md\u001B[0m #1 pwd: C:\\home\\git\\polyglot\n",
- "00:00:00 \u001B[90mv\u001B[0m #3 > 00:00:00 \u001B[94md\u001B[0m #2 dllPath: C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral Language 2\\artifacts\\bin\\The Spiral Language 2\\release\n",
- "00:00:00 \u001B[90mv\u001B[0m #4 > 00:00:00 \u001B[94md\u001B[0m #3 targetDir: C:\\home\\git\\polyglot\\target/spiral_Eval\n",
- "00:00:01 \u001B[90mv\u001B[0m #2 async.run_with_timeout_async / { timeout = 100 }\n",
- "00:00:01 \u001B[90mv\u001B[0m #3 async.run_with_timeout_async / { timeout = 100 }\n",
- "00:00:01 \u001B[90mv\u001B[0m #5 > Starting the Spiral Server. It is bound to: http://localhost:13805\n",
- "00:00:01 \u001B[90mv\u001B[0m #4 async.run_with_timeout_async / { timeout = 100 }\n",
- "00:00:01 \u001B[90mv\u001B[0m #1 Supervisor.sendJson / port: 13805 / json: {\"Ping\":true} / result:\n",
- "00:00:01 \u001B[90mv\u001B[0m #2 Supervisor.awaitCompiler / Ping / result: 'Some null' / port: 13805 / retry: 1\n",
- "00:00:01 \u001B[90mv\u001B[0m #6 > Server bound to: http://localhost:13805\n",
- "00:00:01 \u001B[90mv\u001B[0m #5 async.run_with_timeout_async / { timeout = 180 }\n",
- "00:00:01 \u001B[94md\u001B[0m #3 Supervisor.buildFile / takeWhileInclusive / path: spiral_wasm.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent:\n",
- "\n",
- "00:00:02 \u001B[94md\u001B[0m #4 Supervisor.buildFile / AsyncSeq.scan / path: spiral_wasm.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "\n",
- "00:00:02 \u001B[94md\u001B[0m #5 Supervisor.buildFile / takeWhileInclusive / path: spiral_wasm.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent:\n",
- "\n",
- "00:00:02 \u001B[90mv\u001B[0m #6 Supervisor.sendJson / port: 13805 / json: {\"FileOpen\":{\"spiText\":\"/// # spiral_wasm\\nopen rust.rust_operators\\nopen rust\\nopen sm\\u0027_operat... main args = !main args\\u0027 : ()\\n\",\"uri\":\"file:///c:/home/git/spiral/apps/wasm/spiral_wasm.spi\"}} / result:\n",
- "00:00:02 \u001B[90mv\u001B[0m #7 Supervisor.sendJson / port: 13805 / json: {\"BuildFile\":{\"backend\":\"Fsharp\",\"uri\":\"file:///c:/home/git/spiral/apps/wasm/spiral_wasm.spi\"}} / result:\n",
- "00:00:02 \u001B[94md\u001B[0m #8 Supervisor.buildFile / AsyncSeq.scan / path: spiral_wasm.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "\n",
- "00:00:02 \u001B[94md\u001B[0m #9 Supervisor.buildFile / takeWhileInclusive / path: spiral_wasm.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent:\n",
- "\n",
- "00:00:03 \u001B[94md\u001B[0m #10 Supervisor.buildFile / AsyncSeq.scan / path: spiral_wasm.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "\n",
- "00:00:03 \u001B[94md\u001B[0m #11 Supervisor.buildFile / takeWhileInclusive / path: spiral_wasm.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent:\n",
- "\n",
- "00:00:03 \u001B[94md\u001B[0m #12 Supervisor.buildFile / AsyncSeq.scan / path: spiral_wasm.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "\n",
- "00:00:03 \u001B[94md\u001B[0m #13 Supervisor.buildFile / takeWhileInclusive / path: spiral_wasm.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent:\n",
- "\n",
- "00:00:04 \u001B[94md\u001B[0m #14 Supervisor.buildFile / AsyncSeq.scan / path: spiral_wasm.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "\n",
- "00:00:04 \u001B[94md\u001B[0m #15 Supervisor.buildFile / takeWhileInclusive / path: spiral_wasm.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent:\n",
- "\n",
- "00:00:04 \u001B[94md\u001B[0m #16 Supervisor.buildFile / AsyncSeq.scan / path: spiral_wasm.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "\n",
- "00:00:04 \u001B[94md\u001B[0m #17 Supervisor.buildFile / takeWhileInclusive / path: spiral_wasm.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent:\n",
- "\n",
- "00:00:05 \u001B[94md\u001B[0m #18 Supervisor.buildFile / AsyncSeq.scan / path: spiral_wasm.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "\n",
- "00:00:05 \u001B[94md\u001B[0m #19 Supervisor.buildFile / takeWhileInclusive / path: spiral_wasm.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent:\n",
- "\n",
- "00:00:05 \u001B[94md\u001B[0m #20 Supervisor.buildFile / AsyncSeq.scan / path: spiral_wasm.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "\n",
- "00:00:05 \u001B[94md\u001B[0m #21 Supervisor.buildFile / takeWhileInclusive / path: spiral_wasm.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent:\n",
- "\n",
- "00:00:06 \u001B[94md\u001B[0m #22 Supervisor.buildFile / AsyncSeq.scan / path: spiral_wasm.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "\n",
- "00:00:06 \u001B[94md\u001B[0m #23 Supervisor.buildFile / takeWhileInclusive / path: spiral_wasm.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent:\n",
- "\n",
- "00:00:06 \u001B[94md\u001B[0m #24 Supervisor.buildFile / AsyncSeq.scan / path: spiral_wasm.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "#if FABLE_COMPILER\n",
- "[]\n",
- "type Ref<'T> = class end\n",
- "#else\n",
- "type Ref<'T> = 'T\n",
- "#endif\n",
- "\n",
- "#if FABLE_COMPILER\n",
- "[]\n",
- "#endif\n",
- "type clap_Command = class end\n",
- "#if FABLE_COMPILER\n",
- "[]\n",
- "#endif\n",
- "type clap_builder_ValueRange = class end\n",
- "#if FABLE_COMPILER\n",
- "[]\n",
- "#endif\n",
- "type clap_Arg = class end\n",
- "#if FABLE_COMPILER\n",
- "[\")>]\n",
- "#endif\n",
- "type Vec<'T> = class end\n",
- "#if FABLE_COMPILER\n",
- "[]\n",
- "type std_string_String = class end\n",
- "#else\n",
- "type std_string_String = string\n",
- "#endif\n",
- "\n",
- "#if FABLE_COMPILER\n",
- "[... #endif\n",
- "#if FABLE_COMPILER_TYPESCRIPT\n",
- " match v344 with Ok x -> x | Error e -> failwith $\"resultm.unwrap' / e: {e}\"\n",
- " #endif\n",
- "#if FABLE_COMPILER_PYTHON\n",
- " match v344 with Ok x -> x | Error e -> failwith $\"resultm.unwrap' / e: {e}\"\n",
- " #endif\n",
- "#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON\n",
- " match v344 with Ok x -> x | Error e -> failwith $\"resultm.unwrap' / e: {e}\"\n",
- " #endif\n",
- "#else\n",
- " match v344 with Ok x -> x | Error e -> failwith $\"resultm.unwrap' / e: {e}\"\n",
- " #endif\n",
- " // run_target_args' is_unit\n",
- " ()\n",
- " | _ ->\n",
- " ()\n",
- " 0\n",
- "let v0 : ((string []) -> int32) = closure0()\n",
- "let main args = v0 args\n",
- "()\n",
- "\n",
- "00:00:06 \u001B[94md\u001B[0m #25 Supervisor.buildFile / takeWhileInclusive / path: spiral_wasm.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent:\n",
- "#if FABLE_COMPILER\n",
- "[]\n",
- "type Ref<'T> = class end\n",
- "#else\n",
- "type Ref<'T> = 'T\n",
- "#endif\n",
- "\n",
- "#if FABLE_COMPILER\n",
- "[]\n",
- "#endif\n",
- "type clap_Command = class end\n",
- "#if FABLE_COMPILER\n",
- "[]\n",
- "#endif\n",
- "type clap_builder_ValueRange = class end\n",
- "#if FABLE_COMPILER\n",
- "[]\n",
- "#endif\n",
- "type clap_Arg = class end\n",
- "#if FABLE_COMPILER\n",
- "[\")>]\n",
- "#endif\n",
- "type Vec<'T> = class end\n",
- "#if FABLE_COMPILER\n",
- "[]\n",
- "type std_string_String = class end\n",
- "#else\n",
- "type std_string_String = string\n",
- "#endif\n",
- "\n",
- "#if FABLE_COMPILER\n",
- "[... #endif\n",
- "#if FABLE_COMPILER_TYPESCRIPT\n",
- " match v344 with Ok x -> x | Error e -> failwith $\"resultm.unwrap' / e: {e}\"\n",
- " #endif\n",
- "#if FABLE_COMPILER_PYTHON\n",
- " match v344 with Ok x -> x | Error e -> failwith $\"resultm.unwrap' / e: {e}\"\n",
- " #endif\n",
- "#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON\n",
- " match v344 with Ok x -> x | Error e -> failwith $\"resultm.unwrap' / e: {e}\"\n",
- " #endif\n",
- "#else\n",
- " match v344 with Ok x -> x | Error e -> failwith $\"resultm.unwrap' / e: {e}\"\n",
- " #endif\n",
- " // run_target_args' is_unit\n",
- " ()\n",
- " | _ ->\n",
- " ()\n",
- " 0\n",
- "let v0 : ((string []) -> int32) = closure0()\n",
- "let main args = v0 args\n",
- "()\n",
- "\n",
- "00:00:06 \u001B[94md\u001B[0m #26 FileSystem.watchWithFilter / Disposing watch stream / filter: FileName, LastWrite\n",
- "00:00:06 \u001B[90mv\u001B[0m #6 async.run_with_timeout_async / { timeout = 100 }\n",
- "00:00:00 \u001B[94md\u001B[0m #1 persistCodeProject / packages: [Fable.Core] / modules: [lib/spiral/common.fsx; lib/spiral/sm.fsx; lib/spiral/crypto.fsx; ... ] / name: spiral_wasm / hash: / code.Length: 232460\n",
- "polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\\ / End: home/git/polyglot/target/Builder/spiral_wasm\n",
- "polyglot/lib/spiral/lib.ps1/GetTargetDir / targetDir: C:\\home\\git\\polyglot\\target\\Builder\\spiral_wasm\n",
- "polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\\ / End: home/git/polyglot\n",
- "polyglot/lib/spiral/lib.ps1/BuildFable / TargetDir: C:\\home\\git\\polyglot\\target\\Builder\\spiral_wasm / ProjectName: spiral_wasm / Language: rs / Runtime: / root: C:\\home\\git\\polyglot\n",
- "Fable 5.0.0-alpha.2: F# to Rust compiler (status: alpha)\n",
- "\n",
- "Thanks to the contributor! @chadunit\n",
+ "00:00:00 \u001B[94md\u001B[0m #1 persistCodeProject / packages: [Fable.Core] / modules: [deps/spiral/lib/spiral/common.fsx; deps/spiral/lib/spiral/sm.fsx; deps/spiral/lib/spiral/crypto.fsx; ... ] / name: spiral_wasm / hash: / code.Length: 232460\n",
+ "polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\\ / End: home/git/polyglot/target/Builder/spiral_wasm\n",
+ "spiral/lib/spiral/lib.ps1/GetTargetDir / targetDir: C:\\home\\git\\polyglot\\target\\Builder\\spiral_wasm\n",
+ "polyglot/scripts/core.ps1/ResolveLink #4 / Path: C:\\home\\git\\polyglot\\deps\\spiral\\deps\\polyglot\\deps\\spiral\\lib\\spiral/../../deps/polyglot / parent_target: / path_target: C:\\home\\git\\polyglot / parent: C:\\home\\git\\polyglot\\deps\\spiral\\deps\\polyglot\\deps\\spiral\\lib\\spiral\\..\\..\\deps / End: polyglot\n",
+ "spiral/lib/spiral/lib.ps1/BuildFable / TargetDir: C:\\home\\git\\polyglot\\target\\Builder\\spiral_wasm / ProjectName: spiral_wasm / Language: rs / Runtime: / root: C:\\home\\git\\polyglot\n",
+ "Fable 5.0.0-alpha.5: F# to Rust compiler (status: alpha)\n",
+ "\n",
+ "Thanks to the contributor! @kerams\n",
"Stand with Ukraine! https://standwithukraine.com.ua/\n",
"\n",
"Parsing target\\Builder\\spiral_wasm\\spiral_wasm.fsproj...\n",
"Retrieving project options from cache, in case of issues run `dotnet fable clean` or try `--noCache` option.\n",
- "Project and references (14 source files) parsed in 165ms\n",
+ "Project and references (14 source files) parsed in 156ms\n",
"\n",
"Started Fable compilation...\n",
"\n",
- "Fable compilation finished in 9139ms\n",
- "\n",
- ".\\lib\\spiral\\async_.fsx(250,0): (250,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!\n",
- ".\\lib\\spiral\\threading.fsx(139,0): (139,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!\n",
- ".\\lib\\spiral\\common.fsx(2117,0): (2117,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!\n",
- ".\\lib\\spiral\\sm.fsx(556,0): (556,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!\n",
- ".\\lib\\spiral\\crypto.fsx(2344,0): (2344,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!\n",
- ".\\lib\\spiral\\date_time.fsx(2527,0): (2527,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!\n",
- ".\\lib\\spiral\\platform.fsx(120,0): (120,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!\n",
- ".\\lib\\spiral\\networking.fsx(4935,0): (4935,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!\n",
- ".\\lib\\spiral\\trace.fsx(2150,0): (2150,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!\n",
- ".\\lib\\spiral\\runtime.fsx(7101,0): (7101,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!\n",
- ".\\lib\\spiral\\file_system.fsx(17438,0): (17438,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!\n",
- "polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\\ / End: home/git/polyglot/lib/fsharp/Common.rs\n",
- "polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\\home\\git\\polyglot\\target\\Builder\\spiral_wasm/target/rs/lib/fsharp/Common.rs / to: C:\\home\\git\\polyglot\\lib\\fsharp\\Common.rs\n",
- "polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\\ / End: home/git/polyglot/lib/spiral/common.rs\n",
- "polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\\home\\git\\polyglot\\target\\Builder\\spiral_wasm/target/rs/lib/spiral/common.rs / to: C:\\home\\git\\polyglot\\lib\\spiral\\common.rs\n",
- "polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\\ / End: home/git/polyglot/lib/spiral/date_time.rs\n",
- "polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\\home\\git\\polyglot\\target\\Builder\\spiral_wasm/target/rs/lib/spiral/date_time.rs / to: C:\\home\\git\\polyglot\\lib\\spiral\\date_time.rs\n",
- "polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\\ / End: home/git/polyglot/lib/spiral/async_.rs\n",
- "polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\\home\\git\\polyglot\\target\\Builder\\spiral_wasm/target/rs/lib/spiral/async_.rs / to: C:\\home\\git\\polyglot\\lib\\spiral\\async_.rs\n",
- "polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\\ / End: home/git/polyglot/lib/spiral/platform.rs\n",
- "polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\\home\\git\\polyglot\\target\\Builder\\spiral_wasm/target/rs/lib/spiral/platform.rs / to: C:\\home\\git\\polyglot\\lib\\spiral\\platform.rs\n",
- "polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\\ / End: home/git/polyglot/lib/spiral/runtime.rs\n",
- "polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\\home\\git\\polyglot\\target\\Builder\\spiral_wasm/target/rs/lib/spiral/runtime.rs / to: C:\\home\\git\\polyglot\\lib\\spiral\\runtime.rs\n",
- "polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\\ / End: home/git/polyglot/lib/spiral/threading.rs\n",
- "polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\\home\\git\\polyglot\\target\\Builder\\spiral_wasm/target/rs/lib/spiral/threading.rs / to: C:\\home\\git\\polyglot\\lib\\spiral\\threading.rs\n",
- "polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\\ / End: home/git/polyglot/lib/spiral/networking.rs\n",
- "polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\\home\\git\\polyglot\\target\\Builder\\spiral_wasm/target/rs/lib/spiral/networking.rs / to: C:\\home\\git\\polyglot\\lib\\spiral\\networking.rs\n",
- "polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\\ / End: home/git/polyglot/lib/spiral/file_system.rs\n",
- "polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\\home\\git\\polyglot\\target\\Builder\\spiral_wasm/target/rs/lib/spiral/file_system.rs / to: C:\\home\\git\\polyglot\\lib\\spiral\\file_system.rs\n",
- "polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\\ / End: home/git/polyglot/lib/spiral/sm.rs\n",
- "polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\\home\\git\\polyglot\\target\\Builder\\spiral_wasm/target/rs/lib/spiral/sm.rs / to: C:\\home\\git\\polyglot\\lib\\spiral\\sm.rs\n",
- "polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\\ / End: home/git/polyglot/lib/spiral/crypto.rs\n",
- "polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\\home\\git\\polyglot\\target\\Builder\\spiral_wasm/target/rs/lib/spiral/crypto.rs / to: C:\\home\\git\\polyglot\\lib\\spiral\\crypto.rs\n",
- "polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\\ / End: home/git/polyglot/lib/spiral/trace.rs\n",
- "polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\\home\\git\\polyglot\\target\\Builder\\spiral_wasm/target/rs/lib/spiral/trace.rs / to: C:\\home\\git\\polyglot\\lib\\spiral\\trace.rs\n",
- "polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\\ / End: home/git/polyglot/lib/spiral/lib.rs\n",
- "polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\\home\\git\\polyglot\\target\\Builder\\spiral_wasm/target/rs/lib/spiral/lib.rs / to: C:\\home\\git\\polyglot\\lib\\spiral\\lib.rs\n",
+ "Fable compilation finished in 10002ms\n",
+ "\n",
+ ".\\deps\\spiral\\lib\\spiral\\async_.fsx(250,0): (250,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!\n",
+ ".\\deps\\spiral\\lib\\spiral\\threading.fsx(139,0): (139,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!\n",
+ ".\\deps\\spiral\\lib\\spiral\\common.fsx(2117,0): (2117,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!\n",
+ ".\\deps\\spiral\\lib\\spiral\\sm.fsx(559,0): (559,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!\n",
+ ".\\deps\\spiral\\lib\\spiral\\crypto.fsx(2344,0): (2344,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!\n",
+ ".\\deps\\spiral\\lib\\spiral\\date_time.fsx(2545,0): (2545,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!\n",
+ ".\\deps\\spiral\\lib\\spiral\\platform.fsx(120,0): (120,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!\n",
+ ".\\deps\\spiral\\lib\\spiral\\networking.fsx(4935,0): (4935,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!\n",
+ ".\\deps\\spiral\\lib\\spiral\\trace.fsx(2150,0): (2150,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!\n",
+ ".\\deps\\spiral\\lib\\spiral\\runtime.fsx(7101,0): (7101,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!\n",
+ ".\\deps\\spiral\\lib\\spiral\\file_system.fsx(17933,0): (17933,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!\n",
+ "polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\\ / End: home/git/polyglot/target/Builder/spiral_wasm/target/rs/deps/spiral/lib/fsharp/Common.rs\n",
+ "polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\\ / End: home/git/polyglot/lib/fsharp/Common.rs\n",
+ "spiral/lib/spiral/lib.ps1/CopyItem / from: C:\\home\\git\\polyglot\\target\\Builder\\spiral_wasm/target/rs/lib/fsharp/Common.rs / to: C:\\home\\git\\polyglot\\lib\\fsharp\\Common.rs\n",
+ "polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\\ / End: home/git/spiral/lib/spiral/common.rs\n",
+ "spiral/lib/spiral/lib.ps1/CopyItem / from: C:\\home\\git\\polyglot\\target\\Builder\\spiral_wasm/target/rs/deps/spiral/lib/spiral/common.rs / to: C:\\home\\git\\spiral\\lib\\spiral\\common.rs\n",
+ "polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\\ / End: home/git/spiral/lib/spiral/date_time.rs\n",
+ "spiral/lib/spiral/lib.ps1/CopyItem / from: C:\\home\\git\\polyglot\\target\\Builder\\spiral_wasm/target/rs/deps/spiral/lib/spiral/date_time.rs / to: C:\\home\\git\\spiral\\lib\\spiral\\date_time.rs\n",
+ "polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\\ / End: home/git/spiral/lib/spiral/async_.rs\n",
+ "spiral/lib/spiral/lib.ps1/CopyItem / from: C:\\home\\git\\polyglot\\target\\Builder\\spiral_wasm/target/rs/deps/spiral/lib/spiral/async_.rs / to: C:\\home\\git\\spiral\\lib\\spiral\\async_.rs\n",
+ "polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\\ / End: home/git/spiral/lib/spiral/platform.rs\n",
+ "spiral/lib/spiral/lib.ps1/CopyItem / from: C:\\home\\git\\polyglot\\target\\Builder\\spiral_wasm/target/rs/deps/spiral/lib/spiral/platform.rs / to: C:\\home\\git\\spiral\\lib\\spiral\\platform.rs\n",
+ "polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\\ / End: home/git/spiral/lib/spiral/runtime.rs\n",
+ "spiral/lib/spiral/lib.ps1/CopyItem / from: C:\\home\\git\\polyglot\\target\\Builder\\spiral_wasm/target/rs/deps/spiral/lib/spiral/runtime.rs / to: C:\\home\\git\\spiral\\lib\\spiral\\runtime.rs\n",
+ "polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\\ / End: home/git/spiral/lib/spiral/threading.rs\n",
+ "spiral/lib/spiral/lib.ps1/CopyItem / from: C:\\home\\git\\polyglot\\target\\Builder\\spiral_wasm/target/rs/deps/spiral/lib/spiral/threading.rs / to: C:\\home\\git\\spiral\\lib\\spiral\\threading.rs\n",
+ "polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\\ / End: home/git/spiral/lib/spiral/networking.rs\n",
+ "spiral/lib/spiral/lib.ps1/CopyItem / from: C:\\home\\git\\polyglot\\target\\Builder\\spiral_wasm/target/rs/deps/spiral/lib/spiral/networking.rs / to: C:\\home\\git\\spiral\\lib\\spiral\\networking.rs\n",
+ "polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\\ / End: home/git/spiral/lib/spiral/file_system.rs\n",
+ "spiral/lib/spiral/lib.ps1/CopyItem / from: C:\\home\\git\\polyglot\\target\\Builder\\spiral_wasm/target/rs/deps/spiral/lib/spiral/file_system.rs / to: C:\\home\\git\\spiral\\lib\\spiral\\file_system.rs\n",
+ "polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\\ / End: home/git/spiral/lib/spiral/sm.rs\n",
+ "spiral/lib/spiral/lib.ps1/CopyItem / from: C:\\home\\git\\polyglot\\target\\Builder\\spiral_wasm/target/rs/deps/spiral/lib/spiral/sm.rs / to: C:\\home\\git\\spiral\\lib\\spiral\\sm.rs\n",
+ "polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\\ / End: home/git/spiral/lib/spiral/crypto.rs\n",
+ "spiral/lib/spiral/lib.ps1/CopyItem / from: C:\\home\\git\\polyglot\\target\\Builder\\spiral_wasm/target/rs/deps/spiral/lib/spiral/crypto.rs / to: C:\\home\\git\\spiral\\lib\\spiral\\crypto.rs\n",
+ "polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\\ / End: home/git/spiral/lib/spiral/trace.rs\n",
+ "spiral/lib/spiral/lib.ps1/CopyItem / from: C:\\home\\git\\polyglot\\target\\Builder\\spiral_wasm/target/rs/deps/spiral/lib/spiral/trace.rs / to: C:\\home\\git\\spiral\\lib\\spiral\\trace.rs\n",
+ "polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\\ / End: home/git/spiral/lib/spiral/lib.rs\n",
+ "spiral/lib/spiral/lib.ps1/CopyItem / from: C:\\home\\git\\polyglot\\target\\Builder\\spiral_wasm/target/rs/deps/spiral/lib/spiral/lib.rs / to: C:\\home\\git\\spiral\\lib\\spiral\\lib.rs\n",
"spiral/apps/wasm/build.ps1 / path: C:\\home\\git\\polyglot\\target\\Builder\\spiral_wasm/target/rs/spiral_wasm.rs\n",
"\u001B[31;1m Compiling fable_library_rust v0.1.0 (/mnt/c/home/git/spiral/deps/polyglot/lib/rust/fable/fable_modules/fable-library-rust)\u001B[0m\n",
"\u001B[31;1m Compiling spiral_wasm v0.0.1 (/mnt/c/home/git/spiral/apps/wasm)\u001B[0m\n",
@@ -15755,7 +13555,7 @@
}
],
"source": [
- "{ pwsh ../deps/spiral/apps/wasm/build.ps1 -fast 1 } | Invoke-Block"
+ "{ pwsh ../deps/spiral/apps/wasm/build.ps1 -SkipFsx 1 } | Invoke-Block"
]
},
{
@@ -15775,1644 +13575,1591 @@
"output_type": "stream",
"text": [
"00:00:00 \u001B[90mv\u001B[0m #1 async.run_with_timeout_async / { timeout = 180 }\n",
- "00:00:00 \u001B[94md\u001B[0m #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0\n",
- " \"\"C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral Language 2\\artifacts\\bin\\The Spiral Language 2\\release\\Spiral.dll\" --port 13805 --default-int i32 --default-float f64\"; options = { command = dotnet \"C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral Language 2\\artifacts\\bin\\The Spiral Language 2\\release\\Spiral.dll\" --port 13805 --default-int i32 --default-float f64; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = Some ; stdin = None; trace = true; working_directory = Some \"C:\\home\\git\\polyglot\" } }\n",
- "00:00:01 \u001B[90mv\u001B[0m #2 > 00:00:00 \u001B[94md\u001B[0m #1 pwd: C:\\home\\git\\polyglot\n",
- "00:00:01 \u001B[90mv\u001B[0m #3 > 00:00:00 \u001B[94md\u001B[0m #2 dllPath: C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral Language 2\\artifacts\\bin\\The Spiral Language 2\\release\n",
- "00:00:01 \u001B[90mv\u001B[0m #4 > 00:00:00 \u001B[94md\u001B[0m #3 targetDir: C:\\home\\git\\polyglot\\target/spiral_Eval\n",
- "00:00:01 \u001B[90mv\u001B[0m #2 async.run_with_timeout_async / { timeout = 100 }\n",
- "00:00:01 \u001B[90mv\u001B[0m #3 async.run_with_timeout_async / { timeout = 100 }\n",
- "00:00:01 \u001B[90mv\u001B[0m #5 > Starting the Spiral Server. It is bound to: http://localhost:13805\n",
- "00:00:01 \u001B[90mv\u001B[0m #4 async.run_with_timeout_async / { timeout = 100 }\n",
- "00:00:01 \u001B[90mv\u001B[0m #1 Supervisor.sendJson / port: 13805 / json: {\"Ping\":true} / result:\n",
- "00:00:01 \u001B[90mv\u001B[0m #2 Supervisor.awaitCompiler / Ping / result: 'Some null' / port: 13805 / retry: 1\n",
- "00:00:01 \u001B[90mv\u001B[0m #6 > Server bound to: http://localhost:13805\n",
- "00:00:01 \u001B[94md\u001B[0m #7 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 \"dib --path math.dib --retries 1\"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path math.dib --retries 1; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }\n",
- "00:00:01 \u001B[90mv\u001B[0m #8 > 00:00:00 \u001B[94md\u001B[39m #1 spiral.main / { args = Array(MutCell([\"dib\", \"--path\", \"math.dib\", \"--retries\", \"1\"])) }\n",
- "00:00:01 \u001B[90mv\u001B[0m #9 > 00:00:00 \u001B[94md\u001B[39m #2 runtime.execute_with_options / { file_name = dotnet; arguments = [\"repl\", \"--exit-after-run\", \"--run\", \"c:/home/git/polyglot/lib/math/math.dib\", \"--output-path\", \"c:/home/git/polyglot/lib/math/math.dib.ipynb\"]; options = { command = dotnet repl --exit-after-run --run \"c:/home/git/polyglot/lib/math/math.dib\" --output-path \"c:/home/git/polyglot/lib/math/math.dib.ipynb\"; cancellation_token = None; environment_variables = Array(MutCell([(\"TRACE_LEVEL\", \"Verbose\"), (\"AUTOMATION\", \"True\")])); on_line = None; stdin = None; trace = false; working_directory = None } }\n",
- "00:00:03 \u001B[90mv\u001B[0m #10 > >\n",
- "00:00:03 \u001B[90mv\u001B[0m #11 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:03 \u001B[90mv\u001B[0m #12 > > \u001B[38;2;146;146;178m│\u001B[0m # math\n",
- "00:00:07 \u001B[90mv\u001B[0m #13 > >\n",
- "00:00:07 \u001B[90mv\u001B[0m #14 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
- "00:00:07 \u001B[90mv\u001B[0m #15 > > open testing\n",
- "00:00:07 \u001B[90mv\u001B[0m #16 > > open rust.rust_operators\n",
- "00:00:07 \u001B[90mv\u001B[0m #17 > > open rust\n",
- "00:00:11 \u001B[90mv\u001B[0m #18 > >\n",
- "00:00:11 \u001B[90mv\u001B[0m #19 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:11 \u001B[90mv\u001B[0m #20 > > \u001B[38;2;146;146;178m│\u001B[0m ## complex\n",
- "00:00:11 \u001B[90mv\u001B[0m #21 > >\n",
- "00:00:11 \u001B[90mv\u001B[0m #22 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
- "00:00:11 \u001B[90mv\u001B[0m #23 > > nominal complex t =\n",
- "00:00:11 \u001B[90mv\u001B[0m #24 > > `(\n",
- "00:00:11 \u001B[90mv\u001B[0m #25 > > global \"#if FABLE_COMPILER\\n[[ > Fable.Core.Emit(\\\"num_complex::Complex<$0>\\\")>]]\\n#endif\\ntype\n",
- "00:00:11 \u001B[90mv\u001B[0m #27 > > num_complex_Complex<'T> = class end\"\n",
- "00:00:11 \u001B[90mv\u001B[0m #28 > > $'' : $'num_complex_Complex<`t>'\n",
- "00:00:11 \u001B[90mv\u001B[0m #29 > > )\n",
- "00:00:11 \u001B[90mv\u001B[0m #30 > >\n",
- "00:00:11 \u001B[90mv\u001B[0m #31 > > inl complex forall t. ((re : t), (im : t)) : complex t =\n",
- "00:00:11 \u001B[90mv\u001B[0m #32 > > !\\\\((re, im), $'\"num_complex::Complex::new($0, $1)\"')\n",
- "00:00:12 \u001B[90mv\u001B[0m #33 > >\n",
- "00:00:12 \u001B[90mv\u001B[0m #34 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
- "00:00:12 \u001B[90mv\u001B[0m #35 > > //// test\n",
- "00:00:12 \u001B[90mv\u001B[0m #36 > > ///! rust -d num-complex\n",
- "00:00:12 \u001B[90mv\u001B[0m #37 > >\n",
- "00:00:12 \u001B[90mv\u001B[0m #38 > > complex (0f64, 0f64)\n",
- "00:00:12 \u001B[90mv\u001B[0m #39 > > |> sm'.format'\n",
- "00:00:12 \u001B[90mv\u001B[0m #40 > > |> sm'.from_std_string\n",
- "00:00:12 \u001B[90mv\u001B[0m #41 > > |> _assert_eq \"0+0i\"\n",
- "00:00:20 \u001B[90mv\u001B[0m #42 > >\n",
- "00:00:20 \u001B[90mv\u001B[0m #43 > > ── [ 8.26s - return value ] ────────────────────────────────────────────────────\n",
- "00:00:20 \u001B[90mv\u001B[0m #44 > > \u001B[38;2;38;140;38m│\u001B[0m __assert_eq / actual: \"0+0i\" / expected: \"0+0i\"\n",
- "00:00:20 \u001B[90mv\u001B[0m #45 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:20 \u001B[90mv\u001B[0m #46 > >\n",
- "00:00:20 \u001B[90mv\u001B[0m #47 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:20 \u001B[90mv\u001B[0m #48 > > \u001B[38;2;146;146;178m│\u001B[0m ## re\n",
- "00:00:20 \u001B[90mv\u001B[0m #49 > >\n",
- "00:00:20 \u001B[90mv\u001B[0m #50 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
- "00:00:20 \u001B[90mv\u001B[0m #51 > > inl re forall t. (c : complex t) : t =\n",
- "00:00:20 \u001B[90mv\u001B[0m #52 > > !\\\\(c, $'\"$0.re\"')\n",
- "00:00:20 \u001B[90mv\u001B[0m #53 > >\n",
- "00:00:20 \u001B[90mv\u001B[0m #54 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:20 \u001B[90mv\u001B[0m #55 > > \u001B[38;2;146;146;178m│\u001B[0m ## im\n",
- "00:00:20 \u001B[90mv\u001B[0m #56 > >\n",
- "00:00:20 \u001B[90mv\u001B[0m #57 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
- "00:00:20 \u001B[90mv\u001B[0m #58 > > inl im forall t. (c : complex t) : t =\n",
- "00:00:20 \u001B[90mv\u001B[0m #59 > > !\\\\(c, $'\"$0.im\"')\n",
- "00:00:21 \u001B[90mv\u001B[0m #60 > >\n",
- "00:00:21 \u001B[90mv\u001B[0m #61 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:21 \u001B[90mv\u001B[0m #62 > > \u001B[38;2;146;146;178m│\u001B[0m ## complex_unbox\n",
- "00:00:21 \u001B[90mv\u001B[0m #63 > >\n",
- "00:00:21 \u001B[90mv\u001B[0m #64 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
- "00:00:21 \u001B[90mv\u001B[0m #65 > > inl complex_unbox forall t. (c : complex t) =\n",
- "00:00:21 \u001B[90mv\u001B[0m #66 > > re c, im c\n",
- "00:00:22 \u001B[90mv\u001B[0m #67 > >\n",
- "00:00:22 \u001B[90mv\u001B[0m #68 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:22 \u001B[90mv\u001B[0m #69 > > \u001B[38;2;146;146;178m│\u001B[0m ## (~.^)\n",
- "00:00:22 \u001B[90mv\u001B[0m #70 > >\n",
- "00:00:22 \u001B[90mv\u001B[0m #71 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
- "00:00:22 \u001B[90mv\u001B[0m #72 > > inl (~.^) c = complex c\n",
- "00:00:22 \u001B[90mv\u001B[0m #73 > >\n",
- "00:00:22 \u001B[90mv\u001B[0m #74 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:22 \u001B[90mv\u001B[0m #75 > > \u001B[38;2;146;146;178m│\u001B[0m ## complex_eq\n",
- "00:00:22 \u001B[90mv\u001B[0m #76 > >\n",
- "00:00:22 \u001B[90mv\u001B[0m #77 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
- "00:00:22 \u001B[90mv\u001B[0m #78 > > inl complex_eq forall t. (a : complex t) (b : complex t) : bool =\n",
- "00:00:22 \u001B[90mv\u001B[0m #79 > > !\\\\((a, b), $'\"$0 == $1\"')\n",
- "00:00:22 \u001B[90mv\u001B[0m #80 > >\n",
- "00:00:22 \u001B[90mv\u001B[0m #81 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:22 \u001B[90mv\u001B[0m #82 > > \u001B[38;2;146;146;178m│\u001B[0m ## (.=)\n",
- "00:00:22 \u001B[90mv\u001B[0m #83 > >\n",
- "00:00:22 \u001B[90mv\u001B[0m #84 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
- "00:00:22 \u001B[90mv\u001B[0m #85 > > inl (.=) a b = complex_eq a b\n",
- "00:00:23 \u001B[90mv\u001B[0m #86 > >\n",
- "00:00:23 \u001B[90mv\u001B[0m #87 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:23 \u001B[90mv\u001B[0m #88 > > \u001B[38;2;146;146;178m│\u001B[0m ## equable complex\n",
- "00:00:23 \u001B[90mv\u001B[0m #89 > >\n",
- "00:00:23 \u001B[90mv\u001B[0m #90 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
- "00:00:23 \u001B[90mv\u001B[0m #91 > > instance equable complex t = complex_eq\n",
- "00:00:23 \u001B[90mv\u001B[0m #92 > >\n",
- "00:00:23 \u001B[90mv\u001B[0m #93 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:23 \u001B[90mv\u001B[0m #94 > > \u001B[38;2;146;146;178m│\u001B[0m ## complex_add\n",
- "00:00:23 \u001B[90mv\u001B[0m #95 > >\n",
- "00:00:23 \u001B[90mv\u001B[0m #96 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
- "00:00:23 \u001B[90mv\u001B[0m #97 > > inl complex_add forall t. (a : complex t) (b : complex t) : complex t =\n",
- "00:00:23 \u001B[90mv\u001B[0m #98 > > !\\\\((a, b), $'\"$0 + $1\"')\n",
- "00:00:24 \u001B[90mv\u001B[0m #99 > >\n",
- "00:00:24 \u001B[90mv\u001B[0m #100 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:24 \u001B[90mv\u001B[0m #101 > > \u001B[38;2;146;146;178m│\u001B[0m ## (.+)\n",
- "00:00:24 \u001B[90mv\u001B[0m #102 > >\n",
- "00:00:24 \u001B[90mv\u001B[0m #103 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
- "00:00:24 \u001B[90mv\u001B[0m #104 > > inl (.+) a b = complex_add a b\n",
- "00:00:24 \u001B[90mv\u001B[0m #105 > >\n",
- "00:00:24 \u001B[90mv\u001B[0m #106 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:24 \u001B[90mv\u001B[0m #107 > > \u001B[38;2;146;146;178m│\u001B[0m ## complex_sub\n",
- "00:00:24 \u001B[90mv\u001B[0m #108 > >\n",
- "00:00:24 \u001B[90mv\u001B[0m #109 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
- "00:00:24 \u001B[90mv\u001B[0m #110 > > inl complex_sub forall t. (a : complex t) (b : complex t) : complex t =\n",
- "00:00:24 \u001B[90mv\u001B[0m #111 > > !\\\\((a, b), $'\"$0 - $1\"')\n",
- "00:00:24 \u001B[90mv\u001B[0m #112 > >\n",
- "00:00:24 \u001B[90mv\u001B[0m #113 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:24 \u001B[90mv\u001B[0m #114 > > \u001B[38;2;146;146;178m│\u001B[0m ## (.-)\n",
- "00:00:24 \u001B[90mv\u001B[0m #115 > >\n",
- "00:00:24 \u001B[90mv\u001B[0m #116 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
- "00:00:24 \u001B[90mv\u001B[0m #117 > > inl (.-) a b = complex_sub a b\n",
- "00:00:25 \u001B[90mv\u001B[0m #118 > >\n",
- "00:00:25 \u001B[90mv\u001B[0m #119 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:25 \u001B[90mv\u001B[0m #120 > > \u001B[38;2;146;146;178m│\u001B[0m ## complex_mult\n",
- "00:00:25 \u001B[90mv\u001B[0m #121 > >\n",
- "00:00:25 \u001B[90mv\u001B[0m #122 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
- "00:00:25 \u001B[90mv\u001B[0m #123 > > inl complex_mult forall t. (a : complex t) (b : complex t) : complex t =\n",
- "00:00:25 \u001B[90mv\u001B[0m #124 > > !\\\\((a, b), $'\"$0 * $1\"')\n",
- "00:00:25 \u001B[90mv\u001B[0m #125 > >\n",
- "00:00:25 \u001B[90mv\u001B[0m #126 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:25 \u001B[90mv\u001B[0m #127 > > \u001B[38;2;146;146;178m│\u001B[0m ## (.*)\n",
- "00:00:25 \u001B[90mv\u001B[0m #128 > >\n",
- "00:00:25 \u001B[90mv\u001B[0m #129 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
- "00:00:25 \u001B[90mv\u001B[0m #130 > > inl (.*) a b = complex_mult a b\n",
- "00:00:26 \u001B[90mv\u001B[0m #131 > >\n",
- "00:00:26 \u001B[90mv\u001B[0m #132 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:26 \u001B[90mv\u001B[0m #133 > > \u001B[38;2;146;146;178m│\u001B[0m ## complex_div\n",
- "00:00:26 \u001B[90mv\u001B[0m #134 > >\n",
- "00:00:26 \u001B[90mv\u001B[0m #135 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
- "00:00:26 \u001B[90mv\u001B[0m #136 > > inl complex_div forall t. (a : complex t) (b : complex t) : complex t =\n",
- "00:00:26 \u001B[90mv\u001B[0m #137 > > !\\\\((a, b), $'\"$0 / $1\"')\n",
- "00:00:26 \u001B[90mv\u001B[0m #138 > >\n",
- "00:00:26 \u001B[90mv\u001B[0m #139 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:26 \u001B[90mv\u001B[0m #140 > > \u001B[38;2;146;146;178m│\u001B[0m ## (./)\n",
- "00:00:26 \u001B[90mv\u001B[0m #141 > >\n",
- "00:00:26 \u001B[90mv\u001B[0m #142 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
- "00:00:26 \u001B[90mv\u001B[0m #143 > > inl (./) a b = complex_div a b\n",
- "00:00:27 \u001B[90mv\u001B[0m #144 > >\n",
- "00:00:27 \u001B[90mv\u001B[0m #145 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:27 \u001B[90mv\u001B[0m #146 > > \u001B[38;2;146;146;178m│\u001B[0m ## powc\n",
- "00:00:27 \u001B[90mv\u001B[0m #147 > >\n",
- "00:00:27 \u001B[90mv\u001B[0m #148 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
- "00:00:27 \u001B[90mv\u001B[0m #149 > > inl powc forall t. (s : complex t) (c : complex t) : complex t =\n",
- "00:00:27 \u001B[90mv\u001B[0m #150 > > !\\\\((c, s), $'\"num_complex::Complex::powc($0, $1)\"')\n",
- "00:00:27 \u001B[90mv\u001B[0m #151 > >\n",
- "00:00:27 \u001B[90mv\u001B[0m #152 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:27 \u001B[90mv\u001B[0m #153 > > \u001B[38;2;146;146;178m│\u001B[0m ## (.**)\n",
- "00:00:27 \u001B[90mv\u001B[0m #154 > >\n",
- "00:00:27 \u001B[90mv\u001B[0m #155 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
- "00:00:27 \u001B[90mv\u001B[0m #156 > > inl (.**) a b = powc b a\n",
- "00:00:27 \u001B[90mv\u001B[0m #157 > >\n",
- "00:00:27 \u001B[90mv\u001B[0m #158 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:27 \u001B[90mv\u001B[0m #159 > > \u001B[38;2;146;146;178m│\u001B[0m ## complex_sin\n",
- "00:00:27 \u001B[90mv\u001B[0m #160 > >\n",
- "00:00:27 \u001B[90mv\u001B[0m #161 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
- "00:00:27 \u001B[90mv\u001B[0m #162 > > inl complex_sin forall t. (c : complex t) : complex t =\n",
- "00:00:27 \u001B[90mv\u001B[0m #163 > > !\\\\(c, $'\"$0.sin()\"')\n",
- "00:00:28 \u001B[90mv\u001B[0m #164 > >\n",
- "00:00:28 \u001B[90mv\u001B[0m #165 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:28 \u001B[90mv\u001B[0m #166 > > \u001B[38;2;146;146;178m│\u001B[0m ## conj\n",
- "00:00:28 \u001B[90mv\u001B[0m #167 > >\n",
- "00:00:28 \u001B[90mv\u001B[0m #168 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
- "00:00:28 \u001B[90mv\u001B[0m #169 > > inl conj forall t. (c : complex t) : complex t =\n",
- "00:00:28 \u001B[90mv\u001B[0m #170 > > !\\\\(c, $'\"$0.conj()\"')\n",
- "00:00:28 \u001B[90mv\u001B[0m #171 > >\n",
- "00:00:28 \u001B[90mv\u001B[0m #172 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:28 \u001B[90mv\u001B[0m #173 > > \u001B[38;2;146;146;178m│\u001B[0m ## zeta\n",
- "00:00:28 \u001B[90mv\u001B[0m #174 > >\n",
- "00:00:28 \u001B[90mv\u001B[0m #175 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
- "00:00:28 \u001B[90mv\u001B[0m #176 > > inl zeta log (gamma : complex f64 -> complex f64) (s : complex f64) : complex\n",
- "00:00:28 \u001B[90mv\u001B[0m #177 > > f64 =\n",
- "00:00:28 \u001B[90mv\u001B[0m #178 > > inl rec zeta count gamma s =\n",
- "00:00:28 \u001B[90mv\u001B[0m #179 > > if log then\n",
- "00:00:28 \u001B[90mv\u001B[0m #180 > > !\\\\((count, s), $'\"println\\!(\\\\\\\"zeta / count: {:?} / s: {:?}\\\\\\\",\n",
- "00:00:28 \u001B[90mv\u001B[0m #181 > > $0, $1)\"')\n",
- "00:00:28 \u001B[90mv\u001B[0m #182 > > if re s > 1 then\n",
- "00:00:28 \u001B[90mv\u001B[0m #183 > > (.^(0, 0), (am.init 10000i32 id : a i32 _))\n",
- "00:00:28 \u001B[90mv\u001B[0m #184 > > ||> am.fold fun acc n =>\n",
- "00:00:28 \u001B[90mv\u001B[0m #185 > > acc .+ (.^(1, 0) ./ (.^(f64 n, 0) .** s))\n",
- "00:00:28 \u001B[90mv\u001B[0m #186 > > else\n",
- "00:00:28 \u001B[90mv\u001B[0m #187 > > inl gamma_term = gamma (.^(1, 0) .- s)\n",
- "00:00:28 \u001B[90mv\u001B[0m #188 > > inl sin_term = .^(pi, 0) .* s ./ .^(2, 0) |> complex_sin\n",
- "00:00:28 \u001B[90mv\u001B[0m #189 > > inl one_minus_s = .^(1 - re s, -(im s))\n",
- "00:00:28 \u001B[90mv\u001B[0m #190 > > inl mirror_term =\n",
- "00:00:28 \u001B[90mv\u001B[0m #191 > > if re one_minus_s <= 1\n",
- "00:00:28 \u001B[90mv\u001B[0m #192 > > then .^(0, 0)\n",
- "00:00:28 \u001B[90mv\u001B[0m #193 > > else\n",
- "00:00:28 \u001B[90mv\u001B[0m #194 > > if count <= 3\n",
- "00:00:28 \u001B[90mv\u001B[0m #195 > > then zeta (count + 1) gamma one_minus_s\n",
- "00:00:28 \u001B[90mv\u001B[0m #196 > > else one_minus_s\n",
- "00:00:28 \u001B[90mv\u001B[0m #197 > > inl reflection_formula =\n",
- "00:00:28 \u001B[90mv\u001B[0m #198 > > .^(2, 0) .* (.^(pi, 0) .** s) .* sin_term .* gamma_term .*\n",
- "00:00:28 \u001B[90mv\u001B[0m #199 > > mirror_term\n",
- "00:00:28 \u001B[90mv\u001B[0m #200 > > reflection_formula\n",
- "00:00:28 \u001B[90mv\u001B[0m #201 > > join zeta 0i32 gamma s\n",
- "00:00:29 \u001B[90mv\u001B[0m #202 > >\n",
- "00:00:29 \u001B[90mv\u001B[0m #203 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:29 \u001B[90mv\u001B[0m #204 > > \u001B[38;2;146;146;178m│\u001B[0m ## bound\n",
- "00:00:29 \u001B[90mv\u001B[0m #205 > >\n",
- "00:00:29 \u001B[90mv\u001B[0m #206 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
- "00:00:29 \u001B[90mv\u001B[0m #207 > > nominal bound t =\n",
- "00:00:29 \u001B[90mv\u001B[0m #208 > > `(\n",
- "00:00:29 \u001B[90mv\u001B[0m #209 > > global \"#if FABLE_COMPILER\\n[[ > Fable.Core.Emit(\\\"pyo3::Bound<$0>\\\")>]]\\n#endif\\ntype pyo3_Bound<'T> = class\n",
- "00:00:29 \u001B[90mv\u001B[0m #211 > > end\"\n",
- "00:00:29 \u001B[90mv\u001B[0m #212 > > $'' : $'pyo3_Bound<`t>'\n",
- "00:00:29 \u001B[90mv\u001B[0m #213 > > )\n",
- "00:00:29 \u001B[90mv\u001B[0m #214 > >\n",
- "00:00:29 \u001B[90mv\u001B[0m #215 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:29 \u001B[90mv\u001B[0m #216 > > \u001B[38;2;146;146;178m│\u001B[0m ## python\n",
- "00:00:29 \u001B[90mv\u001B[0m #217 > >\n",
- "00:00:29 \u001B[90mv\u001B[0m #218 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
- "00:00:29 \u001B[90mv\u001B[0m #219 > > nominal python =\n",
- "00:00:29 \u001B[90mv\u001B[0m #220 > > `(\n",
- "00:00:29 \u001B[90mv\u001B[0m #221 > > global \"#if FABLE_COMPILER\\n[[ > Fable.Core.Emit(\\\"pyo3::Python\\\")>]]\\n#endif\\ntype pyo3_Python = class end\"\n",
- "00:00:29 \u001B[90mv\u001B[0m #223 > > $'' : $'pyo3_Python'\n",
- "00:00:29 \u001B[90mv\u001B[0m #224 > > )\n",
- "00:00:30 \u001B[90mv\u001B[0m #225 > >\n",
- "00:00:30 \u001B[90mv\u001B[0m #226 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:30 \u001B[90mv\u001B[0m #227 > > \u001B[38;2;146;146;178m│\u001B[0m ## pymodule\n",
- "00:00:30 \u001B[90mv\u001B[0m #228 > >\n",
- "00:00:30 \u001B[90mv\u001B[0m #229 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
- "00:00:30 \u001B[90mv\u001B[0m #230 > > nominal pymodule =\n",
- "00:00:30 \u001B[90mv\u001B[0m #231 > > `(\n",
- "00:00:30 \u001B[90mv\u001B[0m #232 > > global \"#if FABLE_COMPILER\\n[[ > Fable.Core.Emit(\\\"pyo3::types::PyModule\\\")>]]\\n#endif\\ntype pyo3_types_PyModule\n",
- "00:00:30 \u001B[90mv\u001B[0m #234 > > = class end\"\n",
- "00:00:30 \u001B[90mv\u001B[0m #235 > > $'' : $'pyo3_types_PyModule'\n",
- "00:00:30 \u001B[90mv\u001B[0m #236 > > )\n",
- "00:00:30 \u001B[90mv\u001B[0m #237 > >\n",
- "00:00:30 \u001B[90mv\u001B[0m #238 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:30 \u001B[90mv\u001B[0m #239 > > \u001B[38;2;146;146;178m│\u001B[0m ## pyany\n",
- "00:00:30 \u001B[90mv\u001B[0m #240 > >\n",
- "00:00:30 \u001B[90mv\u001B[0m #241 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
- "00:00:30 \u001B[90mv\u001B[0m #242 > > nominal pyany =\n",
- "00:00:30 \u001B[90mv\u001B[0m #243 > > `(\n",
- "00:00:30 \u001B[90mv\u001B[0m #244 > > global \"#if FABLE_COMPILER\\n[[ > Fable.Core.Emit(\\\"pyo3::PyAny\\\")>]]\\n#endif\\ntype pyo3_PyAny = class end\"\n",
- "00:00:30 \u001B[90mv\u001B[0m #246 > > $'' : $'pyo3_PyAny'\n",
- "00:00:30 \u001B[90mv\u001B[0m #247 > > )\n",
- "00:00:31 \u001B[90mv\u001B[0m #248 > >\n",
- "00:00:31 \u001B[90mv\u001B[0m #249 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:31 \u001B[90mv\u001B[0m #250 > > \u001B[38;2;146;146;178m│\u001B[0m ## pyerr\n",
- "00:00:31 \u001B[90mv\u001B[0m #251 > >\n",
- "00:00:31 \u001B[90mv\u001B[0m #252 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
- "00:00:31 \u001B[90mv\u001B[0m #253 > > nominal pyerr =\n",
- "00:00:31 \u001B[90mv\u001B[0m #254 > > `(\n",
- "00:00:31 \u001B[90mv\u001B[0m #255 > > global \"#if FABLE_COMPILER\\n[[ > Fable.Core.Emit(\\\"pyo3::PyErr\\\")>]]\\n#endif\\ntype pyo3_PyErr = class end\"\n",
- "00:00:31 \u001B[90mv\u001B[0m #257 > > $'' : $'pyo3_PyErr'\n",
- "00:00:31 \u001B[90mv\u001B[0m #258 > > )\n",
- "00:00:31 \u001B[90mv\u001B[0m #259 > >\n",
- "00:00:31 \u001B[90mv\u001B[0m #260 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:31 \u001B[90mv\u001B[0m #261 > > \u001B[38;2;146;146;178m│\u001B[0m ## eval\n",
- "00:00:31 \u001B[90mv\u001B[0m #262 > >\n",
- "00:00:31 \u001B[90mv\u001B[0m #263 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
- "00:00:31 \u001B[90mv\u001B[0m #264 > > inl module_from_code (py : python) (code : string) : _ (bound pymodule) _ =\n",
- "00:00:31 \u001B[90mv\u001B[0m #265 > > inl py = join py\n",
- "00:00:31 \u001B[90mv\u001B[0m #266 > > inl code = code |> sm'.to_std_string |> sm'.new_c_string\n",
- "00:00:31 \u001B[90mv\u001B[0m #267 > > inl empty = \"\" |> sm'.to_std_string |> sm'.new_c_string\n",
- "00:00:31 \u001B[90mv\u001B[0m #268 > > !\\\\(code, $'\"pyo3::types::PyModule::from_code(!py, &$0, &!empty, &!empty)\"')\n",
- "00:00:31 \u001B[90mv\u001B[0m #269 > > |> resultm.map_error'' fun (x : pyerr) => x |> sm'.format'\n",
- "00:00:31 \u001B[90mv\u001B[0m #270 > >\n",
- "00:00:31 \u001B[90mv\u001B[0m #271 > > inl use_pyanymethods () =\n",
- "00:00:31 \u001B[90mv\u001B[0m #272 > > global \"Fable.Core.RustInterop.emitRustExpr () \\\");\\nuse\n",
- "00:00:31 \u001B[90mv\u001B[0m #273 > > pyo3::prelude::PyAnyMethods;\\n//\\\"\"\n",
- "00:00:31 \u001B[90mv\u001B[0m #274 > >\n",
- "00:00:31 \u001B[90mv\u001B[0m #275 > > inl getattr (attr : string) (module : bound pymodule) : _ (bound pyany) _ =\n",
- "00:00:31 \u001B[90mv\u001B[0m #276 > > inl attr = join attr\n",
- "00:00:31 \u001B[90mv\u001B[0m #277 > > inl attr = attr |> sm'.as_str\n",
- "00:00:31 \u001B[90mv\u001B[0m #278 > > inl module = join module\n",
- "00:00:31 \u001B[90mv\u001B[0m #279 > > use_pyanymethods ()\n",
- "00:00:31 \u001B[90mv\u001B[0m #280 > > !\\\\(attr, $'\"!module.getattr($0)\"')\n",
- "00:00:31 \u001B[90mv\u001B[0m #281 > > |> resultm.map_error'' fun (x : pyerr) => x |> sm'.format'\n",
- "00:00:31 \u001B[90mv\u001B[0m #282 > >\n",
- "00:00:31 \u001B[90mv\u001B[0m #283 > > inl call forall t. (args : t) (module : bound pyany) : _ (bound pyany) _ =\n",
- "00:00:31 \u001B[90mv\u001B[0m #284 > > inl args = join args\n",
- "00:00:31 \u001B[90mv\u001B[0m #285 > > inl module = join module\n",
- "00:00:31 \u001B[90mv\u001B[0m #286 > > !\\($'\"pyo3::prelude::PyAnyMethods::call(&!module, ((*!args).0, *(*!args).1),\n",
- "00:00:31 \u001B[90mv\u001B[0m #287 > > None)\"')\n",
- "00:00:31 \u001B[90mv\u001B[0m #288 > > |> resultm.map_error'' fun (x : pyerr) => x |> sm'.format'\n",
- "00:00:31 \u001B[90mv\u001B[0m #289 > >\n",
- "00:00:31 \u001B[90mv\u001B[0m #290 > > inl extract forall t. (result : bound pyany) : _ t _ =\n",
- "00:00:31 \u001B[90mv\u001B[0m #291 > > inl result = join result\n",
- "00:00:31 \u001B[90mv\u001B[0m #292 > > use_pyanymethods ()\n",
- "00:00:31 \u001B[90mv\u001B[0m #293 > > !\\($'\"!result.extract()\"')\n",
- "00:00:31 \u001B[90mv\u001B[0m #294 > > |> resultm.map_error'' fun (x : pyerr) => x |> sm'.format'\n",
- "00:00:31 \u001B[90mv\u001B[0m #295 > >\n",
- "00:00:31 \u001B[90mv\u001B[0m #296 > > inl eval py code (args : pair bool (pair f64 f64)) : _ (_ f64) sm'.std_string =\n",
- "00:00:31 \u001B[90mv\u001B[0m #297 > > inl code =\n",
- "00:00:31 \u001B[90mv\u001B[0m #298 > > code\n",
- "00:00:31 \u001B[90mv\u001B[0m #299 > > |> module_from_code py\n",
- "00:00:31 \u001B[90mv\u001B[0m #300 > > |> resultm.unwrap'\n",
- "00:00:31 \u001B[90mv\u001B[0m #301 > > inl fn =\n",
- "00:00:31 \u001B[90mv\u001B[0m #302 > > code\n",
- "00:00:31 \u001B[90mv\u001B[0m #303 > > |> getattr \"fn\"\n",
- "00:00:31 \u001B[90mv\u001B[0m #304 > > |> resultm.unwrap'\n",
- "00:00:31 \u001B[90mv\u001B[0m #305 > >\n",
- "00:00:31 \u001B[90mv\u001B[0m #306 > > fn\n",
- "00:00:31 \u001B[90mv\u001B[0m #307 > > |> call args\n",
- "00:00:31 \u001B[90mv\u001B[0m #308 > > |> resultm.try'\n",
- "00:00:31 \u001B[90mv\u001B[0m #309 > > |> extract\n",
- "00:00:31 \u001B[90mv\u001B[0m #310 > > |> resultm.try'\n",
- "00:00:31 \u001B[90mv\u001B[0m #311 > > |> complex\n",
- "00:00:31 \u001B[90mv\u001B[0m #312 > > |> Ok\n",
- "00:00:31 \u001B[90mv\u001B[0m #313 > > |> resultm.box\n",
- "00:00:31 \u001B[90mv\u001B[0m #314 > >\n",
- "00:00:31 \u001B[90mv\u001B[0m #315 > > inl call1_ log py s code =\n",
- "00:00:31 \u001B[90mv\u001B[0m #316 > > inl code = join (a code : _ i32 _) |> sm'.concat_array \"\\n\"\n",
- "00:00:31 \u001B[90mv\u001B[0m #317 > >\n",
- "00:00:31 \u001B[90mv\u001B[0m #318 > > inl s = new_pair (re s) (im s)\n",
- "00:00:31 \u001B[90mv\u001B[0m #319 > > inl args = new_pair log s\n",
- "00:00:31 \u001B[90mv\u001B[0m #320 > >\n",
- "00:00:31 \u001B[90mv\u001B[0m #321 > > eval py code args\n",
- "00:00:31 \u001B[90mv\u001B[0m #322 > >\n",
- "00:00:31 \u001B[90mv\u001B[0m #323 > > inl call1_ log name py s line =\n",
- "00:00:31 \u001B[90mv\u001B[0m #324 > > inl s = join s\n",
- "00:00:31 \u001B[90mv\u001B[0m #325 > > join\n",
- "00:00:31 \u001B[90mv\u001B[0m #326 > > ;[[\n",
- "00:00:31 \u001B[90mv\u001B[0m #327 > > $'$\"import sys\"'\n",
- "00:00:31 \u001B[90mv\u001B[0m #328 > > $'$\"import traceback\"'\n",
- "00:00:31 \u001B[90mv\u001B[0m #329 > > $'$\"import re\"'\n",
- "00:00:31 \u001B[90mv\u001B[0m #330 > > $'$\"count = 0\"'\n",
- "00:00:31 \u001B[90mv\u001B[0m #331 > > $'$\"memory_address_pattern = re.compile(r\\' at 0x[[0-9a-fA-F]]+\\')\"'\n",
- "00:00:31 \u001B[90mv\u001B[0m #332 > > $'$\"def trace_calls(frame, event, arg):\"'\n",
- "00:00:31 \u001B[90mv\u001B[0m #333 > > $'$\" global count\"'\n",
- "00:00:31 \u001B[90mv\u001B[0m #334 > > $'$\" count += 1\"'\n",
- "00:00:31 \u001B[90mv\u001B[0m #335 > > $'$\" if count < 200:\"'\n",
- "00:00:31 \u001B[90mv\u001B[0m #336 > > $'$\" try:\"'\n",
- "00:00:31 \u001B[90mv\u001B[0m #337 > > $'$\" args = {{ k: v for k, v in frame.f_locals.items() if\n",
- "00:00:31 \u001B[90mv\u001B[0m #338 > > frame.f_code.co_name \\!= \\'make_mpc\\' and k not in [[\\'ctx\\']] and not\n",
- "00:00:31 \u001B[90mv\u001B[0m #339 > > callable(v) }}\"'\n",
- "00:00:31 \u001B[90mv\u001B[0m #340 > > $'$\" args_str = \\', \\'.join([[\n",
- "00:00:31 \u001B[90mv\u001B[0m #341 > > f\\\\\\\"{{k}}={{re.sub(memory_address_pattern, \\' at 0x>\\', repr(v))}}\\\\\\\" for k,\n",
- "00:00:31 \u001B[90mv\u001B[0m #342 > > v in args.items() ]])\"'\n",
- "00:00:31 \u001B[90mv\u001B[0m #343 > > $'$\" print(f\\\\\\\"{{event}}({!name}) / f_code.co_name:\n",
- "00:00:31 \u001B[90mv\u001B[0m #344 > > {{frame.f_code.co_name}} / f_locals: {{args_str}} / f_lineno: {{frame.f_lineno}}\n",
- "00:00:31 \u001B[90mv\u001B[0m #345 > > / f_code.co_filename:\n",
- "00:00:31 \u001B[90mv\u001B[0m #346 > > {{frame.f_code.co_filename.split(\\'site-packages\\')[[-1]]}} / f_back.f_lineno:\n",
- "00:00:31 \u001B[90mv\u001B[0m #347 > > {{ \\'\\' if frame.f_back is None else frame.f_back.f_lineno }}\n",
- "00:00:31 \u001B[90mv\u001B[0m #348 > > f_back.f_code.co_filename: {{ \\'\\' if frame.f_back is None else\n",
- "00:00:31 \u001B[90mv\u001B[0m #349 > > frame.f_back.f_code.co_filename.split(\\'site-packages\\')[[-1]] }} / arg:\n",
- "00:00:31 \u001B[90mv\u001B[0m #350 > > {{re.sub(memory_address_pattern, \\' at 0x>\\', repr(arg))}}\\\\\\\", flush=True)\"'\n",
- "00:00:31 \u001B[90mv\u001B[0m #351 > > $'$\" except ValueError as e:\"'\n",
- "00:00:31 \u001B[90mv\u001B[0m #352 > > $'$\" print(f\\'{!name} / e: {{e}}\\', flush=True)\"'\n",
- "00:00:31 \u001B[90mv\u001B[0m #353 > > $'$\" return trace_calls\"'\n",
- "00:00:31 \u001B[90mv\u001B[0m #354 > > $'$\"import mpmath\"'\n",
- "00:00:31 \u001B[90mv\u001B[0m #355 > > $'$\"def fn(log, s):\"'\n",
- "00:00:31 \u001B[90mv\u001B[0m #356 > > $'$\" global count\"'\n",
- "00:00:31 \u001B[90mv\u001B[0m #357 > > $'$\" if log:\"'\n",
- "00:00:31 \u001B[90mv\u001B[0m #358 > > $'$\" print(f\\'{!name} / s: {{s}} / count: {{count}}\\',\n",
- "00:00:31 \u001B[90mv\u001B[0m #359 > > flush=True)\"'\n",
- "00:00:31 \u001B[90mv\u001B[0m #360 > > $'$\" s = complex(*s)\"'\n",
- "00:00:31 \u001B[90mv\u001B[0m #361 > > $'$\" try:\"'\n",
- "00:00:31 \u001B[90mv\u001B[0m #362 > > $'$\" if log: sys.settrace(trace_calls)\"'\n",
- "00:00:31 \u001B[90mv\u001B[0m #363 > > line\n",
- "00:00:31 \u001B[90mv\u001B[0m #364 > > $'$\" if log:\"'\n",
- "00:00:31 \u001B[90mv\u001B[0m #365 > > $'$\" sys.settrace(None)\"'\n",
- "00:00:31 \u001B[90mv\u001B[0m #366 > > $'$\" print(f\\'{!name} / result: {{s}} / count:\n",
- "00:00:31 \u001B[90mv\u001B[0m #367 > > {{count}}\\', flush=True)\"'\n",
- "00:00:31 \u001B[90mv\u001B[0m #368 > > $'$\" except ValueError as e:\"'\n",
- "00:00:31 \u001B[90mv\u001B[0m #369 > > $'$\" if s.real == 1:\"'\n",
- "00:00:31 \u001B[90mv\u001B[0m #370 > > $'$\" s = complex(float(\\'inf\\'), 0)\"'\n",
- "00:00:31 \u001B[90mv\u001B[0m #371 > > $'$\" return (s.real, s.imag)\"'\n",
- "00:00:31 \u001B[90mv\u001B[0m #372 > > ]]\n",
- "00:00:31 \u001B[90mv\u001B[0m #373 > > |> call1_ log py s\n",
- "00:00:31 \u001B[90mv\u001B[0m #374 > >\n",
- "00:00:31 \u001B[90mv\u001B[0m #375 > > inl gamma_ log py s =\n",
- "00:00:31 \u001B[90mv\u001B[0m #376 > > call1_ log \"gamma_\" py s $'$\" s = mpmath.gamma(s)\"'\n",
- "00:00:31 \u001B[90mv\u001B[0m #377 > >\n",
- "00:00:31 \u001B[90mv\u001B[0m #378 > > inl zeta_ log py s =\n",
- "00:00:31 \u001B[90mv\u001B[0m #379 > > call1_ log \"zeta_\" py s $'$\" s = mpmath.zeta(s)\"'\n",
- "00:00:32 \u001B[90mv\u001B[0m #380 > >\n",
- "00:00:32 \u001B[90mv\u001B[0m #381 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:32 \u001B[90mv\u001B[0m #382 > > \u001B[38;2;146;146;178m│\u001B[0m ## run_test\n",
- "00:00:32 \u001B[90mv\u001B[0m #383 > >\n",
- "00:00:32 \u001B[90mv\u001B[0m #384 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
- "00:00:32 \u001B[90mv\u001B[0m #385 > > inl run_test log (fn : (complex f64 -> complex f64) * (complex f64 -> complex\n",
- "00:00:32 \u001B[90mv\u001B[0m #386 > > f64) -> ()) =\n",
- "00:00:32 \u001B[90mv\u001B[0m #387 > > inl fn_ (py : python) : resultm.result' () pyerr =\n",
- "00:00:32 \u001B[90mv\u001B[0m #388 > > inl nan () =\n",
- "00:00:32 \u001B[90mv\u001B[0m #389 > > !\\($'\"f64::NAN\"')\n",
- "00:00:32 \u001B[90mv\u001B[0m #390 > > inl gamma__ = fun (s : complex f64) =>\n",
- "00:00:32 \u001B[90mv\u001B[0m #391 > > inl result = gamma_ log py s\n",
- "00:00:32 \u001B[90mv\u001B[0m #392 > > if log then\n",
- "00:00:32 \u001B[90mv\u001B[0m #393 > > inl s = join s\n",
- "00:00:32 \u001B[90mv\u001B[0m #394 > > !\\($'\"println\\!(\\\\\\\"gamma__ / s: {:?} / result: {:?}\\\\\\\", !s,\n",
- "00:00:32 \u001B[90mv\u001B[0m #395 > > !result)\"')\n",
- "00:00:32 \u001B[90mv\u001B[0m #396 > > result |> resultm.ok' |> optionm'.unbox |> optionm'.default_value\n",
- "00:00:32 \u001B[90mv\u001B[0m #397 > > .^(nan (), nan ())\n",
- "00:00:32 \u001B[90mv\u001B[0m #398 > > inl zeta__ = fun (s : complex f64) =>\n",
- "00:00:32 \u001B[90mv\u001B[0m #399 > > inl result = zeta_ log py s\n",
- "00:00:32 \u001B[90mv\u001B[0m #400 > >\n",
- "00:00:32 \u001B[90mv\u001B[0m #401 > > inl z = zeta true gamma__ s\n",
- "00:00:32 \u001B[90mv\u001B[0m #402 > >\n",
- "00:00:32 \u001B[90mv\u001B[0m #403 > > if log then\n",
- "00:00:32 \u001B[90mv\u001B[0m #404 > > inl s = join s\n",
- "00:00:32 \u001B[90mv\u001B[0m #405 > > !\\($'\"println\\!(\\\\\\\"zeta__ / s: {:?} / result: {:?} / z:\n",
- "00:00:32 \u001B[90mv\u001B[0m #406 > > {:?}\\\\\\\", !s, !result, !z)\"')\n",
- "00:00:32 \u001B[90mv\u001B[0m #407 > >\n",
- "00:00:32 \u001B[90mv\u001B[0m #408 > > // re result - re x |> abs\n",
- "00:00:32 \u001B[90mv\u001B[0m #409 > > // |> _assert_lt 0.001\n",
- "00:00:32 \u001B[90mv\u001B[0m #410 > >\n",
- "00:00:32 \u001B[90mv\u001B[0m #411 > > // im result - im x |> abs\n",
- "00:00:32 \u001B[90mv\u001B[0m #412 > > // |> _assert_lt 0.001\n",
- "00:00:32 \u001B[90mv\u001B[0m #413 > >\n",
- "00:00:32 \u001B[90mv\u001B[0m #414 > > result |> resultm.ok' |> optionm'.unbox |> optionm'.default_value\n",
- "00:00:32 \u001B[90mv\u001B[0m #415 > > .^(nan (), nan ())\n",
- "00:00:32 \u001B[90mv\u001B[0m #416 > > join fn (zeta__, gamma__)\n",
- "00:00:32 \u001B[90mv\u001B[0m #417 > >\n",
- "00:00:32 \u001B[90mv\u001B[0m #418 > > Ok ()\n",
- "00:00:32 \u001B[90mv\u001B[0m #419 > > |> resultm.box\n",
- "00:00:32 \u001B[90mv\u001B[0m #420 > >\n",
- "00:00:32 \u001B[90mv\u001B[0m #421 > > join\n",
- "00:00:32 \u001B[90mv\u001B[0m #422 > > !\\($'\"pyo3::prepare_freethreaded_python()\"') : ()\n",
- "00:00:32 \u001B[90mv\u001B[0m #423 > >\n",
- "00:00:32 \u001B[90mv\u001B[0m #424 > > !\\($'\"let __run_test = pyo3::Python::with_gil(|py| -> pyo3::PyResult<()>\n",
- "00:00:32 \u001B[90mv\u001B[0m #425 > > { //\"')\n",
- "00:00:32 \u001B[90mv\u001B[0m #426 > >\n",
- "00:00:32 \u001B[90mv\u001B[0m #427 > > let x' = fn_ (!\\($'\"py\"') : python)\n",
- "00:00:32 \u001B[90mv\u001B[0m #428 > > inl x' = join x'\n",
- "00:00:32 \u001B[90mv\u001B[0m #429 > >\n",
- "00:00:32 \u001B[90mv\u001B[0m #430 > > inl closure_fix = 2u8, 1u8\n",
- "00:00:32 \u001B[90mv\u001B[0m #431 > > x' |> rust.fix_closure closure_fix\n",
- "00:00:32 \u001B[90mv\u001B[0m #432 > >\n",
- "00:00:32 \u001B[90mv\u001B[0m #433 > > (!\\($'\"__run_test\"') : _ () pyerr)\n",
- "00:00:32 \u001B[90mv\u001B[0m #434 > > |> resultm.unwrap'\n",
- "00:00:32 \u001B[90mv\u001B[0m #435 > >\n",
- "00:00:32 \u001B[90mv\u001B[0m #436 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:32 \u001B[90mv\u001B[0m #437 > > \u001B[38;2;146;146;178m│\u001B[0m ## test_zeta_at_known_values_\n",
- "00:00:32 \u001B[90mv\u001B[0m #438 > >\n",
- "00:00:32 \u001B[90mv\u001B[0m #439 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
- "00:00:32 \u001B[90mv\u001B[0m #440 > > inl test_zeta_at_known_values_ log = run_test log fun zeta, gamma =>\n",
- "00:00:32 \u001B[90mv\u001B[0m #441 > > ;[[\n",
- "00:00:32 \u001B[90mv\u001B[0m #442 > > .^(2, 0), pi ** 2 / 6\n",
- "00:00:32 \u001B[90mv\u001B[0m #443 > > .^(-1, 0), -1 / 12\n",
- "00:00:32 \u001B[90mv\u001B[0m #444 > > ]]\n",
- "00:00:32 \u001B[90mv\u001B[0m #445 > > |> fun x => a x : _ i32 _\n",
- "00:00:32 \u001B[90mv\u001B[0m #446 > > |> am.iter fun s, e =>\n",
- "00:00:32 \u001B[90mv\u001B[0m #447 > > inl result = zeta s\n",
- "00:00:32 \u001B[90mv\u001B[0m #448 > >\n",
- "00:00:32 \u001B[90mv\u001B[0m #449 > > result |> im |> _assert_eq 0\n",
- "00:00:32 \u001B[90mv\u001B[0m #450 > > re result - e |> abs |> _assert_lt 0.0001\n",
- "00:00:32 \u001B[90mv\u001B[0m #451 > >\n",
- "00:00:32 \u001B[90mv\u001B[0m #452 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
- "00:00:32 \u001B[90mv\u001B[0m #453 > > //// test\n",
- "00:00:32 \u001B[90mv\u001B[0m #454 > > ///! rust -d num-complex pyo3\n",
- "00:00:32 \u001B[90mv\u001B[0m #455 > >\n",
- "00:00:32 \u001B[90mv\u001B[0m #456 > > test_zeta_at_known_values_ true\n",
- "00:00:36 \u001B[90mv\u001B[0m #457 > >\n",
- "00:00:36 \u001B[90mv\u001B[0m #458 > > ── [ 3.50s - return value ] ────────────────────────────────────────────────────\n",
- "00:00:36 \u001B[90mv\u001B[0m #459 > > \u001B[38;2;38;140;38m│\u001B[0m zeta_ / s: (2.0, 0.0) / count: 0\n",
- "00:00:36 \u001B[90mv\u001B[0m #460 > > \u001B[38;2;38;140;38m│\u001B[0m call(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1,\n",
- "00:00:36 \u001B[90mv\u001B[0m #461 > > derivative=0, method=None, kwargs={} / f_lineno: 528 / f_code.co_filename:\n",
- "00:00:36 \u001B[90mv\u001B[0m #462 > > \\mpmath\\functions\\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:\n",
- "00:00:36 \u001B[90mv\u001B[0m #463 > > arg: None\n",
- "00:00:36 \u001B[90mv\u001B[0m #464 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1,\n",
- "00:00:36 \u001B[90mv\u001B[0m #465 > > derivative=0, method=None, kwargs={} / f_lineno: 530 / f_code.co_filename:\n",
- "00:00:36 \u001B[90mv\u001B[0m #466 > > \\mpmath\\functions\\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:\n",
- "00:00:36 \u001B[90mv\u001B[0m #467 > > arg: None\n",
- "00:00:36 \u001B[90mv\u001B[0m #468 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1,\n",
- "00:00:36 \u001B[90mv\u001B[0m #469 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 531 / f_code.co_filename:\n",
- "00:00:36 \u001B[90mv\u001B[0m #470 > > \\mpmath\\functions\\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:\n",
- "00:00:36 \u001B[90mv\u001B[0m #471 > > arg: None\n",
- "00:00:36 \u001B[90mv\u001B[0m #472 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1,\n",
- "00:00:36 \u001B[90mv\u001B[0m #473 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 532 / f_code.co_filename:\n",
- "00:00:36 \u001B[90mv\u001B[0m #474 > > \\mpmath\\functions\\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:\n",
- "00:00:36 \u001B[90mv\u001B[0m #475 > > arg: None\n",
- "00:00:36 \u001B[90mv\u001B[0m #476 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1,\n",
- "00:00:36 \u001B[90mv\u001B[0m #477 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533 / f_code.co_filename:\n",
- "00:00:36 \u001B[90mv\u001B[0m #478 > > \\mpmath\\functions\\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:\n",
- "00:00:36 \u001B[90mv\u001B[0m #479 > > arg: None\n",
- "00:00:36 \u001B[90mv\u001B[0m #480 > > \u001B[38;2;38;140;38m│\u001B[0m call(zeta_) / f_code.co_name: f / f_locals: x=(2+0j),\n",
- "00:00:36 \u001B[90mv\u001B[0m #481 > > kwargs={}, name='zeta' / f_lineno: 989 / f_code.co_filename:\n",
- "00:00:36 \u001B[90mv\u001B[0m #482 > > \\mpmath\\ctx_mp_python.py / f_back.f_lineno: 533 / f_back.f_code.co_filename:\n",
- "00:00:36 \u001B[90mv\u001B[0m #483 > > \\mpmath\\functions\\zeta.py / arg: None\n",
- "00:00:36 \u001B[90mv\u001B[0m #484 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code.co_name: f / f_locals: x=(2+0j),\n",
- "00:00:36 \u001B[90mv\u001B[0m #485 > > kwargs={}, name='zeta' / f_linen...me: make_mpc / f_locals: / f_lineno: 603\n",
- "00:00:36 \u001B[90mv\u001B[0m #486 > > f_code.co_filename: \\mpmath\\ctx_mp_python.py / f_back.f_lineno: 1007\n",
- "00:00:36 \u001B[90mv\u001B[0m #487 > > f_back.f_code.co_filename: \\mpmath\\ctx_mp_python.py / arg: None\n",
- "00:00:36 \u001B[90mv\u001B[0m #488 > > \u001B[38;2;38;140;38m│\u001B[0m line(gamma_) / f_code.co_name: make_mpc / f_locals:\n",
- "00:00:36 \u001B[90mv\u001B[0m #489 > > f_lineno: 604 / f_code.co_filename: \\mpmath\\ctx_mp_python.py / f_back.f_lineno:\n",
- "00:00:36 \u001B[90mv\u001B[0m #490 > > 1007 / f_back.f_code.co_filename: \\mpmath\\ctx_mp_python.py / arg: None\n",
- "00:00:36 \u001B[90mv\u001B[0m #491 > > \u001B[38;2;38;140;38m│\u001B[0m line(gamma_) / f_code.co_name: make_mpc / f_locals:\n",
- "00:00:36 \u001B[90mv\u001B[0m #492 > > f_lineno: 605 / f_code.co_filename: \\mpmath\\ctx_mp_python.py / f_back.f_lineno:\n",
- "00:00:36 \u001B[90mv\u001B[0m #493 > > 1007 / f_back.f_code.co_filename: \\mpmath\\ctx_mp_python.py / arg: None\n",
- "00:00:36 \u001B[90mv\u001B[0m #494 > > \u001B[38;2;38;140;38m│\u001B[0m return(gamma_) / f_code.co_name: make_mpc / f_locals:\n",
- "00:00:36 \u001B[90mv\u001B[0m #495 > > f_lineno: 605 / f_code.co_filename: \\mpmath\\ctx_mp_python.py / f_back.f_lineno:\n",
- "00:00:36 \u001B[90mv\u001B[0m #496 > > 1007 / f_back.f_code.co_filename: \\mpmath\\ctx_mp_python.py / arg:\n",
- "00:00:36 \u001B[90mv\u001B[0m #497 > > mpc(real='1.0', imag='0.0')\n",
- "00:00:36 \u001B[90mv\u001B[0m #498 > > \u001B[38;2;38;140;38m│\u001B[0m return(gamma_) / f_code.co_name: f / f_locals:\n",
- "00:00:36 \u001B[90mv\u001B[0m #499 > > x=mpc(real='2.0', imag='0.0'), kwargs={}, name='gamma', prec=53, rounding='n'\n",
- "00:00:36 \u001B[90mv\u001B[0m #500 > > f_lineno: 1007 / f_code.co_filename: \\mpmath\\ctx_mp_python.py / f_back.f_lineno:\n",
- "00:00:36 \u001B[90mv\u001B[0m #501 > > 25 / f_back.f_code.co_filename: / arg: mpc(real='1.0', imag='0.0')\n",
- "00:00:36 \u001B[90mv\u001B[0m #502 > > \u001B[38;2;38;140;38m│\u001B[0m gamma_ / result: (1.0 + 0.0j) / count: 140\n",
- "00:00:36 \u001B[90mv\u001B[0m #503 > > \u001B[38;2;38;140;38m│\u001B[0m gamma__ / s: Complex { re: 2.0, im: 0.0 } / result:\n",
- "00:00:36 \u001B[90mv\u001B[0m #504 > > Ok(Complex { re: 1.0, im: 0.0 })\n",
- "00:00:36 \u001B[90mv\u001B[0m #505 > > \u001B[38;2;38;140;38m│\u001B[0m zeta / count: 1 / s: Complex { re: 2.0, im: -0.0 }\n",
- "00:00:36 \u001B[90mv\u001B[0m #506 > > \u001B[38;2;38;140;38m│\u001B[0m zeta__ / s: Complex { re: -1.0, im: 0.0 } / result:\n",
- "00:00:36 \u001B[90mv\u001B[0m #507 > > Ok(Complex { re: -0.08333333333333333, im: 0.0 }) / z: Complex { re: NaN, im:\n",
- "00:00:36 \u001B[90mv\u001B[0m #508 > > NaN }\n",
- "00:00:36 \u001B[90mv\u001B[0m #509 > > \u001B[38;2;38;140;38m│\u001B[0m __assert_eq / actual: 0.0 / expected: 0.0\n",
- "00:00:36 \u001B[90mv\u001B[0m #510 > > \u001B[38;2;38;140;38m│\u001B[0m __assert_lt / actual: 0.0 / expected: 0.0001\n",
- "00:00:36 \u001B[90mv\u001B[0m #511 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:36 \u001B[90mv\u001B[0m #512 > >\n",
- "00:00:36 \u001B[90mv\u001B[0m #513 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:36 \u001B[90mv\u001B[0m #514 > > \u001B[38;2;146;146;178m│\u001B[0m ## test_zeta_at_2_minus2\n",
- "00:00:36 \u001B[90mv\u001B[0m #515 > >\n",
- "00:00:36 \u001B[90mv\u001B[0m #516 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
- "00:00:36 \u001B[90mv\u001B[0m #517 > > inl test_zeta_at_2_minus2 log = run_test log fun zeta, gamma =>\n",
- "00:00:36 \u001B[90mv\u001B[0m #518 > > inl s = .^(2, -2)\n",
- "00:00:36 \u001B[90mv\u001B[0m #519 > > inl result = zeta s\n",
- "00:00:36 \u001B[90mv\u001B[0m #520 > >\n",
- "00:00:36 \u001B[90mv\u001B[0m #521 > > (re result - 0.8673) |> abs |> _assert_lt 0.001\n",
- "00:00:36 \u001B[90mv\u001B[0m #522 > > (im result - 0.2750) |> abs |> _assert_lt 0.001\n",
- "00:00:36 \u001B[90mv\u001B[0m #523 > >\n",
- "00:00:36 \u001B[90mv\u001B[0m #524 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
- "00:00:36 \u001B[90mv\u001B[0m #525 > > //// test\n",
- "00:00:36 \u001B[90mv\u001B[0m #526 > > ///! rust -d num-complex pyo3\n",
- "00:00:36 \u001B[90mv\u001B[0m #527 > >\n",
- "00:00:36 \u001B[90mv\u001B[0m #528 > > test_zeta_at_2_minus2 true\n",
- "00:00:40 \u001B[90mv\u001B[0m #529 > >\n",
- "00:00:40 \u001B[90mv\u001B[0m #530 > > ── [ 3.25s - return value ] ────────────────────────────────────────────────────\n",
- "00:00:40 \u001B[90mv\u001B[0m #531 > > \u001B[38;2;38;140;38m│\u001B[0m zeta_ / s: (2.0, -2.0) / count: 0\n",
- "00:00:40 \u001B[90mv\u001B[0m #532 > > \u001B[38;2;38;140;38m│\u001B[0m call(zeta_) / f_code.co_name: zeta / f_locals: s=(2-2j), a=1,\n",
- "00:00:40 \u001B[90mv\u001B[0m #533 > > derivative=0, method=None, kwargs={} / f_lineno: 528 / f_code.co_filename:\n",
- "00:00:40 \u001B[90mv\u001B[0m #534 > > \\mpmath\\functions\\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:\n",
- "00:00:40 \u001B[90mv\u001B[0m #535 > > arg: None\n",
- "00:00:40 \u001B[90mv\u001B[0m #536 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code.co_name: zeta / f_locals: s=(2-2j), a=1,\n",
- "00:00:40 \u001B[90mv\u001B[0m #537 > > derivative=0, method=None, kwargs={} / f_lineno: 530 / f_code.co_filename:\n",
- "00:00:40 \u001B[90mv\u001B[0m #538 > > \\mpmath\\functions\\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:\n",
- "00:00:40 \u001B[90mv\u001B[0m #539 > > arg: None\n",
- "00:00:40 \u001B[90mv\u001B[0m #540 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code.co_name: zeta / f_locals: s=(2-2j), a=1,\n",
- "00:00:40 \u001B[90mv\u001B[0m #541 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 531 / f_code.co_filename:\n",
- "00:00:40 \u001B[90mv\u001B[0m #542 > > \\mpmath\\functions\\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:\n",
- "00:00:40 \u001B[90mv\u001B[0m #543 > > arg: None\n",
- "00:00:40 \u001B[90mv\u001B[0m #544 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code.co_name: zeta / f_locals: s=(2-2j), a=1,\n",
- "00:00:40 \u001B[90mv\u001B[0m #545 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 532 / f_code.co_filename:\n",
- "00:00:40 \u001B[90mv\u001B[0m #546 > > \\mpmath\\functions\\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:\n",
- "00:00:40 \u001B[90mv\u001B[0m #547 > > arg: None\n",
- "00:00:40 \u001B[90mv\u001B[0m #548 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code.co_name: zeta / f_locals: s=(2-2j), a=1,\n",
- "00:00:40 \u001B[90mv\u001B[0m #549 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533 / f_code.co_filename:\n",
- "00:00:40 \u001B[90mv\u001B[0m #550 > > \\mpmath\\functions\\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:\n",
- "00:00:40 \u001B[90mv\u001B[0m #551 > > arg: None\n",
- "00:00:40 \u001B[90mv\u001B[0m #552 > > \u001B[38;2;38;140;38m│\u001B[0m call(zeta_) / f_code.co_name: f / f_locals: x=(2-2j),\n",
- "00:00:40 \u001B[90mv\u001B[0m #553 > > kwargs={}, name='zeta' / f_lineno: 989 / f_code.co_filename:\n",
- "00:00:40 \u001B[90mv\u001B[0m #554 > > \\mpmath\\ctx_mp_python.py / f_back.f_lineno: 533 / f_back.f_code.co_filename:\n",
- "00:00:40 \u001B[90mv\u001B[0m #555 > > \\mpmath\\functions\\zeta.py / arg: None\n",
- "00:00:40 \u001B[90mv\u001B[0m #556 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code.co_name: f / f_locals: x=(2-2j),\n",
- "00:00:40 \u001B[90mv\u001B[0m #557 > > kwargs={}, name='zeta' / f_line.../ arg: None\n",
- "00:00:40 \u001B[90mv\u001B[0m #558 > > \u001B[38;2;38;140;38m│\u001B[0m call(zeta_) / f_code.co_name: python_bitcount / f_locals: n=2\n",
- "00:00:40 \u001B[90mv\u001B[0m #559 > > / f_lineno: 91 / f_code.co_filename: \\mpmath\\libmp\\libintmath.py\n",
- "00:00:40 \u001B[90mv\u001B[0m #560 > > f_back.f_lineno: 778 / f_back.f_code.co_filename: \\mpmath\\libmp\\libmpf.py / arg:\n",
- "00:00:40 \u001B[90mv\u001B[0m #561 > > None\n",
- "00:00:40 \u001B[90mv\u001B[0m #562 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code.co_name: python_bitcount / f_locals: n=2\n",
- "00:00:40 \u001B[90mv\u001B[0m #563 > > / f_lineno: 93 / f_code.co_filename: \\mpmath\\libmp\\libintmath.py\n",
- "00:00:40 \u001B[90mv\u001B[0m #564 > > f_back.f_lineno: 778 / f_back.f_code.co_filename: \\mpmath\\libmp\\libmpf.py / arg:\n",
- "00:00:40 \u001B[90mv\u001B[0m #565 > > None\n",
- "00:00:40 \u001B[90mv\u001B[0m #566 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code.co_name: python_bitcount / f_locals:\n",
- "00:00:40 \u001B[90mv\u001B[0m #567 > > n=2, bc=2 / f_lineno: 94 / f_code.co_filename: \\mpmath\\libmp\\libintmath.py\n",
- "00:00:40 \u001B[90mv\u001B[0m #568 > > f_back.f_lineno: 778 / f_back.f_code.co_filename: \\mpmath\\libmp\\libmpf.py / arg:\n",
- "00:00:40 \u001B[90mv\u001B[0m #569 > > None\n",
- "00:00:40 \u001B[90mv\u001B[0m #570 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code.co_name: python_bitcount / f_locals:\n",
- "00:00:40 \u001B[90mv\u001B[0m #571 > > n=2, bc=2 / f_lineno: 95 / f_code.co_filename: \\mpmath\\libmp\\libintmath.py\n",
- "00:00:40 \u001B[90mv\u001B[0m #572 > > f_back.f_lineno: 778 / f_back.f_code.co_filename: \\mpmath\\libmp\\libmpf.py / arg:\n",
- "00:00:40 \u001B[90mv\u001B[0m #573 > > None\n",
- "00:00:40 \u001B[90mv\u001B[0m #574 > > \u001B[38;2;38;140;38m│\u001B[0m return(zeta_) / f_code.co_name: python_bitcount / f_locals:\n",
- "00:00:40 \u001B[90mv\u001B[0m #575 > > n=2, bc=2 / f_lineno: 95 / f_code.co_filename: \\mpmath\\libmp\\libintmath.py\n",
- "00:00:40 \u001B[90mv\u001B[0m #576 > > f_back.f_lineno: 778 / f_back.f_code.co_filename: \\mpmath\\libmp\\libmpf.py / arg:\n",
- "00:00:40 \u001B[90mv\u001B[0m #577 > > 2\n",
- "00:00:40 \u001B[90mv\u001B[0m #578 > > \u001B[38;2;38;140;38m│\u001B[0m zeta_ / result: (0.867351829635993 + 0.275127238807858j)\n",
- "00:00:40 \u001B[90mv\u001B[0m #579 > > count: 1812\n",
- "00:00:40 \u001B[90mv\u001B[0m #580 > > \u001B[38;2;38;140;38m│\u001B[0m zeta / count: 0 / s: Complex { re: 2.0, im: -2.0 }\n",
- "00:00:40 \u001B[90mv\u001B[0m #581 > > \u001B[38;2;38;140;38m│\u001B[0m zeta__ / s: Complex { re: 2.0, im: -2.0 } / result:\n",
- "00:00:40 \u001B[90mv\u001B[0m #582 > > Ok(Complex { re: 0.8673518296359931, im: 0.27512723880785767 }) / z: Complex {\n",
- "00:00:40 \u001B[90mv\u001B[0m #583 > > re: NaN, im: NaN }\n",
- "00:00:40 \u001B[90mv\u001B[0m #584 > > \u001B[38;2;38;140;38m│\u001B[0m __assert_lt / actual: 5.182963599315027e-5 / expected: 0.001\n",
- "00:00:40 \u001B[90mv\u001B[0m #585 > > \u001B[38;2;38;140;38m│\u001B[0m __assert_lt / actual: 0.00012723880785764363 / expected:\n",
- "00:00:40 \u001B[90mv\u001B[0m #586 > > 0.001\n",
- "00:00:40 \u001B[90mv\u001B[0m #587 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:40 \u001B[90mv\u001B[0m #588 > >\n",
- "00:00:40 \u001B[90mv\u001B[0m #589 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:40 \u001B[90mv\u001B[0m #590 > > \u001B[38;2;146;146;178m│\u001B[0m ## test_trivial_zero_at_negative_even___\n",
- "00:00:40 \u001B[90mv\u001B[0m #591 > >\n",
- "00:00:40 \u001B[90mv\u001B[0m #592 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
- "00:00:40 \u001B[90mv\u001B[0m #593 > > inl test_trivial_zero_at_negative_even___ log = run_test log fun zeta, gamma =>\n",
- "00:00:40 \u001B[90mv\u001B[0m #594 > > (join listm'.init_series -2f64 -40 -2)\n",
- "00:00:40 \u001B[90mv\u001B[0m #595 > > |> listm.iter fun n =>\n",
- "00:00:40 \u001B[90mv\u001B[0m #596 > > inl s = .^(n, 0)\n",
- "00:00:40 \u001B[90mv\u001B[0m #597 > > inl result = zeta s\n",
- "00:00:40 \u001B[90mv\u001B[0m #598 > >\n",
- "00:00:40 \u001B[90mv\u001B[0m #599 > > result |> re |> _assert_eq 0\n",
- "00:00:40 \u001B[90mv\u001B[0m #600 > > result |> im |> _assert_eq 0\n",
- "00:00:40 \u001B[90mv\u001B[0m #601 > >\n",
- "00:00:40 \u001B[90mv\u001B[0m #602 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
- "00:00:40 \u001B[90mv\u001B[0m #603 > > //// test\n",
- "00:00:40 \u001B[90mv\u001B[0m #604 > > ///! rust -d num-complex pyo3\n",
- "00:00:40 \u001B[90mv\u001B[0m #605 > >\n",
- "00:00:40 \u001B[90mv\u001B[0m #606 > > test_trivial_zero_at_negative_even___ true\n",
- "00:00:44 \u001B[90mv\u001B[0m #607 > >\n",
- "00:00:44 \u001B[90mv\u001B[0m #608 > > ── [ 3.82s - return value ] ────────────────────────────────────────────────────\n",
- "00:00:44 \u001B[90mv\u001B[0m #609 > > \u001B[38;2;38;140;38m│\u001B[0m zeta_ / s: (-2.0, 0.0) / count: 0\n",
- "00:00:44 \u001B[90mv\u001B[0m #610 > > \u001B[38;2;38;140;38m│\u001B[0m call(zeta_) / f_code.co_name: zeta / f_locals: s=(-2+0j),\n",
- "00:00:44 \u001B[90mv\u001B[0m #611 > > a=1, derivative=0, method=None, kwargs={} / f_lineno: 528 / f_code.co_filename:\n",
- "00:00:44 \u001B[90mv\u001B[0m #612 > > \\mpmath\\functions\\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:\n",
- "00:00:44 \u001B[90mv\u001B[0m #613 > > arg: None\n",
- "00:00:44 \u001B[90mv\u001B[0m #614 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code.co_name: zeta / f_locals: s=(-2+0j),\n",
- "00:00:44 \u001B[90mv\u001B[0m #615 > > a=1, derivative=0, method=None, kwargs={} / f_lineno: 530 / f_code.co_filename:\n",
- "00:00:44 \u001B[90mv\u001B[0m #616 > > \\mpmath\\functions\\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:\n",
- "00:00:44 \u001B[90mv\u001B[0m #617 > > arg: None\n",
- "00:00:44 \u001B[90mv\u001B[0m #618 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code.co_name: zeta / f_locals: s=(-2+0j),\n",
- "00:00:44 \u001B[90mv\u001B[0m #619 > > a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: 531\n",
- "00:00:44 \u001B[90mv\u001B[0m #620 > > f_code.co_filename: \\mpmath\\functions\\zeta.py / f_back.f_lineno: 25\n",
- "00:00:44 \u001B[90mv\u001B[0m #621 > > f_back.f_code.co_filename: / arg: None\n",
- "00:00:44 \u001B[90mv\u001B[0m #622 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code.co_name: zeta / f_locals: s=(-2+0j),\n",
- "00:00:44 \u001B[90mv\u001B[0m #623 > > a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: 532\n",
- "00:00:44 \u001B[90mv\u001B[0m #624 > > f_code.co_filename: \\mpmath\\functions\\zeta.py / f_back.f_lineno: 25\n",
- "00:00:44 \u001B[90mv\u001B[0m #625 > > f_back.f_code.co_filename: / arg: None\n",
- "00:00:44 \u001B[90mv\u001B[0m #626 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code.co_name: zeta / f_locals: s=(-2+0j),\n",
- "00:00:44 \u001B[90mv\u001B[0m #627 > > a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533\n",
- "00:00:44 \u001B[90mv\u001B[0m #628 > > f_code.co_filename: \\mpmath\\functions\\zeta.py / f_back.f_lineno: 25\n",
- "00:00:44 \u001B[90mv\u001B[0m #629 > > f_back.f_code.co_filename: / arg: None\n",
- "00:00:44 \u001B[90mv\u001B[0m #630 > > \u001B[38;2;38;140;38m│\u001B[0m call(zeta_) / f_code.co_name: f / f_locals: x=(-2+0j),\n",
- "00:00:44 \u001B[90mv\u001B[0m #631 > > kwargs={}, name='zeta' / f_lineno: 989 / f_code.co_filename:\n",
- "00:00:44 \u001B[90mv\u001B[0m #632 > > \\mpmath\\ctx_mp_python.py / f_back.f_lineno: 533 / f_back.f_code.co_filename:\n",
- "00:00:44 \u001B[90mv\u001B[0m #633 > > \\mpmath\\functions\\zeta.py / arg: None\n",
- "00:00:44 \u001B[90mv\u001B[0m #634 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code.co_name: f / f_locals: x=(-2+0j),\n",
- "00:00:44 \u001B[90mv\u001B[0m #635 > > kwargs={}, name='zeta' /...lename: \\mpmath\\ctx_mp_python.py / f_back.f_lineno:\n",
- "00:00:44 \u001B[90mv\u001B[0m #636 > > 1007 / f_back.f_code.co_filename: \\mpmath\\ctx_mp_python.py / arg: None\n",
- "00:00:44 \u001B[90mv\u001B[0m #637 > > \u001B[38;2;38;140;38m│\u001B[0m line(gamma_) / f_code.co_name: make_mpc / f_locals:\n",
- "00:00:44 \u001B[90mv\u001B[0m #638 > > f_lineno: 604 / f_code.co_filename: \\mpmath\\ctx_mp_python.py / f_back.f_lineno:\n",
- "00:00:44 \u001B[90mv\u001B[0m #639 > > 1007 / f_back.f_code.co_filename: \\mpmath\\ctx_mp_python.py / arg: None\n",
- "00:00:44 \u001B[90mv\u001B[0m #640 > > \u001B[38;2;38;140;38m│\u001B[0m line(gamma_) / f_code.co_name: make_mpc / f_locals:\n",
- "00:00:44 \u001B[90mv\u001B[0m #641 > > f_lineno: 605 / f_code.co_filename: \\mpmath\\ctx_mp_python.py / f_back.f_lineno:\n",
- "00:00:44 \u001B[90mv\u001B[0m #642 > > 1007 / f_back.f_code.co_filename: \\mpmath\\ctx_mp_python.py / arg: None\n",
- "00:00:44 \u001B[90mv\u001B[0m #643 > > \u001B[38;2;38;140;38m│\u001B[0m return(gamma_) / f_code.co_name: make_mpc / f_locals:\n",
- "00:00:44 \u001B[90mv\u001B[0m #644 > > f_lineno: 605 / f_code.co_filename: \\mpmath\\ctx_mp_python.py / f_back.f_lineno:\n",
- "00:00:44 \u001B[90mv\u001B[0m #645 > > 1007 / f_back.f_code.co_filename: \\mpmath\\ctx_mp_python.py / arg:\n",
- "00:00:44 \u001B[90mv\u001B[0m #646 > > mpc(real='8.1591528324789768e+47', imag='0.0')\n",
- "00:00:44 \u001B[90mv\u001B[0m #647 > > \u001B[38;2;38;140;38m│\u001B[0m return(gamma_) / f_code.co_name: f / f_locals:\n",
- "00:00:44 \u001B[90mv\u001B[0m #648 > > x=mpc(real='41.0', imag='0.0'), kwargs={}, name='gamma', prec=53, rounding='n'\n",
- "00:00:44 \u001B[90mv\u001B[0m #649 > > f_lineno: 1007 / f_code.co_filename: \\mpmath\\ctx_mp_python.py / f_back.f_lineno:\n",
- "00:00:44 \u001B[90mv\u001B[0m #650 > > 25 / f_back.f_code.co_filename: / arg: mpc(real='8.1591528324789768e+47',\n",
- "00:00:44 \u001B[90mv\u001B[0m #651 > > imag='0.0')\n",
- "00:00:44 \u001B[90mv\u001B[0m #652 > > \u001B[38;2;38;140;38m│\u001B[0m gamma_ / result: (8.15915283247898e+47 + 0.0j) / count: 149\n",
- "00:00:44 \u001B[90mv\u001B[0m #653 > > \u001B[38;2;38;140;38m│\u001B[0m gamma__ / s: Complex { re: 41.0, im: 0.0 } / result:\n",
- "00:00:44 \u001B[90mv\u001B[0m #654 > > Ok(Complex { re: 8.159152832478977e47, im: 0.0 })\n",
- "00:00:44 \u001B[90mv\u001B[0m #655 > > \u001B[38;2;38;140;38m│\u001B[0m zeta / count: 1 / s: Complex { re: 41.0, im: -0.0 }\n",
- "00:00:44 \u001B[90mv\u001B[0m #656 > > \u001B[38;2;38;140;38m│\u001B[0m zeta__ / s: Complex { re: -40.0, im: 0.0 } / result:\n",
- "00:00:44 \u001B[90mv\u001B[0m #657 > > Ok(Complex { re: 0.0, im: 0.0 }) / z: Complex { re: NaN, im: NaN }\n",
- "00:00:44 \u001B[90mv\u001B[0m #658 > > \u001B[38;2;38;140;38m│\u001B[0m __assert_eq / actual: 0.0 / expected: 0.0\n",
- "00:00:44 \u001B[90mv\u001B[0m #659 > > \u001B[38;2;38;140;38m│\u001B[0m __assert_eq / actual: 0.0 / expected: 0.0\n",
- "00:00:44 \u001B[90mv\u001B[0m #660 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:44 \u001B[90mv\u001B[0m #661 > >\n",
- "00:00:44 \u001B[90mv\u001B[0m #662 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:44 \u001B[90mv\u001B[0m #663 > > \u001B[38;2;146;146;178m│\u001B[0m ## test_non_trivial_zero___\n",
- "00:00:44 \u001B[90mv\u001B[0m #664 > >\n",
- "00:00:44 \u001B[90mv\u001B[0m #665 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
- "00:00:44 \u001B[90mv\u001B[0m #666 > > inl test_non_trivial_zero___ log = run_test log fun zeta, gamma =>\n",
- "00:00:44 \u001B[90mv\u001B[0m #667 > > ;[[\n",
- "00:00:44 \u001B[90mv\u001B[0m #668 > > .^(0.5, 14.134725)\n",
- "00:00:44 \u001B[90mv\u001B[0m #669 > > .^(0.5, 21.022040)\n",
- "00:00:44 \u001B[90mv\u001B[0m #670 > > .^(0.5, 25.010857)\n",
- "00:00:44 \u001B[90mv\u001B[0m #671 > > .^(0.5, 30.424876)\n",
- "00:00:44 \u001B[90mv\u001B[0m #672 > > .^(0.5, 32.935062)\n",
- "00:00:44 \u001B[90mv\u001B[0m #673 > > .^(0.5, 37.586178)\n",
- "00:00:44 \u001B[90mv\u001B[0m #674 > > ]]\n",
- "00:00:44 \u001B[90mv\u001B[0m #675 > > |> fun x => a x : _ i32 _\n",
- "00:00:44 \u001B[90mv\u001B[0m #676 > > |> am.iter fun x =>\n",
- "00:00:44 \u001B[90mv\u001B[0m #677 > > inl result = zeta x\n",
- "00:00:44 \u001B[90mv\u001B[0m #678 > > result |> re |> abs |> _assert_lt 0.0001\n",
- "00:00:44 \u001B[90mv\u001B[0m #679 > > result |> im |> abs |> _assert_lt 0.0001\n",
- "00:00:44 \u001B[90mv\u001B[0m #680 > >\n",
- "00:00:44 \u001B[90mv\u001B[0m #681 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
- "00:00:44 \u001B[90mv\u001B[0m #682 > > //// test\n",
- "00:00:44 \u001B[90mv\u001B[0m #683 > > ///! rust -d num-complex pyo3\n",
- "00:00:44 \u001B[90mv\u001B[0m #684 > >\n",
- "00:00:44 \u001B[90mv\u001B[0m #685 > > test_non_trivial_zero___ true\n",
- "00:00:48 \u001B[90mv\u001B[0m #686 > >\n",
- "00:00:48 \u001B[90mv\u001B[0m #687 > > ── [ 3.49s - return value ] ────────────────────────────────────────────────────\n",
- "00:00:48 \u001B[90mv\u001B[0m #688 > > \u001B[38;2;38;140;38m│\u001B[0m zeta_ / s: (0.5, 14.134725) / count: 0\n",
- "00:00:48 \u001B[90mv\u001B[0m #689 > > \u001B[38;2;38;140;38m│\u001B[0m call(zeta_) / f_code.co_name: zeta / f_locals:\n",
- "00:00:48 \u001B[90mv\u001B[0m #690 > > s=(0.5+14.134725j), a=1, derivative=0, method=None, kwargs={} / f_lineno: 528\n",
- "00:00:48 \u001B[90mv\u001B[0m #691 > > f_code.co_filename: \\mpmath\\functions\\zeta.py / f_back.f_lineno: 25\n",
- "00:00:48 \u001B[90mv\u001B[0m #692 > > f_back.f_code.co_filename: / arg: None\n",
- "00:00:48 \u001B[90mv\u001B[0m #693 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code.co_name: zeta / f_locals:\n",
- "00:00:48 \u001B[90mv\u001B[0m #694 > > s=(0.5+14.134725j), a=1, derivative=0, method=None, kwargs={} / f_lineno: 530\n",
- "00:00:48 \u001B[90mv\u001B[0m #695 > > f_code.co_filename: \\mpmath\\functions\\zeta.py / f_back.f_lineno: 25\n",
- "00:00:48 \u001B[90mv\u001B[0m #696 > > f_back.f_code.co_filename: / arg: None\n",
- "00:00:48 \u001B[90mv\u001B[0m #697 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code.co_name: zeta / f_locals:\n",
- "00:00:48 \u001B[90mv\u001B[0m #698 > > s=(0.5+14.134725j), a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno:\n",
- "00:00:48 \u001B[90mv\u001B[0m #699 > > 531 / f_code.co_filename: \\mpmath\\functions\\zeta.py / f_back.f_lineno: 25\n",
- "00:00:48 \u001B[90mv\u001B[0m #700 > > f_back.f_code.co_filename: / arg: None\n",
- "00:00:48 \u001B[90mv\u001B[0m #701 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code.co_name: zeta / f_locals:\n",
- "00:00:48 \u001B[90mv\u001B[0m #702 > > s=(0.5+14.134725j), a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno:\n",
- "00:00:48 \u001B[90mv\u001B[0m #703 > > 532 / f_code.co_filename: \\mpmath\\functions\\zeta.py / f_back.f_lineno: 25\n",
- "00:00:48 \u001B[90mv\u001B[0m #704 > > f_back.f_code.co_filename: / arg: None\n",
- "00:00:48 \u001B[90mv\u001B[0m #705 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code.co_name: zeta / f_locals:\n",
- "00:00:48 \u001B[90mv\u001B[0m #706 > > s=(0.5+14.134725j), a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno:\n",
- "00:00:48 \u001B[90mv\u001B[0m #707 > > 533 / f_code.co_filename: \\mpmath\\functions\\zeta.py / f_back.f_lineno: 25\n",
- "00:00:48 \u001B[90mv\u001B[0m #708 > > f_back.f_code.co_filename: / arg: None\n",
- "00:00:48 \u001B[90mv\u001B[0m #709 > > \u001B[38;2;38;140;38m│\u001B[0m call(zeta_) / f_code.co_name: f / f_locals:\n",
- "00:00:48 \u001B[90mv\u001B[0m #710 > > x=(0.5+14.134725j), kwargs={}, name='zeta' / f_lineno: 989 / f_code.co_filename:\n",
- "00:00:48 \u001B[90mv\u001B[0m #711 > > \\mpmath\\ctx_mp_python.py / f_back.f_lineno: 533 / f_back.f_code.co_filename:\n",
- "00:00:48 \u001B[90mv\u001B[0m #712 > > \\mpmath\\functions\\zeta.py / arg: None\n",
- "00:00:48 \u001B[90mv\u001B[0m #713 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code... arg: None\n",
- "00:00:48 \u001B[90mv\u001B[0m #714 > > \u001B[38;2;38;140;38m│\u001B[0m line(gamma_) / f_code.co_name: complex_stirling_series\n",
- "00:00:48 \u001B[90mv\u001B[0m #715 > > f_locals: x=1208925819614629174706176, y=-90877802089662679288381440, prec=81,\n",
- "00:00:48 \u001B[90mv\u001B[0m #716 > > _m=3416353708500640443578529333, tre=855591523614410863719,\n",
- "00:00:48 \u001B[90mv\u001B[0m #717 > > tim=64316830603724894628746, ure=-1710577520534459139249,\n",
- "00:00:48 \u001B[90mv\u001B[0m #718 > > uim=45518868236127668552, sre=1013002518538853602038572,\n",
- "00:00:48 \u001B[90mv\u001B[0m #719 > > sim=90883161825546323029600502 / f_lineno: 1637 / f_code.co_filename:\n",
- "00:00:48 \u001B[90mv\u001B[0m #720 > > \\mpmath\\libmp\\gammazeta.py / f_back.f_lineno: 2050 / f_back.f_code.co_filename:\n",
- "00:00:48 \u001B[90mv\u001B[0m #721 > > \\mpmath\\libmp\\gammazeta.py / arg: None\n",
- "00:00:48 \u001B[90mv\u001B[0m #722 > > \u001B[38;2;38;140;38m│\u001B[0m line(gamma_) / f_code.co_name: complex_stirling_series\n",
- "00:00:48 \u001B[90mv\u001B[0m #723 > > f_locals: x=1208925819614629174706176, y=-90877802089662679288381440, prec=81,\n",
- "00:00:48 \u001B[90mv\u001B[0m #724 > > _m=3416353708500640443578529333, tre=-1816151534455075068,\n",
- "00:00:48 \u001B[90mv\u001B[0m #725 > > tim=-45486653225747820096, ure=-1710577520534459139249,\n",
- "00:00:48 \u001B[90mv\u001B[0m #726 > > uim=45518868236127668552, sre=1013002518538853602038572,\n",
- "00:00:48 \u001B[90mv\u001B[0m #727 > > sim=90883161825546323029600502 / f_lineno: 1638 / f_code.co_filename:\n",
- "00:00:48 \u001B[90mv\u001B[0m #728 > > \\mpmath\\libmp\\gammazeta.py / f_back.f_lineno: 2050 / f_back.f_code.co_filename:\n",
- "00:00:48 \u001B[90mv\u001B[0m #729 > > \\mpmath\\libmp\\gammazeta.py / arg: None\n",
- "00:00:48 \u001B[90mv\u001B[0m #730 > > \u001B[38;2;38;140;38m│\u001B[0m gamma_ / result: (-1.32798420042152e-26 +\n",
- "00:00:48 \u001B[90mv\u001B[0m #731 > > 5.5751975252688e-26j) / count: 309\n",
- "00:00:48 \u001B[90mv\u001B[0m #732 > > \u001B[38;2;38;140;38m│\u001B[0m gamma__ / s: Complex { re: 0.5, im: -37.586178 } / result:\n",
- "00:00:48 \u001B[90mv\u001B[0m #733 > > Ok(Complex { re: -1.3279842004215153e-26, im: 5.575197525268802e-26 })\n",
- "00:00:48 \u001B[90mv\u001B[0m #734 > > \u001B[38;2;38;140;38m│\u001B[0m zeta__ / s: Complex { re: 0.5, im: 37.586178 } / result:\n",
- "00:00:48 \u001B[90mv\u001B[0m #735 > > Ok(Complex { re: -8.910186507947958e-8, im: -2.943780446402868e-7 }) / z:\n",
- "00:00:48 \u001B[90mv\u001B[0m #736 > > Complex { re: -0.0, im: 0.0 }\n",
- "00:00:48 \u001B[90mv\u001B[0m #737 > > \u001B[38;2;38;140;38m│\u001B[0m __assert_lt / actual: 8.910186507947958e-8 / expected: 0.0001\n",
- "00:00:48 \u001B[90mv\u001B[0m #738 > > \u001B[38;2;38;140;38m│\u001B[0m __assert_lt / actual: 2.943780446402868e-7 / expected: 0.0001\n",
- "00:00:48 \u001B[90mv\u001B[0m #739 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:48 \u001B[90mv\u001B[0m #740 > >\n",
- "00:00:48 \u001B[90mv\u001B[0m #741 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:48 \u001B[90mv\u001B[0m #742 > > \u001B[38;2;146;146;178m│\u001B[0m ## test_real_part_greater_than_one___\n",
- "00:00:48 \u001B[90mv\u001B[0m #743 > >\n",
- "00:00:48 \u001B[90mv\u001B[0m #744 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
- "00:00:48 \u001B[90mv\u001B[0m #745 > > inl test_real_part_greater_than_one___ log = run_test log fun zeta, gamma =>\n",
- "00:00:48 \u001B[90mv\u001B[0m #746 > > inl points = ;[[ 2; 3; 4; 5; 10; 20; 50 ]]\n",
- "00:00:48 \u001B[90mv\u001B[0m #747 > > (a points : _ i32 _)\n",
- "00:00:48 \u001B[90mv\u001B[0m #748 > > |> am.iter fun point =>\n",
- "00:00:48 \u001B[90mv\u001B[0m #749 > > inl s = .^(point, 0)\n",
- "00:00:48 \u001B[90mv\u001B[0m #750 > > inl result = zeta s\n",
- "00:00:48 \u001B[90mv\u001B[0m #751 > > result |> re |> _assert_gt 0\n",
- "00:00:48 \u001B[90mv\u001B[0m #752 > > result |> im |> _assert_eq 0\n",
- "00:00:48 \u001B[90mv\u001B[0m #753 > >\n",
- "00:00:48 \u001B[90mv\u001B[0m #754 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
- "00:00:48 \u001B[90mv\u001B[0m #755 > > //// test\n",
- "00:00:48 \u001B[90mv\u001B[0m #756 > > ///! rust -d num-complex pyo3\n",
- "00:00:48 \u001B[90mv\u001B[0m #757 > >\n",
- "00:00:48 \u001B[90mv\u001B[0m #758 > > test_real_part_greater_than_one___ true\n",
- "00:00:52 \u001B[90mv\u001B[0m #759 > >\n",
- "00:00:52 \u001B[90mv\u001B[0m #760 > > ── [ 3.52s - return value ] ────────────────────────────────────────────────────\n",
- "00:00:52 \u001B[90mv\u001B[0m #761 > > \u001B[38;2;38;140;38m│\u001B[0m zeta_ / s: (2.0, 0.0) / count: 0\n",
- "00:00:52 \u001B[90mv\u001B[0m #762 > > \u001B[38;2;38;140;38m│\u001B[0m call(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1,\n",
- "00:00:52 \u001B[90mv\u001B[0m #763 > > derivative=0, method=None, kwargs={} / f_lineno: 528 / f_code.co_filename:\n",
- "00:00:52 \u001B[90mv\u001B[0m #764 > > \\mpmath\\functions\\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:\n",
- "00:00:52 \u001B[90mv\u001B[0m #765 > > arg: None\n",
- "00:00:52 \u001B[90mv\u001B[0m #766 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1,\n",
- "00:00:52 \u001B[90mv\u001B[0m #767 > > derivative=0, method=None, kwargs={} / f_lineno: 530 / f_code.co_filename:\n",
- "00:00:52 \u001B[90mv\u001B[0m #768 > > \\mpmath\\functions\\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:\n",
- "00:00:52 \u001B[90mv\u001B[0m #769 > > arg: None\n",
- "00:00:52 \u001B[90mv\u001B[0m #770 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1,\n",
- "00:00:52 \u001B[90mv\u001B[0m #771 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 531 / f_code.co_filename:\n",
- "00:00:52 \u001B[90mv\u001B[0m #772 > > \\mpmath\\functions\\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:\n",
- "00:00:52 \u001B[90mv\u001B[0m #773 > > arg: None\n",
- "00:00:52 \u001B[90mv\u001B[0m #774 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1,\n",
- "00:00:52 \u001B[90mv\u001B[0m #775 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 532 / f_code.co_filename:\n",
- "00:00:52 \u001B[90mv\u001B[0m #776 > > \\mpmath\\functions\\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:\n",
- "00:00:52 \u001B[90mv\u001B[0m #777 > > arg: None\n",
- "00:00:52 \u001B[90mv\u001B[0m #778 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1,\n",
- "00:00:52 \u001B[90mv\u001B[0m #779 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533 / f_code.co_filename:\n",
- "00:00:52 \u001B[90mv\u001B[0m #780 > > \\mpmath\\functions\\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:\n",
- "00:00:52 \u001B[90mv\u001B[0m #781 > > arg: None\n",
- "00:00:52 \u001B[90mv\u001B[0m #782 > > \u001B[38;2;38;140;38m│\u001B[0m call(zeta_) / f_code.co_name: f / f_locals: x=(2+0j),\n",
- "00:00:52 \u001B[90mv\u001B[0m #783 > > kwargs={}, name='zeta' / f_lineno: 989 / f_code.co_filename:\n",
- "00:00:52 \u001B[90mv\u001B[0m #784 > > \\mpmath\\ctx_mp_python.py / f_back.f_lineno: 533 / f_back.f_code.co_filename:\n",
- "00:00:52 \u001B[90mv\u001B[0m #785 > > \\mpmath\\functions\\zeta.py / arg: None\n",
- "00:00:52 \u001B[90mv\u001B[0m #786 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code.co_name: f / f_locals: x=(2+0j),\n",
- "00:00:52 \u001B[90mv\u001B[0m #787 > > kwargs={}, name='zeta' / f_linen...f_code.co_filename: \\mpmath\\ctx_mp_python.py\n",
- "00:00:52 \u001B[90mv\u001B[0m #788 > > / f_back.f_lineno: 1007 / f_back.f_code.co_filename: \\mpmath\\ctx_mp_python.py\n",
- "00:00:52 \u001B[90mv\u001B[0m #789 > > arg: None\n",
- "00:00:52 \u001B[90mv\u001B[0m #790 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code.co_name: make_mpc / f_locals:\n",
- "00:00:52 \u001B[90mv\u001B[0m #791 > > f_lineno: 605 / f_code.co_filename: \\mpmath\\ctx_mp_python.py / f_back.f_lineno:\n",
- "00:00:52 \u001B[90mv\u001B[0m #792 > > 1007 / f_back.f_code.co_filename: \\mpmath\\ctx_mp_python.py / arg: None\n",
- "00:00:52 \u001B[90mv\u001B[0m #793 > > \u001B[38;2;38;140;38m│\u001B[0m return(zeta_) / f_code.co_name: make_mpc / f_locals:\n",
- "00:00:52 \u001B[90mv\u001B[0m #794 > > f_lineno: 605 / f_code.co_filename: \\mpmath\\ctx_mp_python.py / f_back.f_lineno:\n",
- "00:00:52 \u001B[90mv\u001B[0m #795 > > 1007 / f_back.f_code.co_filename: \\mpmath\\ctx_mp_python.py / arg:\n",
- "00:00:52 \u001B[90mv\u001B[0m #796 > > mpc(real='1.0000000000000009', imag='0.0')\n",
- "00:00:52 \u001B[90mv\u001B[0m #797 > > \u001B[38;2;38;140;38m│\u001B[0m return(zeta_) / f_code.co_name: f / f_locals:\n",
- "00:00:52 \u001B[90mv\u001B[0m #798 > > x=mpc(real='50.0', imag='0.0'), kwargs={}, name='zeta', prec=53, rounding='n'\n",
- "00:00:52 \u001B[90mv\u001B[0m #799 > > f_lineno: 1007 / f_code.co_filename: \\mpmath\\ctx_mp_python.py / f_back.f_lineno:\n",
- "00:00:52 \u001B[90mv\u001B[0m #800 > > 533 / f_back.f_code.co_filename: \\mpmath\\functions\\zeta.py / arg:\n",
- "00:00:52 \u001B[90mv\u001B[0m #801 > > mpc(real='1.0000000000000009', imag='0.0')\n",
- "00:00:52 \u001B[90mv\u001B[0m #802 > > \u001B[38;2;38;140;38m│\u001B[0m return(zeta_) / f_code.co_name: zeta / f_locals: s=(50+0j),\n",
- "00:00:52 \u001B[90mv\u001B[0m #803 > > a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533\n",
- "00:00:52 \u001B[90mv\u001B[0m #804 > > f_code.co_filename: \\mpmath\\functions\\zeta.py / f_back.f_lineno: 25\n",
- "00:00:52 \u001B[90mv\u001B[0m #805 > > f_back.f_code.co_filename: / arg: mpc(real='1.0000000000000009', imag='0.0')\n",
- "00:00:52 \u001B[90mv\u001B[0m #806 > > \u001B[38;2;38;140;38m│\u001B[0m zeta_ / result: (1.0 + 0.0j) / count: 181\n",
- "00:00:52 \u001B[90mv\u001B[0m #807 > > \u001B[38;2;38;140;38m│\u001B[0m zeta / count: 0 / s: Complex { re: 50.0, im: 0.0 }\n",
- "00:00:52 \u001B[90mv\u001B[0m #808 > > \u001B[38;2;38;140;38m│\u001B[0m zeta__ / s: Complex { re: 50.0, im: 0.0 } / result:\n",
- "00:00:52 \u001B[90mv\u001B[0m #809 > > Ok(Complex { re: 1.0000000000000009, im: 0.0 }) / z: Complex { re: NaN, im: NaN\n",
- "00:00:52 \u001B[90mv\u001B[0m #810 > > }\n",
- "00:00:52 \u001B[90mv\u001B[0m #811 > > \u001B[38;2;38;140;38m│\u001B[0m __assert_gt / actual: 1.0000000000000009 / expected: 0.0\n",
- "00:00:52 \u001B[90mv\u001B[0m #812 > > \u001B[38;2;38;140;38m│\u001B[0m __assert_eq / actual: 0.0 / expected: 0.0\n",
- "00:00:52 \u001B[90mv\u001B[0m #813 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:52 \u001B[90mv\u001B[0m #814 > >\n",
- "00:00:52 \u001B[90mv\u001B[0m #815 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:52 \u001B[90mv\u001B[0m #816 > > \u001B[38;2;146;146;178m│\u001B[0m ## test_zeta_at_1___\n",
- "00:00:52 \u001B[90mv\u001B[0m #817 > >\n",
- "00:00:52 \u001B[90mv\u001B[0m #818 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
- "00:00:52 \u001B[90mv\u001B[0m #819 > > inl test_zeta_at_1___ log = run_test log fun zeta, gamma =>\n",
- "00:00:52 \u001B[90mv\u001B[0m #820 > > inl s = .^(1, 0)\n",
- "00:00:52 \u001B[90mv\u001B[0m #821 > > inl result = zeta s\n",
- "00:00:52 \u001B[90mv\u001B[0m #822 > > result |> re |> _assert_eq limit.max\n",
- "00:00:52 \u001B[90mv\u001B[0m #823 > > result |> im |> _assert_eq 0\n",
- "00:00:52 \u001B[90mv\u001B[0m #824 > >\n",
- "00:00:52 \u001B[90mv\u001B[0m #825 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
- "00:00:52 \u001B[90mv\u001B[0m #826 > > //// test\n",
- "00:00:52 \u001B[90mv\u001B[0m #827 > > ///! rust -d num-complex pyo3\n",
- "00:00:52 \u001B[90mv\u001B[0m #828 > >\n",
- "00:00:52 \u001B[90mv\u001B[0m #829 > > test_zeta_at_1___ true\n",
- "00:00:55 \u001B[90mv\u001B[0m #830 > >\n",
- "00:00:55 \u001B[90mv\u001B[0m #831 > > ── [ 3.02s - return value ] ────────────────────────────────────────────────────\n",
- "00:00:55 \u001B[90mv\u001B[0m #832 > > \u001B[38;2;38;140;38m│\u001B[0m zeta_ / s: (1.0, 0.0) / count: 0\n",
- "00:00:55 \u001B[90mv\u001B[0m #833 > > \u001B[38;2;38;140;38m│\u001B[0m call(zeta_) / f_code.co_name: zeta / f_locals: s=(1+0j), a=1,\n",
- "00:00:55 \u001B[90mv\u001B[0m #834 > > derivative=0, method=None, kwargs={} / f_lineno: 528 / f_code.co_filename:\n",
- "00:00:55 \u001B[90mv\u001B[0m #835 > > \\mpmath\\functions\\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:\n",
- "00:00:55 \u001B[90mv\u001B[0m #836 > > arg: None\n",
- "00:00:55 \u001B[90mv\u001B[0m #837 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code.co_name: zeta / f_locals: s=(1+0j), a=1,\n",
- "00:00:55 \u001B[90mv\u001B[0m #838 > > derivative=0, method=None, kwargs={} / f_lineno: 530 / f_code.co_filename:\n",
- "00:00:55 \u001B[90mv\u001B[0m #839 > > \\mpmath\\functions\\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:\n",
- "00:00:55 \u001B[90mv\u001B[0m #840 > > arg: None\n",
- "00:00:55 \u001B[90mv\u001B[0m #841 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code.co_name: zeta / f_locals: s=(1+0j), a=1,\n",
- "00:00:55 \u001B[90mv\u001B[0m #842 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 531 / f_code.co_filename:\n",
- "00:00:55 \u001B[90mv\u001B[0m #843 > > \\mpmath\\functions\\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:\n",
- "00:00:55 \u001B[90mv\u001B[0m #844 > > arg: None\n",
- "00:00:55 \u001B[90mv\u001B[0m #845 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code.co_name: zeta / f_locals: s=(1+0j), a=1,\n",
- "00:00:55 \u001B[90mv\u001B[0m #846 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 532 / f_code.co_filename:\n",
- "00:00:55 \u001B[90mv\u001B[0m #847 > > \\mpmath\\functions\\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:\n",
- "00:00:55 \u001B[90mv\u001B[0m #848 > > arg: None\n",
- "00:00:55 \u001B[90mv\u001B[0m #849 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code.co_name: zeta / f_locals: s=(1+0j), a=1,\n",
- "00:00:55 \u001B[90mv\u001B[0m #850 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533 / f_code.co_filename:\n",
- "00:00:55 \u001B[90mv\u001B[0m #851 > > \\mpmath\\functions\\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:\n",
- "00:00:55 \u001B[90mv\u001B[0m #852 > > arg: None\n",
- "00:00:55 \u001B[90mv\u001B[0m #853 > > \u001B[38;2;38;140;38m│\u001B[0m call(zeta_) / f_code.co_name: f / f_locals: x=(1+0j),\n",
- "00:00:55 \u001B[90mv\u001B[0m #854 > > kwargs={}, name='zeta' / f_lineno: 989 / f_code.co_filename:\n",
- "00:00:55 \u001B[90mv\u001B[0m #855 > > \\mpmath\\ctx_mp_python.py / f_back.f_lineno: 533 / f_back.f_code.co_filename:\n",
- "00:00:55 \u001B[90mv\u001B[0m #856 > > \\mpmath\\functions\\zeta.py / arg: None\n",
- "00:00:55 \u001B[90mv\u001B[0m #857 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code.co_name: f / f_locals: x=(1+0j),\n",
- "00:00:55 \u001B[90mv\u001B[0m #858 > > kwargs={}, name='zeta' / f_linen...back object at 0x>>)\n",
- "00:00:55 \u001B[90mv\u001B[0m #859 > > \u001B[38;2;38;140;38m│\u001B[0m return(gamma_) / f_code.co_name: f / f_locals:\n",
- "00:00:55 \u001B[90mv\u001B[0m #860 > > x=mpc(real='0.0', imag='0.0'), kwargs={}, name='gamma', prec=53, rounding='n'\n",
- "00:00:55 \u001B[90mv\u001B[0m #861 > > f_lineno: 1007 / f_code.co_filename: \\mpmath\\ctx_mp_python.py / f_back.f_lineno:\n",
- "00:00:55 \u001B[90mv\u001B[0m #862 > > 25 / f_back.f_code.co_filename: / arg: None\n",
- "00:00:55 \u001B[90mv\u001B[0m #863 > > \u001B[38;2;38;140;38m│\u001B[0m exception(gamma_) / f_code.co_name: fn / f_locals: log=True,\n",
- "00:00:55 \u001B[90mv\u001B[0m #864 > > s=0j / f_lineno: 25 / f_code.co_filename: / f_back.f_lineno:\n",
- "00:00:55 \u001B[90mv\u001B[0m #865 > > f_back.f_code.co_filename: / arg: (, ValueError('gamma\n",
- "00:00:55 \u001B[90mv\u001B[0m #866 > > function pole'), >)\n",
- "00:00:55 \u001B[90mv\u001B[0m #867 > > \u001B[38;2;38;140;38m│\u001B[0m line(gamma_) / f_code.co_name: fn / f_locals: log=True, s=0j\n",
- "00:00:55 \u001B[90mv\u001B[0m #868 > > / f_lineno: 29 / f_code.co_filename: / f_back.f_lineno:\n",
- "00:00:55 \u001B[90mv\u001B[0m #869 > > f_back.f_code.co_filename: / arg: None\n",
- "00:00:55 \u001B[90mv\u001B[0m #870 > > \u001B[38;2;38;140;38m│\u001B[0m line(gamma_) / f_code.co_name: fn / f_locals: log=True, s=0j,\n",
- "00:00:55 \u001B[90mv\u001B[0m #871 > > e=ValueError('gamma function pole') / f_lineno: 30 / f_code.co_filename:\n",
- "00:00:55 \u001B[90mv\u001B[0m #872 > > f_back.f_lineno: / f_back.f_code.co_filename: / arg: None\n",
- "00:00:55 \u001B[90mv\u001B[0m #873 > > \u001B[38;2;38;140;38m│\u001B[0m line(gamma_) / f_code.co_name: fn / f_locals: log=True, s=0j\n",
- "00:00:55 \u001B[90mv\u001B[0m #874 > > / f_lineno: 32 / f_code.co_filename: / f_back.f_lineno:\n",
- "00:00:55 \u001B[90mv\u001B[0m #875 > > f_back.f_code.co_filename: / arg: None\n",
- "00:00:55 \u001B[90mv\u001B[0m #876 > > \u001B[38;2;38;140;38m│\u001B[0m return(gamma_) / f_code.co_name: fn / f_locals: log=True,\n",
- "00:00:55 \u001B[90mv\u001B[0m #877 > > s=0j / f_lineno: 32 / f_code.co_filename: / f_back.f_lineno:\n",
- "00:00:55 \u001B[90mv\u001B[0m #878 > > f_back.f_code.co_filename: / arg: (0.0, 0.0)\n",
- "00:00:55 \u001B[90mv\u001B[0m #879 > > \u001B[38;2;38;140;38m│\u001B[0m gamma__ / s: Complex { re: 0.0, im: 0.0 } / result:\n",
- "00:00:55 \u001B[90mv\u001B[0m #880 > > Ok(Complex { re: 0.0, im: 0.0 })\n",
- "00:00:55 \u001B[90mv\u001B[0m #881 > > \u001B[38;2;38;140;38m│\u001B[0m zeta__ / s: Complex { re: 1.0, im: 0.0 } / result: Ok(Complex\n",
- "00:00:55 \u001B[90mv\u001B[0m #882 > > { re: inf, im: 0.0 }) / z: Complex { re: 0.0, im: 0.0 }\n",
- "00:00:55 \u001B[90mv\u001B[0m #883 > > \u001B[38;2;38;140;38m│\u001B[0m __assert_eq / actual: inf / expected: inf\n",
- "00:00:55 \u001B[90mv\u001B[0m #884 > > \u001B[38;2;38;140;38m│\u001B[0m __assert_eq / actual: 0.0 / expected: 0.0\n",
- "00:00:55 \u001B[90mv\u001B[0m #885 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:55 \u001B[90mv\u001B[0m #886 > >\n",
- "00:00:55 \u001B[90mv\u001B[0m #887 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:55 \u001B[90mv\u001B[0m #888 > > \u001B[38;2;146;146;178m│\u001B[0m ## test_symmetry_across_real_axis___\n",
- "00:00:55 \u001B[90mv\u001B[0m #889 > >\n",
- "00:00:55 \u001B[90mv\u001B[0m #890 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
- "00:00:55 \u001B[90mv\u001B[0m #891 > > inl test_symmetry_across_real_axis___ log = run_test log fun zeta, gamma =>\n",
- "00:00:55 \u001B[90mv\u001B[0m #892 > > inl s = .^(2, 10)\n",
- "00:00:55 \u001B[90mv\u001B[0m #893 > > inl result_positive_im = zeta s\n",
- "00:00:55 \u001B[90mv\u001B[0m #894 > > inl result_negative_im = zeta .^(re s, -(im s))\n",
- "00:00:55 \u001B[90mv\u001B[0m #895 > > inl conj = result_negative_im |> conj\n",
- "00:00:55 \u001B[90mv\u001B[0m #896 > > result_positive_im |> re |> _assert_eq (conj |> re)\n",
- "00:00:55 \u001B[90mv\u001B[0m #897 > > result_positive_im |> im |> _assert_eq (conj |> im)\n",
- "00:00:56 \u001B[90mv\u001B[0m #898 > >\n",
- "00:00:56 \u001B[90mv\u001B[0m #899 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
- "00:00:56 \u001B[90mv\u001B[0m #900 > > //// test\n",
- "00:00:56 \u001B[90mv\u001B[0m #901 > > ///! rust -d num-complex pyo3\n",
- "00:00:56 \u001B[90mv\u001B[0m #902 > >\n",
- "00:00:56 \u001B[90mv\u001B[0m #903 > > test_symmetry_across_real_axis___ true\n",
- "00:00:59 \u001B[90mv\u001B[0m #904 > >\n",
- "00:00:59 \u001B[90mv\u001B[0m #905 > > ── [ 2.97s - return value ] ────────────────────────────────────────────────────\n",
- "00:00:59 \u001B[90mv\u001B[0m #906 > > \u001B[38;2;38;140;38m│\u001B[0m zeta_ / s: (2.0, 10.0) / count: 0\n",
- "00:00:59 \u001B[90mv\u001B[0m #907 > > \u001B[38;2;38;140;38m│\u001B[0m call(zeta_) / f_code.co_name: zeta / f_locals: s=(2+10j),\n",
- "00:00:59 \u001B[90mv\u001B[0m #908 > > a=1, derivative=0, method=None, kwargs={} / f_lineno: 528 / f_code.co_filename:\n",
- "00:00:59 \u001B[90mv\u001B[0m #909 > > \\mpmath\\functions\\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:\n",
- "00:00:59 \u001B[90mv\u001B[0m #910 > > arg: None\n",
- "00:00:59 \u001B[90mv\u001B[0m #911 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+10j),\n",
- "00:00:59 \u001B[90mv\u001B[0m #912 > > a=1, derivative=0, method=None, kwargs={} / f_lineno: 530 / f_code.co_filename:\n",
- "00:00:59 \u001B[90mv\u001B[0m #913 > > \\mpmath\\functions\\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:\n",
- "00:00:59 \u001B[90mv\u001B[0m #914 > > arg: None\n",
- "00:00:59 \u001B[90mv\u001B[0m #915 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+10j),\n",
- "00:00:59 \u001B[90mv\u001B[0m #916 > > a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: 531\n",
- "00:00:59 \u001B[90mv\u001B[0m #917 > > f_code.co_filename: \\mpmath\\functions\\zeta.py / f_back.f_lineno: 25\n",
- "00:00:59 \u001B[90mv\u001B[0m #918 > > f_back.f_code.co_filename: / arg: None\n",
- "00:00:59 \u001B[90mv\u001B[0m #919 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+10j),\n",
- "00:00:59 \u001B[90mv\u001B[0m #920 > > a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: 532\n",
- "00:00:59 \u001B[90mv\u001B[0m #921 > > f_code.co_filename: \\mpmath\\functions\\zeta.py / f_back.f_lineno: 25\n",
- "00:00:59 \u001B[90mv\u001B[0m #922 > > f_back.f_code.co_filename: / arg: None\n",
- "00:00:59 \u001B[90mv\u001B[0m #923 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+10j),\n",
- "00:00:59 \u001B[90mv\u001B[0m #924 > > a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533\n",
- "00:00:59 \u001B[90mv\u001B[0m #925 > > f_code.co_filename: \\mpmath\\functions\\zeta.py / f_back.f_lineno: 25\n",
- "00:00:59 \u001B[90mv\u001B[0m #926 > > f_back.f_code.co_filename: / arg: None\n",
- "00:00:59 \u001B[90mv\u001B[0m #927 > > \u001B[38;2;38;140;38m│\u001B[0m call(zeta_) / f_code.co_name: f / f_locals: x=(2+10j),\n",
- "00:00:59 \u001B[90mv\u001B[0m #928 > > kwargs={}, name='zeta' / f_lineno: 989 / f_code.co_filename:\n",
- "00:00:59 \u001B[90mv\u001B[0m #929 > > \\mpmath\\ctx_mp_python.py / f_back.f_lineno: 533 / f_back.f_code.co_filename:\n",
- "00:00:59 \u001B[90mv\u001B[0m #930 > > \\mpmath\\functions\\zeta.py / arg: None\n",
- "00:00:59 \u001B[90mv\u001B[0m #931 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code.co_name: f / f_locals: x=(2+10j),\n",
- "00:00:59 \u001B[90mv\u001B[0m #932 > > kwargs={}, name='zeta' /.../ f_back.f_code.co_filename: \\mpmath\\libmp\\libmpf.py\n",
- "00:00:59 \u001B[90mv\u001B[0m #933 > > / arg: None\n",
- "00:00:59 \u001B[90mv\u001B[0m #934 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code.co_name: python_bitcount / f_locals:\n",
- "00:00:59 \u001B[90mv\u001B[0m #935 > > n=26, bc=5 / f_lineno: 94 / f_code.co_filename: \\mpmath\\libmp\\libintmath.py\n",
- "00:00:59 \u001B[90mv\u001B[0m #936 > > f_back.f_lineno: 778 / f_back.f_code.co_filename: \\mpmath\\libmp\\libmpf.py / arg:\n",
- "00:00:59 \u001B[90mv\u001B[0m #937 > > None\n",
- "00:00:59 \u001B[90mv\u001B[0m #938 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code.co_name: python_bitcount / f_locals:\n",
- "00:00:59 \u001B[90mv\u001B[0m #939 > > n=26, bc=5 / f_lineno: 95 / f_code.co_filename: \\mpmath\\libmp\\libintmath.py\n",
- "00:00:59 \u001B[90mv\u001B[0m #940 > > f_back.f_lineno: 778 / f_back.f_code.co_filename: \\mpmath\\libmp\\libmpf.py / arg:\n",
- "00:00:59 \u001B[90mv\u001B[0m #941 > > None\n",
- "00:00:59 \u001B[90mv\u001B[0m #942 > > \u001B[38;2;38;140;38m│\u001B[0m return(zeta_) / f_code.co_name: python_bitcount / f_locals:\n",
- "00:00:59 \u001B[90mv\u001B[0m #943 > > n=26, bc=5 / f_lineno: 95 / f_code.co_filename: \\mpmath\\libmp\\libintmath.py\n",
- "00:00:59 \u001B[90mv\u001B[0m #944 > > f_back.f_lineno: 778 / f_back.f_code.co_filename: \\mpmath\\libmp\\libmpf.py / arg:\n",
- "00:00:59 \u001B[90mv\u001B[0m #945 > > 5\n",
- "00:00:59 \u001B[90mv\u001B[0m #946 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code.co_name: mpf_add / f_locals: s=(0, 1, 2,\n",
- "00:00:59 \u001B[90mv\u001B[0m #947 > > 1), t=(0, 25, 2, 5), prec=14, rnd='d', _sub=0, ssign=0, sman=1, sexp=2, sbc=1,\n",
- "00:00:59 \u001B[90mv\u001B[0m #948 > > tsign=0, tman=25, texp=2, tbc=5, offset=0, man=26, bc=5 / f_lineno: 779\n",
- "00:00:59 \u001B[90mv\u001B[0m #949 > > f_code.co_filename: \\mpmath\\libmp\\libmpf.py / f_back.f_lineno: 1401\n",
- "00:00:59 \u001B[90mv\u001B[0m #950 > > f_back.f_code.co_filename: \\mpmath\\libmp\\libmpf.py / arg: None\n",
- "00:00:59 \u001B[90mv\u001B[0m #951 > > \u001B[38;2;38;140;38m│\u001B[0m zeta_ / result: (1.19798250067418 + 0.0791704917205257j)\n",
- "00:00:59 \u001B[90mv\u001B[0m #952 > > count: 1174\n",
- "00:00:59 \u001B[90mv\u001B[0m #953 > > \u001B[38;2;38;140;38m│\u001B[0m zeta / count: 0 / s: Complex { re: 2.0, im: -10.0 }\n",
- "00:00:59 \u001B[90mv\u001B[0m #954 > > \u001B[38;2;38;140;38m│\u001B[0m zeta__ / s: Complex { re: 2.0, im: -10.0 } / result:\n",
- "00:00:59 \u001B[90mv\u001B[0m #955 > > Ok(Complex { re: 1.1979825006741847, im: 0.07917049172052575 }) / z: Complex {\n",
- "00:00:59 \u001B[90mv\u001B[0m #956 > > re: NaN, im: NaN }\n",
- "00:00:59 \u001B[90mv\u001B[0m #957 > > \u001B[38;2;38;140;38m│\u001B[0m __assert_eq / actual: 1.1979825006741847 / expected:\n",
- "00:00:59 \u001B[90mv\u001B[0m #958 > > 1.1979825006741847\n",
- "00:00:59 \u001B[90mv\u001B[0m #959 > > \u001B[38;2;38;140;38m│\u001B[0m __assert_eq / actual: -0.07917049172052575 / expected:\n",
- "00:00:59 \u001B[90mv\u001B[0m #960 > > -0.07917049172052575\n",
- "00:00:59 \u001B[90mv\u001B[0m #961 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:59 \u001B[90mv\u001B[0m #962 > >\n",
- "00:00:59 \u001B[90mv\u001B[0m #963 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:59 \u001B[90mv\u001B[0m #964 > > \u001B[38;2;146;146;178m│\u001B[0m ## test_behavior_near_origin___\n",
- "00:00:59 \u001B[90mv\u001B[0m #965 > >\n",
- "00:00:59 \u001B[90mv\u001B[0m #966 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
- "00:00:59 \u001B[90mv\u001B[0m #967 > > inl test_behavior_near_origin___ log = run_test log fun zeta, gamma =>\n",
- "00:00:59 \u001B[90mv\u001B[0m #968 > > inl s = .^(0.01, 0.01)\n",
- "00:00:59 \u001B[90mv\u001B[0m #969 > > inl result = zeta s\n",
- "00:00:59 \u001B[90mv\u001B[0m #970 > > result |> re |> _assert_lt limit.max\n",
- "00:00:59 \u001B[90mv\u001B[0m #971 > > result |> im |> _assert_lt limit.max\n",
- "00:00:59 \u001B[90mv\u001B[0m #972 > >\n",
- "00:00:59 \u001B[90mv\u001B[0m #973 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
- "00:00:59 \u001B[90mv\u001B[0m #974 > > //// test\n",
- "00:00:59 \u001B[90mv\u001B[0m #975 > > ///! rust -d num-complex pyo3\n",
- "00:00:59 \u001B[90mv\u001B[0m #976 > >\n",
- "00:00:59 \u001B[90mv\u001B[0m #977 > > test_behavior_near_origin___ true\n",
- "00:01:02 \u001B[90mv\u001B[0m #978 > >\n",
- "00:01:02 \u001B[90mv\u001B[0m #979 > > ── [ 3.01s - return value ] ────────────────────────────────────────────────────\n",
- "00:01:02 \u001B[90mv\u001B[0m #980 > > \u001B[38;2;38;140;38m│\u001B[0m zeta_ / s: (0.01, 0.01) / count: 0\n",
- "00:01:02 \u001B[90mv\u001B[0m #981 > > \u001B[38;2;38;140;38m│\u001B[0m call(zeta_) / f_code.co_name: zeta / f_locals:\n",
- "00:01:02 \u001B[90mv\u001B[0m #982 > > s=(0.01+0.01j), a=1, derivative=0, method=None, kwargs={} / f_lineno: 528\n",
- "00:01:02 \u001B[90mv\u001B[0m #983 > > f_code.co_filename: \\mpmath\\functions\\zeta.py / f_back.f_lineno: 25\n",
- "00:01:02 \u001B[90mv\u001B[0m #984 > > f_back.f_code.co_filename: / arg: None\n",
- "00:01:02 \u001B[90mv\u001B[0m #985 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code.co_name: zeta / f_locals:\n",
- "00:01:02 \u001B[90mv\u001B[0m #986 > > s=(0.01+0.01j), a=1, derivative=0, method=None, kwargs={} / f_lineno: 530\n",
- "00:01:02 \u001B[90mv\u001B[0m #987 > > f_code.co_filename: \\mpmath\\functions\\zeta.py / f_back.f_lineno: 25\n",
- "00:01:02 \u001B[90mv\u001B[0m #988 > > f_back.f_code.co_filename: / arg: None\n",
- "00:01:02 \u001B[90mv\u001B[0m #989 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code.co_name: zeta / f_locals:\n",
- "00:01:02 \u001B[90mv\u001B[0m #990 > > s=(0.01+0.01j), a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: 531\n",
- "00:01:02 \u001B[90mv\u001B[0m #991 > > f_code.co_filename: \\mpmath\\functions\\zeta.py / f_back.f_lineno: 25\n",
- "00:01:02 \u001B[90mv\u001B[0m #992 > > f_back.f_code.co_filename: / arg: None\n",
- "00:01:02 \u001B[90mv\u001B[0m #993 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code.co_name: zeta / f_locals:\n",
- "00:01:02 \u001B[90mv\u001B[0m #994 > > s=(0.01+0.01j), a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: 532\n",
- "00:01:02 \u001B[90mv\u001B[0m #995 > > f_code.co_filename: \\mpmath\\functions\\zeta.py / f_back.f_lineno: 25\n",
- "00:01:02 \u001B[90mv\u001B[0m #996 > > f_back.f_code.co_filename: / arg: None\n",
- "00:01:02 \u001B[90mv\u001B[0m #997 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code.co_name: zeta / f_locals:\n",
- "00:01:02 \u001B[90mv\u001B[0m #998 > > s=(0.01+0.01j), a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533\n",
- "00:01:02 \u001B[90mv\u001B[0m #999 > > f_code.co_filename: \\mpmath\\functions\\zeta.py / f_back.f_lineno: 25\n",
- "00:01:02 \u001B[90mv\u001B[0m #1000 > > f_back.f_code.co_filename: / arg: None\n",
- "00:01:02 \u001B[90mv\u001B[0m #1001 > > \u001B[38;2;38;140;38m│\u001B[0m call(zeta_) / f_code.co_name: f / f_locals: x=(0.01+0.01j),\n",
- "00:01:02 \u001B[90mv\u001B[0m #1002 > > kwargs={}, name='zeta' / f_lineno: 989 / f_code.co_filename:\n",
- "00:01:02 \u001B[90mv\u001B[0m #1003 > > \\mpmath\\ctx_mp_python.py / f_back.f_lineno: 533 / f_back.f_code.co_filename:\n",
- "00:01:02 \u001B[90mv\u001B[0m #1004 > > \\mpmath\\functions\\zeta.py / arg: None\n",
- "00:01:02 \u001B[90mv\u001B[0m #1005 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code.co_name: f / f_locals: x=(0...py\n",
- "00:01:02 \u001B[90mv\u001B[0m #1006 > > f_back.f_lineno: 1007 / f_back.f_code.co_filename: \\mpmath\\ctx_mp_python.py\n",
- "00:01:02 \u001B[90mv\u001B[0m #1007 > > arg: None\n",
- "00:01:02 \u001B[90mv\u001B[0m #1008 > > \u001B[38;2;38;140;38m│\u001B[0m line(gamma_) / f_code.co_name: mpc_gamma / f_locals: z=((0,\n",
- "00:01:02 \u001B[90mv\u001B[0m #1009 > > 4458563631096791, -52, 52), (1, 5764607523034235, -59, 53)), prec=53, rnd='n',\n",
- "00:01:02 \u001B[90mv\u001B[0m #1010 > > type=0, a=(0, 4458563631096791, -52, 52), b=(1, 5764607523034235, -59, 53),\n",
- "00:01:02 \u001B[90mv\u001B[0m #1011 > > asign=0, aman=4458563631096791, aexp=-52, abc=52, bsign=1,\n",
- "00:01:02 \u001B[90mv\u001B[0m #1012 > > bman=5764607523034235, bexp=-59, bbc=53, wp=73, amag=0, bmag=-6, mag=0, an=0,\n",
- "00:01:02 \u001B[90mv\u001B[0m #1013 > > bn=0, absn=0j, gamma_size=0, need_reflection=0, zorig=((0, 4458563631096791,\n",
- "00:01:02 \u001B[90mv\u001B[0m #1014 > > -52, 52), (1, 5764607523034235, -59, 53)), yfinal=0, balance_prec=0,\n",
- "00:01:02 \u001B[90mv\u001B[0m #1015 > > n_for_stirling=14, need_reduction=True, afix=132131814190692672995328,\n",
- "00:01:02 \u001B[90mv\u001B[0m #1016 > > bfix=-94447329657392906240, r=0, zprered=((0, 4458563631096791, -52, 52), (1,\n",
- "00:01:02 \u001B[90mv\u001B[0m #1017 > > 5764607523034235, -59, 53)), d=14, rre=56942610883563778729574216337150,\n",
- "00:01:02 \u001B[90mv\u001B[0m #1018 > > one=9444732965739290427392, rim=-1820461636508155576115177658065, k=12\n",
- "00:01:02 \u001B[90mv\u001B[0m #1019 > > f_lineno: 2043 / f_code.co_filename: \\mpmath\\libmp\\gammazeta.py\n",
- "00:01:02 \u001B[90mv\u001B[0m #1020 > > f_back.f_lineno: 1007 / f_back.f_code.co_filename: \\mpmath\\ctx_mp_python.py\n",
- "00:01:02 \u001B[90mv\u001B[0m #1021 > > arg: None\n",
- "00:01:02 \u001B[90mv\u001B[0m #1022 > > \u001B[38;2;38;140;38m│\u001B[0m gamma_ / result: (1.00577030202902 + 0.0059717824054102j)\n",
- "00:01:02 \u001B[90mv\u001B[0m #1023 > > count: 383\n",
- "00:01:02 \u001B[90mv\u001B[0m #1024 > > \u001B[38;2;38;140;38m│\u001B[0m gamma__ / s: Complex { re: 0.99, im: -0.01 } / result:\n",
- "00:01:02 \u001B[90mv\u001B[0m #1025 > > Ok(Complex { re: 1.005770302029023, im: 0.005971782405410201 })\n",
- "00:01:02 \u001B[90mv\u001B[0m #1026 > > \u001B[38;2;38;140;38m│\u001B[0m zeta__ / s: Complex { re: 0.01, im: 0.01 } / result:\n",
- "00:01:02 \u001B[90mv\u001B[0m #1027 > > Ok(Complex { re: -0.5091873433665667, im: -0.00939202213994577 }) / z: Complex {\n",
- "00:01:02 \u001B[90mv\u001B[0m #1028 > > re: 0.0, im: 0.0 }\n",
- "00:01:02 \u001B[90mv\u001B[0m #1029 > > \u001B[38;2;38;140;38m│\u001B[0m __assert_lt / actual: -0.5091873433665667 / expected: inf\n",
- "00:01:02 \u001B[90mv\u001B[0m #1030 > > \u001B[38;2;38;140;38m│\u001B[0m __assert_lt / actual: -0.00939202213994577 / expected: inf\n",
- "00:01:02 \u001B[90mv\u001B[0m #1031 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:01:02 \u001B[90mv\u001B[0m #1032 > >\n",
- "00:01:02 \u001B[90mv\u001B[0m #1033 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:01:02 \u001B[90mv\u001B[0m #1034 > > \u001B[38;2;146;146;178m│\u001B[0m ## test_imaginary_axis\n",
- "00:01:02 \u001B[90mv\u001B[0m #1035 > >\n",
- "00:01:02 \u001B[90mv\u001B[0m #1036 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
- "00:01:02 \u001B[90mv\u001B[0m #1037 > > inl test_imaginary_axis log = run_test log fun zeta, gamma =>\n",
- "00:01:02 \u001B[90mv\u001B[0m #1038 > > (join [[ 10; 20; 30; 40; 50; 60; 70; 80; 90; 100 ]])\n",
- "00:01:02 \u001B[90mv\u001B[0m #1039 > > |> listm.iter fun s =>\n",
- "00:01:02 \u001B[90mv\u001B[0m #1040 > > inl s = .^(0, s)\n",
- "00:01:02 \u001B[90mv\u001B[0m #1041 > > inl result = zeta s\n",
- "00:01:02 \u001B[90mv\u001B[0m #1042 > > result |> re |> _assert_ne 0\n",
- "00:01:02 \u001B[90mv\u001B[0m #1043 > > result |> im |> _assert_ne 0\n",
- "00:01:03 \u001B[90mv\u001B[0m #1044 > >\n",
- "00:01:03 \u001B[90mv\u001B[0m #1045 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
- "00:01:03 \u001B[90mv\u001B[0m #1046 > > //// test\n",
- "00:01:03 \u001B[90mv\u001B[0m #1047 > > ///! rust -d num-complex pyo3\n",
- "00:01:03 \u001B[90mv\u001B[0m #1048 > >\n",
- "00:01:03 \u001B[90mv\u001B[0m #1049 > > test_imaginary_axis true\n",
- "00:01:06 \u001B[90mv\u001B[0m #1050 > >\n",
- "00:01:06 \u001B[90mv\u001B[0m #1051 > > ── [ 3.45s - return value ] ────────────────────────────────────────────────────\n",
- "00:01:06 \u001B[90mv\u001B[0m #1052 > > \u001B[38;2;38;140;38m│\u001B[0m zeta_ / s: (0.0, 10.0) / count: 0\n",
- "00:01:06 \u001B[90mv\u001B[0m #1053 > > \u001B[38;2;38;140;38m│\u001B[0m call(zeta_) / f_code.co_name: zeta / f_locals: s=10j, a=1,\n",
- "00:01:06 \u001B[90mv\u001B[0m #1054 > > derivative=0, method=None, kwargs={} / f_lineno: 528 / f_code.co_filename:\n",
- "00:01:06 \u001B[90mv\u001B[0m #1055 > > \\mpmath\\functions\\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:\n",
- "00:01:06 \u001B[90mv\u001B[0m #1056 > > arg: None\n",
- "00:01:06 \u001B[90mv\u001B[0m #1057 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code.co_name: zeta / f_locals: s=10j, a=1,\n",
- "00:01:06 \u001B[90mv\u001B[0m #1058 > > derivative=0, method=None, kwargs={} / f_lineno: 530 / f_code.co_filename:\n",
- "00:01:06 \u001B[90mv\u001B[0m #1059 > > \\mpmath\\functions\\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:\n",
- "00:01:06 \u001B[90mv\u001B[0m #1060 > > arg: None\n",
- "00:01:06 \u001B[90mv\u001B[0m #1061 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code.co_name: zeta / f_locals: s=10j, a=1,\n",
- "00:01:06 \u001B[90mv\u001B[0m #1062 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 531 / f_code.co_filename:\n",
- "00:01:06 \u001B[90mv\u001B[0m #1063 > > \\mpmath\\functions\\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:\n",
- "00:01:06 \u001B[90mv\u001B[0m #1064 > > arg: None\n",
- "00:01:06 \u001B[90mv\u001B[0m #1065 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code.co_name: zeta / f_locals: s=10j, a=1,\n",
- "00:01:06 \u001B[90mv\u001B[0m #1066 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 532 / f_code.co_filename:\n",
- "00:01:06 \u001B[90mv\u001B[0m #1067 > > \\mpmath\\functions\\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:\n",
- "00:01:06 \u001B[90mv\u001B[0m #1068 > > arg: None\n",
- "00:01:06 \u001B[90mv\u001B[0m #1069 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code.co_name: zeta / f_locals: s=10j, a=1,\n",
- "00:01:06 \u001B[90mv\u001B[0m #1070 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533 / f_code.co_filename:\n",
- "00:01:06 \u001B[90mv\u001B[0m #1071 > > \\mpmath\\functions\\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:\n",
- "00:01:06 \u001B[90mv\u001B[0m #1072 > > arg: None\n",
- "00:01:06 \u001B[90mv\u001B[0m #1073 > > \u001B[38;2;38;140;38m│\u001B[0m call(zeta_) / f_code.co_name: f / f_locals: x=10j, kwargs={},\n",
- "00:01:06 \u001B[90mv\u001B[0m #1074 > > name='zeta' / f_lineno: 989 / f_code.co_filename: \\mpmath\\ctx_mp_python.py\n",
- "00:01:06 \u001B[90mv\u001B[0m #1075 > > f_back.f_lineno: 533 / f_back.f_code.co_filename: \\mpmath\\functions\\zeta.py\n",
- "00:01:06 \u001B[90mv\u001B[0m #1076 > > arg: None\n",
- "00:01:06 \u001B[90mv\u001B[0m #1077 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code.co_name: f / f_locals: x=10j, kwargs={},\n",
- "00:01:06 \u001B[90mv\u001B[0m #1078 > > name='zeta' / f_lineno: 990 / f_code.co_f...g: None\n",
- "00:01:06 \u001B[90mv\u001B[0m #1079 > > \u001B[38;2;38;140;38m│\u001B[0m line(gamma_) / f_code.co_name: to_fixed / f_locals: s=(0, 1,\n",
- "00:01:06 \u001B[90mv\u001B[0m #1080 > > 0, 1), prec=83 / f_lineno: 511 / f_code.co_filename: \\mpmath\\libmp\\libmpf.py\n",
- "00:01:06 \u001B[90mv\u001B[0m #1081 > > f_back.f_lineno: 2031 / f_back.f_code.co_filename: \\mpmath\\libmp\\gammazeta.py\n",
- "00:01:06 \u001B[90mv\u001B[0m #1082 > > arg: None\n",
- "00:01:06 \u001B[90mv\u001B[0m #1083 > > \u001B[38;2;38;140;38m│\u001B[0m line(gamma_) / f_code.co_name: to_fixed / f_locals: s=(0, 1,\n",
- "00:01:06 \u001B[90mv\u001B[0m #1084 > > 0, 1), prec=83, sign=0, man=1, exp=0, bc=1 / f_lineno: 512 / f_code.co_filename:\n",
- "00:01:06 \u001B[90mv\u001B[0m #1085 > > \\mpmath\\libmp\\libmpf.py / f_back.f_lineno: 2031 / f_back.f_code.co_filename:\n",
- "00:01:06 \u001B[90mv\u001B[0m #1086 > > \\mpmath\\libmp\\gammazeta.py / arg: None\n",
- "00:01:06 \u001B[90mv\u001B[0m #1087 > > \u001B[38;2;38;140;38m│\u001B[0m line(gamma_) / f_code.co_name: to_fixed / f_locals: s=(0, 1,\n",
- "00:01:06 \u001B[90mv\u001B[0m #1088 > > 0, 1), prec=83, sign=0, man=1, exp=0, bc=1, offset=83 / f_lineno: 513\n",
- "00:01:06 \u001B[90mv\u001B[0m #1089 > > f_code.co_filename: \\mpmath\\libmp\\libmpf.py / f_back.f_lineno: 2031\n",
- "00:01:06 \u001B[90mv\u001B[0m #1090 > > f_back.f_code.co_filename: \\mpmath\\libmp\\gammazeta.py / arg: None\n",
- "00:01:06 \u001B[90mv\u001B[0m #1091 > > \u001B[38;2;38;140;38m│\u001B[0m line(gamma_) / f_code.co_name: to_fixed / f_locals: s=(0, 1,\n",
- "00:01:06 \u001B[90mv\u001B[0m #1092 > > 0, 1), prec=83, sign=0, man=1, exp=0, bc=1, offset=83 / f_lineno: 517\n",
- "00:01:06 \u001B[90mv\u001B[0m #1093 > > f_code.co_filename: \\mpmath\\libmp\\libmpf.py / f_back.f_lineno: 2031\n",
- "00:01:06 \u001B[90mv\u001B[0m #1094 > > f_back.f_code.co_filename: \\mpmath\\libmp\\gammazeta.py / arg: None\n",
- "00:01:06 \u001B[90mv\u001B[0m #1095 > > \u001B[38;2;38;140;38m│\u001B[0m gamma_ / result: (-1.51425318049776e-67 +\n",
- "00:01:06 \u001B[90mv\u001B[0m #1096 > > 2.79082155561748e-69j) / count: 289\n",
- "00:01:06 \u001B[90mv\u001B[0m #1097 > > \u001B[38;2;38;140;38m│\u001B[0m gamma__ / s: Complex { re: 1.0, im: -100.0 } / result:\n",
- "00:01:06 \u001B[90mv\u001B[0m #1098 > > Ok(Complex { re: -1.514253180497756e-67, im: 2.7908215556174775e-69 })\n",
- "00:01:06 \u001B[90mv\u001B[0m #1099 > > \u001B[38;2;38;140;38m│\u001B[0m zeta__ / s: Complex { re: 0.0, im: 100.0 } / result:\n",
- "00:01:06 \u001B[90mv\u001B[0m #1100 > > Ok(Complex { re: 6.51721042625301, im: 0.18128842533791736 }) / z: Complex { re:\n",
- "00:01:06 \u001B[90mv\u001B[0m #1101 > > 0.0, im: 0.0 }\n",
- "00:01:06 \u001B[90mv\u001B[0m #1102 > > \u001B[38;2;38;140;38m│\u001B[0m __assert_ne / actual: 6.51721042625301 / expected: 0.0\n",
- "00:01:06 \u001B[90mv\u001B[0m #1103 > > \u001B[38;2;38;140;38m│\u001B[0m __assert_ne / actual: 0.18128842533791736 / expected: 0.0\n",
- "00:01:06 \u001B[90mv\u001B[0m #1104 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:01:06 \u001B[90mv\u001B[0m #1105 > >\n",
- "00:01:06 \u001B[90mv\u001B[0m #1106 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:01:06 \u001B[90mv\u001B[0m #1107 > > \u001B[38;2;146;146;178m│\u001B[0m ## test_critical_strip\n",
- "00:01:06 \u001B[90mv\u001B[0m #1108 > >\n",
- "00:01:06 \u001B[90mv\u001B[0m #1109 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
- "00:01:06 \u001B[90mv\u001B[0m #1110 > > inl test_critical_strip log = run_test log fun zeta, gamma =>\n",
- "00:01:06 \u001B[90mv\u001B[0m #1111 > > (join [[\n",
- "00:01:06 \u001B[90mv\u001B[0m #1112 > > .^(0.5, 14.134725)\n",
- "00:01:06 \u001B[90mv\u001B[0m #1113 > > .^(0.75, 20.5)\n",
- "00:01:06 \u001B[90mv\u001B[0m #1114 > > .^(1.25, 30.1)\n",
- "00:01:06 \u001B[90mv\u001B[0m #1115 > > .^(0.25, 40.0)\n",
- "00:01:06 \u001B[90mv\u001B[0m #1116 > > .^(1.0, 50.0)\n",
- "00:01:06 \u001B[90mv\u001B[0m #1117 > > ]])\n",
- "00:01:06 \u001B[90mv\u001B[0m #1118 > > |> listm.iter fun s =>\n",
- "00:01:06 \u001B[90mv\u001B[0m #1119 > > inl result = zeta s\n",
- "00:01:06 \u001B[90mv\u001B[0m #1120 > > result |> re |> _assert_ne 0\n",
- "00:01:06 \u001B[90mv\u001B[0m #1121 > > result |> im |> _assert_ne 0\n",
- "00:01:07 \u001B[90mv\u001B[0m #1122 > >\n",
- "00:01:07 \u001B[90mv\u001B[0m #1123 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
- "00:01:07 \u001B[90mv\u001B[0m #1124 > > //// test\n",
- "00:01:07 \u001B[90mv\u001B[0m #1125 > > ///! rust -d num-complex pyo3\n",
- "00:01:07 \u001B[90mv\u001B[0m #1126 > >\n",
- "00:01:07 \u001B[90mv\u001B[0m #1127 > > test_critical_strip true\n",
- "00:01:10 \u001B[90mv\u001B[0m #1128 > >\n",
- "00:01:10 \u001B[90mv\u001B[0m #1129 > > ── [ 3.78s - return value ] ────────────────────────────────────────────────────\n",
- "00:01:10 \u001B[90mv\u001B[0m #1130 > > \u001B[38;2;38;140;38m│\u001B[0m zeta_ / s: (0.5, 14.134725) / count: 0\n",
- "00:01:10 \u001B[90mv\u001B[0m #1131 > > \u001B[38;2;38;140;38m│\u001B[0m call(zeta_) / f_code.co_name: zeta / f_locals:\n",
- "00:01:10 \u001B[90mv\u001B[0m #1132 > > s=(0.5+14.134725j), a=1, derivative=0, method=None, kwargs={} / f_lineno: 528\n",
- "00:01:10 \u001B[90mv\u001B[0m #1133 > > f_code.co_filename: \\mpmath\\functions\\zeta.py / f_back.f_lineno: 25\n",
- "00:01:10 \u001B[90mv\u001B[0m #1134 > > f_back.f_code.co_filename: / arg: None\n",
- "00:01:10 \u001B[90mv\u001B[0m #1135 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code.co_name: zeta / f_locals:\n",
- "00:01:10 \u001B[90mv\u001B[0m #1136 > > s=(0.5+14.134725j), a=1, derivative=0, method=None, kwargs={} / f_lineno: 530\n",
- "00:01:10 \u001B[90mv\u001B[0m #1137 > > f_code.co_filename: \\mpmath\\functions\\zeta.py / f_back.f_lineno: 25\n",
- "00:01:10 \u001B[90mv\u001B[0m #1138 > > f_back.f_code.co_filename: / arg: None\n",
- "00:01:10 \u001B[90mv\u001B[0m #1139 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code.co_name: zeta / f_locals:\n",
- "00:01:10 \u001B[90mv\u001B[0m #1140 > > s=(0.5+14.134725j), a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno:\n",
- "00:01:10 \u001B[90mv\u001B[0m #1141 > > 531 / f_code.co_filename: \\mpmath\\functions\\zeta.py / f_back.f_lineno: 25\n",
- "00:01:10 \u001B[90mv\u001B[0m #1142 > > f_back.f_code.co_filename: / arg: None\n",
- "00:01:10 \u001B[90mv\u001B[0m #1143 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code.co_name: zeta / f_locals:\n",
- "00:01:10 \u001B[90mv\u001B[0m #1144 > > s=(0.5+14.134725j), a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno:\n",
- "00:01:10 \u001B[90mv\u001B[0m #1145 > > 532 / f_code.co_filename: \\mpmath\\functions\\zeta.py / f_back.f_lineno: 25\n",
- "00:01:10 \u001B[90mv\u001B[0m #1146 > > f_back.f_code.co_filename: / arg: None\n",
- "00:01:10 \u001B[90mv\u001B[0m #1147 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code.co_name: zeta / f_locals:\n",
- "00:01:10 \u001B[90mv\u001B[0m #1148 > > s=(0.5+14.134725j), a=1, derivative=0, method=None, kwargs={}, d=0 / f_lineno:\n",
- "00:01:10 \u001B[90mv\u001B[0m #1149 > > 533 / f_code.co_filename: \\mpmath\\functions\\zeta.py / f_back.f_lineno: 25\n",
- "00:01:10 \u001B[90mv\u001B[0m #1150 > > f_back.f_code.co_filename: / arg: None\n",
- "00:01:10 \u001B[90mv\u001B[0m #1151 > > \u001B[38;2;38;140;38m│\u001B[0m call(zeta_) / f_code.co_name: f / f_locals:\n",
- "00:01:10 \u001B[90mv\u001B[0m #1152 > > x=(0.5+14.134725j), kwargs={}, name='zeta' / f_lineno: 989 / f_code.co_filename:\n",
- "00:01:10 \u001B[90mv\u001B[0m #1153 > > \\mpmath\\ctx_mp_python.py / f_back.f_lineno: 533 / f_back.f_code.co_filename:\n",
- "00:01:10 \u001B[90mv\u001B[0m #1154 > > \\mpmath\\functions\\zeta.py / arg: None\n",
- "00:01:10 \u001B[90mv\u001B[0m #1155 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code...210, sim=241793223535862290161314995\n",
- "00:01:10 \u001B[90mv\u001B[0m #1156 > > f_lineno: 1648 / f_code.co_filename: \\mpmath\\libmp\\gammazeta.py\n",
- "00:01:10 \u001B[90mv\u001B[0m #1157 > > f_back.f_lineno: 2050 / f_back.f_code.co_filename: \\mpmath\\libmp\\gammazeta.py\n",
- "00:01:10 \u001B[90mv\u001B[0m #1158 > > arg: None\n",
- "00:01:10 \u001B[90mv\u001B[0m #1159 > > \u001B[38;2;38;140;38m│\u001B[0m line(gamma_) / f_code.co_name: complex_stirling_series\n",
- "00:01:10 \u001B[90mv\u001B[0m #1160 > > f_locals: x=0, y=-241785163922925834941235200, prec=82,\n",
- "00:01:10 \u001B[90mv\u001B[0m #1161 > > _m=12089258196146291747061760000, tre=0, tim=396, ure=-1934281311383406679530,\n",
- "00:01:10 \u001B[90mv\u001B[0m #1162 > > uim=0, sre=4443714077719696485012210, sim=241793223535862290161314995\n",
- "00:01:10 \u001B[90mv\u001B[0m #1163 > > f_lineno: 1649 / f_code.co_filename: \\mpmath\\libmp\\gammazeta.py\n",
- "00:01:10 \u001B[90mv\u001B[0m #1164 > > f_back.f_lineno: 2050 / f_back.f_code.co_filename: \\mpmath\\libmp\\gammazeta.py\n",
- "00:01:10 \u001B[90mv\u001B[0m #1165 > > arg: None\n",
- "00:01:10 \u001B[90mv\u001B[0m #1166 > > \u001B[38;2;38;140;38m│\u001B[0m line(gamma_) / f_code.co_name: complex_stirling_series\n",
- "00:01:10 \u001B[90mv\u001B[0m #1167 > > f_locals: x=0, y=-241785163922925834941235200, prec=82,\n",
- "00:01:10 \u001B[90mv\u001B[0m #1168 > > _m=12089258196146291747061760000, tre=0, tim=396, ure=-1934281311383406679530,\n",
- "00:01:10 \u001B[90mv\u001B[0m #1169 > > uim=0, sre=4443714077719696485012210, sim=241793223535862290161314997\n",
- "00:01:10 \u001B[90mv\u001B[0m #1170 > > f_lineno: 1650 / f_code.co_filename: \\mpmath\\libmp\\gammazeta.py\n",
- "00:01:10 \u001B[90mv\u001B[0m #1171 > > f_back.f_lineno: 2050 / f_back.f_code.co_filename: \\mpmath\\libmp\\gammazeta.py\n",
- "00:01:10 \u001B[90mv\u001B[0m #1172 > > arg: None\n",
- "00:01:10 \u001B[90mv\u001B[0m #1173 > > \u001B[38;2;38;140;38m│\u001B[0m gamma_ / result: (2.63173210619768e-35 -\n",
- "00:01:10 \u001B[90mv\u001B[0m #1174 > > 8.16464935465334e-36j) / count: 262\n",
- "00:01:10 \u001B[90mv\u001B[0m #1175 > > \u001B[38;2;38;140;38m│\u001B[0m gamma__ / s: Complex { re: 0.0, im: -50.0 } / result:\n",
- "00:01:10 \u001B[90mv\u001B[0m #1176 > > Ok(Complex { re: 2.6317321061976804e-35, im: -8.164649354653339e-36 })\n",
- "00:01:10 \u001B[90mv\u001B[0m #1177 > > \u001B[38;2;38;140;38m│\u001B[0m zeta__ / s: Complex { re: 1.0, im: 50.0 } / result:\n",
- "00:01:10 \u001B[90mv\u001B[0m #1178 > > Ok(Complex { re: 0.44103873082309397, im: 0.281582455029683 }) / z: Complex {\n",
- "00:01:10 \u001B[90mv\u001B[0m #1179 > > re: 0.0, im: 0.0 }\n",
- "00:01:10 \u001B[90mv\u001B[0m #1180 > > \u001B[38;2;38;140;38m│\u001B[0m __assert_ne / actual: 0.44103873082309397 / expected: 0.0\n",
- "00:01:10 \u001B[90mv\u001B[0m #1181 > > \u001B[38;2;38;140;38m│\u001B[0m __assert_ne / actual: 0.281582455029683 / expected: 0.0\n",
- "00:01:10 \u001B[90mv\u001B[0m #1182 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:01:10 \u001B[90mv\u001B[0m #1183 > >\n",
- "00:01:10 \u001B[90mv\u001B[0m #1184 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:01:10 \u001B[90mv\u001B[0m #1185 > > \u001B[38;2;146;146;178m│\u001B[0m ## test_reflection_formula_for_specific_value\n",
- "00:01:10 \u001B[90mv\u001B[0m #1186 > >\n",
- "00:01:10 \u001B[90mv\u001B[0m #1187 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
- "00:01:10 \u001B[90mv\u001B[0m #1188 > > inl test_reflection_formula_for_specific_value log = run_test log fun zeta,\n",
- "00:01:10 \u001B[90mv\u001B[0m #1189 > > gamma =>\n",
- "00:01:10 \u001B[90mv\u001B[0m #1190 > > (join [[\n",
- "00:01:10 \u001B[90mv\u001B[0m #1191 > > .^(3, 4)\n",
- "00:01:10 \u001B[90mv\u001B[0m #1192 > > .^(2.5, -3.5)\n",
- "00:01:10 \u001B[90mv\u001B[0m #1193 > > .^(1.5, 2.5)\n",
- "00:01:10 \u001B[90mv\u001B[0m #1194 > > .^(0.5, 14.134725)\n",
- "00:01:10 \u001B[90mv\u001B[0m #1195 > > ]])\n",
- "00:01:10 \u001B[90mv\u001B[0m #1196 > > |> listm.iter fun s =>\n",
- "00:01:10 \u001B[90mv\u001B[0m #1197 > > inl lhs = zeta s\n",
- "00:01:10 \u001B[90mv\u001B[0m #1198 > > inl reflection_coefficient =\n",
- "00:01:10 \u001B[90mv\u001B[0m #1199 > > (.^(2, 0) .** s)\n",
- "00:01:10 \u001B[90mv\u001B[0m #1200 > > .* (.^(pi, 0) .** (s .- .^(1, 0)))\n",
- "00:01:10 \u001B[90mv\u001B[0m #1201 > > .* (.^(pi, 0) .* s ./ .^(2, 0) |> complex_sin)\n",
- "00:01:10 \u001B[90mv\u001B[0m #1202 > > .* gamma (.^(1, 0) .- s)\n",
- "00:01:10 \u001B[90mv\u001B[0m #1203 > >\n",
- "00:01:10 \u001B[90mv\u001B[0m #1204 > > inl one_minus_s = .^(1 - re s, -(im s))\n",
- "00:01:10 \u001B[90mv\u001B[0m #1205 > > inl rhs = reflection_coefficient .* zeta one_minus_s\n",
- "00:01:10 \u001B[90mv\u001B[0m #1206 > >\n",
- "00:01:10 \u001B[90mv\u001B[0m #1207 > > re lhs - re rhs |> abs |> _assert_lt 0.0001\n",
- "00:01:10 \u001B[90mv\u001B[0m #1208 > > im lhs - im rhs |> abs |> _assert_lt 0.0001\n",
- "00:01:11 \u001B[90mv\u001B[0m #1209 > >\n",
- "00:01:11 \u001B[90mv\u001B[0m #1210 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
- "00:01:11 \u001B[90mv\u001B[0m #1211 > > //// test\n",
- "00:01:11 \u001B[90mv\u001B[0m #1212 > > ///! rust -d num-complex pyo3\n",
- "00:01:11 \u001B[90mv\u001B[0m #1213 > >\n",
- "00:01:11 \u001B[90mv\u001B[0m #1214 > > test_reflection_formula_for_specific_value true\n",
- "00:01:14 \u001B[90mv\u001B[0m #1215 > >\n",
- "00:01:14 \u001B[90mv\u001B[0m #1216 > > ── [ 3.29s - return value ] ────────────────────────────────────────────────────\n",
- "00:01:14 \u001B[90mv\u001B[0m #1217 > > \u001B[38;2;38;140;38m│\u001B[0m zeta_ / s: (3.0, 4.0) / count: 0\n",
- "00:01:14 \u001B[90mv\u001B[0m #1218 > > \u001B[38;2;38;140;38m│\u001B[0m call(zeta_) / f_code.co_name: zeta / f_locals: s=(3+4j), a=1,\n",
- "00:01:14 \u001B[90mv\u001B[0m #1219 > > derivative=0, method=None, kwargs={} / f_lineno: 528 / f_code.co_filename:\n",
- "00:01:14 \u001B[90mv\u001B[0m #1220 > > \\mpmath\\functions\\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:\n",
- "00:01:14 \u001B[90mv\u001B[0m #1221 > > arg: None\n",
- "00:01:14 \u001B[90mv\u001B[0m #1222 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code.co_name: zeta / f_locals: s=(3+4j), a=1,\n",
- "00:01:14 \u001B[90mv\u001B[0m #1223 > > derivative=0, method=None, kwargs={} / f_lineno: 530 / f_code.co_filename:\n",
- "00:01:14 \u001B[90mv\u001B[0m #1224 > > \\mpmath\\functions\\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:\n",
- "00:01:14 \u001B[90mv\u001B[0m #1225 > > arg: None\n",
- "00:01:14 \u001B[90mv\u001B[0m #1226 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code.co_name: zeta / f_locals: s=(3+4j), a=1,\n",
- "00:01:14 \u001B[90mv\u001B[0m #1227 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 531 / f_code.co_filename:\n",
- "00:01:14 \u001B[90mv\u001B[0m #1228 > > \\mpmath\\functions\\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:\n",
- "00:01:14 \u001B[90mv\u001B[0m #1229 > > arg: None\n",
- "00:01:14 \u001B[90mv\u001B[0m #1230 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code.co_name: zeta / f_locals: s=(3+4j), a=1,\n",
- "00:01:14 \u001B[90mv\u001B[0m #1231 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 532 / f_code.co_filename:\n",
- "00:01:14 \u001B[90mv\u001B[0m #1232 > > \\mpmath\\functions\\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:\n",
- "00:01:14 \u001B[90mv\u001B[0m #1233 > > arg: None\n",
- "00:01:14 \u001B[90mv\u001B[0m #1234 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code.co_name: zeta / f_locals: s=(3+4j), a=1,\n",
- "00:01:14 \u001B[90mv\u001B[0m #1235 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533 / f_code.co_filename:\n",
- "00:01:14 \u001B[90mv\u001B[0m #1236 > > \\mpmath\\functions\\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:\n",
- "00:01:14 \u001B[90mv\u001B[0m #1237 > > arg: None\n",
- "00:01:14 \u001B[90mv\u001B[0m #1238 > > \u001B[38;2;38;140;38m│\u001B[0m call(zeta_) / f_code.co_name: f / f_locals: x=(3+4j),\n",
- "00:01:14 \u001B[90mv\u001B[0m #1239 > > kwargs={}, name='zeta' / f_lineno: 989 / f_code.co_filename:\n",
- "00:01:14 \u001B[90mv\u001B[0m #1240 > > \\mpmath\\ctx_mp_python.py / f_back.f_lineno: 533 / f_back.f_code.co_filename:\n",
- "00:01:14 \u001B[90mv\u001B[0m #1241 > > \\mpmath\\functions\\zeta.py / arg: None\n",
- "00:01:14 \u001B[90mv\u001B[0m #1242 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code.co_name: f / f_locals: x=(3+4j),\n",
- "00:01:14 \u001B[90mv\u001B[0m #1243 > > kwargs={}, name='zeta' / f_linen...045 / f_code.co_filename:\n",
- "00:01:14 \u001B[90mv\u001B[0m #1244 > > \\mpmath\\libmp\\gammazeta.py / f_back.f_lineno: 1007 / f_back.f_code.co_filename:\n",
- "00:01:14 \u001B[90mv\u001B[0m #1245 > > \\mpmath\\ctx_mp_python.py / arg: None\n",
- "00:01:14 \u001B[90mv\u001B[0m #1246 > > \u001B[38;2;38;140;38m│\u001B[0m line(gamma_) / f_code.co_name: mpc_gamma / f_locals: z=((0,\n",
- "00:01:14 \u001B[90mv\u001B[0m #1247 > > 1, -1, 1), (0, 3978571390186527, -48, 52)), prec=53, rnd='n', type=0, a=(0, 1,\n",
- "00:01:14 \u001B[90mv\u001B[0m #1248 > > -1, 1), b=(0, 3978571390186527, -48, 52), asign=0, aman=1, aexp=-1, abc=1,\n",
- "00:01:14 \u001B[90mv\u001B[0m #1249 > > bsign=0, bman=3978571390186527, bexp=-48, bbc=52, wp=79, amag=0, bmag=4, mag=4,\n",
- "00:01:14 \u001B[90mv\u001B[0m #1250 > > an=0, bn=14, absn=14j, gamma_size=56, need_reflection=0, zorig=((0, 1, -1, 1),\n",
- "00:01:14 \u001B[90mv\u001B[0m #1251 > > (0, 3978571390186527, -48, 52)), yfinal=0, balance_prec=0, n_for_stirling=15,\n",
- "00:01:14 \u001B[90mv\u001B[0m #1252 > > need_reduction=True, afix=2115620184325601055735808,\n",
- "00:01:14 \u001B[90mv\u001B[0m #1253 > > bfix=8543917002826194402410496, r=0, zprered=((0, 1, -1, 1), (0,\n",
- "00:01:14 \u001B[90mv\u001B[0m #1254 > > 3978571390186527, -48, 52)), d=5, rre=-542313259704087430481959845,\n",
- "00:01:14 \u001B[90mv\u001B[0m #1255 > > one=604462909807314587353088, rim=-1657865507045117397880679064, k=2 / f_lineno:\n",
- "00:01:14 \u001B[90mv\u001B[0m #1256 > > 2043 / f_code.co_filename: \\mpmath\\libmp\\gammazeta.py / f_back.f_lineno: 1007\n",
- "00:01:14 \u001B[90mv\u001B[0m #1257 > > f_back.f_code.co_filename: \\mpmath\\ctx_mp_python.py / arg: None\n",
- "00:01:14 \u001B[90mv\u001B[0m #1258 > > \u001B[38;2;38;140;38m│\u001B[0m gamma_ / result: (-1.4455538437607e-10 -\n",
- "00:01:14 \u001B[90mv\u001B[0m #1259 > > 5.52278876877407e-10j) / count: 318\n",
- "00:01:14 \u001B[90mv\u001B[0m #1260 > > \u001B[38;2;38;140;38m│\u001B[0m gamma__ / s: Complex { re: 0.5, im: 14.134725 } / result:\n",
- "00:01:14 \u001B[90mv\u001B[0m #1261 > > Ok(Complex { re: -1.4455538437606964e-10, im: -5.522788768774066e-10 })\n",
- "00:01:14 \u001B[90mv\u001B[0m #1262 > > \u001B[38;2;38;140;38m│\u001B[0m zeta__ / s: Complex { re: 0.5, im: -14.134725 } / result:\n",
- "00:01:14 \u001B[90mv\u001B[0m #1263 > > Ok(Complex { re: 1.7674298413849186e-8, im: 1.1102028930923156e-7 }) / z:\n",
- "00:01:14 \u001B[90mv\u001B[0m #1264 > > Complex { re: 0.0, im: 0.0 }\n",
- "00:01:14 \u001B[90mv\u001B[0m #1265 > > \u001B[38;2;38;140;38m│\u001B[0m __assert_lt / actual: 4.499862532288471e-22 / expected:\n",
- "00:01:14 \u001B[90mv\u001B[0m #1266 > > 0.0001\n",
- "00:01:14 \u001B[90mv\u001B[0m #1267 > > \u001B[38;2;38;140;38m│\u001B[0m __assert_lt / actual: 1.4558378780933287e-22 / expected:\n",
- "00:01:14 \u001B[90mv\u001B[0m #1268 > > 0.0001\n",
- "00:01:14 \u001B[90mv\u001B[0m #1269 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:01:14 \u001B[90mv\u001B[0m #1270 > >\n",
- "00:01:14 \u001B[90mv\u001B[0m #1271 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:01:14 \u001B[90mv\u001B[0m #1272 > > \u001B[38;2;146;146;178m│\u001B[0m ## test_euler_product_formula\n",
- "00:01:14 \u001B[90mv\u001B[0m #1273 > >\n",
- "00:01:14 \u001B[90mv\u001B[0m #1274 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
- "00:01:14 \u001B[90mv\u001B[0m #1275 > > inl test_euler_product_formula log = run_test log fun zeta, gamma =>\n",
- "00:01:14 \u001B[90mv\u001B[0m #1276 > > inl s_values = join [[ 2; 2.5; 3; 3.5; 4; 4.5; 5 ]]\n",
- "00:01:14 \u001B[90mv\u001B[0m #1277 > > inl primes = join [[ 2; 3; 5; 7; 11; 13; 17; 19; 23; 29; 31; 37; 41; 43; 47;\n",
- "00:01:14 \u001B[90mv\u001B[0m #1278 > > 53; 59; 61; 67; 71 ]]\n",
- "00:01:14 \u001B[90mv\u001B[0m #1279 > > s_values\n",
- "00:01:14 \u001B[90mv\u001B[0m #1280 > > |> listm.iter fun s_re =>\n",
- "00:01:14 \u001B[90mv\u001B[0m #1281 > > inl s = .^(s_re, 0)\n",
- "00:01:14 \u001B[90mv\u001B[0m #1282 > > inl product =\n",
- "00:01:14 \u001B[90mv\u001B[0m #1283 > > (1, primes)\n",
- "00:01:14 \u001B[90mv\u001B[0m #1284 > > ||> listm.fold fun acc x =>\n",
- "00:01:14 \u001B[90mv\u001B[0m #1285 > > acc * 1 / (1 - x ** -s_re)\n",
- "00:01:14 \u001B[90mv\u001B[0m #1286 > >\n",
- "00:01:14 \u001B[90mv\u001B[0m #1287 > > inl result = zeta s\n",
- "00:01:14 \u001B[90mv\u001B[0m #1288 > > re result - product |> abs |> _assert_lt 0.01\n",
- "00:01:14 \u001B[90mv\u001B[0m #1289 > > result |> im |> _assert_lt 0.01\n",
- "00:01:15 \u001B[90mv\u001B[0m #1290 > >\n",
- "00:01:15 \u001B[90mv\u001B[0m #1291 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
- "00:01:15 \u001B[90mv\u001B[0m #1292 > > //// test\n",
- "00:01:15 \u001B[90mv\u001B[0m #1293 > > ///! rust -d num-complex pyo3\n",
- "00:01:15 \u001B[90mv\u001B[0m #1294 > >\n",
- "00:01:15 \u001B[90mv\u001B[0m #1295 > > test_euler_product_formula true\n",
- "00:01:18 \u001B[90mv\u001B[0m #1296 > >\n",
- "00:01:18 \u001B[90mv\u001B[0m #1297 > > ── [ 3.32s - return value ] ────────────────────────────────────────────────────\n",
- "00:01:18 \u001B[90mv\u001B[0m #1298 > > \u001B[38;2;38;140;38m│\u001B[0m zeta_ / s: (2.0, 0.0) / count: 0\n",
- "00:01:18 \u001B[90mv\u001B[0m #1299 > > \u001B[38;2;38;140;38m│\u001B[0m call(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1,\n",
- "00:01:18 \u001B[90mv\u001B[0m #1300 > > derivative=0, method=None, kwargs={} / f_lineno: 528 / f_code.co_filename:\n",
- "00:01:18 \u001B[90mv\u001B[0m #1301 > > \\mpmath\\functions\\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:\n",
- "00:01:18 \u001B[90mv\u001B[0m #1302 > > arg: None\n",
- "00:01:18 \u001B[90mv\u001B[0m #1303 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1,\n",
- "00:01:18 \u001B[90mv\u001B[0m #1304 > > derivative=0, method=None, kwargs={} / f_lineno: 530 / f_code.co_filename:\n",
- "00:01:18 \u001B[90mv\u001B[0m #1305 > > \\mpmath\\functions\\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:\n",
- "00:01:18 \u001B[90mv\u001B[0m #1306 > > arg: None\n",
- "00:01:18 \u001B[90mv\u001B[0m #1307 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1,\n",
- "00:01:18 \u001B[90mv\u001B[0m #1308 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 531 / f_code.co_filename:\n",
- "00:01:18 \u001B[90mv\u001B[0m #1309 > > \\mpmath\\functions\\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:\n",
- "00:01:18 \u001B[90mv\u001B[0m #1310 > > arg: None\n",
- "00:01:18 \u001B[90mv\u001B[0m #1311 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1,\n",
- "00:01:18 \u001B[90mv\u001B[0m #1312 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 532 / f_code.co_filename:\n",
- "00:01:18 \u001B[90mv\u001B[0m #1313 > > \\mpmath\\functions\\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:\n",
- "00:01:18 \u001B[90mv\u001B[0m #1314 > > arg: None\n",
- "00:01:18 \u001B[90mv\u001B[0m #1315 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code.co_name: zeta / f_locals: s=(2+0j), a=1,\n",
- "00:01:18 \u001B[90mv\u001B[0m #1316 > > derivative=0, method=None, kwargs={}, d=0 / f_lineno: 533 / f_code.co_filename:\n",
- "00:01:18 \u001B[90mv\u001B[0m #1317 > > \\mpmath\\functions\\zeta.py / f_back.f_lineno: 25 / f_back.f_code.co_filename:\n",
- "00:01:18 \u001B[90mv\u001B[0m #1318 > > arg: None\n",
- "00:01:18 \u001B[90mv\u001B[0m #1319 > > \u001B[38;2;38;140;38m│\u001B[0m call(zeta_) / f_code.co_name: f / f_locals: x=(2+0j),\n",
- "00:01:18 \u001B[90mv\u001B[0m #1320 > > kwargs={}, name='zeta' / f_lineno: 989 / f_code.co_filename:\n",
- "00:01:18 \u001B[90mv\u001B[0m #1321 > > \\mpmath\\ctx_mp_python.py / f_back.f_lineno: 533 / f_back.f_code.co_filename:\n",
- "00:01:18 \u001B[90mv\u001B[0m #1322 > > \\mpmath\\functions\\zeta.py / arg: None\n",
- "00:01:18 \u001B[90mv\u001B[0m #1323 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code.co_name: f / f_locals: x=(2+0j),\n",
- "00:01:18 \u001B[90mv\u001B[0m #1324 > > kwargs={}, name='zeta' / f_linen...k.f_lineno: 985 / f_back.f_code.co_filename:\n",
- "00:01:18 \u001B[90mv\u001B[0m #1325 > > \\mpmath\\libmp\\gammazeta.py / arg: None\n",
- "00:01:18 \u001B[90mv\u001B[0m #1326 > > \u001B[38;2;38;140;38m│\u001B[0m line(zeta_) / f_code.co_name: mpf_zeta_int / f_locals: s=5,\n",
- "00:01:18 \u001B[90mv\u001B[0m #1327 > > prec=53, rnd='n', wp=73, m=19.25, needed_terms=623488, n=33, d=[1, 2179, 792067,\n",
- "00:01:18 \u001B[90mv\u001B[0m #1328 > > 115062531, 8930212611, 429314925315, 13983537177347, 327666966438659,\n",
- "00:01:18 \u001B[90mv\u001B[0m #1329 > > 5764846406968067, 78615943485956867, 851604426176701187, 7470527451121689347,\n",
- "00:01:18 \u001B[90mv\u001B[0m #1330 > > 53898915046387983107, 323897845985013506819, 1638178356374090130179,\n",
- "00:01:18 \u001B[90mv\u001B[0m #1331 > > 7034281785235908174595, 25833609859980306522883, 81661917475887913739011,\n",
- "00:01:18 \u001B[90mv\u001B[0m #1332 > > 223448095548034217779971, 532029677981012660429571, 1108048631855905753375491,\n",
- "00:01:18 \u001B[90mv\u001B[0m #1333 > > 2029946562680066824315651, 3292927237466655352791811, 4769455369342763680768771,\n",
- "00:01:18 \u001B[90mv\u001B[0m #1334 > > 6235511670496346417767171, 7463408621503347142796035, 8322751284048216428487427,\n",
- "00:01:18 \u001B[90mv\u001B[0m #1335 > > 8818779962777819524211459, 9050689474911140452082435, 9136270117622166323831555,\n",
- "00:01:18 \u001B[90mv\u001B[0m #1336 > > 9160252037839493347779331, 9165045885455648617505539, 9165654628010081032708867,\n",
- "00:01:18 \u001B[90mv\u001B[0m #1337 > > 9165691521498228451812099], t=-84153986440240940095109733900764881301998910956,\n",
- "00:01:18 \u001B[90mv\u001B[0m #1338 > > k=26 / f_lineno: 954 / f_code.co_filename: \\mpmath\\libmp\\gammazeta.py\n",
- "00:01:18 \u001B[90mv\u001B[0m #1339 > > f_back.f_lineno: 985 / f_back.f_code.co_filename: \\mpmath\\libmp\\gammazeta.py\n",
- "00:01:18 \u001B[90mv\u001B[0m #1340 > > arg: None\n",
- "00:01:18 \u001B[90mv\u001B[0m #1341 > > \u001B[38;2;38;140;38m│\u001B[0m zeta_ / result: (1.03692775514337 + 0.0j) / count: 228\n",
- "00:01:18 \u001B[90mv\u001B[0m #1342 > > \u001B[38;2;38;140;38m│\u001B[0m zeta / count: 0 / s: Complex { re: 5.0, im: 0.0 }\n",
- "00:01:18 \u001B[90mv\u001B[0m #1343 > > \u001B[38;2;38;140;38m│\u001B[0m zeta__ / s: Complex { re: 5.0, im: 0.0 } / result: Ok(Complex\n",
- "00:01:18 \u001B[90mv\u001B[0m #1344 > > { re: 1.03692775514337, im: 0.0 }) / z: Complex { re: NaN, im: NaN }\n",
- "00:01:18 \u001B[90mv\u001B[0m #1345 > > \u001B[38;2;38;140;38m│\u001B[0m __assert_lt / actual: 2.0033654735129858e-9 / expected: 0.01\n",
- "00:01:18 \u001B[90mv\u001B[0m #1346 > > \u001B[38;2;38;140;38m│\u001B[0m __assert_lt / actual: 0.0 / expected: 0.01\n",
- "00:01:18 \u001B[90mv\u001B[0m #1347 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:01:18 \u001B[90mv\u001B[0m #1348 > >\n",
- "00:01:18 \u001B[90mv\u001B[0m #1349 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:01:18 \u001B[90mv\u001B[0m #1350 > > \u001B[38;2;146;146;178m│\u001B[0m ## graph\n",
- "00:01:18 \u001B[90mv\u001B[0m #1351 > >\n",
- "00:01:18 \u001B[90mv\u001B[0m #1352 > > ── mermaid ─────────────────────────────────────────────────────────────────────\n",
- "00:01:18 \u001B[90mv\u001B[0m #1353 > > \u001B[38;2;146;146;178m│\u001B[0m > style=\"background-color:white\">\n",
- "00:01:18 \u001B[90mv\u001B[0m #1355 > > \u001B[38;2;146;146;178m│\u001B[0m > href=\"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.2.0/css/all.min.css\"\n",
- "00:01:18 \u001B[90mv\u001B[0m #1357 > > >\n",
- "00:01:18 \u001B[90mv\u001B[0m #1358 > > \u001B[38;2;146;146;178m│\u001B[0m \n",
- "00:01:18 \u001B[90mv\u001B[0m #1359 > > \u001B[38;2;146;146;178m│\u001B[0m \n",
- "00:01:18 \u001B[90mv\u001B[0m #1416 > > \u001B[38;2;146;146;178m│\u001B[0m \n",
- "00:01:18 \u001B[90mv\u001B[0m #1417 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:01:18 \u001B[90mv\u001B[0m #1418 > >\n",
- "00:01:18 \u001B[90mv\u001B[0m #1419 > > ── mermaid ─────────────────────────────────────────────────────────────────────\n",
- "00:01:18 \u001B[90mv\u001B[0m #1420 > > \u001B[38;2;146;146;178m│\u001B[0m > style=\"background-color:white\">\n",
- "00:01:18 \u001B[90mv\u001B[0m #1422 > > \u001B[38;2;146;146;178m│\u001B[0m > href=\"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.2.0/css/all.min.css\"\n",
- "00:01:18 \u001B[90mv\u001B[0m #1424 > > >\n",
- "00:01:18 \u001B[90mv\u001B[0m #1425 > > \u001B[38;2;146;146;178m│\u001B[0m \n",
- "00:01:18 \u001B[90mv\u001B[0m #1426 > > \u001B[38;2;146;146;178m│\u001B[0m \n",
+ "00:01:18 \u001B[90mv\u001B[0m #1410 > > \u001B[38;2;146;146;178m│\u001B[0m \n",
+ "00:01:18 \u001B[90mv\u001B[0m #1411 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:01:18 \u001B[90mv\u001B[0m #1412 > >\n",
+ "00:01:18 \u001B[90mv\u001B[0m #1413 > > ── mermaid ─────────────────────────────────────────────────────────────────────\n",
+ "00:01:18 \u001B[90mv\u001B[0m #1414 > > \u001B[38;2;146;146;178m│\u001B[0m > style=\"background-color:white\">\n",
+ "00:01:18 \u001B[90mv\u001B[0m #1416 > > \u001B[38;2;146;146;178m│\u001B[0m > href=\"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.2.0/css/all.min.css\"\n",
+ "00:01:18 \u001B[90mv\u001B[0m #1418 > > >\n",
+ "00:01:18 \u001B[90mv\u001B[0m #1419 > > \u001B[38;2;146;146;178m│\u001B[0m \n",
+ "00:01:18 \u001B[90mv\u001B[0m #1420 > > \u001B[38;2;146;146;178m│\u001B[0m \n",
- "00:01:18 \u001B[90mv\u001B[0m #1525 > > \u001B[38;2;146;146;178m│\u001B[0m \n",
- "00:01:18 \u001B[90mv\u001B[0m #1526 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:01:18 \u001B[90mv\u001B[0m #1527 > >\n",
- "00:01:18 \u001B[90mv\u001B[0m #1528 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:01:18 \u001B[90mv\u001B[0m #1529 > > \u001B[38;2;146;146;178m│\u001B[0m ## tests\n",
- "00:01:18 \u001B[90mv\u001B[0m #1530 > >\n",
- "00:01:18 \u001B[90mv\u001B[0m #1531 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
- "00:01:18 \u001B[90mv\u001B[0m #1532 > > inl tests () =\n",
- "00:01:18 \u001B[90mv\u001B[0m #1533 > > testing.run_tests_log {\n",
- "00:01:18 \u001B[90mv\u001B[0m #1534 > > test_zeta_at_known_values_\n",
- "00:01:18 \u001B[90mv\u001B[0m #1535 > > test_zeta_at_2_minus2\n",
- "00:01:18 \u001B[90mv\u001B[0m #1536 > > test_trivial_zero_at_negative_even___\n",
- "00:01:18 \u001B[90mv\u001B[0m #1537 > > test_non_trivial_zero___\n",
- "00:01:18 \u001B[90mv\u001B[0m #1538 > > test_real_part_greater_than_one___\n",
- "00:01:18 \u001B[90mv\u001B[0m #1539 > > test_zeta_at_1___\n",
- "00:01:18 \u001B[90mv\u001B[0m #1540 > > test_symmetry_across_real_axis___\n",
- "00:01:18 \u001B[90mv\u001B[0m #1541 > > test_behavior_near_origin___\n",
- "00:01:18 \u001B[90mv\u001B[0m #1542 > > test_imaginary_axis\n",
- "00:01:18 \u001B[90mv\u001B[0m #1543 > > test_critical_strip\n",
- "00:01:18 \u001B[90mv\u001B[0m #1544 > > test_reflection_formula_for_specific_value\n",
- "00:01:18 \u001B[90mv\u001B[0m #1545 > > test_euler_product_formula\n",
- "00:01:18 \u001B[90mv\u001B[0m #1546 > > }\n",
- "00:01:18 \u001B[90mv\u001B[0m #1547 > >\n",
- "00:01:18 \u001B[90mv\u001B[0m #1548 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
- "00:01:18 \u001B[90mv\u001B[0m #1549 > > ///! _\n",
- "00:01:18 \u001B[90mv\u001B[0m #1550 > >\n",
- "00:01:18 \u001B[90mv\u001B[0m #1551 > > inl main (_args : array_base string) =\n",
- "00:01:18 \u001B[90mv\u001B[0m #1552 > > inl value = 1i32\n",
- "00:01:18 \u001B[90mv\u001B[0m #1553 > > console.write_line ($'$\"value: {!value}\"' : string)\n",
- "00:01:18 \u001B[90mv\u001B[0m #1554 > > 0i32\n",
- "00:01:18 \u001B[90mv\u001B[0m #1555 > >\n",
- "00:01:18 \u001B[90mv\u001B[0m #1556 > > inl main () =\n",
- "00:01:18 \u001B[90mv\u001B[0m #1557 > > $'let tests () = !tests ()' : ()\n",
- "00:01:18 \u001B[90mv\u001B[0m #1558 > > $'let main args = !main args' : ()\n",
- "00:01:19 \u001B[90mv\u001B[0m #1559 > 00:01:17 \u001B[90mv\u001B[39m #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 76866 }\n",
- "00:01:19 \u001B[90mv\u001B[0m #1560 > 00:01:17 \u001B[94md\u001B[39m #4 runtime.execute_with_options / { file_name = jupyter; arguments = [\"nbconvert\", \"c:/home/git/polyglot/lib/math/math.dib.ipynb\", \"--to\", \"html\", \"--HTMLExporter.theme=dark\"]; options = { command = jupyter nbconvert \"c:/home/git/polyglot/lib/math/math.dib.ipynb\" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }\n",
- "00:01:21 \u001B[90mv\u001B[0m #1561 > 00:01:19 \u001B[90mv\u001B[39m #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/lib/math/math.dib.ipynb to html\n",
- "00:01:21 \u001B[90mv\u001B[0m #1562 > 00:01:19 \u001B[90mv\u001B[39m #6 ! C:\\Users\\i574n\\scoop\\apps\\python312\\current\\Lib\\site-packages\\nbformat\\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.\n",
- "00:01:21 \u001B[90mv\u001B[0m #1563 > 00:01:19 \u001B[90mv\u001B[39m #7 ! validate(nb)\n",
- "00:01:21 \u001B[90mv\u001B[0m #1564 > 00:01:19 \u001B[90mv\u001B[39m #8 ! C:\\Users\\i574n\\scoop\\apps\\python312\\current\\Lib\\site-packages\\nbconvert\\filters\\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3\n",
- "00:01:21 \u001B[90mv\u001B[0m #1565 > 00:01:19 \u001B[90mv\u001B[39m #9 ! return _pygments_highlight(\n",
- "00:01:23 \u001B[90mv\u001B[0m #1566 > 00:01:21 \u001B[90mv\u001B[39m #10 ! [NbConvertApp] Writing 7171637 bytes to c:\\home\\git\\polyglot\\lib\\math\\math.dib.html\n",
- "00:01:23 \u001B[90mv\u001B[0m #1567 > 00:01:21 \u001B[90mv\u001B[39m #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 847 }\n",
- "00:01:23 \u001B[90mv\u001B[0m #1568 > 00:01:21 \u001B[94md\u001B[39m #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 847 }\n",
- "00:01:23 \u001B[90mv\u001B[0m #1569 > 00:01:21 \u001B[94md\u001B[39m #13 runtime.execute_with_options / { file_name = pwsh; arguments = [\"-c\", \"$counter = 1; $path = 'c:/home/git/polyglot/lib/math/math.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\\\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path\"]; options = { command = pwsh -c \"$counter = 1; $path = 'c:/home/git/polyglot/lib/math/math.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path\"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }\n",
- "00:01:23 \u001B[90mv\u001B[0m #1570 > 00:01:21 \u001B[90mv\u001B[39m #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 }\n",
- "00:01:23 \u001B[90mv\u001B[0m #1571 > 00:01:21 \u001B[94md\u001B[39m #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 }\n",
- "00:01:23 \u001B[90mv\u001B[0m #1572 > 00:01:21 \u001B[94md\u001B[39m #16 spiral.run / dib / { exit_code = 0; result_length = 77772 }\n",
- "00:01:23 \u001B[94md\u001B[0m #1573 runtime.execute_with_options_async / { exit_code = 0; output_length = 83371 }\n",
- "00:01:23 \u001B[94md\u001B[0m #3 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path math.dib --retries 1\n",
- "00:01:24 \u001B[90mv\u001B[0m #5 async.run_with_timeout_async / { timeout = 100 }\n",
+ "00:01:18 \u001B[90mv\u001B[0m #1498 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:01:18 \u001B[90mv\u001B[0m #1499 > > \u001B[38;2;146;146;178m│\u001B[0m style zeta_rust fill:#f9f,stroke:#333,stroke-width:4px\n",
+ "00:01:18 \u001B[90mv\u001B[0m #1500 > > \u001B[38;2;146;146;178m│\u001B[0m style num_traits fill:#bbf,stroke:#333,stroke-width:2px\n",
+ "00:01:18 \u001B[90mv\u001B[0m #1501 > > \u001B[38;2;146;146;178m│\u001B[0m style num_bigint fill:#bbf,stroke:#333,stroke-width:2px\n",
+ "00:01:18 \u001B[90mv\u001B[0m #1502 > > \u001B[38;2;146;146;178m│\u001B[0m style rust_decimal\n",
+ "00:01:18 \u001B[90mv\u001B[0m #1503 > > fill:#bbf,stroke:#333,stroke-width:2px\n",
+ "00:01:18 \u001B[90mv\u001B[0m #1504 > > \u001B[38;2;146;146;178m│\u001B[0m style error_handling\n",
+ "00:01:18 \u001B[90mv\u001B[0m #1505 > > fill:#bbf,stroke:#333,stroke-width:2px\n",
+ "00:01:18 \u001B[90mv\u001B[0m #1506 > > \u001B[38;2;146;146;178m│\u001B[0m style bigint_operations\n",
+ "00:01:18 \u001B[90mv\u001B[0m #1507 > > fill:#bfb,stroke:#333,stroke-width:2px\n",
+ "00:01:18 \u001B[90mv\u001B[0m #1508 > > \u001B[38;2;146;146;178m│\u001B[0m style decimal_operations\n",
+ "00:01:18 \u001B[90mv\u001B[0m #1509 > > fill:#bfb,stroke:#333,stroke-width:2px\n",
+ "00:01:18 \u001B[90mv\u001B[0m #1510 > > \u001B[38;2;146;146;178m│\u001B[0m style result_type\n",
+ "00:01:18 \u001B[90mv\u001B[0m #1511 > > fill:#bfb,stroke:#333,stroke-width:2px`);\n",
+ "00:01:18 \u001B[90mv\u001B[0m #1512 > > \u001B[38;2;146;146;178m│\u001B[0m renderTarget.innerHTML = svg;\n",
+ "00:01:18 \u001B[90mv\u001B[0m #1513 > > \u001B[38;2;146;146;178m│\u001B[0m bindFunctions?.(renderTarget);\n",
+ "00:01:18 \u001B[90mv\u001B[0m #1514 > > \u001B[38;2;146;146;178m│\u001B[0m }\n",
+ "00:01:18 \u001B[90mv\u001B[0m #1515 > > \u001B[38;2;146;146;178m│\u001B[0m catch (error) {\n",
+ "00:01:18 \u001B[90mv\u001B[0m #1516 > > \u001B[38;2;146;146;178m│\u001B[0m console.log(error);\n",
+ "00:01:18 \u001B[90mv\u001B[0m #1517 > > \u001B[38;2;146;146;178m│\u001B[0m }\n",
+ "00:01:18 \u001B[90mv\u001B[0m #1518 > > \u001B[38;2;146;146;178m│\u001B[0m \n",
+ "00:01:18 \u001B[90mv\u001B[0m #1519 > > \u001B[38;2;146;146;178m│\u001B[0m \n",
+ "00:01:18 \u001B[90mv\u001B[0m #1520 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:01:18 \u001B[90mv\u001B[0m #1521 > >\n",
+ "00:01:18 \u001B[90mv\u001B[0m #1522 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
+ "00:01:18 \u001B[90mv\u001B[0m #1523 > > \u001B[38;2;146;146;178m│\u001B[0m ## tests\n",
+ "00:01:18 \u001B[90mv\u001B[0m #1524 > >\n",
+ "00:01:18 \u001B[90mv\u001B[0m #1525 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
+ "00:01:18 \u001B[90mv\u001B[0m #1526 > > inl tests () =\n",
+ "00:01:18 \u001B[90mv\u001B[0m #1527 > > testing.run_tests_log {\n",
+ "00:01:18 \u001B[90mv\u001B[0m #1528 > > test_zeta_at_known_values_\n",
+ "00:01:18 \u001B[90mv\u001B[0m #1529 > > test_zeta_at_2_minus2\n",
+ "00:01:18 \u001B[90mv\u001B[0m #1530 > > test_trivial_zero_at_negative_even___\n",
+ "00:01:18 \u001B[90mv\u001B[0m #1531 > > test_non_trivial_zero___\n",
+ "00:01:18 \u001B[90mv\u001B[0m #1532 > > test_real_part_greater_than_one___\n",
+ "00:01:18 \u001B[90mv\u001B[0m #1533 > > test_zeta_at_1___\n",
+ "00:01:18 \u001B[90mv\u001B[0m #1534 > > test_symmetry_across_real_axis___\n",
+ "00:01:18 \u001B[90mv\u001B[0m #1535 > > test_behavior_near_origin___\n",
+ "00:01:18 \u001B[90mv\u001B[0m #1536 > > test_imaginary_axis\n",
+ "00:01:18 \u001B[90mv\u001B[0m #1537 > > test_critical_strip\n",
+ "00:01:18 \u001B[90mv\u001B[0m #1538 > > test_reflection_formula_for_specific_value\n",
+ "00:01:18 \u001B[90mv\u001B[0m #1539 > > test_euler_product_formula\n",
+ "00:01:18 \u001B[90mv\u001B[0m #1540 > > }\n",
+ "00:01:18 \u001B[90mv\u001B[0m #1541 > >\n",
+ "00:01:18 \u001B[90mv\u001B[0m #1542 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
+ "00:01:18 \u001B[90mv\u001B[0m #1543 > > ///! _\n",
+ "00:01:18 \u001B[90mv\u001B[0m #1544 > >\n",
+ "00:01:18 \u001B[90mv\u001B[0m #1545 > > inl main (_args : array_base string) =\n",
+ "00:01:18 \u001B[90mv\u001B[0m #1546 > > inl value = 1i32\n",
+ "00:01:18 \u001B[90mv\u001B[0m #1547 > > console.write_line ($'$\"value: {!value}\"' : string)\n",
+ "00:01:18 \u001B[90mv\u001B[0m #1548 > > 0i32\n",
+ "00:01:18 \u001B[90mv\u001B[0m #1549 > >\n",
+ "00:01:18 \u001B[90mv\u001B[0m #1550 > > inl main () =\n",
+ "00:01:18 \u001B[90mv\u001B[0m #1551 > > $'let tests () = !tests ()' : ()\n",
+ "00:01:18 \u001B[90mv\u001B[0m #1552 > > $'let main args = !main args' : ()\n",
+ "00:01:19 \u001B[90mv\u001B[0m #1553 > 00:01:18 \u001B[90mv\u001B[39m #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 76866 }\n",
+ "00:01:19 \u001B[90mv\u001B[0m #1554 > 00:01:18 \u001B[94md\u001B[39m #4 runtime.execute_with_options / { file_name = jupyter; arguments = [\"nbconvert\", \"c:/home/git/polyglot/lib/math/math.dib.ipynb\", \"--to\", \"html\", \"--HTMLExporter.theme=dark\"]; options = { command = jupyter nbconvert \"c:/home/git/polyglot/lib/math/math.dib.ipynb\" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }\n",
+ "00:01:21 \u001B[90mv\u001B[0m #1555 > 00:01:19 \u001B[90mv\u001B[39m #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/lib/math/math.dib.ipynb to html\n",
+ "00:01:21 \u001B[90mv\u001B[0m #1556 > 00:01:19 \u001B[90mv\u001B[39m #6 ! C:\\Users\\i574n\\scoop\\apps\\python312\\current\\Lib\\site-packages\\nbformat\\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.\n",
+ "00:01:21 \u001B[90mv\u001B[0m #1557 > 00:01:19 \u001B[90mv\u001B[39m #7 ! validate(nb)\n",
+ "00:01:21 \u001B[90mv\u001B[0m #1558 > 00:01:20 \u001B[90mv\u001B[39m #8 ! C:\\Users\\i574n\\scoop\\apps\\python312\\current\\Lib\\site-packages\\nbconvert\\filters\\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3\n",
+ "00:01:21 \u001B[90mv\u001B[0m #1559 > 00:01:20 \u001B[90mv\u001B[39m #9 ! return _pygments_highlight(\n",
+ "00:01:23 \u001B[90mv\u001B[0m #1560 > 00:01:22 \u001B[90mv\u001B[39m #10 ! [NbConvertApp] Writing 7171318 bytes to c:\\home\\git\\polyglot\\lib\\math\\math.dib.html\n",
+ "00:01:23 \u001B[90mv\u001B[0m #1561 > 00:01:22 \u001B[90mv\u001B[39m #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 847 }\n",
+ "00:01:23 \u001B[90mv\u001B[0m #1562 > 00:01:22 \u001B[94md\u001B[39m #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 847 }\n",
+ "00:01:23 \u001B[90mv\u001B[0m #1563 > 00:01:22 \u001B[94md\u001B[39m #13 runtime.execute_with_options / { file_name = pwsh; arguments = [\"-c\", \"$counter = 1; $path = 'c:/home/git/polyglot/lib/math/math.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\\\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path\"]; options = { command = pwsh -c \"$counter = 1; $path = 'c:/home/git/polyglot/lib/math/math.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path\"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }\n",
+ "00:01:24 \u001B[90mv\u001B[0m #1564 > 00:01:22 \u001B[90mv\u001B[39m #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 }\n",
+ "00:01:24 \u001B[90mv\u001B[0m #1565 > 00:01:22 \u001B[94md\u001B[39m #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 }\n",
+ "00:01:24 \u001B[90mv\u001B[0m #1566 > 00:01:22 \u001B[94md\u001B[39m #16 spiral.run / dib / { exit_code = 0; result_length = 77772 }\n",
+ "00:01:24 \u001B[94md\u001B[0m #1567 runtime.execute_with_options_async / { exit_code = 0; output_length = 83371 }\n",
+ "00:01:24 \u001B[94md\u001B[0m #1 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path math.dib --retries 1\n",
"00:00:00 \u001B[94md\u001B[0m #1 writeDibCode / output: Spi / path: math.dib\n",
"00:00:00 \u001B[94md\u001B[0m #2 parseDibCode / output: Spi / file: math.dib\n",
"00:00:00 \u001B[90mv\u001B[0m #1 async.run_with_timeout_async / { timeout = 180 }\n",
- "00:00:00 \u001B[94md\u001B[0m #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0\n",
- " \"\"C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral Language 2\\artifacts\\bin\\The Spiral Language 2\\release\\Spiral.dll\" --port 13805 --default-int i32 --default-float f64\"; options = { command = dotnet \"C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral Language 2\\artifacts\\bin\\The Spiral Language 2\\release\\Spiral.dll\" --port 13805 --default-int i32 --default-float f64; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = Some ; stdin = None; trace = true; working_directory = Some \"C:\\home\\git\\polyglot\" } }\n",
- "00:00:00 \u001B[90mv\u001B[0m #2 > 00:00:00 \u001B[94md\u001B[0m #1 pwd: C:\\home\\git\\polyglot\n",
- "00:00:00 \u001B[90mv\u001B[0m #3 > 00:00:00 \u001B[94md\u001B[0m #2 dllPath: C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral Language 2\\artifacts\\bin\\The Spiral Language 2\\release\n",
- "00:00:00 \u001B[90mv\u001B[0m #4 > 00:00:00 \u001B[94md\u001B[0m #3 targetDir: C:\\home\\git\\polyglot\\target/spiral_Eval\n",
- "00:00:01 \u001B[90mv\u001B[0m #2 async.run_with_timeout_async / { timeout = 100 }\n",
- "00:00:01 \u001B[90mv\u001B[0m #3 async.run_with_timeout_async / { timeout = 100 }\n",
- "00:00:01 \u001B[90mv\u001B[0m #5 > Starting the Spiral Server. It is bound to: http://localhost:13805\n",
- "00:00:01 \u001B[90mv\u001B[0m #4 async.run_with_timeout_async / { timeout = 100 }\n",
- "00:00:01 \u001B[90mv\u001B[0m #1 Supervisor.sendJson / port: 13805 / json: {\"Ping\":true} / result:\n",
- "00:00:01 \u001B[90mv\u001B[0m #2 Supervisor.awaitCompiler / Ping / result: 'Some null' / port: 13805 / retry: 1\n",
- "00:00:01 \u001B[90mv\u001B[0m #6 > Server bound to: http://localhost:13805\n",
- "00:00:01 \u001B[90mv\u001B[0m #5 async.run_with_timeout_async / { timeout = 180 }\n",
- "00:00:02 \u001B[94md\u001B[0m #3 Supervisor.buildFile / takeWhileInclusive / path: math.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent:\n",
- "\n",
- "00:00:02 \u001B[94md\u001B[0m #4 Supervisor.buildFile / AsyncSeq.scan / path: math.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "\n",
- "00:00:02 \u001B[94md\u001B[0m #5 Supervisor.buildFile / takeWhileInclusive / path: math.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent:\n",
- "\n",
- "00:00:02 \u001B[90mv\u001B[0m #6 Supervisor.sendJson / port: 13805 / json: {\"FileOpen\":{\"spiText\":\"/// # math\\nopen testing\\nopen rust.rust_operators\\nopen rust\\n\\n/// ## comp...027let main args = !main args\\u0027 : ()\\n\",\"uri\":\"file:///c:/home/git/polyglot/lib/math/math.spi\"}} / result:\n",
- "00:00:02 \u001B[90mv\u001B[0m #7 Supervisor.sendJson / port: 13805 / json: {\"BuildFile\":{\"backend\":\"Fsharp\",\"uri\":\"file:///c:/home/git/polyglot/lib/math/math.spi\"}} / result:\n",
- "00:00:02 \u001B[94md\u001B[0m #8 Supervisor.buildFile / AsyncSeq.scan / path: math.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "\n",
- "00:00:02 \u001B[94md\u001B[0m #9 Supervisor.buildFile / takeWhileInclusive / path: math.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent:\n",
- "\n",
- "00:00:03 \u001B[94md\u001B[0m #10 Supervisor.buildFile / AsyncSeq.scan / path: math.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
+ "00:00:01 \u001B[90mv\u001B[0m #2 async.run_with_timeout_async / { timeout = 180 }\n",
+ "00:00:01 \u001B[94md\u001B[0m #1 Supervisor.buildFile / takeWhileInclusive / path: math.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent:\n",
"\n",
- "00:00:03 \u001B[94md\u001B[0m #11 Supervisor.buildFile / takeWhileInclusive / path: math.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent:\n",
+ "00:00:01 \u001B[94md\u001B[0m #2 Supervisor.buildFile / AsyncSeq.scan / path: math.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
"\n",
- "00:00:03 \u001B[94md\u001B[0m #12 Supervisor.buildFile / AsyncSeq.scan / path: math.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
+ "00:00:01 \u001B[94md\u001B[0m #3 Supervisor.buildFile / takeWhileInclusive / path: math.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent:\n",
"\n",
- "00:00:03 \u001B[94md\u001B[0m #13 Supervisor.buildFile / takeWhileInclusive / path: math.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent:\n",
+ "00:00:01 \u001B[90mv\u001B[0m #4 Supervisor.sendJson / port: 13805 / json: {\"FileOpen\":{\"spiText\":\"/// # math\\nopen testing\\nopen rust.rust_operators\\nopen rust\\n\\n/// ## comp...027let main args = !main args\\u0027 : ()\\n\",\"uri\":\"file:///c:/home/git/polyglot/lib/math/math.spi\"}} / result:\n",
+ "00:00:01 \u001B[90mv\u001B[0m #5 Supervisor.sendJson / port: 13805 / json: {\"BuildFile\":{\"backend\":\"Fsharp\",\"uri\":\"file:///c:/home/git/polyglot/lib/math/math.spi\"}} / result:\n",
+ "00:00:01 \u001B[94md\u001B[0m #6 Supervisor.buildFile / AsyncSeq.scan / path: math.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
"\n",
- "00:00:04 \u001B[94md\u001B[0m #14 Supervisor.buildFile / AsyncSeq.scan / path: math.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
+ "00:00:01 \u001B[94md\u001B[0m #7 Supervisor.buildFile / takeWhileInclusive / path: math.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent:\n",
"\n",
- "00:00:04 \u001B[94md\u001B[0m #15 Supervisor.buildFile / takeWhileInclusive / path: math.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent:\n",
- "\n",
- "00:00:04 \u001B[94md\u001B[0m #16 Supervisor.buildFile / AsyncSeq.scan / path: math.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "\n",
- "00:00:04 \u001B[94md\u001B[0m #17 Supervisor.buildFile / takeWhileInclusive / path: math.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent:\n",
- "\n",
- "00:00:05 \u001B[94md\u001B[0m #18 Supervisor.buildFile / AsyncSeq.scan / path: math.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "\n",
- "00:00:05 \u001B[94md\u001B[0m #19 Supervisor.buildFile / takeWhileInclusive / path: math.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent:\n",
- "\n",
- "00:00:05 \u001B[94md\u001B[0m #20 Supervisor.buildFile / AsyncSeq.scan / path: math.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "\n",
- "00:00:05 \u001B[94md\u001B[0m #21 Supervisor.buildFile / takeWhileInclusive / path: math.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent:\n",
- "\n",
- "00:00:06 \u001B[94md\u001B[0m #22 Supervisor.buildFile / AsyncSeq.scan / path: math.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
- "\n",
- "00:00:06 \u001B[94md\u001B[0m #23 Supervisor.buildFile / takeWhileInclusive / path: math.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent:\n",
- "\n",
- "00:00:06 \u001B[94md\u001B[0m #24 Supervisor.buildFile / AsyncSeq.scan / path: math.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
+ "00:00:01 \u001B[94md\u001B[0m #8 Supervisor.buildFile / AsyncSeq.scan / path: math.spi / errors: [] / outputContentResult: / typeErrorCount: 0 / retry: 0 / error: / outputContent:\n",
"#if FABLE_COMPILER\n",
"[]\n",
"#endif\n",
@@ -17467,7 +15214,7 @@
"let main args = v1 args\n",
"()\n",
"\n",
- "00:00:06 \u001B[94md\u001B[0m #25 Supervisor.buildFile / takeWhileInclusive / path: math.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent:\n",
+ "00:00:01 \u001B[94md\u001B[0m #9 Supervisor.buildFile / takeWhileInclusive / path: math.spi / errors: [] / typeErrorCount: 0 / retry: 0 / outputContent:\n",
"#if FABLE_COMPILER\n",
"[]\n",
"#endif\n",
@@ -17522,110 +15269,135 @@
"let main args = v1 args\n",
"()\n",
"\n",
- "00:00:06 \u001B[94md\u001B[0m #26 FileSystem.watchWithFilter / Disposing watch stream / filter: FileName, LastWrite\n",
- "00:00:06 \u001B[90mv\u001B[0m #6 async.run_with_timeout_async / { timeout = 100 }\n",
- "00:00:00 \u001B[94md\u001B[0m #1 persistCodeProject / packages: [Fable.Core] / modules: [lib/spiral/common.fsx; lib/spiral/sm.fsx; lib/spiral/crypto.fsx; ... ] / name: math / hash: / code.Length: 217410\n",
- "00:00:00 \u001B[94md\u001B[0m #2 buildProject / fullPath: C:\\home\\git\\polyglot\\target\\Builder\\math\\math.fsproj\n",
+ "00:00:01 \u001B[94md\u001B[0m #10 FileSystem.watchWithFilter / Disposing watch stream / filter: FileName, LastWrite\n",
+ "00:00:00 \u001B[94md\u001B[0m #1 persistCodeProject / packages: [Fable.Core] / modules: [deps/spiral/lib/spiral/common.fsx; deps/spiral/lib/spiral/sm.fsx; deps/spiral/lib/spiral/crypto.fsx; ... ] / name: math / hash: / code.Length: 217410\n",
+ "00:00:00 \u001B[94md\u001B[0m #2 buildProject / fullPath: c:\\home\\git\\polyglot\\target\\Builder\\math\\math.fsproj\n",
"00:00:00 \u001B[94md\u001B[0m #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0\n",
- " \"publish \"C:\\home\\git\\polyglot\\target/Builder\\math\\math.fsproj\" --configuration Release --output \"C:\\home\\git\\polyglot\\lib\\math\\dist\" --runtime linux-x64\"; options = { command = dotnet publish \"C:\\home\\git\\polyglot\\target/Builder\\math\\math.fsproj\" --configuration Release --output \"C:\\home\\git\\polyglot\\lib\\math\\dist\" --runtime linux-x64; cancellation_token = None; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = Some \"C:\\home\\git\\polyglot\\target\\Builder\\math\" } }\n",
+ " \"publish \"c:/home/git\\polyglot\\target/Builder\\math\\math.fsproj\" --configuration Release --output \"C:\\home\\git\\polyglot\\lib\\math\\dist\" --runtime linux-x64\"; options = { command = dotnet publish \"c:/home/git\\polyglot\\target/Builder\\math\\math.fsproj\" --configuration Release --output \"C:\\home\\git\\polyglot\\lib\\math\\dist\" --runtime linux-x64; cancellation_token = None; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = Some \"c:\\home\\git\\polyglot\\target\\Builder\\math\" } }\n",
"00:00:01 \u001B[90mv\u001B[0m #2 > Determining projects to restore...\n",
"00:00:01 \u001B[90mv\u001B[0m #3 > Paket version 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0\n",
"00:00:01 \u001B[90mv\u001B[0m #4 > The last full restore is still up to date. Nothing left to do.\n",
"00:00:01 \u001B[90mv\u001B[0m #5 > Total time taken: 0 milliseconds\n",
- "00:00:02 \u001B[90mv\u001B[0m #6 > Restored C:\\home\\git\\polyglot\\target\\Builder\\math\\math.fsproj (in 351 ms).\n",
- "00:00:14 \u001B[90mv\u001B[0m #7 > math -> C:\\home\\git\\polyglot\\target\\Builder\\math\\bin\\Release\\net9.0\\linux-x64\\math.dll\n",
+ "00:00:02 \u001B[90mv\u001B[0m #6 > Restored c:\\home\\git\\polyglot\\target\\Builder\\math\\math.fsproj (in 922 ms).\n",
+ "00:00:14 \u001B[90mv\u001B[0m #7 > math -> c:\\home\\git\\polyglot\\target\\Builder\\math\\bin\\Release\\net9.0\\linux-x64\\math.dll\n",
"00:00:15 \u001B[90mv\u001B[0m #8 > math -> C:\\home\\git\\polyglot\\lib\\math\\dist\\\n",
"00:00:15 \u001B[90mv\u001B[0m #9 >\n",
"00:00:15 \u001B[90mv\u001B[0m #10 > Workload updates are available. Run `dotnet workload list` for more information.\n",
- "00:00:15 \u001B[94md\u001B[0m #11 runtime.execute_with_options_async / { exit_code = 0; output_length = 493 }\n",
- "00:00:15 \u001B[94md\u001B[0m #12 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0\n",
- " \"publish \"C:\\home\\git\\polyglot\\target/Builder\\math\\math.fsproj\" --configuration Release --output \"C:\\home\\git\\polyglot\\lib\\math\\dist\" --runtime win-x64\"; options = { command = dotnet publish \"C:\\home\\git\\polyglot\\target/Builder\\math\\math.fsproj\" --configuration Release --output \"C:\\home\\git\\polyglot\\lib\\math\\dist\" --runtime win-x64; cancellation_token = None; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = Some \"C:\\home\\git\\polyglot\\target\\Builder\\math\" } }\n",
- "00:00:15 \u001B[90mv\u001B[0m #13 > Determining projects to restore...\n",
- "00:00:16 \u001B[90mv\u001B[0m #14 > Paket version 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0\n",
- "00:00:16 \u001B[90mv\u001B[0m #15 > The last full restore is still up to date. Nothing left to do.\n",
- "00:00:16 \u001B[90mv\u001B[0m #16 > Total time taken: 0 milliseconds\n",
- "00:00:17 \u001B[90mv\u001B[0m #17 > Restored C:\\home\\git\\polyglot\\target\\Builder\\math\\math.fsproj (in 340 ms).\n",
- "00:00:28 \u001B[90mv\u001B[0m #18 > math -> C:\\home\\git\\polyglot\\target\\Builder\\math\\bin\\Release\\net9.0\\win-x64\\math.dll\n",
- "00:00:29 \u001B[90mv\u001B[0m #19 > math -> C:\\home\\git\\polyglot\\lib\\math\\dist\\\n",
- "00:00:29 \u001B[90mv\u001B[0m #20 >\n",
- "00:00:29 \u001B[90mv\u001B[0m #21 > Workload updates are available. Run `dotnet workload list` for more information.\n",
- "00:00:29 \u001B[94md\u001B[0m #22 runtime.execute_with_options_async / { exit_code = 0; output_length = 491 }\n",
- "polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\\ / End: home/git/polyglot/lib/spiral/../../target/Builder/math\n",
- "polyglot/lib/spiral/lib.ps1/GetTargetDir / targetDir: C:\\home\\git\\polyglot\\lib\\spiral\\..\\..\\target\\Builder\\math\n",
- "polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\\ / End: home/git/polyglot/lib/spiral/../..\n",
- "polyglot/lib/spiral/lib.ps1/BuildFable / TargetDir: C:\\home\\git\\polyglot\\lib\\spiral\\..\\..\\target\\Builder\\math / ProjectName: math / Language: rs / Runtime: / root: C:\\home\\git\\polyglot\\lib\\spiral\\..\\..\n",
- "Fable 5.0.0-alpha.2: F# to Rust compiler (status: alpha)\n",
- "\n",
- "Thanks to the contributor! @davedawkins\n",
+ "00:00:16 \u001B[94md\u001B[0m #11 runtime.execute_with_options_async / { exit_code = 0; output_length = 493 }\n",
+ "00:00:16 \u001B[94md\u001B[0m #12 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0\n",
+ " \"publish \"c:/home/git\\polyglot\\target/Builder\\math\\math.fsproj\" --configuration Release --output \"C:\\home\\git\\polyglot\\lib\\math\\dist\" --runtime win-x64\"; options = { command = dotnet publish \"c:/home/git\\polyglot\\target/Builder\\math\\math.fsproj\" --configuration Release --output \"C:\\home\\git\\polyglot\\lib\\math\\dist\" --runtime win-x64; cancellation_token = None; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = Some \"c:\\home\\git\\polyglot\\target\\Builder\\math\" } }\n",
+ "00:00:17 \u001B[90mv\u001B[0m #13 > Determining projects to restore...\n",
+ "00:00:17 \u001B[90mv\u001B[0m #14 > Paket version 9.0.2+a9b12aaeb8d8d5e47a415a3442b7920ed04e98e0\n",
+ "00:00:17 \u001B[90mv\u001B[0m #15 > The last full restore is still up to date. Nothing left to do.\n",
+ "00:00:17 \u001B[90mv\u001B[0m #16 > Total time taken: 0 milliseconds\n",
+ "00:00:18 \u001B[90mv\u001B[0m #17 > Restored c:\\home\\git\\polyglot\\target\\Builder\\math\\math.fsproj (in 348 ms).\n",
+ "00:00:31 \u001B[90mv\u001B[0m #18 > math -> c:\\home\\git\\polyglot\\target\\Builder\\math\\bin\\Release\\net9.0\\win-x64\\math.dll\n",
+ "00:00:32 \u001B[90mv\u001B[0m #19 > math -> C:\\home\\git\\polyglot\\lib\\math\\dist\\\n",
+ "00:00:32 \u001B[90mv\u001B[0m #20 >\n",
+ "00:00:32 \u001B[90mv\u001B[0m #21 > Workload updates are available. Run `dotnet workload list` for more information.\n",
+ "00:00:32 \u001B[94md\u001B[0m #22 runtime.execute_with_options_async / { exit_code = 0; output_length = 491 }\n",
+ "polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\\ / End: home/git/polyglot/target/Builder/math\n",
+ "spiral/lib/spiral/lib.ps1/GetTargetDir / targetDir: C:\\home\\git\\polyglot\\target\\Builder\\math\n",
+ "polyglot/scripts/core.ps1/ResolveLink #4 / Path: C:\\home\\git\\polyglot\\deps\\spiral\\lib\\spiral/../../deps/polyglot / parent_target: / path_target: C:\\home\\git\\polyglot / parent: C:\\home\\git\\polyglot\\deps\\spiral\\lib\\spiral\\..\\..\\deps / End: polyglot\n",
+ "spiral/lib/spiral/lib.ps1/BuildFable / TargetDir: C:\\home\\git\\polyglot\\target\\Builder\\math / ProjectName: math / Language: rs / Runtime: / root: C:\\home\\git\\polyglot\n",
+ "Fable 5.0.0-alpha.5: F# to Rust compiler (status: alpha)\n",
+ "\n",
+ "Thanks to the contributor! @SCullman\n",
"Stand with Ukraine! https://standwithukraine.com.ua/\n",
"\n",
"Parsing target\\Builder\\math\\math.fsproj...\n",
"Retrieving project options from cache, in case of issues run `dotnet fable clean` or try `--noCache` option.\n",
- "Project and references (14 source files) parsed in 172ms\n",
+ "Project and references (14 source files) parsed in 190ms\n",
"\n",
"Started Fable compilation...\n",
"\n",
- "Fable compilation finished in 9268ms\n",
- "\n",
- ".\\lib\\spiral\\async_.fsx(250,0): (250,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!\n",
- ".\\lib\\spiral\\threading.fsx(139,0): (139,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!\n",
- ".\\lib\\spiral\\common.fsx(2117,0): (2117,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!\n",
- ".\\lib\\spiral\\sm.fsx(556,0): (556,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!\n",
- ".\\lib\\spiral\\crypto.fsx(2344,0): (2344,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!\n",
- ".\\lib\\spiral\\date_time.fsx(2527,0): (2527,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!\n",
- ".\\lib\\spiral\\platform.fsx(120,0): (120,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!\n",
- ".\\lib\\spiral\\networking.fsx(4935,0): (4935,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!\n",
- ".\\lib\\spiral\\trace.fsx(2150,0): (2150,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!\n",
- ".\\lib\\spiral\\runtime.fsx(7101,0): (7101,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!\n",
- ".\\lib\\spiral\\file_system.fsx(17438,0): (17438,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!\n",
+ "Fable compilation finished in 9989ms\n",
+ "\n",
+ ".\\deps\\spiral\\lib\\spiral\\async_.fsx(250,0): (250,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!\n",
+ ".\\deps\\spiral\\lib\\spiral\\sm.fsx(559,0): (559,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!\n",
+ ".\\deps\\spiral\\lib\\spiral\\common.fsx(2117,0): (2117,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!\n",
+ ".\\deps\\spiral\\lib\\spiral\\threading.fsx(139,0): (139,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!\n",
+ ".\\deps\\spiral\\lib\\spiral\\crypto.fsx(2344,0): (2344,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!\n",
+ ".\\deps\\spiral\\lib\\spiral\\date_time.fsx(2545,0): (2545,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!\n",
+ ".\\deps\\spiral\\lib\\spiral\\platform.fsx(120,0): (120,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!\n",
+ ".\\deps\\spiral\\lib\\spiral\\networking.fsx(4935,0): (4935,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!\n",
+ ".\\deps\\spiral\\lib\\spiral\\trace.fsx(2150,0): (2150,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!\n",
+ ".\\deps\\spiral\\lib\\spiral\\runtime.fsx(7101,0): (7101,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!\n",
+ ".\\deps\\spiral\\lib\\spiral\\file_system.fsx(17933,0): (17933,2) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!\n",
".\\target\\Builder\\math\\math.fs(46,0): (48,3) warning FABLE: For Rust, support for F# static and module do bindings is disabled by default. It can be enabled with the 'static_do_bindings' feature. Use at your own risk!\n",
- "polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\\ / End: home/git/polyglot/lib/spiral/../../lib/fsharp/Common.rs\n",
- "polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\\home\\git\\polyglot\\lib\\spiral\\..\\..\\target\\Builder\\math/target/rs/lib/fsharp/Common.rs / to: C:\\home\\git\\polyglot\\lib\\spiral\\..\\..\\lib\\fsharp\\Common.rs\n",
- "polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/common.rs\n",
- "polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\\home\\git\\polyglot\\lib\\spiral\\..\\..\\target\\Builder\\math/target/rs/lib/spiral/common.rs / to: C:\\home\\git\\polyglot\\lib\\spiral\\..\\..\\lib\\spiral\\common.rs\n",
- "polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/date_time.rs\n",
- "polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\\home\\git\\polyglot\\lib\\spiral\\..\\..\\target\\Builder\\math/target/rs/lib/spiral/date_time.rs / to: C:\\home\\git\\polyglot\\lib\\spiral\\..\\..\\lib\\spiral\\date_time.rs\n",
- "polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/async_.rs\n",
- "polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\\home\\git\\polyglot\\lib\\spiral\\..\\..\\target\\Builder\\math/target/rs/lib/spiral/async_.rs / to: C:\\home\\git\\polyglot\\lib\\spiral\\..\\..\\lib\\spiral\\async_.rs\n",
- "polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/platform.rs\n",
- "polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\\home\\git\\polyglot\\lib\\spiral\\..\\..\\target\\Builder\\math/target/rs/lib/spiral/platform.rs / to: C:\\home\\git\\polyglot\\lib\\spiral\\..\\..\\lib\\spiral\\platform.rs\n",
- "polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/runtime.rs\n",
- "polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\\home\\git\\polyglot\\lib\\spiral\\..\\..\\target\\Builder\\math/target/rs/lib/spiral/runtime.rs / to: C:\\home\\git\\polyglot\\lib\\spiral\\..\\..\\lib\\spiral\\runtime.rs\n",
- "polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/threading.rs\n",
- "polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\\home\\git\\polyglot\\lib\\spiral\\..\\..\\target\\Builder\\math/target/rs/lib/spiral/threading.rs / to: C:\\home\\git\\polyglot\\lib\\spiral\\..\\..\\lib\\spiral\\threading.rs\n",
- "polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/networking.rs\n",
- "polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\\home\\git\\polyglot\\lib\\spiral\\..\\..\\target\\Builder\\math/target/rs/lib/spiral/networking.rs / to: C:\\home\\git\\polyglot\\lib\\spiral\\..\\..\\lib\\spiral\\networking.rs\n",
- "polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/file_system.rs\n",
- "polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\\home\\git\\polyglot\\lib\\spiral\\..\\..\\target\\Builder\\math/target/rs/lib/spiral/file_system.rs / to: C:\\home\\git\\polyglot\\lib\\spiral\\..\\..\\lib\\spiral\\file_system.rs\n",
- "polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/sm.rs\n",
- "polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\\home\\git\\polyglot\\lib\\spiral\\..\\..\\target\\Builder\\math/target/rs/lib/spiral/sm.rs / to: C:\\home\\git\\polyglot\\lib\\spiral\\..\\..\\lib\\spiral\\sm.rs\n",
- "polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/crypto.rs\n",
- "polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\\home\\git\\polyglot\\lib\\spiral\\..\\..\\target\\Builder\\math/target/rs/lib/spiral/crypto.rs / to: C:\\home\\git\\polyglot\\lib\\spiral\\..\\..\\lib\\spiral\\crypto.rs\n",
- "polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/trace.rs\n",
- "polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\\home\\git\\polyglot\\lib\\spiral\\..\\..\\target\\Builder\\math/target/rs/lib/spiral/trace.rs / to: C:\\home\\git\\polyglot\\lib\\spiral\\..\\..\\lib\\spiral\\trace.rs\n",
- "polyglot/scripts/core.ps1/ResolveLink / parent: / Path: C:\\ / End: home/git/polyglot/lib/spiral/../../lib/spiral/lib.rs\n",
- "polyglot/lib/spiral/lib.ps1/CopyItem / from: C:\\home\\git\\polyglot\\lib\\spiral\\..\\..\\target\\Builder\\math/target/rs/lib/spiral/lib.rs / to: C:\\home\\git\\polyglot\\lib\\spiral\\..\\..\\lib\\spiral\\lib.rs\n",
- "polyglot/lib/math/build.ps1 / path: C:\\home\\git\\polyglot\\lib\\spiral\\..\\..\\target\\Builder\\math/target/rs/math.rs\n",
+ "polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\\ / End: home/git/polyglot/target/Builder/math/target/rs/deps/spiral/lib/fsharp/Common.rs\n",
+ "polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\\ / End: home/git/polyglot/lib/fsharp/Common.rs\n",
+ "spiral/lib/spiral/lib.ps1/CopyItem / from: C:\\home\\git\\polyglot\\target\\Builder\\math/target/rs/lib/fsharp/Common.rs / to: C:\\home\\git\\polyglot\\lib\\fsharp\\Common.rs\n",
+ "polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\\ / End: home/git/spiral/lib/spiral/common.rs\n",
+ "spiral/lib/spiral/lib.ps1/CopyItem / from: C:\\home\\git\\polyglot\\target\\Builder\\math/target/rs/deps/spiral/lib/spiral/common.rs / to: C:\\home\\git\\spiral\\lib\\spiral\\common.rs\n",
+ "polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\\ / End: home/git/spiral/lib/spiral/date_time.rs\n",
+ "spiral/lib/spiral/lib.ps1/CopyItem / from: C:\\home\\git\\polyglot\\target\\Builder\\math/target/rs/deps/spiral/lib/spiral/date_time.rs / to: C:\\home\\git\\spiral\\lib\\spiral\\date_time.rs\n",
+ "polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\\ / End: home/git/spiral/lib/spiral/async_.rs\n",
+ "spiral/lib/spiral/lib.ps1/CopyItem / from: C:\\home\\git\\polyglot\\target\\Builder\\math/target/rs/deps/spiral/lib/spiral/async_.rs / to: C:\\home\\git\\spiral\\lib\\spiral\\async_.rs\n",
+ "polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\\ / End: home/git/spiral/lib/spiral/platform.rs\n",
+ "spiral/lib/spiral/lib.ps1/CopyItem / from: C:\\home\\git\\polyglot\\target\\Builder\\math/target/rs/deps/spiral/lib/spiral/platform.rs / to: C:\\home\\git\\spiral\\lib\\spiral\\platform.rs\n",
+ "polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\\ / End: home/git/spiral/lib/spiral/runtime.rs\n",
+ "spiral/lib/spiral/lib.ps1/CopyItem / from: C:\\home\\git\\polyglot\\target\\Builder\\math/target/rs/deps/spiral/lib/spiral/runtime.rs / to: C:\\home\\git\\spiral\\lib\\spiral\\runtime.rs\n",
+ "polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\\ / End: home/git/spiral/lib/spiral/threading.rs\n",
+ "spiral/lib/spiral/lib.ps1/CopyItem / from: C:\\home\\git\\polyglot\\target\\Builder\\math/target/rs/deps/spiral/lib/spiral/threading.rs / to: C:\\home\\git\\spiral\\lib\\spiral\\threading.rs\n",
+ "polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\\ / End: home/git/spiral/lib/spiral/networking.rs\n",
+ "spiral/lib/spiral/lib.ps1/CopyItem / from: C:\\home\\git\\polyglot\\target\\Builder\\math/target/rs/deps/spiral/lib/spiral/networking.rs / to: C:\\home\\git\\spiral\\lib\\spiral\\networking.rs\n",
+ "polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\\ / End: home/git/spiral/lib/spiral/file_system.rs\n",
+ "spiral/lib/spiral/lib.ps1/CopyItem / from: C:\\home\\git\\polyglot\\target\\Builder\\math/target/rs/deps/spiral/lib/spiral/file_system.rs / to: C:\\home\\git\\spiral\\lib\\spiral\\file_system.rs\n",
+ "polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\\ / End: home/git/spiral/lib/spiral/sm.rs\n",
+ "spiral/lib/spiral/lib.ps1/CopyItem / from: C:\\home\\git\\polyglot\\target\\Builder\\math/target/rs/deps/spiral/lib/spiral/sm.rs / to: C:\\home\\git\\spiral\\lib\\spiral\\sm.rs\n",
+ "polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\\ / End: home/git/spiral/lib/spiral/crypto.rs\n",
+ "spiral/lib/spiral/lib.ps1/CopyItem / from: C:\\home\\git\\polyglot\\target\\Builder\\math/target/rs/deps/spiral/lib/spiral/crypto.rs / to: C:\\home\\git\\spiral\\lib\\spiral\\crypto.rs\n",
+ "polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\\ / End: home/git/spiral/lib/spiral/trace.rs\n",
+ "spiral/lib/spiral/lib.ps1/CopyItem / from: C:\\home\\git\\polyglot\\target\\Builder\\math/target/rs/deps/spiral/lib/spiral/trace.rs / to: C:\\home\\git\\spiral\\lib\\spiral\\trace.rs\n",
+ "polyglot/scripts/core.ps1/ResolveLink #2 / parent: / Path: C:\\ / End: home/git/spiral/lib/spiral/lib.rs\n",
+ "spiral/lib/spiral/lib.ps1/CopyItem / from: C:\\home\\git\\polyglot\\target\\Builder\\math/target/rs/deps/spiral/lib/spiral/lib.rs / to: C:\\home\\git\\spiral\\lib\\spiral\\lib.rs\n",
+ "polyglot/lib/math/build.ps1 / path: C:\\home\\git\\polyglot\\target\\Builder\\math/target/rs/math.rs\n",
+ "\u001B[31;1m Compiling proc-macro2 v1.0.92\u001B[0m\n",
+ "\u001B[31;1m Compiling unicode-ident v1.0.14\u001B[0m\n",
+ "\u001B[31;1m Compiling once_cell v1.20.2\u001B[0m\n",
+ "\u001B[31;1m Compiling typenum v1.17.0\u001B[0m\n",
+ "\u001B[31;1m Compiling heck v0.5.0\u001B[0m\n",
"\u001B[31;1m Compiling fable_library_rust v0.1.0 (C:\\home\\git\\polyglot\\lib\\rust\\fable\\fable_modules\\fable-library-rust)\u001B[0m\n",
+ "\u001B[31;1m Compiling pyo3-build-config v0.23.3\u001B[0m\n",
+ "\u001B[31;1m Compiling quote v1.0.37\u001B[0m\n",
+ "\u001B[31;1m Compiling pyo3-macros-backend v0.23.3\u001B[0m\n",
+ "\u001B[31;1m Compiling pyo3-ffi v0.23.3\u001B[0m\n",
+ "\u001B[31;1m Compiling pyo3 v0.23.3\u001B[0m\n",
+ "\u001B[31;1m Compiling syn v2.0.90\u001B[0m\n",
+ "\u001B[31;1m Compiling hybrid-array v0.2.3\u001B[0m\n",
+ "\u001B[31;1m Compiling crypto-common v0.2.0-rc.1\u001B[0m\n",
+ "\u001B[31;1m Compiling block-buffer v0.11.0-rc.3\u001B[0m\n",
+ "\u001B[31;1m Compiling digest v0.11.0-pre.9\u001B[0m\n",
+ "\u001B[31;1m Compiling sha2 v0.11.0-pre.4\u001B[0m\n",
+ "\u001B[31;1m Compiling zerocopy-derive v0.7.35\u001B[0m\n",
+ "\u001B[31;1m Compiling zerocopy v0.7.35\u001B[0m\n",
+ "\u001B[31;1m Compiling ppv-lite86 v0.2.20\u001B[0m\n",
+ "\u001B[31;1m Compiling rand_chacha v0.3.1\u001B[0m\n",
+ "\u001B[31;1m Compiling rand v0.8.5\u001B[0m\n",
+ "\u001B[31;1m Compiling pyo3-macros v0.23.3\u001B[0m\n",
+ "\u001B[31;1m Compiling rand_distr v0.4.3\u001B[0m\n",
+ "\u001B[31;1m Compiling nalgebra v0.33.2\u001B[0m\n",
+ "\u001B[31;1m Compiling statrs v0.18.0\u001B[0m\n",
"\u001B[31;1m Compiling math v0.0.1 (C:\\home\\git\\polyglot\\lib\\math)\u001B[0m\n",
- "\u001B[31;1m Finished `release` profile [optimized] target(s) in 20.19s\u001B[0m\n",
+ "\u001B[31;1m Finished `release` profile [optimized] target(s) in 41.93s\u001B[0m\n",
"\u001B[31;1m Running unittests math.rs (C:\\home\\git\\polyglot\\workspace\\target\\release\\deps\\math-23d745d94029d129.exe)\u001B[0m\n",
"\n",
"running 12 tests\n",
- "test module_b7a9935b::Math::test_behavior_near_origin___ ... ok\n",
- "test module_b7a9935b::Math::test_real_part_greater_than_one___ ... ok\n",
- "test module_b7a9935b::Math::test_zeta_at_1___ ... ok\n",
- "test module_b7a9935b::Math::test_trivial_zero_at_negative_even___ ... ok\n",
- "test module_b7a9935b::Math::test_zeta_at_2_minus2 ... ok\n",
- "test module_b7a9935b::Math::test_zeta_at_known_values_ ... ok\n",
- "test module_b7a9935b::Math::test_imaginary_axis ... ok\n",
- "test module_b7a9935b::Math::test_non_trivial_zero___ ... ok\n",
- "test module_b7a9935b::Math::test_euler_product_formula ... ok\n",
- "test module_b7a9935b::Math::test_critical_strip ... ok\n",
- "test module_b7a9935b::Math::test_symmetry_across_real_axis___ ... ok\n",
- "test module_b7a9935b::Math::test_reflection_formula_for_specific_value ... ok\n",
- "\n",
- "test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.31s\n",
+ "test module_728458a3::Math::test_behavior_near_origin___ ... ok\n",
+ "test module_728458a3::Math::test_reflection_formula_for_specific_value ... ok\n",
+ "test module_728458a3::Math::test_symmetry_across_real_axis___ ... ok\n",
+ "test module_728458a3::Math::test_trivial_zero_at_negative_even___ ... ok\n",
+ "test module_728458a3::Math::test_zeta_at_1___ ... ok\n",
+ "test module_728458a3::Math::test_zeta_at_2_minus2 ... ok\n",
+ "test module_728458a3::Math::test_imaginary_axis ... ok\n",
+ "test module_728458a3::Math::test_critical_strip ... ok\n",
+ "test module_728458a3::Math::test_zeta_at_known_values_ ... ok\n",
+ "test module_728458a3::Math::test_non_trivial_zero___ ... ok\n",
+ "test module_728458a3::Math::test_real_part_greater_than_one___ ... ok\n",
+ "test module_728458a3::Math::test_euler_product_formula ... ok\n",
+ "\n",
+ "test result: ok. 12 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.33s\n",
"\n"
]
}
@@ -17650,10 +15422,16 @@
"name": "stdout",
"output_type": "stream",
"text": [
+ "\u001B[31;1m Compiling typenum v1.17.0\u001B[0m\n",
"\u001B[31;1m Compiling fable_library_rust v0.1.0 (C:\\home\\git\\polyglot\\lib\\rust\\fable\\fable_modules\\fable-library-rust)\u001B[0m\n",
+ "\u001B[31;1m Compiling hybrid-array v0.2.3\u001B[0m\n",
+ "\u001B[31;1m Compiling crypto-common v0.2.0-rc.1\u001B[0m\n",
+ "\u001B[31;1m Compiling block-buffer v0.11.0-rc.3\u001B[0m\n",
+ "\u001B[31;1m Compiling digest v0.11.0-pre.9\u001B[0m\n",
+ "\u001B[31;1m Compiling sha2 v0.11.0-pre.4\u001B[0m\n",
"\u001B[31;1m Compiling plot v0.0.1 (C:\\home\\git\\polyglot\\apps\\plot)\u001B[0m\n",
"\u001B[31;1mwarning: unnecessary parentheses around function argument\u001B[0m\n",
- "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\lib\\spiral\\.\\networking.rs:533:33\u001B[0m\n",
+ "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\deps\\spiral\\lib\\spiral\\.\\networking.rs:533:33\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m533 | let v3: string = append((v0_1.l0.get().clone()), (v1_1));\u001B[0m\n",
"\u001B[31;1m | ^ ^\u001B[0m\n",
@@ -17666,7 +15444,7 @@
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m\u001B[0m\n",
"\u001B[31;1mwarning: unnecessary parentheses around function argument\u001B[0m\n",
- "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\lib\\spiral\\.\\networking.rs:533:58\u001B[0m\n",
+ "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\deps\\spiral\\lib\\spiral\\.\\networking.rs:533:58\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m533 | let v3: string = append((v0_1.l0.get().clone()), (v1_1));\u001B[0m\n",
"\u001B[31;1m | ^ ^\u001B[0m\n",
@@ -17678,7 +15456,7 @@
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m\u001B[0m\n",
"\u001B[31;1mwarning: unnecessary parentheses around function argument\u001B[0m\n",
- "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\lib\\spiral\\.\\runtime.rs:708:33\u001B[0m\n",
+ "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\deps\\spiral\\lib\\spiral\\.\\runtime.rs:708:33\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m708 | let v3: string = append((v0_1.l0.get().clone()), (v1_1));\u001B[0m\n",
"\u001B[31;1m | ^ ^\u001B[0m\n",
@@ -17690,7 +15468,7 @@
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m\u001B[0m\n",
"\u001B[31;1mwarning: unnecessary parentheses around function argument\u001B[0m\n",
- "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\lib\\spiral\\.\\runtime.rs:708:58\u001B[0m\n",
+ "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\deps\\spiral\\lib\\spiral\\.\\runtime.rs:708:58\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m708 | let v3: string = append((v0_1.l0.get().clone()), (v1_1));\u001B[0m\n",
"\u001B[31;1m | ^ ^\u001B[0m\n",
@@ -17702,7 +15480,7 @@
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m\u001B[0m\n",
"\u001B[31;1mwarning: unnecessary parentheses around function argument\u001B[0m\n",
- "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\lib\\spiral\\.\\runtime.rs:1019:62\u001B[0m\n",
+ "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\deps\\spiral\\lib\\spiral\\.\\runtime.rs:1019:62\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m1019 | (Runtime::method30(v0_1, (v1_1) + 1_i32))(append((v2_1), string(\" \")))\u001B[0m\n",
"\u001B[31;1m | ^ ^\u001B[0m\n",
@@ -17714,7 +15492,7 @@
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m\u001B[0m\n",
"\u001B[31;1mwarning: unnecessary parentheses around function argument\u001B[0m\n",
- "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\lib\\spiral\\.\\runtime.rs:1109:25\u001B[0m\n",
+ "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\deps\\spiral\\lib\\spiral\\.\\runtime.rs:1109:25\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m1109 | ((Runtime::method30((v3) - 1_i32, 0_i32))(string(\"\"))),\u001B[0m\n",
"\u001B[31;1m | ^ ^\u001B[0m\n",
@@ -17726,7 +15504,7 @@
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m\u001B[0m\n",
"\u001B[31;1mwarning: unnecessary parentheses around function argument\u001B[0m\n",
- "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\lib\\spiral\\.\\runtime.rs:1197:25\u001B[0m\n",
+ "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\deps\\spiral\\lib\\spiral\\.\\runtime.rs:1197:25\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m1197 | ((Runtime::method30((v3) - 1_i32, 0_i32))(string(\"\"))),\u001B[0m\n",
"\u001B[31;1m | ^ ^\u001B[0m\n",
@@ -17738,7 +15516,7 @@
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m\u001B[0m\n",
"\u001B[31;1mwarning: unnecessary parentheses around function argument\u001B[0m\n",
- "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\lib\\spiral\\.\\runtime.rs:1378:36\u001B[0m\n",
+ "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\deps\\spiral\\lib\\spiral\\.\\runtime.rs:1378:36\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m1378 | ... append((v0_1.get().clone()), (ofChar(v121_0_0.clone())));\u001B[0m\n",
"\u001B[31;1m | ^ ^\u001B[0m\n",
@@ -17750,7 +15528,7 @@
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m\u001B[0m\n",
"\u001B[31;1mwarning: unnecessary parentheses around function argument\u001B[0m\n",
- "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\lib\\spiral\\.\\runtime.rs:1378:58\u001B[0m\n",
+ "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\deps\\spiral\\lib\\spiral\\.\\runtime.rs:1378:58\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m1378 | ... append((v0_1.get().clone()), (ofChar(v121_0_0.clone())));\u001B[0m\n",
"\u001B[31;1m | ^ ^\u001B[0m\n",
@@ -17762,7 +15540,7 @@
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m\u001B[0m\n",
"\u001B[31;1mwarning: unnecessary parentheses around function argument\u001B[0m\n",
- "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\lib\\spiral\\.\\runtime.rs:1586:36\u001B[0m\n",
+ "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\deps\\spiral\\lib\\spiral\\.\\runtime.rs:1586:36\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m1586 | ... append((v0_1.get().clone()), (ofChar(v127_0_0.clone())));\u001B[0m\n",
"\u001B[31;1m | ^ ^\u001B[0m\n",
@@ -17774,7 +15552,7 @@
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m\u001B[0m\n",
"\u001B[31;1mwarning: unnecessary parentheses around function argument\u001B[0m\n",
- "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\lib\\spiral\\.\\runtime.rs:1586:58\u001B[0m\n",
+ "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\deps\\spiral\\lib\\spiral\\.\\runtime.rs:1586:58\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m1586 | ... append((v0_1.get().clone()), (ofChar(v127_0_0.clone())));\u001B[0m\n",
"\u001B[31;1m | ^ ^\u001B[0m\n",
@@ -17786,7 +15564,7 @@
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m\u001B[0m\n",
"\u001B[31;1mwarning: unnecessary parentheses around function argument\u001B[0m\n",
- "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\lib\\spiral\\.\\runtime.rs:1696:36\u001B[0m\n",
+ "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\deps\\spiral\\lib\\spiral\\.\\runtime.rs:1696:36\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m1696 | ... append((v0_1.get().clone()), (ofChar(v79_0_0.clone())));\u001B[0m\n",
"\u001B[31;1m | ^ ^\u001B[0m\n",
@@ -17798,7 +15576,7 @@
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m\u001B[0m\n",
"\u001B[31;1mwarning: unnecessary parentheses around function argument\u001B[0m\n",
- "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\lib\\spiral\\.\\runtime.rs:1696:58\u001B[0m\n",
+ "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\deps\\spiral\\lib\\spiral\\.\\runtime.rs:1696:58\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m1696 | ... append((v0_1.get().clone()), (ofChar(v79_0_0.clone())));\u001B[0m\n",
"\u001B[31;1m | ^ ^\u001B[0m\n",
@@ -17810,7 +15588,7 @@
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m\u001B[0m\n",
"\u001B[31;1mwarning: unnecessary parentheses around function argument\u001B[0m\n",
- "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\lib\\spiral\\.\\runtime.rs:2154:37\u001B[0m\n",
+ "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\deps\\spiral\\lib\\spiral\\.\\runtime.rs:2154:37\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m2154 | ... ((Runtime::method30((v419) - 1_i32, 0_i32))(string(\"\"))),\u001B[0m\n",
"\u001B[31;1m | ^ ^\u001B[0m\n",
@@ -17822,7 +15600,7 @@
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m\u001B[0m\n",
"\u001B[31;1mwarning: unnecessary parentheses around function argument\u001B[0m\n",
- "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\lib\\spiral\\.\\runtime.rs:3183:36\u001B[0m\n",
+ "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\deps\\spiral\\lib\\spiral\\.\\runtime.rs:3183:36\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m3183 | ... append((v0_1.get().clone()), (ofChar(v121_0_0.clone())));\u001B[0m\n",
"\u001B[31;1m | ^ ^\u001B[0m\n",
@@ -17834,7 +15612,7 @@
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m\u001B[0m\n",
"\u001B[31;1mwarning: unnecessary parentheses around function argument\u001B[0m\n",
- "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\lib\\spiral\\.\\runtime.rs:3183:58\u001B[0m\n",
+ "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\deps\\spiral\\lib\\spiral\\.\\runtime.rs:3183:58\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m3183 | ... append((v0_1.get().clone()), (ofChar(v121_0_0.clone())));\u001B[0m\n",
"\u001B[31;1m | ^ ^\u001B[0m\n",
@@ -17846,7 +15624,7 @@
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m\u001B[0m\n",
"\u001B[31;1mwarning: unnecessary parentheses around function argument\u001B[0m\n",
- "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\lib\\spiral\\.\\runtime.rs:3329:25\u001B[0m\n",
+ "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\deps\\spiral\\lib\\spiral\\.\\runtime.rs:3329:25\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m3329 | ((Runtime::method30((v3) - 1_i32, 0_i32))(string(\"\"))),\u001B[0m\n",
"\u001B[31;1m | ^ ^\u001B[0m\n",
@@ -17858,7 +15636,7 @@
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m\u001B[0m\n",
"\u001B[31;1mwarning: unnecessary parentheses around function argument\u001B[0m\n",
- "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\lib\\spiral\\.\\runtime.rs:3396:28\u001B[0m\n",
+ "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\deps\\spiral\\lib\\spiral\\.\\runtime.rs:3396:28\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m3396 | append((ofChar('\\\\')), (ofChar(v210_0_0.clone()))),\u001B[0m\n",
"\u001B[31;1m | ^ ^\u001B[0m\n",
@@ -17870,7 +15648,7 @@
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m\u001B[0m\n",
"\u001B[31;1mwarning: unnecessary parentheses around function argument\u001B[0m\n",
- "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\lib\\spiral\\.\\runtime.rs:3396:44\u001B[0m\n",
+ "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\deps\\spiral\\lib\\spiral\\.\\runtime.rs:3396:44\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m3396 | append((ofChar('\\\\')), (ofChar(v210_0_0.clone()))),\u001B[0m\n",
"\u001B[31;1m | ^ ^\u001B[0m\n",
@@ -17882,7 +15660,7 @@
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m\u001B[0m\n",
"\u001B[31;1mwarning: unnecessary parentheses around function argument\u001B[0m\n",
- "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\lib\\spiral\\.\\runtime.rs:3486:25\u001B[0m\n",
+ "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\deps\\spiral\\lib\\spiral\\.\\runtime.rs:3486:25\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m3486 | ((Runtime::method30((v3) - 1_i32, 0_i32))(string(\"\"))),\u001B[0m\n",
"\u001B[31;1m | ^ ^\u001B[0m\n",
@@ -17894,7 +15672,7 @@
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m\u001B[0m\n",
"\u001B[31;1mwarning: unnecessary parentheses around function argument\u001B[0m\n",
- "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\lib\\spiral\\.\\runtime.rs:3553:28\u001B[0m\n",
+ "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\deps\\spiral\\lib\\spiral\\.\\runtime.rs:3553:28\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m3553 | append((ofChar('`')), (ofChar(v210_0_0.clone()))),\u001B[0m\n",
"\u001B[31;1m | ^ ^\u001B[0m\n",
@@ -17906,7 +15684,7 @@
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m\u001B[0m\n",
"\u001B[31;1mwarning: unnecessary parentheses around function argument\u001B[0m\n",
- "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\lib\\spiral\\.\\runtime.rs:3553:43\u001B[0m\n",
+ "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\deps\\spiral\\lib\\spiral\\.\\runtime.rs:3553:43\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m3553 | append((ofChar('`')), (ofChar(v210_0_0.clone()))),\u001B[0m\n",
"\u001B[31;1m | ^ ^\u001B[0m\n",
@@ -17918,7 +15696,7 @@
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m\u001B[0m\n",
"\u001B[31;1mwarning: unnecessary parentheses around function argument\u001B[0m\n",
- "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\lib\\spiral\\.\\runtime.rs:4101:96\u001B[0m\n",
+ "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\deps\\spiral\\lib\\spiral\\.\\runtime.rs:4101:96\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m4101 | ... append(((Runtime::method30((v4.get().clone())\u001B[0m\n",
"\u001B[31;1m | ^\u001B[0m\n",
@@ -17935,7 +15713,7 @@
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m\u001B[0m\n",
"\u001B[31;1mwarning: unnecessary parentheses around function argument\u001B[0m\n",
- "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\lib\\spiral\\.\\runtime.rs:4249:116\u001B[0m\n",
+ "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\deps\\spiral\\lib\\spiral\\.\\runtime.rs:4249:116\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m4249 | ... append(((Runtime::method30((v307)\u001B[0m\n",
"\u001B[31;1m | ^\u001B[0m\n",
@@ -17952,7 +15730,7 @@
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m\u001B[0m\n",
"\u001B[31;1mwarning: unnecessary parentheses around function argument\u001B[0m\n",
- "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\lib\\spiral\\.\\trace.rs:480:33\u001B[0m\n",
+ "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\deps\\spiral\\lib\\spiral\\.\\trace.rs:480:33\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m480 | let v3: string = append((v0_1.l0.get().clone()), (v1_1));\u001B[0m\n",
"\u001B[31;1m | ^ ^\u001B[0m\n",
@@ -17964,7 +15742,7 @@
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m\u001B[0m\n",
"\u001B[31;1mwarning: unnecessary parentheses around function argument\u001B[0m\n",
- "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\lib\\spiral\\.\\trace.rs:480:58\u001B[0m\n",
+ "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\deps\\spiral\\lib\\spiral\\.\\trace.rs:480:58\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m480 | let v3: string = append((v0_1.l0.get().clone()), (v1_1));\u001B[0m\n",
"\u001B[31;1m | ^ ^\u001B[0m\n",
@@ -17976,79 +15754,79 @@
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m\u001B[0m\n",
"\u001B[31;1mwarning: unnecessary parentheses around function argument\u001B[0m\n",
- "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\lib\\spiral\\.\\file_system.rs:701:33\u001B[0m\n",
+ "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\deps\\spiral\\lib\\spiral\\.\\file_system.rs:740:33\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
- "\u001B[31;1m701 | let v3: string = append((v0_1.l0.get().clone()), (v1_1));\u001B[0m\n",
+ "\u001B[31;1m740 | let v3: string = append((v0_1.l0.get().clone()), (v1_1));\u001B[0m\n",
"\u001B[31;1m | ^ ^\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1mhelp: remove these parentheses\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
- "\u001B[31;1m701 - let v3: string = append((v0_1.l0.get().clone()), (v1_1));\u001B[0m\n",
- "\u001B[31;1m701 + let v3: string = append(v0_1.l0.get().clone(), (v1_1));\u001B[0m\n",
+ "\u001B[31;1m740 - let v3: string = append((v0_1.l0.get().clone()), (v1_1));\u001B[0m\n",
+ "\u001B[31;1m740 + let v3: string = append(v0_1.l0.get().clone(), (v1_1));\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m\u001B[0m\n",
"\u001B[31;1mwarning: unnecessary parentheses around function argument\u001B[0m\n",
- "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\lib\\spiral\\.\\file_system.rs:701:58\u001B[0m\n",
+ "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\deps\\spiral\\lib\\spiral\\.\\file_system.rs:740:58\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
- "\u001B[31;1m701 | let v3: string = append((v0_1.l0.get().clone()), (v1_1));\u001B[0m\n",
+ "\u001B[31;1m740 | let v3: string = append((v0_1.l0.get().clone()), (v1_1));\u001B[0m\n",
"\u001B[31;1m | ^ ^\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1mhelp: remove these parentheses\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
- "\u001B[31;1m701 - let v3: string = append((v0_1.l0.get().clone()), (v1_1));\u001B[0m\n",
- "\u001B[31;1m701 + let v3: string = append((v0_1.l0.get().clone()), v1_1);\u001B[0m\n",
+ "\u001B[31;1m740 - let v3: string = append((v0_1.l0.get().clone()), (v1_1));\u001B[0m\n",
+ "\u001B[31;1m740 + let v3: string = append((v0_1.l0.get().clone()), v1_1);\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m\u001B[0m\n",
"\u001B[31;1mwarning: unnecessary parentheses around function argument\u001B[0m\n",
- "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\lib\\spiral\\.\\file_system.rs:2388:81\u001B[0m\n",
+ "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\deps\\spiral\\lib\\spiral\\.\\file_system.rs:2427:81\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
- "\u001B[31;1m2388 | (File_system::method105(v0_1, v1_1.clone(), (v2_1) + 1_i32))(append((v3), (v1_1)))\u001B[0m\n",
+ "\u001B[31;1m2427 | (File_system::method105(v0_1, v1_1.clone(), (v2_1) + 1_i32))(append((v3), (v1_1)))\u001B[0m\n",
"\u001B[31;1m | ^ ^\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1mhelp: remove these parentheses\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
- "\u001B[31;1m2388 - (File_system::method105(v0_1, v1_1.clone(), (v2_1) + 1_i32))(append((v3), (v1_1)))\u001B[0m\n",
- "\u001B[31;1m2388 + (File_system::method105(v0_1, v1_1.clone(), (v2_1) + 1_i32))(append(v3, (v1_1)))\u001B[0m\n",
+ "\u001B[31;1m2427 - (File_system::method105(v0_1, v1_1.clone(), (v2_1) + 1_i32))(append((v3), (v1_1)))\u001B[0m\n",
+ "\u001B[31;1m2427 + (File_system::method105(v0_1, v1_1.clone(), (v2_1) + 1_i32))(append(v3, (v1_1)))\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m\u001B[0m\n",
"\u001B[31;1mwarning: unnecessary parentheses around function argument\u001B[0m\n",
- "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\lib\\spiral\\.\\file_system.rs:2388:87\u001B[0m\n",
+ "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\deps\\spiral\\lib\\spiral\\.\\file_system.rs:2427:87\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
- "\u001B[31;1m2388 | (File_system::method105(v0_1, v1_1.clone(), (v2_1) + 1_i32))(append((v3), (v1_1)))\u001B[0m\n",
+ "\u001B[31;1m2427 | (File_system::method105(v0_1, v1_1.clone(), (v2_1) + 1_i32))(append((v3), (v1_1)))\u001B[0m\n",
"\u001B[31;1m | ^ ^\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1mhelp: remove these parentheses\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
- "\u001B[31;1m2388 - (File_system::method105(v0_1, v1_1.clone(), (v2_1) + 1_i32))(append((v3), (v1_1)))\u001B[0m\n",
- "\u001B[31;1m2388 + (File_system::method105(v0_1, v1_1.clone(), (v2_1) + 1_i32))(append((v3), v1_1))\u001B[0m\n",
+ "\u001B[31;1m2427 - (File_system::method105(v0_1, v1_1.clone(), (v2_1) + 1_i32))(append((v3), (v1_1)))\u001B[0m\n",
+ "\u001B[31;1m2427 + (File_system::method105(v0_1, v1_1.clone(), (v2_1) + 1_i32))(append((v3), v1_1))\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m\u001B[0m\n",
"\u001B[31;1mwarning: unnecessary parentheses around function argument\u001B[0m\n",
- "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\lib\\spiral\\.\\file_system.rs:2402:13\u001B[0m\n",
+ "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\deps\\spiral\\lib\\spiral\\.\\file_system.rs:2441:13\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
- "\u001B[31;1m2402 | ((File_system::method105(32_i32 - (length(v0_1.clone())), v2_1, 0_i32))(string(\"\"))),\u001B[0m\n",
+ "\u001B[31;1m2441 | ((File_system::method105(32_i32 - (length(v0_1.clone())), v2_1, 0_i32))(string(\"\"))),\u001B[0m\n",
"\u001B[31;1m | ^ ^\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1mhelp: remove these parentheses\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
- "\u001B[31;1m2402 - ((File_system::method105(32_i32 - (length(v0_1.clone())), v2_1, 0_i32))(string(\"\"))),\u001B[0m\n",
- "\u001B[31;1m2402 + (File_system::method105(32_i32 - (length(v0_1.clone())), v2_1, 0_i32))(string(\"\")),\u001B[0m\n",
+ "\u001B[31;1m2441 - ((File_system::method105(32_i32 - (length(v0_1.clone())), v2_1, 0_i32))(string(\"\"))),\u001B[0m\n",
+ "\u001B[31;1m2441 + (File_system::method105(32_i32 - (length(v0_1.clone())), v2_1, 0_i32))(string(\"\")),\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m\u001B[0m\n",
"\u001B[31;1mwarning: unnecessary parentheses around function argument\u001B[0m\n",
- "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\lib\\spiral\\.\\file_system.rs:2403:13\u001B[0m\n",
+ "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\deps\\spiral\\lib\\spiral\\.\\file_system.rs:2442:13\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
- "\u001B[31;1m2403 | (v0_1),\u001B[0m\n",
+ "\u001B[31;1m2442 | (v0_1),\u001B[0m\n",
"\u001B[31;1m | ^ ^\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1mhelp: remove these parentheses\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
- "\u001B[31;1m2403 - (v0_1),\u001B[0m\n",
- "\u001B[31;1m2403 + v0_1,\u001B[0m\n",
+ "\u001B[31;1m2442 - (v0_1),\u001B[0m\n",
+ "\u001B[31;1m2442 + v0_1,\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m\u001B[0m\n",
"\u001B[31;1mwarning: unnecessary parentheses around function argument\u001B[0m\n",
- "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\lib\\spiral\\.\\sm.rs:94:70\u001B[0m\n",
+ "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\deps\\spiral\\lib\\spiral\\.\\sm.rs:94:70\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m94 | (Sm::method0(v0_1, v1_1.clone(), (v2_1) + 1_i32))(append((v3_1), (v1_1)))\u001B[0m\n",
"\u001B[31;1m | ^ ^\u001B[0m\n",
@@ -18060,7 +15838,7 @@
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m\u001B[0m\n",
"\u001B[31;1mwarning: unnecessary parentheses around function argument\u001B[0m\n",
- "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\lib\\spiral\\.\\sm.rs:94:78\u001B[0m\n",
+ "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\deps\\spiral\\lib\\spiral\\.\\sm.rs:94:78\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m94 | (Sm::method0(v0_1, v1_1.clone(), (v2_1) + 1_i32))(append((v3_1), (v1_1)))\u001B[0m\n",
"\u001B[31;1m | ^ ^\u001B[0m\n",
@@ -18072,7 +15850,7 @@
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m\u001B[0m\n",
"\u001B[31;1mwarning: unnecessary parentheses around function argument\u001B[0m\n",
- "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\lib\\spiral\\.\\sm.rs:108:13\u001B[0m\n",
+ "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\deps\\spiral\\lib\\spiral\\.\\sm.rs:108:13\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m108 | ((Sm::method0((v0_1) - (length(v2_1.clone())), v4_1, 0_i32))(string(\"\"))),\u001B[0m\n",
"\u001B[31;1m | ^ ^\u001B[0m\n",
@@ -18084,7 +15862,7 @@
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m\u001B[0m\n",
"\u001B[31;1mwarning: unnecessary parentheses around function argument\u001B[0m\n",
- "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\lib\\spiral\\.\\sm.rs:109:13\u001B[0m\n",
+ "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\deps\\spiral\\lib\\spiral\\.\\sm.rs:109:13\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m109 | (v2_1),\u001B[0m\n",
"\u001B[31;1m | ^ ^\u001B[0m\n",
@@ -18096,7 +15874,7 @@
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m\u001B[0m\n",
"\u001B[31;1mwarning: unnecessary parentheses around function argument\u001B[0m\n",
- "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\lib\\spiral\\.\\sm.rs:128:13\u001B[0m\n",
+ "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\deps\\spiral\\lib\\spiral\\.\\sm.rs:128:13\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m128 | (v2_1.clone()),\u001B[0m\n",
"\u001B[31;1m | ^ ^\u001B[0m\n",
@@ -18108,7 +15886,7 @@
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m\u001B[0m\n",
"\u001B[31;1mwarning: unnecessary parentheses around function argument\u001B[0m\n",
- "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\lib\\spiral\\.\\sm.rs:129:13\u001B[0m\n",
+ "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\deps\\spiral\\lib\\spiral\\.\\sm.rs:129:13\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m129 | ((Sm::method0((v0_1) - (length(v2_1)), v4_1, 0_i32))(string(\"\"))),\u001B[0m\n",
"\u001B[31;1m | ^ ^\u001B[0m\n",
@@ -18120,79 +15898,79 @@
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m\u001B[0m\n",
"\u001B[31;1mwarning: unnecessary parentheses around function argument\u001B[0m\n",
- "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\lib\\spiral\\.\\sm.rs:342:17\u001B[0m\n",
+ "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\deps\\spiral\\lib\\spiral\\.\\sm.rs:345:17\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
- "\u001B[31;1m342 | (getSlice(v1_1, Some(0_i32), Some((v0_1) - 1_i32))),\u001B[0m\n",
+ "\u001B[31;1m345 | (getSlice(v1_1, Some(0_i32), Some((v0_1) - 1_i32))),\u001B[0m\n",
"\u001B[31;1m | ^ ^\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1mhelp: remove these parentheses\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
- "\u001B[31;1m342 - (getSlice(v1_1, Some(0_i32), Some((v0_1) - 1_i32))),\u001B[0m\n",
- "\u001B[31;1m342 + getSlice(v1_1, Some(0_i32), Some((v0_1) - 1_i32)),\u001B[0m\n",
+ "\u001B[31;1m345 - (getSlice(v1_1, Some(0_i32), Some((v0_1) - 1_i32))),\u001B[0m\n",
+ "\u001B[31;1m345 + getSlice(v1_1, Some(0_i32), Some((v0_1) - 1_i32)),\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m\u001B[0m\n",
"\u001B[31;1mwarning: unnecessary parentheses around function argument\u001B[0m\n",
- "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\lib\\spiral\\.\\sm.rs:407:17\u001B[0m\n",
+ "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\deps\\spiral\\lib\\spiral\\.\\sm.rs:410:17\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
- "\u001B[31;1m407 | (append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue))),\u001B[0m\n",
+ "\u001B[31;1m410 | (append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue))),\u001B[0m\n",
"\u001B[31;1m | ^ ^\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1mhelp: remove these parentheses\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
- "\u001B[31;1m407 - (append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue))),\u001B[0m\n",
- "\u001B[31;1m407 + append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue)),\u001B[0m\n",
+ "\u001B[31;1m410 - (append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue))),\u001B[0m\n",
+ "\u001B[31;1m410 + append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue)),\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m\u001B[0m\n",
"\u001B[31;1mwarning: unnecessary parentheses around function argument\u001B[0m\n",
- "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\lib\\spiral\\.\\sm.rs:407:25\u001B[0m\n",
+ "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\deps\\spiral\\lib\\spiral\\.\\sm.rs:410:25\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
- "\u001B[31;1m407 | (append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue))),\u001B[0m\n",
+ "\u001B[31;1m410 | (append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue))),\u001B[0m\n",
"\u001B[31;1m | ^ ^\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1mhelp: remove these parentheses\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
- "\u001B[31;1m407 - (append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue))),\u001B[0m\n",
- "\u001B[31;1m407 + (append(append((v1_1[v9_1].clone()), (matchValue_1)), (matchValue))),\u001B[0m\n",
+ "\u001B[31;1m410 - (append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue))),\u001B[0m\n",
+ "\u001B[31;1m410 + (append(append((v1_1[v9_1].clone()), (matchValue_1)), (matchValue))),\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m\u001B[0m\n",
"\u001B[31;1mwarning: unnecessary parentheses around function argument\u001B[0m\n",
- "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\lib\\spiral\\.\\sm.rs:407:73\u001B[0m\n",
+ "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\deps\\spiral\\lib\\spiral\\.\\sm.rs:410:73\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
- "\u001B[31;1m407 | (append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue))),\u001B[0m\n",
+ "\u001B[31;1m410 | (append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue))),\u001B[0m\n",
"\u001B[31;1m | ^ ^\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1mhelp: remove these parentheses\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
- "\u001B[31;1m407 - (append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue))),\u001B[0m\n",
- "\u001B[31;1m407 + (append((append((v1_1[v9_1].clone()), (matchValue_1))), matchValue)),\u001B[0m\n",
+ "\u001B[31;1m410 - (append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue))),\u001B[0m\n",
+ "\u001B[31;1m410 + (append((append((v1_1[v9_1].clone()), (matchValue_1))), matchValue)),\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m\u001B[0m\n",
"\u001B[31;1mwarning: unnecessary parentheses around function argument\u001B[0m\n",
- "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\lib\\spiral\\.\\sm.rs:407:33\u001B[0m\n",
+ "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\deps\\spiral\\lib\\spiral\\.\\sm.rs:410:33\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
- "\u001B[31;1m407 | (append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue))),\u001B[0m\n",
+ "\u001B[31;1m410 | (append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue))),\u001B[0m\n",
"\u001B[31;1m | ^ ^\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1mhelp: remove these parentheses\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
- "\u001B[31;1m407 - (append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue))),\u001B[0m\n",
- "\u001B[31;1m407 + (append((append(v1_1[v9_1].clone(), (matchValue_1))), (matchValue))),\u001B[0m\n",
+ "\u001B[31;1m410 - (append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue))),\u001B[0m\n",
+ "\u001B[31;1m410 + (append((append(v1_1[v9_1].clone(), (matchValue_1))), (matchValue))),\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m\u001B[0m\n",
"\u001B[31;1mwarning: unnecessary parentheses around function argument\u001B[0m\n",
- "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\lib\\spiral\\.\\sm.rs:407:55\u001B[0m\n",
+ "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\deps\\spiral\\lib\\spiral\\.\\sm.rs:410:55\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
- "\u001B[31;1m407 | (append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue))),\u001B[0m\n",
+ "\u001B[31;1m410 | (append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue))),\u001B[0m\n",
"\u001B[31;1m | ^ ^\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1mhelp: remove these parentheses\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
- "\u001B[31;1m407 - (append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue))),\u001B[0m\n",
- "\u001B[31;1m407 + (append((append((v1_1[v9_1].clone()), matchValue_1)), (matchValue))),\u001B[0m\n",
+ "\u001B[31;1m410 - (append((append((v1_1[v9_1].clone()), (matchValue_1))), (matchValue))),\u001B[0m\n",
+ "\u001B[31;1m410 + (append((append((v1_1[v9_1].clone()), matchValue_1)), (matchValue))),\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m\u001B[0m\n",
"\u001B[31;1mwarning: unnecessary parentheses around function argument\u001B[0m\n",
- "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\lib\\spiral\\.\\crypto.rs:626:33\u001B[0m\n",
+ "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\deps\\spiral\\lib\\spiral\\.\\crypto.rs:626:33\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m626 | let v3: string = append((v0_1.l0.get().clone()), (v1_1));\u001B[0m\n",
"\u001B[31;1m | ^ ^\u001B[0m\n",
@@ -18204,7 +15982,7 @@
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m\u001B[0m\n",
"\u001B[31;1mwarning: unnecessary parentheses around function argument\u001B[0m\n",
- "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\lib\\spiral\\.\\crypto.rs:626:58\u001B[0m\n",
+ "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\deps\\spiral\\lib\\spiral\\.\\crypto.rs:626:58\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m626 | let v3: string = append((v0_1.l0.get().clone()), (v1_1));\u001B[0m\n",
"\u001B[31;1m | ^ ^\u001B[0m\n",
@@ -18216,7 +15994,7 @@
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m\u001B[0m\n",
"\u001B[31;1mwarning: unnecessary parentheses around function argument\u001B[0m\n",
- "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\lib\\spiral\\.\\common.rs:558:33\u001B[0m\n",
+ "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\deps\\spiral\\lib\\spiral\\.\\common.rs:558:33\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m558 | let v3: string = append((v0_1.l0.get().clone()), (v1_1));\u001B[0m\n",
"\u001B[31;1m | ^ ^\u001B[0m\n",
@@ -18228,7 +16006,7 @@
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m\u001B[0m\n",
"\u001B[31;1mwarning: unnecessary parentheses around function argument\u001B[0m\n",
- "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\lib\\spiral\\.\\common.rs:558:58\u001B[0m\n",
+ "\u001B[31;1m --> C:\\home\\git\\polyglot\\apps\\plot\\..\\..\\deps\\spiral\\lib\\spiral\\.\\common.rs:558:58\u001B[0m\n",
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m558 | let v3: string = append((v0_1.l0.get().clone()), (v1_1));\u001B[0m\n",
"\u001B[31;1m | ^ ^\u001B[0m\n",
@@ -18240,7 +16018,7 @@
"\u001B[31;1m |\u001B[0m\n",
"\u001B[31;1m\u001B[0m\n",
"\u001B[31;1mwarning: `plot` (lib) generated 48 warnings (run `cargo fix --lib -p plot` to apply 48 suggestions)\u001B[0m\n",
- "\u001B[31;1m Finished `release` profile [optimized] target(s) in 18.29s\u001B[0m\n"
+ "\u001B[31;1m Finished `release` profile [optimized] target(s) in 34.37s\u001B[0m\n"
]
}
],
@@ -18265,42746 +16043,2126 @@
"output_type": "stream",
"text": [
"00:00:00 \u001B[90mv\u001B[0m #1 async.run_with_timeout_async / { timeout = 180 }\n",
- "00:00:00 \u001B[94md\u001B[0m #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0\n",
- " \"\"C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral Language 2\\artifacts\\bin\\The Spiral Language 2\\release\\Spiral.dll\" --port 13805 --default-int i32 --default-float f64\"; options = { command = dotnet \"C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral Language 2\\artifacts\\bin\\The Spiral Language 2\\release\\Spiral.dll\" --port 13805 --default-int i32 --default-float f64; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = Some ; stdin = None; trace = true; working_directory = Some \"C:\\home\\git\\polyglot\" } }\n",
- "00:00:00 \u001B[90mv\u001B[0m #2 > 00:00:00 \u001B[94md\u001B[0m #1 pwd: C:\\home\\git\\polyglot\n",
- "00:00:00 \u001B[90mv\u001B[0m #3 > 00:00:00 \u001B[94md\u001B[0m #2 dllPath: C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral Language 2\\artifacts\\bin\\The Spiral Language 2\\release\n",
- "00:00:00 \u001B[90mv\u001B[0m #4 > 00:00:00 \u001B[94md\u001B[0m #3 targetDir: C:\\home\\git\\polyglot\\target/spiral_Eval\n",
- "00:00:01 \u001B[90mv\u001B[0m #2 async.run_with_timeout_async / { timeout = 100 }\n",
- "00:00:01 \u001B[90mv\u001B[0m #5 > Starting the Spiral Server. It is bound to: http://localhost:13805\n",
- "00:00:01 \u001B[90mv\u001B[0m #3 async.run_with_timeout_async / { timeout = 100 }\n",
- "00:00:01 \u001B[90mv\u001B[0m #4 async.run_with_timeout_async / { timeout = 100 }\n",
- "00:00:01 \u001B[90mv\u001B[0m #1 Supervisor.sendJson / port: 13805 / json: {\"Ping\":true} / result:\n",
- "00:00:01 \u001B[90mv\u001B[0m #2 Supervisor.awaitCompiler / Ping / result: 'Some null' / port: 13805 / retry: 1\n",
- "00:00:01 \u001B[90mv\u001B[0m #6 > Server bound to: http://localhost:13805\n",
- "00:00:01 \u001B[94md\u001B[0m #7 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 \"dib --path Perf.dib --retries 3\"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path Perf.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }\n",
- "00:00:01 \u001B[90mv\u001B[0m #8 > 00:00:00 \u001B[94md\u001B[39m #1 spiral.main / { args = Array(MutCell([\"dib\", \"--path\", \"Perf.dib\", \"--retries\", \"3\"])) }\n",
- "00:00:01 \u001B[90mv\u001B[0m #9 > 00:00:00 \u001B[94md\u001B[39m #2 runtime.execute_with_options / { file_name = dotnet; arguments = [\"repl\", \"--exit-after-run\", \"--run\", \"c:/home/git/polyglot/apps/perf/Perf.dib\", \"--output-path\", \"c:/home/git/polyglot/apps/perf/Perf.dib.ipynb\"]; options = { command = dotnet repl --exit-after-run --run \"c:/home/git/polyglot/apps/perf/Perf.dib\" --output-path \"c:/home/git/polyglot/apps/perf/Perf.dib.ipynb\"; cancellation_token = None; environment_variables = Array(MutCell([(\"TRACE_LEVEL\", \"Verbose\"), (\"AUTOMATION\", \"True\")])); on_line = None; stdin = None; trace = false; working_directory = None } }\n",
- "00:00:03 \u001B[90mv\u001B[0m #10 > >\n",
- "00:00:03 \u001B[90mv\u001B[0m #11 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:03 \u001B[90mv\u001B[0m #12 > > \u001B[38;2;146;146;178m│\u001B[0m # Perf (Polyglot)\n",
- "00:00:19 \u001B[90mv\u001B[0m #13 > >\n",
- "00:00:19 \u001B[90mv\u001B[0m #14 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
- "00:00:19 \u001B[90mv\u001B[0m #15 > > //// test\n",
- "00:00:19 \u001B[90mv\u001B[0m #16 > >\n",
- "00:00:19 \u001B[90mv\u001B[0m #17 > > open testing\n",
- "00:00:19 \u001B[90mv\u001B[0m #18 > > open benchmark\n",
- "00:00:23 \u001B[90mv\u001B[0m #19 > >\n",
- "00:00:23 \u001B[90mv\u001B[0m #20 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:00:23 \u001B[90mv\u001B[0m #21 > > #if !INTERACTIVE\n",
- "00:00:23 \u001B[90mv\u001B[0m #22 > > open Lib\n",
- "00:00:23 \u001B[90mv\u001B[0m #23 > > #endif\n",
- "00:00:23 \u001B[90mv\u001B[0m #24 > >\n",
- "00:00:23 \u001B[90mv\u001B[0m #25 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:23 \u001B[90mv\u001B[0m #26 > > \u001B[38;2;146;146;178m│\u001B[0m ## TestCaseResult\n",
- "00:00:23 \u001B[90mv\u001B[0m #27 > >\n",
- "00:00:23 \u001B[90mv\u001B[0m #28 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:00:23 \u001B[90mv\u001B[0m #29 > > type TestCaseResult =\n",
- "00:00:23 \u001B[90mv\u001B[0m #30 > > {\n",
- "00:00:23 \u001B[90mv\u001B[0m #31 > > Input: string\n",
- "00:00:23 \u001B[90mv\u001B[0m #32 > > Expected: string\n",
- "00:00:23 \u001B[90mv\u001B[0m #33 > > Result: string\n",
- "00:00:23 \u001B[90mv\u001B[0m #34 > > TimeList: int64 list\n",
- "00:00:23 \u001B[90mv\u001B[0m #35 > > }\n",
- "00:00:23 \u001B[90mv\u001B[0m #36 > >\n",
- "00:00:23 \u001B[90mv\u001B[0m #37 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:23 \u001B[90mv\u001B[0m #38 > > \u001B[38;2;146;146;178m│\u001B[0m ## run\n",
- "00:00:23 \u001B[90mv\u001B[0m #39 > >\n",
- "00:00:23 \u001B[90mv\u001B[0m #40 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:00:23 \u001B[90mv\u001B[0m #41 > > let run count (solutions: (string * ('TInput -> 'TExpected)) list) (input,\n",
- "00:00:23 \u001B[90mv\u001B[0m #42 > > expected) =\n",
- "00:00:23 \u001B[90mv\u001B[0m #43 > > let inputStr =\n",
- "00:00:23 \u001B[90mv\u001B[0m #44 > > match box input with\n",
- "00:00:23 \u001B[90mv\u001B[0m #45 > > | :? System.Collections.ICollection as input ->\n",
- "00:00:23 \u001B[90mv\u001B[0m #46 > > System.Linq.Enumerable.Cast input\n",
- "00:00:23 \u001B[90mv\u001B[0m #47 > > |> Seq.map string\n",
- "00:00:23 \u001B[90mv\u001B[0m #48 > > |> SpiralSm.concat \",\"\n",
- "00:00:23 \u001B[90mv\u001B[0m #49 > > | _ -> input.ToString ()\n",
- "00:00:23 \u001B[90mv\u001B[0m #50 > >\n",
- "00:00:23 \u001B[90mv\u001B[0m #51 > > printfn \"\"\n",
- "00:00:23 \u001B[90mv\u001B[0m #52 > > printfn $\"Solution: {inputStr} \"\n",
- "00:00:23 \u001B[90mv\u001B[0m #53 > >\n",
- "00:00:23 \u001B[90mv\u001B[0m #54 > > let performanceInvoke (fn: unit -> 'T) =\n",
- "00:00:23 \u001B[90mv\u001B[0m #55 > > GC.Collect ()\n",
- "00:00:23 \u001B[90mv\u001B[0m #56 > > let stopwatch = System.Diagnostics.Stopwatch ()\n",
- "00:00:23 \u001B[90mv\u001B[0m #57 > > stopwatch.Start ()\n",
- "00:00:23 \u001B[90mv\u001B[0m #58 > > let time1 = stopwatch.ElapsedMilliseconds\n",
- "00:00:23 \u001B[90mv\u001B[0m #59 > >\n",
- "00:00:23 \u001B[90mv\u001B[0m #60 > > let result =\n",
- "00:00:23 \u001B[90mv\u001B[0m #61 > > [[| 0 .. count |]]\n",
- "00:00:23 \u001B[90mv\u001B[0m #62 > > |> Array.Parallel.map (fun _ ->\n",
- "00:00:23 \u001B[90mv\u001B[0m #63 > > fn ()\n",
- "00:00:23 \u001B[90mv\u001B[0m #64 > > )\n",
- "00:00:23 \u001B[90mv\u001B[0m #65 > > |> Array.last\n",
- "00:00:23 \u001B[90mv\u001B[0m #66 > >\n",
- "00:00:23 \u001B[90mv\u001B[0m #67 > > let time2 = stopwatch.ElapsedMilliseconds - time1\n",
- "00:00:23 \u001B[90mv\u001B[0m #68 > >\n",
- "00:00:23 \u001B[90mv\u001B[0m #69 > > result, time2\n",
- "00:00:23 \u001B[90mv\u001B[0m #70 > >\n",
- "00:00:23 \u001B[90mv\u001B[0m #71 > > let resultsWithTime =\n",
- "00:00:23 \u001B[90mv\u001B[0m #72 > > solutions\n",
- "00:00:23 \u001B[90mv\u001B[0m #73 > > |> List.mapi (fun i (testName, solution) ->\n",
- "00:00:23 \u001B[90mv\u001B[0m #74 > > let result, time = performanceInvoke (fun () -> solution input)\n",
- "00:00:23 \u001B[90mv\u001B[0m #75 > > printfn $\"Test case %d{i + 1}. %s{testName}. Time: %A{time} \"\n",
- "00:00:23 \u001B[90mv\u001B[0m #76 > > result, time\n",
- "00:00:23 \u001B[90mv\u001B[0m #77 > > )\n",
- "00:00:23 \u001B[90mv\u001B[0m #78 > >\n",
- "00:00:23 \u001B[90mv\u001B[0m #79 > >\n",
- "00:00:23 \u001B[90mv\u001B[0m #80 > > match resultsWithTime |> List.map fst with\n",
- "00:00:23 \u001B[90mv\u001B[0m #81 > > | ([[]] | [[ _ ]]) -> ()\n",
- "00:00:23 \u001B[90mv\u001B[0m #82 > > | (head :: tail) when tail |> List.forall ((=) head) -> ()\n",
- "00:00:23 \u001B[90mv\u001B[0m #83 > > | results -> failwithf $\"Challenge error: %A{results}\"\n",
- "00:00:23 \u001B[90mv\u001B[0m #84 > >\n",
- "00:00:23 \u001B[90mv\u001B[0m #85 > > {\n",
- "00:00:23 \u001B[90mv\u001B[0m #86 > > Input = inputStr\n",
- "00:00:23 \u001B[90mv\u001B[0m #87 > > Expected = expected.ToString ()\n",
- "00:00:23 \u001B[90mv\u001B[0m #88 > > Result = resultsWithTime |> Seq.map fst |> Seq.head |> _.ToString()\n",
- "00:00:23 \u001B[90mv\u001B[0m #89 > > TimeList = resultsWithTime |> List.map snd\n",
- "00:00:23 \u001B[90mv\u001B[0m #90 > > }\n",
- "00:00:23 \u001B[90mv\u001B[0m #91 > >\n",
- "00:00:23 \u001B[90mv\u001B[0m #92 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:23 \u001B[90mv\u001B[0m #93 > > \u001B[38;2;146;146;178m│\u001B[0m ## runAll\n",
- "00:00:23 \u001B[90mv\u001B[0m #94 > >\n",
- "00:00:23 \u001B[90mv\u001B[0m #95 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:00:23 \u001B[90mv\u001B[0m #96 > > let runAll testName count (solutions: (string * ('TInput -> 'TExpected)) list)\n",
- "00:00:23 \u001B[90mv\u001B[0m #97 > > testCases =\n",
- "00:00:23 \u001B[90mv\u001B[0m #98 > > printfn \"\"\n",
- "00:00:23 \u001B[90mv\u001B[0m #99 > > printfn \"\"\n",
- "00:00:23 \u001B[90mv\u001B[0m #100 > > printfn $\"Test: {testName}\"\n",
- "00:00:23 \u001B[90mv\u001B[0m #101 > > testCases\n",
- "00:00:23 \u001B[90mv\u001B[0m #102 > > |> Seq.map (run count solutions)\n",
- "00:00:23 \u001B[90mv\u001B[0m #103 > > |> Seq.toList\n",
- "00:00:23 \u001B[90mv\u001B[0m #104 > >\n",
- "00:00:23 \u001B[90mv\u001B[0m #105 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:23 \u001B[90mv\u001B[0m #106 > > \u001B[38;2;146;146;178m│\u001B[0m ## sortResultList\n",
- "00:00:23 \u001B[90mv\u001B[0m #107 > >\n",
- "00:00:23 \u001B[90mv\u001B[0m #108 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:00:23 \u001B[90mv\u001B[0m #109 > > let sortResultList resultList =\n",
- "00:00:23 \u001B[90mv\u001B[0m #110 > > let table =\n",
- "00:00:23 \u001B[90mv\u001B[0m #111 > > let rows =\n",
- "00:00:23 \u001B[90mv\u001B[0m #112 > > resultList\n",
- "00:00:23 \u001B[90mv\u001B[0m #113 > > |> List.map (fun result ->\n",
- "00:00:23 \u001B[90mv\u001B[0m #114 > > let best =\n",
- "00:00:23 \u001B[90mv\u001B[0m #115 > > result.TimeList\n",
- "00:00:23 \u001B[90mv\u001B[0m #116 > > |> List.mapi (fun i time ->\n",
- "00:00:23 \u001B[90mv\u001B[0m #117 > > i + 1, time\n",
- "00:00:23 \u001B[90mv\u001B[0m #118 > > )\n",
- "00:00:23 \u001B[90mv\u001B[0m #119 > > |> List.sortBy snd\n",
- "00:00:23 \u001B[90mv\u001B[0m #120 > > |> List.head\n",
- "00:00:23 \u001B[90mv\u001B[0m #121 > > |> _.ToString()\n",
- "00:00:23 \u001B[90mv\u001B[0m #122 > > let row =\n",
- "00:00:23 \u001B[90mv\u001B[0m #123 > > [[\n",
- "00:00:23 \u001B[90mv\u001B[0m #124 > > result.Input\n",
- "00:00:23 \u001B[90mv\u001B[0m #125 > > result.Expected\n",
- "00:00:23 \u001B[90mv\u001B[0m #126 > > result.Result\n",
- "00:00:23 \u001B[90mv\u001B[0m #127 > > best\n",
- "00:00:23 \u001B[90mv\u001B[0m #128 > > ]]\n",
- "00:00:23 \u001B[90mv\u001B[0m #129 > > let color =\n",
- "00:00:23 \u001B[90mv\u001B[0m #130 > > match result.Expected = result.Result with\n",
- "00:00:23 \u001B[90mv\u001B[0m #131 > > | true -> Some ConsoleColor.DarkGreen\n",
- "00:00:23 \u001B[90mv\u001B[0m #132 > > | false -> Some ConsoleColor.DarkRed\n",
- "00:00:23 \u001B[90mv\u001B[0m #133 > > row, color\n",
- "00:00:23 \u001B[90mv\u001B[0m #134 > > )\n",
- "00:00:23 \u001B[90mv\u001B[0m #135 > > let header =\n",
- "00:00:23 \u001B[90mv\u001B[0m #136 > > [[\n",
- "00:00:23 \u001B[90mv\u001B[0m #137 > > [[\n",
- "00:00:23 \u001B[90mv\u001B[0m #138 > > \"Input\"\n",
- "00:00:23 \u001B[90mv\u001B[0m #139 > > \"Expected\"\n",
- "00:00:23 \u001B[90mv\u001B[0m #140 > > \"Result\"\n",
- "00:00:23 \u001B[90mv\u001B[0m #141 > > \"Best\"\n",
- "00:00:23 \u001B[90mv\u001B[0m #142 > > ]]\n",
- "00:00:23 \u001B[90mv\u001B[0m #143 > > [[\n",
- "00:00:23 \u001B[90mv\u001B[0m #144 > > \"---\"\n",
- "00:00:23 \u001B[90mv\u001B[0m #145 > > \"---\"\n",
- "00:00:23 \u001B[90mv\u001B[0m #146 > > \"---\"\n",
- "00:00:23 \u001B[90mv\u001B[0m #147 > > \"---\"\n",
- "00:00:23 \u001B[90mv\u001B[0m #148 > > ]]\n",
- "00:00:23 \u001B[90mv\u001B[0m #149 > > ]]\n",
- "00:00:23 \u001B[90mv\u001B[0m #150 > > |> List.map (fun row -> row, None)\n",
- "00:00:23 \u001B[90mv\u001B[0m #151 > > header @ rows\n",
- "00:00:23 \u001B[90mv\u001B[0m #152 > >\n",
- "00:00:23 \u001B[90mv\u001B[0m #153 > > let formattedTable =\n",
- "00:00:23 \u001B[90mv\u001B[0m #154 > > let lengthMap =\n",
- "00:00:23 \u001B[90mv\u001B[0m #155 > > table\n",
- "00:00:23 \u001B[90mv\u001B[0m #156 > > |> List.map fst\n",
- "00:00:23 \u001B[90mv\u001B[0m #157 > > |> List.transpose\n",
- "00:00:23 \u001B[90mv\u001B[0m #158 > > |> List.map (fun column ->\n",
- "00:00:23 \u001B[90mv\u001B[0m #159 > > column\n",
- "00:00:23 \u001B[90mv\u001B[0m #160 > > |> List.map String.length\n",
- "00:00:23 \u001B[90mv\u001B[0m #161 > > |> List.sortDescending\n",
- "00:00:23 \u001B[90mv\u001B[0m #162 > > |> List.tryHead\n",
- "00:00:23 \u001B[90mv\u001B[0m #163 > > |> Option.defaultValue 0\n",
- "00:00:23 \u001B[90mv\u001B[0m #164 > > )\n",
- "00:00:23 \u001B[90mv\u001B[0m #165 > > |> List.indexed\n",
- "00:00:23 \u001B[90mv\u001B[0m #166 > > |> Map.ofList\n",
- "00:00:23 \u001B[90mv\u001B[0m #167 > > table\n",
- "00:00:23 \u001B[90mv\u001B[0m #168 > > |> List.map (fun (row, color) ->\n",
- "00:00:23 \u001B[90mv\u001B[0m #169 > > let newRow =\n",
- "00:00:23 \u001B[90mv\u001B[0m #170 > > row\n",
- "00:00:23 \u001B[90mv\u001B[0m #171 > > |> List.mapi (fun i cell ->\n",
- "00:00:23 \u001B[90mv\u001B[0m #172 > > cell.PadRight lengthMap.[[i]]\n",
- "00:00:23 \u001B[90mv\u001B[0m #173 > > )\n",
- "00:00:23 \u001B[90mv\u001B[0m #174 > > newRow, color\n",
- "00:00:23 \u001B[90mv\u001B[0m #175 > > )\n",
- "00:00:23 \u001B[90mv\u001B[0m #176 > >\n",
- "00:00:23 \u001B[90mv\u001B[0m #177 > > printfn \"\"\n",
- "00:00:23 \u001B[90mv\u001B[0m #178 > > formattedTable\n",
- "00:00:23 \u001B[90mv\u001B[0m #179 > > |> List.iter (fun (row, color) ->\n",
- "00:00:23 \u001B[90mv\u001B[0m #180 > > match color with\n",
- "00:00:23 \u001B[90mv\u001B[0m #181 > > | Some color -> Console.ForegroundColor <- color\n",
- "00:00:23 \u001B[90mv\u001B[0m #182 > > | None -> Console.ResetColor ()\n",
- "00:00:23 \u001B[90mv\u001B[0m #183 > >\n",
- "00:00:23 \u001B[90mv\u001B[0m #184 > > printfn \"%s\" (String.Join (\"\\t| \", row))\n",
- "00:00:23 \u001B[90mv\u001B[0m #185 > >\n",
- "00:00:23 \u001B[90mv\u001B[0m #186 > > Console.ResetColor ()\n",
- "00:00:23 \u001B[90mv\u001B[0m #187 > > )\n",
- "00:00:23 \u001B[90mv\u001B[0m #188 > >\n",
- "00:00:23 \u001B[90mv\u001B[0m #189 > > let averages =\n",
- "00:00:23 \u001B[90mv\u001B[0m #190 > > resultList\n",
- "00:00:23 \u001B[90mv\u001B[0m #191 > > |> List.map (fun result -> result.TimeList |> List.map float)\n",
- "00:00:23 \u001B[90mv\u001B[0m #192 > > |> List.transpose\n",
- "00:00:23 \u001B[90mv\u001B[0m #193 > > |> List.map List.average\n",
- "00:00:23 \u001B[90mv\u001B[0m #194 > > |> List.map int64\n",
- "00:00:23 \u001B[90mv\u001B[0m #195 > > |> List.indexed\n",
- "00:00:23 \u001B[90mv\u001B[0m #196 > >\n",
- "00:00:23 \u001B[90mv\u001B[0m #197 > > printfn \"\"\n",
- "00:00:23 \u001B[90mv\u001B[0m #198 > > printfn \"Average Ranking \"\n",
- "00:00:23 \u001B[90mv\u001B[0m #199 > > averages\n",
- "00:00:23 \u001B[90mv\u001B[0m #200 > > |> List.sortBy snd\n",
- "00:00:23 \u001B[90mv\u001B[0m #201 > > |> List.iter (fun (i, avg) ->\n",
- "00:00:23 \u001B[90mv\u001B[0m #202 > > printfn $\"Test case %d{i + 1}. Average Time: %A{avg} \"\n",
- "00:00:23 \u001B[90mv\u001B[0m #203 > > )\n",
- "00:00:23 \u001B[90mv\u001B[0m #204 > >\n",
- "00:00:23 \u001B[90mv\u001B[0m #205 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:00:23 \u001B[90mv\u001B[0m #206 > > let mutable _count =\n",
- "00:00:23 \u001B[90mv\u001B[0m #207 > > if (\"CI\" |> System.Environment.GetEnvironmentVariable |> fun x -> $\"%A{x}\")\n",
- "00:00:23 \u001B[90mv\u001B[0m #208 > > <> \"\"\n",
- "00:00:23 \u001B[90mv\u001B[0m #209 > > then 2000000\n",
- "00:00:23 \u001B[90mv\u001B[0m #210 > > else 2000\n",
- "00:00:23 \u001B[90mv\u001B[0m #211 > >\n",
- "00:00:23 \u001B[90mv\u001B[0m #212 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
- "00:00:23 \u001B[90mv\u001B[0m #213 > > inl is_fast () =\n",
- "00:00:23 \u001B[90mv\u001B[0m #214 > > false\n",
- "00:00:24 \u001B[90mv\u001B[0m #215 > >\n",
- "00:00:24 \u001B[90mv\u001B[0m #216 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:24 \u001B[90mv\u001B[0m #217 > > \u001B[38;2;146;146;178m│\u001B[0m ## empty3Tests\n",
- "00:00:24 \u001B[90mv\u001B[0m #218 > >\n",
- "00:00:24 \u001B[90mv\u001B[0m #219 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:24 \u001B[90mv\u001B[0m #220 > > \u001B[38;2;146;146;178m│\u001B[0m Test: Empty3\n",
- "00:00:24 \u001B[90mv\u001B[0m #221 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:00:24 \u001B[90mv\u001B[0m #222 > > \u001B[38;2;146;146;178m│\u001B[0m Solution: (a, a)\n",
- "00:00:24 \u001B[90mv\u001B[0m #223 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. A. Time: 91L\n",
- "00:00:24 \u001B[90mv\u001B[0m #224 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:00:24 \u001B[90mv\u001B[0m #225 > > \u001B[38;2;146;146;178m│\u001B[0m Solution: (a, a)\n",
- "00:00:24 \u001B[90mv\u001B[0m #226 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. A. Time: 56L\n",
- "00:00:24 \u001B[90mv\u001B[0m #227 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:00:24 \u001B[90mv\u001B[0m #228 > > \u001B[38;2;146;146;178m│\u001B[0m Input | Expected | Result | Best\n",
- "00:00:24 \u001B[90mv\u001B[0m #229 > > \u001B[38;2;146;146;178m│\u001B[0m --- | --- | --- | ---\n",
- "00:00:24 \u001B[90mv\u001B[0m #230 > > \u001B[38;2;146;146;178m│\u001B[0m (a, a) | a | a | (1, 91)\n",
- "00:00:24 \u001B[90mv\u001B[0m #231 > > \u001B[38;2;146;146;178m│\u001B[0m (a, a) | a | a | (1, 56)\n",
- "00:00:24 \u001B[90mv\u001B[0m #232 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:00:24 \u001B[90mv\u001B[0m #233 > > \u001B[38;2;146;146;178m│\u001B[0m Averages\n",
- "00:00:24 \u001B[90mv\u001B[0m #234 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. Average Time: 73L\n",
- "00:00:24 \u001B[90mv\u001B[0m #235 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:00:24 \u001B[90mv\u001B[0m #236 > > \u001B[38;2;146;146;178m│\u001B[0m Ranking\n",
- "00:00:24 \u001B[90mv\u001B[0m #237 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. Average Time: 73L\n",
- "00:00:24 \u001B[90mv\u001B[0m #238 > >\n",
- "00:00:24 \u001B[90mv\u001B[0m #239 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:00:24 \u001B[90mv\u001B[0m #240 > > //// test\n",
- "00:00:24 \u001B[90mv\u001B[0m #241 > >\n",
- "00:00:24 \u001B[90mv\u001B[0m #242 > > let solutions = [[\n",
- "00:00:24 \u001B[90mv\u001B[0m #243 > > \"A\",\n",
- "00:00:24 \u001B[90mv\u001B[0m #244 > > fun (a, _b) ->\n",
- "00:00:24 \u001B[90mv\u001B[0m #245 > > a\n",
- "00:00:24 \u001B[90mv\u001B[0m #246 > > ]]\n",
- "00:00:24 \u001B[90mv\u001B[0m #247 > > let testCases = seq {\n",
- "00:00:24 \u001B[90mv\u001B[0m #248 > > (\"a\", \"a\"), \"a\"\n",
- "00:00:24 \u001B[90mv\u001B[0m #249 > > (\"a\", \"a\"), \"a\"\n",
- "00:00:24 \u001B[90mv\u001B[0m #250 > > }\n",
- "00:00:24 \u001B[90mv\u001B[0m #251 > > let rec empty3Tests = runAll (nameof empty3Tests) _count solutions testCases\n",
- "00:00:24 \u001B[90mv\u001B[0m #252 > > empty3Tests\n",
- "00:00:24 \u001B[90mv\u001B[0m #253 > > |> sortResultList\n",
- "00:00:24 \u001B[90mv\u001B[0m #254 > >\n",
- "00:00:24 \u001B[90mv\u001B[0m #255 > > ── [ 468.56ms - stdout ] ───────────────────────────────────────────────────────\n",
- "00:00:24 \u001B[90mv\u001B[0m #256 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:24 \u001B[90mv\u001B[0m #257 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:24 \u001B[90mv\u001B[0m #258 > > \u001B[38;2;38;140;38m│\u001B[0m Test: empty3Tests\n",
- "00:00:24 \u001B[90mv\u001B[0m #259 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:24 \u001B[90mv\u001B[0m #260 > > \u001B[38;2;38;140;38m│\u001B[0m Solution: (a, a)\n",
- "00:00:24 \u001B[90mv\u001B[0m #261 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 1. A. Time: 1L\n",
- "00:00:24 \u001B[90mv\u001B[0m #262 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:24 \u001B[90mv\u001B[0m #263 > > \u001B[38;2;38;140;38m│\u001B[0m Solution: (a, a)\n",
- "00:00:24 \u001B[90mv\u001B[0m #264 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 1. A. Time: 0L\n",
- "00:00:24 \u001B[90mv\u001B[0m #265 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:24 \u001B[90mv\u001B[0m #266 > > \u001B[38;2;38;140;38m│\u001B[0m Input \t| Expected\t| Result\t| Best\n",
- "00:00:24 \u001B[90mv\u001B[0m #267 > > \u001B[38;2;38;140;38m│\u001B[0m --- \t| --- \t| --- \t| ---\n",
- "00:00:24 \u001B[90mv\u001B[0m #268 > > \u001B[38;2;38;140;38m│\u001B[0m (a, a)\t| a \t| a \t| (1, 1)\n",
- "00:00:24 \u001B[90mv\u001B[0m #269 > > \u001B[38;2;38;140;38m│\u001B[0m (a, a)\t| a \t| a \t| (1, 0)\n",
- "00:00:24 \u001B[90mv\u001B[0m #270 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:24 \u001B[90mv\u001B[0m #271 > > \u001B[38;2;38;140;38m│\u001B[0m Average Ranking\n",
- "00:00:24 \u001B[90mv\u001B[0m #272 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 1. Average Time: 0L\n",
- "00:00:24 \u001B[90mv\u001B[0m #273 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:24 \u001B[90mv\u001B[0m #274 > >\n",
- "00:00:24 \u001B[90mv\u001B[0m #275 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:24 \u001B[90mv\u001B[0m #276 > > \u001B[38;2;146;146;178m│\u001B[0m ## empty2Tests\n",
- "00:00:24 \u001B[90mv\u001B[0m #277 > >\n",
- "00:00:24 \u001B[90mv\u001B[0m #278 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:24 \u001B[90mv\u001B[0m #279 > > \u001B[38;2;146;146;178m│\u001B[0m Test: Empty2\n",
- "00:00:24 \u001B[90mv\u001B[0m #280 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:00:24 \u001B[90mv\u001B[0m #281 > > \u001B[38;2;146;146;178m│\u001B[0m Solution: (a, a)\n",
- "00:00:24 \u001B[90mv\u001B[0m #282 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. A. Time: 59L\n",
- "00:00:24 \u001B[90mv\u001B[0m #283 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:00:24 \u001B[90mv\u001B[0m #284 > > \u001B[38;2;146;146;178m│\u001B[0m Solution: (a, a)\n",
- "00:00:24 \u001B[90mv\u001B[0m #285 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. A. Time: 53L\n",
- "00:00:24 \u001B[90mv\u001B[0m #286 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:00:24 \u001B[90mv\u001B[0m #287 > > \u001B[38;2;146;146;178m│\u001B[0m Input | Expected | Result | Best\n",
- "00:00:24 \u001B[90mv\u001B[0m #288 > > \u001B[38;2;146;146;178m│\u001B[0m --- | --- | --- | ---\n",
- "00:00:24 \u001B[90mv\u001B[0m #289 > > \u001B[38;2;146;146;178m│\u001B[0m (a, a) | a | a | (1, 59)\n",
- "00:00:24 \u001B[90mv\u001B[0m #290 > > \u001B[38;2;146;146;178m│\u001B[0m (a, a) | a | a | (1, 53)\n",
- "00:00:24 \u001B[90mv\u001B[0m #291 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:00:24 \u001B[90mv\u001B[0m #292 > > \u001B[38;2;146;146;178m│\u001B[0m Averages\n",
- "00:00:24 \u001B[90mv\u001B[0m #293 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. Average Time: 56L\n",
- "00:00:24 \u001B[90mv\u001B[0m #294 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:00:24 \u001B[90mv\u001B[0m #295 > > \u001B[38;2;146;146;178m│\u001B[0m Ranking\n",
- "00:00:24 \u001B[90mv\u001B[0m #296 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. Average Time: 56L\n",
- "00:00:24 \u001B[90mv\u001B[0m #297 > >\n",
- "00:00:24 \u001B[90mv\u001B[0m #298 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:00:24 \u001B[90mv\u001B[0m #299 > > //// test\n",
- "00:00:24 \u001B[90mv\u001B[0m #300 > >\n",
- "00:00:24 \u001B[90mv\u001B[0m #301 > > let solutions = [[\n",
- "00:00:24 \u001B[90mv\u001B[0m #302 > > \"A\",\n",
- "00:00:24 \u001B[90mv\u001B[0m #303 > > fun (a, _b) ->\n",
- "00:00:24 \u001B[90mv\u001B[0m #304 > > a\n",
- "00:00:24 \u001B[90mv\u001B[0m #305 > > ]]\n",
- "00:00:24 \u001B[90mv\u001B[0m #306 > > let testCases = seq {\n",
- "00:00:24 \u001B[90mv\u001B[0m #307 > > (\"a\", \"a\"), \"a\"\n",
- "00:00:24 \u001B[90mv\u001B[0m #308 > > (\"a\", \"a\"), \"a\"\n",
- "00:00:24 \u001B[90mv\u001B[0m #309 > > }\n",
- "00:00:24 \u001B[90mv\u001B[0m #310 > > let rec empty2Tests = runAll (nameof empty2Tests) _count solutions testCases\n",
- "00:00:24 \u001B[90mv\u001B[0m #311 > > empty2Tests\n",
- "00:00:24 \u001B[90mv\u001B[0m #312 > > |> sortResultList\n",
- "00:00:24 \u001B[90mv\u001B[0m #313 > >\n",
- "00:00:24 \u001B[90mv\u001B[0m #314 > > ── [ 429.45ms - stdout ] ───────────────────────────────────────────────────────\n",
- "00:00:24 \u001B[90mv\u001B[0m #315 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:24 \u001B[90mv\u001B[0m #316 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:24 \u001B[90mv\u001B[0m #317 > > \u001B[38;2;38;140;38m│\u001B[0m Test: empty2Tests\n",
- "00:00:24 \u001B[90mv\u001B[0m #318 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:24 \u001B[90mv\u001B[0m #319 > > \u001B[38;2;38;140;38m│\u001B[0m Solution: (a, a)\n",
- "00:00:24 \u001B[90mv\u001B[0m #320 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 1. A. Time: 0L\n",
- "00:00:24 \u001B[90mv\u001B[0m #321 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:24 \u001B[90mv\u001B[0m #322 > > \u001B[38;2;38;140;38m│\u001B[0m Solution: (a, a)\n",
- "00:00:24 \u001B[90mv\u001B[0m #323 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 1. A. Time: 0L\n",
- "00:00:24 \u001B[90mv\u001B[0m #324 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:24 \u001B[90mv\u001B[0m #325 > > \u001B[38;2;38;140;38m│\u001B[0m Input \t| Expected\t| Result\t| Best\n",
- "00:00:24 \u001B[90mv\u001B[0m #326 > > \u001B[38;2;38;140;38m│\u001B[0m --- \t| --- \t| --- \t| ---\n",
- "00:00:24 \u001B[90mv\u001B[0m #327 > > \u001B[38;2;38;140;38m│\u001B[0m (a, a)\t| a \t| a \t| (1, 0)\n",
- "00:00:24 \u001B[90mv\u001B[0m #328 > > \u001B[38;2;38;140;38m│\u001B[0m (a, a)\t| a \t| a \t| (1, 0)\n",
- "00:00:24 \u001B[90mv\u001B[0m #329 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:24 \u001B[90mv\u001B[0m #330 > > \u001B[38;2;38;140;38m│\u001B[0m Average Ranking\n",
- "00:00:24 \u001B[90mv\u001B[0m #331 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 1. Average Time: 0L\n",
- "00:00:24 \u001B[90mv\u001B[0m #332 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:24 \u001B[90mv\u001B[0m #333 > >\n",
- "00:00:24 \u001B[90mv\u001B[0m #334 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:24 \u001B[90mv\u001B[0m #335 > > \u001B[38;2;146;146;178m│\u001B[0m ## emptyTests\n",
- "00:00:24 \u001B[90mv\u001B[0m #336 > >\n",
- "00:00:24 \u001B[90mv\u001B[0m #337 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:24 \u001B[90mv\u001B[0m #338 > > \u001B[38;2;146;146;178m│\u001B[0m Test: Empty\n",
- "00:00:24 \u001B[90mv\u001B[0m #339 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:00:24 \u001B[90mv\u001B[0m #340 > > \u001B[38;2;146;146;178m│\u001B[0m Solution: 0\n",
- "00:00:24 \u001B[90mv\u001B[0m #341 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. A. Time: 61L\n",
- "00:00:24 \u001B[90mv\u001B[0m #342 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:00:24 \u001B[90mv\u001B[0m #343 > > \u001B[38;2;146;146;178m│\u001B[0m Solution: 2\n",
- "00:00:24 \u001B[90mv\u001B[0m #344 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. A. Time: 62L\n",
- "00:00:24 \u001B[90mv\u001B[0m #345 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:00:24 \u001B[90mv\u001B[0m #346 > > \u001B[38;2;146;146;178m│\u001B[0m Solution: 5\n",
- "00:00:24 \u001B[90mv\u001B[0m #347 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. A. Time: 70L\n",
- "00:00:24 \u001B[90mv\u001B[0m #348 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:00:24 \u001B[90mv\u001B[0m #349 > > \u001B[38;2;146;146;178m│\u001B[0m Input | Expected | Result | Best\n",
- "00:00:24 \u001B[90mv\u001B[0m #350 > > \u001B[38;2;146;146;178m│\u001B[0m --- | --- | --- | ---\n",
- "00:00:24 \u001B[90mv\u001B[0m #351 > > \u001B[38;2;146;146;178m│\u001B[0m 0 | 0 | 0 | (1, 61)\n",
- "00:00:24 \u001B[90mv\u001B[0m #352 > > \u001B[38;2;146;146;178m│\u001B[0m 2 | 2 | 2 | (1, 62)\n",
- "00:00:24 \u001B[90mv\u001B[0m #353 > > \u001B[38;2;146;146;178m│\u001B[0m 5 | 5 | 5 | (1, 70)\n",
- "00:00:24 \u001B[90mv\u001B[0m #354 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:00:24 \u001B[90mv\u001B[0m #355 > > \u001B[38;2;146;146;178m│\u001B[0m Averages\n",
- "00:00:24 \u001B[90mv\u001B[0m #356 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. Average Time: 64L\n",
- "00:00:24 \u001B[90mv\u001B[0m #357 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:00:24 \u001B[90mv\u001B[0m #358 > > \u001B[38;2;146;146;178m│\u001B[0m Ranking\n",
- "00:00:24 \u001B[90mv\u001B[0m #359 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. Average Time: 64L\n",
- "00:00:24 \u001B[90mv\u001B[0m #360 > >\n",
- "00:00:24 \u001B[90mv\u001B[0m #361 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:00:24 \u001B[90mv\u001B[0m #362 > > //// test\n",
- "00:00:24 \u001B[90mv\u001B[0m #363 > >\n",
- "00:00:24 \u001B[90mv\u001B[0m #364 > > let solutions = [[\n",
- "00:00:24 \u001B[90mv\u001B[0m #365 > > \"A\",\n",
- "00:00:24 \u001B[90mv\u001B[0m #366 > > fun n ->\n",
- "00:00:24 \u001B[90mv\u001B[0m #367 > > n + 0\n",
- "00:00:24 \u001B[90mv\u001B[0m #368 > > ]]\n",
- "00:00:24 \u001B[90mv\u001B[0m #369 > > let testCases = seq {\n",
- "00:00:24 \u001B[90mv\u001B[0m #370 > > 0, 0\n",
- "00:00:24 \u001B[90mv\u001B[0m #371 > > 2, 2\n",
- "00:00:24 \u001B[90mv\u001B[0m #372 > > 5, 5\n",
- "00:00:24 \u001B[90mv\u001B[0m #373 > > }\n",
- "00:00:24 \u001B[90mv\u001B[0m #374 > > let rec emptyTests = runAll (nameof emptyTests) _count solutions testCases\n",
- "00:00:24 \u001B[90mv\u001B[0m #375 > > emptyTests\n",
- "00:00:24 \u001B[90mv\u001B[0m #376 > > |> sortResultList\n",
- "00:00:25 \u001B[90mv\u001B[0m #377 > >\n",
- "00:00:25 \u001B[90mv\u001B[0m #378 > > ── [ 654.17ms - stdout ] ───────────────────────────────────────────────────────\n",
- "00:00:25 \u001B[90mv\u001B[0m #379 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:25 \u001B[90mv\u001B[0m #380 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:25 \u001B[90mv\u001B[0m #381 > > \u001B[38;2;38;140;38m│\u001B[0m Test: emptyTests\n",
- "00:00:25 \u001B[90mv\u001B[0m #382 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:25 \u001B[90mv\u001B[0m #383 > > \u001B[38;2;38;140;38m│\u001B[0m Solution: 0\n",
- "00:00:25 \u001B[90mv\u001B[0m #384 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 1. A. Time: 2L\n",
- "00:00:25 \u001B[90mv\u001B[0m #385 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:25 \u001B[90mv\u001B[0m #386 > > \u001B[38;2;38;140;38m│\u001B[0m Solution: 2\n",
- "00:00:25 \u001B[90mv\u001B[0m #387 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 1. A. Time: 0L\n",
- "00:00:25 \u001B[90mv\u001B[0m #388 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:25 \u001B[90mv\u001B[0m #389 > > \u001B[38;2;38;140;38m│\u001B[0m Solution: 5\n",
- "00:00:25 \u001B[90mv\u001B[0m #390 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 1. A. Time: 0L\n",
- "00:00:25 \u001B[90mv\u001B[0m #391 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:25 \u001B[90mv\u001B[0m #392 > > \u001B[38;2;38;140;38m│\u001B[0m Input\t| Expected\t| Result\t| Best\n",
- "00:00:25 \u001B[90mv\u001B[0m #393 > > \u001B[38;2;38;140;38m│\u001B[0m --- \t| --- \t| --- \t| ---\n",
- "00:00:25 \u001B[90mv\u001B[0m #394 > > \u001B[38;2;38;140;38m│\u001B[0m 0 \t| 0 \t| 0 \t| (1, 2)\n",
- "00:00:25 \u001B[90mv\u001B[0m #395 > > \u001B[38;2;38;140;38m│\u001B[0m 2 \t| 2 \t| 2 \t| (1, 0)\n",
- "00:00:25 \u001B[90mv\u001B[0m #396 > > \u001B[38;2;38;140;38m│\u001B[0m 5 \t| 5 \t| 5 \t| (1, 0)\n",
- "00:00:25 \u001B[90mv\u001B[0m #397 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:25 \u001B[90mv\u001B[0m #398 > > \u001B[38;2;38;140;38m│\u001B[0m Average Ranking\n",
- "00:00:25 \u001B[90mv\u001B[0m #399 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 1. Average Time: 0L\n",
- "00:00:25 \u001B[90mv\u001B[0m #400 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:25 \u001B[90mv\u001B[0m #401 > >\n",
- "00:00:25 \u001B[90mv\u001B[0m #402 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:25 \u001B[90mv\u001B[0m #403 > > \u001B[38;2;146;146;178m│\u001B[0m ## uniqueLettersTests\n",
- "00:00:25 \u001B[90mv\u001B[0m #404 > >\n",
- "00:00:25 \u001B[90mv\u001B[0m #405 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:25 \u001B[90mv\u001B[0m #406 > > \u001B[38;2;146;146;178m│\u001B[0m Test: UniqueLetters\n",
- "00:00:25 \u001B[90mv\u001B[0m #407 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:00:25 \u001B[90mv\u001B[0m #408 > > \u001B[38;2;146;146;178m│\u001B[0m Solution: abc\n",
- "00:00:25 \u001B[90mv\u001B[0m #409 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. A. Time: 1512L\n",
- "00:00:25 \u001B[90mv\u001B[0m #410 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 2. B. Time: 1947L\n",
- "00:00:25 \u001B[90mv\u001B[0m #411 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 3. C. Time: 2023L\n",
- "00:00:25 \u001B[90mv\u001B[0m #412 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 4. D. Time: 1358L\n",
- "00:00:25 \u001B[90mv\u001B[0m #413 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 5. E. Time: 1321L\n",
- "00:00:25 \u001B[90mv\u001B[0m #414 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 6. F. Time: 1346L\n",
- "00:00:25 \u001B[90mv\u001B[0m #415 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 7. G. Time: 1304L\n",
- "00:00:25 \u001B[90mv\u001B[0m #416 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 8. H. Time: 1383L\n",
- "00:00:25 \u001B[90mv\u001B[0m #417 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 9. I. Time: 1495L\n",
- "00:00:25 \u001B[90mv\u001B[0m #418 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 10. J. Time: 1245L\n",
- "00:00:25 \u001B[90mv\u001B[0m #419 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 11. K. Time: 1219L\n",
- "00:00:25 \u001B[90mv\u001B[0m #420 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:00:25 \u001B[90mv\u001B[0m #421 > > \u001B[38;2;146;146;178m│\u001B[0m Solution: accabb\n",
- "00:00:25 \u001B[90mv\u001B[0m #422 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. A. Time: 1648L\n",
- "00:00:25 \u001B[90mv\u001B[0m #423 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 2. B. Time: 2061L\n",
- "00:00:25 \u001B[90mv\u001B[0m #424 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 3. C. Time: 2413L\n",
- "00:00:25 \u001B[90mv\u001B[0m #425 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 4. D. Time: 1561L\n",
- "00:00:25 \u001B[90mv\u001B[0m #426 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 5. E. Time: 1593L\n",
- "00:00:25 \u001B[90mv\u001B[0m #427 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 6. F. Time: 1518L\n",
- "00:00:25 \u001B[90mv\u001B[0m #428 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 7. G. Time: 1415L\n",
- "00:00:25 \u001B[90mv\u001B[0m #429 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 8. H. Time: 1510L\n",
- "00:00:25 \u001B[90mv\u001B[0m #430 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 9. I. Time: 1445L\n",
- "00:00:25 \u001B[90mv\u001B[0m #431 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 10. J. Time: 1636L\n",
- "00:00:25 \u001B[90mv\u001B[0m #432 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 11. K. Time: 1317L\n",
- "00:00:25 \u001B[90mv\u001B[0m #433 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:00:25 \u001B[90mv\u001B[0m #434 > > \u001B[38;2;146;146;178m│\u001B[0m Solution: pprrqqpp\n",
- "00:00:25 \u001B[90mv\u001B[0m #435 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. A. Time: 2255L\n",
- "00:00:25 \u001B[90mv\u001B[0m #436 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 2. B. Time: 2408L\n",
- "00:00:25 \u001B[90mv\u001B[0m #437 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 3. C. Time: 2393L\n",
- "00:00:25 \u001B[90mv\u001B[0m #438 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 4. D. Time: 1675L\n",
- "00:00:25 \u001B[90mv\u001B[0m #439 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 5. E. Time: 1911L\n",
- "00:00:25 \u001B[90mv\u001B[0m #440 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 6. F. Time: 2126L\n",
- "00:00:25 \u001B[90mv\u001B[0m #441 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 7. G. Time: 1504L\n",
- "00:00:25 \u001B[90mv\u001B[0m #442 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 8. H. Time: 1715L\n",
- "00:00:25 \u001B[90mv\u001B[0m #443 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 9. I. Time: 1537L\n",
- "00:00:25 \u001B[90mv\u001B[0m #444 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 10. J. Time: 1522L\n",
- "00:00:25 \u001B[90mv\u001B[0m #445 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 11. K. Time: 1322L\n",
- "00:00:25 \u001B[90mv\u001B[0m #446 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:00:25 \u001B[90mv\u001B[0m #447 > > \u001B[38;2;146;146;178m│\u001B[0m Solution:\n",
- "00:00:25 \u001B[90mv\u001B[0m #448 > > aaaaaaaaaaaaaaccccccabbbbbbbaaacccbbbaaccccccccccacbbbbbbbbbbbbbcccccccbbbbbbbb\n",
- "00:00:25 \u001B[90mv\u001B[0m #449 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. A. Time: 13073L\n",
- "00:00:25 \u001B[90mv\u001B[0m #450 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 2. B. Time: 11519L\n",
- "00:00:25 \u001B[90mv\u001B[0m #451 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 3. C. Time: 8373L\n",
- "00:00:25 \u001B[90mv\u001B[0m #452 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 4. D. Time: 5860L\n",
- "00:00:25 \u001B[90mv\u001B[0m #453 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 5. E. Time: 6490L\n",
- "00:00:25 \u001B[90mv\u001B[0m #454 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 6. F. Time: 6325L\n",
- "00:00:25 \u001B[90mv\u001B[0m #455 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 7. G. Time: 5799L\n",
- "00:00:25 \u001B[90mv\u001B[0m #456 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 8. H. Time: 7099L\n",
- "00:00:25 \u001B[90mv\u001B[0m #457 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 9. I. Time: 6133L\n",
- "00:00:25 \u001B[90mv\u001B[0m #458 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 10. J. Time: 5993L\n",
- "00:00:25 \u001B[90mv\u001B[0m #459 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 11. K. Time: 2040L\n",
- "00:00:25 \u001B[90mv\u001B[0m #460 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:00:25 \u001B[90mv\u001B[0m #461 > > \u001B[38;2;146;146;178m│\u001B[0m Input\n",
- "00:00:25 \u001B[90mv\u001B[0m #462 > > | Expected | Result | Best\n",
- "00:00:25 \u001B[90mv\u001B[0m #463 > > \u001B[38;2;146;146;178m│\u001B[0m ---\n",
- "00:00:25 \u001B[90mv\u001B[0m #464 > > | --- | --- | ---\n",
- "00:00:25 \u001B[90mv\u001B[0m #465 > > \u001B[38;2;146;146;178m│\u001B[0m abc\n",
- "00:00:25 \u001B[90mv\u001B[0m #466 > > | abc | abc | (11, 1219)\n",
- "00:00:25 \u001B[90mv\u001B[0m #467 > > \u001B[38;2;146;146;178m│\u001B[0m accabb\n",
- "00:00:25 \u001B[90mv\u001B[0m #468 > > | acb | acb | (11, 1317)\n",
- "00:00:25 \u001B[90mv\u001B[0m #469 > > \u001B[38;2;146;146;178m│\u001B[0m pprrqqpp\n",
- "00:00:25 \u001B[90mv\u001B[0m #470 > > | prq | prq | (11, 1322)\n",
- "00:00:25 \u001B[90mv\u001B[0m #471 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:00:25 \u001B[90mv\u001B[0m #472 > > aaaaaaaaaaaaaaccccccabbbbbbbaaacccbbbaaccccccccccacbbbbbbbbbbbbbcccccccbbbbbbbb\n",
- "00:00:25 \u001B[90mv\u001B[0m #473 > > | acb | acb | (11, 2040)\n",
- "00:00:25 \u001B[90mv\u001B[0m #474 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:00:25 \u001B[90mv\u001B[0m #475 > > \u001B[38;2;146;146;178m│\u001B[0m Averages\n",
- "00:00:25 \u001B[90mv\u001B[0m #476 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. Average Time: 4622L\n",
- "00:00:25 \u001B[90mv\u001B[0m #477 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 2. Average Time: 4483L\n",
- "00:00:25 \u001B[90mv\u001B[0m #478 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 3. Average Time: 3800L\n",
- "00:00:25 \u001B[90mv\u001B[0m #479 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 4. Average Time: 2613L\n",
- "00:00:25 \u001B[90mv\u001B[0m #480 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 5. Average Time: 2828L\n",
- "00:00:25 \u001B[90mv\u001B[0m #481 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 6. Average Time: 2828L\n",
- "00:00:25 \u001B[90mv\u001B[0m #482 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 7. Average Time: 2505L\n",
- "00:00:25 \u001B[90mv\u001B[0m #483 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 8. Average Time: 2926L\n",
- "00:00:25 \u001B[90mv\u001B[0m #484 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 9. Average Time: 2652L\n",
- "00:00:25 \u001B[90mv\u001B[0m #485 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 10. Average Time: 2599L\n",
- "00:00:25 \u001B[90mv\u001B[0m #486 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 11. Average Time: 1474L\n",
- "00:00:25 \u001B[90mv\u001B[0m #487 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:00:25 \u001B[90mv\u001B[0m #488 > > \u001B[38;2;146;146;178m│\u001B[0m Ranking\n",
- "00:00:25 \u001B[90mv\u001B[0m #489 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. Average Time: 4622L\n",
- "00:00:25 \u001B[90mv\u001B[0m #490 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 2. Average Time: 4483L\n",
- "00:00:25 \u001B[90mv\u001B[0m #491 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 3. Average Time: 3800L\n",
- "00:00:25 \u001B[90mv\u001B[0m #492 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 8. Average Time: 2926L\n",
- "00:00:25 \u001B[90mv\u001B[0m #493 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 5. Average Time: 2828L\n",
- "00:00:25 \u001B[90mv\u001B[0m #494 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 6. Average Time: 2828L\n",
- "00:00:25 \u001B[90mv\u001B[0m #495 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 9. Average Time: 2652L\n",
- "00:00:25 \u001B[90mv\u001B[0m #496 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 4. Average Time: 2613L\n",
- "00:00:25 \u001B[90mv\u001B[0m #497 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 10. Average Time: 2599L\n",
- "00:00:25 \u001B[90mv\u001B[0m #498 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 7. Average Time: 2505L\n",
- "00:00:25 \u001B[90mv\u001B[0m #499 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 11. Average Time: 1474L\n",
- "00:00:25 \u001B[90mv\u001B[0m #500 > >\n",
- "00:00:25 \u001B[90mv\u001B[0m #501 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:00:25 \u001B[90mv\u001B[0m #502 > > //// test\n",
- "00:00:25 \u001B[90mv\u001B[0m #503 > >\n",
- "00:00:25 \u001B[90mv\u001B[0m #504 > > let solutions = [[\n",
- "00:00:25 \u001B[90mv\u001B[0m #505 > > \"A\",\n",
- "00:00:25 \u001B[90mv\u001B[0m #506 > > fun input ->\n",
- "00:00:25 \u001B[90mv\u001B[0m #507 > > input\n",
- "00:00:25 \u001B[90mv\u001B[0m #508 > > |> Seq.toList\n",
- "00:00:25 \u001B[90mv\u001B[0m #509 > > |> List.fold (fun acc x -> if List.contains x acc then acc else acc @ [[\n",
- "00:00:25 \u001B[90mv\u001B[0m #510 > > x ]]) [[]]\n",
- "00:00:25 \u001B[90mv\u001B[0m #511 > > |> Seq.toArray\n",
- "00:00:25 \u001B[90mv\u001B[0m #512 > > |> String\n",
- "00:00:25 \u001B[90mv\u001B[0m #513 > >\n",
- "00:00:25 \u001B[90mv\u001B[0m #514 > > \"B\",\n",
- "00:00:25 \u001B[90mv\u001B[0m #515 > > fun input ->\n",
- "00:00:25 \u001B[90mv\u001B[0m #516 > > input\n",
- "00:00:25 \u001B[90mv\u001B[0m #517 > > |> Seq.rev\n",
- "00:00:25 \u001B[90mv\u001B[0m #518 > > |> fun list -> Seq.foldBack (fun x acc -> if List.contains x acc then\n",
- "00:00:25 \u001B[90mv\u001B[0m #519 > > acc else x :: acc) list [[]]\n",
- "00:00:25 \u001B[90mv\u001B[0m #520 > > |> Seq.rev\n",
- "00:00:25 \u001B[90mv\u001B[0m #521 > > |> Seq.toArray\n",
- "00:00:25 \u001B[90mv\u001B[0m #522 > > |> String\n",
- "00:00:25 \u001B[90mv\u001B[0m #523 > >\n",
- "00:00:25 \u001B[90mv\u001B[0m #524 > > \"C\",\n",
- "00:00:25 \u001B[90mv\u001B[0m #525 > > fun input ->\n",
- "00:00:25 \u001B[90mv\u001B[0m #526 > > input\n",
- "00:00:25 \u001B[90mv\u001B[0m #527 > > |> Seq.rev\n",
- "00:00:25 \u001B[90mv\u001B[0m #528 > > |> fun list -> Seq.foldBack (fun x (set, acc) -> if Set.contains x set\n",
- "00:00:25 \u001B[90mv\u001B[0m #529 > > then set, acc else set.Add x, x :: acc) list (Set.empty, [[]])\n",
- "00:00:25 \u001B[90mv\u001B[0m #530 > > |> snd\n",
- "00:00:25 \u001B[90mv\u001B[0m #531 > > |> Seq.rev\n",
- "00:00:25 \u001B[90mv\u001B[0m #532 > > |> Seq.toArray\n",
- "00:00:25 \u001B[90mv\u001B[0m #533 > > |> String\n",
- "00:00:25 \u001B[90mv\u001B[0m #534 > >\n",
- "00:00:25 \u001B[90mv\u001B[0m #535 > > \"D\",\n",
- "00:00:25 \u001B[90mv\u001B[0m #536 > > fun input ->\n",
- "00:00:25 \u001B[90mv\u001B[0m #537 > > input\n",
- "00:00:25 \u001B[90mv\u001B[0m #538 > > |> Seq.fold (fun (set, acc) x -> if Set.contains x set then set, acc\n",
- "00:00:25 \u001B[90mv\u001B[0m #539 > > else set.Add x, Array.append acc [[| x |]]) (Set.empty, [[||]])\n",
- "00:00:25 \u001B[90mv\u001B[0m #540 > > |> snd\n",
- "00:00:25 \u001B[90mv\u001B[0m #541 > > |> String\n",
- "00:00:25 \u001B[90mv\u001B[0m #542 > >\n",
- "00:00:25 \u001B[90mv\u001B[0m #543 > > \"E\",\n",
- "00:00:25 \u001B[90mv\u001B[0m #544 > > fun input ->\n",
- "00:00:25 \u001B[90mv\u001B[0m #545 > > input\n",
- "00:00:25 \u001B[90mv\u001B[0m #546 > > |> Seq.fold (fun (set, acc) x -> if Set.contains x set then set, acc\n",
- "00:00:25 \u001B[90mv\u001B[0m #547 > > else set.Add x, x :: acc) (Set.empty, [[]])\n",
- "00:00:25 \u001B[90mv\u001B[0m #548 > > |> snd\n",
- "00:00:25 \u001B[90mv\u001B[0m #549 > > |> List.rev\n",
- "00:00:25 \u001B[90mv\u001B[0m #550 > > |> List.toArray\n",
- "00:00:25 \u001B[90mv\u001B[0m #551 > > |> String\n",
- "00:00:25 \u001B[90mv\u001B[0m #552 > >\n",
- "00:00:25 \u001B[90mv\u001B[0m #553 > > \"F\",\n",
- "00:00:25 \u001B[90mv\u001B[0m #554 > > fun input ->\n",
- "00:00:25 \u001B[90mv\u001B[0m #555 > > input\n",
- "00:00:25 \u001B[90mv\u001B[0m #556 > > |> Seq.fold (fun (set, acc) x -> if Set.contains x set then set, acc\n",
- "00:00:25 \u001B[90mv\u001B[0m #557 > > else set.Add x, acc @ [[ x ]]) (Set.empty, [[]])\n",
- "00:00:25 \u001B[90mv\u001B[0m #558 > > |> snd\n",
- "00:00:25 \u001B[90mv\u001B[0m #559 > > |> List.toArray\n",
- "00:00:25 \u001B[90mv\u001B[0m #560 > > |> String\n",
- "00:00:25 \u001B[90mv\u001B[0m #561 > >\n",
- "00:00:25 \u001B[90mv\u001B[0m #562 > > \"G\",\n",
- "00:00:25 \u001B[90mv\u001B[0m #563 > > fun input ->\n",
- "00:00:25 \u001B[90mv\u001B[0m #564 > > input\n",
- "00:00:25 \u001B[90mv\u001B[0m #565 > > |> Seq.fold (fun (set, acc) x -> if Set.contains x set then set, acc\n",
- "00:00:25 \u001B[90mv\u001B[0m #566 > > else set.Add x, x :: acc) (Set.empty, [[]])\n",
- "00:00:25 \u001B[90mv\u001B[0m #567 > > |> snd\n",
- "00:00:25 \u001B[90mv\u001B[0m #568 > > |> List.toArray\n",
- "00:00:25 \u001B[90mv\u001B[0m #569 > > |> Array.rev\n",
- "00:00:25 \u001B[90mv\u001B[0m #570 > > |> String\n",
- "00:00:25 \u001B[90mv\u001B[0m #571 > >\n",
- "00:00:25 \u001B[90mv\u001B[0m #572 > > \"H\",\n",
- "00:00:25 \u001B[90mv\u001B[0m #573 > > fun input ->\n",
- "00:00:25 \u001B[90mv\u001B[0m #574 > > input\n",
- "00:00:25 \u001B[90mv\u001B[0m #575 > > |> Seq.toList\n",
- "00:00:25 \u001B[90mv\u001B[0m #576 > > |> fun list ->\n",
- "00:00:25 \u001B[90mv\u001B[0m #577 > > let rec loop set = function\n",
- "00:00:25 \u001B[90mv\u001B[0m #578 > > | head :: tail when Set.contains head set -> loop set tail\n",
- "00:00:25 \u001B[90mv\u001B[0m #579 > > | head :: tail -> (loop (set.Add head) tail) @ [[ head ]]\n",
- "00:00:25 \u001B[90mv\u001B[0m #580 > > | [[]] -> [[]]\n",
- "00:00:25 \u001B[90mv\u001B[0m #581 > > loop Set.empty list\n",
- "00:00:25 \u001B[90mv\u001B[0m #582 > > |> List.rev\n",
- "00:00:25 \u001B[90mv\u001B[0m #583 > > |> List.toArray\n",
- "00:00:25 \u001B[90mv\u001B[0m #584 > > |> String\n",
- "00:00:25 \u001B[90mv\u001B[0m #585 > >\n",
- "00:00:25 \u001B[90mv\u001B[0m #586 > > \"I\",\n",
- "00:00:25 \u001B[90mv\u001B[0m #587 > > fun input ->\n",
- "00:00:25 \u001B[90mv\u001B[0m #588 > > input\n",
- "00:00:25 \u001B[90mv\u001B[0m #589 > > |> Seq.toList\n",
- "00:00:25 \u001B[90mv\u001B[0m #590 > > |> fun list ->\n",
- "00:00:25 \u001B[90mv\u001B[0m #591 > > let rec loop set = function\n",
- "00:00:25 \u001B[90mv\u001B[0m #592 > > | head :: tail when Set.contains head set -> loop set tail\n",
- "00:00:25 \u001B[90mv\u001B[0m #593 > > | head :: tail -> loop (set.Add head) tail |> Array.append [[|\n",
- "00:00:25 \u001B[90mv\u001B[0m #594 > > head |]]\n",
- "00:00:25 \u001B[90mv\u001B[0m #595 > > | [[]] -> [[||]]\n",
- "00:00:25 \u001B[90mv\u001B[0m #596 > > loop Set.empty list\n",
- "00:00:25 \u001B[90mv\u001B[0m #597 > > |> String\n",
- "00:00:25 \u001B[90mv\u001B[0m #598 > >\n",
- "00:00:25 \u001B[90mv\u001B[0m #599 > > \"J\",\n",
- "00:00:25 \u001B[90mv\u001B[0m #600 > > fun input ->\n",
- "00:00:25 \u001B[90mv\u001B[0m #601 > > input\n",
- "00:00:25 \u001B[90mv\u001B[0m #602 > > |> Seq.toList\n",
- "00:00:25 \u001B[90mv\u001B[0m #603 > > |> fun list ->\n",
- "00:00:25 \u001B[90mv\u001B[0m #604 > > let rec loop set = function\n",
- "00:00:25 \u001B[90mv\u001B[0m #605 > > | head :: tail when Set.contains head set -> loop set tail\n",
- "00:00:25 \u001B[90mv\u001B[0m #606 > > | head :: tail -> head :: loop (set.Add head) tail\n",
- "00:00:25 \u001B[90mv\u001B[0m #607 > > | [[]] -> [[]]\n",
- "00:00:25 \u001B[90mv\u001B[0m #608 > > loop Set.empty list\n",
- "00:00:25 \u001B[90mv\u001B[0m #609 > > |> List.toArray\n",
- "00:00:25 \u001B[90mv\u001B[0m #610 > > |> String\n",
- "00:00:25 \u001B[90mv\u001B[0m #611 > >\n",
- "00:00:25 \u001B[90mv\u001B[0m #612 > > \"K\",\n",
- "00:00:25 \u001B[90mv\u001B[0m #613 > > fun input ->\n",
- "00:00:25 \u001B[90mv\u001B[0m #614 > > input\n",
- "00:00:25 \u001B[90mv\u001B[0m #615 > > |> Seq.distinct\n",
- "00:00:25 \u001B[90mv\u001B[0m #616 > > |> Seq.toArray\n",
- "00:00:25 \u001B[90mv\u001B[0m #617 > > |> String\n",
- "00:00:25 \u001B[90mv\u001B[0m #618 > > ]]\n",
- "00:00:25 \u001B[90mv\u001B[0m #619 > > let testCases = seq {\n",
- "00:00:25 \u001B[90mv\u001B[0m #620 > > \"abc\", \"abc\"\n",
- "00:00:25 \u001B[90mv\u001B[0m #621 > > \"accabb\", \"acb\"\n",
- "00:00:25 \u001B[90mv\u001B[0m #622 > > \"pprrqqpp\", \"prq\"\n",
- "00:00:25 \u001B[90mv\u001B[0m #623 > >\n",
- "00:00:25 \u001B[90mv\u001B[0m #624 > > \"aaaaaaaaaaaaaaccccccabbbbbbbaaacccbbbaaccccccccccacbbbbbbbbbbbbbcccccccbbbbbbbb\n",
- "00:00:25 \u001B[90mv\u001B[0m #625 > > \", \"acb\"\n",
- "00:00:25 \u001B[90mv\u001B[0m #626 > > }\n",
- "00:00:25 \u001B[90mv\u001B[0m #627 > > let rec uniqueLettersTests = runAll (nameof uniqueLettersTests) _count solutions\n",
- "00:00:25 \u001B[90mv\u001B[0m #628 > > testCases\n",
- "00:00:25 \u001B[90mv\u001B[0m #629 > > uniqueLettersTests\n",
- "00:00:25 \u001B[90mv\u001B[0m #630 > > |> sortResultList\n",
- "00:00:34 \u001B[90mv\u001B[0m #631 > >\n",
- "00:00:34 \u001B[90mv\u001B[0m #632 > > ── [ 8.71s - stdout ] ──────────────────────────────────────────────────────────\n",
- "00:00:34 \u001B[90mv\u001B[0m #633 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:34 \u001B[90mv\u001B[0m #634 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:34 \u001B[90mv\u001B[0m #635 > > \u001B[38;2;38;140;38m│\u001B[0m Test: uniqueLettersTests\n",
- "00:00:34 \u001B[90mv\u001B[0m #636 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:34 \u001B[90mv\u001B[0m #637 > > \u001B[38;2;38;140;38m│\u001B[0m Solution: abc\n",
- "00:00:34 \u001B[90mv\u001B[0m #638 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 1. A. Time: 2L\n",
- "00:00:34 \u001B[90mv\u001B[0m #639 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 2. B. Time: 3L\n",
- "00:00:34 \u001B[90mv\u001B[0m #640 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 3. C. Time: 4L\n",
- "00:00:34 \u001B[90mv\u001B[0m #641 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 4. D. Time: 2L\n",
- "00:00:34 \u001B[90mv\u001B[0m #642 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 5. E. Time: 2L\n",
- "00:00:34 \u001B[90mv\u001B[0m #643 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 6. F. Time: 1L\n",
- "00:00:34 \u001B[90mv\u001B[0m #644 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 7. G. Time: 1L\n",
- "00:00:34 \u001B[90mv\u001B[0m #645 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 8. H. Time: 2L\n",
- "00:00:34 \u001B[90mv\u001B[0m #646 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 9. I. Time: 3L\n",
- "00:00:34 \u001B[90mv\u001B[0m #647 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 10. J. Time: 1L\n",
- "00:00:34 \u001B[90mv\u001B[0m #648 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 11. K. Time: 3L\n",
- "00:00:34 \u001B[90mv\u001B[0m #649 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:34 \u001B[90mv\u001B[0m #650 > > \u001B[38;2;38;140;38m│\u001B[0m Solution: accabb\n",
- "00:00:34 \u001B[90mv\u001B[0m #651 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 1. A. Time: 1L\n",
- "00:00:34 \u001B[90mv\u001B[0m #652 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 2. B. Time: 1L\n",
- "00:00:34 \u001B[90mv\u001B[0m #653 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 3. C. Time: 1L\n",
- "00:00:34 \u001B[90mv\u001B[0m #654 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 4. D. Time: 0L\n",
- "00:00:34 \u001B[90mv\u001B[0m #655 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 5. E. Time: 0L\n",
- "00:00:34 \u001B[90mv\u001B[0m #656 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 6. F. Time: 0L\n",
- "00:00:34 \u001B[90mv\u001B[0m #657 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 7. G. Time: 0L\n",
- "00:00:34 \u001B[90mv\u001B[0m #658 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 8. H. Time: 0L\n",
- "00:00:34 \u001B[90mv\u001B[0m #659 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 9. I. Time: 0L\n",
- "00:00:34 \u001B[90mv\u001B[0m #660 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 10. J. Time: 0L\n",
- "00:00:34 \u001B[90mv\u001B[0m #661 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 11. K. Time: 1L\n",
- "00:00:34 \u001B[90mv\u001B[0m #662 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:34 \u001B[90mv\u001B[0m #663 > > \u001B[38;2;38;140;38m│\u001B[0m Solution: pprrqqpp\n",
- "00:00:34 \u001B[90mv\u001B[0m #664 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 1. A. Time: 1L\n",
- "00:00:34 \u001B[90mv\u001B[0m #665 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 2. B. Time: 1L\n",
- "00:00:34 \u001B[90mv\u001B[0m #666 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 3. C. Time: 1L\n",
- "00:00:34 \u001B[90mv\u001B[0m #667 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 4. D. Time: 0L\n",
- "00:00:34 \u001B[90mv\u001B[0m #668 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 5. E. Time: 1L\n",
- "00:00:34 \u001B[90mv\u001B[0m #669 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 6. F. Time: 1L\n",
- "00:00:34 \u001B[90mv\u001B[0m #670 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 7. G. Time: 1L\n",
- "00:00:34 \u001B[90mv\u001B[0m #671 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 8. H. Time: 0L\n",
- "00:00:34 \u001B[90mv\u001B[0m #672 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 9. I. Time: 1L\n",
- "00:00:34 \u001B[90mv\u001B[0m #673 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 10. J. Time: 1L\n",
- "00:00:34 \u001B[90mv\u001B[0m #674 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 11. K. Time: 1L\n",
- "00:00:34 \u001B[90mv\u001B[0m #675 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:34 \u001B[90mv\u001B[0m #676 > > \u001B[38;2;38;140;38m│\u001B[0m Solution:\n",
- "00:00:34 \u001B[90mv\u001B[0m #677 > > aaaaaaaaaaaaaaccccccabbbbbbbaaacccbbbaaccccccccccacbbbbbbbbbbbbbcccccccbbbbbbbb\u001B[38;2;38;140;38m│\u001B[0m Test case 1. A. Time: 11L\n",
- "00:00:34 \u001B[90mv\u001B[0m #678 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 2. B. Time: 9L\n",
- "00:00:34 \u001B[90mv\u001B[0m #679 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 3. C. Time: 12L\n",
- "00:00:34 \u001B[90mv\u001B[0m #680 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 4. D. Time: 8L\n",
- "00:00:34 \u001B[90mv\u001B[0m #681 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 5. E. Time: 8L\n",
- "00:00:34 \u001B[90mv\u001B[0m #682 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 6. F. Time: 9L\n",
- "00:00:34 \u001B[90mv\u001B[0m #683 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 7. G. Time: 9L\n",
- "00:00:34 \u001B[90mv\u001B[0m #684 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 8. H. Time: 7L\n",
- "00:00:34 \u001B[90mv\u001B[0m #685 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 9. I. Time: 6L\n",
- "00:00:34 \u001B[90mv\u001B[0m #686 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 10. J. Time: 6L\n",
- "00:00:34 \u001B[90mv\u001B[0m #687 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 11. K. Time: 4L\n",
- "00:00:34 \u001B[90mv\u001B[0m #688 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:34 \u001B[90mv\u001B[0m #689 > > \u001B[38;2;38;140;38m│\u001B[0m Input\n",
- "00:00:34 \u001B[90mv\u001B[0m #690 > > | Expected\t| Result\t| Best\n",
- "00:00:34 \u001B[90mv\u001B[0m #691 > > \u001B[38;2;38;140;38m│\u001B[0m ---\n",
- "00:00:34 \u001B[90mv\u001B[0m #692 > > | --- \t| --- \t| ---\n",
- "00:00:34 \u001B[90mv\u001B[0m #693 > > \u001B[38;2;38;140;38m│\u001B[0m abc\n",
- "00:00:34 \u001B[90mv\u001B[0m #694 > > | abc \t| abc \t| (6, 1)\n",
- "00:00:34 \u001B[90mv\u001B[0m #695 > > \u001B[38;2;38;140;38m│\u001B[0m accabb\n",
- "00:00:34 \u001B[90mv\u001B[0m #696 > > | acb \t| acb \t| (4, 0)\n",
- "00:00:34 \u001B[90mv\u001B[0m #697 > > \u001B[38;2;38;140;38m│\u001B[0m pprrqqpp\n",
- "00:00:34 \u001B[90mv\u001B[0m #698 > > | prq \t| prq \t| (4, 0)\n",
- "00:00:34 \u001B[90mv\u001B[0m #699 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:34 \u001B[90mv\u001B[0m #700 > > aaaaaaaaaaaaaaccccccabbbbbbbaaacccbbbaaccccccccccacbbbbbbbbbbbbbcccccccbbbbbbbb\t|\n",
- "00:00:34 \u001B[90mv\u001B[0m #701 > > acb \t| acb \t| (11, 4)\n",
- "00:00:34 \u001B[90mv\u001B[0m #702 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:34 \u001B[90mv\u001B[0m #703 > > \u001B[38;2;38;140;38m│\u001B[0m Average Ranking\n",
- "00:00:34 \u001B[90mv\u001B[0m #704 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 4. Average Time: 2L\n",
- "00:00:34 \u001B[90mv\u001B[0m #705 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 5. Average Time: 2L\n",
- "00:00:34 \u001B[90mv\u001B[0m #706 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 6. Average Time: 2L\n",
- "00:00:34 \u001B[90mv\u001B[0m #707 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 7. Average Time: 2L\n",
- "00:00:34 \u001B[90mv\u001B[0m #708 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 8. Average Time: 2L\n",
- "00:00:34 \u001B[90mv\u001B[0m #709 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 9. Average Time: 2L\n",
- "00:00:34 \u001B[90mv\u001B[0m #710 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 10. Average Time: 2L\n",
- "00:00:34 \u001B[90mv\u001B[0m #711 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 11. Average Time: 2L\n",
- "00:00:34 \u001B[90mv\u001B[0m #712 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 1. Average Time: 3L\n",
- "00:00:34 \u001B[90mv\u001B[0m #713 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 2. Average Time: 3L\n",
- "00:00:34 \u001B[90mv\u001B[0m #714 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 3. Average Time: 4L\n",
- "00:00:34 \u001B[90mv\u001B[0m #715 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:34 \u001B[90mv\u001B[0m #716 > >\n",
- "00:00:34 \u001B[90mv\u001B[0m #717 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:34 \u001B[90mv\u001B[0m #718 > > \u001B[38;2;146;146;178m│\u001B[0m ## rotateStringsTests\n",
- "00:00:34 \u001B[90mv\u001B[0m #719 > >\n",
- "00:00:34 \u001B[90mv\u001B[0m #720 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:34 \u001B[90mv\u001B[0m #721 > > \u001B[38;2;146;146;178m│\u001B[0m https://www.hackerrank.com/challenges/rotate-string/forum\n",
- "00:00:34 \u001B[90mv\u001B[0m #722 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:00:34 \u001B[90mv\u001B[0m #723 > > \u001B[38;2;146;146;178m│\u001B[0m Test: RotateStrings\n",
- "00:00:34 \u001B[90mv\u001B[0m #724 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:00:34 \u001B[90mv\u001B[0m #725 > > \u001B[38;2;146;146;178m│\u001B[0m Solution: abc\n",
- "00:00:34 \u001B[90mv\u001B[0m #726 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. A. Time: 1842L\n",
- "00:00:34 \u001B[90mv\u001B[0m #727 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 2. B. Time: 1846L\n",
- "00:00:34 \u001B[90mv\u001B[0m #728 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 3. C. Time: 1936L\n",
- "00:00:34 \u001B[90mv\u001B[0m #729 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 4. CA. Time: 2224L\n",
- "00:00:34 \u001B[90mv\u001B[0m #730 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 5. CB. Time: 2329L\n",
- "00:00:34 \u001B[90mv\u001B[0m #731 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 6. D. Time: 2474L\n",
- "00:00:34 \u001B[90mv\u001B[0m #732 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 7. E. Time: 1664L\n",
- "00:00:34 \u001B[90mv\u001B[0m #733 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 8. F. Time: 1517L\n",
- "00:00:34 \u001B[90mv\u001B[0m #734 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 9. FA. Time: 1651L\n",
- "00:00:34 \u001B[90mv\u001B[0m #735 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 10. FB. Time: 3764L\n",
- "00:00:34 \u001B[90mv\u001B[0m #736 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 11. FC. Time: 5415L\n",
- "00:00:34 \u001B[90mv\u001B[0m #737 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:00:34 \u001B[90mv\u001B[0m #738 > > \u001B[38;2;146;146;178m│\u001B[0m Solution: abcde\n",
- "00:00:34 \u001B[90mv\u001B[0m #739 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. A. Time: 3356L\n",
- "00:00:34 \u001B[90mv\u001B[0m #740 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 2. B. Time: 2592L\n",
- "00:00:34 \u001B[90mv\u001B[0m #741 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 3. C. Time: 2346L\n",
- "00:00:34 \u001B[90mv\u001B[0m #742 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 4. CA. Time: 2997L\n",
- "00:00:34 \u001B[90mv\u001B[0m #743 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 5. CB. Time: 3061L\n",
- "00:00:34 \u001B[90mv\u001B[0m #744 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 6. D. Time: 4051L\n",
- "00:00:34 \u001B[90mv\u001B[0m #745 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 7. E. Time: 1905L\n",
- "00:00:34 \u001B[90mv\u001B[0m #746 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 8. F. Time: 1771L\n",
- "00:00:34 \u001B[90mv\u001B[0m #747 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 9. FA. Time: 2175L\n",
- "00:00:34 \u001B[90mv\u001B[0m #748 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 10. FB. Time: 3275L\n",
- "00:00:34 \u001B[90mv\u001B[0m #749 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 11. FC. Time: 5266L\n",
- "00:00:34 \u001B[90mv\u001B[0m #750 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:00:34 \u001B[90mv\u001B[0m #751 > > \u001B[38;2;146;146;178m│\u001B[0m Solution: abcdefghi\n",
- "00:00:34 \u001B[90mv\u001B[0m #752 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. A. Time: 4492L\n",
- "00:00:34 \u001B[90mv\u001B[0m #753 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 2. B. Time: 3526L\n",
- "00:00:34 \u001B[90mv\u001B[0m #754 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 3. C. Time: 3583L\n",
- "00:00:34 \u001B[90mv\u001B[0m #755 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 4. CA. Time: 3711L\n",
- "00:00:34 \u001B[90mv\u001B[0m #756 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 5. CB. Time: 4783L\n",
- "00:00:34 \u001B[90mv\u001B[0m #757 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 6. D. Time: 7557L\n",
- "00:00:34 \u001B[90mv\u001B[0m #758 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 7. E. Time: 3452L\n",
- "00:00:34 \u001B[90mv\u001B[0m #759 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 8. F. Time: 3050L\n",
- "00:00:34 \u001B[90mv\u001B[0m #760 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 9. FA. Time: 3275L\n",
- "00:00:34 \u001B[90mv\u001B[0m #761 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 10. FB. Time: 4635L\n",
- "00:00:34 \u001B[90mv\u001B[0m #762 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 11. FC. Time: 5616L\n",
- "00:00:34 \u001B[90mv\u001B[0m #763 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:00:34 \u001B[90mv\u001B[0m #764 > > \u001B[38;2;146;146;178m│\u001B[0m Solution: abab\n",
- "00:00:34 \u001B[90mv\u001B[0m #765 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. A. Time: 2093L\n",
- "00:00:34 \u001B[90mv\u001B[0m #766 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 2. B. Time: 1843L\n",
- "00:00:34 \u001B[90mv\u001B[0m #767 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 3. C. Time: 1746L\n",
- "00:00:34 \u001B[90mv\u001B[0m #768 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 4. CA. Time: 2085L\n",
- "00:00:34 \u001B[90mv\u001B[0m #769 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 5. CB. Time: 2139L\n",
- "00:00:34 \u001B[90mv\u001B[0m #770 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 6. D. Time: 2095L\n",
- "00:00:34 \u001B[90mv\u001B[0m #771 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 7. E. Time: 1723L\n",
- "00:00:34 \u001B[90mv\u001B[0m #772 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 8. F. Time: 1558L\n",
- "00:00:34 \u001B[90mv\u001B[0m #773 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 9. FA. Time: 1620L\n",
- "00:00:34 \u001B[90mv\u001B[0m #774 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 10. FB. Time: 2319L\n",
- "00:00:34 \u001B[90mv\u001B[0m #775 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 11. FC. Time: 3918L\n",
- "00:00:34 \u001B[90mv\u001B[0m #776 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:00:34 \u001B[90mv\u001B[0m #777 > > \u001B[38;2;146;146;178m│\u001B[0m Solution: aa\n",
- "00:00:34 \u001B[90mv\u001B[0m #778 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. A. Time: 1107L\n",
- "00:00:34 \u001B[90mv\u001B[0m #779 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 2. B. Time: 1241L\n",
- "00:00:34 \u001B[90mv\u001B[0m #780 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 3. C. Time: 1183L\n",
- "00:00:34 \u001B[90mv\u001B[0m #781 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 4. CA. Time: 1563L\n",
- "00:00:34 \u001B[90mv\u001B[0m #782 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 5. CB. Time: 1525L\n",
- "00:00:34 \u001B[90mv\u001B[0m #783 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 6. D. Time: 1591L\n",
- "00:00:34 \u001B[90mv\u001B[0m #784 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 7. E. Time: 1327L\n",
- "00:00:34 \u001B[90mv\u001B[0m #785 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 8. F. Time: 1151L\n",
- "00:00:34 \u001B[90mv\u001B[0m #786 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 9. FA. Time: 1180L\n",
- "00:00:34 \u001B[90mv\u001B[0m #787 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 10. FB. Time: 1733L\n",
- "00:00:34 \u001B[90mv\u001B[0m #788 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 11. FC. Time: 2817L\n",
- "00:00:34 \u001B[90mv\u001B[0m #789 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:00:34 \u001B[90mv\u001B[0m #790 > > \u001B[38;2;146;146;178m│\u001B[0m Solution: z\n",
- "00:00:34 \u001B[90mv\u001B[0m #791 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. A. Time: 816L\n",
- "00:00:34 \u001B[90mv\u001B[0m #792 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 2. B. Time: 745L\n",
- "00:00:34 \u001B[90mv\u001B[0m #793 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 3. C. Time: 928L\n",
- "00:00:34 \u001B[90mv\u001B[0m #794 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 4. CA. Time: 1375L\n",
- "00:00:34 \u001B[90mv\u001B[0m #795 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 5. CB. Time: 1029L\n",
- "00:00:34 \u001B[90mv\u001B[0m #796 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 6. D. Time: 852L\n",
- "00:00:34 \u001B[90mv\u001B[0m #797 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 7. E. Time: 712L\n",
- "00:00:34 \u001B[90mv\u001B[0m #798 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 8. F. Time: 263L\n",
- "00:00:34 \u001B[90mv\u001B[0m #799 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 9. FA. Time: 232L\n",
- "00:00:34 \u001B[90mv\u001B[0m #800 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 10. FB. Time: 773L\n",
- "00:00:34 \u001B[90mv\u001B[0m #801 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 11. FC. Time: 1789L\n",
- "00:00:34 \u001B[90mv\u001B[0m #802 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:00:34 \u001B[90mv\u001B[0m #803 > > \u001B[38;2;146;146;178m│\u001B[0m Input | Expected\n",
- "00:00:34 \u001B[90mv\u001B[0m #804 > >\n",
- "00:00:34 \u001B[90mv\u001B[0m #805 > > | Result\n",
- "00:00:34 \u001B[90mv\u001B[0m #806 > >\n",
- "00:00:34 \u001B[90mv\u001B[0m #807 > > | Best\n",
- "00:00:34 \u001B[90mv\u001B[0m #808 > > \u001B[38;2;146;146;178m│\u001B[0m --- | ---\n",
- "00:00:34 \u001B[90mv\u001B[0m #809 > >\n",
- "00:00:34 \u001B[90mv\u001B[0m #810 > > | ---\n",
- "00:00:34 \u001B[90mv\u001B[0m #811 > >\n",
- "00:00:34 \u001B[90mv\u001B[0m #812 > > | ---\n",
- "00:00:34 \u001B[90mv\u001B[0m #813 > > \u001B[38;2;146;146;178m│\u001B[0m abc | bca cab abc\n",
- "00:00:34 \u001B[90mv\u001B[0m #814 > >\n",
- "00:00:34 \u001B[90mv\u001B[0m #815 > > | bca cab abc\n",
- "00:00:34 \u001B[90mv\u001B[0m #816 > >\n",
- "00:00:34 \u001B[90mv\u001B[0m #817 > > | (8, 1517)\n",
- "00:00:34 \u001B[90mv\u001B[0m #818 > > \u001B[38;2;146;146;178m│\u001B[0m abcde | bcdea cdeab deabc eabcd abcde\n",
- "00:00:34 \u001B[90mv\u001B[0m #819 > > | bcdea cdeab deabc eabcd abcde\n",
- "00:00:34 \u001B[90mv\u001B[0m #820 > > | (8, 1771)\n",
- "00:00:34 \u001B[90mv\u001B[0m #821 > > \u001B[38;2;146;146;178m│\u001B[0m abcdefghi | bcdefghia cdefghiab defghiabc efghiabcd\n",
- "00:00:34 \u001B[90mv\u001B[0m #822 > > fghiabcde ghiabcdef hiabcdefg iabcdefgh abcdefghi | bcdefghia cdefghiab\n",
- "00:00:34 \u001B[90mv\u001B[0m #823 > > defghiabc efghiabcd fghiabcde ghiabcdef hiabcdefg iabcdefgh abcdefghi |\n",
- "00:00:34 \u001B[90mv\u001B[0m #824 > > (8, 3050)\n",
- "00:00:34 \u001B[90mv\u001B[0m #825 > > \u001B[38;2;146;146;178m│\u001B[0m abab | baba abab baba abab\n",
- "00:00:34 \u001B[90mv\u001B[0m #826 > > | baba abab baba abab\n",
- "00:00:34 \u001B[90mv\u001B[0m #827 > > | (8, 1558)\n",
- "00:00:34 \u001B[90mv\u001B[0m #828 > > \u001B[38;2;146;146;178m│\u001B[0m aa | aa aa\n",
- "00:00:34 \u001B[90mv\u001B[0m #829 > >\n",
- "00:00:34 \u001B[90mv\u001B[0m #830 > > | aa aa\n",
- "00:00:34 \u001B[90mv\u001B[0m #831 > >\n",
- "00:00:34 \u001B[90mv\u001B[0m #832 > > | (1, 1107)\n",
- "00:00:34 \u001B[90mv\u001B[0m #833 > > \u001B[38;2;146;146;178m│\u001B[0m z | z\n",
- "00:00:34 \u001B[90mv\u001B[0m #834 > >\n",
- "00:00:34 \u001B[90mv\u001B[0m #835 > > | z\n",
- "00:00:34 \u001B[90mv\u001B[0m #836 > >\n",
- "00:00:34 \u001B[90mv\u001B[0m #837 > > | (9, 232)\n",
- "00:00:34 \u001B[90mv\u001B[0m #838 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:00:34 \u001B[90mv\u001B[0m #839 > > \u001B[38;2;146;146;178m│\u001B[0m Averages\n",
- "00:00:34 \u001B[90mv\u001B[0m #840 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. Average Time: 2284L\n",
- "00:00:34 \u001B[90mv\u001B[0m #841 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 2. Average Time: 1965L\n",
- "00:00:34 \u001B[90mv\u001B[0m #842 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 3. Average Time: 1953L\n",
- "00:00:34 \u001B[90mv\u001B[0m #843 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 4. Average Time: 2325L\n",
- "00:00:34 \u001B[90mv\u001B[0m #844 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 5. Average Time: 2477L\n",
- "00:00:34 \u001B[90mv\u001B[0m #845 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 6. Average Time: 3103L\n",
- "00:00:34 \u001B[90mv\u001B[0m #846 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 7. Average Time: 1797L\n",
- "00:00:34 \u001B[90mv\u001B[0m #847 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 8. Average Time: 1551L\n",
- "00:00:34 \u001B[90mv\u001B[0m #848 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 9. Average Time: 1688L\n",
- "00:00:34 \u001B[90mv\u001B[0m #849 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 10. Average Time: 2749L\n",
- "00:00:34 \u001B[90mv\u001B[0m #850 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 11. Average Time: 4136L\n",
- "00:00:34 \u001B[90mv\u001B[0m #851 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:00:34 \u001B[90mv\u001B[0m #852 > > \u001B[38;2;146;146;178m│\u001B[0m Ranking\n",
- "00:00:34 \u001B[90mv\u001B[0m #853 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 11. Average Time: 4136L\n",
- "00:00:34 \u001B[90mv\u001B[0m #854 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 6. Average Time: 3103L\n",
- "00:00:34 \u001B[90mv\u001B[0m #855 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 10. Average Time: 2749L\n",
- "00:00:34 \u001B[90mv\u001B[0m #856 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 5. Average Time: 2477L\n",
- "00:00:34 \u001B[90mv\u001B[0m #857 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 4. Average Time: 2325L\n",
- "00:00:34 \u001B[90mv\u001B[0m #858 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. Average Time: 2284L\n",
- "00:00:34 \u001B[90mv\u001B[0m #859 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 2. Average Time: 1965L\n",
- "00:00:34 \u001B[90mv\u001B[0m #860 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 3. Average Time: 1953L\n",
- "00:00:34 \u001B[90mv\u001B[0m #861 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 7. Average Time: 1797L\n",
- "00:00:34 \u001B[90mv\u001B[0m #862 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 9. Average Time: 1688L\n",
- "00:00:34 \u001B[90mv\u001B[0m #863 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 8. Average Time: 1551L\n",
- "00:00:34 \u001B[90mv\u001B[0m #864 > >\n",
- "00:00:34 \u001B[90mv\u001B[0m #865 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:00:34 \u001B[90mv\u001B[0m #866 > > //// test\n",
- "00:00:34 \u001B[90mv\u001B[0m #867 > >\n",
- "00:00:34 \u001B[90mv\u001B[0m #868 > > let solutions = [[\n",
- "00:00:34 \u001B[90mv\u001B[0m #869 > > \"A\",\n",
- "00:00:34 \u001B[90mv\u001B[0m #870 > > fun (input: string) ->\n",
- "00:00:34 \u001B[90mv\u001B[0m #871 > > let resultList =\n",
- "00:00:34 \u001B[90mv\u001B[0m #872 > > List.fold (fun acc x ->\n",
- "00:00:34 \u001B[90mv\u001B[0m #873 > > let rotate (text: string) (letter: string) = (text |>\n",
- "00:00:34 \u001B[90mv\u001B[0m #874 > > SpiralSm.slice 1 (input.Length - 1)) + letter\n",
- "00:00:34 \u001B[90mv\u001B[0m #875 > > [[ rotate (if acc.IsEmpty then input else acc.Head) (string x)\n",
- "00:00:34 \u001B[90mv\u001B[0m #876 > > ]] @ acc\n",
- "00:00:34 \u001B[90mv\u001B[0m #877 > > ) [[]] (Seq.toList input)\n",
- "00:00:34 \u001B[90mv\u001B[0m #878 > >\n",
- "00:00:34 \u001B[90mv\u001B[0m #879 > > (resultList, \"\")\n",
- "00:00:34 \u001B[90mv\u001B[0m #880 > > ||> List.foldBack (fun acc x -> x + acc + \" \")\n",
- "00:00:34 \u001B[90mv\u001B[0m #881 > > |> _.TrimEnd()\n",
- "00:00:34 \u001B[90mv\u001B[0m #882 > >\n",
- "00:00:34 \u001B[90mv\u001B[0m #883 > > \"B\",\n",
- "00:00:34 \u001B[90mv\u001B[0m #884 > > fun input ->\n",
- "00:00:34 \u001B[90mv\u001B[0m #885 > > input\n",
- "00:00:34 \u001B[90mv\u001B[0m #886 > > |> Seq.toList\n",
- "00:00:34 \u001B[90mv\u001B[0m #887 > > |> List.fold (fun (acc: string list) letter ->\n",
- "00:00:34 \u001B[90mv\u001B[0m #888 > > let last =\n",
- "00:00:34 \u001B[90mv\u001B[0m #889 > > if acc.IsEmpty\n",
- "00:00:34 \u001B[90mv\u001B[0m #890 > > then input\n",
- "00:00:34 \u001B[90mv\u001B[0m #891 > > else acc.Head\n",
- "00:00:34 \u001B[90mv\u001B[0m #892 > >\n",
- "00:00:34 \u001B[90mv\u001B[0m #893 > > let item = last.[[1 .. input.Length - 1]] + string letter\n",
- "00:00:34 \u001B[90mv\u001B[0m #894 > >\n",
- "00:00:34 \u001B[90mv\u001B[0m #895 > > item :: acc\n",
- "00:00:34 \u001B[90mv\u001B[0m #896 > > ) [[]]\n",
- "00:00:34 \u001B[90mv\u001B[0m #897 > > |> List.rev\n",
- "00:00:34 \u001B[90mv\u001B[0m #898 > > |> SpiralSm.concat \" \"\n",
- "00:00:34 \u001B[90mv\u001B[0m #899 > >\n",
- "00:00:34 \u001B[90mv\u001B[0m #900 > > \"C\",\n",
- "00:00:34 \u001B[90mv\u001B[0m #901 > > fun input ->\n",
- "00:00:34 \u001B[90mv\u001B[0m #902 > > input\n",
- "00:00:34 \u001B[90mv\u001B[0m #903 > > |> Seq.toList\n",
- "00:00:34 \u001B[90mv\u001B[0m #904 > > |> List.fold (fun (acc: string list) letter -> acc.Head.[[ 1 ..\n",
- "00:00:34 \u001B[90mv\u001B[0m #905 > > input.Length - 1 ]] + string letter :: acc) [[ input ]]\n",
- "00:00:34 \u001B[90mv\u001B[0m #906 > > |> List.rev\n",
- "00:00:34 \u001B[90mv\u001B[0m #907 > > |> List.skip 1\n",
- "00:00:34 \u001B[90mv\u001B[0m #908 > > |> SpiralSm.concat \" \"\n",
- "00:00:34 \u001B[90mv\u001B[0m #909 > >\n",
- "00:00:34 \u001B[90mv\u001B[0m #910 > > \"CA\",\n",
- "00:00:34 \u001B[90mv\u001B[0m #911 > > fun input ->\n",
- "00:00:34 \u001B[90mv\u001B[0m #912 > > input\n",
- "00:00:34 \u001B[90mv\u001B[0m #913 > > |> Seq.fold (fun (acc: string list) letter -> acc.Head.[[ 1 ..\n",
- "00:00:34 \u001B[90mv\u001B[0m #914 > > input.Length - 1 ]] + string letter :: acc) [[ input ]]\n",
- "00:00:34 \u001B[90mv\u001B[0m #915 > > |> Seq.rev\n",
- "00:00:34 \u001B[90mv\u001B[0m #916 > > |> Seq.skip 1\n",
- "00:00:34 \u001B[90mv\u001B[0m #917 > > |> SpiralSm.concat \" \"\n",
- "00:00:34 \u001B[90mv\u001B[0m #918 > >\n",
- "00:00:34 \u001B[90mv\u001B[0m #919 > > \"CB\",\n",
- "00:00:34 \u001B[90mv\u001B[0m #920 > > fun input ->\n",
- "00:00:34 \u001B[90mv\u001B[0m #921 > > input\n",
- "00:00:34 \u001B[90mv\u001B[0m #922 > > |> Seq.toArray\n",
- "00:00:34 \u001B[90mv\u001B[0m #923 > > |> Array.fold (fun (acc: string[[]]) letter -> acc |> Array.append [[|\n",
- "00:00:34 \u001B[90mv\u001B[0m #924 > > acc.[[0]].[[ 1 .. input.Length - 1 ]] + string letter |]]) [[| input |]]\n",
- "00:00:34 \u001B[90mv\u001B[0m #925 > > |> Array.rev\n",
- "00:00:34 \u001B[90mv\u001B[0m #926 > > |> Array.skip 1\n",
- "00:00:34 \u001B[90mv\u001B[0m #927 > > |> SpiralSm.concat \" \"\n",
- "00:00:34 \u001B[90mv\u001B[0m #928 > >\n",
- "00:00:34 \u001B[90mv\u001B[0m #929 > > \"D\",\n",
- "00:00:34 \u001B[90mv\u001B[0m #930 > > fun input ->\n",
- "00:00:34 \u001B[90mv\u001B[0m #931 > > input\n",
- "00:00:34 \u001B[90mv\u001B[0m #932 > > |> Seq.toList\n",
- "00:00:34 \u001B[90mv\u001B[0m #933 > > |> fun list ->\n",
- "00:00:34 \u001B[90mv\u001B[0m #934 > > let rec loop (acc: char list list) = function\n",
- "00:00:34 \u001B[90mv\u001B[0m #935 > > | _ when acc.Length = list.Length -> acc\n",
- "00:00:34 \u001B[90mv\u001B[0m #936 > > | head :: tail ->\n",
- "00:00:34 \u001B[90mv\u001B[0m #937 > > let item = tail @ [[ head ]]\n",
- "00:00:34 \u001B[90mv\u001B[0m #938 > > loop (item :: acc) item\n",
- "00:00:34 \u001B[90mv\u001B[0m #939 > > | [[]] -> [[]]\n",
- "00:00:34 \u001B[90mv\u001B[0m #940 > > loop [[]] list\n",
- "00:00:34 \u001B[90mv\u001B[0m #941 > > |> List.rev\n",
- "00:00:34 \u001B[90mv\u001B[0m #942 > > |> List.map (List.toArray >> String)\n",
- "00:00:34 \u001B[90mv\u001B[0m #943 > > |> SpiralSm.concat \" \"\n",
- "00:00:34 \u001B[90mv\u001B[0m #944 > >\n",
- "00:00:34 \u001B[90mv\u001B[0m #945 > > \"E\",\n",
- "00:00:34 \u001B[90mv\u001B[0m #946 > > fun input ->\n",
- "00:00:34 \u001B[90mv\u001B[0m #947 > > input\n",
- "00:00:34 \u001B[90mv\u001B[0m #948 > > |> Seq.toList\n",
- "00:00:34 \u001B[90mv\u001B[0m #949 > > |> fun list ->\n",
- "00:00:34 \u001B[90mv\u001B[0m #950 > > let rec loop (last: string) = function\n",
- "00:00:34 \u001B[90mv\u001B[0m #951 > > | head :: tail ->\n",
- "00:00:34 \u001B[90mv\u001B[0m #952 > > let item = last.[[1 .. input.Length - 1]] + string head\n",
- "00:00:34 \u001B[90mv\u001B[0m #953 > > item :: loop item tail\n",
- "00:00:34 \u001B[90mv\u001B[0m #954 > > | [[]] -> [[]]\n",
- "00:00:34 \u001B[90mv\u001B[0m #955 > > loop input list\n",
- "00:00:34 \u001B[90mv\u001B[0m #956 > > |> SpiralSm.concat \" \"\n",
- "00:00:34 \u001B[90mv\u001B[0m #957 > >\n",
- "00:00:34 \u001B[90mv\u001B[0m #958 > > \"F\",\n",
- "00:00:34 \u001B[90mv\u001B[0m #959 > > fun input ->\n",
- "00:00:34 \u001B[90mv\u001B[0m #960 > > Array.singleton 0\n",
- "00:00:34 \u001B[90mv\u001B[0m #961 > > |> Array.append [[| 1 .. input.Length - 1 |]]\n",
- "00:00:34 \u001B[90mv\u001B[0m #962 > > |> Array.map (fun i -> input.[[ i .. ]] + input.[[ .. i - 1 ]])\n",
- "00:00:34 \u001B[90mv\u001B[0m #963 > > |> SpiralSm.concat \" \"\n",
- "00:00:34 \u001B[90mv\u001B[0m #964 > >\n",
- "00:00:34 \u001B[90mv\u001B[0m #965 > > \"FA\",\n",
- "00:00:34 \u001B[90mv\u001B[0m #966 > > fun input ->\n",
- "00:00:34 \u001B[90mv\u001B[0m #967 > > List.singleton 0\n",
- "00:00:34 \u001B[90mv\u001B[0m #968 > > |> List.append [[ 1 .. input.Length - 1 ]]\n",
- "00:00:34 \u001B[90mv\u001B[0m #969 > > |> List.map (fun i -> input.[[ i .. ]] + input.[[ .. i - 1 ]])\n",
- "00:00:34 \u001B[90mv\u001B[0m #970 > > |> SpiralSm.concat \" \"\n",
- "00:00:34 \u001B[90mv\u001B[0m #971 > >\n",
- "00:00:34 \u001B[90mv\u001B[0m #972 > > \"FB\",\n",
- "00:00:34 \u001B[90mv\u001B[0m #973 > > fun input ->\n",
- "00:00:34 \u001B[90mv\u001B[0m #974 > > Seq.singleton 0\n",
- "00:00:34 \u001B[90mv\u001B[0m #975 > > |> Seq.append (seq { 1 .. input.Length - 1 })\n",
- "00:00:34 \u001B[90mv\u001B[0m #976 > > |> Seq.map (fun i -> input.[[ i .. ]] + input.[[ .. i - 1 ]])\n",
- "00:00:34 \u001B[90mv\u001B[0m #977 > > |> SpiralSm.concat \" \"\n",
- "00:00:34 \u001B[90mv\u001B[0m #978 > >\n",
- "00:00:34 \u001B[90mv\u001B[0m #979 > > \"FC\",\n",
- "00:00:34 \u001B[90mv\u001B[0m #980 > > fun input ->\n",
- "00:00:34 \u001B[90mv\u001B[0m #981 > > Array.singleton 0\n",
- "00:00:34 \u001B[90mv\u001B[0m #982 > > |> Array.append [[| 1 .. input.Length - 1 |]]\n",
- "00:00:34 \u001B[90mv\u001B[0m #983 > > |> Array.Parallel.map (fun i -> input.[[ i .. ]] + input.[[ .. i - 1 ]])\n",
- "00:00:34 \u001B[90mv\u001B[0m #984 > > |> SpiralSm.concat \" \"\n",
- "00:00:34 \u001B[90mv\u001B[0m #985 > > ]]\n",
- "00:00:34 \u001B[90mv\u001B[0m #986 > > let testCases = seq {\n",
- "00:00:34 \u001B[90mv\u001B[0m #987 > > \"abc\", \"bca cab abc\"\n",
- "00:00:34 \u001B[90mv\u001B[0m #988 > > \"abcde\", \"bcdea cdeab deabc eabcd abcde\"\n",
- "00:00:34 \u001B[90mv\u001B[0m #989 > > \"abcdefghi\", \"bcdefghia cdefghiab defghiabc efghiabcd fghiabcde ghiabcdef\n",
- "00:00:34 \u001B[90mv\u001B[0m #990 > > hiabcdefg iabcdefgh abcdefghi\"\n",
- "00:00:34 \u001B[90mv\u001B[0m #991 > > \"abab\", \"baba abab baba abab\"\n",
- "00:00:34 \u001B[90mv\u001B[0m #992 > > \"aa\", \"aa aa\"\n",
- "00:00:34 \u001B[90mv\u001B[0m #993 > > \"z\", \"z\"\n",
- "00:00:34 \u001B[90mv\u001B[0m #994 > > }\n",
- "00:00:34 \u001B[90mv\u001B[0m #995 > > let rec rotateStringsTests = runAll (nameof rotateStringsTests) _count solutions\n",
- "00:00:34 \u001B[90mv\u001B[0m #996 > > testCases\n",
- "00:00:34 \u001B[90mv\u001B[0m #997 > > rotateStringsTests\n",
- "00:00:34 \u001B[90mv\u001B[0m #998 > > |> sortResultList\n",
- "00:00:46 \u001B[90mv\u001B[0m #999 > >\n",
- "00:00:46 \u001B[90mv\u001B[0m #1000 > > ── [ 12.59s - stdout ] ─────────────────────────────────────────────────────────\n",
- "00:00:46 \u001B[90mv\u001B[0m #1001 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:46 \u001B[90mv\u001B[0m #1002 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:46 \u001B[90mv\u001B[0m #1003 > > \u001B[38;2;38;140;38m│\u001B[0m Test: rotateStringsTests\n",
- "00:00:46 \u001B[90mv\u001B[0m #1004 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:46 \u001B[90mv\u001B[0m #1005 > > \u001B[38;2;38;140;38m│\u001B[0m Solution: abc\n",
- "00:00:46 \u001B[90mv\u001B[0m #1006 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 1. A. Time: 3L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1007 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 2. B. Time: 2L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1008 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 3. C. Time: 1L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1009 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 4. CA. Time: 3L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1010 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 5. CB. Time: 2L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1011 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 6. D. Time: 2L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1012 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 7. E. Time: 2L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1013 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 8. F. Time: 1L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1014 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 9. FA. Time: 2L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1015 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 10. FB. Time: 8L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1016 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 11. FC. Time: 9L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1017 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:46 \u001B[90mv\u001B[0m #1018 > > \u001B[38;2;38;140;38m│\u001B[0m Solution: abcde\n",
- "00:00:46 \u001B[90mv\u001B[0m #1019 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 1. A. Time: 3L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1020 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 2. B. Time: 0L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1021 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 3. C. Time: 1L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1022 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 4. CA. Time: 1L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1023 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 5. CB. Time: 1L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1024 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 6. D. Time: 3L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1025 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 7. E. Time: 1L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1026 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 8. F. Time: 0L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1027 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 9. FA. Time: 0L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1028 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 10. FB. Time: 4L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1029 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 11. FC. Time: 4L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1030 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:46 \u001B[90mv\u001B[0m #1031 > > \u001B[38;2;38;140;38m│\u001B[0m Solution: abcdefghi\n",
- "00:00:46 \u001B[90mv\u001B[0m #1032 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 1. A. Time: 5L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1033 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 2. B. Time: 1L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1034 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 3. C. Time: 4L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1035 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 4. CA. Time: 2L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1036 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 5. CB. Time: 4L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1037 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 6. D. Time: 7L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1038 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 7. E. Time: 3L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1039 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 8. F. Time: 0L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1040 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 9. FA. Time: 4L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1041 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 10. FB. Time: 2L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1042 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 11. FC. Time: 5L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1043 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:46 \u001B[90mv\u001B[0m #1044 > > \u001B[38;2;38;140;38m│\u001B[0m Solution: abab\n",
- "00:00:46 \u001B[90mv\u001B[0m #1045 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 1. A. Time: 0L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1046 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 2. B. Time: 0L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1047 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 3. C. Time: 0L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1048 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 4. CA. Time: 1L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1049 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 5. CB. Time: 1L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1050 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 6. D. Time: 1L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1051 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 7. E. Time: 0L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1052 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 8. F. Time: 0L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1053 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 9. FA. Time: 0L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1054 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 10. FB. Time: 2L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1055 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 11. FC. Time: 5L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1056 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:46 \u001B[90mv\u001B[0m #1057 > > \u001B[38;2;38;140;38m│\u001B[0m Solution: aa\n",
- "00:00:46 \u001B[90mv\u001B[0m #1058 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 1. A. Time: 0L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1059 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 2. B. Time: 0L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1060 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 3. C. Time: 0L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1061 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 4. CA. Time: 0L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1062 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 5. CB. Time: 0L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1063 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 6. D. Time: 0L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1064 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 7. E. Time: 0L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1065 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 8. F. Time: 0L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1066 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 9. FA. Time: 0L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1067 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 10. FB. Time: 1L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1068 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 11. FC. Time: 5L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1069 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:46 \u001B[90mv\u001B[0m #1070 > > \u001B[38;2;38;140;38m│\u001B[0m Solution: z\n",
- "00:00:46 \u001B[90mv\u001B[0m #1071 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 1. A. Time: 0L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1072 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 2. B. Time: 0L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1073 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 3. C. Time: 0L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1074 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 4. CA. Time: 0L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1075 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 5. CB. Time: 0L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1076 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 6. D. Time: 0L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1077 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 7. E. Time: 0L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1078 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 8. F. Time: 0L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1079 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 9. FA. Time: 0L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1080 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 10. FB. Time: 0L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1081 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 11. FC. Time: 4L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1082 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:46 \u001B[90mv\u001B[0m #1083 > > \u001B[38;2;38;140;38m│\u001B[0m Input \t| Expected\n",
- "00:00:46 \u001B[90mv\u001B[0m #1084 > > | Result\n",
- "00:00:46 \u001B[90mv\u001B[0m #1085 > >\n",
- "00:00:46 \u001B[90mv\u001B[0m #1086 > > | Best\n",
- "00:00:46 \u001B[90mv\u001B[0m #1087 > > \u001B[38;2;38;140;38m│\u001B[0m --- \t| ---\n",
- "00:00:46 \u001B[90mv\u001B[0m #1088 > >\n",
- "00:00:46 \u001B[90mv\u001B[0m #1089 > > | ---\n",
- "00:00:46 \u001B[90mv\u001B[0m #1090 > >\n",
- "00:00:46 \u001B[90mv\u001B[0m #1091 > > | ---\n",
- "00:00:46 \u001B[90mv\u001B[0m #1092 > > \u001B[38;2;38;140;38m│\u001B[0m abc \t| bca cab abc\n",
- "00:00:46 \u001B[90mv\u001B[0m #1093 > > | bca cab abc\n",
- "00:00:46 \u001B[90mv\u001B[0m #1094 > > | (3, 1)\n",
- "00:00:46 \u001B[90mv\u001B[0m #1095 > > \u001B[38;2;38;140;38m│\u001B[0m abcde \t| bcdea cdeab deabc eabcd abcde\n",
- "00:00:46 \u001B[90mv\u001B[0m #1096 > > | bcdea cdeab deabc eabcd abcde\n",
- "00:00:46 \u001B[90mv\u001B[0m #1097 > > | (2, 0)\n",
- "00:00:46 \u001B[90mv\u001B[0m #1098 > > \u001B[38;2;38;140;38m│\u001B[0m abcdefghi\t| bcdefghia cdefghiab defghiabc efghiabcd fghiabcde\n",
- "00:00:46 \u001B[90mv\u001B[0m #1099 > > ghiabcdef hiabcdefg iabcdefgh abcdefghi\t| bcdefghia cdefghiab defghiabc efghiabcd\n",
- "00:00:46 \u001B[90mv\u001B[0m #1100 > > fghiabcde ghiabcdef hiabcdefg iabcdefgh abcdefghi\t| (8, 0)\n",
- "00:00:46 \u001B[90mv\u001B[0m #1101 > > \u001B[38;2;38;140;38m│\u001B[0m abab \t| baba abab baba abab\n",
- "00:00:46 \u001B[90mv\u001B[0m #1102 > > | baba abab baba abab\n",
- "00:00:46 \u001B[90mv\u001B[0m #1103 > > | (1, 0)\n",
- "00:00:46 \u001B[90mv\u001B[0m #1104 > > \u001B[38;2;38;140;38m│\u001B[0m aa \t| aa aa\n",
- "00:00:46 \u001B[90mv\u001B[0m #1105 > >\n",
- "00:00:46 \u001B[90mv\u001B[0m #1106 > > | aa aa\n",
- "00:00:46 \u001B[90mv\u001B[0m #1107 > >\n",
- "00:00:46 \u001B[90mv\u001B[0m #1108 > > | (1, 0)\n",
- "00:00:46 \u001B[90mv\u001B[0m #1109 > > \u001B[38;2;38;140;38m│\u001B[0m z \t| z\n",
- "00:00:46 \u001B[90mv\u001B[0m #1110 > >\n",
- "00:00:46 \u001B[90mv\u001B[0m #1111 > > | z\n",
- "00:00:46 \u001B[90mv\u001B[0m #1112 > >\n",
- "00:00:46 \u001B[90mv\u001B[0m #1113 > > | (1, 0)\n",
- "00:00:46 \u001B[90mv\u001B[0m #1114 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:46 \u001B[90mv\u001B[0m #1115 > > \u001B[38;2;38;140;38m│\u001B[0m Average Ranking\n",
- "00:00:46 \u001B[90mv\u001B[0m #1116 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 2. Average Time: 0L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1117 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 8. Average Time: 0L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1118 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 1. Average Time: 1L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1119 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 3. Average Time: 1L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1120 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 4. Average Time: 1L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1121 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 5. Average Time: 1L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1122 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 7. Average Time: 1L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1123 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 9. Average Time: 1L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1124 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 6. Average Time: 2L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1125 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 10. Average Time: 2L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1126 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 11. Average Time: 5L\n",
- "00:00:46 \u001B[90mv\u001B[0m #1127 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:46 \u001B[90mv\u001B[0m #1128 > >\n",
- "00:00:46 \u001B[90mv\u001B[0m #1129 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:46 \u001B[90mv\u001B[0m #1130 > > \u001B[38;2;146;146;178m│\u001B[0m ## rotate_strings_tests\n",
- "00:00:46 \u001B[90mv\u001B[0m #1131 > >\n",
- "00:00:46 \u001B[90mv\u001B[0m #1132 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:46 \u001B[90mv\u001B[0m #1133 > > \u001B[38;2;146;146;178m│\u001B[0m ```\n",
- "00:00:46 \u001B[90mv\u001B[0m #1134 > > \u001B[38;2;146;146;178m│\u001B[0m 02:21:12 \u001B[90mverbose\u001B[0m #1 benchmark.run_all / {count =\n",
- "00:00:46 \u001B[90mv\u001B[0m #1135 > > 2000000; test_name = rotate_strings_tests}\n",
- "00:00:46 \u001B[90mv\u001B[0m #1136 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:00:46 \u001B[90mv\u001B[0m #1137 > > \u001B[38;2;146;146;178m│\u001B[0m 02:21:12 \u001B[90mverbose\u001B[0m #2 benchmark.run / {input_str =\n",
- "00:00:46 \u001B[90mv\u001B[0m #1138 > > \"abc\"}\n",
- "00:00:46 \u001B[90mv\u001B[0m #1139 > > \u001B[38;2;146;146;178m│\u001B[0m 02:21:13 \u001B[90mverbose\u001B[0m #3 benchmark.run / solutions.map / {i\n",
- "00:00:46 \u001B[90mv\u001B[0m #1140 > > = 1; test_name = F; time = 638}\n",
- "00:00:46 \u001B[90mv\u001B[0m #1141 > > \u001B[38;2;146;146;178m│\u001B[0m 02:21:14 \u001B[90mverbose\u001B[0m #4 benchmark.run / solutions.map / {i\n",
- "00:00:46 \u001B[90mv\u001B[0m #1142 > > = 2; test_name = FA; time = 779}\n",
- "00:00:46 \u001B[90mv\u001B[0m #1143 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:00:46 \u001B[90mv\u001B[0m #1144 > > \u001B[38;2;146;146;178m│\u001B[0m 02:21:14 \u001B[90mverbose\u001B[0m #5 benchmark.run / {input_str =\n",
- "00:00:46 \u001B[90mv\u001B[0m #1145 > > \"abcde\"}\n",
- "00:00:46 \u001B[90mv\u001B[0m #1146 > > \u001B[38;2;146;146;178m│\u001B[0m 02:21:15 \u001B[90mverbose\u001B[0m #6 benchmark.run / solutions.map / {i\n",
- "00:00:46 \u001B[90mv\u001B[0m #1147 > > = 1; test_name = F; time = 745}\n",
- "00:00:46 \u001B[90mv\u001B[0m #1148 > > \u001B[38;2;146;146;178m│\u001B[0m 02:21:16 \u001B[90mverbose\u001B[0m #7 benchmark.run / solutions.map / {i\n",
- "00:00:46 \u001B[90mv\u001B[0m #1149 > > = 2; test_name = FA; time = 809}\n",
- "00:00:46 \u001B[90mv\u001B[0m #1150 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:00:46 \u001B[90mv\u001B[0m #1151 > > \u001B[38;2;146;146;178m│\u001B[0m 02:21:16 \u001B[90mverbose\u001B[0m #8 benchmark.run / {input_str =\n",
- "00:00:46 \u001B[90mv\u001B[0m #1152 > > \"abcdefghi\"}\n",
- "00:00:46 \u001B[90mv\u001B[0m #1153 > > \u001B[38;2;146;146;178m│\u001B[0m 02:21:17 \u001B[90mverbose\u001B[0m #9 benchmark.run / solutions.map / {i\n",
- "00:00:46 \u001B[90mv\u001B[0m #1154 > > = 1; test_name = F; time = 1092}\n",
- "00:00:46 \u001B[90mv\u001B[0m #1155 > > \u001B[38;2;146;146;178m│\u001B[0m 02:21:18 \u001B[90mverbose\u001B[0m #10 benchmark.run / solutions.map\n",
- "00:00:46 \u001B[90mv\u001B[0m #1156 > > {i = 2; test_name = FA; time = 1304}\n",
- "00:00:46 \u001B[90mv\u001B[0m #1157 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:00:46 \u001B[90mv\u001B[0m #1158 > > \u001B[38;2;146;146;178m│\u001B[0m 02:21:18 \u001B[90mverbose\u001B[0m #11 benchmark.run / {input_str =\n",
- "00:00:46 \u001B[90mv\u001B[0m #1159 > > \"abab\"}\n",
- "00:00:46 \u001B[90mv\u001B[0m #1160 > > \u001B[38;2;146;146;178m│\u001B[0m 02:21:19 \u001B[90mverbose\u001B[0m #12 benchmark.run / solutions.map\n",
- "00:00:46 \u001B[90mv\u001B[0m #1161 > > {i = 1; test_name = F; time = 536}\n",
- "00:00:46 \u001B[90mv\u001B[0m #1162 > > \u001B[38;2;146;146;178m│\u001B[0m 02:21:20 \u001B[90mverbose\u001B[0m #13 benchmark.run / solutions.map\n",
- "00:00:46 \u001B[90mv\u001B[0m #1163 > > {i = 2; test_name = FA; time = 620}\n",
- "00:00:46 \u001B[90mv\u001B[0m #1164 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:00:46 \u001B[90mv\u001B[0m #1165 > > \u001B[38;2;146;146;178m│\u001B[0m 02:21:20 \u001B[90mverbose\u001B[0m #14 benchmark.run / {input_str =\n",
- "00:00:46 \u001B[90mv\u001B[0m #1166 > > \"aa\"}\n",
- "00:00:46 \u001B[90mv\u001B[0m #1167 > > \u001B[38;2;146;146;178m│\u001B[0m 02:21:21 \u001B[90mverbose\u001B[0m #15 benchmark.run / solutions.map\n",
- "00:00:46 \u001B[90mv\u001B[0m #1168 > > {i = 1; test_name = F; time = 365}\n",
- "00:00:46 \u001B[90mv\u001B[0m #1169 > > \u001B[38;2;146;146;178m│\u001B[0m 02:21:21 \u001B[90mverbose\u001B[0m #16 benchmark.run / solutions.map\n",
- "00:00:46 \u001B[90mv\u001B[0m #1170 > > {i = 2; test_name = FA; time = 396}\n",
- "00:00:46 \u001B[90mv\u001B[0m #1171 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:00:46 \u001B[90mv\u001B[0m #1172 > > \u001B[38;2;146;146;178m│\u001B[0m 02:21:21 \u001B[90mverbose\u001B[0m #17 benchmark.run / {input_str = \"z\"}\n",
- "00:00:46 \u001B[90mv\u001B[0m #1173 > > \u001B[38;2;146;146;178m│\u001B[0m 02:21:22 \u001B[90mverbose\u001B[0m #18 benchmark.run / solutions.map\n",
- "00:00:46 \u001B[90mv\u001B[0m #1174 > > {i = 1; test_name = F; time = 158}\n",
- "00:00:46 \u001B[90mv\u001B[0m #1175 > > \u001B[38;2;146;146;178m│\u001B[0m 02:21:22 \u001B[90mverbose\u001B[0m #19 benchmark.run / solutions.map\n",
- "00:00:46 \u001B[90mv\u001B[0m #1176 > > {i = 2; test_name = FA; time = 143}\n",
- "00:00:46 \u001B[90mv\u001B[0m #1177 > > \u001B[38;2;146;146;178m│\u001B[0m ```\n",
- "00:00:46 \u001B[90mv\u001B[0m #1178 > > \u001B[38;2;146;146;178m│\u001B[0m input \t| expected\n",
- "00:00:46 \u001B[90mv\u001B[0m #1179 > >\n",
- "00:00:46 \u001B[90mv\u001B[0m #1180 > > | result\n",
- "00:00:46 \u001B[90mv\u001B[0m #1181 > >\n",
- "00:00:46 \u001B[90mv\u001B[0m #1182 > > | best\n",
- "00:00:46 \u001B[90mv\u001B[0m #1183 > > \u001B[38;2;146;146;178m│\u001B[0m --- \t| ---\n",
- "00:00:46 \u001B[90mv\u001B[0m #1184 > >\n",
- "00:00:46 \u001B[90mv\u001B[0m #1185 > > | ---\n",
- "00:00:46 \u001B[90mv\u001B[0m #1186 > >\n",
- "00:00:46 \u001B[90mv\u001B[0m #1187 > > | ---\n",
- "00:00:46 \u001B[90mv\u001B[0m #1188 > > \u001B[38;2;146;146;178m│\u001B[0m \"abc\" \t| \"bca cab abc\"\n",
- "00:00:46 \u001B[90mv\u001B[0m #1189 > > | \"bca cab abc\"\n",
- "00:00:46 \u001B[90mv\u001B[0m #1190 > > | 1, 638\n",
- "00:00:46 \u001B[90mv\u001B[0m #1191 > > \u001B[38;2;146;146;178m│\u001B[0m \"abcde\" \t| \"bcdea cdeab deabc eabcd abcde\"\n",
- "00:00:46 \u001B[90mv\u001B[0m #1192 > > | \"bcdea cdeab deabc eabcd abcde\"\n",
- "00:00:46 \u001B[90mv\u001B[0m #1193 > > | 1, 745\n",
- "00:00:46 \u001B[90mv\u001B[0m #1194 > > \u001B[38;2;146;146;178m│\u001B[0m \"abcdefghi\"\t| \"bcdefghia cdefghiab defghiabc efghiabcd\n",
- "00:00:46 \u001B[90mv\u001B[0m #1195 > > fghiabcde ghiabcdef hiabcdefg iabcdefgh abcdefghi\"\t| \"bcdefghia cdefghiab\n",
- "00:00:46 \u001B[90mv\u001B[0m #1196 > > defghiabc efghiabcd fghiabcde ghiabcdef hiabcdefg iabcdefgh abcdefghi\"\t| 1, 1092\n",
- "00:00:46 \u001B[90mv\u001B[0m #1197 > > \u001B[38;2;146;146;178m│\u001B[0m \"abab\" \t| \"baba abab baba abab\"\n",
- "00:00:46 \u001B[90mv\u001B[0m #1198 > > | \"baba abab baba abab\"\n",
- "00:00:46 \u001B[90mv\u001B[0m #1199 > > | 1, 536\n",
- "00:00:46 \u001B[90mv\u001B[0m #1200 > > \u001B[38;2;146;146;178m│\u001B[0m \"aa\" \t| \"aa aa\"\n",
- "00:00:46 \u001B[90mv\u001B[0m #1201 > >\n",
- "00:00:46 \u001B[90mv\u001B[0m #1202 > > | \"aa aa\"\n",
- "00:00:46 \u001B[90mv\u001B[0m #1203 > >\n",
- "00:00:46 \u001B[90mv\u001B[0m #1204 > > | 1, 365\n",
- "00:00:46 \u001B[90mv\u001B[0m #1205 > > \u001B[38;2;146;146;178m│\u001B[0m \"z\" \t| \"z\"\n",
- "00:00:46 \u001B[90mv\u001B[0m #1206 > >\n",
- "00:00:46 \u001B[90mv\u001B[0m #1207 > > | \"z\"\n",
- "00:00:46 \u001B[90mv\u001B[0m #1208 > >\n",
- "00:00:46 \u001B[90mv\u001B[0m #1209 > > | 2, 143\n",
- "00:00:46 \u001B[90mv\u001B[0m #1210 > > \u001B[38;2;146;146;178m│\u001B[0m ```\n",
- "00:00:46 \u001B[90mv\u001B[0m #1211 > > \u001B[38;2;146;146;178m│\u001B[0m 02:21:22 \u001B[90mverbose\u001B[0m #20 benchmark.sort_result_list\n",
- "00:00:46 \u001B[90mv\u001B[0m #1212 > > averages.iter / {avg = 589; i = 1}\n",
- "00:00:46 \u001B[90mv\u001B[0m #1213 > > \u001B[38;2;146;146;178m│\u001B[0m 02:21:22 \u001B[90mverbose\u001B[0m #21 benchmark.sort_result_list\n",
- "00:00:46 \u001B[90mv\u001B[0m #1214 > > averages.iter / {avg = 675; i = 2}\n",
- "00:00:46 \u001B[90mv\u001B[0m #1215 > > \u001B[38;2;146;146;178m│\u001B[0m ```\n",
- "00:00:46 \u001B[90mv\u001B[0m #1216 > >\n",
- "00:00:46 \u001B[90mv\u001B[0m #1217 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
- "00:00:46 \u001B[90mv\u001B[0m #1218 > > //// test\n",
- "00:00:46 \u001B[90mv\u001B[0m #1219 > > //// timeout=60000\n",
- "00:00:46 \u001B[90mv\u001B[0m #1220 > >\n",
- "00:00:46 \u001B[90mv\u001B[0m #1221 > > inl get_solutions () =\n",
- "00:00:46 \u001B[90mv\u001B[0m #1222 > > [[\n",
- "00:00:46 \u001B[90mv\u001B[0m #1223 > > // \"A\",\n",
- "00:00:46 \u001B[90mv\u001B[0m #1224 > > // fun (input : string) =>\n",
- "00:00:46 \u001B[90mv\u001B[0m #1225 > > // let resultList =\n",
- "00:00:46 \u001B[90mv\u001B[0m #1226 > > // List.fold (fun acc x =>\n",
- "00:00:46 \u001B[90mv\u001B[0m #1227 > > // let rotate (text : string) (letter : string) =\n",
- "00:00:46 \u001B[90mv\u001B[0m #1228 > > text.Substring (1, input.Length - 1) + letter\n",
- "00:00:46 \u001B[90mv\u001B[0m #1229 > > // [[ rotate (if acc.IsEmpty then input else acc.Head)\n",
- "00:00:46 \u001B[90mv\u001B[0m #1230 > > (string x) ]] ++ acc\n",
- "00:00:46 \u001B[90mv\u001B[0m #1231 > > // ) [[]] (Seq.toList input)\n",
- "00:00:46 \u001B[90mv\u001B[0m #1232 > >\n",
- "00:00:46 \u001B[90mv\u001B[0m #1233 > > // List.foldBack (fun acc x => x + acc + \" \") resultList \"\"\n",
- "00:00:46 \u001B[90mv\u001B[0m #1234 > > // |> fun x => x.TrimEnd ()\n",
- "00:00:46 \u001B[90mv\u001B[0m #1235 > >\n",
- "00:00:46 \u001B[90mv\u001B[0m #1236 > > // \"B\",\n",
- "00:00:46 \u001B[90mv\u001B[0m #1237 > > // fun input =>\n",
- "00:00:46 \u001B[90mv\u001B[0m #1238 > > // input\n",
- "00:00:46 \u001B[90mv\u001B[0m #1239 > > // |> Seq.toList\n",
- "00:00:46 \u001B[90mv\u001B[0m #1240 > > // |> List.fold (fun (acc : string list) letter =>\n",
- "00:00:46 \u001B[90mv\u001B[0m #1241 > > // let last =\n",
- "00:00:46 \u001B[90mv\u001B[0m #1242 > > // if acc.IsEmpty\n",
- "00:00:46 \u001B[90mv\u001B[0m #1243 > > // then input\n",
- "00:00:46 \u001B[90mv\u001B[0m #1244 > > // else acc.Head\n",
- "00:00:46 \u001B[90mv\u001B[0m #1245 > >\n",
- "00:00:46 \u001B[90mv\u001B[0m #1246 > > // let item = last.[[1 .. input.Length - 1]] + string letter\n",
- "00:00:46 \u001B[90mv\u001B[0m #1247 > >\n",
- "00:00:46 \u001B[90mv\u001B[0m #1248 > > // item :: acc\n",
- "00:00:46 \u001B[90mv\u001B[0m #1249 > > // ) [[]]\n",
- "00:00:46 \u001B[90mv\u001B[0m #1250 > > // |> List.rev\n",
- "00:00:46 \u001B[90mv\u001B[0m #1251 > > // |> SpiralSm.concat \" \"\n",
- "00:00:46 \u001B[90mv\u001B[0m #1252 > >\n",
- "00:00:46 \u001B[90mv\u001B[0m #1253 > > // \"C\",\n",
- "00:00:46 \u001B[90mv\u001B[0m #1254 > > // fun input =>\n",
- "00:00:46 \u001B[90mv\u001B[0m #1255 > > // input\n",
- "00:00:46 \u001B[90mv\u001B[0m #1256 > > // |> Seq.toList\n",
- "00:00:46 \u001B[90mv\u001B[0m #1257 > > // |> List.fold (fun (acc : list string) letter => acc.Head.[[ 1 ..\n",
- "00:00:46 \u001B[90mv\u001B[0m #1258 > > input.Length - 1 ]] + string letter :: acc) [[ input ]]\n",
- "00:00:46 \u001B[90mv\u001B[0m #1259 > > // |> List.rev\n",
- "00:00:46 \u001B[90mv\u001B[0m #1260 > > // |> List.skip 1\n",
- "00:00:46 \u001B[90mv\u001B[0m #1261 > > // |> SpiralSm.concat \" \"\n",
- "00:00:46 \u001B[90mv\u001B[0m #1262 > >\n",
- "00:00:46 \u001B[90mv\u001B[0m #1263 > > // \"CA\",\n",
- "00:00:46 \u001B[90mv\u001B[0m #1264 > > // fun input =>\n",
- "00:00:46 \u001B[90mv\u001B[0m #1265 > > // input\n",
- "00:00:46 \u001B[90mv\u001B[0m #1266 > > // |> Seq.fold (fun (acc : list string) letter => acc.Head.[[ 1 ..\n",
- "00:00:46 \u001B[90mv\u001B[0m #1267 > > input.Length - 1 ]] + string letter :: acc) [[ input ]]\n",
- "00:00:46 \u001B[90mv\u001B[0m #1268 > > // |> Seq.rev\n",
- "00:00:46 \u001B[90mv\u001B[0m #1269 > > // |> Seq.skip 1\n",
- "00:00:46 \u001B[90mv\u001B[0m #1270 > > // |> SpiralSm.concat \" \"\n",
- "00:00:46 \u001B[90mv\u001B[0m #1271 > >\n",
- "00:00:46 \u001B[90mv\u001B[0m #1272 > > // \"CB\",\n",
- "00:00:46 \u001B[90mv\u001B[0m #1273 > > // fun input =>\n",
- "00:00:46 \u001B[90mv\u001B[0m #1274 > > // input\n",
- "00:00:46 \u001B[90mv\u001B[0m #1275 > > // |> Seq.toArray\n",
- "00:00:46 \u001B[90mv\u001B[0m #1276 > > // |> Array.fold (fun (acc : a _ string) letter => acc |>\n",
- "00:00:46 \u001B[90mv\u001B[0m #1277 > > Array.append (a ;[[ acc.[[0]].[[ 1 .. input.Length - 1 ]] + string letter ]]))\n",
- "00:00:46 \u001B[90mv\u001B[0m #1278 > > (a ;[[ input ]])\n",
- "00:00:46 \u001B[90mv\u001B[0m #1279 > > // |> Array.rev\n",
- "00:00:46 \u001B[90mv\u001B[0m #1280 > > // |> Array.skip 1\n",
- "00:00:46 \u001B[90mv\u001B[0m #1281 > > // |> SpiralSm.concat \" \"\n",
- "00:00:46 \u001B[90mv\u001B[0m #1282 > >\n",
- "00:00:46 \u001B[90mv\u001B[0m #1283 > > // \"D\",\n",
- "00:00:46 \u001B[90mv\u001B[0m #1284 > > // fun input =>\n",
- "00:00:46 \u001B[90mv\u001B[0m #1285 > > // input\n",
- "00:00:46 \u001B[90mv\u001B[0m #1286 > > // |> Seq.toList\n",
- "00:00:46 \u001B[90mv\u001B[0m #1287 > > // |> fun list =>\n",
- "00:00:46 \u001B[90mv\u001B[0m #1288 > > // let rec loop (acc : list (list char)) = function\n",
- "00:00:46 \u001B[90mv\u001B[0m #1289 > > // | _ when acc.Length = list.Length => acc\n",
- "00:00:46 \u001B[90mv\u001B[0m #1290 > > // | head :: tail =>\n",
- "00:00:46 \u001B[90mv\u001B[0m #1291 > > // let item = tail ++ [[ head ]]\n",
- "00:00:46 \u001B[90mv\u001B[0m #1292 > > // loop (item :: acc) item\n",
- "00:00:46 \u001B[90mv\u001B[0m #1293 > > // | [[]] => [[]]\n",
- "00:00:46 \u001B[90mv\u001B[0m #1294 > > // loop [[]] list\n",
- "00:00:46 \u001B[90mv\u001B[0m #1295 > > // |> List.rev\n",
- "00:00:46 \u001B[90mv\u001B[0m #1296 > > // |> List.map (List.toArray >> String)\n",
- "00:00:46 \u001B[90mv\u001B[0m #1297 > > // |> SpiralSm.concat \" \"\n",
- "00:00:46 \u001B[90mv\u001B[0m #1298 > >\n",
- "00:00:46 \u001B[90mv\u001B[0m #1299 > > // \"E\",\n",
- "00:00:46 \u001B[90mv\u001B[0m #1300 > > // fun input =>\n",
- "00:00:46 \u001B[90mv\u001B[0m #1301 > > // input\n",
- "00:00:46 \u001B[90mv\u001B[0m #1302 > > // |> Seq.toList\n",
- "00:00:46 \u001B[90mv\u001B[0m #1303 > > // |> fun list =>\n",
- "00:00:46 \u001B[90mv\u001B[0m #1304 > > // let rec loop (last : string) = function\n",
- "00:00:46 \u001B[90mv\u001B[0m #1305 > > // | head :: tail =>\n",
- "00:00:46 \u001B[90mv\u001B[0m #1306 > > // let item = last.[[1 .. input.Length - 1]] + string\n",
- "00:00:46 \u001B[90mv\u001B[0m #1307 > > head\n",
- "00:00:46 \u001B[90mv\u001B[0m #1308 > > // item :: loop item tail\n",
- "00:00:46 \u001B[90mv\u001B[0m #1309 > > // | [[]] => [[]]\n",
- "00:00:46 \u001B[90mv\u001B[0m #1310 > > // loop input list\n",
- "00:00:46 \u001B[90mv\u001B[0m #1311 > > // |> SpiralSm.concat \" \"\n",
- "00:00:46 \u001B[90mv\u001B[0m #1312 > >\n",
- "00:00:46 \u001B[90mv\u001B[0m #1313 > > \"F\",\n",
- "00:00:46 \u001B[90mv\u001B[0m #1314 > > fun input =>\n",
- "00:00:46 \u001B[90mv\u001B[0m #1315 > > // Array.singleton 0\n",
- "00:00:46 \u001B[90mv\u001B[0m #1316 > > // |> Array.append [[| 1 .. input.Length - 1 |]]\n",
- "00:00:46 \u001B[90mv\u001B[0m #1317 > > // |> Array.map (fun i -> input.[[ i .. ]] + input.[[ .. i - 1 ]])\n",
- "00:00:46 \u001B[90mv\u001B[0m #1318 > > // |> SpiralSm.concat \" \"\n",
- "00:00:46 \u001B[90mv\u001B[0m #1319 > > inl input_length = input |> sm.length\n",
- "00:00:46 \u001B[90mv\u001B[0m #1320 > > am.singleton 0i32\n",
- "00:00:46 \u001B[90mv\u001B[0m #1321 > > |> am.append (am'.init_series 1 (input_length - 1) 1 |> fun x => a x\n",
- "00:00:46 \u001B[90mv\u001B[0m #1322 > > : _ int _)\n",
- "00:00:46 \u001B[90mv\u001B[0m #1323 > > |> fun (a x) => x\n",
- "00:00:46 \u001B[90mv\u001B[0m #1324 > > |> am'.map_base fun i =>\n",
- "00:00:46 \u001B[90mv\u001B[0m #1325 > > inl a = input |> sm'.slice i (input_length - 1)\n",
- "00:00:46 \u001B[90mv\u001B[0m #1326 > > inl b = input |> sm'.slice 0 (i - 1)\n",
- "00:00:46 \u001B[90mv\u001B[0m #1327 > > a +. b\n",
- "00:00:46 \u001B[90mv\u001B[0m #1328 > > |> fun x => a x : _ int _\n",
- "00:00:46 \u001B[90mv\u001B[0m #1329 > > |> seq.of_array\n",
- "00:00:46 \u001B[90mv\u001B[0m #1330 > > |> sm'.concat \" \"\n",
- "00:00:46 \u001B[90mv\u001B[0m #1331 > >\n",
- "00:00:46 \u001B[90mv\u001B[0m #1332 > > \"FA\",\n",
- "00:00:46 \u001B[90mv\u001B[0m #1333 > > fun input =>\n",
- "00:00:46 \u001B[90mv\u001B[0m #1334 > > // List.singleton 0\n",
- "00:00:46 \u001B[90mv\u001B[0m #1335 > > // |> List.append [[ 1 .. input.Length - 1 ]]\n",
- "00:00:46 \u001B[90mv\u001B[0m #1336 > > // // |> List.map (fun i => input.[[ i .. ]] + input.[[ .. i - 1 ]])\n",
- "00:00:46 \u001B[90mv\u001B[0m #1337 > > // |> SpiralSm.concat \" \"\n",
- "00:00:46 \u001B[90mv\u001B[0m #1338 > > inl input_length = input |> sm.length\n",
- "00:00:46 \u001B[90mv\u001B[0m #1339 > > listm.singleton 0i32\n",
- "00:00:46 \u001B[90mv\u001B[0m #1340 > > |> listm.append (listm'.init_series 1 (input_length - 1) 1)\n",
- "00:00:46 \u001B[90mv\u001B[0m #1341 > > |> listm.map (fun i =>\n",
- "00:00:46 \u001B[90mv\u001B[0m #1342 > > inl a = input |> sm'.slice i (input_length - 1)\n",
- "00:00:46 \u001B[90mv\u001B[0m #1343 > > inl b = if i = 0 then \"\" else input |> sm'.slice 0 (i - 1)\n",
- "00:00:46 \u001B[90mv\u001B[0m #1344 > > a +. b\n",
- "00:00:46 \u001B[90mv\u001B[0m #1345 > > )\n",
- "00:00:46 \u001B[90mv\u001B[0m #1346 > > |> listm'.box\n",
- "00:00:46 \u001B[90mv\u001B[0m #1347 > > |> listm'.to_array'\n",
- "00:00:46 \u001B[90mv\u001B[0m #1348 > > |> fun x => a x : _ int _\n",
- "00:00:46 \u001B[90mv\u001B[0m #1349 > > |> seq.of_array\n",
- "00:00:46 \u001B[90mv\u001B[0m #1350 > > |> sm'.concat \" \"\n",
- "00:00:46 \u001B[90mv\u001B[0m #1351 > >\n",
- "00:00:46 \u001B[90mv\u001B[0m #1352 > > // \"FB\",\n",
- "00:00:46 \u001B[90mv\u001B[0m #1353 > > // fun input =>\n",
- "00:00:46 \u001B[90mv\u001B[0m #1354 > > // Seq.singleton 0\n",
- "00:00:46 \u001B[90mv\u001B[0m #1355 > > // // |> Seq.append (seq { 1 .. input.Length - 1 })\n",
- "00:00:46 \u001B[90mv\u001B[0m #1356 > > // // |> Seq.map (fun i => input.[[ i .. ]] + input.[[ .. i - 1 ]])\n",
- "00:00:46 \u001B[90mv\u001B[0m #1357 > > // |> SpiralSm.concat \" \"\n",
- "00:00:46 \u001B[90mv\u001B[0m #1358 > >\n",
- "00:00:46 \u001B[90mv\u001B[0m #1359 > > // \"FC\",\n",
- "00:00:46 \u001B[90mv\u001B[0m #1360 > > // fun input =>\n",
- "00:00:46 \u001B[90mv\u001B[0m #1361 > > // Array.singleton 0\n",
- "00:00:46 \u001B[90mv\u001B[0m #1362 > > // |> Array.append (a ;[[ 1 .. input.Length - 1 ]])\n",
- "00:00:46 \u001B[90mv\u001B[0m #1363 > > //// |> Array.Parallel.map (fun i => input.[[ i .. ]] + input.[[ .. i\n",
- "00:00:46 \u001B[90mv\u001B[0m #1364 > > - 1 ]])\n",
- "00:00:46 \u001B[90mv\u001B[0m #1365 > > // |> SpiralSm.concat \" \"\n",
- "00:00:46 \u001B[90mv\u001B[0m #1366 > > ]]\n",
- "00:00:46 \u001B[90mv\u001B[0m #1367 > >\n",
- "00:00:46 \u001B[90mv\u001B[0m #1368 > > inl rec rotate_strings_tests () =\n",
- "00:00:46 \u001B[90mv\u001B[0m #1369 > > inl test_cases = [[\n",
- "00:00:46 \u001B[90mv\u001B[0m #1370 > > \"abc\", \"bca cab abc\"\n",
- "00:00:46 \u001B[90mv\u001B[0m #1371 > > \"abcde\", \"bcdea cdeab deabc eabcd abcde\"\n",
- "00:00:46 \u001B[90mv\u001B[0m #1372 > > \"abcdefghi\", \"bcdefghia cdefghiab defghiabc efghiabcd fghiabcde\n",
- "00:00:46 \u001B[90mv\u001B[0m #1373 > > ghiabcdef hiabcdefg iabcdefgh abcdefghi\"\n",
- "00:00:46 \u001B[90mv\u001B[0m #1374 > > \"abab\", \"baba abab baba abab\"\n",
- "00:00:46 \u001B[90mv\u001B[0m #1375 > > \"aa\", \"aa aa\"\n",
- "00:00:46 \u001B[90mv\u001B[0m #1376 > > \"z\", \"z\"\n",
- "00:00:46 \u001B[90mv\u001B[0m #1377 > > ]]\n",
- "00:00:46 \u001B[90mv\u001B[0m #1378 > >\n",
- "00:00:46 \u001B[90mv\u001B[0m #1379 > > inl solutions = get_solutions ()\n",
- "00:00:46 \u001B[90mv\u001B[0m #1380 > >\n",
- "00:00:46 \u001B[90mv\u001B[0m #1381 > > // inl is_fast () = true\n",
- "00:00:46 \u001B[90mv\u001B[0m #1382 > >\n",
- "00:00:46 \u001B[90mv\u001B[0m #1383 > > inl count =\n",
- "00:00:46 \u001B[90mv\u001B[0m #1384 > > if is_fast ()\n",
- "00:00:46 \u001B[90mv\u001B[0m #1385 > > then 1000i32\n",
- "00:00:46 \u001B[90mv\u001B[0m #1386 > > else 2000000i32\n",
- "00:00:46 \u001B[90mv\u001B[0m #1387 > >\n",
- "00:00:46 \u001B[90mv\u001B[0m #1388 > > run_all (reflection.nameof { rotate_strings_tests }) count solutions\n",
- "00:00:46 \u001B[90mv\u001B[0m #1389 > > test_cases\n",
- "00:00:46 \u001B[90mv\u001B[0m #1390 > > |> sort_result_list\n",
- "00:00:46 \u001B[90mv\u001B[0m #1391 > >\n",
- "00:00:46 \u001B[90mv\u001B[0m #1392 > > rotate_strings_tests ()\n",
- "00:01:06 \u001B[90mv\u001B[0m #1393 > >\n",
- "00:01:06 \u001B[90mv\u001B[0m #1394 > > ── [ 19.16s - stdout ] ─────────────────────────────────────────────────────────\n",
- "00:01:06 \u001B[90mv\u001B[0m #1395 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:01:06 \u001B[90mv\u001B[0m #1396 > > \u001B[38;2;38;140;38m│\u001B[0m ```\n",
- "00:01:06 \u001B[90mv\u001B[0m #1397 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:00 \u001B[90mv\u001B[0m #1 benchmark.run_all / { test_name =\n",
- "00:01:06 \u001B[90mv\u001B[0m #1398 > > rotate_strings_tests; count = 2000000 }\n",
- "00:01:06 \u001B[90mv\u001B[0m #1399 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:01:06 \u001B[90mv\u001B[0m #1400 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:00 \u001B[90mv\u001B[0m #2 benchmark.run / { input_str = \"abc\" }\n",
- "00:01:06 \u001B[90mv\u001B[0m #1401 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:01 \u001B[90mv\u001B[0m #3 benchmark.run / solutions.map / { i = 1;\n",
- "00:01:06 \u001B[90mv\u001B[0m #1402 > > test_name = F; time = 871 }\n",
- "00:01:06 \u001B[90mv\u001B[0m #1403 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:02 \u001B[90mv\u001B[0m #4 benchmark.run / solutions.map / { i = 2;\n",
- "00:01:06 \u001B[90mv\u001B[0m #1404 > > test_name = FA; time = 1086 }\n",
- "00:01:06 \u001B[90mv\u001B[0m #1405 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:01:06 \u001B[90mv\u001B[0m #1406 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:02 \u001B[90mv\u001B[0m #5 benchmark.run / { input_str = \"abcde\" }\n",
- "00:01:06 \u001B[90mv\u001B[0m #1407 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:03 \u001B[90mv\u001B[0m #6 benchmark.run / solutions.map / { i = 1;\n",
- "00:01:06 \u001B[90mv\u001B[0m #1408 > > test_name = F; time = 1118 }\n",
- "00:01:06 \u001B[90mv\u001B[0m #1409 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:05 \u001B[90mv\u001B[0m #7 benchmark.run / solutions.map / { i = 2;\n",
- "00:01:06 \u001B[90mv\u001B[0m #1410 > > test_name = FA; time = 1688 }\n",
- "00:01:06 \u001B[90mv\u001B[0m #1411 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:01:06 \u001B[90mv\u001B[0m #1412 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:05 \u001B[90mv\u001B[0m #8 benchmark.run / { input_str = \"abcdefghi\"\n",
- "00:01:06 \u001B[90mv\u001B[0m #1413 > > }\n",
- "00:01:06 \u001B[90mv\u001B[0m #1414 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:08 \u001B[90mv\u001B[0m #9 benchmark.run / solutions.map / { i = 1;\n",
- "00:01:06 \u001B[90mv\u001B[0m #1415 > > test_name = F; time = 1950 }\n",
- "00:01:06 \u001B[90mv\u001B[0m #1416 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:11 \u001B[90mv\u001B[0m #10 benchmark.run / solutions.map / { i = 2;\n",
- "00:01:06 \u001B[90mv\u001B[0m #1417 > > test_name = FA; time = 2928 }\n",
- "00:01:06 \u001B[90mv\u001B[0m #1418 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:01:06 \u001B[90mv\u001B[0m #1419 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:11 \u001B[90mv\u001B[0m #11 benchmark.run / { input_str = \"abab\" }\n",
- "00:01:06 \u001B[90mv\u001B[0m #1420 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:13 \u001B[90mv\u001B[0m #12 benchmark.run / solutions.map / { i = 1;\n",
- "00:01:06 \u001B[90mv\u001B[0m #1421 > > test_name = F; time = 1101 }\n",
- "00:01:06 \u001B[90mv\u001B[0m #1422 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:14 \u001B[90mv\u001B[0m #13 benchmark.run / solutions.map / { i = 2;\n",
- "00:01:06 \u001B[90mv\u001B[0m #1423 > > test_name = FA; time = 1053 }\n",
- "00:01:06 \u001B[90mv\u001B[0m #1424 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:01:06 \u001B[90mv\u001B[0m #1425 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:14 \u001B[90mv\u001B[0m #14 benchmark.run / { input_str = \"aa\" }\n",
- "00:01:06 \u001B[90mv\u001B[0m #1426 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:15 \u001B[90mv\u001B[0m #15 benchmark.run / solutions.map / { i = 1;\n",
- "00:01:06 \u001B[90mv\u001B[0m #1427 > > test_name = F; time = 661 }\n",
- "00:01:06 \u001B[90mv\u001B[0m #1428 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:16 \u001B[90mv\u001B[0m #16 benchmark.run / solutions.map / { i = 2;\n",
- "00:01:06 \u001B[90mv\u001B[0m #1429 > > test_name = FA; time = 748 }\n",
- "00:01:06 \u001B[90mv\u001B[0m #1430 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:01:06 \u001B[90mv\u001B[0m #1431 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:16 \u001B[90mv\u001B[0m #17 benchmark.run / { input_str = \"z\" }\n",
- "00:01:06 \u001B[90mv\u001B[0m #1432 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:17 \u001B[90mv\u001B[0m #18 benchmark.run / solutions.map / { i = 1;\n",
- "00:01:06 \u001B[90mv\u001B[0m #1433 > > test_name = F; time = 172 }\n",
- "00:01:06 \u001B[90mv\u001B[0m #1434 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:17 \u001B[90mv\u001B[0m #19 benchmark.run / solutions.map / { i = 2;\n",
- "00:01:06 \u001B[90mv\u001B[0m #1435 > > test_name = FA; time = 190 }\n",
- "00:01:06 \u001B[90mv\u001B[0m #1436 > > \u001B[38;2;38;140;38m│\u001B[0m ```\n",
- "00:01:06 \u001B[90mv\u001B[0m #1437 > > \u001B[38;2;38;140;38m│\u001B[0m input \t| expected\n",
- "00:01:06 \u001B[90mv\u001B[0m #1438 > >\n",
- "00:01:06 \u001B[90mv\u001B[0m #1439 > > | result\n",
- "00:01:06 \u001B[90mv\u001B[0m #1440 > >\n",
- "00:01:06 \u001B[90mv\u001B[0m #1441 > > | best\n",
- "00:01:06 \u001B[90mv\u001B[0m #1442 > > \u001B[38;2;38;140;38m│\u001B[0m --- \t| ---\n",
- "00:01:06 \u001B[90mv\u001B[0m #1443 > >\n",
- "00:01:06 \u001B[90mv\u001B[0m #1444 > > | ---\n",
- "00:01:06 \u001B[90mv\u001B[0m #1445 > >\n",
- "00:01:06 \u001B[90mv\u001B[0m #1446 > > | ---\n",
- "00:01:06 \u001B[90mv\u001B[0m #1447 > > \u001B[38;2;38;140;38m│\u001B[0m \"abc\" \t| \"bca cab abc\"\n",
- "00:01:06 \u001B[90mv\u001B[0m #1448 > > | \"bca cab abc\"\n",
- "00:01:06 \u001B[90mv\u001B[0m #1449 > > | 1, 871\n",
- "00:01:06 \u001B[90mv\u001B[0m #1450 > > \u001B[38;2;38;140;38m│\u001B[0m \"abcde\" \t| \"bcdea cdeab deabc eabcd abcde\"\n",
- "00:01:06 \u001B[90mv\u001B[0m #1451 > > | \"bcdea cdeab deabc eabcd abcde\"\n",
- "00:01:06 \u001B[90mv\u001B[0m #1452 > > | 1, 1118\n",
- "00:01:06 \u001B[90mv\u001B[0m #1453 > > \u001B[38;2;38;140;38m│\u001B[0m \"abcdefghi\"\t| \"bcdefghia cdefghiab defghiabc efghiabcd\n",
- "00:01:06 \u001B[90mv\u001B[0m #1454 > > fghiabcde ghiabcdef hiabcdefg iabcdefgh abcdefghi\"\t| \"bcdefghia cdefghiab\n",
- "00:01:06 \u001B[90mv\u001B[0m #1455 > > defghiabc efghiabcd fghiabcde ghiabcdef hiabcdefg iabcdefgh abcdefghi\"\t| 1, 1950\n",
- "00:01:06 \u001B[90mv\u001B[0m #1456 > > \u001B[38;2;38;140;38m│\u001B[0m \"abab\" \t| \"baba abab baba abab\"\n",
- "00:01:06 \u001B[90mv\u001B[0m #1457 > > | \"baba abab baba abab\"\n",
- "00:01:06 \u001B[90mv\u001B[0m #1458 > > | 2, 1053\n",
- "00:01:06 \u001B[90mv\u001B[0m #1459 > > \u001B[38;2;38;140;38m│\u001B[0m \"aa\" \t| \"aa aa\"\n",
- "00:01:06 \u001B[90mv\u001B[0m #1460 > >\n",
- "00:01:06 \u001B[90mv\u001B[0m #1461 > > | \"aa aa\"\n",
- "00:01:06 \u001B[90mv\u001B[0m #1462 > >\n",
- "00:01:06 \u001B[90mv\u001B[0m #1463 > > | 1, 661\n",
- "00:01:06 \u001B[90mv\u001B[0m #1464 > > \u001B[38;2;38;140;38m│\u001B[0m \"z\" \t| \"z\"\n",
- "00:01:06 \u001B[90mv\u001B[0m #1465 > >\n",
- "00:01:06 \u001B[90mv\u001B[0m #1466 > > | \"z\"\n",
- "00:01:06 \u001B[90mv\u001B[0m #1467 > >\n",
- "00:01:06 \u001B[90mv\u001B[0m #1468 > > | 1, 172\n",
- "00:01:06 \u001B[90mv\u001B[0m #1469 > > \u001B[38;2;38;140;38m│\u001B[0m ```\n",
- "00:01:06 \u001B[90mv\u001B[0m #1470 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:17 \u001B[90mv\u001B[0m #20 benchmark.sort_result_list\n",
- "00:01:06 \u001B[90mv\u001B[0m #1471 > > averages.iter / { i = 1; avg = 978 }\n",
- "00:01:06 \u001B[90mv\u001B[0m #1472 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:17 \u001B[90mv\u001B[0m #21 benchmark.sort_result_list\n",
- "00:01:06 \u001B[90mv\u001B[0m #1473 > > averages.iter / { i = 2; avg = 1282 }\n",
- "00:01:06 \u001B[90mv\u001B[0m #1474 > > \u001B[38;2;38;140;38m│\u001B[0m ```\n",
- "00:01:06 \u001B[90mv\u001B[0m #1475 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:01:06 \u001B[90mv\u001B[0m #1476 > >\n",
- "00:01:06 \u001B[90mv\u001B[0m #1477 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
- "00:01:06 \u001B[90mv\u001B[0m #1478 > > //// test\n",
- "00:01:06 \u001B[90mv\u001B[0m #1479 > >\n",
- "00:01:06 \u001B[90mv\u001B[0m #1480 > > // rotate_strings_tests ()\n",
- "00:01:06 \u001B[90mv\u001B[0m #1481 > > ()\n",
- "00:01:06 \u001B[90mv\u001B[0m #1482 > >\n",
- "00:01:06 \u001B[90mv\u001B[0m #1483 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:01:06 \u001B[90mv\u001B[0m #1484 > > \u001B[38;2;146;146;178m│\u001B[0m ## binary_search_tests\n",
- "00:01:06 \u001B[90mv\u001B[0m #1485 > >\n",
- "00:01:06 \u001B[90mv\u001B[0m #1486 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:01:06 \u001B[90mv\u001B[0m #1487 > > \u001B[38;2;146;146;178m│\u001B[0m ```\n",
- "00:01:06 \u001B[90mv\u001B[0m #1488 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:29 \u001B[90mverbose\u001B[0m #1 benchmark.run_all / {count =\n",
- "00:01:06 \u001B[90mv\u001B[0m #1489 > > 10000000; test_name = binary_search_tests}\n",
- "00:01:06 \u001B[90mv\u001B[0m #1490 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:01:06 \u001B[90mv\u001B[0m #1491 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:29 \u001B[90mverbose\u001B[0m #2 benchmark.run / {input_str =\n",
- "00:01:06 \u001B[90mv\u001B[0m #1492 > > struct ([|1; 3; 4; 6; 8; 9; 11|], 6, 7)}\n",
- "00:01:06 \u001B[90mv\u001B[0m #1493 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:30 \u001B[90mverbose\u001B[0m #3 benchmark.run / solutions.map / {i\n",
- "00:01:06 \u001B[90mv\u001B[0m #1494 > > = 1; test_name = semi_open_1; time = 662}\n",
- "00:01:06 \u001B[90mv\u001B[0m #1495 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:30 \u001B[90mverbose\u001B[0m #4 benchmark.run / solutions.map / {i\n",
- "00:01:06 \u001B[90mv\u001B[0m #1496 > > = 2; test_name = closed_1; time = 619}\n",
- "00:01:06 \u001B[90mv\u001B[0m #1497 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:31 \u001B[90mverbose\u001B[0m #5 benchmark.run / solutions.map / {i\n",
- "00:01:06 \u001B[90mv\u001B[0m #1498 > > = 3; test_name = semi_open_2; time = 644}\n",
- "00:01:06 \u001B[90mv\u001B[0m #1499 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:32 \u001B[90mverbose\u001B[0m #6 benchmark.run / solutions.map / {i\n",
- "00:01:06 \u001B[90mv\u001B[0m #1500 > > = 4; test_name = closed_2; time = 610}\n",
- "00:01:06 \u001B[90mv\u001B[0m #1501 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:01:06 \u001B[90mv\u001B[0m #1502 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:32 \u001B[90mverbose\u001B[0m #7 benchmark.run / {input_str =\n",
- "00:01:06 \u001B[90mv\u001B[0m #1503 > > struct ([|1; 3; 4; 6; 8; 9; 11|], 1, 7)}\n",
- "00:01:06 \u001B[90mv\u001B[0m #1504 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:33 \u001B[90mverbose\u001B[0m #8 benchmark.run / solutions.map / {i\n",
- "00:01:06 \u001B[90mv\u001B[0m #1505 > > = 1; test_name = semi_open_1; time = 607}\n",
- "00:01:06 \u001B[90mv\u001B[0m #1506 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:33 \u001B[90mverbose\u001B[0m #9 benchmark.run / solutions.map / {i\n",
- "00:01:06 \u001B[90mv\u001B[0m #1507 > > = 2; test_name = closed_1; time = 559}\n",
- "00:01:06 \u001B[90mv\u001B[0m #1508 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:34 \u001B[90mverbose\u001B[0m #10 benchmark.run / solutions.map\n",
- "00:01:06 \u001B[90mv\u001B[0m #1509 > > {i = 3; test_name = semi_open_2; time = 612}\n",
- "00:01:06 \u001B[90mv\u001B[0m #1510 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:35 \u001B[90mverbose\u001B[0m #11 benchmark.run / solutions.map\n",
- "00:01:06 \u001B[90mv\u001B[0m #1511 > > {i = 4; test_name = closed_2; time = 577}\n",
- "00:01:06 \u001B[90mv\u001B[0m #1512 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:01:06 \u001B[90mv\u001B[0m #1513 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:35 \u001B[90mverbose\u001B[0m #12 benchmark.run / {input_str =\n",
- "00:01:06 \u001B[90mv\u001B[0m #1514 > > struct ([|1; 3; 4; 6; 8; 9; 11|], 11, 7)}\n",
- "00:01:06 \u001B[90mv\u001B[0m #1515 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:35 \u001B[90mverbose\u001B[0m #13 benchmark.run / solutions.map\n",
- "00:01:06 \u001B[90mv\u001B[0m #1516 > > {i = 1; test_name = semi_open_1; time = 550}\n",
- "00:01:06 \u001B[90mv\u001B[0m #1517 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:36 \u001B[90mverbose\u001B[0m #14 benchmark.run / solutions.map\n",
- "00:01:06 \u001B[90mv\u001B[0m #1518 > > {i = 2; test_name = closed_1; time = 580}\n",
- "00:01:06 \u001B[90mv\u001B[0m #1519 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:37 \u001B[90mverbose\u001B[0m #15 benchmark.run / solutions.map\n",
- "00:01:06 \u001B[90mv\u001B[0m #1520 > > {i = 3; test_name = semi_open_2; time = 624}\n",
- "00:01:06 \u001B[90mv\u001B[0m #1521 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:37 \u001B[90mverbose\u001B[0m #16 benchmark.run / solutions.map\n",
- "00:01:06 \u001B[90mv\u001B[0m #1522 > > {i = 4; test_name = closed_2; time = 590}\n",
- "00:01:06 \u001B[90mv\u001B[0m #1523 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:01:06 \u001B[90mv\u001B[0m #1524 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:37 \u001B[90mverbose\u001B[0m #17 benchmark.run / {input_str =\n",
- "00:01:06 \u001B[90mv\u001B[0m #1525 > > struct ([|1; 3; 4; 6; 8; 9; 11|], 12, 7)}\n",
- "00:01:06 \u001B[90mv\u001B[0m #1526 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:38 \u001B[90mverbose\u001B[0m #18 benchmark.run / solutions.map\n",
- "00:01:06 \u001B[90mv\u001B[0m #1527 > > {i = 1; test_name = semi_open_1; time = 574}\n",
- "00:01:06 \u001B[90mv\u001B[0m #1528 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:39 \u001B[90mverbose\u001B[0m #19 benchmark.run / solutions.map\n",
- "00:01:06 \u001B[90mv\u001B[0m #1529 > > {i = 2; test_name = closed_1; time = 577}\n",
- "00:01:06 \u001B[90mv\u001B[0m #1530 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:39 \u001B[90mverbose\u001B[0m #20 benchmark.run / solutions.map\n",
- "00:01:06 \u001B[90mv\u001B[0m #1531 > > {i = 3; test_name = semi_open_2; time = 582}\n",
- "00:01:06 \u001B[90mv\u001B[0m #1532 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:40 \u001B[90mverbose\u001B[0m #21 benchmark.run / solutions.map\n",
- "00:01:06 \u001B[90mv\u001B[0m #1533 > > {i = 4; test_name = closed_2; time = 585}\n",
- "00:01:06 \u001B[90mv\u001B[0m #1534 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:01:06 \u001B[90mv\u001B[0m #1535 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:40 \u001B[90mverbose\u001B[0m #22 benchmark.run / {input_str =\n",
- "00:01:06 \u001B[90mv\u001B[0m #1536 > > struct ([|1; 2; 3; 4...00; ...|], 60, 1000)}\n",
- "00:01:06 \u001B[90mv\u001B[0m #1537 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:41 \u001B[90mverbose\u001B[0m #23 benchmark.run / solutions.map\n",
- "00:01:06 \u001B[90mv\u001B[0m #1538 > > {i = 1; test_name = semi_open_1; time = 610}\n",
- "00:01:06 \u001B[90mv\u001B[0m #1539 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:42 \u001B[90mverbose\u001B[0m #24 benchmark.run / solutions.map\n",
- "00:01:06 \u001B[90mv\u001B[0m #1540 > > {i = 2; test_name = closed_1; time = 672}\n",
- "00:01:06 \u001B[90mv\u001B[0m #1541 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:42 \u001B[90mverbose\u001B[0m #25 benchmark.run / solutions.map\n",
- "00:01:06 \u001B[90mv\u001B[0m #1542 > > {i = 3; test_name = semi_open_2; time = 636}\n",
- "00:01:06 \u001B[90mv\u001B[0m #1543 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:43 \u001B[90mverbose\u001B[0m #26 benchmark.run / solutions.map\n",
- "00:01:06 \u001B[90mv\u001B[0m #1544 > > {i = 4; test_name = closed_2; time = 629}\n",
- "00:01:06 \u001B[90mv\u001B[0m #1545 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:01:06 \u001B[90mv\u001B[0m #1546 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:43 \u001B[90mverbose\u001B[0m #27 benchmark.run / {input_str =\n",
- "00:01:06 \u001B[90mv\u001B[0m #1547 > > struct ([|1; 3; 4; 6; 8; 9; 11|], 6, 7)}\n",
- "00:01:06 \u001B[90mv\u001B[0m #1548 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:44 \u001B[90mverbose\u001B[0m #28 benchmark.run / solutions.map\n",
- "00:01:06 \u001B[90mv\u001B[0m #1549 > > {i = 1; test_name = semi_open_1; time = 599}\n",
- "00:01:06 \u001B[90mv\u001B[0m #1550 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:44 \u001B[90mverbose\u001B[0m #29 benchmark.run / solutions.map\n",
- "00:01:06 \u001B[90mv\u001B[0m #1551 > > {i = 2; test_name = closed_1; time = 561}\n",
- "00:01:06 \u001B[90mv\u001B[0m #1552 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:45 \u001B[90mverbose\u001B[0m #30 benchmark.run / solutions.map\n",
- "00:01:06 \u001B[90mv\u001B[0m #1553 > > {i = 3; test_name = semi_open_2; time = 604}\n",
- "00:01:06 \u001B[90mv\u001B[0m #1554 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:46 \u001B[90mverbose\u001B[0m #31 benchmark.run / solutions.map\n",
- "00:01:06 \u001B[90mv\u001B[0m #1555 > > {i = 4; test_name = closed_2; time = 573}\n",
- "00:01:06 \u001B[90mv\u001B[0m #1556 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:01:06 \u001B[90mv\u001B[0m #1557 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:46 \u001B[90mverbose\u001B[0m #32 benchmark.run / {input_str =\n",
- "00:01:06 \u001B[90mv\u001B[0m #1558 > > struct ([|1; 3; 4; 6; 8; 9; 11|], 1, 7)}\n",
- "00:01:06 \u001B[90mv\u001B[0m #1559 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:47 \u001B[90mverbose\u001B[0m #33 benchmark.run / solutions.map\n",
- "00:01:06 \u001B[90mv\u001B[0m #1560 > > {i = 1; test_name = semi_open_1; time = 635}\n",
- "00:01:06 \u001B[90mv\u001B[0m #1561 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:47 \u001B[90mverbose\u001B[0m #34 benchmark.run / solutions.map\n",
- "00:01:06 \u001B[90mv\u001B[0m #1562 > > {i = 2; test_name = closed_1; time = 603}\n",
- "00:01:06 \u001B[90mv\u001B[0m #1563 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:48 \u001B[90mverbose\u001B[0m #35 benchmark.run / solutions.map\n",
- "00:01:06 \u001B[90mv\u001B[0m #1564 > > {i = 3; test_name = semi_open_2; time = 644}\n",
- "00:01:06 \u001B[90mv\u001B[0m #1565 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:49 \u001B[90mverbose\u001B[0m #36 benchmark.run / solutions.map\n",
- "00:01:06 \u001B[90mv\u001B[0m #1566 > > {i = 4; test_name = closed_2; time = 628}\n",
- "00:01:06 \u001B[90mv\u001B[0m #1567 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:01:06 \u001B[90mv\u001B[0m #1568 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:49 \u001B[90mverbose\u001B[0m #37 benchmark.run / {input_str =\n",
- "00:01:06 \u001B[90mv\u001B[0m #1569 > > struct ([|1; 3; 4; 6; 8; 9; 11|], 11, 7)}\n",
- "00:01:06 \u001B[90mv\u001B[0m #1570 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:49 \u001B[90mverbose\u001B[0m #38 benchmark.run / solutions.map\n",
- "00:01:06 \u001B[90mv\u001B[0m #1571 > > {i = 1; test_name = semi_open_1; time = 643}\n",
- "00:01:06 \u001B[90mv\u001B[0m #1572 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:50 \u001B[90mverbose\u001B[0m #39 benchmark.run / solutions.map\n",
- "00:01:06 \u001B[90mv\u001B[0m #1573 > > {i = 2; test_name = closed_1; time = 606}\n",
- "00:01:06 \u001B[90mv\u001B[0m #1574 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:51 \u001B[90mverbose\u001B[0m #40 benchmark.run / solutions.map\n",
- "00:01:06 \u001B[90mv\u001B[0m #1575 > > {i = 3; test_name = semi_open_2; time = 636}\n",
- "00:01:06 \u001B[90mv\u001B[0m #1576 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:52 \u001B[90mverbose\u001B[0m #41 benchmark.run / solutions.map\n",
- "00:01:06 \u001B[90mv\u001B[0m #1577 > > {i = 4; test_name = closed_2; time = 624}\n",
- "00:01:06 \u001B[90mv\u001B[0m #1578 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:01:06 \u001B[90mv\u001B[0m #1579 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:52 \u001B[90mverbose\u001B[0m #42 benchmark.run / {input_str =\n",
- "00:01:06 \u001B[90mv\u001B[0m #1580 > > struct ([|1; 3; 4; 6; 8; 9; 11|], 12, 7)}\n",
- "00:01:06 \u001B[90mv\u001B[0m #1581 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:52 \u001B[90mverbose\u001B[0m #43 benchmark.run / solutions.map\n",
- "00:01:06 \u001B[90mv\u001B[0m #1582 > > {i = 1; test_name = semi_open_1; time = 689}\n",
- "00:01:06 \u001B[90mv\u001B[0m #1583 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:53 \u001B[90mverbose\u001B[0m #44 benchmark.run / solutions.map\n",
- "00:01:06 \u001B[90mv\u001B[0m #1584 > > {i = 2; test_name = closed_1; time = 613}\n",
- "00:01:06 \u001B[90mv\u001B[0m #1585 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:54 \u001B[90mverbose\u001B[0m #45 benchmark.run / solutions.map\n",
- "00:01:06 \u001B[90mv\u001B[0m #1586 > > {i = 3; test_name = semi_open_2; time = 623}\n",
- "00:01:06 \u001B[90mv\u001B[0m #1587 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:55 \u001B[90mverbose\u001B[0m #46 benchmark.run / solutions.map\n",
- "00:01:06 \u001B[90mv\u001B[0m #1588 > > {i = 4; test_name = closed_2; time = 613}\n",
- "00:01:06 \u001B[90mv\u001B[0m #1589 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:01:06 \u001B[90mv\u001B[0m #1590 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:55 \u001B[90mverbose\u001B[0m #47 benchmark.run / {input_str =\n",
- "00:01:06 \u001B[90mv\u001B[0m #1591 > > struct ([|1; 2; 3; 4...100; ...|], 60, 100)}\n",
- "00:01:06 \u001B[90mv\u001B[0m #1592 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:55 \u001B[90mverbose\u001B[0m #48 benchmark.run / solutions.map\n",
- "00:01:06 \u001B[90mv\u001B[0m #1593 > > {i = 1; test_name = semi_open_1; time = 630}\n",
- "00:01:06 \u001B[90mv\u001B[0m #1594 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:56 \u001B[90mverbose\u001B[0m #49 benchmark.run / solutions.map\n",
- "00:01:06 \u001B[90mv\u001B[0m #1595 > > {i = 2; test_name = closed_1; time = 633}\n",
- "00:01:06 \u001B[90mv\u001B[0m #1596 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:57 \u001B[90mverbose\u001B[0m #50 benchmark.run / solutions.map\n",
- "00:01:06 \u001B[90mv\u001B[0m #1597 > > {i = 3; test_name = semi_open_2; time = 653}\n",
- "00:01:06 \u001B[90mv\u001B[0m #1598 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:58 \u001B[90mverbose\u001B[0m #51 benchmark.run / solutions.map\n",
- "00:01:06 \u001B[90mv\u001B[0m #1599 > > {i = 4; test_name = closed_2; time = 646}\n",
- "00:01:06 \u001B[90mv\u001B[0m #1600 > > \u001B[38;2;146;146;178m│\u001B[0m ```\n",
- "00:01:06 \u001B[90mv\u001B[0m #1601 > > \u001B[38;2;146;146;178m│\u001B[0m input \t| expected\t| result \t|\n",
- "00:01:06 \u001B[90mv\u001B[0m #1602 > > best\n",
- "00:01:06 \u001B[90mv\u001B[0m #1603 > > \u001B[38;2;146;146;178m│\u001B[0m --- \t| --- \t| --- \t|\n",
- "00:01:06 \u001B[90mv\u001B[0m #1604 > > ---\n",
- "00:01:06 \u001B[90mv\u001B[0m #1605 > > \u001B[38;2;146;146;178m│\u001B[0m struct ([1; 3; 4; 6; 8; 9; 11], 6, 7) \t| US4_0 3 \t| US4_0 3 \t|\n",
- "00:01:06 \u001B[90mv\u001B[0m #1606 > > 4, 610\n",
- "00:01:06 \u001B[90mv\u001B[0m #1607 > > \u001B[38;2;146;146;178m│\u001B[0m struct ([1; 3; 4; 6; 8; 9; 11], 1, 7) \t| US4_0 0 \t| US4_0 0 \t|\n",
- "00:01:06 \u001B[90mv\u001B[0m #1608 > > 2, 559\n",
- "00:01:06 \u001B[90mv\u001B[0m #1609 > > \u001B[38;2;146;146;178m│\u001B[0m struct ([1; 3; 4; 6; 8; 9; 11], 11, 7) \t| US4_0 6 \t| US4_0 6 \t|\n",
- "00:01:06 \u001B[90mv\u001B[0m #1610 > > 1, 550\n",
- "00:01:06 \u001B[90mv\u001B[0m #1611 > > \u001B[38;2;146;146;178m│\u001B[0m struct ([1; 3; 4; 6; 8; 9; 11], 12, 7) \t| US4_1 \t| US4_1 \t|\n",
- "00:01:06 \u001B[90mv\u001B[0m #1612 > > 1, 574\n",
- "00:01:06 \u001B[90mv\u001B[0m #1613 > > \u001B[38;2;146;146;178m│\u001B[0m struct ([1; 2; 3; 4...00; ...], 60, 1000)\t| US4_0 59\t| US4_0 59\t|\n",
- "00:01:06 \u001B[90mv\u001B[0m #1614 > > 1, 610\n",
- "00:01:06 \u001B[90mv\u001B[0m #1615 > > \u001B[38;2;146;146;178m│\u001B[0m struct ([1; 3; 4; 6; 8; 9; 11], 6, 7) \t| US4_0 3 \t| US4_0 3 \t|\n",
- "00:01:06 \u001B[90mv\u001B[0m #1616 > > 2, 561\n",
- "00:01:06 \u001B[90mv\u001B[0m #1617 > > \u001B[38;2;146;146;178m│\u001B[0m struct ([1; 3; 4; 6; 8; 9; 11], 1, 7) \t| US4_0 0 \t| US4_0 0 \t|\n",
- "00:01:06 \u001B[90mv\u001B[0m #1618 > > 2, 603\n",
- "00:01:06 \u001B[90mv\u001B[0m #1619 > > \u001B[38;2;146;146;178m│\u001B[0m struct ([1; 3; 4; 6; 8; 9; 11], 11, 7) \t| US4_0 6 \t| US4_0 6 \t|\n",
- "00:01:06 \u001B[90mv\u001B[0m #1620 > > 2, 606\n",
- "00:01:06 \u001B[90mv\u001B[0m #1621 > > \u001B[38;2;146;146;178m│\u001B[0m struct ([1; 3; 4; 6; 8; 9; 11], 12, 7) \t| US4_1 \t| US4_1 \t|\n",
- "00:01:06 \u001B[90mv\u001B[0m #1622 > > 2, 613\n",
- "00:01:06 \u001B[90mv\u001B[0m #1623 > > \u001B[38;2;146;146;178m│\u001B[0m struct ([1; 2; 3; 4...100; ...], 60, 100)\t| US4_0 59\t| US4_0 59\t|\n",
- "00:01:06 \u001B[90mv\u001B[0m #1624 > > 1, 630\n",
- "00:01:06 \u001B[90mv\u001B[0m #1625 > > \u001B[38;2;146;146;178m│\u001B[0m ```\n",
- "00:01:06 \u001B[90mv\u001B[0m #1626 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:58 \u001B[90mverbose\u001B[0m #52 benchmark.sort_result_list\n",
- "00:01:06 \u001B[90mv\u001B[0m #1627 > > averages.iter / {avg = 602; i = 2}\n",
- "00:01:06 \u001B[90mv\u001B[0m #1628 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:58 \u001B[90mverbose\u001B[0m #53 benchmark.sort_result_list\n",
- "00:01:06 \u001B[90mv\u001B[0m #1629 > > averages.iter / {avg = 607; i = 4}\n",
- "00:01:06 \u001B[90mv\u001B[0m #1630 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:58 \u001B[90mverbose\u001B[0m #54 benchmark.sort_result_list\n",
- "00:01:06 \u001B[90mv\u001B[0m #1631 > > averages.iter / {avg = 619; i = 1}\n",
- "00:01:06 \u001B[90mv\u001B[0m #1632 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:58 \u001B[90mverbose\u001B[0m #55 benchmark.sort_result_list\n",
- "00:01:06 \u001B[90mv\u001B[0m #1633 > > averages.iter / {avg = 625; i = 3}\n",
- "00:01:06 \u001B[90mv\u001B[0m #1634 > > \u001B[38;2;146;146;178m│\u001B[0m ```\n",
- "00:01:06 \u001B[90mv\u001B[0m #1635 > >\n",
- "00:01:06 \u001B[90mv\u001B[0m #1636 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
- "00:01:06 \u001B[90mv\u001B[0m #1637 > > //// test\n",
- "00:01:06 \u001B[90mv\u001B[0m #1638 > > //// timeout=90000\n",
- "00:01:06 \u001B[90mv\u001B[0m #1639 > >\n",
- "00:01:06 \u001B[90mv\u001B[0m #1640 > > inl binary_search_semi_open_1 arr target left right =\n",
- "00:01:06 \u001B[90mv\u001B[0m #1641 > > inl rec body left right =\n",
- "00:01:06 \u001B[90mv\u001B[0m #1642 > > if left >= right\n",
- "00:01:06 \u001B[90mv\u001B[0m #1643 > > then None\n",
- "00:01:06 \u001B[90mv\u001B[0m #1644 > > else\n",
- "00:01:06 \u001B[90mv\u001B[0m #1645 > > inl mid = (left + right) / 2\n",
- "00:01:06 \u001B[90mv\u001B[0m #1646 > > inl item = index arr mid\n",
- "00:01:06 \u001B[90mv\u001B[0m #1647 > > if item = target\n",
- "00:01:06 \u001B[90mv\u001B[0m #1648 > > then Some mid\n",
- "00:01:06 \u001B[90mv\u001B[0m #1649 > > elif item < target\n",
- "00:01:06 \u001B[90mv\u001B[0m #1650 > > then loop (mid + 1) right\n",
- "00:01:06 \u001B[90mv\u001B[0m #1651 > > else loop left mid\n",
- "00:01:06 \u001B[90mv\u001B[0m #1652 > > and inl loop left right =\n",
- "00:01:06 \u001B[90mv\u001B[0m #1653 > > if var_is right |> not\n",
- "00:01:06 \u001B[90mv\u001B[0m #1654 > > then body left right\n",
- "00:01:06 \u001B[90mv\u001B[0m #1655 > > else\n",
- "00:01:06 \u001B[90mv\u001B[0m #1656 > > inl left = dyn left\n",
- "00:01:06 \u001B[90mv\u001B[0m #1657 > > join body left right\n",
- "00:01:06 \u001B[90mv\u001B[0m #1658 > > loop left right\n",
- "00:01:06 \u001B[90mv\u001B[0m #1659 > >\n",
- "00:01:06 \u001B[90mv\u001B[0m #1660 > > inl binary_search_closed_1 arr target left right =\n",
- "00:01:06 \u001B[90mv\u001B[0m #1661 > > inl rec body left right =\n",
- "00:01:06 \u001B[90mv\u001B[0m #1662 > > if left > right\n",
- "00:01:06 \u001B[90mv\u001B[0m #1663 > > then None\n",
- "00:01:06 \u001B[90mv\u001B[0m #1664 > > else\n",
- "00:01:06 \u001B[90mv\u001B[0m #1665 > > inl mid = (left + right) / 2\n",
- "00:01:06 \u001B[90mv\u001B[0m #1666 > > inl item = index arr mid\n",
- "00:01:06 \u001B[90mv\u001B[0m #1667 > > if item = target\n",
- "00:01:06 \u001B[90mv\u001B[0m #1668 > > then Some mid\n",
- "00:01:06 \u001B[90mv\u001B[0m #1669 > > elif item < target\n",
- "00:01:06 \u001B[90mv\u001B[0m #1670 > > then loop (mid + 1) right\n",
- "00:01:06 \u001B[90mv\u001B[0m #1671 > > else loop left (mid - 1)\n",
- "00:01:06 \u001B[90mv\u001B[0m #1672 > > and inl loop left right =\n",
- "00:01:06 \u001B[90mv\u001B[0m #1673 > > if var_is right |> not\n",
- "00:01:06 \u001B[90mv\u001B[0m #1674 > > then body left right\n",
- "00:01:06 \u001B[90mv\u001B[0m #1675 > > else\n",
- "00:01:06 \u001B[90mv\u001B[0m #1676 > > inl left = dyn left\n",
- "00:01:06 \u001B[90mv\u001B[0m #1677 > > join body left right\n",
- "00:01:06 \u001B[90mv\u001B[0m #1678 > > loop left right\n",
- "00:01:06 \u001B[90mv\u001B[0m #1679 > >\n",
- "00:01:06 \u001B[90mv\u001B[0m #1680 > > inl binary_search_semi_open_2 arr target left right =\n",
- "00:01:06 \u001B[90mv\u001B[0m #1681 > > let rec body left right =\n",
- "00:01:06 \u001B[90mv\u001B[0m #1682 > > if left >= right\n",
- "00:01:06 \u001B[90mv\u001B[0m #1683 > > then None\n",
- "00:01:06 \u001B[90mv\u001B[0m #1684 > > else\n",
- "00:01:06 \u001B[90mv\u001B[0m #1685 > > inl mid = (left + right) / 2\n",
- "00:01:06 \u001B[90mv\u001B[0m #1686 > > inl item = index arr mid\n",
- "00:01:06 \u001B[90mv\u001B[0m #1687 > > if item = target\n",
- "00:01:06 \u001B[90mv\u001B[0m #1688 > > then Some mid\n",
- "00:01:06 \u001B[90mv\u001B[0m #1689 > > elif item < target\n",
- "00:01:06 \u001B[90mv\u001B[0m #1690 > > then loop (mid + 1) right\n",
- "00:01:06 \u001B[90mv\u001B[0m #1691 > > else loop left mid\n",
- "00:01:06 \u001B[90mv\u001B[0m #1692 > > and inl loop left right = body left right\n",
- "00:01:06 \u001B[90mv\u001B[0m #1693 > > loop left right\n",
- "00:01:06 \u001B[90mv\u001B[0m #1694 > >\n",
- "00:01:06 \u001B[90mv\u001B[0m #1695 > > inl binary_search_closed_2 arr target left right =\n",
- "00:01:06 \u001B[90mv\u001B[0m #1696 > > let rec body left right =\n",
- "00:01:06 \u001B[90mv\u001B[0m #1697 > > if left > right\n",
- "00:01:06 \u001B[90mv\u001B[0m #1698 > > then None\n",
- "00:01:06 \u001B[90mv\u001B[0m #1699 > > else\n",
- "00:01:06 \u001B[90mv\u001B[0m #1700 > > inl mid = (left + right) / 2\n",
- "00:01:06 \u001B[90mv\u001B[0m #1701 > > inl item = index arr mid\n",
- "00:01:06 \u001B[90mv\u001B[0m #1702 > > if item = target\n",
- "00:01:06 \u001B[90mv\u001B[0m #1703 > > then Some mid\n",
- "00:01:06 \u001B[90mv\u001B[0m #1704 > > elif item < target\n",
- "00:01:06 \u001B[90mv\u001B[0m #1705 > > then loop (mid + 1) right\n",
- "00:01:06 \u001B[90mv\u001B[0m #1706 > > else loop left (mid - 1)\n",
- "00:01:06 \u001B[90mv\u001B[0m #1707 > > and inl loop left right = body left right\n",
- "00:01:06 \u001B[90mv\u001B[0m #1708 > > loop left right\n",
- "00:01:06 \u001B[90mv\u001B[0m #1709 > >\n",
- "00:01:06 \u001B[90mv\u001B[0m #1710 > > inl get_solutions () =\n",
- "00:01:06 \u001B[90mv\u001B[0m #1711 > > [[\n",
- "00:01:06 \u001B[90mv\u001B[0m #1712 > > \"semi_open_1\",\n",
- "00:01:06 \u001B[90mv\u001B[0m #1713 > > fun (arr, (target, len)) =>\n",
- "00:01:06 \u001B[90mv\u001B[0m #1714 > > binary_search_semi_open_1 arr target 0 len\n",
- "00:01:06 \u001B[90mv\u001B[0m #1715 > >\n",
- "00:01:06 \u001B[90mv\u001B[0m #1716 > > \"closed_1\",\n",
- "00:01:06 \u001B[90mv\u001B[0m #1717 > > fun (arr, (target, len)) =>\n",
- "00:01:06 \u001B[90mv\u001B[0m #1718 > > binary_search_closed_1 arr target 0 (len - 1)\n",
- "00:01:06 \u001B[90mv\u001B[0m #1719 > >\n",
- "00:01:06 \u001B[90mv\u001B[0m #1720 > > \"semi_open_2\",\n",
- "00:01:06 \u001B[90mv\u001B[0m #1721 > > fun (arr, (target, len)) =>\n",
- "00:01:06 \u001B[90mv\u001B[0m #1722 > > binary_search_semi_open_2 arr target 0 len\n",
- "00:01:06 \u001B[90mv\u001B[0m #1723 > >\n",
- "00:01:06 \u001B[90mv\u001B[0m #1724 > > \"closed_2\",\n",
- "00:01:06 \u001B[90mv\u001B[0m #1725 > > fun (arr, (target, len)) =>\n",
- "00:01:06 \u001B[90mv\u001B[0m #1726 > > binary_search_closed_2 arr target 0 (len - 1)\n",
- "00:01:06 \u001B[90mv\u001B[0m #1727 > > ]]\n",
- "00:01:06 \u001B[90mv\u001B[0m #1728 > >\n",
- "00:01:06 \u001B[90mv\u001B[0m #1729 > > inl rec binary_search_tests () =\n",
- "00:01:06 \u001B[90mv\u001B[0m #1730 > > inl arr_with_len target len arr =\n",
- "00:01:06 \u001B[90mv\u001B[0m #1731 > > arr, (target, (len |> optionm'.default_with fun () => length arr))\n",
- "00:01:06 \u001B[90mv\u001B[0m #1732 > >\n",
- "00:01:06 \u001B[90mv\u001B[0m #1733 > > inl test_cases = [[\n",
- "00:01:06 \u001B[90mv\u001B[0m #1734 > > (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 6 None), (Some 3i32)\n",
- "00:01:06 \u001B[90mv\u001B[0m #1735 > > (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 1 None), (Some 0i32)\n",
- "00:01:06 \u001B[90mv\u001B[0m #1736 > > (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 11 None), (Some 6i32)\n",
- "00:01:06 \u001B[90mv\u001B[0m #1737 > > (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 12 None), None\n",
- "00:01:06 \u001B[90mv\u001B[0m #1738 > > ((am'.init_series 1i32 1000 1 |> fun x => a x : _ int _) |> arr_with_len\n",
- "00:01:06 \u001B[90mv\u001B[0m #1739 > > 60 None), (Some 59)\n",
- "00:01:06 \u001B[90mv\u001B[0m #1740 > >\n",
- "00:01:06 \u001B[90mv\u001B[0m #1741 > > (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 6 (Some 7)), (Some\n",
- "00:01:06 \u001B[90mv\u001B[0m #1742 > > 3i32)\n",
- "00:01:06 \u001B[90mv\u001B[0m #1743 > > (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 1 (Some 7)), (Some\n",
- "00:01:06 \u001B[90mv\u001B[0m #1744 > > 0i32)\n",
- "00:01:06 \u001B[90mv\u001B[0m #1745 > > (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 11 (Some 7)), (Some\n",
- "00:01:06 \u001B[90mv\u001B[0m #1746 > > 6i32)\n",
- "00:01:06 \u001B[90mv\u001B[0m #1747 > > (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 12 (Some 7)), None\n",
- "00:01:06 \u001B[90mv\u001B[0m #1748 > > ((am'.init_series 1i32 1000 1 |> fun x => a x : _ int _) |> arr_with_len\n",
- "00:01:06 \u001B[90mv\u001B[0m #1749 > > 60 (Some 100)), (Some 59)\n",
- "00:01:06 \u001B[90mv\u001B[0m #1750 > > ]]\n",
- "00:01:06 \u001B[90mv\u001B[0m #1751 > >\n",
- "00:01:06 \u001B[90mv\u001B[0m #1752 > > inl solutions = get_solutions ()\n",
- "00:01:06 \u001B[90mv\u001B[0m #1753 > >\n",
- "00:01:06 \u001B[90mv\u001B[0m #1754 > > // inl is_fast () = true\n",
- "00:01:06 \u001B[90mv\u001B[0m #1755 > >\n",
- "00:01:06 \u001B[90mv\u001B[0m #1756 > > inl count =\n",
- "00:01:06 \u001B[90mv\u001B[0m #1757 > > if is_fast ()\n",
- "00:01:06 \u001B[90mv\u001B[0m #1758 > > then 1000i32\n",
- "00:01:06 \u001B[90mv\u001B[0m #1759 > > else 10000000i32\n",
- "00:01:06 \u001B[90mv\u001B[0m #1760 > >\n",
- "00:01:06 \u001B[90mv\u001B[0m #1761 > > run_all (reflection.nameof { binary_search_tests }) count solutions\n",
- "00:01:06 \u001B[90mv\u001B[0m #1762 > > test_cases\n",
- "00:01:06 \u001B[90mv\u001B[0m #1763 > > |> sort_result_list\n",
- "00:01:06 \u001B[90mv\u001B[0m #1764 > >\n",
- "00:01:06 \u001B[90mv\u001B[0m #1765 > >\n",
- "00:01:06 \u001B[90mv\u001B[0m #1766 > > let main () =\n",
- "00:01:06 \u001B[90mv\u001B[0m #1767 > > binary_search_tests ()\n",
- "00:01:36 \u001B[90mv\u001B[0m #1768 > >\n",
- "00:01:36 \u001B[90mv\u001B[0m #1769 > > ── [ 30.41s - stdout ] ─────────────────────────────────────────────────────────\n",
- "00:01:36 \u001B[90mv\u001B[0m #1770 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:01:36 \u001B[90mv\u001B[0m #1771 > > \u001B[38;2;38;140;38m│\u001B[0m ```\n",
- "00:01:36 \u001B[90mv\u001B[0m #1772 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:00 \u001B[90mv\u001B[0m #1 benchmark.run_all / { test_name =\n",
- "00:01:36 \u001B[90mv\u001B[0m #1773 > > binary_search_tests; count = 10000000 }\n",
- "00:01:36 \u001B[90mv\u001B[0m #1774 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:01:36 \u001B[90mv\u001B[0m #1775 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:00 \u001B[90mv\u001B[0m #2 benchmark.run / { input_str = struct ([|1;\n",
- "00:01:36 \u001B[90mv\u001B[0m #1776 > > 3; 4; 6; 8; 9; 11|], 6, 7) }\n",
- "00:01:36 \u001B[90mv\u001B[0m #1777 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:00 \u001B[90mv\u001B[0m #3 benchmark.run / solutions.map / { i = 1;\n",
- "00:01:36 \u001B[90mv\u001B[0m #1778 > > test_name = semi_open_1; time = 635 }\n",
- "00:01:36 \u001B[90mv\u001B[0m #1779 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:01 \u001B[90mv\u001B[0m #4 benchmark.run / solutions.map / { i = 2;\n",
- "00:01:36 \u001B[90mv\u001B[0m #1780 > > test_name = closed_1; time = 530 }\n",
- "00:01:36 \u001B[90mv\u001B[0m #1781 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:02 \u001B[90mv\u001B[0m #5 benchmark.run / solutions.map / { i = 3;\n",
- "00:01:36 \u001B[90mv\u001B[0m #1782 > > test_name = semi_open_2; time = 580 }\n",
- "00:01:36 \u001B[90mv\u001B[0m #1783 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:03 \u001B[90mv\u001B[0m #6 benchmark.run / solutions.map / { i = 4;\n",
- "00:01:36 \u001B[90mv\u001B[0m #1784 > > test_name = closed_2; time = 546 }\n",
- "00:01:36 \u001B[90mv\u001B[0m #1785 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:01:36 \u001B[90mv\u001B[0m #1786 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:03 \u001B[90mv\u001B[0m #7 benchmark.run / { input_str = struct ([|1;\n",
- "00:01:36 \u001B[90mv\u001B[0m #1787 > > 3; 4; 6; 8; 9; 11|], 1, 7) }\n",
- "00:01:36 \u001B[90mv\u001B[0m #1788 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:04 \u001B[90mv\u001B[0m #8 benchmark.run / solutions.map / { i = 1;\n",
- "00:01:36 \u001B[90mv\u001B[0m #1789 > > test_name = semi_open_1; time = 609 }\n",
- "00:01:36 \u001B[90mv\u001B[0m #1790 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:04 \u001B[90mv\u001B[0m #9 benchmark.run / solutions.map / { i = 2;\n",
- "00:01:36 \u001B[90mv\u001B[0m #1791 > > test_name = closed_1; time = 474 }\n",
- "00:01:36 \u001B[90mv\u001B[0m #1792 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:05 \u001B[90mv\u001B[0m #10 benchmark.run / solutions.map / { i = 3;\n",
- "00:01:36 \u001B[90mv\u001B[0m #1793 > > test_name = semi_open_2; time = 479 }\n",
- "00:01:36 \u001B[90mv\u001B[0m #1794 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:06 \u001B[90mv\u001B[0m #11 benchmark.run / solutions.map / { i = 4;\n",
- "00:01:36 \u001B[90mv\u001B[0m #1795 > > test_name = closed_2; time = 479 }\n",
- "00:01:36 \u001B[90mv\u001B[0m #1796 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:01:36 \u001B[90mv\u001B[0m #1797 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:06 \u001B[90mv\u001B[0m #12 benchmark.run / { input_str = struct\n",
- "00:01:36 \u001B[90mv\u001B[0m #1798 > > ([|1; 3; 4; 6; 8; 9; 11|], 11, 7) }\n",
- "00:01:36 \u001B[90mv\u001B[0m #1799 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:06 \u001B[90mv\u001B[0m #13 benchmark.run / solutions.map / { i = 1;\n",
- "00:01:36 \u001B[90mv\u001B[0m #1800 > > test_name = semi_open_1; time = 486 }\n",
- "00:01:36 \u001B[90mv\u001B[0m #1801 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:07 \u001B[90mv\u001B[0m #14 benchmark.run / solutions.map / { i = 2;\n",
- "00:01:36 \u001B[90mv\u001B[0m #1802 > > test_name = closed_1; time = 478 }\n",
- "00:01:36 \u001B[90mv\u001B[0m #1803 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:08 \u001B[90mv\u001B[0m #15 benchmark.run / solutions.map / { i = 3;\n",
- "00:01:36 \u001B[90mv\u001B[0m #1804 > > test_name = semi_open_2; time = 477 }\n",
- "00:01:36 \u001B[90mv\u001B[0m #1805 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:08 \u001B[90mv\u001B[0m #16 benchmark.run / solutions.map / { i = 4;\n",
- "00:01:36 \u001B[90mv\u001B[0m #1806 > > test_name = closed_2; time = 488 }\n",
- "00:01:36 \u001B[90mv\u001B[0m #1807 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:01:36 \u001B[90mv\u001B[0m #1808 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:08 \u001B[90mv\u001B[0m #17 benchmark.run / { input_str = struct\n",
- "00:01:36 \u001B[90mv\u001B[0m #1809 > > ([|1; 3; 4; 6; 8; 9; 11|], 12, 7) }\n",
- "00:01:36 \u001B[90mv\u001B[0m #1810 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:09 \u001B[90mv\u001B[0m #18 benchmark.run / solutions.map / { i = 1;\n",
- "00:01:36 \u001B[90mv\u001B[0m #1811 > > test_name = semi_open_1; time = 480 }\n",
- "00:01:36 \u001B[90mv\u001B[0m #1812 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:10 \u001B[90mv\u001B[0m #19 benchmark.run / solutions.map / { i = 2;\n",
- "00:01:36 \u001B[90mv\u001B[0m #1813 > > test_name = closed_1; time = 484 }\n",
- "00:01:36 \u001B[90mv\u001B[0m #1814 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:11 \u001B[90mv\u001B[0m #20 benchmark.run / solutions.map / { i = 3;\n",
- "00:01:36 \u001B[90mv\u001B[0m #1815 > > test_name = semi_open_2; time = 489 }\n",
- "00:01:36 \u001B[90mv\u001B[0m #1816 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:11 \u001B[90mv\u001B[0m #21 benchmark.run / solutions.map / { i = 4;\n",
- "00:01:36 \u001B[90mv\u001B[0m #1817 > > test_name = closed_2; time = 484 }\n",
- "00:01:36 \u001B[90mv\u001B[0m #1818 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:01:36 \u001B[90mv\u001B[0m #1819 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:11 \u001B[90mv\u001B[0m #22 benchmark.run / { input_str = struct\n",
- "00:01:36 \u001B[90mv\u001B[0m #1820 > > ([|1; 2; 3; 4...00; ...|], 60, 1000) }\n",
- "00:01:36 \u001B[90mv\u001B[0m #1821 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:12 \u001B[90mv\u001B[0m #23 benchmark.run / solutions.map / { i = 1;\n",
- "00:01:36 \u001B[90mv\u001B[0m #1822 > > test_name = semi_open_1; time = 512 }\n",
- "00:01:36 \u001B[90mv\u001B[0m #1823 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:13 \u001B[90mv\u001B[0m #24 benchmark.run / solutions.map / { i = 2;\n",
- "00:01:36 \u001B[90mv\u001B[0m #1824 > > test_name = closed_1; time = 526 }\n",
- "00:01:36 \u001B[90mv\u001B[0m #1825 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:14 \u001B[90mv\u001B[0m #25 benchmark.run / solutions.map / { i = 3;\n",
- "00:01:36 \u001B[90mv\u001B[0m #1826 > > test_name = semi_open_2; time = 513 }\n",
- "00:01:36 \u001B[90mv\u001B[0m #1827 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:14 \u001B[90mv\u001B[0m #26 benchmark.run / solutions.map / { i = 4;\n",
- "00:01:36 \u001B[90mv\u001B[0m #1828 > > test_name = closed_2; time = 520 }\n",
- "00:01:36 \u001B[90mv\u001B[0m #1829 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:01:36 \u001B[90mv\u001B[0m #1830 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:14 \u001B[90mv\u001B[0m #27 benchmark.run / { input_str = struct\n",
- "00:01:36 \u001B[90mv\u001B[0m #1831 > > ([|1; 3; 4; 6; 8; 9; 11|], 6, 7) }\n",
- "00:01:36 \u001B[90mv\u001B[0m #1832 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:15 \u001B[90mv\u001B[0m #28 benchmark.run / solutions.map / { i = 1;\n",
- "00:01:36 \u001B[90mv\u001B[0m #1833 > > test_name = semi_open_1; time = 459 }\n",
- "00:01:36 \u001B[90mv\u001B[0m #1834 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:16 \u001B[90mv\u001B[0m #29 benchmark.run / solutions.map / { i = 2;\n",
- "00:01:36 \u001B[90mv\u001B[0m #1835 > > test_name = closed_1; time = 463 }\n",
- "00:01:36 \u001B[90mv\u001B[0m #1836 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:16 \u001B[90mv\u001B[0m #30 benchmark.run / solutions.map / { i = 3;\n",
- "00:01:36 \u001B[90mv\u001B[0m #1837 > > test_name = semi_open_2; time = 465 }\n",
- "00:01:36 \u001B[90mv\u001B[0m #1838 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:17 \u001B[90mv\u001B[0m #31 benchmark.run / solutions.map / { i = 4;\n",
- "00:01:36 \u001B[90mv\u001B[0m #1839 > > test_name = closed_2; time = 458 }\n",
- "00:01:36 \u001B[90mv\u001B[0m #1840 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:01:36 \u001B[90mv\u001B[0m #1841 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:17 \u001B[90mv\u001B[0m #32 benchmark.run / { input_str = struct\n",
- "00:01:36 \u001B[90mv\u001B[0m #1842 > > ([|1; 3; 4; 6; 8; 9; 11|], 1, 7) }\n",
- "00:01:36 \u001B[90mv\u001B[0m #1843 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:18 \u001B[90mv\u001B[0m #33 benchmark.run / solutions.map / { i = 1;\n",
- "00:01:36 \u001B[90mv\u001B[0m #1844 > > test_name = semi_open_1; time = 477 }\n",
- "00:01:36 \u001B[90mv\u001B[0m #1845 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:18 \u001B[90mv\u001B[0m #34 benchmark.run / solutions.map / { i = 2;\n",
- "00:01:36 \u001B[90mv\u001B[0m #1846 > > test_name = closed_1; time = 479 }\n",
- "00:01:36 \u001B[90mv\u001B[0m #1847 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:19 \u001B[90mv\u001B[0m #35 benchmark.run / solutions.map / { i = 3;\n",
- "00:01:36 \u001B[90mv\u001B[0m #1848 > > test_name = semi_open_2; time = 476 }\n",
- "00:01:36 \u001B[90mv\u001B[0m #1849 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:20 \u001B[90mv\u001B[0m #36 benchmark.run / solutions.map / { i = 4;\n",
- "00:01:36 \u001B[90mv\u001B[0m #1850 > > test_name = closed_2; time = 479 }\n",
- "00:01:36 \u001B[90mv\u001B[0m #1851 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:01:36 \u001B[90mv\u001B[0m #1852 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:20 \u001B[90mv\u001B[0m #37 benchmark.run / { input_str = struct\n",
- "00:01:36 \u001B[90mv\u001B[0m #1853 > > ([|1; 3; 4; 6; 8; 9; 11|], 11, 7) }\n",
- "00:01:36 \u001B[90mv\u001B[0m #1854 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:21 \u001B[90mv\u001B[0m #38 benchmark.run / solutions.map / { i = 1;\n",
- "00:01:36 \u001B[90mv\u001B[0m #1855 > > test_name = semi_open_1; time = 488 }\n",
- "00:01:36 \u001B[90mv\u001B[0m #1856 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:21 \u001B[90mv\u001B[0m #39 benchmark.run / solutions.map / { i = 2;\n",
- "00:01:36 \u001B[90mv\u001B[0m #1857 > > test_name = closed_1; time = 482 }\n",
- "00:01:36 \u001B[90mv\u001B[0m #1858 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:22 \u001B[90mv\u001B[0m #40 benchmark.run / solutions.map / { i = 3;\n",
- "00:01:36 \u001B[90mv\u001B[0m #1859 > > test_name = semi_open_2; time = 476 }\n",
- "00:01:36 \u001B[90mv\u001B[0m #1860 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:23 \u001B[90mv\u001B[0m #41 benchmark.run / solutions.map / { i = 4;\n",
- "00:01:36 \u001B[90mv\u001B[0m #1861 > > test_name = closed_2; time = 486 }\n",
- "00:01:36 \u001B[90mv\u001B[0m #1862 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:01:36 \u001B[90mv\u001B[0m #1863 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:23 \u001B[90mv\u001B[0m #42 benchmark.run / { input_str = struct\n",
- "00:01:36 \u001B[90mv\u001B[0m #1864 > > ([|1; 3; 4; 6; 8; 9; 11|], 12, 7) }\n",
- "00:01:36 \u001B[90mv\u001B[0m #1865 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:23 \u001B[90mv\u001B[0m #43 benchmark.run / solutions.map / { i = 1;\n",
- "00:01:36 \u001B[90mv\u001B[0m #1866 > > test_name = semi_open_1; time = 492 }\n",
- "00:01:36 \u001B[90mv\u001B[0m #1867 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:24 \u001B[90mv\u001B[0m #44 benchmark.run / solutions.map / { i = 2;\n",
- "00:01:36 \u001B[90mv\u001B[0m #1868 > > test_name = closed_1; time = 493 }\n",
- "00:01:36 \u001B[90mv\u001B[0m #1869 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:25 \u001B[90mv\u001B[0m #45 benchmark.run / solutions.map / { i = 3;\n",
- "00:01:36 \u001B[90mv\u001B[0m #1870 > > test_name = semi_open_2; time = 488 }\n",
- "00:01:36 \u001B[90mv\u001B[0m #1871 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:25 \u001B[90mv\u001B[0m #46 benchmark.run / solutions.map / { i = 4;\n",
- "00:01:36 \u001B[90mv\u001B[0m #1872 > > test_name = closed_2; time = 492 }\n",
- "00:01:36 \u001B[90mv\u001B[0m #1873 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:01:36 \u001B[90mv\u001B[0m #1874 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:25 \u001B[90mv\u001B[0m #47 benchmark.run / { input_str = struct\n",
- "00:01:36 \u001B[90mv\u001B[0m #1875 > > ([|1; 2; 3; 4...100; ...|], 60, 100) }\n",
- "00:01:36 \u001B[90mv\u001B[0m #1876 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:26 \u001B[90mv\u001B[0m #48 benchmark.run / solutions.map / { i = 1;\n",
- "00:01:36 \u001B[90mv\u001B[0m #1877 > > test_name = semi_open_1; time = 495 }\n",
- "00:01:36 \u001B[90mv\u001B[0m #1878 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:27 \u001B[90mv\u001B[0m #49 benchmark.run / solutions.map / { i = 2;\n",
- "00:01:36 \u001B[90mv\u001B[0m #1879 > > test_name = closed_1; time = 507 }\n",
- "00:01:36 \u001B[90mv\u001B[0m #1880 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:28 \u001B[90mv\u001B[0m #50 benchmark.run / solutions.map / { i = 3;\n",
- "00:01:36 \u001B[90mv\u001B[0m #1881 > > test_name = semi_open_2; time = 480 }\n",
- "00:01:36 \u001B[90mv\u001B[0m #1882 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:28 \u001B[90mv\u001B[0m #51 benchmark.run / solutions.map / { i = 4;\n",
- "00:01:36 \u001B[90mv\u001B[0m #1883 > > test_name = closed_2; time = 479 }\n",
- "00:01:36 \u001B[90mv\u001B[0m #1884 > > \u001B[38;2;38;140;38m│\u001B[0m ```\n",
- "00:01:36 \u001B[90mv\u001B[0m #1885 > > \u001B[38;2;38;140;38m│\u001B[0m input \t| expected\t| result \t|\n",
- "00:01:36 \u001B[90mv\u001B[0m #1886 > > best\n",
- "00:01:36 \u001B[90mv\u001B[0m #1887 > > \u001B[38;2;38;140;38m│\u001B[0m --- \t| --- \t| --- \t|\n",
- "00:01:36 \u001B[90mv\u001B[0m #1888 > > ---\n",
- "00:01:36 \u001B[90mv\u001B[0m #1889 > > \u001B[38;2;38;140;38m│\u001B[0m struct ([1; 3; 4; 6; 8; 9; 11], 6, 7) \t| US6_0 3 \t| US6_0 3 \t|\n",
- "00:01:36 \u001B[90mv\u001B[0m #1890 > > 2, 530\n",
- "00:01:36 \u001B[90mv\u001B[0m #1891 > > \u001B[38;2;38;140;38m│\u001B[0m struct ([1; 3; 4; 6; 8; 9; 11], 1, 7) \t| US6_0 0 \t| US6_0 0 \t|\n",
- "00:01:36 \u001B[90mv\u001B[0m #1892 > > 2, 474\n",
- "00:01:36 \u001B[90mv\u001B[0m #1893 > > \u001B[38;2;38;140;38m│\u001B[0m struct ([1; 3; 4; 6; 8; 9; 11], 11, 7) \t| US6_0 6 \t| US6_0 6 \t|\n",
- "00:01:36 \u001B[90mv\u001B[0m #1894 > > 3, 477\n",
- "00:01:36 \u001B[90mv\u001B[0m #1895 > > \u001B[38;2;38;140;38m│\u001B[0m struct ([1; 3; 4; 6; 8; 9; 11], 12, 7) \t| US6_1 \t| US6_1 \t|\n",
- "00:01:36 \u001B[90mv\u001B[0m #1896 > > 1, 480\n",
- "00:01:36 \u001B[90mv\u001B[0m #1897 > > \u001B[38;2;38;140;38m│\u001B[0m struct ([1; 2; 3; 4...00; ...], 60, 1000)\t| US6_0 59\t| US6_0 59\t|\n",
- "00:01:36 \u001B[90mv\u001B[0m #1898 > > 1, 512\n",
- "00:01:36 \u001B[90mv\u001B[0m #1899 > > \u001B[38;2;38;140;38m│\u001B[0m struct ([1; 3; 4; 6; 8; 9; 11], 6, 7) \t| US6_0 3 \t| US6_0 3 \t|\n",
- "00:01:36 \u001B[90mv\u001B[0m #1900 > > 4, 458\n",
- "00:01:36 \u001B[90mv\u001B[0m #1901 > > \u001B[38;2;38;140;38m│\u001B[0m struct ([1; 3; 4; 6; 8; 9; 11], 1, 7) \t| US6_0 0 \t| US6_0 0 \t|\n",
- "00:01:36 \u001B[90mv\u001B[0m #1902 > > 3, 476\n",
- "00:01:36 \u001B[90mv\u001B[0m #1903 > > \u001B[38;2;38;140;38m│\u001B[0m struct ([1; 3; 4; 6; 8; 9; 11], 11, 7) \t| US6_0 6 \t| US6_0 6 \t|\n",
- "00:01:36 \u001B[90mv\u001B[0m #1904 > > 3, 476\n",
- "00:01:36 \u001B[90mv\u001B[0m #1905 > > \u001B[38;2;38;140;38m│\u001B[0m struct ([1; 3; 4; 6; 8; 9; 11], 12, 7) \t| US6_1 \t| US6_1 \t|\n",
- "00:01:36 \u001B[90mv\u001B[0m #1906 > > 3, 488\n",
- "00:01:36 \u001B[90mv\u001B[0m #1907 > > \u001B[38;2;38;140;38m│\u001B[0m struct ([1; 2; 3; 4...100; ...], 60, 100)\t| US6_0 59\t| US6_0 59\t|\n",
- "00:01:36 \u001B[90mv\u001B[0m #1908 > > 4, 479\n",
- "00:01:36 \u001B[90mv\u001B[0m #1909 > > \u001B[38;2;38;140;38m│\u001B[0m ```\n",
- "00:01:36 \u001B[90mv\u001B[0m #1910 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:28 \u001B[90mv\u001B[0m #52 benchmark.sort_result_list\n",
- "00:01:36 \u001B[90mv\u001B[0m #1911 > > averages.iter / { i = 2; avg = 491 }\n",
- "00:01:36 \u001B[90mv\u001B[0m #1912 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:28 \u001B[90mv\u001B[0m #53 benchmark.sort_result_list\n",
- "00:01:36 \u001B[90mv\u001B[0m #1913 > > averages.iter / { i = 4; avg = 491 }\n",
- "00:01:36 \u001B[90mv\u001B[0m #1914 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:28 \u001B[90mv\u001B[0m #54 benchmark.sort_result_list\n",
- "00:01:36 \u001B[90mv\u001B[0m #1915 > > averages.iter / { i = 3; avg = 492 }\n",
- "00:01:36 \u001B[90mv\u001B[0m #1916 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:28 \u001B[90mv\u001B[0m #55 benchmark.sort_result_list\n",
- "00:01:36 \u001B[90mv\u001B[0m #1917 > > averages.iter / { i = 1; avg = 513 }\n",
- "00:01:36 \u001B[90mv\u001B[0m #1918 > > \u001B[38;2;38;140;38m│\u001B[0m ```\n",
- "00:01:36 \u001B[90mv\u001B[0m #1919 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:01:36 \u001B[90mv\u001B[0m #1920 > >\n",
- "00:01:36 \u001B[90mv\u001B[0m #1921 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:01:36 \u001B[90mv\u001B[0m #1922 > > \u001B[38;2;146;146;178m│\u001B[0m ## returnLettersWithOddCountTests\n",
- "00:01:36 \u001B[90mv\u001B[0m #1923 > >\n",
- "00:01:36 \u001B[90mv\u001B[0m #1924 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:01:36 \u001B[90mv\u001B[0m #1925 > > \u001B[38;2;146;146;178m│\u001B[0m Test: ReturnLettersWithOddCount\n",
- "00:01:36 \u001B[90mv\u001B[0m #1926 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:01:36 \u001B[90mv\u001B[0m #1927 > > \u001B[38;2;146;146;178m│\u001B[0m Solution: 1\n",
- "00:01:36 \u001B[90mv\u001B[0m #1928 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. A. Time: 645L\n",
- "00:01:36 \u001B[90mv\u001B[0m #1929 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:01:36 \u001B[90mv\u001B[0m #1930 > > \u001B[38;2;146;146;178m│\u001B[0m Solution: 2\n",
- "00:01:36 \u001B[90mv\u001B[0m #1931 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. A. Time: 663L\n",
- "00:01:36 \u001B[90mv\u001B[0m #1932 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:01:36 \u001B[90mv\u001B[0m #1933 > > \u001B[38;2;146;146;178m│\u001B[0m Solution: 3\n",
- "00:01:36 \u001B[90mv\u001B[0m #1934 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. A. Time: 680L\n",
- "00:01:36 \u001B[90mv\u001B[0m #1935 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:01:36 \u001B[90mv\u001B[0m #1936 > > \u001B[38;2;146;146;178m│\u001B[0m Solution: 9\n",
- "00:01:36 \u001B[90mv\u001B[0m #1937 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. A. Time: 730L\n",
- "00:01:36 \u001B[90mv\u001B[0m #1938 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:01:36 \u001B[90mv\u001B[0m #1939 > > \u001B[38;2;146;146;178m│\u001B[0m Solution: 10\n",
- "00:01:36 \u001B[90mv\u001B[0m #1940 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. A. Time: 815L\n",
- "00:01:36 \u001B[90mv\u001B[0m #1941 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:01:36 \u001B[90mv\u001B[0m #1942 > > \u001B[38;2;146;146;178m│\u001B[0m Input | Expected | Result | Best\n",
- "00:01:36 \u001B[90mv\u001B[0m #1943 > > \u001B[38;2;146;146;178m│\u001B[0m --- | --- | --- | ---\n",
- "00:01:36 \u001B[90mv\u001B[0m #1944 > > \u001B[38;2;146;146;178m│\u001B[0m 1 | a | a | (1, 645)\n",
- "00:01:36 \u001B[90mv\u001B[0m #1945 > > \u001B[38;2;146;146;178m│\u001B[0m 2 | ba | ba | (1, 663)\n",
- "00:01:36 \u001B[90mv\u001B[0m #1946 > > \u001B[38;2;146;146;178m│\u001B[0m 3 | aaa | aaa | (1, 680)\n",
- "00:01:36 \u001B[90mv\u001B[0m #1947 > > \u001B[38;2;146;146;178m│\u001B[0m 9 | aaaaaaaaa | aaaaaaaaa | (1, 730)\n",
- "00:01:36 \u001B[90mv\u001B[0m #1948 > > \u001B[38;2;146;146;178m│\u001B[0m 10 | baaaaaaaaa | baaaaaaaaa | (1, 815)\n",
- "00:01:36 \u001B[90mv\u001B[0m #1949 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:01:36 \u001B[90mv\u001B[0m #1950 > > \u001B[38;2;146;146;178m│\u001B[0m Averages\n",
- "00:01:36 \u001B[90mv\u001B[0m #1951 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. Average Time: 706L\n",
- "00:01:36 \u001B[90mv\u001B[0m #1952 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:01:36 \u001B[90mv\u001B[0m #1953 > > \u001B[38;2;146;146;178m│\u001B[0m Ranking\n",
- "00:01:36 \u001B[90mv\u001B[0m #1954 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. Average Time: 706L\n",
- "00:01:36 \u001B[90mv\u001B[0m #1955 > >\n",
- "00:01:36 \u001B[90mv\u001B[0m #1956 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:01:36 \u001B[90mv\u001B[0m #1957 > > //// test\n",
- "00:01:36 \u001B[90mv\u001B[0m #1958 > >\n",
- "00:01:36 \u001B[90mv\u001B[0m #1959 > > let solutions = [[\n",
- "00:01:36 \u001B[90mv\u001B[0m #1960 > > \"A\",\n",
- "00:01:36 \u001B[90mv\u001B[0m #1961 > > fun n ->\n",
- "00:01:36 \u001B[90mv\u001B[0m #1962 > > let mutable _builder = StringBuilder (new string('a', n))\n",
- "00:01:36 \u001B[90mv\u001B[0m #1963 > > if n % 2 = 0 then\n",
- "00:01:36 \u001B[90mv\u001B[0m #1964 > > _builder.[[0]] <- 'b'\n",
- "00:01:36 \u001B[90mv\u001B[0m #1965 > >\n",
- "00:01:36 \u001B[90mv\u001B[0m #1966 > > _builder.ToString ()\n",
- "00:01:36 \u001B[90mv\u001B[0m #1967 > > ]]\n",
- "00:01:36 \u001B[90mv\u001B[0m #1968 > > let testCases = seq {\n",
- "00:01:36 \u001B[90mv\u001B[0m #1969 > > 1, \"a\"\n",
- "00:01:36 \u001B[90mv\u001B[0m #1970 > > 2, \"ba\"\n",
- "00:01:36 \u001B[90mv\u001B[0m #1971 > > 3, \"aaa\"\n",
- "00:01:36 \u001B[90mv\u001B[0m #1972 > > 9, \"aaaaaaaaa\"\n",
- "00:01:36 \u001B[90mv\u001B[0m #1973 > > 10, \"baaaaaaaaa\"\n",
- "00:01:36 \u001B[90mv\u001B[0m #1974 > > }\n",
- "00:01:36 \u001B[90mv\u001B[0m #1975 > > let rec returnLettersWithOddCountTests =\n",
- "00:01:36 \u001B[90mv\u001B[0m #1976 > > runAll (nameof returnLettersWithOddCountTests) _count solutions testCases\n",
- "00:01:36 \u001B[90mv\u001B[0m #1977 > > returnLettersWithOddCountTests\n",
- "00:01:36 \u001B[90mv\u001B[0m #1978 > > |> sortResultList\n",
- "00:01:37 \u001B[90mv\u001B[0m #1979 > >\n",
- "00:01:37 \u001B[90mv\u001B[0m #1980 > > ── [ 1.01s - stdout ] ──────────────────────────────────────────────────────────\n",
- "00:01:37 \u001B[90mv\u001B[0m #1981 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:01:37 \u001B[90mv\u001B[0m #1982 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:01:37 \u001B[90mv\u001B[0m #1983 > > \u001B[38;2;38;140;38m│\u001B[0m Test: returnLettersWithOddCountTests\n",
- "00:01:37 \u001B[90mv\u001B[0m #1984 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:01:37 \u001B[90mv\u001B[0m #1985 > > \u001B[38;2;38;140;38m│\u001B[0m Solution: 1\n",
- "00:01:37 \u001B[90mv\u001B[0m #1986 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 1. A. Time: 0L\n",
- "00:01:37 \u001B[90mv\u001B[0m #1987 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:01:37 \u001B[90mv\u001B[0m #1988 > > \u001B[38;2;38;140;38m│\u001B[0m Solution: 2\n",
- "00:01:37 \u001B[90mv\u001B[0m #1989 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 1. A. Time: 0L\n",
- "00:01:37 \u001B[90mv\u001B[0m #1990 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:01:37 \u001B[90mv\u001B[0m #1991 > > \u001B[38;2;38;140;38m│\u001B[0m Solution: 3\n",
- "00:01:37 \u001B[90mv\u001B[0m #1992 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 1. A. Time: 0L\n",
- "00:01:37 \u001B[90mv\u001B[0m #1993 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:01:37 \u001B[90mv\u001B[0m #1994 > > \u001B[38;2;38;140;38m│\u001B[0m Solution: 9\n",
- "00:01:37 \u001B[90mv\u001B[0m #1995 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 1. A. Time: 0L\n",
- "00:01:37 \u001B[90mv\u001B[0m #1996 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:01:37 \u001B[90mv\u001B[0m #1997 > > \u001B[38;2;38;140;38m│\u001B[0m Solution: 10\n",
- "00:01:37 \u001B[90mv\u001B[0m #1998 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 1. A. Time: 1L\n",
- "00:01:37 \u001B[90mv\u001B[0m #1999 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:01:37 \u001B[90mv\u001B[0m #2000 > > \u001B[38;2;38;140;38m│\u001B[0m Input\t| Expected \t| Result \t| Best\n",
- "00:01:37 \u001B[90mv\u001B[0m #2001 > > \u001B[38;2;38;140;38m│\u001B[0m --- \t| --- \t| --- \t| ---\n",
- "00:01:37 \u001B[90mv\u001B[0m #2002 > > \u001B[38;2;38;140;38m│\u001B[0m 1 \t| a \t| a \t| (1, 0)\n",
- "00:01:37 \u001B[90mv\u001B[0m #2003 > > \u001B[38;2;38;140;38m│\u001B[0m 2 \t| ba \t| ba \t| (1, 0)\n",
- "00:01:37 \u001B[90mv\u001B[0m #2004 > > \u001B[38;2;38;140;38m│\u001B[0m 3 \t| aaa \t| aaa \t| (1, 0)\n",
- "00:01:37 \u001B[90mv\u001B[0m #2005 > > \u001B[38;2;38;140;38m│\u001B[0m 9 \t| aaaaaaaaa \t| aaaaaaaaa \t| (1, 0)\n",
- "00:01:37 \u001B[90mv\u001B[0m #2006 > > \u001B[38;2;38;140;38m│\u001B[0m 10 \t| baaaaaaaaa\t| baaaaaaaaa\t| (1, 1)\n",
- "00:01:37 \u001B[90mv\u001B[0m #2007 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:01:37 \u001B[90mv\u001B[0m #2008 > > \u001B[38;2;38;140;38m│\u001B[0m Average Ranking\n",
- "00:01:37 \u001B[90mv\u001B[0m #2009 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 1. Average Time: 0L\n",
- "00:01:37 \u001B[90mv\u001B[0m #2010 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:01:37 \u001B[90mv\u001B[0m #2011 > >\n",
- "00:01:37 \u001B[90mv\u001B[0m #2012 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:01:37 \u001B[90mv\u001B[0m #2013 > > \u001B[38;2;146;146;178m│\u001B[0m ## hasAnyPairCloseToEachotherTests\n",
- "00:01:37 \u001B[90mv\u001B[0m #2014 > >\n",
- "00:01:37 \u001B[90mv\u001B[0m #2015 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:01:37 \u001B[90mv\u001B[0m #2016 > > \u001B[38;2;146;146;178m│\u001B[0m Test: HasAnyPairCloseToEachother\n",
- "00:01:37 \u001B[90mv\u001B[0m #2017 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:01:37 \u001B[90mv\u001B[0m #2018 > > \u001B[38;2;146;146;178m│\u001B[0m Solution: 0\n",
- "00:01:37 \u001B[90mv\u001B[0m #2019 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. A. Time: 137L\n",
- "00:01:37 \u001B[90mv\u001B[0m #2020 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:01:37 \u001B[90mv\u001B[0m #2021 > > \u001B[38;2;146;146;178m│\u001B[0m Solution: 1,2\n",
- "00:01:37 \u001B[90mv\u001B[0m #2022 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. A. Time: 186L\n",
- "00:01:37 \u001B[90mv\u001B[0m #2023 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:01:37 \u001B[90mv\u001B[0m #2024 > > \u001B[38;2;146;146;178m│\u001B[0m Solution: 3,5\n",
- "00:01:37 \u001B[90mv\u001B[0m #2025 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. A. Time: 206L\n",
- "00:01:37 \u001B[90mv\u001B[0m #2026 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:01:37 \u001B[90mv\u001B[0m #2027 > > \u001B[38;2;146;146;178m│\u001B[0m Solution: 3,4,6\n",
- "00:01:37 \u001B[90mv\u001B[0m #2028 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. A. Time: 149L\n",
- "00:01:37 \u001B[90mv\u001B[0m #2029 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:01:37 \u001B[90mv\u001B[0m #2030 > > \u001B[38;2;146;146;178m│\u001B[0m Solution: 2,4,6\n",
- "00:01:37 \u001B[90mv\u001B[0m #2031 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. A. Time: 150L\n",
- "00:01:37 \u001B[90mv\u001B[0m #2032 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:01:37 \u001B[90mv\u001B[0m #2033 > > \u001B[38;2;146;146;178m│\u001B[0m Input | Expected | Result | Best\n",
- "00:01:37 \u001B[90mv\u001B[0m #2034 > > \u001B[38;2;146;146;178m│\u001B[0m --- | --- | --- | ---\n",
- "00:01:37 \u001B[90mv\u001B[0m #2035 > > \u001B[38;2;146;146;178m│\u001B[0m 0 | False | False | (1, 137)\n",
- "00:01:37 \u001B[90mv\u001B[0m #2036 > > \u001B[38;2;146;146;178m│\u001B[0m 1,2 | True | True | (1, 186)\n",
- "00:01:37 \u001B[90mv\u001B[0m #2037 > > \u001B[38;2;146;146;178m│\u001B[0m 3,5 | False | False | (1, 206)\n",
- "00:01:37 \u001B[90mv\u001B[0m #2038 > > \u001B[38;2;146;146;178m│\u001B[0m 3,4,6 | True | True | (1, 149)\n",
- "00:01:37 \u001B[90mv\u001B[0m #2039 > > \u001B[38;2;146;146;178m│\u001B[0m 2,4,6 | False | False | (1, 150)\n",
- "00:01:37 \u001B[90mv\u001B[0m #2040 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:01:37 \u001B[90mv\u001B[0m #2041 > > \u001B[38;2;146;146;178m│\u001B[0m Averages\n",
- "00:01:37 \u001B[90mv\u001B[0m #2042 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. Average Time: 165L\n",
- "00:01:37 \u001B[90mv\u001B[0m #2043 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
- "00:01:37 \u001B[90mv\u001B[0m #2044 > > \u001B[38;2;146;146;178m│\u001B[0m Ranking\n",
- "00:01:37 \u001B[90mv\u001B[0m #2045 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. Average Time: 165L\n",
- "00:01:37 \u001B[90mv\u001B[0m #2046 > >\n",
- "00:01:37 \u001B[90mv\u001B[0m #2047 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:01:37 \u001B[90mv\u001B[0m #2048 > > //// test\n",
- "00:01:37 \u001B[90mv\u001B[0m #2049 > >\n",
- "00:01:37 \u001B[90mv\u001B[0m #2050 > > let solutions = [[\n",
- "00:01:37 \u001B[90mv\u001B[0m #2051 > > \"A\",\n",
- "00:01:37 \u001B[90mv\u001B[0m #2052 > > fun (a: int[[]]) ->\n",
- "00:01:37 \u001B[90mv\u001B[0m #2053 > > let indices = System.Linq.Enumerable.Range(0, a.Length) |>\n",
- "00:01:37 \u001B[90mv\u001B[0m #2054 > > System.Linq.Enumerable.ToArray\n",
- "00:01:37 \u001B[90mv\u001B[0m #2055 > > System.Array.Sort (a, indices)\n",
- "00:01:37 \u001B[90mv\u001B[0m #2056 > >\n",
- "00:01:37 \u001B[90mv\u001B[0m #2057 > > indices\n",
- "00:01:37 \u001B[90mv\u001B[0m #2058 > > |> Array.take (a.Length - 1)\n",
- "00:01:37 \u001B[90mv\u001B[0m #2059 > > |> Array.exists (fun i -> a.[[i + 1]] - a.[[i]] = 1)\n",
- "00:01:37 \u001B[90mv\u001B[0m #2060 > > ]]\n",
- "00:01:37 \u001B[90mv\u001B[0m #2061 > > let testCases = seq {\n",
- "00:01:37 \u001B[90mv\u001B[0m #2062 > > [[| 0 |]], false\n",
- "00:01:37 \u001B[90mv\u001B[0m #2063 > > [[| 1; 2 |]], true\n",
- "00:01:37 \u001B[90mv\u001B[0m #2064 > > [[| 3; 5 |]], false\n",
- "00:01:37 \u001B[90mv\u001B[0m #2065 > > [[| 3; 4; 6 |]], true\n",
- "00:01:37 \u001B[90mv\u001B[0m #2066 > > [[| 2; 4; 6 |]], false\n",
- "00:01:37 \u001B[90mv\u001B[0m #2067 > > }\n",
- "00:01:37 \u001B[90mv\u001B[0m #2068 > > let rec hasAnyPairCloseToEachotherTests =\n",
- "00:01:37 \u001B[90mv\u001B[0m #2069 > > runAll (nameof hasAnyPairCloseToEachotherTests) _count solutions testCases\n",
- "00:01:37 \u001B[90mv\u001B[0m #2070 > > hasAnyPairCloseToEachotherTests\n",
- "00:01:37 \u001B[90mv\u001B[0m #2071 > > |> sortResultList\n",
- "00:01:38 \u001B[90mv\u001B[0m #2072 > >\n",
- "00:01:38 \u001B[90mv\u001B[0m #2073 > > ── [ 1.02s - stdout ] ──────────────────────────────────────────────────────────\n",
- "00:01:38 \u001B[90mv\u001B[0m #2074 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:01:38 \u001B[90mv\u001B[0m #2075 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:01:38 \u001B[90mv\u001B[0m #2076 > > \u001B[38;2;38;140;38m│\u001B[0m Test: hasAnyPairCloseToEachotherTests\n",
- "00:01:38 \u001B[90mv\u001B[0m #2077 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:01:38 \u001B[90mv\u001B[0m #2078 > > \u001B[38;2;38;140;38m│\u001B[0m Solution: 0\n",
- "00:01:38 \u001B[90mv\u001B[0m #2079 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 1. A. Time: 2L\n",
- "00:01:38 \u001B[90mv\u001B[0m #2080 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:01:38 \u001B[90mv\u001B[0m #2081 > > \u001B[38;2;38;140;38m│\u001B[0m Solution: 1,2\n",
- "00:01:38 \u001B[90mv\u001B[0m #2082 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 1. A. Time: 0L\n",
- "00:01:38 \u001B[90mv\u001B[0m #2083 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:01:38 \u001B[90mv\u001B[0m #2084 > > \u001B[38;2;38;140;38m│\u001B[0m Solution: 3,5\n",
- "00:01:38 \u001B[90mv\u001B[0m #2085 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 1. A. Time: 0L\n",
- "00:01:38 \u001B[90mv\u001B[0m #2086 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:01:38 \u001B[90mv\u001B[0m #2087 > > \u001B[38;2;38;140;38m│\u001B[0m Solution: 3,4,6\n",
- "00:01:38 \u001B[90mv\u001B[0m #2088 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 1. A. Time: 0L\n",
- "00:01:38 \u001B[90mv\u001B[0m #2089 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:01:38 \u001B[90mv\u001B[0m #2090 > > \u001B[38;2;38;140;38m│\u001B[0m Solution: 2,4,6\n",
- "00:01:38 \u001B[90mv\u001B[0m #2091 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 1. A. Time: 0L\n",
- "00:01:38 \u001B[90mv\u001B[0m #2092 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:01:38 \u001B[90mv\u001B[0m #2093 > > \u001B[38;2;38;140;38m│\u001B[0m Input\t| Expected\t| Result\t| Best\n",
- "00:01:38 \u001B[90mv\u001B[0m #2094 > > \u001B[38;2;38;140;38m│\u001B[0m --- \t| --- \t| --- \t| ---\n",
- "00:01:38 \u001B[90mv\u001B[0m #2095 > > \u001B[38;2;38;140;38m│\u001B[0m 0 \t| False \t| False \t| (1, 2)\n",
- "00:01:38 \u001B[90mv\u001B[0m #2096 > > \u001B[38;2;38;140;38m│\u001B[0m 1,2 \t| True \t| True \t| (1, 0)\n",
- "00:01:38 \u001B[90mv\u001B[0m #2097 > > \u001B[38;2;38;140;38m│\u001B[0m 3,5 \t| False \t| False \t| (1, 0)\n",
- "00:01:38 \u001B[90mv\u001B[0m #2098 > > \u001B[38;2;38;140;38m│\u001B[0m 3,4,6\t| True \t| True \t| (1, 0)\n",
- "00:01:38 \u001B[90mv\u001B[0m #2099 > > \u001B[38;2;38;140;38m│\u001B[0m 2,4,6\t| False \t| False \t| (1, 0)\n",
- "00:01:38 \u001B[90mv\u001B[0m #2100 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:01:38 \u001B[90mv\u001B[0m #2101 > > \u001B[38;2;38;140;38m│\u001B[0m Average Ranking\n",
- "00:01:38 \u001B[90mv\u001B[0m #2102 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 1. Average Time: 0L\n",
- "00:01:38 \u001B[90mv\u001B[0m #2103 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:01:39 \u001B[90mv\u001B[0m #2104 > 00:01:37 \u001B[90mv\u001B[39m #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 84685 }\n",
- "00:01:39 \u001B[90mv\u001B[0m #2105 > 00:01:37 \u001B[94md\u001B[39m #4 runtime.execute_with_options / { file_name = jupyter; arguments = [\"nbconvert\", \"c:/home/git/polyglot/apps/perf/Perf.dib.ipynb\", \"--to\", \"html\", \"--HTMLExporter.theme=dark\"]; options = { command = jupyter nbconvert \"c:/home/git/polyglot/apps/perf/Perf.dib.ipynb\" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }\n",
- "00:01:40 \u001B[90mv\u001B[0m #2106 > 00:01:38 \u001B[90mv\u001B[39m #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/apps/perf/Perf.dib.ipynb to html\n",
- "00:01:40 \u001B[90mv\u001B[0m #2107 > 00:01:38 \u001B[90mv\u001B[39m #6 ! C:\\Users\\i574n\\scoop\\apps\\python312\\current\\Lib\\site-packages\\nbformat\\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.\n",
- "00:01:40 \u001B[90mv\u001B[0m #2108 > 00:01:38 \u001B[90mv\u001B[39m #7 ! validate(nb)\n",
- "00:01:41 \u001B[90mv\u001B[0m #2109 > 00:01:39 \u001B[90mv\u001B[39m #8 ! C:\\Users\\i574n\\scoop\\apps\\python312\\current\\Lib\\site-packages\\nbconvert\\filters\\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3\n",
- "00:01:41 \u001B[90mv\u001B[0m #2110 > 00:01:39 \u001B[90mv\u001B[39m #9 ! return _pygments_highlight(\n",
- "00:01:42 \u001B[90mv\u001B[0m #2111 > 00:01:40 \u001B[90mv\u001B[39m #10 ! [NbConvertApp] Writing 458079 bytes to c:\\home\\git\\polyglot\\apps\\perf\\Perf.dib.html\n",
- "00:01:42 \u001B[90mv\u001B[0m #2112 > 00:01:40 \u001B[90mv\u001B[39m #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 848 }\n",
- "00:01:42 \u001B[90mv\u001B[0m #2113 > 00:01:40 \u001B[94md\u001B[39m #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 848 }\n",
- "00:01:42 \u001B[90mv\u001B[0m #2114 > 00:01:40 \u001B[94md\u001B[39m #13 runtime.execute_with_options / { file_name = pwsh; arguments = [\"-c\", \"$counter = 1; $path = 'c:/home/git/polyglot/apps/perf/Perf.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\\\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path\"]; options = { command = pwsh -c \"$counter = 1; $path = 'c:/home/git/polyglot/apps/perf/Perf.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path\"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }\n",
- "00:01:42 \u001B[90mv\u001B[0m #2115 > 00:01:40 \u001B[90mv\u001B[39m #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 }\n",
- "00:01:42 \u001B[90mv\u001B[0m #2116 > 00:01:40 \u001B[94md\u001B[39m #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 }\n",
- "00:01:42 \u001B[90mv\u001B[0m #2117 > 00:01:40 \u001B[94md\u001B[39m #16 spiral.run / dib / { exit_code = 0; result_length = 85592 }\n",
- "00:01:42 \u001B[94md\u001B[0m #2118 runtime.execute_with_options_async / { exit_code = 0; output_length = 92289 }\n",
- "00:01:42 \u001B[94md\u001B[0m #3 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path Perf.dib --retries 3\n",
- "00:01:42 \u001B[90mv\u001B[0m #5 async.run_with_timeout_async / { timeout = 100 }\n",
+ "00:00:01 \u001B[94md\u001B[0m #1 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 \"dib --path Perf.dib --retries 3\"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path Perf.dib --retries 3; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }\n",
+ "00:00:01 \u001B[90mv\u001B[0m #2 > 00:00:00 \u001B[94md\u001B[39m #1 spiral.main / { args = Array(MutCell([\"dib\", \"--path\", \"Perf.dib\", \"--retries\", \"3\"])) }\n",
+ "00:00:01 \u001B[90mv\u001B[0m #3 > 00:00:00 \u001B[94md\u001B[39m #2 runtime.execute_with_options / { file_name = dotnet; arguments = [\"repl\", \"--exit-after-run\", \"--run\", \"c:/home/git/polyglot/apps/perf/Perf.dib\", \"--output-path\", \"c:/home/git/polyglot/apps/perf/Perf.dib.ipynb\"]; options = { command = dotnet repl --exit-after-run --run \"c:/home/git/polyglot/apps/perf/Perf.dib\" --output-path \"c:/home/git/polyglot/apps/perf/Perf.dib.ipynb\"; cancellation_token = None; environment_variables = Array(MutCell([(\"TRACE_LEVEL\", \"Verbose\"), (\"AUTOMATION\", \"True\")])); on_line = None; stdin = None; trace = false; working_directory = None } }\n",
+ "00:00:03 \u001B[90mv\u001B[0m #4 > >\n",
+ "00:00:03 \u001B[90mv\u001B[0m #5 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
+ "00:00:03 \u001B[90mv\u001B[0m #6 > > \u001B[38;2;146;146;178m│\u001B[0m # Perf (Polyglot)\n",
+ "00:00:25 \u001B[90mv\u001B[0m #7 > >\n",
+ "00:00:25 \u001B[90mv\u001B[0m #8 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
+ "00:00:25 \u001B[90mv\u001B[0m #9 > > //// test\n",
+ "00:00:25 \u001B[90mv\u001B[0m #10 > >\n",
+ "00:00:25 \u001B[90mv\u001B[0m #11 > > open testing\n",
+ "00:00:25 \u001B[90mv\u001B[0m #12 > > open benchmark\n",
+ "00:00:27 \u001B[90mv\u001B[0m #13 > >\n",
+ "00:00:27 \u001B[90mv\u001B[0m #14 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:00:27 \u001B[90mv\u001B[0m #15 > > #if !INTERACTIVE\n",
+ "00:00:27 \u001B[90mv\u001B[0m #16 > > open Lib\n",
+ "00:00:27 \u001B[90mv\u001B[0m #17 > > #endif\n",
+ "00:00:27 \u001B[90mv\u001B[0m #18 > >\n",
+ "00:00:27 \u001B[90mv\u001B[0m #19 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
+ "00:00:27 \u001B[90mv\u001B[0m #20 > > \u001B[38;2;146;146;178m│\u001B[0m ## TestCaseResult\n",
+ "00:00:27 \u001B[90mv\u001B[0m #21 > >\n",
+ "00:00:27 \u001B[90mv\u001B[0m #22 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:00:27 \u001B[90mv\u001B[0m #23 > > type TestCaseResult =\n",
+ "00:00:27 \u001B[90mv\u001B[0m #24 > > {\n",
+ "00:00:27 \u001B[90mv\u001B[0m #25 > > Input: string\n",
+ "00:00:27 \u001B[90mv\u001B[0m #26 > > Expected: string\n",
+ "00:00:27 \u001B[90mv\u001B[0m #27 > > Result: string\n",
+ "00:00:27 \u001B[90mv\u001B[0m #28 > > TimeList: int64 list\n",
+ "00:00:27 \u001B[90mv\u001B[0m #29 > > }\n",
+ "00:00:27 \u001B[90mv\u001B[0m #30 > >\n",
+ "00:00:27 \u001B[90mv\u001B[0m #31 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
+ "00:00:27 \u001B[90mv\u001B[0m #32 > > \u001B[38;2;146;146;178m│\u001B[0m ## run\n",
+ "00:00:27 \u001B[90mv\u001B[0m #33 > >\n",
+ "00:00:27 \u001B[90mv\u001B[0m #34 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:00:27 \u001B[90mv\u001B[0m #35 > > let run count (solutions: (string * ('TInput -> 'TExpected)) list) (input,\n",
+ "00:00:27 \u001B[90mv\u001B[0m #36 > > expected) =\n",
+ "00:00:27 \u001B[90mv\u001B[0m #37 > > let inputStr =\n",
+ "00:00:27 \u001B[90mv\u001B[0m #38 > > match box input with\n",
+ "00:00:27 \u001B[90mv\u001B[0m #39 > > | :? System.Collections.ICollection as input ->\n",
+ "00:00:27 \u001B[90mv\u001B[0m #40 > > System.Linq.Enumerable.Cast input\n",
+ "00:00:27 \u001B[90mv\u001B[0m #41 > > |> Seq.map string\n",
+ "00:00:27 \u001B[90mv\u001B[0m #42 > > |> SpiralSm.concat \",\"\n",
+ "00:00:27 \u001B[90mv\u001B[0m #43 > > | _ -> input.ToString ()\n",
+ "00:00:27 \u001B[90mv\u001B[0m #44 > >\n",
+ "00:00:27 \u001B[90mv\u001B[0m #45 > > printfn \"\"\n",
+ "00:00:27 \u001B[90mv\u001B[0m #46 > > printfn $\"Solution: {inputStr} \"\n",
+ "00:00:27 \u001B[90mv\u001B[0m #47 > >\n",
+ "00:00:27 \u001B[90mv\u001B[0m #48 > > let performanceInvoke (fn: unit -> 'T) =\n",
+ "00:00:27 \u001B[90mv\u001B[0m #49 > > GC.Collect ()\n",
+ "00:00:27 \u001B[90mv\u001B[0m #50 > > let stopwatch = System.Diagnostics.Stopwatch ()\n",
+ "00:00:27 \u001B[90mv\u001B[0m #51 > > stopwatch.Start ()\n",
+ "00:00:27 \u001B[90mv\u001B[0m #52 > > let time1 = stopwatch.ElapsedMilliseconds\n",
+ "00:00:27 \u001B[90mv\u001B[0m #53 > >\n",
+ "00:00:27 \u001B[90mv\u001B[0m #54 > > let result =\n",
+ "00:00:27 \u001B[90mv\u001B[0m #55 > > [[| 0 .. count |]]\n",
+ "00:00:27 \u001B[90mv\u001B[0m #56 > > |> Array.Parallel.map (fun _ ->\n",
+ "00:00:27 \u001B[90mv\u001B[0m #57 > > fn ()\n",
+ "00:00:27 \u001B[90mv\u001B[0m #58 > > )\n",
+ "00:00:27 \u001B[90mv\u001B[0m #59 > > |> Array.last\n",
+ "00:00:27 \u001B[90mv\u001B[0m #60 > >\n",
+ "00:00:27 \u001B[90mv\u001B[0m #61 > > let time2 = stopwatch.ElapsedMilliseconds - time1\n",
+ "00:00:27 \u001B[90mv\u001B[0m #62 > >\n",
+ "00:00:27 \u001B[90mv\u001B[0m #63 > > result, time2\n",
+ "00:00:27 \u001B[90mv\u001B[0m #64 > >\n",
+ "00:00:27 \u001B[90mv\u001B[0m #65 > > let resultsWithTime =\n",
+ "00:00:27 \u001B[90mv\u001B[0m #66 > > solutions\n",
+ "00:00:27 \u001B[90mv\u001B[0m #67 > > |> List.mapi (fun i (testName, solution) ->\n",
+ "00:00:27 \u001B[90mv\u001B[0m #68 > > let result, time = performanceInvoke (fun () -> solution input)\n",
+ "00:00:27 \u001B[90mv\u001B[0m #69 > > printfn $\"Test case %d{i + 1}. %s{testName}. Time: %A{time} \"\n",
+ "00:00:27 \u001B[90mv\u001B[0m #70 > > result, time\n",
+ "00:00:27 \u001B[90mv\u001B[0m #71 > > )\n",
+ "00:00:27 \u001B[90mv\u001B[0m #72 > >\n",
+ "00:00:27 \u001B[90mv\u001B[0m #73 > >\n",
+ "00:00:27 \u001B[90mv\u001B[0m #74 > > match resultsWithTime |> List.map fst with\n",
+ "00:00:27 \u001B[90mv\u001B[0m #75 > > | ([[]] | [[ _ ]]) -> ()\n",
+ "00:00:27 \u001B[90mv\u001B[0m #76 > > | (head :: tail) when tail |> List.forall ((=) head) -> ()\n",
+ "00:00:27 \u001B[90mv\u001B[0m #77 > > | results -> failwithf $\"Challenge error: %A{results}\"\n",
+ "00:00:27 \u001B[90mv\u001B[0m #78 > >\n",
+ "00:00:27 \u001B[90mv\u001B[0m #79 > > {\n",
+ "00:00:27 \u001B[90mv\u001B[0m #80 > > Input = inputStr\n",
+ "00:00:27 \u001B[90mv\u001B[0m #81 > > Expected = expected.ToString ()\n",
+ "00:00:27 \u001B[90mv\u001B[0m #82 > > Result = resultsWithTime |> Seq.map fst |> Seq.head |> _.ToString()\n",
+ "00:00:27 \u001B[90mv\u001B[0m #83 > > TimeList = resultsWithTime |> List.map snd\n",
+ "00:00:27 \u001B[90mv\u001B[0m #84 > > }\n",
+ "00:00:27 \u001B[90mv\u001B[0m #85 > >\n",
+ "00:00:27 \u001B[90mv\u001B[0m #86 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
+ "00:00:27 \u001B[90mv\u001B[0m #87 > > \u001B[38;2;146;146;178m│\u001B[0m ## runAll\n",
+ "00:00:27 \u001B[90mv\u001B[0m #88 > >\n",
+ "00:00:27 \u001B[90mv\u001B[0m #89 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:00:27 \u001B[90mv\u001B[0m #90 > > let runAll testName count (solutions: (string * ('TInput -> 'TExpected)) list)\n",
+ "00:00:27 \u001B[90mv\u001B[0m #91 > > testCases =\n",
+ "00:00:27 \u001B[90mv\u001B[0m #92 > > printfn \"\"\n",
+ "00:00:27 \u001B[90mv\u001B[0m #93 > > printfn \"\"\n",
+ "00:00:27 \u001B[90mv\u001B[0m #94 > > printfn $\"Test: {testName}\"\n",
+ "00:00:27 \u001B[90mv\u001B[0m #95 > > testCases\n",
+ "00:00:27 \u001B[90mv\u001B[0m #96 > > |> Seq.map (run count solutions)\n",
+ "00:00:27 \u001B[90mv\u001B[0m #97 > > |> Seq.toList\n",
+ "00:00:27 \u001B[90mv\u001B[0m #98 > >\n",
+ "00:00:27 \u001B[90mv\u001B[0m #99 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
+ "00:00:27 \u001B[90mv\u001B[0m #100 > > \u001B[38;2;146;146;178m│\u001B[0m ## sortResultList\n",
+ "00:00:27 \u001B[90mv\u001B[0m #101 > >\n",
+ "00:00:27 \u001B[90mv\u001B[0m #102 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:00:27 \u001B[90mv\u001B[0m #103 > > let sortResultList resultList =\n",
+ "00:00:27 \u001B[90mv\u001B[0m #104 > > let table =\n",
+ "00:00:27 \u001B[90mv\u001B[0m #105 > > let rows =\n",
+ "00:00:27 \u001B[90mv\u001B[0m #106 > > resultList\n",
+ "00:00:27 \u001B[90mv\u001B[0m #107 > > |> List.map (fun result ->\n",
+ "00:00:27 \u001B[90mv\u001B[0m #108 > > let best =\n",
+ "00:00:27 \u001B[90mv\u001B[0m #109 > > result.TimeList\n",
+ "00:00:27 \u001B[90mv\u001B[0m #110 > > |> List.mapi (fun i time ->\n",
+ "00:00:27 \u001B[90mv\u001B[0m #111 > > i + 1, time\n",
+ "00:00:27 \u001B[90mv\u001B[0m #112 > > )\n",
+ "00:00:27 \u001B[90mv\u001B[0m #113 > > |> List.sortBy snd\n",
+ "00:00:27 \u001B[90mv\u001B[0m #114 > > |> List.head\n",
+ "00:00:27 \u001B[90mv\u001B[0m #115 > > |> _.ToString()\n",
+ "00:00:27 \u001B[90mv\u001B[0m #116 > > let row =\n",
+ "00:00:27 \u001B[90mv\u001B[0m #117 > > [[\n",
+ "00:00:27 \u001B[90mv\u001B[0m #118 > > result.Input\n",
+ "00:00:27 \u001B[90mv\u001B[0m #119 > > result.Expected\n",
+ "00:00:27 \u001B[90mv\u001B[0m #120 > > result.Result\n",
+ "00:00:27 \u001B[90mv\u001B[0m #121 > > best\n",
+ "00:00:27 \u001B[90mv\u001B[0m #122 > > ]]\n",
+ "00:00:27 \u001B[90mv\u001B[0m #123 > > let color =\n",
+ "00:00:27 \u001B[90mv\u001B[0m #124 > > match result.Expected = result.Result with\n",
+ "00:00:27 \u001B[90mv\u001B[0m #125 > > | true -> Some ConsoleColor.DarkGreen\n",
+ "00:00:27 \u001B[90mv\u001B[0m #126 > > | false -> Some ConsoleColor.DarkRed\n",
+ "00:00:27 \u001B[90mv\u001B[0m #127 > > row, color\n",
+ "00:00:27 \u001B[90mv\u001B[0m #128 > > )\n",
+ "00:00:27 \u001B[90mv\u001B[0m #129 > > let header =\n",
+ "00:00:27 \u001B[90mv\u001B[0m #130 > > [[\n",
+ "00:00:27 \u001B[90mv\u001B[0m #131 > > [[\n",
+ "00:00:27 \u001B[90mv\u001B[0m #132 > > \"Input\"\n",
+ "00:00:27 \u001B[90mv\u001B[0m #133 > > \"Expected\"\n",
+ "00:00:27 \u001B[90mv\u001B[0m #134 > > \"Result\"\n",
+ "00:00:27 \u001B[90mv\u001B[0m #135 > > \"Best\"\n",
+ "00:00:27 \u001B[90mv\u001B[0m #136 > > ]]\n",
+ "00:00:27 \u001B[90mv\u001B[0m #137 > > [[\n",
+ "00:00:27 \u001B[90mv\u001B[0m #138 > > \"---\"\n",
+ "00:00:27 \u001B[90mv\u001B[0m #139 > > \"---\"\n",
+ "00:00:27 \u001B[90mv\u001B[0m #140 > > \"---\"\n",
+ "00:00:27 \u001B[90mv\u001B[0m #141 > > \"---\"\n",
+ "00:00:27 \u001B[90mv\u001B[0m #142 > > ]]\n",
+ "00:00:27 \u001B[90mv\u001B[0m #143 > > ]]\n",
+ "00:00:27 \u001B[90mv\u001B[0m #144 > > |> List.map (fun row -> row, None)\n",
+ "00:00:27 \u001B[90mv\u001B[0m #145 > > header @ rows\n",
+ "00:00:27 \u001B[90mv\u001B[0m #146 > >\n",
+ "00:00:27 \u001B[90mv\u001B[0m #147 > > let formattedTable =\n",
+ "00:00:27 \u001B[90mv\u001B[0m #148 > > let lengthMap =\n",
+ "00:00:27 \u001B[90mv\u001B[0m #149 > > table\n",
+ "00:00:27 \u001B[90mv\u001B[0m #150 > > |> List.map fst\n",
+ "00:00:27 \u001B[90mv\u001B[0m #151 > > |> List.transpose\n",
+ "00:00:27 \u001B[90mv\u001B[0m #152 > > |> List.map (fun column ->\n",
+ "00:00:27 \u001B[90mv\u001B[0m #153 > > column\n",
+ "00:00:27 \u001B[90mv\u001B[0m #154 > > |> List.map String.length\n",
+ "00:00:27 \u001B[90mv\u001B[0m #155 > > |> List.sortDescending\n",
+ "00:00:27 \u001B[90mv\u001B[0m #156 > > |> List.tryHead\n",
+ "00:00:27 \u001B[90mv\u001B[0m #157 > > |> Option.defaultValue 0\n",
+ "00:00:27 \u001B[90mv\u001B[0m #158 > > )\n",
+ "00:00:27 \u001B[90mv\u001B[0m #159 > > |> List.indexed\n",
+ "00:00:27 \u001B[90mv\u001B[0m #160 > > |> Map.ofList\n",
+ "00:00:27 \u001B[90mv\u001B[0m #161 > > table\n",
+ "00:00:27 \u001B[90mv\u001B[0m #162 > > |> List.map (fun (row, color) ->\n",
+ "00:00:27 \u001B[90mv\u001B[0m #163 > > let newRow =\n",
+ "00:00:27 \u001B[90mv\u001B[0m #164 > > row\n",
+ "00:00:27 \u001B[90mv\u001B[0m #165 > > |> List.mapi (fun i cell ->\n",
+ "00:00:27 \u001B[90mv\u001B[0m #166 > > cell.PadRight lengthMap.[[i]]\n",
+ "00:00:27 \u001B[90mv\u001B[0m #167 > > )\n",
+ "00:00:27 \u001B[90mv\u001B[0m #168 > > newRow, color\n",
+ "00:00:27 \u001B[90mv\u001B[0m #169 > > )\n",
+ "00:00:27 \u001B[90mv\u001B[0m #170 > >\n",
+ "00:00:27 \u001B[90mv\u001B[0m #171 > > printfn \"\"\n",
+ "00:00:27 \u001B[90mv\u001B[0m #172 > > formattedTable\n",
+ "00:00:27 \u001B[90mv\u001B[0m #173 > > |> List.iter (fun (row, color) ->\n",
+ "00:00:27 \u001B[90mv\u001B[0m #174 > > match color with\n",
+ "00:00:27 \u001B[90mv\u001B[0m #175 > > | Some color -> Console.ForegroundColor <- color\n",
+ "00:00:27 \u001B[90mv\u001B[0m #176 > > | None -> Console.ResetColor ()\n",
+ "00:00:27 \u001B[90mv\u001B[0m #177 > >\n",
+ "00:00:27 \u001B[90mv\u001B[0m #178 > > printfn \"%s\" (String.Join (\"\\t| \", row))\n",
+ "00:00:27 \u001B[90mv\u001B[0m #179 > >\n",
+ "00:00:27 \u001B[90mv\u001B[0m #180 > > Console.ResetColor ()\n",
+ "00:00:27 \u001B[90mv\u001B[0m #181 > > )\n",
+ "00:00:27 \u001B[90mv\u001B[0m #182 > >\n",
+ "00:00:27 \u001B[90mv\u001B[0m #183 > > let averages =\n",
+ "00:00:27 \u001B[90mv\u001B[0m #184 > > resultList\n",
+ "00:00:27 \u001B[90mv\u001B[0m #185 > > |> List.map (fun result -> result.TimeList |> List.map float)\n",
+ "00:00:27 \u001B[90mv\u001B[0m #186 > > |> List.transpose\n",
+ "00:00:27 \u001B[90mv\u001B[0m #187 > > |> List.map List.average\n",
+ "00:00:27 \u001B[90mv\u001B[0m #188 > > |> List.map int64\n",
+ "00:00:27 \u001B[90mv\u001B[0m #189 > > |> List.indexed\n",
+ "00:00:27 \u001B[90mv\u001B[0m #190 > >\n",
+ "00:00:27 \u001B[90mv\u001B[0m #191 > > printfn \"\"\n",
+ "00:00:27 \u001B[90mv\u001B[0m #192 > > printfn \"Average Ranking \"\n",
+ "00:00:27 \u001B[90mv\u001B[0m #193 > > averages\n",
+ "00:00:27 \u001B[90mv\u001B[0m #194 > > |> List.sortBy snd\n",
+ "00:00:27 \u001B[90mv\u001B[0m #195 > > |> List.iter (fun (i, avg) ->\n",
+ "00:00:27 \u001B[90mv\u001B[0m #196 > > printfn $\"Test case %d{i + 1}. Average Time: %A{avg} \"\n",
+ "00:00:27 \u001B[90mv\u001B[0m #197 > > )\n",
+ "00:00:27 \u001B[90mv\u001B[0m #198 > >\n",
+ "00:00:27 \u001B[90mv\u001B[0m #199 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:00:27 \u001B[90mv\u001B[0m #200 > > let mutable _count =\n",
+ "00:00:27 \u001B[90mv\u001B[0m #201 > > if (\"CI\" |> System.Environment.GetEnvironmentVariable |> fun x -> $\"%A{x}\")\n",
+ "00:00:27 \u001B[90mv\u001B[0m #202 > > <> \"\"\n",
+ "00:00:27 \u001B[90mv\u001B[0m #203 > > then 2000000\n",
+ "00:00:27 \u001B[90mv\u001B[0m #204 > > else 2000\n",
+ "00:00:27 \u001B[90mv\u001B[0m #205 > >\n",
+ "00:00:27 \u001B[90mv\u001B[0m #206 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
+ "00:00:27 \u001B[90mv\u001B[0m #207 > > inl is_fast () =\n",
+ "00:00:27 \u001B[90mv\u001B[0m #208 > > false\n",
+ "00:00:27 \u001B[90mv\u001B[0m #209 > >\n",
+ "00:00:27 \u001B[90mv\u001B[0m #210 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
+ "00:00:27 \u001B[90mv\u001B[0m #211 > > \u001B[38;2;146;146;178m│\u001B[0m ## empty3Tests\n",
+ "00:00:27 \u001B[90mv\u001B[0m #212 > >\n",
+ "00:00:27 \u001B[90mv\u001B[0m #213 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
+ "00:00:27 \u001B[90mv\u001B[0m #214 > > \u001B[38;2;146;146;178m│\u001B[0m Test: Empty3\n",
+ "00:00:27 \u001B[90mv\u001B[0m #215 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:00:27 \u001B[90mv\u001B[0m #216 > > \u001B[38;2;146;146;178m│\u001B[0m Solution: (a, a)\n",
+ "00:00:27 \u001B[90mv\u001B[0m #217 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. A. Time: 91L\n",
+ "00:00:27 \u001B[90mv\u001B[0m #218 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:00:27 \u001B[90mv\u001B[0m #219 > > \u001B[38;2;146;146;178m│\u001B[0m Solution: (a, a)\n",
+ "00:00:27 \u001B[90mv\u001B[0m #220 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. A. Time: 56L\n",
+ "00:00:27 \u001B[90mv\u001B[0m #221 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:00:27 \u001B[90mv\u001B[0m #222 > > \u001B[38;2;146;146;178m│\u001B[0m Input | Expected | Result | Best\n",
+ "00:00:27 \u001B[90mv\u001B[0m #223 > > \u001B[38;2;146;146;178m│\u001B[0m --- | --- | --- | ---\n",
+ "00:00:27 \u001B[90mv\u001B[0m #224 > > \u001B[38;2;146;146;178m│\u001B[0m (a, a) | a | a | (1, 91)\n",
+ "00:00:27 \u001B[90mv\u001B[0m #225 > > \u001B[38;2;146;146;178m│\u001B[0m (a, a) | a | a | (1, 56)\n",
+ "00:00:27 \u001B[90mv\u001B[0m #226 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:00:27 \u001B[90mv\u001B[0m #227 > > \u001B[38;2;146;146;178m│\u001B[0m Averages\n",
+ "00:00:27 \u001B[90mv\u001B[0m #228 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. Average Time: 73L\n",
+ "00:00:27 \u001B[90mv\u001B[0m #229 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:00:27 \u001B[90mv\u001B[0m #230 > > \u001B[38;2;146;146;178m│\u001B[0m Ranking\n",
+ "00:00:27 \u001B[90mv\u001B[0m #231 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. Average Time: 73L\n",
+ "00:00:27 \u001B[90mv\u001B[0m #232 > >\n",
+ "00:00:27 \u001B[90mv\u001B[0m #233 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:00:27 \u001B[90mv\u001B[0m #234 > > //// test\n",
+ "00:00:27 \u001B[90mv\u001B[0m #235 > >\n",
+ "00:00:27 \u001B[90mv\u001B[0m #236 > > let solutions = [[\n",
+ "00:00:27 \u001B[90mv\u001B[0m #237 > > \"A\",\n",
+ "00:00:27 \u001B[90mv\u001B[0m #238 > > fun (a, _b) ->\n",
+ "00:00:27 \u001B[90mv\u001B[0m #239 > > a\n",
+ "00:00:27 \u001B[90mv\u001B[0m #240 > > ]]\n",
+ "00:00:27 \u001B[90mv\u001B[0m #241 > > let testCases = seq {\n",
+ "00:00:27 \u001B[90mv\u001B[0m #242 > > (\"a\", \"a\"), \"a\"\n",
+ "00:00:27 \u001B[90mv\u001B[0m #243 > > (\"a\", \"a\"), \"a\"\n",
+ "00:00:27 \u001B[90mv\u001B[0m #244 > > }\n",
+ "00:00:27 \u001B[90mv\u001B[0m #245 > > let rec empty3Tests = runAll (nameof empty3Tests) _count solutions testCases\n",
+ "00:00:27 \u001B[90mv\u001B[0m #246 > > empty3Tests\n",
+ "00:00:27 \u001B[90mv\u001B[0m #247 > > |> sortResultList\n",
+ "00:00:28 \u001B[90mv\u001B[0m #248 > >\n",
+ "00:00:28 \u001B[90mv\u001B[0m #249 > > ── [ 705.10ms - stdout ] ───────────────────────────────────────────────────────\n",
+ "00:00:28 \u001B[90mv\u001B[0m #250 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:28 \u001B[90mv\u001B[0m #251 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:28 \u001B[90mv\u001B[0m #252 > > \u001B[38;2;38;140;38m│\u001B[0m Test: empty3Tests\n",
+ "00:00:28 \u001B[90mv\u001B[0m #253 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:28 \u001B[90mv\u001B[0m #254 > > \u001B[38;2;38;140;38m│\u001B[0m Solution: (a, a)\n",
+ "00:00:28 \u001B[90mv\u001B[0m #255 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 1. A. Time: 1L\n",
+ "00:00:28 \u001B[90mv\u001B[0m #256 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:28 \u001B[90mv\u001B[0m #257 > > \u001B[38;2;38;140;38m│\u001B[0m Solution: (a, a)\n",
+ "00:00:28 \u001B[90mv\u001B[0m #258 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 1. A. Time: 0L\n",
+ "00:00:28 \u001B[90mv\u001B[0m #259 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:28 \u001B[90mv\u001B[0m #260 > > \u001B[38;2;38;140;38m│\u001B[0m Input \t| Expected\t| Result\t| Best\n",
+ "00:00:28 \u001B[90mv\u001B[0m #261 > > \u001B[38;2;38;140;38m│\u001B[0m --- \t| --- \t| --- \t| ---\n",
+ "00:00:28 \u001B[90mv\u001B[0m #262 > > \u001B[38;2;38;140;38m│\u001B[0m (a, a)\t| a \t| a \t| (1, 1)\n",
+ "00:00:28 \u001B[90mv\u001B[0m #263 > > \u001B[38;2;38;140;38m│\u001B[0m (a, a)\t| a \t| a \t| (1, 0)\n",
+ "00:00:28 \u001B[90mv\u001B[0m #264 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:28 \u001B[90mv\u001B[0m #265 > > \u001B[38;2;38;140;38m│\u001B[0m Average Ranking\n",
+ "00:00:28 \u001B[90mv\u001B[0m #266 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 1. Average Time: 0L\n",
+ "00:00:28 \u001B[90mv\u001B[0m #267 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:28 \u001B[90mv\u001B[0m #268 > >\n",
+ "00:00:28 \u001B[90mv\u001B[0m #269 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
+ "00:00:28 \u001B[90mv\u001B[0m #270 > > \u001B[38;2;146;146;178m│\u001B[0m ## empty2Tests\n",
+ "00:00:28 \u001B[90mv\u001B[0m #271 > >\n",
+ "00:00:28 \u001B[90mv\u001B[0m #272 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
+ "00:00:28 \u001B[90mv\u001B[0m #273 > > \u001B[38;2;146;146;178m│\u001B[0m Test: Empty2\n",
+ "00:00:28 \u001B[90mv\u001B[0m #274 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:00:28 \u001B[90mv\u001B[0m #275 > > \u001B[38;2;146;146;178m│\u001B[0m Solution: (a, a)\n",
+ "00:00:28 \u001B[90mv\u001B[0m #276 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. A. Time: 59L\n",
+ "00:00:28 \u001B[90mv\u001B[0m #277 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:00:28 \u001B[90mv\u001B[0m #278 > > \u001B[38;2;146;146;178m│\u001B[0m Solution: (a, a)\n",
+ "00:00:28 \u001B[90mv\u001B[0m #279 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. A. Time: 53L\n",
+ "00:00:28 \u001B[90mv\u001B[0m #280 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:00:28 \u001B[90mv\u001B[0m #281 > > \u001B[38;2;146;146;178m│\u001B[0m Input | Expected | Result | Best\n",
+ "00:00:28 \u001B[90mv\u001B[0m #282 > > \u001B[38;2;146;146;178m│\u001B[0m --- | --- | --- | ---\n",
+ "00:00:28 \u001B[90mv\u001B[0m #283 > > \u001B[38;2;146;146;178m│\u001B[0m (a, a) | a | a | (1, 59)\n",
+ "00:00:28 \u001B[90mv\u001B[0m #284 > > \u001B[38;2;146;146;178m│\u001B[0m (a, a) | a | a | (1, 53)\n",
+ "00:00:28 \u001B[90mv\u001B[0m #285 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:00:28 \u001B[90mv\u001B[0m #286 > > \u001B[38;2;146;146;178m│\u001B[0m Averages\n",
+ "00:00:28 \u001B[90mv\u001B[0m #287 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. Average Time: 56L\n",
+ "00:00:28 \u001B[90mv\u001B[0m #288 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:00:28 \u001B[90mv\u001B[0m #289 > > \u001B[38;2;146;146;178m│\u001B[0m Ranking\n",
+ "00:00:28 \u001B[90mv\u001B[0m #290 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. Average Time: 56L\n",
+ "00:00:28 \u001B[90mv\u001B[0m #291 > >\n",
+ "00:00:28 \u001B[90mv\u001B[0m #292 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:00:28 \u001B[90mv\u001B[0m #293 > > //// test\n",
+ "00:00:28 \u001B[90mv\u001B[0m #294 > >\n",
+ "00:00:28 \u001B[90mv\u001B[0m #295 > > let solutions = [[\n",
+ "00:00:28 \u001B[90mv\u001B[0m #296 > > \"A\",\n",
+ "00:00:28 \u001B[90mv\u001B[0m #297 > > fun (a, _b) ->\n",
+ "00:00:28 \u001B[90mv\u001B[0m #298 > > a\n",
+ "00:00:28 \u001B[90mv\u001B[0m #299 > > ]]\n",
+ "00:00:28 \u001B[90mv\u001B[0m #300 > > let testCases = seq {\n",
+ "00:00:28 \u001B[90mv\u001B[0m #301 > > (\"a\", \"a\"), \"a\"\n",
+ "00:00:28 \u001B[90mv\u001B[0m #302 > > (\"a\", \"a\"), \"a\"\n",
+ "00:00:28 \u001B[90mv\u001B[0m #303 > > }\n",
+ "00:00:28 \u001B[90mv\u001B[0m #304 > > let rec empty2Tests = runAll (nameof empty2Tests) _count solutions testCases\n",
+ "00:00:28 \u001B[90mv\u001B[0m #305 > > empty2Tests\n",
+ "00:00:28 \u001B[90mv\u001B[0m #306 > > |> sortResultList\n",
+ "00:00:29 \u001B[90mv\u001B[0m #307 > >\n",
+ "00:00:29 \u001B[90mv\u001B[0m #308 > > ── [ 705.26ms - stdout ] ───────────────────────────────────────────────────────\n",
+ "00:00:29 \u001B[90mv\u001B[0m #309 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:29 \u001B[90mv\u001B[0m #310 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:29 \u001B[90mv\u001B[0m #311 > > \u001B[38;2;38;140;38m│\u001B[0m Test: empty2Tests\n",
+ "00:00:29 \u001B[90mv\u001B[0m #312 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:29 \u001B[90mv\u001B[0m #313 > > \u001B[38;2;38;140;38m│\u001B[0m Solution: (a, a)\n",
+ "00:00:29 \u001B[90mv\u001B[0m #314 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 1. A. Time: 0L\n",
+ "00:00:29 \u001B[90mv\u001B[0m #315 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:29 \u001B[90mv\u001B[0m #316 > > \u001B[38;2;38;140;38m│\u001B[0m Solution: (a, a)\n",
+ "00:00:29 \u001B[90mv\u001B[0m #317 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 1. A. Time: 0L\n",
+ "00:00:29 \u001B[90mv\u001B[0m #318 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:29 \u001B[90mv\u001B[0m #319 > > \u001B[38;2;38;140;38m│\u001B[0m Input \t| Expected\t| Result\t| Best\n",
+ "00:00:29 \u001B[90mv\u001B[0m #320 > > \u001B[38;2;38;140;38m│\u001B[0m --- \t| --- \t| --- \t| ---\n",
+ "00:00:29 \u001B[90mv\u001B[0m #321 > > \u001B[38;2;38;140;38m│\u001B[0m (a, a)\t| a \t| a \t| (1, 0)\n",
+ "00:00:29 \u001B[90mv\u001B[0m #322 > > \u001B[38;2;38;140;38m│\u001B[0m (a, a)\t| a \t| a \t| (1, 0)\n",
+ "00:00:29 \u001B[90mv\u001B[0m #323 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:29 \u001B[90mv\u001B[0m #324 > > \u001B[38;2;38;140;38m│\u001B[0m Average Ranking\n",
+ "00:00:29 \u001B[90mv\u001B[0m #325 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 1. Average Time: 0L\n",
+ "00:00:29 \u001B[90mv\u001B[0m #326 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:29 \u001B[90mv\u001B[0m #327 > >\n",
+ "00:00:29 \u001B[90mv\u001B[0m #328 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
+ "00:00:29 \u001B[90mv\u001B[0m #329 > > \u001B[38;2;146;146;178m│\u001B[0m ## emptyTests\n",
+ "00:00:29 \u001B[90mv\u001B[0m #330 > >\n",
+ "00:00:29 \u001B[90mv\u001B[0m #331 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
+ "00:00:29 \u001B[90mv\u001B[0m #332 > > \u001B[38;2;146;146;178m│\u001B[0m Test: Empty\n",
+ "00:00:29 \u001B[90mv\u001B[0m #333 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:00:29 \u001B[90mv\u001B[0m #334 > > \u001B[38;2;146;146;178m│\u001B[0m Solution: 0\n",
+ "00:00:29 \u001B[90mv\u001B[0m #335 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. A. Time: 61L\n",
+ "00:00:29 \u001B[90mv\u001B[0m #336 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:00:29 \u001B[90mv\u001B[0m #337 > > \u001B[38;2;146;146;178m│\u001B[0m Solution: 2\n",
+ "00:00:29 \u001B[90mv\u001B[0m #338 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. A. Time: 62L\n",
+ "00:00:29 \u001B[90mv\u001B[0m #339 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:00:29 \u001B[90mv\u001B[0m #340 > > \u001B[38;2;146;146;178m│\u001B[0m Solution: 5\n",
+ "00:00:29 \u001B[90mv\u001B[0m #341 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. A. Time: 70L\n",
+ "00:00:29 \u001B[90mv\u001B[0m #342 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:00:29 \u001B[90mv\u001B[0m #343 > > \u001B[38;2;146;146;178m│\u001B[0m Input | Expected | Result | Best\n",
+ "00:00:29 \u001B[90mv\u001B[0m #344 > > \u001B[38;2;146;146;178m│\u001B[0m --- | --- | --- | ---\n",
+ "00:00:29 \u001B[90mv\u001B[0m #345 > > \u001B[38;2;146;146;178m│\u001B[0m 0 | 0 | 0 | (1, 61)\n",
+ "00:00:29 \u001B[90mv\u001B[0m #346 > > \u001B[38;2;146;146;178m│\u001B[0m 2 | 2 | 2 | (1, 62)\n",
+ "00:00:29 \u001B[90mv\u001B[0m #347 > > \u001B[38;2;146;146;178m│\u001B[0m 5 | 5 | 5 | (1, 70)\n",
+ "00:00:29 \u001B[90mv\u001B[0m #348 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:00:29 \u001B[90mv\u001B[0m #349 > > \u001B[38;2;146;146;178m│\u001B[0m Averages\n",
+ "00:00:29 \u001B[90mv\u001B[0m #350 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. Average Time: 64L\n",
+ "00:00:29 \u001B[90mv\u001B[0m #351 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:00:29 \u001B[90mv\u001B[0m #352 > > \u001B[38;2;146;146;178m│\u001B[0m Ranking\n",
+ "00:00:29 \u001B[90mv\u001B[0m #353 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. Average Time: 64L\n",
+ "00:00:29 \u001B[90mv\u001B[0m #354 > >\n",
+ "00:00:29 \u001B[90mv\u001B[0m #355 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:00:29 \u001B[90mv\u001B[0m #356 > > //// test\n",
+ "00:00:29 \u001B[90mv\u001B[0m #357 > >\n",
+ "00:00:29 \u001B[90mv\u001B[0m #358 > > let solutions = [[\n",
+ "00:00:29 \u001B[90mv\u001B[0m #359 > > \"A\",\n",
+ "00:00:29 \u001B[90mv\u001B[0m #360 > > fun n ->\n",
+ "00:00:29 \u001B[90mv\u001B[0m #361 > > n + 0\n",
+ "00:00:29 \u001B[90mv\u001B[0m #362 > > ]]\n",
+ "00:00:29 \u001B[90mv\u001B[0m #363 > > let testCases = seq {\n",
+ "00:00:29 \u001B[90mv\u001B[0m #364 > > 0, 0\n",
+ "00:00:29 \u001B[90mv\u001B[0m #365 > > 2, 2\n",
+ "00:00:29 \u001B[90mv\u001B[0m #366 > > 5, 5\n",
+ "00:00:29 \u001B[90mv\u001B[0m #367 > > }\n",
+ "00:00:29 \u001B[90mv\u001B[0m #368 > > let rec emptyTests = runAll (nameof emptyTests) _count solutions testCases\n",
+ "00:00:29 \u001B[90mv\u001B[0m #369 > > emptyTests\n",
+ "00:00:29 \u001B[90mv\u001B[0m #370 > > |> sortResultList\n",
+ "00:00:30 \u001B[90mv\u001B[0m #371 > >\n",
+ "00:00:30 \u001B[90mv\u001B[0m #372 > > ── [ 1.04s - stdout ] ──────────────────────────────────────────────────────────\n",
+ "00:00:30 \u001B[90mv\u001B[0m #373 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:30 \u001B[90mv\u001B[0m #374 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:30 \u001B[90mv\u001B[0m #375 > > \u001B[38;2;38;140;38m│\u001B[0m Test: emptyTests\n",
+ "00:00:30 \u001B[90mv\u001B[0m #376 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:30 \u001B[90mv\u001B[0m #377 > > \u001B[38;2;38;140;38m│\u001B[0m Solution: 0\n",
+ "00:00:30 \u001B[90mv\u001B[0m #378 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 1. A. Time: 1L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #379 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:30 \u001B[90mv\u001B[0m #380 > > \u001B[38;2;38;140;38m│\u001B[0m Solution: 2\n",
+ "00:00:30 \u001B[90mv\u001B[0m #381 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 1. A. Time: 0L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #382 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:30 \u001B[90mv\u001B[0m #383 > > \u001B[38;2;38;140;38m│\u001B[0m Solution: 5\n",
+ "00:00:30 \u001B[90mv\u001B[0m #384 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 1. A. Time: 0L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #385 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:30 \u001B[90mv\u001B[0m #386 > > \u001B[38;2;38;140;38m│\u001B[0m Input\t| Expected\t| Result\t| Best\n",
+ "00:00:30 \u001B[90mv\u001B[0m #387 > > \u001B[38;2;38;140;38m│\u001B[0m --- \t| --- \t| --- \t| ---\n",
+ "00:00:30 \u001B[90mv\u001B[0m #388 > > \u001B[38;2;38;140;38m│\u001B[0m 0 \t| 0 \t| 0 \t| (1, 1)\n",
+ "00:00:30 \u001B[90mv\u001B[0m #389 > > \u001B[38;2;38;140;38m│\u001B[0m 2 \t| 2 \t| 2 \t| (1, 0)\n",
+ "00:00:30 \u001B[90mv\u001B[0m #390 > > \u001B[38;2;38;140;38m│\u001B[0m 5 \t| 5 \t| 5 \t| (1, 0)\n",
+ "00:00:30 \u001B[90mv\u001B[0m #391 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:30 \u001B[90mv\u001B[0m #392 > > \u001B[38;2;38;140;38m│\u001B[0m Average Ranking\n",
+ "00:00:30 \u001B[90mv\u001B[0m #393 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 1. Average Time: 0L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #394 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:30 \u001B[90mv\u001B[0m #395 > >\n",
+ "00:00:30 \u001B[90mv\u001B[0m #396 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
+ "00:00:30 \u001B[90mv\u001B[0m #397 > > \u001B[38;2;146;146;178m│\u001B[0m ## uniqueLettersTests\n",
+ "00:00:30 \u001B[90mv\u001B[0m #398 > >\n",
+ "00:00:30 \u001B[90mv\u001B[0m #399 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
+ "00:00:30 \u001B[90mv\u001B[0m #400 > > \u001B[38;2;146;146;178m│\u001B[0m Test: UniqueLetters\n",
+ "00:00:30 \u001B[90mv\u001B[0m #401 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:00:30 \u001B[90mv\u001B[0m #402 > > \u001B[38;2;146;146;178m│\u001B[0m Solution: abc\n",
+ "00:00:30 \u001B[90mv\u001B[0m #403 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. A. Time: 1512L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #404 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 2. B. Time: 1947L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #405 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 3. C. Time: 2023L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #406 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 4. D. Time: 1358L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #407 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 5. E. Time: 1321L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #408 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 6. F. Time: 1346L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #409 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 7. G. Time: 1304L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #410 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 8. H. Time: 1383L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #411 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 9. I. Time: 1495L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #412 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 10. J. Time: 1245L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #413 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 11. K. Time: 1219L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #414 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:00:30 \u001B[90mv\u001B[0m #415 > > \u001B[38;2;146;146;178m│\u001B[0m Solution: accabb\n",
+ "00:00:30 \u001B[90mv\u001B[0m #416 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. A. Time: 1648L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #417 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 2. B. Time: 2061L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #418 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 3. C. Time: 2413L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #419 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 4. D. Time: 1561L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #420 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 5. E. Time: 1593L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #421 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 6. F. Time: 1518L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #422 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 7. G. Time: 1415L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #423 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 8. H. Time: 1510L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #424 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 9. I. Time: 1445L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #425 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 10. J. Time: 1636L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #426 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 11. K. Time: 1317L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #427 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:00:30 \u001B[90mv\u001B[0m #428 > > \u001B[38;2;146;146;178m│\u001B[0m Solution: pprrqqpp\n",
+ "00:00:30 \u001B[90mv\u001B[0m #429 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. A. Time: 2255L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #430 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 2. B. Time: 2408L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #431 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 3. C. Time: 2393L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #432 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 4. D. Time: 1675L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #433 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 5. E. Time: 1911L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #434 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 6. F. Time: 2126L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #435 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 7. G. Time: 1504L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #436 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 8. H. Time: 1715L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #437 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 9. I. Time: 1537L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #438 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 10. J. Time: 1522L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #439 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 11. K. Time: 1322L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #440 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:00:30 \u001B[90mv\u001B[0m #441 > > \u001B[38;2;146;146;178m│\u001B[0m Solution:\n",
+ "00:00:30 \u001B[90mv\u001B[0m #442 > > aaaaaaaaaaaaaaccccccabbbbbbbaaacccbbbaaccccccccccacbbbbbbbbbbbbbcccccccbbbbbbbb\n",
+ "00:00:30 \u001B[90mv\u001B[0m #443 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. A. Time: 13073L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #444 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 2. B. Time: 11519L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #445 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 3. C. Time: 8373L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #446 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 4. D. Time: 5860L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #447 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 5. E. Time: 6490L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #448 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 6. F. Time: 6325L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #449 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 7. G. Time: 5799L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #450 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 8. H. Time: 7099L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #451 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 9. I. Time: 6133L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #452 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 10. J. Time: 5993L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #453 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 11. K. Time: 2040L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #454 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:00:30 \u001B[90mv\u001B[0m #455 > > \u001B[38;2;146;146;178m│\u001B[0m Input\n",
+ "00:00:30 \u001B[90mv\u001B[0m #456 > > | Expected | Result | Best\n",
+ "00:00:30 \u001B[90mv\u001B[0m #457 > > \u001B[38;2;146;146;178m│\u001B[0m ---\n",
+ "00:00:30 \u001B[90mv\u001B[0m #458 > > | --- | --- | ---\n",
+ "00:00:30 \u001B[90mv\u001B[0m #459 > > \u001B[38;2;146;146;178m│\u001B[0m abc\n",
+ "00:00:30 \u001B[90mv\u001B[0m #460 > > | abc | abc | (11, 1219)\n",
+ "00:00:30 \u001B[90mv\u001B[0m #461 > > \u001B[38;2;146;146;178m│\u001B[0m accabb\n",
+ "00:00:30 \u001B[90mv\u001B[0m #462 > > | acb | acb | (11, 1317)\n",
+ "00:00:30 \u001B[90mv\u001B[0m #463 > > \u001B[38;2;146;146;178m│\u001B[0m pprrqqpp\n",
+ "00:00:30 \u001B[90mv\u001B[0m #464 > > | prq | prq | (11, 1322)\n",
+ "00:00:30 \u001B[90mv\u001B[0m #465 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:00:30 \u001B[90mv\u001B[0m #466 > > aaaaaaaaaaaaaaccccccabbbbbbbaaacccbbbaaccccccccccacbbbbbbbbbbbbbcccccccbbbbbbbb\n",
+ "00:00:30 \u001B[90mv\u001B[0m #467 > > | acb | acb | (11, 2040)\n",
+ "00:00:30 \u001B[90mv\u001B[0m #468 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:00:30 \u001B[90mv\u001B[0m #469 > > \u001B[38;2;146;146;178m│\u001B[0m Averages\n",
+ "00:00:30 \u001B[90mv\u001B[0m #470 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. Average Time: 4622L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #471 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 2. Average Time: 4483L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #472 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 3. Average Time: 3800L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #473 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 4. Average Time: 2613L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #474 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 5. Average Time: 2828L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #475 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 6. Average Time: 2828L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #476 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 7. Average Time: 2505L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #477 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 8. Average Time: 2926L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #478 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 9. Average Time: 2652L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #479 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 10. Average Time: 2599L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #480 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 11. Average Time: 1474L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #481 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:00:30 \u001B[90mv\u001B[0m #482 > > \u001B[38;2;146;146;178m│\u001B[0m Ranking\n",
+ "00:00:30 \u001B[90mv\u001B[0m #483 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. Average Time: 4622L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #484 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 2. Average Time: 4483L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #485 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 3. Average Time: 3800L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #486 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 8. Average Time: 2926L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #487 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 5. Average Time: 2828L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #488 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 6. Average Time: 2828L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #489 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 9. Average Time: 2652L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #490 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 4. Average Time: 2613L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #491 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 10. Average Time: 2599L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #492 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 7. Average Time: 2505L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #493 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 11. Average Time: 1474L\n",
+ "00:00:30 \u001B[90mv\u001B[0m #494 > >\n",
+ "00:00:30 \u001B[90mv\u001B[0m #495 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:00:30 \u001B[90mv\u001B[0m #496 > > //// test\n",
+ "00:00:30 \u001B[90mv\u001B[0m #497 > >\n",
+ "00:00:30 \u001B[90mv\u001B[0m #498 > > let solutions = [[\n",
+ "00:00:30 \u001B[90mv\u001B[0m #499 > > \"A\",\n",
+ "00:00:30 \u001B[90mv\u001B[0m #500 > > fun input ->\n",
+ "00:00:30 \u001B[90mv\u001B[0m #501 > > input\n",
+ "00:00:30 \u001B[90mv\u001B[0m #502 > > |> Seq.toList\n",
+ "00:00:30 \u001B[90mv\u001B[0m #503 > > |> List.fold (fun acc x -> if List.contains x acc then acc else acc @ [[\n",
+ "00:00:30 \u001B[90mv\u001B[0m #504 > > x ]]) [[]]\n",
+ "00:00:30 \u001B[90mv\u001B[0m #505 > > |> Seq.toArray\n",
+ "00:00:30 \u001B[90mv\u001B[0m #506 > > |> String\n",
+ "00:00:30 \u001B[90mv\u001B[0m #507 > >\n",
+ "00:00:30 \u001B[90mv\u001B[0m #508 > > \"B\",\n",
+ "00:00:30 \u001B[90mv\u001B[0m #509 > > fun input ->\n",
+ "00:00:30 \u001B[90mv\u001B[0m #510 > > input\n",
+ "00:00:30 \u001B[90mv\u001B[0m #511 > > |> Seq.rev\n",
+ "00:00:30 \u001B[90mv\u001B[0m #512 > > |> fun list -> Seq.foldBack (fun x acc -> if List.contains x acc then\n",
+ "00:00:30 \u001B[90mv\u001B[0m #513 > > acc else x :: acc) list [[]]\n",
+ "00:00:30 \u001B[90mv\u001B[0m #514 > > |> Seq.rev\n",
+ "00:00:30 \u001B[90mv\u001B[0m #515 > > |> Seq.toArray\n",
+ "00:00:30 \u001B[90mv\u001B[0m #516 > > |> String\n",
+ "00:00:30 \u001B[90mv\u001B[0m #517 > >\n",
+ "00:00:30 \u001B[90mv\u001B[0m #518 > > \"C\",\n",
+ "00:00:30 \u001B[90mv\u001B[0m #519 > > fun input ->\n",
+ "00:00:30 \u001B[90mv\u001B[0m #520 > > input\n",
+ "00:00:30 \u001B[90mv\u001B[0m #521 > > |> Seq.rev\n",
+ "00:00:30 \u001B[90mv\u001B[0m #522 > > |> fun list -> Seq.foldBack (fun x (set, acc) -> if Set.contains x set\n",
+ "00:00:30 \u001B[90mv\u001B[0m #523 > > then set, acc else set.Add x, x :: acc) list (Set.empty, [[]])\n",
+ "00:00:30 \u001B[90mv\u001B[0m #524 > > |> snd\n",
+ "00:00:30 \u001B[90mv\u001B[0m #525 > > |> Seq.rev\n",
+ "00:00:30 \u001B[90mv\u001B[0m #526 > > |> Seq.toArray\n",
+ "00:00:30 \u001B[90mv\u001B[0m #527 > > |> String\n",
+ "00:00:30 \u001B[90mv\u001B[0m #528 > >\n",
+ "00:00:30 \u001B[90mv\u001B[0m #529 > > \"D\",\n",
+ "00:00:30 \u001B[90mv\u001B[0m #530 > > fun input ->\n",
+ "00:00:30 \u001B[90mv\u001B[0m #531 > > input\n",
+ "00:00:30 \u001B[90mv\u001B[0m #532 > > |> Seq.fold (fun (set, acc) x -> if Set.contains x set then set, acc\n",
+ "00:00:30 \u001B[90mv\u001B[0m #533 > > else set.Add x, Array.append acc [[| x |]]) (Set.empty, [[||]])\n",
+ "00:00:30 \u001B[90mv\u001B[0m #534 > > |> snd\n",
+ "00:00:30 \u001B[90mv\u001B[0m #535 > > |> String\n",
+ "00:00:30 \u001B[90mv\u001B[0m #536 > >\n",
+ "00:00:30 \u001B[90mv\u001B[0m #537 > > \"E\",\n",
+ "00:00:30 \u001B[90mv\u001B[0m #538 > > fun input ->\n",
+ "00:00:30 \u001B[90mv\u001B[0m #539 > > input\n",
+ "00:00:30 \u001B[90mv\u001B[0m #540 > > |> Seq.fold (fun (set, acc) x -> if Set.contains x set then set, acc\n",
+ "00:00:30 \u001B[90mv\u001B[0m #541 > > else set.Add x, x :: acc) (Set.empty, [[]])\n",
+ "00:00:30 \u001B[90mv\u001B[0m #542 > > |> snd\n",
+ "00:00:30 \u001B[90mv\u001B[0m #543 > > |> List.rev\n",
+ "00:00:30 \u001B[90mv\u001B[0m #544 > > |> List.toArray\n",
+ "00:00:30 \u001B[90mv\u001B[0m #545 > > |> String\n",
+ "00:00:30 \u001B[90mv\u001B[0m #546 > >\n",
+ "00:00:30 \u001B[90mv\u001B[0m #547 > > \"F\",\n",
+ "00:00:30 \u001B[90mv\u001B[0m #548 > > fun input ->\n",
+ "00:00:30 \u001B[90mv\u001B[0m #549 > > input\n",
+ "00:00:30 \u001B[90mv\u001B[0m #550 > > |> Seq.fold (fun (set, acc) x -> if Set.contains x set then set, acc\n",
+ "00:00:30 \u001B[90mv\u001B[0m #551 > > else set.Add x, acc @ [[ x ]]) (Set.empty, [[]])\n",
+ "00:00:30 \u001B[90mv\u001B[0m #552 > > |> snd\n",
+ "00:00:30 \u001B[90mv\u001B[0m #553 > > |> List.toArray\n",
+ "00:00:30 \u001B[90mv\u001B[0m #554 > > |> String\n",
+ "00:00:30 \u001B[90mv\u001B[0m #555 > >\n",
+ "00:00:30 \u001B[90mv\u001B[0m #556 > > \"G\",\n",
+ "00:00:30 \u001B[90mv\u001B[0m #557 > > fun input ->\n",
+ "00:00:30 \u001B[90mv\u001B[0m #558 > > input\n",
+ "00:00:30 \u001B[90mv\u001B[0m #559 > > |> Seq.fold (fun (set, acc) x -> if Set.contains x set then set, acc\n",
+ "00:00:30 \u001B[90mv\u001B[0m #560 > > else set.Add x, x :: acc) (Set.empty, [[]])\n",
+ "00:00:30 \u001B[90mv\u001B[0m #561 > > |> snd\n",
+ "00:00:30 \u001B[90mv\u001B[0m #562 > > |> List.toArray\n",
+ "00:00:30 \u001B[90mv\u001B[0m #563 > > |> Array.rev\n",
+ "00:00:30 \u001B[90mv\u001B[0m #564 > > |> String\n",
+ "00:00:30 \u001B[90mv\u001B[0m #565 > >\n",
+ "00:00:30 \u001B[90mv\u001B[0m #566 > > \"H\",\n",
+ "00:00:30 \u001B[90mv\u001B[0m #567 > > fun input ->\n",
+ "00:00:30 \u001B[90mv\u001B[0m #568 > > input\n",
+ "00:00:30 \u001B[90mv\u001B[0m #569 > > |> Seq.toList\n",
+ "00:00:30 \u001B[90mv\u001B[0m #570 > > |> fun list ->\n",
+ "00:00:30 \u001B[90mv\u001B[0m #571 > > let rec loop set = function\n",
+ "00:00:30 \u001B[90mv\u001B[0m #572 > > | head :: tail when Set.contains head set -> loop set tail\n",
+ "00:00:30 \u001B[90mv\u001B[0m #573 > > | head :: tail -> (loop (set.Add head) tail) @ [[ head ]]\n",
+ "00:00:30 \u001B[90mv\u001B[0m #574 > > | [[]] -> [[]]\n",
+ "00:00:30 \u001B[90mv\u001B[0m #575 > > loop Set.empty list\n",
+ "00:00:30 \u001B[90mv\u001B[0m #576 > > |> List.rev\n",
+ "00:00:30 \u001B[90mv\u001B[0m #577 > > |> List.toArray\n",
+ "00:00:30 \u001B[90mv\u001B[0m #578 > > |> String\n",
+ "00:00:30 \u001B[90mv\u001B[0m #579 > >\n",
+ "00:00:30 \u001B[90mv\u001B[0m #580 > > \"I\",\n",
+ "00:00:30 \u001B[90mv\u001B[0m #581 > > fun input ->\n",
+ "00:00:30 \u001B[90mv\u001B[0m #582 > > input\n",
+ "00:00:30 \u001B[90mv\u001B[0m #583 > > |> Seq.toList\n",
+ "00:00:30 \u001B[90mv\u001B[0m #584 > > |> fun list ->\n",
+ "00:00:30 \u001B[90mv\u001B[0m #585 > > let rec loop set = function\n",
+ "00:00:30 \u001B[90mv\u001B[0m #586 > > | head :: tail when Set.contains head set -> loop set tail\n",
+ "00:00:30 \u001B[90mv\u001B[0m #587 > > | head :: tail -> loop (set.Add head) tail |> Array.append [[|\n",
+ "00:00:30 \u001B[90mv\u001B[0m #588 > > head |]]\n",
+ "00:00:30 \u001B[90mv\u001B[0m #589 > > | [[]] -> [[||]]\n",
+ "00:00:30 \u001B[90mv\u001B[0m #590 > > loop Set.empty list\n",
+ "00:00:30 \u001B[90mv\u001B[0m #591 > > |> String\n",
+ "00:00:30 \u001B[90mv\u001B[0m #592 > >\n",
+ "00:00:30 \u001B[90mv\u001B[0m #593 > > \"J\",\n",
+ "00:00:30 \u001B[90mv\u001B[0m #594 > > fun input ->\n",
+ "00:00:30 \u001B[90mv\u001B[0m #595 > > input\n",
+ "00:00:30 \u001B[90mv\u001B[0m #596 > > |> Seq.toList\n",
+ "00:00:30 \u001B[90mv\u001B[0m #597 > > |> fun list ->\n",
+ "00:00:30 \u001B[90mv\u001B[0m #598 > > let rec loop set = function\n",
+ "00:00:30 \u001B[90mv\u001B[0m #599 > > | head :: tail when Set.contains head set -> loop set tail\n",
+ "00:00:30 \u001B[90mv\u001B[0m #600 > > | head :: tail -> head :: loop (set.Add head) tail\n",
+ "00:00:30 \u001B[90mv\u001B[0m #601 > > | [[]] -> [[]]\n",
+ "00:00:30 \u001B[90mv\u001B[0m #602 > > loop Set.empty list\n",
+ "00:00:30 \u001B[90mv\u001B[0m #603 > > |> List.toArray\n",
+ "00:00:30 \u001B[90mv\u001B[0m #604 > > |> String\n",
+ "00:00:30 \u001B[90mv\u001B[0m #605 > >\n",
+ "00:00:30 \u001B[90mv\u001B[0m #606 > > \"K\",\n",
+ "00:00:30 \u001B[90mv\u001B[0m #607 > > fun input ->\n",
+ "00:00:30 \u001B[90mv\u001B[0m #608 > > input\n",
+ "00:00:30 \u001B[90mv\u001B[0m #609 > > |> Seq.distinct\n",
+ "00:00:30 \u001B[90mv\u001B[0m #610 > > |> Seq.toArray\n",
+ "00:00:30 \u001B[90mv\u001B[0m #611 > > |> String\n",
+ "00:00:30 \u001B[90mv\u001B[0m #612 > > ]]\n",
+ "00:00:30 \u001B[90mv\u001B[0m #613 > > let testCases = seq {\n",
+ "00:00:30 \u001B[90mv\u001B[0m #614 > > \"abc\", \"abc\"\n",
+ "00:00:30 \u001B[90mv\u001B[0m #615 > > \"accabb\", \"acb\"\n",
+ "00:00:30 \u001B[90mv\u001B[0m #616 > > \"pprrqqpp\", \"prq\"\n",
+ "00:00:30 \u001B[90mv\u001B[0m #617 > >\n",
+ "00:00:30 \u001B[90mv\u001B[0m #618 > > \"aaaaaaaaaaaaaaccccccabbbbbbbaaacccbbbaaccccccccccacbbbbbbbbbbbbbcccccccbbbbbbbb\n",
+ "00:00:30 \u001B[90mv\u001B[0m #619 > > \", \"acb\"\n",
+ "00:00:30 \u001B[90mv\u001B[0m #620 > > }\n",
+ "00:00:30 \u001B[90mv\u001B[0m #621 > > let rec uniqueLettersTests = runAll (nameof uniqueLettersTests) _count solutions\n",
+ "00:00:30 \u001B[90mv\u001B[0m #622 > > testCases\n",
+ "00:00:30 \u001B[90mv\u001B[0m #623 > > uniqueLettersTests\n",
+ "00:00:30 \u001B[90mv\u001B[0m #624 > > |> sortResultList\n",
+ "00:00:45 \u001B[90mv\u001B[0m #625 > >\n",
+ "00:00:45 \u001B[90mv\u001B[0m #626 > > ── [ 14.99s - stdout ] ─────────────────────────────────────────────────────────\n",
+ "00:00:45 \u001B[90mv\u001B[0m #627 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:45 \u001B[90mv\u001B[0m #628 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:45 \u001B[90mv\u001B[0m #629 > > \u001B[38;2;38;140;38m│\u001B[0m Test: uniqueLettersTests\n",
+ "00:00:45 \u001B[90mv\u001B[0m #630 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:45 \u001B[90mv\u001B[0m #631 > > \u001B[38;2;38;140;38m│\u001B[0m Solution: abc\n",
+ "00:00:45 \u001B[90mv\u001B[0m #632 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 1. A. Time: 3L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #633 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 2. B. Time: 5L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #634 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 3. C. Time: 5L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #635 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 4. D. Time: 2L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #636 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 5. E. Time: 2L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #637 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 6. F. Time: 2L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #638 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 7. G. Time: 2L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #639 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 8. H. Time: 3L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #640 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 9. I. Time: 4L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #641 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 10. J. Time: 2L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #642 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 11. K. Time: 3L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #643 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:45 \u001B[90mv\u001B[0m #644 > > \u001B[38;2;38;140;38m│\u001B[0m Solution: accabb\n",
+ "00:00:45 \u001B[90mv\u001B[0m #645 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 1. A. Time: 1L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #646 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 2. B. Time: 2L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #647 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 3. C. Time: 2L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #648 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 4. D. Time: 1L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #649 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 5. E. Time: 1L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #650 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 6. F. Time: 1L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #651 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 7. G. Time: 1L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #652 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 8. H. Time: 1L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #653 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 9. I. Time: 1L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #654 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 10. J. Time: 1L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #655 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 11. K. Time: 1L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #656 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:45 \u001B[90mv\u001B[0m #657 > > \u001B[38;2;38;140;38m│\u001B[0m Solution: pprrqqpp\n",
+ "00:00:45 \u001B[90mv\u001B[0m #658 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 1. A. Time: 1L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #659 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 2. B. Time: 1L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #660 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 3. C. Time: 2L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #661 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 4. D. Time: 1L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #662 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 5. E. Time: 1L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #663 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 6. F. Time: 1L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #664 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 7. G. Time: 1L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #665 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 8. H. Time: 1L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #666 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 9. I. Time: 1L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #667 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 10. J. Time: 1L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #668 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 11. K. Time: 1L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #669 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:45 \u001B[90mv\u001B[0m #670 > > \u001B[38;2;38;140;38m│\u001B[0m Solution:\n",
+ "00:00:45 \u001B[90mv\u001B[0m #671 > > aaaaaaaaaaaaaaccccccabbbbbbbaaacccbbbaaccccccccccacbbbbbbbbbbbbbcccccccbbbbbbbb\u001B[38;2;38;140;38m│\u001B[0m Test case 1. A. Time: 16L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #672 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 2. B. Time: 10L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #673 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 3. C. Time: 16L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #674 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 4. D. Time: 9L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #675 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 5. E. Time: 19L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #676 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 6. F. Time: 15L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #677 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 7. G. Time: 9L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #678 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 8. H. Time: 9L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #679 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 9. I. Time: 7L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #680 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 10. J. Time: 8L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #681 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 11. K. Time: 4L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #682 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:45 \u001B[90mv\u001B[0m #683 > > \u001B[38;2;38;140;38m│\u001B[0m Input\n",
+ "00:00:45 \u001B[90mv\u001B[0m #684 > > | Expected\t| Result\t| Best\n",
+ "00:00:45 \u001B[90mv\u001B[0m #685 > > \u001B[38;2;38;140;38m│\u001B[0m ---\n",
+ "00:00:45 \u001B[90mv\u001B[0m #686 > > | --- \t| --- \t| ---\n",
+ "00:00:45 \u001B[90mv\u001B[0m #687 > > \u001B[38;2;38;140;38m│\u001B[0m abc\n",
+ "00:00:45 \u001B[90mv\u001B[0m #688 > > | abc \t| abc \t| (4, 2)\n",
+ "00:00:45 \u001B[90mv\u001B[0m #689 > > \u001B[38;2;38;140;38m│\u001B[0m accabb\n",
+ "00:00:45 \u001B[90mv\u001B[0m #690 > > | acb \t| acb \t| (1, 1)\n",
+ "00:00:45 \u001B[90mv\u001B[0m #691 > > \u001B[38;2;38;140;38m│\u001B[0m pprrqqpp\n",
+ "00:00:45 \u001B[90mv\u001B[0m #692 > > | prq \t| prq \t| (1, 1)\n",
+ "00:00:45 \u001B[90mv\u001B[0m #693 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:45 \u001B[90mv\u001B[0m #694 > > aaaaaaaaaaaaaaccccccabbbbbbbaaacccbbbaaccccccccccacbbbbbbbbbbbbbcccccccbbbbbbbb\t|\n",
+ "00:00:45 \u001B[90mv\u001B[0m #695 > > acb \t| acb \t| (11, 4)\n",
+ "00:00:45 \u001B[90mv\u001B[0m #696 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:45 \u001B[90mv\u001B[0m #697 > > \u001B[38;2;38;140;38m│\u001B[0m Average Ranking\n",
+ "00:00:45 \u001B[90mv\u001B[0m #698 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 11. Average Time: 2L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #699 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 4. Average Time: 3L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #700 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 7. Average Time: 3L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #701 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 8. Average Time: 3L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #702 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 9. Average Time: 3L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #703 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 10. Average Time: 3L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #704 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 2. Average Time: 4L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #705 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 6. Average Time: 4L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #706 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 1. Average Time: 5L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #707 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 5. Average Time: 5L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #708 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 3. Average Time: 6L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #709 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:00:45 \u001B[90mv\u001B[0m #710 > >\n",
+ "00:00:45 \u001B[90mv\u001B[0m #711 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
+ "00:00:45 \u001B[90mv\u001B[0m #712 > > \u001B[38;2;146;146;178m│\u001B[0m ## rotateStringsTests\n",
+ "00:00:45 \u001B[90mv\u001B[0m #713 > >\n",
+ "00:00:45 \u001B[90mv\u001B[0m #714 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
+ "00:00:45 \u001B[90mv\u001B[0m #715 > > \u001B[38;2;146;146;178m│\u001B[0m https://www.hackerrank.com/challenges/rotate-string/forum\n",
+ "00:00:45 \u001B[90mv\u001B[0m #716 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:00:45 \u001B[90mv\u001B[0m #717 > > \u001B[38;2;146;146;178m│\u001B[0m Test: RotateStrings\n",
+ "00:00:45 \u001B[90mv\u001B[0m #718 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:00:45 \u001B[90mv\u001B[0m #719 > > \u001B[38;2;146;146;178m│\u001B[0m Solution: abc\n",
+ "00:00:45 \u001B[90mv\u001B[0m #720 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. A. Time: 1842L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #721 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 2. B. Time: 1846L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #722 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 3. C. Time: 1936L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #723 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 4. CA. Time: 2224L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #724 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 5. CB. Time: 2329L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #725 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 6. D. Time: 2474L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #726 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 7. E. Time: 1664L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #727 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 8. F. Time: 1517L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #728 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 9. FA. Time: 1651L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #729 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 10. FB. Time: 3764L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #730 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 11. FC. Time: 5415L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #731 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:00:45 \u001B[90mv\u001B[0m #732 > > \u001B[38;2;146;146;178m│\u001B[0m Solution: abcde\n",
+ "00:00:45 \u001B[90mv\u001B[0m #733 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. A. Time: 3356L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #734 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 2. B. Time: 2592L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #735 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 3. C. Time: 2346L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #736 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 4. CA. Time: 2997L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #737 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 5. CB. Time: 3061L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #738 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 6. D. Time: 4051L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #739 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 7. E. Time: 1905L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #740 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 8. F. Time: 1771L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #741 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 9. FA. Time: 2175L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #742 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 10. FB. Time: 3275L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #743 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 11. FC. Time: 5266L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #744 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:00:45 \u001B[90mv\u001B[0m #745 > > \u001B[38;2;146;146;178m│\u001B[0m Solution: abcdefghi\n",
+ "00:00:45 \u001B[90mv\u001B[0m #746 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. A. Time: 4492L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #747 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 2. B. Time: 3526L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #748 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 3. C. Time: 3583L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #749 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 4. CA. Time: 3711L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #750 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 5. CB. Time: 4783L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #751 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 6. D. Time: 7557L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #752 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 7. E. Time: 3452L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #753 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 8. F. Time: 3050L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #754 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 9. FA. Time: 3275L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #755 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 10. FB. Time: 4635L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #756 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 11. FC. Time: 5616L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #757 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:00:45 \u001B[90mv\u001B[0m #758 > > \u001B[38;2;146;146;178m│\u001B[0m Solution: abab\n",
+ "00:00:45 \u001B[90mv\u001B[0m #759 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. A. Time: 2093L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #760 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 2. B. Time: 1843L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #761 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 3. C. Time: 1746L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #762 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 4. CA. Time: 2085L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #763 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 5. CB. Time: 2139L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #764 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 6. D. Time: 2095L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #765 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 7. E. Time: 1723L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #766 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 8. F. Time: 1558L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #767 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 9. FA. Time: 1620L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #768 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 10. FB. Time: 2319L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #769 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 11. FC. Time: 3918L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #770 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:00:45 \u001B[90mv\u001B[0m #771 > > \u001B[38;2;146;146;178m│\u001B[0m Solution: aa\n",
+ "00:00:45 \u001B[90mv\u001B[0m #772 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. A. Time: 1107L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #773 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 2. B. Time: 1241L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #774 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 3. C. Time: 1183L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #775 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 4. CA. Time: 1563L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #776 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 5. CB. Time: 1525L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #777 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 6. D. Time: 1591L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #778 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 7. E. Time: 1327L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #779 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 8. F. Time: 1151L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #780 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 9. FA. Time: 1180L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #781 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 10. FB. Time: 1733L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #782 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 11. FC. Time: 2817L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #783 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:00:45 \u001B[90mv\u001B[0m #784 > > \u001B[38;2;146;146;178m│\u001B[0m Solution: z\n",
+ "00:00:45 \u001B[90mv\u001B[0m #785 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. A. Time: 816L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #786 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 2. B. Time: 745L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #787 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 3. C. Time: 928L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #788 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 4. CA. Time: 1375L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #789 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 5. CB. Time: 1029L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #790 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 6. D. Time: 852L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #791 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 7. E. Time: 712L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #792 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 8. F. Time: 263L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #793 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 9. FA. Time: 232L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #794 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 10. FB. Time: 773L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #795 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 11. FC. Time: 1789L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #796 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:00:45 \u001B[90mv\u001B[0m #797 > > \u001B[38;2;146;146;178m│\u001B[0m Input | Expected\n",
+ "00:00:45 \u001B[90mv\u001B[0m #798 > >\n",
+ "00:00:45 \u001B[90mv\u001B[0m #799 > > | Result\n",
+ "00:00:45 \u001B[90mv\u001B[0m #800 > >\n",
+ "00:00:45 \u001B[90mv\u001B[0m #801 > > | Best\n",
+ "00:00:45 \u001B[90mv\u001B[0m #802 > > \u001B[38;2;146;146;178m│\u001B[0m --- | ---\n",
+ "00:00:45 \u001B[90mv\u001B[0m #803 > >\n",
+ "00:00:45 \u001B[90mv\u001B[0m #804 > > | ---\n",
+ "00:00:45 \u001B[90mv\u001B[0m #805 > >\n",
+ "00:00:45 \u001B[90mv\u001B[0m #806 > > | ---\n",
+ "00:00:45 \u001B[90mv\u001B[0m #807 > > \u001B[38;2;146;146;178m│\u001B[0m abc | bca cab abc\n",
+ "00:00:45 \u001B[90mv\u001B[0m #808 > >\n",
+ "00:00:45 \u001B[90mv\u001B[0m #809 > > | bca cab abc\n",
+ "00:00:45 \u001B[90mv\u001B[0m #810 > >\n",
+ "00:00:45 \u001B[90mv\u001B[0m #811 > > | (8, 1517)\n",
+ "00:00:45 \u001B[90mv\u001B[0m #812 > > \u001B[38;2;146;146;178m│\u001B[0m abcde | bcdea cdeab deabc eabcd abcde\n",
+ "00:00:45 \u001B[90mv\u001B[0m #813 > > | bcdea cdeab deabc eabcd abcde\n",
+ "00:00:45 \u001B[90mv\u001B[0m #814 > > | (8, 1771)\n",
+ "00:00:45 \u001B[90mv\u001B[0m #815 > > \u001B[38;2;146;146;178m│\u001B[0m abcdefghi | bcdefghia cdefghiab defghiabc efghiabcd\n",
+ "00:00:45 \u001B[90mv\u001B[0m #816 > > fghiabcde ghiabcdef hiabcdefg iabcdefgh abcdefghi | bcdefghia cdefghiab\n",
+ "00:00:45 \u001B[90mv\u001B[0m #817 > > defghiabc efghiabcd fghiabcde ghiabcdef hiabcdefg iabcdefgh abcdefghi |\n",
+ "00:00:45 \u001B[90mv\u001B[0m #818 > > (8, 3050)\n",
+ "00:00:45 \u001B[90mv\u001B[0m #819 > > \u001B[38;2;146;146;178m│\u001B[0m abab | baba abab baba abab\n",
+ "00:00:45 \u001B[90mv\u001B[0m #820 > > | baba abab baba abab\n",
+ "00:00:45 \u001B[90mv\u001B[0m #821 > > | (8, 1558)\n",
+ "00:00:45 \u001B[90mv\u001B[0m #822 > > \u001B[38;2;146;146;178m│\u001B[0m aa | aa aa\n",
+ "00:00:45 \u001B[90mv\u001B[0m #823 > >\n",
+ "00:00:45 \u001B[90mv\u001B[0m #824 > > | aa aa\n",
+ "00:00:45 \u001B[90mv\u001B[0m #825 > >\n",
+ "00:00:45 \u001B[90mv\u001B[0m #826 > > | (1, 1107)\n",
+ "00:00:45 \u001B[90mv\u001B[0m #827 > > \u001B[38;2;146;146;178m│\u001B[0m z | z\n",
+ "00:00:45 \u001B[90mv\u001B[0m #828 > >\n",
+ "00:00:45 \u001B[90mv\u001B[0m #829 > > | z\n",
+ "00:00:45 \u001B[90mv\u001B[0m #830 > >\n",
+ "00:00:45 \u001B[90mv\u001B[0m #831 > > | (9, 232)\n",
+ "00:00:45 \u001B[90mv\u001B[0m #832 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:00:45 \u001B[90mv\u001B[0m #833 > > \u001B[38;2;146;146;178m│\u001B[0m Averages\n",
+ "00:00:45 \u001B[90mv\u001B[0m #834 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. Average Time: 2284L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #835 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 2. Average Time: 1965L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #836 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 3. Average Time: 1953L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #837 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 4. Average Time: 2325L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #838 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 5. Average Time: 2477L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #839 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 6. Average Time: 3103L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #840 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 7. Average Time: 1797L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #841 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 8. Average Time: 1551L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #842 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 9. Average Time: 1688L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #843 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 10. Average Time: 2749L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #844 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 11. Average Time: 4136L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #845 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:00:45 \u001B[90mv\u001B[0m #846 > > \u001B[38;2;146;146;178m│\u001B[0m Ranking\n",
+ "00:00:45 \u001B[90mv\u001B[0m #847 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 11. Average Time: 4136L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #848 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 6. Average Time: 3103L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #849 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 10. Average Time: 2749L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #850 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 5. Average Time: 2477L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #851 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 4. Average Time: 2325L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #852 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. Average Time: 2284L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #853 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 2. Average Time: 1965L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #854 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 3. Average Time: 1953L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #855 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 7. Average Time: 1797L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #856 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 9. Average Time: 1688L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #857 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 8. Average Time: 1551L\n",
+ "00:00:45 \u001B[90mv\u001B[0m #858 > >\n",
+ "00:00:45 \u001B[90mv\u001B[0m #859 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:00:45 \u001B[90mv\u001B[0m #860 > > //// test\n",
+ "00:00:45 \u001B[90mv\u001B[0m #861 > >\n",
+ "00:00:45 \u001B[90mv\u001B[0m #862 > > let solutions = [[\n",
+ "00:00:45 \u001B[90mv\u001B[0m #863 > > \"A\",\n",
+ "00:00:45 \u001B[90mv\u001B[0m #864 > > fun (input: string) ->\n",
+ "00:00:45 \u001B[90mv\u001B[0m #865 > > let resultList =\n",
+ "00:00:45 \u001B[90mv\u001B[0m #866 > > List.fold (fun acc x ->\n",
+ "00:00:45 \u001B[90mv\u001B[0m #867 > > let rotate (text: string) (letter: string) = (text |>\n",
+ "00:00:45 \u001B[90mv\u001B[0m #868 > > SpiralSm.slice 1 (input.Length - 1)) + letter\n",
+ "00:00:45 \u001B[90mv\u001B[0m #869 > > [[ rotate (if acc.IsEmpty then input else acc.Head) (string x)\n",
+ "00:00:45 \u001B[90mv\u001B[0m #870 > > ]] @ acc\n",
+ "00:00:45 \u001B[90mv\u001B[0m #871 > > ) [[]] (Seq.toList input)\n",
+ "00:00:45 \u001B[90mv\u001B[0m #872 > >\n",
+ "00:00:45 \u001B[90mv\u001B[0m #873 > > (resultList, \"\")\n",
+ "00:00:45 \u001B[90mv\u001B[0m #874 > > ||> List.foldBack (fun acc x -> x + acc + \" \")\n",
+ "00:00:45 \u001B[90mv\u001B[0m #875 > > |> _.TrimEnd()\n",
+ "00:00:45 \u001B[90mv\u001B[0m #876 > >\n",
+ "00:00:45 \u001B[90mv\u001B[0m #877 > > \"B\",\n",
+ "00:00:45 \u001B[90mv\u001B[0m #878 > > fun input ->\n",
+ "00:00:45 \u001B[90mv\u001B[0m #879 > > input\n",
+ "00:00:45 \u001B[90mv\u001B[0m #880 > > |> Seq.toList\n",
+ "00:00:45 \u001B[90mv\u001B[0m #881 > > |> List.fold (fun (acc: string list) letter ->\n",
+ "00:00:45 \u001B[90mv\u001B[0m #882 > > let last =\n",
+ "00:00:45 \u001B[90mv\u001B[0m #883 > > if acc.IsEmpty\n",
+ "00:00:45 \u001B[90mv\u001B[0m #884 > > then input\n",
+ "00:00:45 \u001B[90mv\u001B[0m #885 > > else acc.Head\n",
+ "00:00:45 \u001B[90mv\u001B[0m #886 > >\n",
+ "00:00:45 \u001B[90mv\u001B[0m #887 > > let item = last.[[1 .. input.Length - 1]] + string letter\n",
+ "00:00:45 \u001B[90mv\u001B[0m #888 > >\n",
+ "00:00:45 \u001B[90mv\u001B[0m #889 > > item :: acc\n",
+ "00:00:45 \u001B[90mv\u001B[0m #890 > > ) [[]]\n",
+ "00:00:45 \u001B[90mv\u001B[0m #891 > > |> List.rev\n",
+ "00:00:45 \u001B[90mv\u001B[0m #892 > > |> SpiralSm.concat \" \"\n",
+ "00:00:45 \u001B[90mv\u001B[0m #893 > >\n",
+ "00:00:45 \u001B[90mv\u001B[0m #894 > > \"C\",\n",
+ "00:00:45 \u001B[90mv\u001B[0m #895 > > fun input ->\n",
+ "00:00:45 \u001B[90mv\u001B[0m #896 > > input\n",
+ "00:00:45 \u001B[90mv\u001B[0m #897 > > |> Seq.toList\n",
+ "00:00:45 \u001B[90mv\u001B[0m #898 > > |> List.fold (fun (acc: string list) letter -> acc.Head.[[ 1 ..\n",
+ "00:00:45 \u001B[90mv\u001B[0m #899 > > input.Length - 1 ]] + string letter :: acc) [[ input ]]\n",
+ "00:00:45 \u001B[90mv\u001B[0m #900 > > |> List.rev\n",
+ "00:00:45 \u001B[90mv\u001B[0m #901 > > |> List.skip 1\n",
+ "00:00:45 \u001B[90mv\u001B[0m #902 > > |> SpiralSm.concat \" \"\n",
+ "00:00:45 \u001B[90mv\u001B[0m #903 > >\n",
+ "00:00:45 \u001B[90mv\u001B[0m #904 > > \"CA\",\n",
+ "00:00:45 \u001B[90mv\u001B[0m #905 > > fun input ->\n",
+ "00:00:45 \u001B[90mv\u001B[0m #906 > > input\n",
+ "00:00:45 \u001B[90mv\u001B[0m #907 > > |> Seq.fold (fun (acc: string list) letter -> acc.Head.[[ 1 ..\n",
+ "00:00:45 \u001B[90mv\u001B[0m #908 > > input.Length - 1 ]] + string letter :: acc) [[ input ]]\n",
+ "00:00:45 \u001B[90mv\u001B[0m #909 > > |> Seq.rev\n",
+ "00:00:45 \u001B[90mv\u001B[0m #910 > > |> Seq.skip 1\n",
+ "00:00:45 \u001B[90mv\u001B[0m #911 > > |> SpiralSm.concat \" \"\n",
+ "00:00:45 \u001B[90mv\u001B[0m #912 > >\n",
+ "00:00:45 \u001B[90mv\u001B[0m #913 > > \"CB\",\n",
+ "00:00:45 \u001B[90mv\u001B[0m #914 > > fun input ->\n",
+ "00:00:45 \u001B[90mv\u001B[0m #915 > > input\n",
+ "00:00:45 \u001B[90mv\u001B[0m #916 > > |> Seq.toArray\n",
+ "00:00:45 \u001B[90mv\u001B[0m #917 > > |> Array.fold (fun (acc: string[[]]) letter -> acc |> Array.append [[|\n",
+ "00:00:45 \u001B[90mv\u001B[0m #918 > > acc.[[0]].[[ 1 .. input.Length - 1 ]] + string letter |]]) [[| input |]]\n",
+ "00:00:45 \u001B[90mv\u001B[0m #919 > > |> Array.rev\n",
+ "00:00:45 \u001B[90mv\u001B[0m #920 > > |> Array.skip 1\n",
+ "00:00:45 \u001B[90mv\u001B[0m #921 > > |> SpiralSm.concat \" \"\n",
+ "00:00:45 \u001B[90mv\u001B[0m #922 > >\n",
+ "00:00:45 \u001B[90mv\u001B[0m #923 > > \"D\",\n",
+ "00:00:45 \u001B[90mv\u001B[0m #924 > > fun input ->\n",
+ "00:00:45 \u001B[90mv\u001B[0m #925 > > input\n",
+ "00:00:45 \u001B[90mv\u001B[0m #926 > > |> Seq.toList\n",
+ "00:00:45 \u001B[90mv\u001B[0m #927 > > |> fun list ->\n",
+ "00:00:45 \u001B[90mv\u001B[0m #928 > > let rec loop (acc: char list list) = function\n",
+ "00:00:45 \u001B[90mv\u001B[0m #929 > > | _ when acc.Length = list.Length -> acc\n",
+ "00:00:45 \u001B[90mv\u001B[0m #930 > > | head :: tail ->\n",
+ "00:00:45 \u001B[90mv\u001B[0m #931 > > let item = tail @ [[ head ]]\n",
+ "00:00:45 \u001B[90mv\u001B[0m #932 > > loop (item :: acc) item\n",
+ "00:00:45 \u001B[90mv\u001B[0m #933 > > | [[]] -> [[]]\n",
+ "00:00:45 \u001B[90mv\u001B[0m #934 > > loop [[]] list\n",
+ "00:00:45 \u001B[90mv\u001B[0m #935 > > |> List.rev\n",
+ "00:00:45 \u001B[90mv\u001B[0m #936 > > |> List.map (List.toArray >> String)\n",
+ "00:00:45 \u001B[90mv\u001B[0m #937 > > |> SpiralSm.concat \" \"\n",
+ "00:00:45 \u001B[90mv\u001B[0m #938 > >\n",
+ "00:00:45 \u001B[90mv\u001B[0m #939 > > \"E\",\n",
+ "00:00:45 \u001B[90mv\u001B[0m #940 > > fun input ->\n",
+ "00:00:45 \u001B[90mv\u001B[0m #941 > > input\n",
+ "00:00:45 \u001B[90mv\u001B[0m #942 > > |> Seq.toList\n",
+ "00:00:45 \u001B[90mv\u001B[0m #943 > > |> fun list ->\n",
+ "00:00:45 \u001B[90mv\u001B[0m #944 > > let rec loop (last: string) = function\n",
+ "00:00:45 \u001B[90mv\u001B[0m #945 > > | head :: tail ->\n",
+ "00:00:45 \u001B[90mv\u001B[0m #946 > > let item = last.[[1 .. input.Length - 1]] + string head\n",
+ "00:00:45 \u001B[90mv\u001B[0m #947 > > item :: loop item tail\n",
+ "00:00:45 \u001B[90mv\u001B[0m #948 > > | [[]] -> [[]]\n",
+ "00:00:45 \u001B[90mv\u001B[0m #949 > > loop input list\n",
+ "00:00:45 \u001B[90mv\u001B[0m #950 > > |> SpiralSm.concat \" \"\n",
+ "00:00:45 \u001B[90mv\u001B[0m #951 > >\n",
+ "00:00:45 \u001B[90mv\u001B[0m #952 > > \"F\",\n",
+ "00:00:45 \u001B[90mv\u001B[0m #953 > > fun input ->\n",
+ "00:00:45 \u001B[90mv\u001B[0m #954 > > Array.singleton 0\n",
+ "00:00:45 \u001B[90mv\u001B[0m #955 > > |> Array.append [[| 1 .. input.Length - 1 |]]\n",
+ "00:00:45 \u001B[90mv\u001B[0m #956 > > |> Array.map (fun i -> input.[[ i .. ]] + input.[[ .. i - 1 ]])\n",
+ "00:00:45 \u001B[90mv\u001B[0m #957 > > |> SpiralSm.concat \" \"\n",
+ "00:00:45 \u001B[90mv\u001B[0m #958 > >\n",
+ "00:00:45 \u001B[90mv\u001B[0m #959 > > \"FA\",\n",
+ "00:00:45 \u001B[90mv\u001B[0m #960 > > fun input ->\n",
+ "00:00:45 \u001B[90mv\u001B[0m #961 > > List.singleton 0\n",
+ "00:00:45 \u001B[90mv\u001B[0m #962 > > |> List.append [[ 1 .. input.Length - 1 ]]\n",
+ "00:00:45 \u001B[90mv\u001B[0m #963 > > |> List.map (fun i -> input.[[ i .. ]] + input.[[ .. i - 1 ]])\n",
+ "00:00:45 \u001B[90mv\u001B[0m #964 > > |> SpiralSm.concat \" \"\n",
+ "00:00:45 \u001B[90mv\u001B[0m #965 > >\n",
+ "00:00:45 \u001B[90mv\u001B[0m #966 > > \"FB\",\n",
+ "00:00:45 \u001B[90mv\u001B[0m #967 > > fun input ->\n",
+ "00:00:45 \u001B[90mv\u001B[0m #968 > > Seq.singleton 0\n",
+ "00:00:45 \u001B[90mv\u001B[0m #969 > > |> Seq.append (seq { 1 .. input.Length - 1 })\n",
+ "00:00:45 \u001B[90mv\u001B[0m #970 > > |> Seq.map (fun i -> input.[[ i .. ]] + input.[[ .. i - 1 ]])\n",
+ "00:00:45 \u001B[90mv\u001B[0m #971 > > |> SpiralSm.concat \" \"\n",
+ "00:00:45 \u001B[90mv\u001B[0m #972 > >\n",
+ "00:00:45 \u001B[90mv\u001B[0m #973 > > \"FC\",\n",
+ "00:00:45 \u001B[90mv\u001B[0m #974 > > fun input ->\n",
+ "00:00:45 \u001B[90mv\u001B[0m #975 > > Array.singleton 0\n",
+ "00:00:45 \u001B[90mv\u001B[0m #976 > > |> Array.append [[| 1 .. input.Length - 1 |]]\n",
+ "00:00:45 \u001B[90mv\u001B[0m #977 > > |> Array.Parallel.map (fun i -> input.[[ i .. ]] + input.[[ .. i - 1 ]])\n",
+ "00:00:45 \u001B[90mv\u001B[0m #978 > > |> SpiralSm.concat \" \"\n",
+ "00:00:45 \u001B[90mv\u001B[0m #979 > > ]]\n",
+ "00:00:45 \u001B[90mv\u001B[0m #980 > > let testCases = seq {\n",
+ "00:00:45 \u001B[90mv\u001B[0m #981 > > \"abc\", \"bca cab abc\"\n",
+ "00:00:45 \u001B[90mv\u001B[0m #982 > > \"abcde\", \"bcdea cdeab deabc eabcd abcde\"\n",
+ "00:00:45 \u001B[90mv\u001B[0m #983 > > \"abcdefghi\", \"bcdefghia cdefghiab defghiabc efghiabcd fghiabcde ghiabcdef\n",
+ "00:00:45 \u001B[90mv\u001B[0m #984 > > hiabcdefg iabcdefgh abcdefghi\"\n",
+ "00:00:45 \u001B[90mv\u001B[0m #985 > > \"abab\", \"baba abab baba abab\"\n",
+ "00:00:45 \u001B[90mv\u001B[0m #986 > > \"aa\", \"aa aa\"\n",
+ "00:00:45 \u001B[90mv\u001B[0m #987 > > \"z\", \"z\"\n",
+ "00:00:45 \u001B[90mv\u001B[0m #988 > > }\n",
+ "00:00:45 \u001B[90mv\u001B[0m #989 > > let rec rotateStringsTests = runAll (nameof rotateStringsTests) _count solutions\n",
+ "00:00:45 \u001B[90mv\u001B[0m #990 > > testCases\n",
+ "00:00:45 \u001B[90mv\u001B[0m #991 > > rotateStringsTests\n",
+ "00:00:45 \u001B[90mv\u001B[0m #992 > > |> sortResultList\n",
+ "00:01:06 \u001B[90mv\u001B[0m #993 > >\n",
+ "00:01:06 \u001B[90mv\u001B[0m #994 > > ── [ 21.56s - stdout ] ─────────────────────────────────────────────────────────\n",
+ "00:01:06 \u001B[90mv\u001B[0m #995 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:01:06 \u001B[90mv\u001B[0m #996 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:01:06 \u001B[90mv\u001B[0m #997 > > \u001B[38;2;38;140;38m│\u001B[0m Test: rotateStringsTests\n",
+ "00:01:06 \u001B[90mv\u001B[0m #998 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:01:06 \u001B[90mv\u001B[0m #999 > > \u001B[38;2;38;140;38m│\u001B[0m Solution: abc\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1000 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 1. A. Time: 3L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1001 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 2. B. Time: 2L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1002 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 3. C. Time: 2L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1003 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 4. CA. Time: 4L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1004 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 5. CB. Time: 2L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1005 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 6. D. Time: 3L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1006 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 7. E. Time: 2L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1007 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 8. F. Time: 2L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1008 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 9. FA. Time: 2L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1009 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 10. FB. Time: 8L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1010 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 11. FC. Time: 9L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1011 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1012 > > \u001B[38;2;38;140;38m│\u001B[0m Solution: abcde\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1013 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 1. A. Time: 4L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1014 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 2. B. Time: 1L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1015 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 3. C. Time: 1L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1016 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 4. CA. Time: 1L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1017 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 5. CB. Time: 2L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1018 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 6. D. Time: 5L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1019 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 7. E. Time: 1L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1020 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 8. F. Time: 0L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1021 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 9. FA. Time: 1L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1022 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 10. FB. Time: 4L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1023 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 11. FC. Time: 5L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1024 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1025 > > \u001B[38;2;38;140;38m│\u001B[0m Solution: abcdefghi\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1026 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 1. A. Time: 6L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1027 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 2. B. Time: 2L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1028 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 3. C. Time: 3L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1029 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 4. CA. Time: 3L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1030 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 5. CB. Time: 10L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1031 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 6. D. Time: 7L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1032 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 7. E. Time: 3L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1033 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 8. F. Time: 0L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1034 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 9. FA. Time: 1L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1035 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 10. FB. Time: 5L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1036 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 11. FC. Time: 4L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1037 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1038 > > \u001B[38;2;38;140;38m│\u001B[0m Solution: abab\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1039 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 1. A. Time: 1L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1040 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 2. B. Time: 1L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1041 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 3. C. Time: 1L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1042 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 4. CA. Time: 1L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1043 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 5. CB. Time: 1L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1044 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 6. D. Time: 1L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1045 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 7. E. Time: 1L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1046 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 8. F. Time: 0L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1047 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 9. FA. Time: 0L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1048 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 10. FB. Time: 1L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1049 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 11. FC. Time: 5L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1050 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1051 > > \u001B[38;2;38;140;38m│\u001B[0m Solution: aa\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1052 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 1. A. Time: 1L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1053 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 2. B. Time: 1L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1054 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 3. C. Time: 0L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1055 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 4. CA. Time: 0L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1056 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 5. CB. Time: 0L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1057 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 6. D. Time: 0L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1058 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 7. E. Time: 0L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1059 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 8. F. Time: 0L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1060 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 9. FA. Time: 0L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1061 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 10. FB. Time: 1L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1062 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 11. FC. Time: 4L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1063 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1064 > > \u001B[38;2;38;140;38m│\u001B[0m Solution: z\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1065 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 1. A. Time: 0L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1066 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 2. B. Time: 0L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1067 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 3. C. Time: 0L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1068 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 4. CA. Time: 0L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1069 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 5. CB. Time: 0L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1070 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 6. D. Time: 0L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1071 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 7. E. Time: 0L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1072 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 8. F. Time: 0L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1073 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 9. FA. Time: 0L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1074 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 10. FB. Time: 2L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1075 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 11. FC. Time: 4L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1076 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1077 > > \u001B[38;2;38;140;38m│\u001B[0m Input \t| Expected\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1078 > > | Result\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1079 > >\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1080 > > | Best\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1081 > > \u001B[38;2;38;140;38m│\u001B[0m --- \t| ---\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1082 > >\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1083 > > | ---\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1084 > >\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1085 > > | ---\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1086 > > \u001B[38;2;38;140;38m│\u001B[0m abc \t| bca cab abc\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1087 > > | bca cab abc\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1088 > > | (2, 2)\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1089 > > \u001B[38;2;38;140;38m│\u001B[0m abcde \t| bcdea cdeab deabc eabcd abcde\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1090 > > | bcdea cdeab deabc eabcd abcde\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1091 > > | (8, 0)\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1092 > > \u001B[38;2;38;140;38m│\u001B[0m abcdefghi\t| bcdefghia cdefghiab defghiabc efghiabcd fghiabcde\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1093 > > ghiabcdef hiabcdefg iabcdefgh abcdefghi\t| bcdefghia cdefghiab defghiabc efghiabcd\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1094 > > fghiabcde ghiabcdef hiabcdefg iabcdefgh abcdefghi\t| (8, 0)\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1095 > > \u001B[38;2;38;140;38m│\u001B[0m abab \t| baba abab baba abab\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1096 > > | baba abab baba abab\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1097 > > | (8, 0)\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1098 > > \u001B[38;2;38;140;38m│\u001B[0m aa \t| aa aa\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1099 > >\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1100 > > | aa aa\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1101 > >\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1102 > > | (3, 0)\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1103 > > \u001B[38;2;38;140;38m│\u001B[0m z \t| z\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1104 > >\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1105 > > | z\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1106 > >\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1107 > > | (1, 0)\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1108 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1109 > > \u001B[38;2;38;140;38m│\u001B[0m Average Ranking\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1110 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 8. Average Time: 0L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1111 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 9. Average Time: 0L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1112 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 2. Average Time: 1L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1113 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 3. Average Time: 1L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1114 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 4. Average Time: 1L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1115 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 7. Average Time: 1L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1116 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 1. Average Time: 2L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1117 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 5. Average Time: 2L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1118 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 6. Average Time: 2L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1119 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 10. Average Time: 3L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1120 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 11. Average Time: 5L\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1121 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1122 > >\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1123 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1124 > > \u001B[38;2;146;146;178m│\u001B[0m ## rotate_strings_tests\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1125 > >\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1126 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1127 > > \u001B[38;2;146;146;178m│\u001B[0m ```\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1128 > > \u001B[38;2;146;146;178m│\u001B[0m 02:21:12 \u001B[90mverbose\u001B[0m #1 benchmark.run_all / {count =\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1129 > > 2000000; test_name = rotate_strings_tests}\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1130 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1131 > > \u001B[38;2;146;146;178m│\u001B[0m 02:21:12 \u001B[90mverbose\u001B[0m #2 benchmark.run / {input_str =\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1132 > > \"abc\"}\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1133 > > \u001B[38;2;146;146;178m│\u001B[0m 02:21:13 \u001B[90mverbose\u001B[0m #3 benchmark.run / solutions.map / {i\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1134 > > = 1; test_name = F; time = 638}\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1135 > > \u001B[38;2;146;146;178m│\u001B[0m 02:21:14 \u001B[90mverbose\u001B[0m #4 benchmark.run / solutions.map / {i\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1136 > > = 2; test_name = FA; time = 779}\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1137 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1138 > > \u001B[38;2;146;146;178m│\u001B[0m 02:21:14 \u001B[90mverbose\u001B[0m #5 benchmark.run / {input_str =\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1139 > > \"abcde\"}\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1140 > > \u001B[38;2;146;146;178m│\u001B[0m 02:21:15 \u001B[90mverbose\u001B[0m #6 benchmark.run / solutions.map / {i\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1141 > > = 1; test_name = F; time = 745}\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1142 > > \u001B[38;2;146;146;178m│\u001B[0m 02:21:16 \u001B[90mverbose\u001B[0m #7 benchmark.run / solutions.map / {i\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1143 > > = 2; test_name = FA; time = 809}\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1144 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1145 > > \u001B[38;2;146;146;178m│\u001B[0m 02:21:16 \u001B[90mverbose\u001B[0m #8 benchmark.run / {input_str =\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1146 > > \"abcdefghi\"}\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1147 > > \u001B[38;2;146;146;178m│\u001B[0m 02:21:17 \u001B[90mverbose\u001B[0m #9 benchmark.run / solutions.map / {i\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1148 > > = 1; test_name = F; time = 1092}\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1149 > > \u001B[38;2;146;146;178m│\u001B[0m 02:21:18 \u001B[90mverbose\u001B[0m #10 benchmark.run / solutions.map\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1150 > > {i = 2; test_name = FA; time = 1304}\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1151 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1152 > > \u001B[38;2;146;146;178m│\u001B[0m 02:21:18 \u001B[90mverbose\u001B[0m #11 benchmark.run / {input_str =\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1153 > > \"abab\"}\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1154 > > \u001B[38;2;146;146;178m│\u001B[0m 02:21:19 \u001B[90mverbose\u001B[0m #12 benchmark.run / solutions.map\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1155 > > {i = 1; test_name = F; time = 536}\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1156 > > \u001B[38;2;146;146;178m│\u001B[0m 02:21:20 \u001B[90mverbose\u001B[0m #13 benchmark.run / solutions.map\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1157 > > {i = 2; test_name = FA; time = 620}\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1158 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1159 > > \u001B[38;2;146;146;178m│\u001B[0m 02:21:20 \u001B[90mverbose\u001B[0m #14 benchmark.run / {input_str =\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1160 > > \"aa\"}\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1161 > > \u001B[38;2;146;146;178m│\u001B[0m 02:21:21 \u001B[90mverbose\u001B[0m #15 benchmark.run / solutions.map\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1162 > > {i = 1; test_name = F; time = 365}\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1163 > > \u001B[38;2;146;146;178m│\u001B[0m 02:21:21 \u001B[90mverbose\u001B[0m #16 benchmark.run / solutions.map\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1164 > > {i = 2; test_name = FA; time = 396}\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1165 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1166 > > \u001B[38;2;146;146;178m│\u001B[0m 02:21:21 \u001B[90mverbose\u001B[0m #17 benchmark.run / {input_str = \"z\"}\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1167 > > \u001B[38;2;146;146;178m│\u001B[0m 02:21:22 \u001B[90mverbose\u001B[0m #18 benchmark.run / solutions.map\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1168 > > {i = 1; test_name = F; time = 158}\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1169 > > \u001B[38;2;146;146;178m│\u001B[0m 02:21:22 \u001B[90mverbose\u001B[0m #19 benchmark.run / solutions.map\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1170 > > {i = 2; test_name = FA; time = 143}\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1171 > > \u001B[38;2;146;146;178m│\u001B[0m ```\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1172 > > \u001B[38;2;146;146;178m│\u001B[0m input \t| expected\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1173 > >\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1174 > > | result\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1175 > >\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1176 > > | best\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1177 > > \u001B[38;2;146;146;178m│\u001B[0m --- \t| ---\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1178 > >\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1179 > > | ---\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1180 > >\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1181 > > | ---\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1182 > > \u001B[38;2;146;146;178m│\u001B[0m \"abc\" \t| \"bca cab abc\"\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1183 > > | \"bca cab abc\"\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1184 > > | 1, 638\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1185 > > \u001B[38;2;146;146;178m│\u001B[0m \"abcde\" \t| \"bcdea cdeab deabc eabcd abcde\"\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1186 > > | \"bcdea cdeab deabc eabcd abcde\"\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1187 > > | 1, 745\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1188 > > \u001B[38;2;146;146;178m│\u001B[0m \"abcdefghi\"\t| \"bcdefghia cdefghiab defghiabc efghiabcd\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1189 > > fghiabcde ghiabcdef hiabcdefg iabcdefgh abcdefghi\"\t| \"bcdefghia cdefghiab\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1190 > > defghiabc efghiabcd fghiabcde ghiabcdef hiabcdefg iabcdefgh abcdefghi\"\t| 1, 1092\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1191 > > \u001B[38;2;146;146;178m│\u001B[0m \"abab\" \t| \"baba abab baba abab\"\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1192 > > | \"baba abab baba abab\"\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1193 > > | 1, 536\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1194 > > \u001B[38;2;146;146;178m│\u001B[0m \"aa\" \t| \"aa aa\"\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1195 > >\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1196 > > | \"aa aa\"\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1197 > >\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1198 > > | 1, 365\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1199 > > \u001B[38;2;146;146;178m│\u001B[0m \"z\" \t| \"z\"\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1200 > >\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1201 > > | \"z\"\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1202 > >\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1203 > > | 2, 143\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1204 > > \u001B[38;2;146;146;178m│\u001B[0m ```\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1205 > > \u001B[38;2;146;146;178m│\u001B[0m 02:21:22 \u001B[90mverbose\u001B[0m #20 benchmark.sort_result_list\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1206 > > averages.iter / {avg = 589; i = 1}\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1207 > > \u001B[38;2;146;146;178m│\u001B[0m 02:21:22 \u001B[90mverbose\u001B[0m #21 benchmark.sort_result_list\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1208 > > averages.iter / {avg = 675; i = 2}\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1209 > > \u001B[38;2;146;146;178m│\u001B[0m ```\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1210 > >\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1211 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1212 > > //// test\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1213 > > //// timeout=60000\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1214 > >\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1215 > > inl get_solutions () =\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1216 > > [[\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1217 > > // \"A\",\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1218 > > // fun (input : string) =>\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1219 > > // let resultList =\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1220 > > // List.fold (fun acc x =>\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1221 > > // let rotate (text : string) (letter : string) =\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1222 > > text.Substring (1, input.Length - 1) + letter\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1223 > > // [[ rotate (if acc.IsEmpty then input else acc.Head)\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1224 > > (string x) ]] ++ acc\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1225 > > // ) [[]] (Seq.toList input)\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1226 > >\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1227 > > // List.foldBack (fun acc x => x + acc + \" \") resultList \"\"\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1228 > > // |> fun x => x.TrimEnd ()\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1229 > >\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1230 > > // \"B\",\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1231 > > // fun input =>\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1232 > > // input\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1233 > > // |> Seq.toList\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1234 > > // |> List.fold (fun (acc : string list) letter =>\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1235 > > // let last =\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1236 > > // if acc.IsEmpty\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1237 > > // then input\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1238 > > // else acc.Head\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1239 > >\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1240 > > // let item = last.[[1 .. input.Length - 1]] + string letter\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1241 > >\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1242 > > // item :: acc\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1243 > > // ) [[]]\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1244 > > // |> List.rev\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1245 > > // |> SpiralSm.concat \" \"\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1246 > >\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1247 > > // \"C\",\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1248 > > // fun input =>\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1249 > > // input\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1250 > > // |> Seq.toList\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1251 > > // |> List.fold (fun (acc : list string) letter => acc.Head.[[ 1 ..\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1252 > > input.Length - 1 ]] + string letter :: acc) [[ input ]]\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1253 > > // |> List.rev\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1254 > > // |> List.skip 1\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1255 > > // |> SpiralSm.concat \" \"\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1256 > >\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1257 > > // \"CA\",\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1258 > > // fun input =>\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1259 > > // input\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1260 > > // |> Seq.fold (fun (acc : list string) letter => acc.Head.[[ 1 ..\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1261 > > input.Length - 1 ]] + string letter :: acc) [[ input ]]\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1262 > > // |> Seq.rev\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1263 > > // |> Seq.skip 1\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1264 > > // |> SpiralSm.concat \" \"\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1265 > >\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1266 > > // \"CB\",\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1267 > > // fun input =>\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1268 > > // input\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1269 > > // |> Seq.toArray\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1270 > > // |> Array.fold (fun (acc : a _ string) letter => acc |>\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1271 > > Array.append (a ;[[ acc.[[0]].[[ 1 .. input.Length - 1 ]] + string letter ]]))\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1272 > > (a ;[[ input ]])\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1273 > > // |> Array.rev\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1274 > > // |> Array.skip 1\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1275 > > // |> SpiralSm.concat \" \"\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1276 > >\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1277 > > // \"D\",\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1278 > > // fun input =>\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1279 > > // input\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1280 > > // |> Seq.toList\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1281 > > // |> fun list =>\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1282 > > // let rec loop (acc : list (list char)) = function\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1283 > > // | _ when acc.Length = list.Length => acc\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1284 > > // | head :: tail =>\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1285 > > // let item = tail ++ [[ head ]]\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1286 > > // loop (item :: acc) item\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1287 > > // | [[]] => [[]]\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1288 > > // loop [[]] list\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1289 > > // |> List.rev\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1290 > > // |> List.map (List.toArray >> String)\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1291 > > // |> SpiralSm.concat \" \"\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1292 > >\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1293 > > // \"E\",\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1294 > > // fun input =>\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1295 > > // input\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1296 > > // |> Seq.toList\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1297 > > // |> fun list =>\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1298 > > // let rec loop (last : string) = function\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1299 > > // | head :: tail =>\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1300 > > // let item = last.[[1 .. input.Length - 1]] + string\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1301 > > head\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1302 > > // item :: loop item tail\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1303 > > // | [[]] => [[]]\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1304 > > // loop input list\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1305 > > // |> SpiralSm.concat \" \"\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1306 > >\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1307 > > \"F\",\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1308 > > fun input =>\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1309 > > // Array.singleton 0\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1310 > > // |> Array.append [[| 1 .. input.Length - 1 |]]\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1311 > > // |> Array.map (fun i -> input.[[ i .. ]] + input.[[ .. i - 1 ]])\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1312 > > // |> SpiralSm.concat \" \"\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1313 > > inl input_length = input |> sm.length\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1314 > > am.singleton 0i32\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1315 > > |> am.append (am'.init_series 1 (input_length - 1) 1 |> fun x => a x\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1316 > > : _ int _)\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1317 > > |> fun (a x) => x\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1318 > > |> am'.map_base fun i =>\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1319 > > inl a = input |> sm'.slice i (input_length - 1)\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1320 > > inl b = input |> sm'.slice 0 (i - 1)\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1321 > > a +. b\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1322 > > |> fun x => a x : _ int _\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1323 > > |> seq.of_array\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1324 > > |> sm'.concat \" \"\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1325 > >\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1326 > > \"FA\",\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1327 > > fun input =>\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1328 > > // List.singleton 0\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1329 > > // |> List.append [[ 1 .. input.Length - 1 ]]\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1330 > > // // |> List.map (fun i => input.[[ i .. ]] + input.[[ .. i - 1 ]])\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1331 > > // |> SpiralSm.concat \" \"\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1332 > > inl input_length = input |> sm.length\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1333 > > listm.singleton 0i32\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1334 > > |> listm.append (listm'.init_series 1 (input_length - 1) 1)\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1335 > > |> listm.map (fun i =>\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1336 > > inl a = input |> sm'.slice i (input_length - 1)\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1337 > > inl b = if i = 0 then \"\" else input |> sm'.slice 0 (i - 1)\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1338 > > a +. b\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1339 > > )\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1340 > > |> listm'.box\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1341 > > |> listm'.to_array'\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1342 > > |> fun x => a x : _ int _\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1343 > > |> seq.of_array\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1344 > > |> sm'.concat \" \"\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1345 > >\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1346 > > // \"FB\",\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1347 > > // fun input =>\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1348 > > // Seq.singleton 0\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1349 > > // // |> Seq.append (seq { 1 .. input.Length - 1 })\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1350 > > // // |> Seq.map (fun i => input.[[ i .. ]] + input.[[ .. i - 1 ]])\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1351 > > // |> SpiralSm.concat \" \"\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1352 > >\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1353 > > // \"FC\",\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1354 > > // fun input =>\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1355 > > // Array.singleton 0\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1356 > > // |> Array.append (a ;[[ 1 .. input.Length - 1 ]])\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1357 > > //// |> Array.Parallel.map (fun i => input.[[ i .. ]] + input.[[ .. i\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1358 > > - 1 ]])\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1359 > > // |> SpiralSm.concat \" \"\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1360 > > ]]\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1361 > >\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1362 > > inl rec rotate_strings_tests () =\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1363 > > inl test_cases = [[\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1364 > > \"abc\", \"bca cab abc\"\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1365 > > \"abcde\", \"bcdea cdeab deabc eabcd abcde\"\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1366 > > \"abcdefghi\", \"bcdefghia cdefghiab defghiabc efghiabcd fghiabcde\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1367 > > ghiabcdef hiabcdefg iabcdefgh abcdefghi\"\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1368 > > \"abab\", \"baba abab baba abab\"\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1369 > > \"aa\", \"aa aa\"\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1370 > > \"z\", \"z\"\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1371 > > ]]\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1372 > >\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1373 > > inl solutions = get_solutions ()\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1374 > >\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1375 > > // inl is_fast () = true\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1376 > >\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1377 > > inl count =\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1378 > > if is_fast ()\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1379 > > then 1000i32\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1380 > > else 2000000i32\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1381 > >\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1382 > > run_all (reflection.nameof { rotate_strings_tests }) count solutions\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1383 > > test_cases\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1384 > > |> sort_result_list\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1385 > >\n",
+ "00:01:06 \u001B[90mv\u001B[0m #1386 > > rotate_strings_tests ()\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1387 > >\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1388 > > ── [ 27.81s - stdout ] ─────────────────────────────────────────────────────────\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1389 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1390 > > \u001B[38;2;38;140;38m│\u001B[0m ```\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1391 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:00 \u001B[90mv\u001B[0m #1 benchmark.run_all / { test_name =\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1392 > > rotate_strings_tests; count = 2000000 }\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1393 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1394 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:00 \u001B[90mv\u001B[0m #2 benchmark.run / { input_str = \"abc\" }\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1395 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:01 \u001B[90mv\u001B[0m #3 benchmark.run / solutions.map / { i = 1;\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1396 > > test_name = F; time = 1253 }\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1397 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:03 \u001B[90mv\u001B[0m #4 benchmark.run / solutions.map / { i = 2;\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1398 > > test_name = FA; time = 1654 }\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1399 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1400 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:03 \u001B[90mv\u001B[0m #5 benchmark.run / { input_str = \"abcde\" }\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1401 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:06 \u001B[90mv\u001B[0m #6 benchmark.run / solutions.map / { i = 1;\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1402 > > test_name = F; time = 1769 }\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1403 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:08 \u001B[90mv\u001B[0m #7 benchmark.run / solutions.map / { i = 2;\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1404 > > test_name = FA; time = 2186 }\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1405 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1406 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:08 \u001B[90mv\u001B[0m #8 benchmark.run / { input_str = \"abcdefghi\"\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1407 > > }\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1408 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:12 \u001B[90mv\u001B[0m #9 benchmark.run / solutions.map / { i = 1;\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1409 > > test_name = F; time = 2815 }\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1410 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:16 \u001B[90mv\u001B[0m #10 benchmark.run / solutions.map / { i = 2;\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1411 > > test_name = FA; time = 3839 }\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1412 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1413 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:16 \u001B[90mv\u001B[0m #11 benchmark.run / { input_str = \"abab\" }\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1414 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:18 \u001B[90mv\u001B[0m #12 benchmark.run / solutions.map / { i = 1;\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1415 > > test_name = F; time = 1508 }\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1416 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:21 \u001B[90mv\u001B[0m #13 benchmark.run / solutions.map / { i = 2;\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1417 > > test_name = FA; time = 1862 }\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1418 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1419 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:21 \u001B[90mv\u001B[0m #14 benchmark.run / { input_str = \"aa\" }\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1420 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:22 \u001B[90mv\u001B[0m #15 benchmark.run / solutions.map / { i = 1;\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1421 > > test_name = F; time = 1103 }\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1422 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:24 \u001B[90mv\u001B[0m #16 benchmark.run / solutions.map / { i = 2;\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1423 > > test_name = FA; time = 1310 }\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1424 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1425 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:24 \u001B[90mv\u001B[0m #17 benchmark.run / { input_str = \"z\" }\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1426 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:25 \u001B[90mv\u001B[0m #18 benchmark.run / solutions.map / { i = 1;\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1427 > > test_name = F; time = 312 }\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1428 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:25 \u001B[90mv\u001B[0m #19 benchmark.run / solutions.map / { i = 2;\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1429 > > test_name = FA; time = 351 }\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1430 > > \u001B[38;2;38;140;38m│\u001B[0m ```\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1431 > > \u001B[38;2;38;140;38m│\u001B[0m input \t| expected\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1432 > >\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1433 > > | result\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1434 > >\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1435 > > | best\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1436 > > \u001B[38;2;38;140;38m│\u001B[0m --- \t| ---\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1437 > >\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1438 > > | ---\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1439 > >\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1440 > > | ---\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1441 > > \u001B[38;2;38;140;38m│\u001B[0m \"abc\" \t| \"bca cab abc\"\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1442 > > | \"bca cab abc\"\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1443 > > | 1, 1253\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1444 > > \u001B[38;2;38;140;38m│\u001B[0m \"abcde\" \t| \"bcdea cdeab deabc eabcd abcde\"\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1445 > > | \"bcdea cdeab deabc eabcd abcde\"\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1446 > > | 1, 1769\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1447 > > \u001B[38;2;38;140;38m│\u001B[0m \"abcdefghi\"\t| \"bcdefghia cdefghiab defghiabc efghiabcd\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1448 > > fghiabcde ghiabcdef hiabcdefg iabcdefgh abcdefghi\"\t| \"bcdefghia cdefghiab\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1449 > > defghiabc efghiabcd fghiabcde ghiabcdef hiabcdefg iabcdefgh abcdefghi\"\t| 1, 2815\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1450 > > \u001B[38;2;38;140;38m│\u001B[0m \"abab\" \t| \"baba abab baba abab\"\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1451 > > | \"baba abab baba abab\"\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1452 > > | 1, 1508\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1453 > > \u001B[38;2;38;140;38m│\u001B[0m \"aa\" \t| \"aa aa\"\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1454 > >\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1455 > > | \"aa aa\"\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1456 > >\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1457 > > | 1, 1103\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1458 > > \u001B[38;2;38;140;38m│\u001B[0m \"z\" \t| \"z\"\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1459 > >\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1460 > > | \"z\"\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1461 > >\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1462 > > | 1, 312\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1463 > > \u001B[38;2;38;140;38m│\u001B[0m ```\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1464 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:25 \u001B[90mv\u001B[0m #20 benchmark.sort_result_list\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1465 > > averages.iter / { i = 1; avg = 1460 }\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1466 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:25 \u001B[90mv\u001B[0m #21 benchmark.sort_result_list\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1467 > > averages.iter / { i = 2; avg = 1867 }\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1468 > > \u001B[38;2;38;140;38m│\u001B[0m ```\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1469 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1470 > >\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1471 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1472 > > //// test\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1473 > >\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1474 > > // rotate_strings_tests ()\n",
+ "00:01:34 \u001B[90mv\u001B[0m #1475 > > ()\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1476 > >\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1477 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1478 > > \u001B[38;2;146;146;178m│\u001B[0m ## binary_search_tests\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1479 > >\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1480 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1481 > > \u001B[38;2;146;146;178m│\u001B[0m ```\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1482 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:29 \u001B[90mverbose\u001B[0m #1 benchmark.run_all / {count =\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1483 > > 10000000; test_name = binary_search_tests}\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1484 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1485 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:29 \u001B[90mverbose\u001B[0m #2 benchmark.run / {input_str =\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1486 > > struct ([|1; 3; 4; 6; 8; 9; 11|], 6, 7)}\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1487 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:30 \u001B[90mverbose\u001B[0m #3 benchmark.run / solutions.map / {i\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1488 > > = 1; test_name = semi_open_1; time = 662}\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1489 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:30 \u001B[90mverbose\u001B[0m #4 benchmark.run / solutions.map / {i\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1490 > > = 2; test_name = closed_1; time = 619}\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1491 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:31 \u001B[90mverbose\u001B[0m #5 benchmark.run / solutions.map / {i\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1492 > > = 3; test_name = semi_open_2; time = 644}\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1493 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:32 \u001B[90mverbose\u001B[0m #6 benchmark.run / solutions.map / {i\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1494 > > = 4; test_name = closed_2; time = 610}\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1495 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1496 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:32 \u001B[90mverbose\u001B[0m #7 benchmark.run / {input_str =\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1497 > > struct ([|1; 3; 4; 6; 8; 9; 11|], 1, 7)}\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1498 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:33 \u001B[90mverbose\u001B[0m #8 benchmark.run / solutions.map / {i\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1499 > > = 1; test_name = semi_open_1; time = 607}\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1500 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:33 \u001B[90mverbose\u001B[0m #9 benchmark.run / solutions.map / {i\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1501 > > = 2; test_name = closed_1; time = 559}\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1502 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:34 \u001B[90mverbose\u001B[0m #10 benchmark.run / solutions.map\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1503 > > {i = 3; test_name = semi_open_2; time = 612}\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1504 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:35 \u001B[90mverbose\u001B[0m #11 benchmark.run / solutions.map\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1505 > > {i = 4; test_name = closed_2; time = 577}\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1506 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1507 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:35 \u001B[90mverbose\u001B[0m #12 benchmark.run / {input_str =\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1508 > > struct ([|1; 3; 4; 6; 8; 9; 11|], 11, 7)}\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1509 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:35 \u001B[90mverbose\u001B[0m #13 benchmark.run / solutions.map\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1510 > > {i = 1; test_name = semi_open_1; time = 550}\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1511 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:36 \u001B[90mverbose\u001B[0m #14 benchmark.run / solutions.map\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1512 > > {i = 2; test_name = closed_1; time = 580}\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1513 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:37 \u001B[90mverbose\u001B[0m #15 benchmark.run / solutions.map\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1514 > > {i = 3; test_name = semi_open_2; time = 624}\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1515 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:37 \u001B[90mverbose\u001B[0m #16 benchmark.run / solutions.map\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1516 > > {i = 4; test_name = closed_2; time = 590}\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1517 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1518 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:37 \u001B[90mverbose\u001B[0m #17 benchmark.run / {input_str =\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1519 > > struct ([|1; 3; 4; 6; 8; 9; 11|], 12, 7)}\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1520 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:38 \u001B[90mverbose\u001B[0m #18 benchmark.run / solutions.map\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1521 > > {i = 1; test_name = semi_open_1; time = 574}\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1522 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:39 \u001B[90mverbose\u001B[0m #19 benchmark.run / solutions.map\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1523 > > {i = 2; test_name = closed_1; time = 577}\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1524 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:39 \u001B[90mverbose\u001B[0m #20 benchmark.run / solutions.map\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1525 > > {i = 3; test_name = semi_open_2; time = 582}\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1526 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:40 \u001B[90mverbose\u001B[0m #21 benchmark.run / solutions.map\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1527 > > {i = 4; test_name = closed_2; time = 585}\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1528 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1529 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:40 \u001B[90mverbose\u001B[0m #22 benchmark.run / {input_str =\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1530 > > struct ([|1; 2; 3; 4...00; ...|], 60, 1000)}\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1531 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:41 \u001B[90mverbose\u001B[0m #23 benchmark.run / solutions.map\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1532 > > {i = 1; test_name = semi_open_1; time = 610}\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1533 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:42 \u001B[90mverbose\u001B[0m #24 benchmark.run / solutions.map\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1534 > > {i = 2; test_name = closed_1; time = 672}\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1535 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:42 \u001B[90mverbose\u001B[0m #25 benchmark.run / solutions.map\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1536 > > {i = 3; test_name = semi_open_2; time = 636}\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1537 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:43 \u001B[90mverbose\u001B[0m #26 benchmark.run / solutions.map\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1538 > > {i = 4; test_name = closed_2; time = 629}\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1539 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1540 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:43 \u001B[90mverbose\u001B[0m #27 benchmark.run / {input_str =\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1541 > > struct ([|1; 3; 4; 6; 8; 9; 11|], 6, 7)}\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1542 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:44 \u001B[90mverbose\u001B[0m #28 benchmark.run / solutions.map\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1543 > > {i = 1; test_name = semi_open_1; time = 599}\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1544 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:44 \u001B[90mverbose\u001B[0m #29 benchmark.run / solutions.map\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1545 > > {i = 2; test_name = closed_1; time = 561}\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1546 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:45 \u001B[90mverbose\u001B[0m #30 benchmark.run / solutions.map\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1547 > > {i = 3; test_name = semi_open_2; time = 604}\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1548 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:46 \u001B[90mverbose\u001B[0m #31 benchmark.run / solutions.map\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1549 > > {i = 4; test_name = closed_2; time = 573}\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1550 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1551 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:46 \u001B[90mverbose\u001B[0m #32 benchmark.run / {input_str =\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1552 > > struct ([|1; 3; 4; 6; 8; 9; 11|], 1, 7)}\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1553 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:47 \u001B[90mverbose\u001B[0m #33 benchmark.run / solutions.map\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1554 > > {i = 1; test_name = semi_open_1; time = 635}\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1555 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:47 \u001B[90mverbose\u001B[0m #34 benchmark.run / solutions.map\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1556 > > {i = 2; test_name = closed_1; time = 603}\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1557 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:48 \u001B[90mverbose\u001B[0m #35 benchmark.run / solutions.map\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1558 > > {i = 3; test_name = semi_open_2; time = 644}\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1559 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:49 \u001B[90mverbose\u001B[0m #36 benchmark.run / solutions.map\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1560 > > {i = 4; test_name = closed_2; time = 628}\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1561 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1562 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:49 \u001B[90mverbose\u001B[0m #37 benchmark.run / {input_str =\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1563 > > struct ([|1; 3; 4; 6; 8; 9; 11|], 11, 7)}\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1564 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:49 \u001B[90mverbose\u001B[0m #38 benchmark.run / solutions.map\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1565 > > {i = 1; test_name = semi_open_1; time = 643}\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1566 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:50 \u001B[90mverbose\u001B[0m #39 benchmark.run / solutions.map\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1567 > > {i = 2; test_name = closed_1; time = 606}\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1568 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:51 \u001B[90mverbose\u001B[0m #40 benchmark.run / solutions.map\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1569 > > {i = 3; test_name = semi_open_2; time = 636}\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1570 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:52 \u001B[90mverbose\u001B[0m #41 benchmark.run / solutions.map\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1571 > > {i = 4; test_name = closed_2; time = 624}\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1572 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1573 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:52 \u001B[90mverbose\u001B[0m #42 benchmark.run / {input_str =\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1574 > > struct ([|1; 3; 4; 6; 8; 9; 11|], 12, 7)}\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1575 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:52 \u001B[90mverbose\u001B[0m #43 benchmark.run / solutions.map\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1576 > > {i = 1; test_name = semi_open_1; time = 689}\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1577 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:53 \u001B[90mverbose\u001B[0m #44 benchmark.run / solutions.map\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1578 > > {i = 2; test_name = closed_1; time = 613}\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1579 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:54 \u001B[90mverbose\u001B[0m #45 benchmark.run / solutions.map\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1580 > > {i = 3; test_name = semi_open_2; time = 623}\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1581 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:55 \u001B[90mverbose\u001B[0m #46 benchmark.run / solutions.map\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1582 > > {i = 4; test_name = closed_2; time = 613}\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1583 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1584 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:55 \u001B[90mverbose\u001B[0m #47 benchmark.run / {input_str =\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1585 > > struct ([|1; 2; 3; 4...100; ...|], 60, 100)}\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1586 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:55 \u001B[90mverbose\u001B[0m #48 benchmark.run / solutions.map\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1587 > > {i = 1; test_name = semi_open_1; time = 630}\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1588 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:56 \u001B[90mverbose\u001B[0m #49 benchmark.run / solutions.map\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1589 > > {i = 2; test_name = closed_1; time = 633}\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1590 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:57 \u001B[90mverbose\u001B[0m #50 benchmark.run / solutions.map\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1591 > > {i = 3; test_name = semi_open_2; time = 653}\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1592 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:58 \u001B[90mverbose\u001B[0m #51 benchmark.run / solutions.map\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1593 > > {i = 4; test_name = closed_2; time = 646}\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1594 > > \u001B[38;2;146;146;178m│\u001B[0m ```\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1595 > > \u001B[38;2;146;146;178m│\u001B[0m input \t| expected\t| result \t|\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1596 > > best\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1597 > > \u001B[38;2;146;146;178m│\u001B[0m --- \t| --- \t| --- \t|\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1598 > > ---\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1599 > > \u001B[38;2;146;146;178m│\u001B[0m struct ([1; 3; 4; 6; 8; 9; 11], 6, 7) \t| US4_0 3 \t| US4_0 3 \t|\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1600 > > 4, 610\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1601 > > \u001B[38;2;146;146;178m│\u001B[0m struct ([1; 3; 4; 6; 8; 9; 11], 1, 7) \t| US4_0 0 \t| US4_0 0 \t|\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1602 > > 2, 559\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1603 > > \u001B[38;2;146;146;178m│\u001B[0m struct ([1; 3; 4; 6; 8; 9; 11], 11, 7) \t| US4_0 6 \t| US4_0 6 \t|\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1604 > > 1, 550\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1605 > > \u001B[38;2;146;146;178m│\u001B[0m struct ([1; 3; 4; 6; 8; 9; 11], 12, 7) \t| US4_1 \t| US4_1 \t|\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1606 > > 1, 574\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1607 > > \u001B[38;2;146;146;178m│\u001B[0m struct ([1; 2; 3; 4...00; ...], 60, 1000)\t| US4_0 59\t| US4_0 59\t|\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1608 > > 1, 610\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1609 > > \u001B[38;2;146;146;178m│\u001B[0m struct ([1; 3; 4; 6; 8; 9; 11], 6, 7) \t| US4_0 3 \t| US4_0 3 \t|\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1610 > > 2, 561\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1611 > > \u001B[38;2;146;146;178m│\u001B[0m struct ([1; 3; 4; 6; 8; 9; 11], 1, 7) \t| US4_0 0 \t| US4_0 0 \t|\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1612 > > 2, 603\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1613 > > \u001B[38;2;146;146;178m│\u001B[0m struct ([1; 3; 4; 6; 8; 9; 11], 11, 7) \t| US4_0 6 \t| US4_0 6 \t|\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1614 > > 2, 606\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1615 > > \u001B[38;2;146;146;178m│\u001B[0m struct ([1; 3; 4; 6; 8; 9; 11], 12, 7) \t| US4_1 \t| US4_1 \t|\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1616 > > 2, 613\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1617 > > \u001B[38;2;146;146;178m│\u001B[0m struct ([1; 2; 3; 4...100; ...], 60, 100)\t| US4_0 59\t| US4_0 59\t|\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1618 > > 1, 630\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1619 > > \u001B[38;2;146;146;178m│\u001B[0m ```\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1620 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:58 \u001B[90mverbose\u001B[0m #52 benchmark.sort_result_list\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1621 > > averages.iter / {avg = 602; i = 2}\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1622 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:58 \u001B[90mverbose\u001B[0m #53 benchmark.sort_result_list\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1623 > > averages.iter / {avg = 607; i = 4}\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1624 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:58 \u001B[90mverbose\u001B[0m #54 benchmark.sort_result_list\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1625 > > averages.iter / {avg = 619; i = 1}\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1626 > > \u001B[38;2;146;146;178m│\u001B[0m 02:19:58 \u001B[90mverbose\u001B[0m #55 benchmark.sort_result_list\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1627 > > averages.iter / {avg = 625; i = 3}\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1628 > > \u001B[38;2;146;146;178m│\u001B[0m ```\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1629 > >\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1630 > > ── spiral ──────────────────────────────────────────────────────────────────────\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1631 > > //// test\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1632 > > //// timeout=90000\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1633 > >\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1634 > > inl binary_search_semi_open_1 arr target left right =\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1635 > > inl rec body left right =\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1636 > > if left >= right\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1637 > > then None\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1638 > > else\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1639 > > inl mid = (left + right) / 2\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1640 > > inl item = index arr mid\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1641 > > if item = target\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1642 > > then Some mid\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1643 > > elif item < target\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1644 > > then loop (mid + 1) right\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1645 > > else loop left mid\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1646 > > and inl loop left right =\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1647 > > if var_is right |> not\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1648 > > then body left right\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1649 > > else\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1650 > > inl left = dyn left\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1651 > > join body left right\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1652 > > loop left right\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1653 > >\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1654 > > inl binary_search_closed_1 arr target left right =\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1655 > > inl rec body left right =\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1656 > > if left > right\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1657 > > then None\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1658 > > else\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1659 > > inl mid = (left + right) / 2\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1660 > > inl item = index arr mid\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1661 > > if item = target\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1662 > > then Some mid\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1663 > > elif item < target\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1664 > > then loop (mid + 1) right\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1665 > > else loop left (mid - 1)\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1666 > > and inl loop left right =\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1667 > > if var_is right |> not\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1668 > > then body left right\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1669 > > else\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1670 > > inl left = dyn left\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1671 > > join body left right\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1672 > > loop left right\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1673 > >\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1674 > > inl binary_search_semi_open_2 arr target left right =\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1675 > > let rec body left right =\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1676 > > if left >= right\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1677 > > then None\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1678 > > else\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1679 > > inl mid = (left + right) / 2\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1680 > > inl item = index arr mid\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1681 > > if item = target\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1682 > > then Some mid\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1683 > > elif item < target\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1684 > > then loop (mid + 1) right\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1685 > > else loop left mid\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1686 > > and inl loop left right = body left right\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1687 > > loop left right\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1688 > >\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1689 > > inl binary_search_closed_2 arr target left right =\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1690 > > let rec body left right =\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1691 > > if left > right\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1692 > > then None\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1693 > > else\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1694 > > inl mid = (left + right) / 2\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1695 > > inl item = index arr mid\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1696 > > if item = target\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1697 > > then Some mid\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1698 > > elif item < target\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1699 > > then loop (mid + 1) right\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1700 > > else loop left (mid - 1)\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1701 > > and inl loop left right = body left right\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1702 > > loop left right\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1703 > >\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1704 > > inl get_solutions () =\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1705 > > [[\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1706 > > \"semi_open_1\",\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1707 > > fun (arr, (target, len)) =>\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1708 > > binary_search_semi_open_1 arr target 0 len\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1709 > >\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1710 > > \"closed_1\",\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1711 > > fun (arr, (target, len)) =>\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1712 > > binary_search_closed_1 arr target 0 (len - 1)\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1713 > >\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1714 > > \"semi_open_2\",\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1715 > > fun (arr, (target, len)) =>\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1716 > > binary_search_semi_open_2 arr target 0 len\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1717 > >\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1718 > > \"closed_2\",\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1719 > > fun (arr, (target, len)) =>\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1720 > > binary_search_closed_2 arr target 0 (len - 1)\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1721 > > ]]\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1722 > >\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1723 > > inl rec binary_search_tests () =\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1724 > > inl arr_with_len target len arr =\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1725 > > arr, (target, (len |> optionm'.default_with fun () => length arr))\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1726 > >\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1727 > > inl test_cases = [[\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1728 > > (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 6 None), (Some 3i32)\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1729 > > (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 1 None), (Some 0i32)\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1730 > > (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 11 None), (Some 6i32)\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1731 > > (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 12 None), None\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1732 > > ((am'.init_series 1i32 1000 1 |> fun x => a x : _ int _) |> arr_with_len\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1733 > > 60 None), (Some 59)\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1734 > >\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1735 > > (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 6 (Some 7)), (Some\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1736 > > 3i32)\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1737 > > (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 1 (Some 7)), (Some\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1738 > > 0i32)\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1739 > > (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 11 (Some 7)), (Some\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1740 > > 6i32)\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1741 > > (a ;[[ 1i32; 3; 4; 6; 8; 9; 11 ]] |> arr_with_len 12 (Some 7)), None\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1742 > > ((am'.init_series 1i32 1000 1 |> fun x => a x : _ int _) |> arr_with_len\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1743 > > 60 (Some 100)), (Some 59)\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1744 > > ]]\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1745 > >\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1746 > > inl solutions = get_solutions ()\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1747 > >\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1748 > > // inl is_fast () = true\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1749 > >\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1750 > > inl count =\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1751 > > if is_fast ()\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1752 > > then 1000i32\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1753 > > else 10000000i32\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1754 > >\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1755 > > run_all (reflection.nameof { binary_search_tests }) count solutions\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1756 > > test_cases\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1757 > > |> sort_result_list\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1758 > >\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1759 > >\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1760 > > let main () =\n",
+ "00:01:35 \u001B[90mv\u001B[0m #1761 > > binary_search_tests ()\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1762 > >\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1763 > > ── [ 41.37s - stdout ] ─────────────────────────────────────────────────────────\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1764 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1765 > > \u001B[38;2;38;140;38m│\u001B[0m ```\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1766 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:00 \u001B[90mv\u001B[0m #1 benchmark.run_all / { test_name =\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1767 > > binary_search_tests; count = 10000000 }\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1768 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1769 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:00 \u001B[90mv\u001B[0m #2 benchmark.run / { input_str = struct ([|1;\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1770 > > 3; 4; 6; 8; 9; 11|], 6, 7) }\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1771 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:01 \u001B[90mv\u001B[0m #3 benchmark.run / solutions.map / { i = 1;\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1772 > > test_name = semi_open_1; time = 802 }\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1773 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:02 \u001B[90mv\u001B[0m #4 benchmark.run / solutions.map / { i = 2;\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1774 > > test_name = closed_1; time = 660 }\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1775 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:03 \u001B[90mv\u001B[0m #5 benchmark.run / solutions.map / { i = 3;\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1776 > > test_name = semi_open_2; time = 663 }\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1777 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:04 \u001B[90mv\u001B[0m #6 benchmark.run / solutions.map / { i = 4;\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1778 > > test_name = closed_2; time = 741 }\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1779 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1780 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:04 \u001B[90mv\u001B[0m #7 benchmark.run / { input_str = struct ([|1;\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1781 > > 3; 4; 6; 8; 9; 11|], 1, 7) }\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1782 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:05 \u001B[90mv\u001B[0m #8 benchmark.run / solutions.map / { i = 1;\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1783 > > test_name = semi_open_1; time = 724 }\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1784 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:06 \u001B[90mv\u001B[0m #9 benchmark.run / solutions.map / { i = 2;\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1785 > > test_name = closed_1; time = 744 }\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1786 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:07 \u001B[90mv\u001B[0m #10 benchmark.run / solutions.map / { i = 3;\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1787 > > test_name = semi_open_2; time = 762 }\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1788 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:08 \u001B[90mv\u001B[0m #11 benchmark.run / solutions.map / { i = 4;\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1789 > > test_name = closed_2; time = 831 }\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1790 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1791 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:08 \u001B[90mv\u001B[0m #12 benchmark.run / { input_str = struct\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1792 > > ([|1; 3; 4; 6; 8; 9; 11|], 11, 7) }\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1793 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:09 \u001B[90mv\u001B[0m #13 benchmark.run / solutions.map / { i = 1;\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1794 > > test_name = semi_open_1; time = 652 }\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1795 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:10 \u001B[90mv\u001B[0m #14 benchmark.run / solutions.map / { i = 2;\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1796 > > test_name = closed_1; time = 649 }\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1797 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:11 \u001B[90mv\u001B[0m #15 benchmark.run / solutions.map / { i = 3;\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1798 > > test_name = semi_open_2; time = 604 }\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1799 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:12 \u001B[90mv\u001B[0m #16 benchmark.run / solutions.map / { i = 4;\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1800 > > test_name = closed_2; time = 589 }\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1801 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1802 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:12 \u001B[90mv\u001B[0m #17 benchmark.run / { input_str = struct\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1803 > > ([|1; 3; 4; 6; 8; 9; 11|], 12, 7) }\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1804 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:13 \u001B[90mv\u001B[0m #18 benchmark.run / solutions.map / { i = 1;\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1805 > > test_name = semi_open_1; time = 609 }\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1806 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:14 \u001B[90mv\u001B[0m #19 benchmark.run / solutions.map / { i = 2;\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1807 > > test_name = closed_1; time = 649 }\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1808 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:15 \u001B[90mv\u001B[0m #20 benchmark.run / solutions.map / { i = 3;\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1809 > > test_name = semi_open_2; time = 590 }\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1810 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:16 \u001B[90mv\u001B[0m #21 benchmark.run / solutions.map / { i = 4;\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1811 > > test_name = closed_2; time = 589 }\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1812 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1813 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:16 \u001B[90mv\u001B[0m #22 benchmark.run / { input_str = struct\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1814 > > ([|1; 2; 3; 4...00; ...|], 60, 1000) }\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1815 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:17 \u001B[90mv\u001B[0m #23 benchmark.run / solutions.map / { i = 1;\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1816 > > test_name = semi_open_1; time = 627 }\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1817 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:17 \u001B[90mv\u001B[0m #24 benchmark.run / solutions.map / { i = 2;\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1818 > > test_name = closed_1; time = 654 }\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1819 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:18 \u001B[90mv\u001B[0m #25 benchmark.run / solutions.map / { i = 3;\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1820 > > test_name = semi_open_2; time = 642 }\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1821 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:19 \u001B[90mv\u001B[0m #26 benchmark.run / solutions.map / { i = 4;\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1822 > > test_name = closed_2; time = 654 }\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1823 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1824 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:19 \u001B[90mv\u001B[0m #27 benchmark.run / { input_str = struct\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1825 > > ([|1; 3; 4; 6; 8; 9; 11|], 6, 7) }\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1826 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:20 \u001B[90mv\u001B[0m #28 benchmark.run / solutions.map / { i = 1;\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1827 > > test_name = semi_open_1; time = 629 }\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1828 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:21 \u001B[90mv\u001B[0m #29 benchmark.run / solutions.map / { i = 2;\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1829 > > test_name = closed_1; time = 672 }\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1830 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:22 \u001B[90mv\u001B[0m #30 benchmark.run / solutions.map / { i = 3;\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1831 > > test_name = semi_open_2; time = 664 }\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1832 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:23 \u001B[90mv\u001B[0m #31 benchmark.run / solutions.map / { i = 4;\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1833 > > test_name = closed_2; time = 676 }\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1834 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1835 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:23 \u001B[90mv\u001B[0m #32 benchmark.run / { input_str = struct\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1836 > > ([|1; 3; 4; 6; 8; 9; 11|], 1, 7) }\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1837 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:24 \u001B[90mv\u001B[0m #33 benchmark.run / solutions.map / { i = 1;\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1838 > > test_name = semi_open_1; time = 605 }\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1839 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:25 \u001B[90mv\u001B[0m #34 benchmark.run / solutions.map / { i = 2;\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1840 > > test_name = closed_1; time = 619 }\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1841 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:26 \u001B[90mv\u001B[0m #35 benchmark.run / solutions.map / { i = 3;\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1842 > > test_name = semi_open_2; time = 596 }\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1843 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:27 \u001B[90mv\u001B[0m #36 benchmark.run / solutions.map / { i = 4;\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1844 > > test_name = closed_2; time = 596 }\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1845 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1846 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:27 \u001B[90mv\u001B[0m #37 benchmark.run / { input_str = struct\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1847 > > ([|1; 3; 4; 6; 8; 9; 11|], 11, 7) }\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1848 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:28 \u001B[90mv\u001B[0m #38 benchmark.run / solutions.map / { i = 1;\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1849 > > test_name = semi_open_1; time = 605 }\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1850 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:29 \u001B[90mv\u001B[0m #39 benchmark.run / solutions.map / { i = 2;\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1851 > > test_name = closed_1; time = 604 }\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1852 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:30 \u001B[90mv\u001B[0m #40 benchmark.run / solutions.map / { i = 3;\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1853 > > test_name = semi_open_2; time = 610 }\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1854 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:31 \u001B[90mv\u001B[0m #41 benchmark.run / solutions.map / { i = 4;\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1855 > > test_name = closed_2; time = 608 }\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1856 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1857 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:31 \u001B[90mv\u001B[0m #42 benchmark.run / { input_str = struct\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1858 > > ([|1; 3; 4; 6; 8; 9; 11|], 12, 7) }\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1859 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:32 \u001B[90mv\u001B[0m #43 benchmark.run / solutions.map / { i = 1;\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1860 > > test_name = semi_open_1; time = 677 }\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1861 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:33 \u001B[90mv\u001B[0m #44 benchmark.run / solutions.map / { i = 2;\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1862 > > test_name = closed_1; time = 663 }\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1863 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:34 \u001B[90mv\u001B[0m #45 benchmark.run / solutions.map / { i = 3;\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1864 > > test_name = semi_open_2; time = 674 }\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1865 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:35 \u001B[90mv\u001B[0m #46 benchmark.run / solutions.map / { i = 4;\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1866 > > test_name = closed_2; time = 647 }\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1867 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1868 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:35 \u001B[90mv\u001B[0m #47 benchmark.run / { input_str = struct\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1869 > > ([|1; 2; 3; 4...100; ...|], 60, 100) }\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1870 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:36 \u001B[90mv\u001B[0m #48 benchmark.run / solutions.map / { i = 1;\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1871 > > test_name = semi_open_1; time = 613 }\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1872 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:37 \u001B[90mv\u001B[0m #49 benchmark.run / solutions.map / { i = 2;\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1873 > > test_name = closed_1; time = 661 }\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1874 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:38 \u001B[90mv\u001B[0m #50 benchmark.run / solutions.map / { i = 3;\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1875 > > test_name = semi_open_2; time = 637 }\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1876 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:39 \u001B[90mv\u001B[0m #51 benchmark.run / solutions.map / { i = 4;\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1877 > > test_name = closed_2; time = 644 }\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1878 > > \u001B[38;2;38;140;38m│\u001B[0m ```\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1879 > > \u001B[38;2;38;140;38m│\u001B[0m input \t| expected\t| result \t|\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1880 > > best\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1881 > > \u001B[38;2;38;140;38m│\u001B[0m --- \t| --- \t| --- \t|\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1882 > > ---\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1883 > > \u001B[38;2;38;140;38m│\u001B[0m struct ([1; 3; 4; 6; 8; 9; 11], 6, 7) \t| US6_0 3 \t| US6_0 3 \t|\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1884 > > 2, 660\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1885 > > \u001B[38;2;38;140;38m│\u001B[0m struct ([1; 3; 4; 6; 8; 9; 11], 1, 7) \t| US6_0 0 \t| US6_0 0 \t|\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1886 > > 1, 724\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1887 > > \u001B[38;2;38;140;38m│\u001B[0m struct ([1; 3; 4; 6; 8; 9; 11], 11, 7) \t| US6_0 6 \t| US6_0 6 \t|\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1888 > > 4, 589\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1889 > > \u001B[38;2;38;140;38m│\u001B[0m struct ([1; 3; 4; 6; 8; 9; 11], 12, 7) \t| US6_1 \t| US6_1 \t|\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1890 > > 4, 589\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1891 > > \u001B[38;2;38;140;38m│\u001B[0m struct ([1; 2; 3; 4...00; ...], 60, 1000)\t| US6_0 59\t| US6_0 59\t|\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1892 > > 1, 627\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1893 > > \u001B[38;2;38;140;38m│\u001B[0m struct ([1; 3; 4; 6; 8; 9; 11], 6, 7) \t| US6_0 3 \t| US6_0 3 \t|\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1894 > > 1, 629\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1895 > > \u001B[38;2;38;140;38m│\u001B[0m struct ([1; 3; 4; 6; 8; 9; 11], 1, 7) \t| US6_0 0 \t| US6_0 0 \t|\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1896 > > 3, 596\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1897 > > \u001B[38;2;38;140;38m│\u001B[0m struct ([1; 3; 4; 6; 8; 9; 11], 11, 7) \t| US6_0 6 \t| US6_0 6 \t|\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1898 > > 2, 604\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1899 > > \u001B[38;2;38;140;38m│\u001B[0m struct ([1; 3; 4; 6; 8; 9; 11], 12, 7) \t| US6_1 \t| US6_1 \t|\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1900 > > 4, 647\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1901 > > \u001B[38;2;38;140;38m│\u001B[0m struct ([1; 2; 3; 4...100; ...], 60, 100)\t| US6_0 59\t| US6_0 59\t|\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1902 > > 1, 613\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1903 > > \u001B[38;2;38;140;38m│\u001B[0m ```\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1904 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:39 \u001B[90mv\u001B[0m #52 benchmark.sort_result_list\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1905 > > averages.iter / { i = 3; avg = 644 }\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1906 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:39 \u001B[90mv\u001B[0m #53 benchmark.sort_result_list\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1907 > > averages.iter / { i = 1; avg = 654 }\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1908 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:39 \u001B[90mv\u001B[0m #54 benchmark.sort_result_list\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1909 > > averages.iter / { i = 2; avg = 657 }\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1910 > > \u001B[38;2;38;140;38m│\u001B[0m 00:00:39 \u001B[90mv\u001B[0m #55 benchmark.sort_result_list\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1911 > > averages.iter / { i = 4; avg = 657 }\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1912 > > \u001B[38;2;38;140;38m│\u001B[0m ```\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1913 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1914 > >\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1915 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1916 > > \u001B[38;2;146;146;178m│\u001B[0m ## returnLettersWithOddCountTests\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1917 > >\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1918 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1919 > > \u001B[38;2;146;146;178m│\u001B[0m Test: ReturnLettersWithOddCount\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1920 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1921 > > \u001B[38;2;146;146;178m│\u001B[0m Solution: 1\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1922 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. A. Time: 645L\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1923 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1924 > > \u001B[38;2;146;146;178m│\u001B[0m Solution: 2\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1925 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. A. Time: 663L\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1926 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1927 > > \u001B[38;2;146;146;178m│\u001B[0m Solution: 3\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1928 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. A. Time: 680L\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1929 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1930 > > \u001B[38;2;146;146;178m│\u001B[0m Solution: 9\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1931 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. A. Time: 730L\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1932 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1933 > > \u001B[38;2;146;146;178m│\u001B[0m Solution: 10\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1934 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. A. Time: 815L\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1935 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1936 > > \u001B[38;2;146;146;178m│\u001B[0m Input | Expected | Result | Best\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1937 > > \u001B[38;2;146;146;178m│\u001B[0m --- | --- | --- | ---\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1938 > > \u001B[38;2;146;146;178m│\u001B[0m 1 | a | a | (1, 645)\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1939 > > \u001B[38;2;146;146;178m│\u001B[0m 2 | ba | ba | (1, 663)\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1940 > > \u001B[38;2;146;146;178m│\u001B[0m 3 | aaa | aaa | (1, 680)\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1941 > > \u001B[38;2;146;146;178m│\u001B[0m 9 | aaaaaaaaa | aaaaaaaaa | (1, 730)\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1942 > > \u001B[38;2;146;146;178m│\u001B[0m 10 | baaaaaaaaa | baaaaaaaaa | (1, 815)\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1943 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1944 > > \u001B[38;2;146;146;178m│\u001B[0m Averages\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1945 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. Average Time: 706L\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1946 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1947 > > \u001B[38;2;146;146;178m│\u001B[0m Ranking\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1948 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. Average Time: 706L\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1949 > >\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1950 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1951 > > //// test\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1952 > >\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1953 > > let solutions = [[\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1954 > > \"A\",\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1955 > > fun n ->\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1956 > > let mutable _builder = StringBuilder (new string('a', n))\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1957 > > if n % 2 = 0 then\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1958 > > _builder.[[0]] <- 'b'\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1959 > >\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1960 > > _builder.ToString ()\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1961 > > ]]\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1962 > > let testCases = seq {\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1963 > > 1, \"a\"\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1964 > > 2, \"ba\"\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1965 > > 3, \"aaa\"\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1966 > > 9, \"aaaaaaaaa\"\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1967 > > 10, \"baaaaaaaaa\"\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1968 > > }\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1969 > > let rec returnLettersWithOddCountTests =\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1970 > > runAll (nameof returnLettersWithOddCountTests) _count solutions testCases\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1971 > > returnLettersWithOddCountTests\n",
+ "00:02:16 \u001B[90mv\u001B[0m #1972 > > |> sortResultList\n",
+ "00:02:18 \u001B[90mv\u001B[0m #1973 > >\n",
+ "00:02:18 \u001B[90mv\u001B[0m #1974 > > ── [ 1.67s - stdout ] ──────────────────────────────────────────────────────────\n",
+ "00:02:18 \u001B[90mv\u001B[0m #1975 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:18 \u001B[90mv\u001B[0m #1976 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:18 \u001B[90mv\u001B[0m #1977 > > \u001B[38;2;38;140;38m│\u001B[0m Test: returnLettersWithOddCountTests\n",
+ "00:02:18 \u001B[90mv\u001B[0m #1978 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:18 \u001B[90mv\u001B[0m #1979 > > \u001B[38;2;38;140;38m│\u001B[0m Solution: 1\n",
+ "00:02:18 \u001B[90mv\u001B[0m #1980 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 1. A. Time: 1L\n",
+ "00:02:18 \u001B[90mv\u001B[0m #1981 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:18 \u001B[90mv\u001B[0m #1982 > > \u001B[38;2;38;140;38m│\u001B[0m Solution: 2\n",
+ "00:02:18 \u001B[90mv\u001B[0m #1983 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 1. A. Time: 0L\n",
+ "00:02:18 \u001B[90mv\u001B[0m #1984 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:18 \u001B[90mv\u001B[0m #1985 > > \u001B[38;2;38;140;38m│\u001B[0m Solution: 3\n",
+ "00:02:18 \u001B[90mv\u001B[0m #1986 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 1. A. Time: 0L\n",
+ "00:02:18 \u001B[90mv\u001B[0m #1987 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:18 \u001B[90mv\u001B[0m #1988 > > \u001B[38;2;38;140;38m│\u001B[0m Solution: 9\n",
+ "00:02:18 \u001B[90mv\u001B[0m #1989 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 1. A. Time: 0L\n",
+ "00:02:18 \u001B[90mv\u001B[0m #1990 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:18 \u001B[90mv\u001B[0m #1991 > > \u001B[38;2;38;140;38m│\u001B[0m Solution: 10\n",
+ "00:02:18 \u001B[90mv\u001B[0m #1992 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 1. A. Time: 0L\n",
+ "00:02:18 \u001B[90mv\u001B[0m #1993 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:18 \u001B[90mv\u001B[0m #1994 > > \u001B[38;2;38;140;38m│\u001B[0m Input\t| Expected \t| Result \t| Best\n",
+ "00:02:18 \u001B[90mv\u001B[0m #1995 > > \u001B[38;2;38;140;38m│\u001B[0m --- \t| --- \t| --- \t| ---\n",
+ "00:02:18 \u001B[90mv\u001B[0m #1996 > > \u001B[38;2;38;140;38m│\u001B[0m 1 \t| a \t| a \t| (1, 1)\n",
+ "00:02:18 \u001B[90mv\u001B[0m #1997 > > \u001B[38;2;38;140;38m│\u001B[0m 2 \t| ba \t| ba \t| (1, 0)\n",
+ "00:02:18 \u001B[90mv\u001B[0m #1998 > > \u001B[38;2;38;140;38m│\u001B[0m 3 \t| aaa \t| aaa \t| (1, 0)\n",
+ "00:02:18 \u001B[90mv\u001B[0m #1999 > > \u001B[38;2;38;140;38m│\u001B[0m 9 \t| aaaaaaaaa \t| aaaaaaaaa \t| (1, 0)\n",
+ "00:02:18 \u001B[90mv\u001B[0m #2000 > > \u001B[38;2;38;140;38m│\u001B[0m 10 \t| baaaaaaaaa\t| baaaaaaaaa\t| (1, 0)\n",
+ "00:02:18 \u001B[90mv\u001B[0m #2001 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:18 \u001B[90mv\u001B[0m #2002 > > \u001B[38;2;38;140;38m│\u001B[0m Average Ranking\n",
+ "00:02:18 \u001B[90mv\u001B[0m #2003 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 1. Average Time: 0L\n",
+ "00:02:18 \u001B[90mv\u001B[0m #2004 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:18 \u001B[90mv\u001B[0m #2005 > >\n",
+ "00:02:18 \u001B[90mv\u001B[0m #2006 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
+ "00:02:18 \u001B[90mv\u001B[0m #2007 > > \u001B[38;2;146;146;178m│\u001B[0m ## hasAnyPairCloseToEachotherTests\n",
+ "00:02:18 \u001B[90mv\u001B[0m #2008 > >\n",
+ "00:02:18 \u001B[90mv\u001B[0m #2009 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
+ "00:02:18 \u001B[90mv\u001B[0m #2010 > > \u001B[38;2;146;146;178m│\u001B[0m Test: HasAnyPairCloseToEachother\n",
+ "00:02:18 \u001B[90mv\u001B[0m #2011 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:02:18 \u001B[90mv\u001B[0m #2012 > > \u001B[38;2;146;146;178m│\u001B[0m Solution: 0\n",
+ "00:02:18 \u001B[90mv\u001B[0m #2013 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. A. Time: 137L\n",
+ "00:02:18 \u001B[90mv\u001B[0m #2014 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:02:18 \u001B[90mv\u001B[0m #2015 > > \u001B[38;2;146;146;178m│\u001B[0m Solution: 1,2\n",
+ "00:02:18 \u001B[90mv\u001B[0m #2016 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. A. Time: 186L\n",
+ "00:02:18 \u001B[90mv\u001B[0m #2017 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:02:18 \u001B[90mv\u001B[0m #2018 > > \u001B[38;2;146;146;178m│\u001B[0m Solution: 3,5\n",
+ "00:02:18 \u001B[90mv\u001B[0m #2019 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. A. Time: 206L\n",
+ "00:02:18 \u001B[90mv\u001B[0m #2020 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:02:18 \u001B[90mv\u001B[0m #2021 > > \u001B[38;2;146;146;178m│\u001B[0m Solution: 3,4,6\n",
+ "00:02:18 \u001B[90mv\u001B[0m #2022 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. A. Time: 149L\n",
+ "00:02:18 \u001B[90mv\u001B[0m #2023 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:02:18 \u001B[90mv\u001B[0m #2024 > > \u001B[38;2;146;146;178m│\u001B[0m Solution: 2,4,6\n",
+ "00:02:18 \u001B[90mv\u001B[0m #2025 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. A. Time: 150L\n",
+ "00:02:18 \u001B[90mv\u001B[0m #2026 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:02:18 \u001B[90mv\u001B[0m #2027 > > \u001B[38;2;146;146;178m│\u001B[0m Input | Expected | Result | Best\n",
+ "00:02:18 \u001B[90mv\u001B[0m #2028 > > \u001B[38;2;146;146;178m│\u001B[0m --- | --- | --- | ---\n",
+ "00:02:18 \u001B[90mv\u001B[0m #2029 > > \u001B[38;2;146;146;178m│\u001B[0m 0 | False | False | (1, 137)\n",
+ "00:02:18 \u001B[90mv\u001B[0m #2030 > > \u001B[38;2;146;146;178m│\u001B[0m 1,2 | True | True | (1, 186)\n",
+ "00:02:18 \u001B[90mv\u001B[0m #2031 > > \u001B[38;2;146;146;178m│\u001B[0m 3,5 | False | False | (1, 206)\n",
+ "00:02:18 \u001B[90mv\u001B[0m #2032 > > \u001B[38;2;146;146;178m│\u001B[0m 3,4,6 | True | True | (1, 149)\n",
+ "00:02:18 \u001B[90mv\u001B[0m #2033 > > \u001B[38;2;146;146;178m│\u001B[0m 2,4,6 | False | False | (1, 150)\n",
+ "00:02:18 \u001B[90mv\u001B[0m #2034 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:02:18 \u001B[90mv\u001B[0m #2035 > > \u001B[38;2;146;146;178m│\u001B[0m Averages\n",
+ "00:02:18 \u001B[90mv\u001B[0m #2036 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. Average Time: 165L\n",
+ "00:02:18 \u001B[90mv\u001B[0m #2037 > > \u001B[38;2;146;146;178m│\u001B[0m\n",
+ "00:02:18 \u001B[90mv\u001B[0m #2038 > > \u001B[38;2;146;146;178m│\u001B[0m Ranking\n",
+ "00:02:18 \u001B[90mv\u001B[0m #2039 > > \u001B[38;2;146;146;178m│\u001B[0m Test case 1. Average Time: 165L\n",
+ "00:02:18 \u001B[90mv\u001B[0m #2040 > >\n",
+ "00:02:18 \u001B[90mv\u001B[0m #2041 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
+ "00:02:18 \u001B[90mv\u001B[0m #2042 > > //// test\n",
+ "00:02:18 \u001B[90mv\u001B[0m #2043 > >\n",
+ "00:02:18 \u001B[90mv\u001B[0m #2044 > > let solutions = [[\n",
+ "00:02:18 \u001B[90mv\u001B[0m #2045 > > \"A\",\n",
+ "00:02:18 \u001B[90mv\u001B[0m #2046 > > fun (a: int[[]]) ->\n",
+ "00:02:18 \u001B[90mv\u001B[0m #2047 > > let indices = System.Linq.Enumerable.Range(0, a.Length) |>\n",
+ "00:02:18 \u001B[90mv\u001B[0m #2048 > > System.Linq.Enumerable.ToArray\n",
+ "00:02:18 \u001B[90mv\u001B[0m #2049 > > System.Array.Sort (a, indices)\n",
+ "00:02:18 \u001B[90mv\u001B[0m #2050 > >\n",
+ "00:02:18 \u001B[90mv\u001B[0m #2051 > > indices\n",
+ "00:02:18 \u001B[90mv\u001B[0m #2052 > > |> Array.take (a.Length - 1)\n",
+ "00:02:18 \u001B[90mv\u001B[0m #2053 > > |> Array.exists (fun i -> a.[[i + 1]] - a.[[i]] = 1)\n",
+ "00:02:18 \u001B[90mv\u001B[0m #2054 > > ]]\n",
+ "00:02:18 \u001B[90mv\u001B[0m #2055 > > let testCases = seq {\n",
+ "00:02:18 \u001B[90mv\u001B[0m #2056 > > [[| 0 |]], false\n",
+ "00:02:18 \u001B[90mv\u001B[0m #2057 > > [[| 1; 2 |]], true\n",
+ "00:02:18 \u001B[90mv\u001B[0m #2058 > > [[| 3; 5 |]], false\n",
+ "00:02:18 \u001B[90mv\u001B[0m #2059 > > [[| 3; 4; 6 |]], true\n",
+ "00:02:18 \u001B[90mv\u001B[0m #2060 > > [[| 2; 4; 6 |]], false\n",
+ "00:02:18 \u001B[90mv\u001B[0m #2061 > > }\n",
+ "00:02:18 \u001B[90mv\u001B[0m #2062 > > let rec hasAnyPairCloseToEachotherTests =\n",
+ "00:02:18 \u001B[90mv\u001B[0m #2063 > > runAll (nameof hasAnyPairCloseToEachotherTests) _count solutions testCases\n",
+ "00:02:18 \u001B[90mv\u001B[0m #2064 > > hasAnyPairCloseToEachotherTests\n",
+ "00:02:18 \u001B[90mv\u001B[0m #2065 > > |> sortResultList\n",
+ "00:02:20 \u001B[90mv\u001B[0m #2066 > >\n",
+ "00:02:20 \u001B[90mv\u001B[0m #2067 > > ── [ 1.63s - stdout ] ──────────────────────────────────────────────────────────\n",
+ "00:02:20 \u001B[90mv\u001B[0m #2068 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:20 \u001B[90mv\u001B[0m #2069 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:20 \u001B[90mv\u001B[0m #2070 > > \u001B[38;2;38;140;38m│\u001B[0m Test: hasAnyPairCloseToEachotherTests\n",
+ "00:02:20 \u001B[90mv\u001B[0m #2071 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:20 \u001B[90mv\u001B[0m #2072 > > \u001B[38;2;38;140;38m│\u001B[0m Solution: 0\n",
+ "00:02:20 \u001B[90mv\u001B[0m #2073 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 1. A. Time: 2L\n",
+ "00:02:20 \u001B[90mv\u001B[0m #2074 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:20 \u001B[90mv\u001B[0m #2075 > > \u001B[38;2;38;140;38m│\u001B[0m Solution: 1,2\n",
+ "00:02:20 \u001B[90mv\u001B[0m #2076 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 1. A. Time: 0L\n",
+ "00:02:20 \u001B[90mv\u001B[0m #2077 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:20 \u001B[90mv\u001B[0m #2078 > > \u001B[38;2;38;140;38m│\u001B[0m Solution: 3,5\n",
+ "00:02:20 \u001B[90mv\u001B[0m #2079 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 1. A. Time: 0L\n",
+ "00:02:20 \u001B[90mv\u001B[0m #2080 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:20 \u001B[90mv\u001B[0m #2081 > > \u001B[38;2;38;140;38m│\u001B[0m Solution: 3,4,6\n",
+ "00:02:20 \u001B[90mv\u001B[0m #2082 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 1. A. Time: 0L\n",
+ "00:02:20 \u001B[90mv\u001B[0m #2083 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:20 \u001B[90mv\u001B[0m #2084 > > \u001B[38;2;38;140;38m│\u001B[0m Solution: 2,4,6\n",
+ "00:02:20 \u001B[90mv\u001B[0m #2085 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 1. A. Time: 0L\n",
+ "00:02:20 \u001B[90mv\u001B[0m #2086 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:20 \u001B[90mv\u001B[0m #2087 > > \u001B[38;2;38;140;38m│\u001B[0m Input\t| Expected\t| Result\t| Best\n",
+ "00:02:20 \u001B[90mv\u001B[0m #2088 > > \u001B[38;2;38;140;38m│\u001B[0m --- \t| --- \t| --- \t| ---\n",
+ "00:02:20 \u001B[90mv\u001B[0m #2089 > > \u001B[38;2;38;140;38m│\u001B[0m 0 \t| False \t| False \t| (1, 2)\n",
+ "00:02:20 \u001B[90mv\u001B[0m #2090 > > \u001B[38;2;38;140;38m│\u001B[0m 1,2 \t| True \t| True \t| (1, 0)\n",
+ "00:02:20 \u001B[90mv\u001B[0m #2091 > > \u001B[38;2;38;140;38m│\u001B[0m 3,5 \t| False \t| False \t| (1, 0)\n",
+ "00:02:20 \u001B[90mv\u001B[0m #2092 > > \u001B[38;2;38;140;38m│\u001B[0m 3,4,6\t| True \t| True \t| (1, 0)\n",
+ "00:02:20 \u001B[90mv\u001B[0m #2093 > > \u001B[38;2;38;140;38m│\u001B[0m 2,4,6\t| False \t| False \t| (1, 0)\n",
+ "00:02:20 \u001B[90mv\u001B[0m #2094 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:20 \u001B[90mv\u001B[0m #2095 > > \u001B[38;2;38;140;38m│\u001B[0m Average Ranking\n",
+ "00:02:20 \u001B[90mv\u001B[0m #2096 > > \u001B[38;2;38;140;38m│\u001B[0m Test case 1. Average Time: 0L\n",
+ "00:02:20 \u001B[90mv\u001B[0m #2097 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
+ "00:02:20 \u001B[90mv\u001B[0m #2098 > 00:02:19 \u001B[90mv\u001B[39m #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 84693 }\n",
+ "00:02:20 \u001B[90mv\u001B[0m #2099 > 00:02:19 \u001B[94md\u001B[39m #4 runtime.execute_with_options / { file_name = jupyter; arguments = [\"nbconvert\", \"c:/home/git/polyglot/apps/perf/Perf.dib.ipynb\", \"--to\", \"html\", \"--HTMLExporter.theme=dark\"]; options = { command = jupyter nbconvert \"c:/home/git/polyglot/apps/perf/Perf.dib.ipynb\" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }\n",
+ "00:02:22 \u001B[90mv\u001B[0m #2100 > 00:02:20 \u001B[90mv\u001B[39m #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/apps/perf/Perf.dib.ipynb to html\n",
+ "00:02:22 \u001B[90mv\u001B[0m #2101 > 00:02:20 \u001B[90mv\u001B[39m #6 ! C:\\Users\\i574n\\scoop\\apps\\python312\\current\\Lib\\site-packages\\nbformat\\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.\n",
+ "00:02:22 \u001B[90mv\u001B[0m #2102 > 00:02:20 \u001B[90mv\u001B[39m #7 ! validate(nb)\n",
+ "00:02:22 \u001B[90mv\u001B[0m #2103 > 00:02:21 \u001B[90mv\u001B[39m #8 ! C:\\Users\\i574n\\scoop\\apps\\python312\\current\\Lib\\site-packages\\nbconvert\\filters\\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3\n",
+ "00:02:22 \u001B[90mv\u001B[0m #2104 > 00:02:21 \u001B[90mv\u001B[39m #9 ! return _pygments_highlight(\n",
+ "00:02:24 \u001B[90mv\u001B[0m #2105 > 00:02:23 \u001B[90mv\u001B[39m #10 ! [NbConvertApp] Writing 458087 bytes to c:\\home\\git\\polyglot\\apps\\perf\\Perf.dib.html\n",
+ "00:02:24 \u001B[90mv\u001B[0m #2106 > 00:02:23 \u001B[90mv\u001B[39m #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 848 }\n",
+ "00:02:24 \u001B[90mv\u001B[0m #2107 > 00:02:23 \u001B[94md\u001B[39m #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 848 }\n",
+ "00:02:24 \u001B[90mv\u001B[0m #2108 > 00:02:23 \u001B[94md\u001B[39m #13 runtime.execute_with_options / { file_name = pwsh; arguments = [\"-c\", \"$counter = 1; $path = 'c:/home/git/polyglot/apps/perf/Perf.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\\\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path\"]; options = { command = pwsh -c \"$counter = 1; $path = 'c:/home/git/polyglot/apps/perf/Perf.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path\"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }\n",
+ "00:02:24 \u001B[90mv\u001B[0m #2109 > 00:02:23 \u001B[90mv\u001B[39m #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 }\n",
+ "00:02:24 \u001B[90mv\u001B[0m #2110 > 00:02:23 \u001B[94md\u001B[39m #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 }\n",
+ "00:02:24 \u001B[90mv\u001B[0m #2111 > 00:02:23 \u001B[94md\u001B[39m #16 spiral.run / dib / { exit_code = 0; result_length = 85600 }\n",
+ "00:02:24 \u001B[94md\u001B[0m #2112 runtime.execute_with_options_async / { exit_code = 0; output_length = 92297 }\n",
+ "00:02:24 \u001B[94md\u001B[0m #1 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path Perf.dib --retries 3\n",
"00:00:00 \u001B[94md\u001B[0m #1 writeDibCode / output: Fs / path: Perf.dib\n",
- "00:00:00 \u001B[94md\u001B[0m #2 parseDibCode / output: Fs / file: Perf.dib\n"
- ]
- }
- ],
- "source": [
- "{ pwsh ../apps/perf/build.ps1 } | Invoke-Block"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "dotnet_interactive": {
- "language": "pwsh"
- },
- "polyglot_notebook": {
- "kernelName": "pwsh"
- }
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "00:00:00 \u001B[90mv\u001B[0m #1 async.run_with_timeout_async / { timeout = 180 }\n",
- "00:00:00 \u001B[94md\u001B[0m #1 runtime.execute_with_options_async / { file_name = dotnet; arguments = US5_0\n",
- " \"\"C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral Language 2\\artifacts\\bin\\The Spiral Language 2\\release\\Spiral.dll\" --port 13805 --default-int i32 --default-float f64\"; options = { command = dotnet \"C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral Language 2\\artifacts\\bin\\The Spiral Language 2\\release\\Spiral.dll\" --port 13805 --default-int i32 --default-float f64; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = Some ; stdin = None; trace = true; working_directory = Some \"C:\\home\\git\\polyglot\" } }\n",
- "00:00:00 \u001B[90mv\u001B[0m #2 > 00:00:00 \u001B[94md\u001B[0m #1 pwd: C:\\home\\git\\polyglot\n",
- "00:00:00 \u001B[90mv\u001B[0m #3 > 00:00:00 \u001B[94md\u001B[0m #2 dllPath: C:\\home\\git\\polyglot\\deps\\The-Spiral-Language\\The Spiral Language 2\\artifacts\\bin\\The Spiral Language 2\\release\n",
- "00:00:00 \u001B[90mv\u001B[0m #4 > 00:00:00 \u001B[94md\u001B[0m #3 targetDir: C:\\home\\git\\polyglot\\target/spiral_Eval\n",
- "00:00:01 \u001B[90mv\u001B[0m #2 async.run_with_timeout_async / { timeout = 100 }\n",
- "00:00:01 \u001B[90mv\u001B[0m #3 async.run_with_timeout_async / { timeout = 100 }\n",
- "00:00:01 \u001B[90mv\u001B[0m #5 > Starting the Spiral Server. It is bound to: http://localhost:13805\n",
- "00:00:01 \u001B[90mv\u001B[0m #4 async.run_with_timeout_async / { timeout = 100 }\n",
- "00:00:01 \u001B[90mv\u001B[0m #1 Supervisor.sendJson / port: 13805 / json: {\"Ping\":true} / result:\n",
- "00:00:01 \u001B[90mv\u001B[0m #2 Supervisor.awaitCompiler / Ping / result: 'Some null' / port: 13805 / retry: 1\n",
- "00:00:01 \u001B[90mv\u001B[0m #6 > Server bound to: http://localhost:13805\n",
- "00:00:01 \u001B[94md\u001B[0m #7 runtime.execute_with_options_async / { file_name = ../../deps/spiral/workspace/target/release/spiral.exe; arguments = US5_0 \"dib --path DirTreeHtml.dib\"; options = { command = ../../deps/spiral/workspace/target/release/spiral.exe dib --path DirTreeHtml.dib; cancellation_token = Some System.Threading.CancellationToken; environment_variables = [||]; on_line = None; stdin = None; trace = true; working_directory = None } }\n",
- "00:00:01 \u001B[90mv\u001B[0m #8 > 00:00:00 \u001B[94md\u001B[39m #1 spiral.main / { args = Array(MutCell([\"dib\", \"--path\", \"DirTreeHtml.dib\"])) }\n",
- "00:00:01 \u001B[90mv\u001B[0m #9 > 00:00:00 \u001B[94md\u001B[39m #2 runtime.execute_with_options / { file_name = dotnet; arguments = [\"repl\", \"--exit-after-run\", \"--run\", \"c:/home/git/polyglot/apps/dir-tree-html/DirTreeHtml.dib\", \"--output-path\", \"c:/home/git/polyglot/apps/dir-tree-html/DirTreeHtml.dib.ipynb\"]; options = { command = dotnet repl --exit-after-run --run \"c:/home/git/polyglot/apps/dir-tree-html/DirTreeHtml.dib\" --output-path \"c:/home/git/polyglot/apps/dir-tree-html/DirTreeHtml.dib.ipynb\"; cancellation_token = None; environment_variables = Array(MutCell([(\"TRACE_LEVEL\", \"Verbose\"), (\"AUTOMATION\", \"True\")])); on_line = None; stdin = None; trace = false; working_directory = None } }\n",
- "00:00:03 \u001B[90mv\u001B[0m #10 > >\n",
- "00:00:03 \u001B[90mv\u001B[0m #11 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:03 \u001B[90mv\u001B[0m #12 > > \u001B[38;2;146;146;178m│\u001B[0m # DirTreeHtml (Polyglot)\n",
- "00:00:07 \u001B[90mv\u001B[0m #13 > >\n",
- "00:00:07 \u001B[90mv\u001B[0m #14 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:00:07 \u001B[90mv\u001B[0m #15 > > #r\n",
- "00:00:07 \u001B[90mv\u001B[0m #16 > > @\"../../../../../../../.nuget/packages/fsharp.control.asyncseq/3.2.1/lib/netstan\n",
- "00:00:07 \u001B[90mv\u001B[0m #17 > > dard2.1/FSharp.Control.AsyncSeq.dll\"\n",
- "00:00:07 \u001B[90mv\u001B[0m #18 > > #r\n",
- "00:00:07 \u001B[90mv\u001B[0m #19 > > @\"../../../../../../../.nuget/packages/system.reactive/6.0.1-preview.1/lib/net6.\n",
- "00:00:07 \u001B[90mv\u001B[0m #20 > > 0/System.Reactive.dll\"\n",
- "00:00:07 \u001B[90mv\u001B[0m #21 > > #r\n",
- "00:00:07 \u001B[90mv\u001B[0m #22 > > @\"../../../../../../../.nuget/packages/system.reactive.linq/6.0.1-preview.1/lib\n",
- "00:00:07 \u001B[90mv\u001B[0m #23 > > netstandard2.0/System.Reactive.Linq.dll\"\n",
- "00:00:07 \u001B[90mv\u001B[0m #24 > > #r\n",
- "00:00:07 \u001B[90mv\u001B[0m #25 > > @\"../../../../../../../.nuget/packages/argu/6.2.4/lib/netstandard2.0/Argu.dll\"\n",
- "00:00:07 \u001B[90mv\u001B[0m #26 > > #r\n",
- "00:00:07 \u001B[90mv\u001B[0m #27 > > @\"../../../../../../../.nuget/packages/falco.markup/1.1.1/lib/netstandard2.0/Fal\n",
- "00:00:07 \u001B[90mv\u001B[0m #28 > > co.Markup.dll\"\n",
- "00:00:20 \u001B[90mv\u001B[0m #29 > >\n",
- "00:00:20 \u001B[90mv\u001B[0m #30 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:00:20 \u001B[90mv\u001B[0m #31 > > #if !INTERACTIVE\n",
- "00:00:20 \u001B[90mv\u001B[0m #32 > > open Lib\n",
- "00:00:20 \u001B[90mv\u001B[0m #33 > > #endif\n",
- "00:00:20 \u001B[90mv\u001B[0m #34 > >\n",
- "00:00:20 \u001B[90mv\u001B[0m #35 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:00:20 \u001B[90mv\u001B[0m #36 > > open SpiralFileSystem.Operators\n",
- "00:00:20 \u001B[90mv\u001B[0m #37 > > open Falco.Markup\n",
- "00:00:20 \u001B[90mv\u001B[0m #38 > >\n",
- "00:00:20 \u001B[90mv\u001B[0m #39 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:00:20 \u001B[90mv\u001B[0m #40 > > type FileSystemNode =\n",
- "00:00:20 \u001B[90mv\u001B[0m #41 > > | File of string * string * int64\n",
- "00:00:20 \u001B[90mv\u001B[0m #42 > > | Folder of string * string * FileSystemNode list\n",
- "00:00:20 \u001B[90mv\u001B[0m #43 > > | Root of FileSystemNode list\n",
- "00:00:20 \u001B[90mv\u001B[0m #44 > >\n",
- "00:00:20 \u001B[90mv\u001B[0m #45 > > let rec scanDirectory isRoot (basePath : string) (path : string) =\n",
- "00:00:20 \u001B[90mv\u001B[0m #46 > > let relativePath =\n",
- "00:00:20 \u001B[90mv\u001B[0m #47 > > path\n",
- "00:00:20 \u001B[90mv\u001B[0m #48 > > |> SpiralSm.replace basePath \"\"\n",
- "00:00:20 \u001B[90mv\u001B[0m #49 > > |> SpiralSm.replace \"\\\\\" \"/\"\n",
- "00:00:20 \u001B[90mv\u001B[0m #50 > > |> SpiralSm.replace \"//\" \"/\"\n",
- "00:00:20 \u001B[90mv\u001B[0m #51 > > |> SpiralSm.trim_start [[| '/' |]]\n",
- "00:00:20 \u001B[90mv\u001B[0m #52 > >\n",
- "00:00:20 \u001B[90mv\u001B[0m #53 > > let directories =\n",
- "00:00:20 \u001B[90mv\u001B[0m #54 > > path\n",
- "00:00:20 \u001B[90mv\u001B[0m #55 > > |> System.IO.Directory.GetDirectories\n",
- "00:00:20 \u001B[90mv\u001B[0m #56 > > |> Array.toList\n",
- "00:00:20 \u001B[90mv\u001B[0m #57 > > |> List.sort\n",
- "00:00:20 \u001B[90mv\u001B[0m #58 > > |> List.map (scanDirectory false basePath)\n",
- "00:00:20 \u001B[90mv\u001B[0m #59 > > let files =\n",
- "00:00:20 \u001B[90mv\u001B[0m #60 > > path\n",
- "00:00:20 \u001B[90mv\u001B[0m #61 > > |> System.IO.Directory.GetFiles\n",
- "00:00:20 \u001B[90mv\u001B[0m #62 > > |> Array.toList\n",
- "00:00:20 \u001B[90mv\u001B[0m #63 > > |> List.sort\n",
- "00:00:20 \u001B[90mv\u001B[0m #64 > > |> List.map (fun f -> File (System.IO.Path.GetFileName f, relativePath,\n",
- "00:00:20 \u001B[90mv\u001B[0m #65 > > System.IO.FileInfo(f).Length))\n",
- "00:00:20 \u001B[90mv\u001B[0m #66 > >\n",
- "00:00:20 \u001B[90mv\u001B[0m #67 > > let children = directories @ files\n",
- "00:00:20 \u001B[90mv\u001B[0m #68 > > if isRoot\n",
- "00:00:20 \u001B[90mv\u001B[0m #69 > > then Root children\n",
- "00:00:20 \u001B[90mv\u001B[0m #70 > > else Folder (path |> System.IO.Path.GetFileName, relativePath, children)\n",
- "00:00:20 \u001B[90mv\u001B[0m #71 > >\n",
- "00:00:20 \u001B[90mv\u001B[0m #72 > > let rec generateHtml fsNode =\n",
- "00:00:20 \u001B[90mv\u001B[0m #73 > > let sizeLabel size =\n",
- "00:00:20 \u001B[90mv\u001B[0m #74 > > match float size with\n",
- "00:00:20 \u001B[90mv\u001B[0m #75 > > | size when size > 1024.0 * 1024.0 -> $\"%.2f{size / 1024.0 / 1024.0} MB\"\n",
- "00:00:20 \u001B[90mv\u001B[0m #76 > > | size when size > 1024.0 -> $\"%.2f{size / 1024.0} KB\"\n",
- "00:00:20 \u001B[90mv\u001B[0m #77 > > | size -> $\"%.2f{size} B\"\n",
- "00:00:20 \u001B[90mv\u001B[0m #78 > > match fsNode with\n",
- "00:00:20 \u001B[90mv\u001B[0m #79 > > | File (fileName, relativePath, size) ->\n",
- "00:00:20 \u001B[90mv\u001B[0m #80 > > Elem.div [[]] [[\n",
- "00:00:20 \u001B[90mv\u001B[0m #81 > > Text.raw \"📄 \"\n",
- "00:00:20 \u001B[90mv\u001B[0m #82 > > Elem.a [[\n",
- "00:00:20 \u001B[90mv\u001B[0m #83 > > Attr.href $\"\"\"{relativePath}{if relativePath = \"\" then \"\" else\n",
- "00:00:20 \u001B[90mv\u001B[0m #84 > > \"/\"}{fileName}\"\"\"\n",
- "00:00:20 \u001B[90mv\u001B[0m #85 > > ]] [[\n",
- "00:00:20 \u001B[90mv\u001B[0m #86 > > Text.raw fileName\n",
- "00:00:20 \u001B[90mv\u001B[0m #87 > > ]]\n",
- "00:00:20 \u001B[90mv\u001B[0m #88 > > Elem.span [[]] [[\n",
- "00:00:20 \u001B[90mv\u001B[0m #89 > > Text.raw $\" ({size |> sizeLabel})\"\n",
- "00:00:20 \u001B[90mv\u001B[0m #90 > > ]]\n",
- "00:00:20 \u001B[90mv\u001B[0m #91 > > ]]\n",
- "00:00:20 \u001B[90mv\u001B[0m #92 > > | Folder (folderName, relativePath, children) ->\n",
- "00:00:20 \u001B[90mv\u001B[0m #93 > > let size =\n",
- "00:00:20 \u001B[90mv\u001B[0m #94 > > let rec loop children =\n",
- "00:00:20 \u001B[90mv\u001B[0m #95 > > children\n",
- "00:00:20 \u001B[90mv\u001B[0m #96 > > |> List.sumBy (function\n",
- "00:00:20 \u001B[90mv\u001B[0m #97 > > | File (_, _, size) -> size\n",
- "00:00:20 \u001B[90mv\u001B[0m #98 > > | Folder (_, _, children)\n",
- "00:00:20 \u001B[90mv\u001B[0m #99 > > | Root children -> loop children\n",
- "00:00:20 \u001B[90mv\u001B[0m #100 > > )\n",
- "00:00:20 \u001B[90mv\u001B[0m #101 > > loop children\n",
- "00:00:20 \u001B[90mv\u001B[0m #102 > > Elem.details [[\n",
- "00:00:20 \u001B[90mv\u001B[0m #103 > > Attr.open' \"true\"\n",
- "00:00:20 \u001B[90mv\u001B[0m #104 > > ]] [[\n",
- "00:00:20 \u001B[90mv\u001B[0m #105 > > Elem.summary [[]] [[\n",
- "00:00:20 \u001B[90mv\u001B[0m #106 > > Text.raw \"📂 \"\n",
- "00:00:20 \u001B[90mv\u001B[0m #107 > > Elem.a [[\n",
- "00:00:20 \u001B[90mv\u001B[0m #108 > > Attr.href relativePath\n",
- "00:00:20 \u001B[90mv\u001B[0m #109 > > ]] [[\n",
- "00:00:20 \u001B[90mv\u001B[0m #110 > > Text.raw folderName\n",
- "00:00:20 \u001B[90mv\u001B[0m #111 > > ]]\n",
- "00:00:20 \u001B[90mv\u001B[0m #112 > > Elem.span [[]] [[\n",
- "00:00:20 \u001B[90mv\u001B[0m #113 > > Text.raw $\" ({size |> sizeLabel})\"\n",
- "00:00:20 \u001B[90mv\u001B[0m #114 > > ]]\n",
- "00:00:20 \u001B[90mv\u001B[0m #115 > > ]]\n",
- "00:00:20 \u001B[90mv\u001B[0m #116 > > Elem.div [[]] [[\n",
- "00:00:20 \u001B[90mv\u001B[0m #117 > > yield! children |> List.map generateHtml\n",
- "00:00:20 \u001B[90mv\u001B[0m #118 > > ]]\n",
- "00:00:20 \u001B[90mv\u001B[0m #119 > > ]]\n",
- "00:00:20 \u001B[90mv\u001B[0m #120 > > | Root children ->\n",
- "00:00:20 \u001B[90mv\u001B[0m #121 > > Elem.div [[]] [[\n",
- "00:00:20 \u001B[90mv\u001B[0m #122 > > yield! children |> List.map generateHtml\n",
- "00:00:20 \u001B[90mv\u001B[0m #123 > > ]]\n",
- "00:00:20 \u001B[90mv\u001B[0m #124 > >\n",
- "00:00:20 \u001B[90mv\u001B[0m #125 > > let generateHtmlForFileSystem root =\n",
- "00:00:20 \u001B[90mv\u001B[0m #126 > > $\"\"\"\n",
- "00:00:20 \u001B[90mv\u001B[0m #127 > > \n",
- "00:00:20 \u001B[90mv\u001B[0m #128 > > \n",
- "00:00:20 \u001B[90mv\u001B[0m #129 > > \n",
- "00:00:20 \u001B[90mv\u001B[0m #130 > > \n",
- "00:00:20 \u001B[90mv\u001B[0m #149 > > \n",
- "00:00:20 \u001B[90mv\u001B[0m #150 > > \n",
- "00:00:20 \u001B[90mv\u001B[0m #151 > > {root |> generateHtml |> renderNode}\n",
- "00:00:20 \u001B[90mv\u001B[0m #152 > > \n",
- "00:00:20 \u001B[90mv\u001B[0m #153 > > \n",
- "00:00:20 \u001B[90mv\u001B[0m #154 > > \"\"\"\n",
- "00:00:21 \u001B[90mv\u001B[0m #155 > >\n",
- "00:00:21 \u001B[90mv\u001B[0m #156 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:00:21 \u001B[90mv\u001B[0m #157 > > //// test\n",
- "00:00:21 \u001B[90mv\u001B[0m #158 > >\n",
- "00:00:21 \u001B[90mv\u001B[0m #159 > > let expected = \"\"\"\n",
- "00:00:21 \u001B[90mv\u001B[0m #160 > > \n",
- "00:00:21 \u001B[90mv\u001B[0m #161 > > \n",
- "00:00:21 \u001B[90mv\u001B[0m #162 > > \n",
- "00:00:21 \u001B[90mv\u001B[0m #163 > > \n",
- "00:00:21 \u001B[90mv\u001B[0m #182 > > \n",
- "00:00:21 \u001B[90mv\u001B[0m #183 > > \n",
- "00:00:21 \u001B[90mv\u001B[0m #184 > > 📂 _.root\n",
- "00:00:21 \u001B[90mv\u001B[0m #185 > > (10.00 B)
📂 > href=\"_.root/3\">3 (6.00 B)
> open=\"true\">📂 2 (3.00\n",
- "00:00:21 \u001B[90mv\u001B[0m #188 > > B)
📂 > href=\"_.root/3/2/1\">1 (1.00 B)
📄 > href=\"_.root/3/2/1/file.txt\">file.txt (1.00\n",
- "00:00:21 \u001B[90mv\u001B[0m #191 > > B)📄 > href=\"_.root/3/2/file.txt\">file.txt (2.00\n",
- "00:00:21 \u001B[90mv\u001B[0m #193 > > B)📄 > href=\"_.root/3/file.txt\">file.txt (3.00\n",
- "00:00:21 \u001B[90mv\u001B[0m #195 > > B)📄 > href=\"_.root/file.txt\">file.txt (4.00\n",
- "00:00:21 \u001B[90mv\u001B[0m #197 > > B)\n",
- "00:00:21 \u001B[90mv\u001B[0m #198 > > \n",
- "00:00:21 \u001B[90mv\u001B[0m #199 > > \n",
- "00:00:21 \u001B[90mv\u001B[0m #200 > > \"\"\"\n",
- "00:00:21 \u001B[90mv\u001B[0m #201 > >\n",
- "00:00:21 \u001B[90mv\u001B[0m #202 > > let struct (tempFolder, disposable) = expected |> SpiralCrypto.hash_text |>\n",
- "00:00:21 \u001B[90mv\u001B[0m #203 > > SpiralFileSystem.create_temp_dir'\n",
- "00:00:21 \u001B[90mv\u001B[0m #204 > > let rec loop d n = async {\n",
- "00:00:21 \u001B[90mv\u001B[0m #205 > > if n >= 0 then\n",
- "00:00:21 \u001B[90mv\u001B[0m #206 > > tempFolder > d |> System.IO.Directory.CreateDirectory |> ignore\n",
- "00:00:21 \u001B[90mv\u001B[0m #207 > > do!\n",
- "00:00:21 \u001B[90mv\u001B[0m #208 > > n\n",
- "00:00:21 \u001B[90mv\u001B[0m #209 > > |> string\n",
- "00:00:21 \u001B[90mv\u001B[0m #210 > > |> String.replicate (n + 1)\n",
- "00:00:21 \u001B[90mv\u001B[0m #211 > > |> SpiralFileSystem.write_all_text_async (tempFolder > d >\n",
- "00:00:21 \u001B[90mv\u001B[0m #212 > > $\"file.txt\")\n",
- "00:00:21 \u001B[90mv\u001B[0m #213 > > do! loop $\"{d}/{n}\" (n - 1)\n",
- "00:00:21 \u001B[90mv\u001B[0m #214 > > }\n",
- "00:00:21 \u001B[90mv\u001B[0m #215 > > loop \"_.root\" 3\n",
- "00:00:21 \u001B[90mv\u001B[0m #216 > > |> Async.RunSynchronously\n",
- "00:00:21 \u001B[90mv\u001B[0m #217 > >\n",
- "00:00:21 \u001B[90mv\u001B[0m #218 > > let html =\n",
- "00:00:21 \u001B[90mv\u001B[0m #219 > > scanDirectory true tempFolder tempFolder\n",
- "00:00:21 \u001B[90mv\u001B[0m #220 > > |> generateHtmlForFileSystem\n",
- "00:00:21 \u001B[90mv\u001B[0m #221 > >\n",
- "00:00:21 \u001B[90mv\u001B[0m #222 > > html\n",
- "00:00:21 \u001B[90mv\u001B[0m #223 > > |> _assertEqual expected\n",
- "00:00:21 \u001B[90mv\u001B[0m #224 > >\n",
- "00:00:21 \u001B[90mv\u001B[0m #225 > > disposable.Dispose ()\n",
- "00:00:21 \u001B[90mv\u001B[0m #226 > >\n",
- "00:00:21 \u001B[90mv\u001B[0m #227 > > html |> Microsoft.DotNet.Interactive.Formatting.Html.ToHtmlContent\n",
- "00:00:21 \u001B[90mv\u001B[0m #228 > >\n",
- "00:00:21 \u001B[90mv\u001B[0m #229 > > ── [ 190.24ms - return value ] ─────────────────────────────────────────────────\n",
- "00:00:21 \u001B[90mv\u001B[0m #230 > > \u001B[38;2;38;140;38m│\u001B[0m \n",
- "00:00:21 \u001B[90mv\u001B[0m #231 > > \u001B[38;2;38;140;38m│\u001B[0m \n",
- "00:00:21 \u001B[90mv\u001B[0m #232 > > \u001B[38;2;38;140;38m│\u001B[0m \n",
- "00:00:21 \u001B[90mv\u001B[0m #233 > > \u001B[38;2;38;140;38m│\u001B[0m \n",
- "00:00:21 \u001B[90mv\u001B[0m #234 > > \u001B[38;2;38;140;38m│\u001B[0m \n",
- "00:00:21 \u001B[90mv\u001B[0m #253 > > \u001B[38;2;38;140;38m│\u001B[0m \n",
- "00:00:21 \u001B[90mv\u001B[0m #254 > > \u001B[38;2;38;140;38m│\u001B[0m \n",
- "00:00:21 \u001B[90mv\u001B[0m #255 > > \u001B[38;2;38;140;38m│\u001B[0m 📂 > href=\"_.root\">_.root (10.00 B)
> open=\"true\">📂 3 (6.00\n",
- "00:00:21 \u001B[90mv\u001B[0m #258 > > B)
📂 > href=\"_.root/3/2\">2 (3.00 B)
> open=\"true\">📂 1 (1.00\n",
- "00:00:21 \u001B[90mv\u001B[0m #261 > > B)
📄 > href=\"_.root/3/2/1/file.txt\">file.txt (1.00\n",
- "00:00:21 \u001B[90mv\u001B[0m #263 > > B)📄 > href=\"_.root/3/2/file.txt\">file.txt (2.00\n",
- "00:00:21 \u001B[90mv\u001B[0m #265 > > B)📄 > href=\"_.root/3/file.txt\">file.txt (3.00\n",
- "00:00:21 \u001B[90mv\u001B[0m #267 > > B)📄 > href=\"_.root/file.txt\">file.txt (4.00\n",
- "00:00:21 \u001B[90mv\u001B[0m #269 > > B)\n",
- "00:00:21 \u001B[90mv\u001B[0m #270 > > \u001B[38;2;38;140;38m│\u001B[0m \n",
- "00:00:21 \u001B[90mv\u001B[0m #271 > > \u001B[38;2;38;140;38m│\u001B[0m \n",
- "00:00:21 \u001B[90mv\u001B[0m #272 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:21 \u001B[90mv\u001B[0m #273 > >\n",
- "00:00:21 \u001B[90mv\u001B[0m #274 > > ── [ 194.73ms - stdout ] ───────────────────────────────────────────────────────\n",
- "00:00:21 \u001B[90mv\u001B[0m #275 > > \u001B[38;2;38;140;38m│\u001B[0m \"\n",
- "00:00:21 \u001B[90mv\u001B[0m #276 > > \u001B[38;2;38;140;38m│\u001B[0m \n",
- "00:00:21 \u001B[90mv\u001B[0m #277 > > \u001B[38;2;38;140;38m│\u001B[0m \n",
- "00:00:21 \u001B[90mv\u001B[0m #278 > > \u001B[38;2;38;140;38m│\u001B[0m \n",
- "00:00:21 \u001B[90mv\u001B[0m #279 > > \u001B[38;2;38;140;38m│\u001B[0m \n",
- "00:00:21 \u001B[90mv\u001B[0m #298 > > \u001B[38;2;38;140;38m│\u001B[0m \n",
- "00:00:21 \u001B[90mv\u001B[0m #299 > > \u001B[38;2;38;140;38m│\u001B[0m \n",
- "00:00:21 \u001B[90mv\u001B[0m #300 > > \u001B[38;2;38;140;38m│\u001B[0m 📂 > href=\"_.root\">_.root (10.00 B)
> open=\"true\">📂 3 (6.00\n",
- "00:00:21 \u001B[90mv\u001B[0m #303 > > B)
📂 > href=\"_.root/3/2\">2 (3.00 B)
> open=\"true\">📂 1 (1.00\n",
- "00:00:21 \u001B[90mv\u001B[0m #306 > > B)
📄 > href=\"_.root/3/2/1/file.txt\">file.txt (1.00\n",
- "00:00:21 \u001B[90mv\u001B[0m #308 > > B)📄 > href=\"_.root/3/2/file.txt\">file.txt (2.00\n",
- "00:00:21 \u001B[90mv\u001B[0m #310 > > B)📄 > href=\"_.root/3/file.txt\">file.txt (3.00\n",
- "00:00:21 \u001B[90mv\u001B[0m #312 > > B)📄 > href=\"_.root/file.txt\">file.txt (4.00\n",
- "00:00:21 \u001B[90mv\u001B[0m #314 > > B)\n",
- "00:00:21 \u001B[90mv\u001B[0m #315 > > \u001B[38;2;38;140;38m│\u001B[0m \n",
- "00:00:21 \u001B[90mv\u001B[0m #316 > > \u001B[38;2;38;140;38m│\u001B[0m \n",
- "00:00:21 \u001B[90mv\u001B[0m #317 > > \u001B[38;2;38;140;38m│\u001B[0m \"\n",
- "00:00:21 \u001B[90mv\u001B[0m #318 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:21 \u001B[90mv\u001B[0m #319 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:21 \u001B[90mv\u001B[0m #320 > >\n",
- "00:00:21 \u001B[90mv\u001B[0m #321 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:21 \u001B[90mv\u001B[0m #322 > > \u001B[38;2;146;146;178m│\u001B[0m ## Arguments\n",
- "00:00:21 \u001B[90mv\u001B[0m #323 > >\n",
- "00:00:21 \u001B[90mv\u001B[0m #324 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:00:21 \u001B[90mv\u001B[0m #325 > > [[]]\n",
- "00:00:21 \u001B[90mv\u001B[0m #326 > > type Arguments =\n",
- "00:00:21 \u001B[90mv\u001B[0m #327 > > | [[]] Dir of string\n",
- "00:00:21 \u001B[90mv\u001B[0m #328 > > | [[]] Html of string\n",
- "00:00:21 \u001B[90mv\u001B[0m #329 > >\n",
- "00:00:21 \u001B[90mv\u001B[0m #330 > > interface Argu.IArgParserTemplate with\n",
- "00:00:21 \u001B[90mv\u001B[0m #331 > > member s.Usage =\n",
- "00:00:21 \u001B[90mv\u001B[0m #332 > > match s with\n",
- "00:00:21 \u001B[90mv\u001B[0m #333 > > | Dir _ -> nameof Dir\n",
- "00:00:21 \u001B[90mv\u001B[0m #334 > > | Html _ -> nameof Html\n",
- "00:00:21 \u001B[90mv\u001B[0m #335 > >\n",
- "00:00:21 \u001B[90mv\u001B[0m #336 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:00:21 \u001B[90mv\u001B[0m #337 > > //// test\n",
- "00:00:21 \u001B[90mv\u001B[0m #338 > >\n",
- "00:00:21 \u001B[90mv\u001B[0m #339 > > Argu.ArgumentParser.Create().PrintUsage ()\n",
- "00:00:21 \u001B[90mv\u001B[0m #340 > >\n",
- "00:00:21 \u001B[90mv\u001B[0m #341 > > ── [ 85.46ms - return value ] ──────────────────────────────────────────────────\n",
- "00:00:21 \u001B[90mv\u001B[0m #342 > > \u001B[38;2;38;140;38m│\u001B[0m \"USAGE: dotnet-repl [--help] --dir --html \n",
- "00:00:21 \u001B[90mv\u001B[0m #343 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:21 \u001B[90mv\u001B[0m #344 > > \u001B[38;2;38;140;38m│\u001B[0m OPTIONS:\n",
- "00:00:21 \u001B[90mv\u001B[0m #345 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:21 \u001B[90mv\u001B[0m #346 > > \u001B[38;2;38;140;38m│\u001B[0m --dir Dir\n",
- "00:00:21 \u001B[90mv\u001B[0m #347 > > \u001B[38;2;38;140;38m│\u001B[0m --html Html\n",
- "00:00:21 \u001B[90mv\u001B[0m #348 > > \u001B[38;2;38;140;38m│\u001B[0m --help display this list of options.\n",
- "00:00:21 \u001B[90mv\u001B[0m #349 > > \u001B[38;2;38;140;38m│\u001B[0m \"\n",
- "00:00:21 \u001B[90mv\u001B[0m #350 > > \u001B[38;2;38;140;38m│\u001B[0m\n",
- "00:00:21 \u001B[90mv\u001B[0m #351 > >\n",
- "00:00:21 \u001B[90mv\u001B[0m #352 > > ── markdown ────────────────────────────────────────────────────────────────────\n",
- "00:00:21 \u001B[90mv\u001B[0m #353 > > \u001B[38;2;146;146;178m│\u001B[0m ## main\n",
- "00:00:21 \u001B[90mv\u001B[0m #354 > >\n",
- "00:00:21 \u001B[90mv\u001B[0m #355 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:00:21 \u001B[90mv\u001B[0m #356 > > let main args =\n",
- "00:00:21 \u001B[90mv\u001B[0m #357 > > let argsMap = args |> Runtime.parseArgsMap\n",
- "00:00:21 \u001B[90mv\u001B[0m #358 > >\n",
- "00:00:21 \u001B[90mv\u001B[0m #359 > > let dir =\n",
- "00:00:21 \u001B[90mv\u001B[0m #360 > > match argsMap.[[nameof Arguments.Dir]] with\n",
- "00:00:21 \u001B[90mv\u001B[0m #361 > > | [[ Arguments.Dir dir ]] -> Some dir\n",
- "00:00:21 \u001B[90mv\u001B[0m #362 > > | _ -> None\n",
- "00:00:21 \u001B[90mv\u001B[0m #363 > > |> Option.get\n",
- "00:00:21 \u001B[90mv\u001B[0m #364 > >\n",
- "00:00:21 \u001B[90mv\u001B[0m #365 > > let htmlPath =\n",
- "00:00:21 \u001B[90mv\u001B[0m #366 > > match argsMap.[[nameof Arguments.Html]] with\n",
- "00:00:21 \u001B[90mv\u001B[0m #367 > > | [[ Arguments.Html html ]] -> Some html\n",
- "00:00:21 \u001B[90mv\u001B[0m #368 > > | _ -> None\n",
- "00:00:21 \u001B[90mv\u001B[0m #369 > > |> Option.get\n",
- "00:00:21 \u001B[90mv\u001B[0m #370 > >\n",
- "00:00:21 \u001B[90mv\u001B[0m #371 > > let fileSystem = scanDirectory true dir dir\n",
- "00:00:21 \u001B[90mv\u001B[0m #372 > > let html = generateHtmlForFileSystem fileSystem\n",
- "00:00:21 \u001B[90mv\u001B[0m #373 > >\n",
- "00:00:21 \u001B[90mv\u001B[0m #374 > > html |> SpiralFileSystem.write_all_text_async htmlPath\n",
- "00:00:21 \u001B[90mv\u001B[0m #375 > > |> Async.runWithTimeout 30000\n",
- "00:00:21 \u001B[90mv\u001B[0m #376 > > |> function\n",
- "00:00:21 \u001B[90mv\u001B[0m #377 > > | Some () -> 0\n",
- "00:00:21 \u001B[90mv\u001B[0m #378 > > | None -> 1\n",
- "00:00:21 \u001B[90mv\u001B[0m #379 > >\n",
- "00:00:21 \u001B[90mv\u001B[0m #380 > > ── fsharp ──────────────────────────────────────────────────────────────────────\n",
- "00:00:21 \u001B[90mv\u001B[0m #381 > > //// test\n",
- "00:00:21 \u001B[90mv\u001B[0m #382 > >\n",
- "00:00:21 \u001B[90mv\u001B[0m #383 > > let args =\n",
- "00:00:21 \u001B[90mv\u001B[0m #384 > > System.Environment.GetEnvironmentVariable \"ARGS\"\n",
- "00:00:21 \u001B[90mv\u001B[0m #385 > > |> SpiralRuntime.split_args\n",
- "00:00:21 \u001B[90mv\u001B[0m #386 > > |> Result.toArray\n",
- "00:00:21 \u001B[90mv\u001B[0m #387 > > |> Array.collect id\n",
- "00:00:21 \u001B[90mv\u001B[0m #388 > >\n",
- "00:00:21 \u001B[90mv\u001B[0m #389 > > match args with\n",
- "00:00:21 \u001B[90mv\u001B[0m #390 > > | [[||]] -> 0\n",
- "00:00:21 \u001B[90mv\u001B[0m #391 > > | args -> if main args = 0 then 0 else failwith \"main failed\"\n",
- "00:00:21 \u001B[90mv\u001B[0m #392 > >\n",
- "00:00:21 \u001B[90mv\u001B[0m #393 > > ── [ 94.50ms - return value ] ──────────────────────────────────────────────────\n",
- "00:00:21 \u001B[90mv\u001B[0m #394 > > \u001B[38;2;38;140;38m│\u001B[0m 0\n",
- "00:00:21 \u001B[90mv\u001B[0m #395 > > \u001B[38;2;38;140;38m│\u001B[0m
\n",
- "00:00:21 \u001B[90mv\u001B[0m #427 > 00:00:20 \u001B[90mv\u001B[39m #3 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 13688 }\n",
- "00:00:21 \u001B[90mv\u001B[0m #428 > 00:00:20 \u001B[94md\u001B[39m #4 runtime.execute_with_options / { file_name = jupyter; arguments = [\"nbconvert\", \"c:/home/git/polyglot/apps/dir-tree-html/DirTreeHtml.dib.ipynb\", \"--to\", \"html\", \"--HTMLExporter.theme=dark\"]; options = { command = jupyter nbconvert \"c:/home/git/polyglot/apps/dir-tree-html/DirTreeHtml.dib.ipynb\" --to html --HTMLExporter.theme=dark; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }\n",
- "00:00:23 \u001B[90mv\u001B[0m #429 > 00:00:21 \u001B[90mv\u001B[39m #5 ! [NbConvertApp] Converting notebook c:/home/git/polyglot/apps/dir-tree-html/DirTreeHtml.dib.ipynb to html\n",
- "00:00:23 \u001B[90mv\u001B[0m #430 > 00:00:21 \u001B[90mv\u001B[39m #6 ! C:\\Users\\i574n\\scoop\\apps\\python312\\current\\Lib\\site-packages\\nbformat\\__init__.py:96: MissingIDFieldWarning: Cell is missing an id field, this will become a hard error in future nbformat versions. You may want to use `normalize()` on your notebooks before validations (available since nbformat 5.1.4). Previous versions of nbformat are fixing this issue transparently, and will stop doing so in the future.\n",
- "00:00:23 \u001B[90mv\u001B[0m #431 > 00:00:21 \u001B[90mv\u001B[39m #7 ! validate(nb)\n",
- "00:00:23 \u001B[90mv\u001B[0m #432 > 00:00:22 \u001B[90mv\u001B[39m #8 ! C:\\Users\\i574n\\scoop\\apps\\python312\\current\\Lib\\site-packages\\nbconvert\\filters\\highlight.py:71: UserWarning: IPython3 lexer unavailable, falling back on Python 3\n",
- "00:00:23 \u001B[90mv\u001B[0m #433 > 00:00:22 \u001B[90mv\u001B[39m #9 ! return _pygments_highlight(\n",
- "00:00:24 \u001B[90mv\u001B[0m #434 > 00:00:22 \u001B[90mv\u001B[39m #10 ! [NbConvertApp] Writing 310059 bytes to c:\\home\\git\\polyglot\\apps\\dir-tree-html\\DirTreeHtml.dib.html\n",
- "00:00:24 \u001B[90mv\u001B[0m #435 > 00:00:22 \u001B[90mv\u001B[39m #11 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 880 }\n",
- "00:00:24 \u001B[90mv\u001B[0m #436 > 00:00:22 \u001B[94md\u001B[39m #12 spiral.run / dib / jupyter nbconvert / { exit_code = 0; jupyter_result_length = 880 }\n",
- "00:00:24 \u001B[90mv\u001B[0m #437 > 00:00:22 \u001B[94md\u001B[39m #13 runtime.execute_with_options / { file_name = pwsh; arguments = [\"-c\", \"$counter = 1; $path = 'c:/home/git/polyglot/apps/dir-tree-html/DirTreeHtml.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\\\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path\"]; options = { command = pwsh -c \"$counter = 1; $path = 'c:/home/git/polyglot/apps/dir-tree-html/DirTreeHtml.dib.html'; (Get-Content $path -Raw) -replace '(id=\\\"cell-id=)[a-fA-F0-9]{8}', { $_.Groups[1].Value + $counter++ } | Set-Content $path\"; cancellation_token = None; environment_variables = Array(MutCell([])); on_line = None; stdin = None; trace = true; working_directory = None } }\n",
- "00:00:24 \u001B[90mv\u001B[0m #438 > 00:00:22 \u001B[90mv\u001B[39m #14 runtime.execute_with_options / result / { exit_code = 0; std_trace_length = 0 }\n",
- "00:00:24 \u001B[90mv\u001B[0m #439 > 00:00:22 \u001B[94md\u001B[39m #15 spiral.run / dib / html cell ids / { exit_code = 0; pwsh_replace_html_result_length = 0 }\n",
- "00:00:24 \u001B[90mv\u001B[0m #440 > 00:00:22 \u001B[94md\u001B[39m #16 spiral.run / dib / { exit_code = 0; result_length = 14627 }\n",
- "00:00:24 \u001B[94md\u001B[0m #441 runtime.execute_with_options_async / { exit_code = 0; output_length = 18087 }\n",
- "00:00:24 \u001B[94md\u001B[0m #3 main / executeCommand / exitCode: 0 / command: ../../deps/spiral/workspace/target/release/spiral.exe dib --path DirTreeHtml.dib\n",
- "00:00:24 \u001B[90mv\u001B[0m #5 async.run_with_timeout_async / { timeout = 100 }\n",
- "#if FABLE_COMPILER\n",
- "[]\n",
- "type std_string_String = class end\n",
- "#else\n",
- "type std_string_String = string\n",
- "#endif\n",
- "\n",
- "#if FABLE_COMPILER\n",
- "[]\n",
- "type Ref<'T> = class end\n",
- "#else\n",
- "type Ref<'T> = 'T\n",
- "#endif\n",
- "\n",
- "#if FABLE_COMPILER\n",
- "\n",
- "type System_Net_Sockets_TcpClient = System.IDisposable\n",
- "#else\n",
- "type System_Net_Sockets_TcpClient = System.Net.Sockets.TcpClient\n",
- "#endif\n",
- "\n",
- "#if FABLE_COMPILER\n",
- "[]\n",
- "#endif\n",
- "type Mut<'T> = class end\n",
- "#if FABLE_COMPILER\n",
- "[\")>]\n",
- "#endif\n",
- "type Vec<'T> = class end\n",
- "module TraceState = let mutable trace_state = None\n",
- "#if FABLE_COMPILER\n",
- "[]\n",
- "#endif\n",
- "type std_env_VarError = class end\n",
- "type IOsEnviron = abstract environ: x: unit -> obj\n",
- "#if FABLE_COMPILER\n",
- "[]\n",
- "type Str = class end\n",
- "#else\n",
- "type Str = string\n",
- "#endif\n",
- "\n",
- "type [] US0 =\n",
- " | US0_0\n",
- " | US0_1\n",
- " | US0_2\n",
- " | US0_3\n",
- " | US0_4\n",
- "and Mut0 = {mutable l0 : int64}\n",
- "and Mut1 = {mutable l0 : (string -> unit)}\n",
- "and Mut2 = {mutable l0 : bool}\n",
- "and Mut3 = {mutable l0 : string}\n",
- "and Mut4 = {mutable l0 : US0}\n",
- "and [] US1 =\n",
- " | US1_0 of f0_0 : US0\n",
- " | US1_1\n",
- "and [] US2 =\n",
- " | US2_0 of f0_0 : int64\n",
- " | US2_1\n",
- "and [] US3 =\n",
- " | US3_0\n",
- " | US3_1\n",
- " | US3_2\n",
- "and [] US4 =\n",
- " | US4_0 of f0_0 : US3\n",
- " | US4_1 of f1_0 : US3\n",
- " | US4_2 of f2_0 : US3\n",
- " | US4_3 of f3_0 : US3\n",
- " | US4_4 of f4_0 : US3\n",
- "and [] US5 =\n",
- " | US5_0 of f0_0 : string\n",
- " | US5_1\n",
- "and [] US6 =\n",
- " | US6_0 of f0_0 : bool\n",
- " | US6_1\n",
- "and [] US7 =\n",
- " | US7_0 of f0_0 : bool\n",
- " | US7_1 of f1_0 : exn\n",
- "and [] US8 =\n",
- " | US8_0 of f0_0 : bool\n",
- " | US8_1 of f1_0 : exn\n",
- "and [] US9 =\n",
- " | US9_0 of f0_0 : int32\n",
- " | US9_1\n",
- "let rec method3 (v0 : string) : string =\n",
- " v0\n",
- "and method4 () : string =\n",
- " let v0 : string = \"\"\n",
- " v0\n",
- "and closure1 () (v0 : string) : US5 =\n",
- " US5_0(v0)\n",
- "and method5 () : (string -> US5) =\n",
- " closure1()\n",
- "and method2 (v0 : string) : string =\n",
- " (* run_target_args'\n",
- " let v1 : unit = ()\n",
- " run_target_args' *)\n",
- " \n",
- "#if FABLE_COMPILER || WASM || CONTRACT\n",
- " \n",
- "#if FABLE_COMPILER_RUST && !WASM && !CONTRACT\n",
- " let v2 : string = method3(v0)\n",
- " let v3 : string = \"std::env::var(&*$0)\"\n",
- " let v4 : Result = Fable.Core.RustInterop.emitRustExpr v2 v3 \n",
- " let v5 : string = \"true; let _result_map_ = $0.map(|x| { //\"\n",
- " let v6 : bool = Fable.Core.RustInterop.emitRustExpr v4 v5 \n",
- " let v7 : string = \"x\"\n",
- " let v8 : std_string_String = Fable.Core.RustInterop.emitRustExpr () v7 \n",
- " let v9 : string = \"fable_library_rust::String_::fromString($0)\"\n",
- " let v10 : string = Fable.Core.RustInterop.emitRustExpr v8 v9 \n",
- " let v11 : string = \"true; $0 })\"\n",
- " let v12 : bool = Fable.Core.RustInterop.emitRustExpr v10 v11 \n",
- " let v13 : string = \"_result_map_\"\n",
- " let v14 : Result = Fable.Core.RustInterop.emitRustExpr () v13 \n",
- " let v15 : string = method4()\n",
- " let v16 : string = \"$0.unwrap_or($1)\"\n",
- " let v17 : string = Fable.Core.RustInterop.emitRustExpr struct (v14, v15) v16 \n",
- " let _run_target_args'_v1 = v17 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && WASM\n",
- " let v18 : US3 = US3_1\n",
- " let v19 : US4 = US4_2(v18)\n",
- " let v20 : string = $\"env.get_environment_variable / target: {v19} / var: {v0}\"\n",
- " let v21 : string = failwith v20\n",
- " let _run_target_args'_v1 = v21 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && CONTRACT\n",
- " let v22 : US3 = US3_2\n",
- " let v23 : US4 = US4_2(v22)\n",
- " let v24 : string = $\"env.get_environment_variable / target: {v23} / var: {v0}\"\n",
- " let v25 : string = failwith v24\n",
- " let _run_target_args'_v1 = v25 \n",
- " #endif\n",
- "#if FABLE_COMPILER_TYPESCRIPT\n",
- " let v26 : string = \"process.env[$0] ?? \\\"\\\"\"\n",
- " let v27 : string = Fable.Core.JsInterop.emitJsExpr v0 v26 \n",
- " let _run_target_args'_v1 = v27 \n",
- " #endif\n",
- "#if FABLE_COMPILER_PYTHON\n",
- " let v28 : string = \"os\"\n",
- " let v29 : IOsEnviron = Fable.Core.PyInterop.importAll v28 \n",
- " let v30 : string = \"v29.environ\"\n",
- " let v31 : obj = Fable.Core.PyInterop.emitPyExpr () v30 \n",
- " let v34 : string = \"v31.get($0)\"\n",
- " let v35 : string = Fable.Core.PyInterop.emitPyExpr v0 v34 \n",
- " let mutable _v35 = None\n",
- " #if !FABLE_COMPILER && !WASM && !CONTRACT\n",
- " let v38 : (string -> string option) = Option.ofObj\n",
- " let v39 : string option = v38 v35\n",
- " v39 \n",
- " #else\n",
- " Some v35 \n",
- " #endif\n",
- " |> fun x -> _v35 <- Some x\n",
- " let v40 : string option = match _v35 with Some x -> x | None -> failwith \"optionm'.of_obj / _v35=None\"\n",
- " let v43 : (string -> US5) = method5()\n",
- " let v44 : US5 option = v40 |> Option.map v43 \n",
- " let v55 : US5 = US5_1\n",
- " let v56 : US5 = v44 |> Option.defaultValue v55 \n",
- " let v63 : string =\n",
- " match v56 with\n",
- " | US5_1 -> (* None *)\n",
- " let v61 : string = \"\"\n",
- " v61\n",
- " | US5_0(v60) -> (* Some *)\n",
- " v60\n",
- " let _run_target_args'_v1 = v63 \n",
- " #endif\n",
- "#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON\n",
- " let v64 : US3 = US3_1\n",
- " let v65 : US4 = US4_0(v64)\n",
- " let v66 : string = $\"env.get_environment_variable / target: {v65} / var: {v0}\"\n",
- " let v67 : string = failwith v66\n",
- " let _run_target_args'_v1 = v67 \n",
- " #endif\n",
- "#else\n",
- " let v68 : (string -> string) = System.Environment.GetEnvironmentVariable\n",
- " let v69 : string = v68 v0\n",
- " let mutable _v69 = None\n",
- " #if !FABLE_COMPILER && !WASM && !CONTRACT\n",
- " let v70 : (string -> string option) = Option.ofObj\n",
- " let v71 : string option = v70 v69\n",
- " v71 \n",
- " #else\n",
- " Some v69 \n",
- " #endif\n",
- " |> fun x -> _v69 <- Some x\n",
- " let v72 : string option = match _v69 with Some x -> x | None -> failwith \"optionm'.of_obj / _v69=None\"\n",
- " let v75 : (string -> US5) = method5()\n",
- " let v76 : US5 option = v72 |> Option.map v75 \n",
- " let v87 : US5 = US5_1\n",
- " let v88 : US5 = v76 |> Option.defaultValue v87 \n",
- " let v95 : string =\n",
- " match v88 with\n",
- " | US5_1 -> (* None *)\n",
- " let v93 : string = \"\"\n",
- " v93\n",
- " | US5_0(v92) -> (* Some *)\n",
- " v92\n",
- " let _run_target_args'_v1 = v95 \n",
- " #endif\n",
- " let v96 : string = _run_target_args'_v1 \n",
- " v96\n",
- "and method1 () : struct (US1 * US2) =\n",
- " let v0 : string = \"TRACE_LEVEL\"\n",
- " let v1 : string = method2(v0)\n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " let v2 : bool = \"Verbose\" = v1\n",
- " let v6 : US1 =\n",
- " if v2 then\n",
- " let v3 : US0 = US0_0\n",
- " US1_0(v3)\n",
- " else\n",
- " US1_1\n",
- " let v47 : US1 =\n",
- " match v6 with\n",
- " | US1_1 -> (* None *)\n",
- " let v9 : bool = \"Debug\" = v1\n",
- " let v13 : US1 =\n",
- " if v9 then\n",
- " let v10 : US0 = US0_1\n",
- " US1_0(v10)\n",
- " else\n",
- " US1_1\n",
- " match v13 with\n",
- " | US1_1 -> (* None *)\n",
- " let v16 : bool = \"Info\" = v1\n",
- " let v20 : US1 =\n",
- " if v16 then\n",
- " let v17 : US0 = US0_2\n",
- " US1_0(v17)\n",
- " else\n",
- " US1_1\n",
- " match v20 with\n",
- " | US1_1 -> (* None *)\n",
- " let v23 : bool = \"Warning\" = v1\n",
- " let v27 : US1 =\n",
- " if v23 then\n",
- " let v24 : US0 = US0_3\n",
- " US1_0(v24)\n",
- " else\n",
- " US1_1\n",
- " match v27 with\n",
- " | US1_1 -> (* None *)\n",
- " let v30 : bool = \"Critical\" = v1\n",
- " let v34 : US1 =\n",
- " if v30 then\n",
- " let v31 : US0 = US0_4\n",
- " US1_0(v31)\n",
- " else\n",
- " US1_1\n",
- " match v34 with\n",
- " | US1_1 -> (* None *)\n",
- " US1_1\n",
- " | US1_0(v35) -> (* Some *)\n",
- " US1_0(v35)\n",
- " | US1_0(v28) -> (* Some *)\n",
- " US1_0(v28)\n",
- " | US1_0(v21) -> (* Some *)\n",
- " US1_0(v21)\n",
- " | US1_0(v14) -> (* Some *)\n",
- " US1_0(v14)\n",
- " | US1_0(v7) -> (* Some *)\n",
- " US1_0(v7)\n",
- " let v48 : string = \"AUTOMATION\"\n",
- " let v49 : string = method2(v48)\n",
- " let v50 : string = \"True\"\n",
- " let v51 : bool = v49 <> v50 \n",
- " let v107 : US2 =\n",
- " if v51 then\n",
- " US2_1\n",
- " else\n",
- " (* run_target_args'\n",
- " let v55 : unit = ()\n",
- " run_target_args' *)\n",
- " \n",
- "#if FABLE_COMPILER || WASM || CONTRACT\n",
- " \n",
- "#if FABLE_COMPILER_RUST && !WASM && !CONTRACT\n",
- " let v56 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v55 = v56 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && WASM\n",
- " let v57 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v55 = v57 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && CONTRACT\n",
- " let v58 : System.DateTime = null |> unbox\n",
- " let _run_target_args'_v55 = v58 \n",
- " #endif\n",
- "#if FABLE_COMPILER_TYPESCRIPT\n",
- " let v61 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v55 = v61 \n",
- " #endif\n",
- "#if FABLE_COMPILER_PYTHON\n",
- " let v62 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v55 = v62 \n",
- " #endif\n",
- "#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON\n",
- " let v63 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v55 = v63 \n",
- " #endif\n",
- "#else\n",
- " let v64 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v55 = v64 \n",
- " #endif\n",
- " let v65 : System.DateTime = _run_target_args'_v55 \n",
- " (* run_target_args'\n",
- " let v70 : unit = ()\n",
- " run_target_args' *)\n",
- " \n",
- "#if FABLE_COMPILER || WASM || CONTRACT\n",
- " \n",
- "#if FABLE_COMPILER_RUST && !WASM && !CONTRACT\n",
- " let v71 : (System.DateTime -> int64) = _.Ticks\n",
- " let v72 : int64 = v71 v65\n",
- " let _run_target_args'_v70 = v72 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && WASM\n",
- " let v73 : (System.DateTime -> int64) = _.Ticks\n",
- " let v74 : int64 = v73 v65\n",
- " let _run_target_args'_v70 = v74 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && CONTRACT\n",
- " let v75 : int64 = null |> unbox\n",
- " let _run_target_args'_v70 = v75 \n",
- " #endif\n",
- "#if FABLE_COMPILER_TYPESCRIPT\n",
- " let v78 : (System.DateTime -> int64) = _.Ticks\n",
- " let v79 : int64 = v78 v65\n",
- " let _run_target_args'_v70 = v79 \n",
- " #endif\n",
- "#if FABLE_COMPILER_PYTHON\n",
- " let v80 : (System.DateTime -> int64) = _.Ticks\n",
- " let v81 : int64 = v80 v65\n",
- " let _run_target_args'_v70 = v81 \n",
- " #endif\n",
- "#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON\n",
- " let v82 : (System.DateTime -> int64) = _.Ticks\n",
- " let v83 : int64 = v82 v65\n",
- " let _run_target_args'_v70 = v83 \n",
- " #endif\n",
- "#else\n",
- " let v84 : (System.DateTime -> int64) = _.Ticks\n",
- " let v85 : int64 = v84 v65\n",
- " let _run_target_args'_v70 = v85 \n",
- " #endif\n",
- " let v86 : int64 = _run_target_args'_v70 \n",
- " let v103 : int64 = v86 |> int64 \n",
- " US2_0(v103)\n",
- " struct (v47, v107)\n",
- "and closure2 () (v0 : string) : unit =\n",
- " ()\n",
- "and method0 (v0 : US0) : struct (Mut0 * Mut1 * Mut2 * Mut3 * Mut4 * int64 option) =\n",
- " (* run_target_args'\n",
- " let v1 : unit = ()\n",
- " run_target_args' *)\n",
- " \n",
- "#if FABLE_COMPILER || WASM || CONTRACT\n",
- " \n",
- "#if FABLE_COMPILER_RUST && !WASM && !CONTRACT\n",
- " let struct (v2 : US1, v3 : US2) = method1()\n",
- " let _run_target_args'_v1 = struct (v2, v3) \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && WASM\n",
- " let v4 : US1 = US1_1\n",
- " let v5 : US2 = US2_1\n",
- " let _run_target_args'_v1 = struct (v4, v5) \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && CONTRACT\n",
- " let v6 : string = \"AUTOMATION\"\n",
- " (* run_target_args'\n",
- " let v7 : unit = ()\n",
- " run_target_args' *)\n",
- " \n",
- "#if FABLE_COMPILER || WASM || CONTRACT\n",
- " \n",
- "#if FABLE_COMPILER_RUST && !WASM && !CONTRACT\n",
- " let v8 : string = \"option_env!(\\\"\" + v6 + \"\\\").unwrap_or(\\\"\\\")\"\n",
- " let v9 : Ref = Fable.Core.RustInterop.emitRustExpr () v8 \n",
- " (* run_target_args'\n",
- " let v10 : unit = ()\n",
- " run_target_args' *)\n",
- " \n",
- "#if FABLE_COMPILER || WASM || CONTRACT\n",
- " \n",
- "#if FABLE_COMPILER_RUST && !WASM && !CONTRACT\n",
- " let v11 : string = \"String::from($0)\"\n",
- " let v12 : std_string_String = Fable.Core.RustInterop.emitRustExpr v9 v11 \n",
- " let _run_target_args'_v10 = v12 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && WASM\n",
- " let v13 : string = \"String::from($0)\"\n",
- " let v14 : std_string_String = Fable.Core.RustInterop.emitRustExpr v9 v13 \n",
- " let _run_target_args'_v10 = v14 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && CONTRACT\n",
- " let v15 : string = \"String::from($0)\"\n",
- " let v16 : std_string_String = Fable.Core.RustInterop.emitRustExpr v9 v15 \n",
- " let _run_target_args'_v10 = v16 \n",
- " #endif\n",
- "#if FABLE_COMPILER_TYPESCRIPT\n",
- " let v17 : std_string_String = v9 |> unbox\n",
- " let _run_target_args'_v10 = v17 \n",
- " #endif\n",
- "#if FABLE_COMPILER_PYTHON\n",
- " let v20 : std_string_String = v9 |> unbox\n",
- " let _run_target_args'_v10 = v20 \n",
- " #endif\n",
- "#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON\n",
- " let v23 : std_string_String = v9 |> unbox\n",
- " let _run_target_args'_v10 = v23 \n",
- " #endif\n",
- "#else\n",
- " let v26 : std_string_String = v9 |> unbox\n",
- " let _run_target_args'_v10 = v26 \n",
- " #endif\n",
- " let v29 : std_string_String = _run_target_args'_v10 \n",
- " let v34 : string = \"fable_library_rust::String_::fromString($0)\"\n",
- " let v35 : string = Fable.Core.RustInterop.emitRustExpr v29 v34 \n",
- " let _run_target_args'_v7 = v35 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && WASM\n",
- " let v36 : string = \"option_env!(\\\"\" + v6 + \"\\\").unwrap_or(\\\"\\\")\"\n",
- " let v37 : Ref = Fable.Core.RustInterop.emitRustExpr () v36 \n",
- " (* run_target_args'\n",
- " let v38 : unit = ()\n",
- " run_target_args' *)\n",
- " \n",
- "#if FABLE_COMPILER || WASM || CONTRACT\n",
- " \n",
- "#if FABLE_COMPILER_RUST && !WASM && !CONTRACT\n",
- " let v39 : string = \"String::from($0)\"\n",
- " let v40 : std_string_String = Fable.Core.RustInterop.emitRustExpr v37 v39 \n",
- " let _run_target_args'_v38 = v40 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && WASM\n",
- " let v41 : string = \"String::from($0)\"\n",
- " let v42 : std_string_String = Fable.Core.RustInterop.emitRustExpr v37 v41 \n",
- " let _run_target_args'_v38 = v42 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && CONTRACT\n",
- " let v43 : string = \"String::from($0)\"\n",
- " let v44 : std_string_String = Fable.Core.RustInterop.emitRustExpr v37 v43 \n",
- " let _run_target_args'_v38 = v44 \n",
- " #endif\n",
- "#if FABLE_COMPILER_TYPESCRIPT\n",
- " let v45 : std_string_String = v37 |> unbox\n",
- " let _run_target_args'_v38 = v45 \n",
- " #endif\n",
- "#if FABLE_COMPILER_PYTHON\n",
- " let v48 : std_string_String = v37 |> unbox\n",
- " let _run_target_args'_v38 = v48 \n",
- " #endif\n",
- "#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON\n",
- " let v51 : std_string_String = v37 |> unbox\n",
- " let _run_target_args'_v38 = v51 \n",
- " #endif\n",
- "#else\n",
- " let v54 : std_string_String = v37 |> unbox\n",
- " let _run_target_args'_v38 = v54 \n",
- " #endif\n",
- " let v57 : std_string_String = _run_target_args'_v38 \n",
- " let v62 : string = \"fable_library_rust::String_::fromString($0)\"\n",
- " let v63 : string = Fable.Core.RustInterop.emitRustExpr v57 v62 \n",
- " let _run_target_args'_v7 = v63 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && CONTRACT\n",
- " let v64 : string = \"option_env!(\\\"\" + v6 + \"\\\").unwrap_or(\\\"\\\")\"\n",
- " let v65 : Ref = Fable.Core.RustInterop.emitRustExpr () v64 \n",
- " (* run_target_args'\n",
- " let v66 : unit = ()\n",
- " run_target_args' *)\n",
- " \n",
- "#if FABLE_COMPILER || WASM || CONTRACT\n",
- " \n",
- "#if FABLE_COMPILER_RUST && !WASM && !CONTRACT\n",
- " let v67 : string = \"String::from($0)\"\n",
- " let v68 : std_string_String = Fable.Core.RustInterop.emitRustExpr v65 v67 \n",
- " let _run_target_args'_v66 = v68 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && WASM\n",
- " let v69 : string = \"String::from($0)\"\n",
- " let v70 : std_string_String = Fable.Core.RustInterop.emitRustExpr v65 v69 \n",
- " let _run_target_args'_v66 = v70 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && CONTRACT\n",
- " let v71 : string = \"String::from($0)\"\n",
- " let v72 : std_string_String = Fable.Core.RustInterop.emitRustExpr v65 v71 \n",
- " let _run_target_args'_v66 = v72 \n",
- " #endif\n",
- "#if FABLE_COMPILER_TYPESCRIPT\n",
- " let v73 : std_string_String = v65 |> unbox\n",
- " let _run_target_args'_v66 = v73 \n",
- " #endif\n",
- "#if FABLE_COMPILER_PYTHON\n",
- " let v76 : std_string_String = v65 |> unbox\n",
- " let _run_target_args'_v66 = v76 \n",
- " #endif\n",
- "#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON\n",
- " let v79 : std_string_String = v65 |> unbox\n",
- " let _run_target_args'_v66 = v79 \n",
- " #endif\n",
- "#else\n",
- " let v82 : std_string_String = v65 |> unbox\n",
- " let _run_target_args'_v66 = v82 \n",
- " #endif\n",
- " let v85 : std_string_String = _run_target_args'_v66 \n",
- " let v90 : string = \"fable_library_rust::String_::fromString($0)\"\n",
- " let v91 : string = Fable.Core.RustInterop.emitRustExpr v85 v90 \n",
- " let _run_target_args'_v7 = v91 \n",
- " #endif\n",
- "#if FABLE_COMPILER_TYPESCRIPT\n",
- " let v92 : string = null |> unbox\n",
- " let _run_target_args'_v7 = v92 \n",
- " #endif\n",
- "#if FABLE_COMPILER_PYTHON\n",
- " let v95 : string = null |> unbox\n",
- " let _run_target_args'_v7 = v95 \n",
- " #endif\n",
- "#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON\n",
- " let v98 : string = null |> unbox\n",
- " let _run_target_args'_v7 = v98 \n",
- " #endif\n",
- "#else\n",
- " let v101 : string = null |> unbox\n",
- " let _run_target_args'_v7 = v101 \n",
- " #endif\n",
- " let v104 : string = _run_target_args'_v7 \n",
- " let v109 : string = \"True\"\n",
- " let v110 : bool = v104 <> v109 \n",
- " let v121 : US2 =\n",
- " if v110 then\n",
- " US2_1\n",
- " else\n",
- " let v114 : string = $\"near_sdk::env::block_timestamp()\"\n",
- " let v115 : uint64 = Fable.Core.RustInterop.emitRustExpr () v114 \n",
- " let v116 : (uint64 -> int64) = int64\n",
- " let v117 : int64 = v116 v115\n",
- " US2_0(v117)\n",
- " let v122 : US1 = US1_1\n",
- " let _run_target_args'_v1 = struct (v122, v121) \n",
- " #endif\n",
- "#if FABLE_COMPILER_TYPESCRIPT\n",
- " let struct (v123 : US1, v124 : US2) = method1()\n",
- " let _run_target_args'_v1 = struct (v123, v124) \n",
- " #endif\n",
- "#if FABLE_COMPILER_PYTHON\n",
- " let struct (v125 : US1, v126 : US2) = method1()\n",
- " let _run_target_args'_v1 = struct (v125, v126) \n",
- " #endif\n",
- "#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON\n",
- " let struct (v127 : US1, v128 : US2) = method1()\n",
- " let _run_target_args'_v1 = struct (v127, v128) \n",
- " #endif\n",
- "#else\n",
- " let struct (v129 : US1, v130 : US2) = method1()\n",
- " let _run_target_args'_v1 = struct (v129, v130) \n",
- " #endif\n",
- " let struct (v131 : US1, v132 : US2) = _run_target_args'_v1 \n",
- " let v137 : Mut0 = {l0 = 1L} : Mut0\n",
- " let v138 : (string -> unit) = closure2()\n",
- " let v139 : Mut1 = {l0 = v138} : Mut1\n",
- " let v140 : Mut2 = {l0 = true} : Mut2\n",
- " let v141 : string = \"\"\n",
- " let v142 : Mut3 = {l0 = v141} : Mut3\n",
- " let v145 : US0 =\n",
- " match v131 with\n",
- " | US1_1 -> (* None *)\n",
- " v0\n",
- " | US1_0(v143) -> (* Some *)\n",
- " v143\n",
- " let v146 : Mut4 = {l0 = v145} : Mut4\n",
- " let v153 : int64 option =\n",
- " match v132 with\n",
- " | US2_1 -> (* None *)\n",
- " let v151 : int64 option = None\n",
- " v151\n",
- " | US2_0(v147) -> (* Some *)\n",
- " let v148 : int64 option = Some v147 \n",
- " v148\n",
- " struct (v137, v139, v140, v142, v146, v153)\n",
- "and closure0 () () : unit =\n",
- " let v0 : bool = TraceState.trace_state.IsNone\n",
- " if v0 then\n",
- " let v1 : US0 = US0_0\n",
- " let struct (v2 : Mut0, v3 : Mut1, v4 : Mut2, v5 : Mut3, v6 : Mut4, v7 : int64 option) = method0(v1)\n",
- " let v8 : struct (Mut0 * Mut1 * Mut2 * Mut3 * Mut4 * int64 option) option = Some struct (v2, v3, v4, v5, v6, v7) \n",
- " TraceState.trace_state <- v8 \n",
- " ()\n",
- "and method8 (v0 : US0) : bool =\n",
- " let v1 : unit = ()\n",
- " let v2 : (unit -> unit) = closure0()\n",
- " let v3 : unit = (fun () -> v2 (); v1) ()\n",
- " let struct (v17 : Mut0, v18 : Mut1, v19 : Mut2, v20 : Mut3, v21 : Mut4, v22 : int64 option) = TraceState.trace_state.Value\n",
- " let v35 : US0 = v21.l0\n",
- " let v36 : bool = v19.l0\n",
- " let v37 : bool = v36 = false\n",
- " if v37 then\n",
- " false\n",
- " else\n",
- " let v38 : int32 = [ US0_0, 0; US0_1, 1; US0_2, 2; US0_3, 3; US0_4, 4 ] |> Map |> Map.find v0\n",
- " let v39 : int32 = [ US0_0, 0; US0_1, 1; US0_2, 2; US0_3, 3; US0_4, 4 ] |> Map |> Map.find v35\n",
- " let v40 : bool = v38 >= v39\n",
- " v40\n",
- "and closure6 () (v0 : int64) : US2 =\n",
- " US2_0(v0)\n",
- "and method10 () : (int64 -> US2) =\n",
- " closure6()\n",
- "and method11 () : string =\n",
- " let v0 : string = \"hh:mm:ss\"\n",
- " v0\n",
- "and method12 () : string =\n",
- " let v0 : string = \"HH:mm:ss\"\n",
- " v0\n",
- "and method9 (v0 : Mut0, v1 : Mut1, v2 : Mut2, v3 : Mut3, v4 : Mut4, v5 : int64 option) : string =\n",
- " (* run_target_args'\n",
- " let v6 : unit = ()\n",
- " run_target_args' *)\n",
- " \n",
- "#if FABLE_COMPILER || WASM || CONTRACT\n",
- " \n",
- "#if FABLE_COMPILER_RUST && !WASM && !CONTRACT\n",
- " let v7 : (int64 -> US2) = method10()\n",
- " let v8 : US2 option = v5 |> Option.map v7 \n",
- " let v19 : US2 = US2_1\n",
- " let v20 : US2 = v8 |> Option.defaultValue v19 \n",
- " let v117 : System.DateTime =\n",
- " match v20 with\n",
- " | US2_1 -> (* None *)\n",
- " (* run_target_args'\n",
- " let v101 : unit = ()\n",
- " run_target_args' *)\n",
- " \n",
- "#if FABLE_COMPILER || WASM || CONTRACT\n",
- " \n",
- "#if FABLE_COMPILER_RUST && !WASM && !CONTRACT\n",
- " let v102 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v101 = v102 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && WASM\n",
- " let v103 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v101 = v103 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && CONTRACT\n",
- " let v104 : System.DateTime = null |> unbox\n",
- " let _run_target_args'_v101 = v104 \n",
- " #endif\n",
- "#if FABLE_COMPILER_TYPESCRIPT\n",
- " let v107 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v101 = v107 \n",
- " #endif\n",
- "#if FABLE_COMPILER_PYTHON\n",
- " let v108 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v101 = v108 \n",
- " #endif\n",
- "#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON\n",
- " let v109 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v101 = v109 \n",
- " #endif\n",
- "#else\n",
- " let v110 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v101 = v110 \n",
- " #endif\n",
- " let v111 : System.DateTime = _run_target_args'_v101 \n",
- " v111\n",
- " | US2_0(v24) -> (* Some *)\n",
- " (* run_target_args'\n",
- " let v25 : unit = ()\n",
- " run_target_args' *)\n",
- " \n",
- "#if FABLE_COMPILER || WASM || CONTRACT\n",
- " \n",
- "#if FABLE_COMPILER_RUST && !WASM && !CONTRACT\n",
- " let v26 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v25 = v26 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && WASM\n",
- " let v27 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v25 = v27 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && CONTRACT\n",
- " let v28 : System.DateTime = null |> unbox\n",
- " let _run_target_args'_v25 = v28 \n",
- " #endif\n",
- "#if FABLE_COMPILER_TYPESCRIPT\n",
- " let v31 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v25 = v31 \n",
- " #endif\n",
- "#if FABLE_COMPILER_PYTHON\n",
- " let v32 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v25 = v32 \n",
- " #endif\n",
- "#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON\n",
- " let v33 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v25 = v33 \n",
- " #endif\n",
- "#else\n",
- " let v34 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v25 = v34 \n",
- " #endif\n",
- " let v35 : System.DateTime = _run_target_args'_v25 \n",
- " (* run_target_args'\n",
- " let v40 : unit = ()\n",
- " run_target_args' *)\n",
- " \n",
- "#if FABLE_COMPILER || WASM || CONTRACT\n",
- " \n",
- "#if FABLE_COMPILER_RUST && !WASM && !CONTRACT\n",
- " let v41 : (System.DateTime -> int64) = _.Ticks\n",
- " let v42 : int64 = v41 v35\n",
- " let _run_target_args'_v40 = v42 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && WASM\n",
- " let v43 : (System.DateTime -> int64) = _.Ticks\n",
- " let v44 : int64 = v43 v35\n",
- " let _run_target_args'_v40 = v44 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && CONTRACT\n",
- " let v45 : int64 = null |> unbox\n",
- " let _run_target_args'_v40 = v45 \n",
- " #endif\n",
- "#if FABLE_COMPILER_TYPESCRIPT\n",
- " let v48 : (System.DateTime -> int64) = _.Ticks\n",
- " let v49 : int64 = v48 v35\n",
- " let _run_target_args'_v40 = v49 \n",
- " #endif\n",
- "#if FABLE_COMPILER_PYTHON\n",
- " let v50 : (System.DateTime -> int64) = _.Ticks\n",
- " let v51 : int64 = v50 v35\n",
- " let _run_target_args'_v40 = v51 \n",
- " #endif\n",
- "#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON\n",
- " let v52 : (System.DateTime -> int64) = _.Ticks\n",
- " let v53 : int64 = v52 v35\n",
- " let _run_target_args'_v40 = v53 \n",
- " #endif\n",
- "#else\n",
- " let v54 : (System.DateTime -> int64) = _.Ticks\n",
- " let v55 : int64 = v54 v35\n",
- " let _run_target_args'_v40 = v55 \n",
- " #endif\n",
- " let v56 : int64 = _run_target_args'_v40 \n",
- " let v73 : int64 = v56 |> int64 \n",
- " let v76 : int64 = v73 - v24\n",
- " let v77 : System.TimeSpan = v76 |> System.TimeSpan \n",
- " let v82 : (System.TimeSpan -> int32) = _.Hours\n",
- " let v83 : int32 = v82 v77\n",
- " let v86 : (System.TimeSpan -> int32) = _.Minutes\n",
- " let v87 : int32 = v86 v77\n",
- " let v90 : (System.TimeSpan -> int32) = _.Seconds\n",
- " let v91 : int32 = v90 v77\n",
- " let v94 : (System.TimeSpan -> int32) = _.Milliseconds\n",
- " let v95 : int32 = v94 v77\n",
- " let v98 : System.DateTime = System.DateTime (1, 1, 1, v83, v87, v91, v95)\n",
- " v98\n",
- " let v118 : string = method11()\n",
- " let v121 : bool = v118 = \"\"\n",
- " let v123 : string =\n",
- " if v121 then\n",
- " let v122 : string = \"M-d-y hh:mm:ss tt\"\n",
- " v122\n",
- " else\n",
- " v118\n",
- " let v124 : (string -> string) = v117.ToString\n",
- " let v125 : string = v124 v123\n",
- " let _run_target_args'_v6 = v125 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && WASM\n",
- " let v139 : (int64 -> US2) = method10()\n",
- " let v140 : US2 option = v5 |> Option.map v139 \n",
- " let v151 : US2 = US2_1\n",
- " let v152 : US2 = v140 |> Option.defaultValue v151 \n",
- " let v249 : System.DateTime =\n",
- " match v152 with\n",
- " | US2_1 -> (* None *)\n",
- " (* run_target_args'\n",
- " let v233 : unit = ()\n",
- " run_target_args' *)\n",
- " \n",
- "#if FABLE_COMPILER || WASM || CONTRACT\n",
- " \n",
- "#if FABLE_COMPILER_RUST && !WASM && !CONTRACT\n",
- " let v234 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v233 = v234 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && WASM\n",
- " let v235 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v233 = v235 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && CONTRACT\n",
- " let v236 : System.DateTime = null |> unbox\n",
- " let _run_target_args'_v233 = v236 \n",
- " #endif\n",
- "#if FABLE_COMPILER_TYPESCRIPT\n",
- " let v239 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v233 = v239 \n",
- " #endif\n",
- "#if FABLE_COMPILER_PYTHON\n",
- " let v240 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v233 = v240 \n",
- " #endif\n",
- "#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON\n",
- " let v241 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v233 = v241 \n",
- " #endif\n",
- "#else\n",
- " let v242 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v233 = v242 \n",
- " #endif\n",
- " let v243 : System.DateTime = _run_target_args'_v233 \n",
- " v243\n",
- " | US2_0(v156) -> (* Some *)\n",
- " (* run_target_args'\n",
- " let v157 : unit = ()\n",
- " run_target_args' *)\n",
- " \n",
- "#if FABLE_COMPILER || WASM || CONTRACT\n",
- " \n",
- "#if FABLE_COMPILER_RUST && !WASM && !CONTRACT\n",
- " let v158 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v157 = v158 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && WASM\n",
- " let v159 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v157 = v159 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && CONTRACT\n",
- " let v160 : System.DateTime = null |> unbox\n",
- " let _run_target_args'_v157 = v160 \n",
- " #endif\n",
- "#if FABLE_COMPILER_TYPESCRIPT\n",
- " let v163 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v157 = v163 \n",
- " #endif\n",
- "#if FABLE_COMPILER_PYTHON\n",
- " let v164 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v157 = v164 \n",
- " #endif\n",
- "#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON\n",
- " let v165 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v157 = v165 \n",
- " #endif\n",
- "#else\n",
- " let v166 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v157 = v166 \n",
- " #endif\n",
- " let v167 : System.DateTime = _run_target_args'_v157 \n",
- " (* run_target_args'\n",
- " let v172 : unit = ()\n",
- " run_target_args' *)\n",
- " \n",
- "#if FABLE_COMPILER || WASM || CONTRACT\n",
- " \n",
- "#if FABLE_COMPILER_RUST && !WASM && !CONTRACT\n",
- " let v173 : (System.DateTime -> int64) = _.Ticks\n",
- " let v174 : int64 = v173 v167\n",
- " let _run_target_args'_v172 = v174 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && WASM\n",
- " let v175 : (System.DateTime -> int64) = _.Ticks\n",
- " let v176 : int64 = v175 v167\n",
- " let _run_target_args'_v172 = v176 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && CONTRACT\n",
- " let v177 : int64 = null |> unbox\n",
- " let _run_target_args'_v172 = v177 \n",
- " #endif\n",
- "#if FABLE_COMPILER_TYPESCRIPT\n",
- " let v180 : (System.DateTime -> int64) = _.Ticks\n",
- " let v181 : int64 = v180 v167\n",
- " let _run_target_args'_v172 = v181 \n",
- " #endif\n",
- "#if FABLE_COMPILER_PYTHON\n",
- " let v182 : (System.DateTime -> int64) = _.Ticks\n",
- " let v183 : int64 = v182 v167\n",
- " let _run_target_args'_v172 = v183 \n",
- " #endif\n",
- "#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON\n",
- " let v184 : (System.DateTime -> int64) = _.Ticks\n",
- " let v185 : int64 = v184 v167\n",
- " let _run_target_args'_v172 = v185 \n",
- " #endif\n",
- "#else\n",
- " let v186 : (System.DateTime -> int64) = _.Ticks\n",
- " let v187 : int64 = v186 v167\n",
- " let _run_target_args'_v172 = v187 \n",
- " #endif\n",
- " let v188 : int64 = _run_target_args'_v172 \n",
- " let v205 : int64 = v188 |> int64 \n",
- " let v208 : int64 = v205 - v156\n",
- " let v209 : System.TimeSpan = v208 |> System.TimeSpan \n",
- " let v214 : (System.TimeSpan -> int32) = _.Hours\n",
- " let v215 : int32 = v214 v209\n",
- " let v218 : (System.TimeSpan -> int32) = _.Minutes\n",
- " let v219 : int32 = v218 v209\n",
- " let v222 : (System.TimeSpan -> int32) = _.Seconds\n",
- " let v223 : int32 = v222 v209\n",
- " let v226 : (System.TimeSpan -> int32) = _.Milliseconds\n",
- " let v227 : int32 = v226 v209\n",
- " let v230 : System.DateTime = System.DateTime (1, 1, 1, v215, v219, v223, v227)\n",
- " v230\n",
- " let v250 : string = method11()\n",
- " let v253 : bool = v250 = \"\"\n",
- " let v255 : string =\n",
- " if v253 then\n",
- " let v254 : string = \"M-d-y hh:mm:ss tt\"\n",
- " v254\n",
- " else\n",
- " v250\n",
- " let v256 : (string -> string) = v249.ToString\n",
- " let v257 : string = v256 v255\n",
- " let _run_target_args'_v6 = v257 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && CONTRACT\n",
- " let v271 : string = $\"near_sdk::env::block_timestamp()\"\n",
- " let v272 : uint64 = Fable.Core.RustInterop.emitRustExpr () v271 \n",
- " let v273 : (int64 -> US2) = method10()\n",
- " let v274 : US2 option = v5 |> Option.map v273 \n",
- " let v285 : US2 = US2_1\n",
- " let v286 : US2 = v274 |> Option.defaultValue v285 \n",
- " let v297 : uint64 =\n",
- " match v286 with\n",
- " | US2_1 -> (* None *)\n",
- " v272\n",
- " | US2_0(v290) -> (* Some *)\n",
- " let v291 : (int64 -> uint64) = uint64\n",
- " let v292 : uint64 = v291 v290\n",
- " let v295 : uint64 = v272 - v292\n",
- " v295\n",
- " let v298 : uint64 = v297 / 1000000000UL\n",
- " let v299 : uint64 = v298 % 60UL\n",
- " let v300 : uint64 = v298 / 60UL\n",
- " let v301 : uint64 = v300 % 60UL\n",
- " let v302 : uint64 = v298 / 3600UL\n",
- " let v303 : uint64 = v302 % 24UL\n",
- " let v304 : string = $\"format!(\\\"{{:02}}:{{:02}}:{{:02}}\\\", $0, $1, $2)\"\n",
- " let v305 : std_string_String = Fable.Core.RustInterop.emitRustExpr struct (v303, v301, v299) v304 \n",
- " let v306 : string = \"fable_library_rust::String_::fromString($0)\"\n",
- " let v307 : string = Fable.Core.RustInterop.emitRustExpr v305 v306 \n",
- " let _run_target_args'_v6 = v307 \n",
- " #endif\n",
- "#if FABLE_COMPILER_TYPESCRIPT\n",
- " let v308 : (int64 -> US2) = method10()\n",
- " let v309 : US2 option = v5 |> Option.map v308 \n",
- " let v320 : US2 = US2_1\n",
- " let v321 : US2 = v309 |> Option.defaultValue v320 \n",
- " let v418 : System.DateTime =\n",
- " match v321 with\n",
- " | US2_1 -> (* None *)\n",
- " (* run_target_args'\n",
- " let v402 : unit = ()\n",
- " run_target_args' *)\n",
- " \n",
- "#if FABLE_COMPILER || WASM || CONTRACT\n",
- " \n",
- "#if FABLE_COMPILER_RUST && !WASM && !CONTRACT\n",
- " let v403 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v402 = v403 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && WASM\n",
- " let v404 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v402 = v404 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && CONTRACT\n",
- " let v405 : System.DateTime = null |> unbox\n",
- " let _run_target_args'_v402 = v405 \n",
- " #endif\n",
- "#if FABLE_COMPILER_TYPESCRIPT\n",
- " let v408 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v402 = v408 \n",
- " #endif\n",
- "#if FABLE_COMPILER_PYTHON\n",
- " let v409 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v402 = v409 \n",
- " #endif\n",
- "#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON\n",
- " let v410 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v402 = v410 \n",
- " #endif\n",
- "#else\n",
- " let v411 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v402 = v411 \n",
- " #endif\n",
- " let v412 : System.DateTime = _run_target_args'_v402 \n",
- " v412\n",
- " | US2_0(v325) -> (* Some *)\n",
- " (* run_target_args'\n",
- " let v326 : unit = ()\n",
- " run_target_args' *)\n",
- " \n",
- "#if FABLE_COMPILER || WASM || CONTRACT\n",
- " \n",
- "#if FABLE_COMPILER_RUST && !WASM && !CONTRACT\n",
- " let v327 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v326 = v327 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && WASM\n",
- " let v328 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v326 = v328 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && CONTRACT\n",
- " let v329 : System.DateTime = null |> unbox\n",
- " let _run_target_args'_v326 = v329 \n",
- " #endif\n",
- "#if FABLE_COMPILER_TYPESCRIPT\n",
- " let v332 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v326 = v332 \n",
- " #endif\n",
- "#if FABLE_COMPILER_PYTHON\n",
- " let v333 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v326 = v333 \n",
- " #endif\n",
- "#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON\n",
- " let v334 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v326 = v334 \n",
- " #endif\n",
- "#else\n",
- " let v335 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v326 = v335 \n",
- " #endif\n",
- " let v336 : System.DateTime = _run_target_args'_v326 \n",
- " (* run_target_args'\n",
- " let v341 : unit = ()\n",
- " run_target_args' *)\n",
- " \n",
- "#if FABLE_COMPILER || WASM || CONTRACT\n",
- " \n",
- "#if FABLE_COMPILER_RUST && !WASM && !CONTRACT\n",
- " let v342 : (System.DateTime -> int64) = _.Ticks\n",
- " let v343 : int64 = v342 v336\n",
- " let _run_target_args'_v341 = v343 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && WASM\n",
- " let v344 : (System.DateTime -> int64) = _.Ticks\n",
- " let v345 : int64 = v344 v336\n",
- " let _run_target_args'_v341 = v345 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && CONTRACT\n",
- " let v346 : int64 = null |> unbox\n",
- " let _run_target_args'_v341 = v346 \n",
- " #endif\n",
- "#if FABLE_COMPILER_TYPESCRIPT\n",
- " let v349 : (System.DateTime -> int64) = _.Ticks\n",
- " let v350 : int64 = v349 v336\n",
- " let _run_target_args'_v341 = v350 \n",
- " #endif\n",
- "#if FABLE_COMPILER_PYTHON\n",
- " let v351 : (System.DateTime -> int64) = _.Ticks\n",
- " let v352 : int64 = v351 v336\n",
- " let _run_target_args'_v341 = v352 \n",
- " #endif\n",
- "#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON\n",
- " let v353 : (System.DateTime -> int64) = _.Ticks\n",
- " let v354 : int64 = v353 v336\n",
- " let _run_target_args'_v341 = v354 \n",
- " #endif\n",
- "#else\n",
- " let v355 : (System.DateTime -> int64) = _.Ticks\n",
- " let v356 : int64 = v355 v336\n",
- " let _run_target_args'_v341 = v356 \n",
- " #endif\n",
- " let v357 : int64 = _run_target_args'_v341 \n",
- " let v374 : int64 = v357 |> int64 \n",
- " let v377 : int64 = v374 - v325\n",
- " let v378 : System.TimeSpan = v377 |> System.TimeSpan \n",
- " let v383 : (System.TimeSpan -> int32) = _.Hours\n",
- " let v384 : int32 = v383 v378\n",
- " let v387 : (System.TimeSpan -> int32) = _.Minutes\n",
- " let v388 : int32 = v387 v378\n",
- " let v391 : (System.TimeSpan -> int32) = _.Seconds\n",
- " let v392 : int32 = v391 v378\n",
- " let v395 : (System.TimeSpan -> int32) = _.Milliseconds\n",
- " let v396 : int32 = v395 v378\n",
- " let v399 : System.DateTime = System.DateTime (1, 1, 1, v384, v388, v392, v396)\n",
- " v399\n",
- " let v419 : string = method12()\n",
- " let v422 : bool = v419 = \"\"\n",
- " let v424 : string =\n",
- " if v422 then\n",
- " let v423 : string = \"M-d-y hh:mm:ss tt\"\n",
- " v423\n",
- " else\n",
- " v419\n",
- " let v425 : (string -> string) = v418.ToString\n",
- " let v426 : string = v425 v424\n",
- " let _run_target_args'_v6 = v426 \n",
- " #endif\n",
- "#if FABLE_COMPILER_PYTHON\n",
- " let v440 : (int64 -> US2) = method10()\n",
- " let v441 : US2 option = v5 |> Option.map v440 \n",
- " let v452 : US2 = US2_1\n",
- " let v453 : US2 = v441 |> Option.defaultValue v452 \n",
- " let v550 : System.DateTime =\n",
- " match v453 with\n",
- " | US2_1 -> (* None *)\n",
- " (* run_target_args'\n",
- " let v534 : unit = ()\n",
- " run_target_args' *)\n",
- " \n",
- "#if FABLE_COMPILER || WASM || CONTRACT\n",
- " \n",
- "#if FABLE_COMPILER_RUST && !WASM && !CONTRACT\n",
- " let v535 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v534 = v535 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && WASM\n",
- " let v536 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v534 = v536 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && CONTRACT\n",
- " let v537 : System.DateTime = null |> unbox\n",
- " let _run_target_args'_v534 = v537 \n",
- " #endif\n",
- "#if FABLE_COMPILER_TYPESCRIPT\n",
- " let v540 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v534 = v540 \n",
- " #endif\n",
- "#if FABLE_COMPILER_PYTHON\n",
- " let v541 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v534 = v541 \n",
- " #endif\n",
- "#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON\n",
- " let v542 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v534 = v542 \n",
- " #endif\n",
- "#else\n",
- " let v543 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v534 = v543 \n",
- " #endif\n",
- " let v544 : System.DateTime = _run_target_args'_v534 \n",
- " v544\n",
- " | US2_0(v457) -> (* Some *)\n",
- " (* run_target_args'\n",
- " let v458 : unit = ()\n",
- " run_target_args' *)\n",
- " \n",
- "#if FABLE_COMPILER || WASM || CONTRACT\n",
- " \n",
- "#if FABLE_COMPILER_RUST && !WASM && !CONTRACT\n",
- " let v459 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v458 = v459 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && WASM\n",
- " let v460 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v458 = v460 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && CONTRACT\n",
- " let v461 : System.DateTime = null |> unbox\n",
- " let _run_target_args'_v458 = v461 \n",
- " #endif\n",
- "#if FABLE_COMPILER_TYPESCRIPT\n",
- " let v464 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v458 = v464 \n",
- " #endif\n",
- "#if FABLE_COMPILER_PYTHON\n",
- " let v465 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v458 = v465 \n",
- " #endif\n",
- "#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON\n",
- " let v466 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v458 = v466 \n",
- " #endif\n",
- "#else\n",
- " let v467 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v458 = v467 \n",
- " #endif\n",
- " let v468 : System.DateTime = _run_target_args'_v458 \n",
- " (* run_target_args'\n",
- " let v473 : unit = ()\n",
- " run_target_args' *)\n",
- " \n",
- "#if FABLE_COMPILER || WASM || CONTRACT\n",
- " \n",
- "#if FABLE_COMPILER_RUST && !WASM && !CONTRACT\n",
- " let v474 : (System.DateTime -> int64) = _.Ticks\n",
- " let v475 : int64 = v474 v468\n",
- " let _run_target_args'_v473 = v475 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && WASM\n",
- " let v476 : (System.DateTime -> int64) = _.Ticks\n",
- " let v477 : int64 = v476 v468\n",
- " let _run_target_args'_v473 = v477 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && CONTRACT\n",
- " let v478 : int64 = null |> unbox\n",
- " let _run_target_args'_v473 = v478 \n",
- " #endif\n",
- "#if FABLE_COMPILER_TYPESCRIPT\n",
- " let v481 : (System.DateTime -> int64) = _.Ticks\n",
- " let v482 : int64 = v481 v468\n",
- " let _run_target_args'_v473 = v482 \n",
- " #endif\n",
- "#if FABLE_COMPILER_PYTHON\n",
- " let v483 : (System.DateTime -> int64) = _.Ticks\n",
- " let v484 : int64 = v483 v468\n",
- " let _run_target_args'_v473 = v484 \n",
- " #endif\n",
- "#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON\n",
- " let v485 : (System.DateTime -> int64) = _.Ticks\n",
- " let v486 : int64 = v485 v468\n",
- " let _run_target_args'_v473 = v486 \n",
- " #endif\n",
- "#else\n",
- " let v487 : (System.DateTime -> int64) = _.Ticks\n",
- " let v488 : int64 = v487 v468\n",
- " let _run_target_args'_v473 = v488 \n",
- " #endif\n",
- " let v489 : int64 = _run_target_args'_v473 \n",
- " let v506 : int64 = v489 |> int64 \n",
- " let v509 : int64 = v506 - v457\n",
- " let v510 : System.TimeSpan = v509 |> System.TimeSpan \n",
- " let v515 : (System.TimeSpan -> int32) = _.Hours\n",
- " let v516 : int32 = v515 v510\n",
- " let v519 : (System.TimeSpan -> int32) = _.Minutes\n",
- " let v520 : int32 = v519 v510\n",
- " let v523 : (System.TimeSpan -> int32) = _.Seconds\n",
- " let v524 : int32 = v523 v510\n",
- " let v527 : (System.TimeSpan -> int32) = _.Milliseconds\n",
- " let v528 : int32 = v527 v510\n",
- " let v531 : System.DateTime = System.DateTime (1, 1, 1, v516, v520, v524, v528)\n",
- " v531\n",
- " let v551 : string = method12()\n",
- " let v554 : bool = v551 = \"\"\n",
- " let v556 : string =\n",
- " if v554 then\n",
- " let v555 : string = \"M-d-y hh:mm:ss tt\"\n",
- " v555\n",
- " else\n",
- " v551\n",
- " let v557 : (string -> string) = v550.ToString\n",
- " let v558 : string = v557 v556\n",
- " let _run_target_args'_v6 = v558 \n",
- " #endif\n",
- "#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON\n",
- " let v572 : (int64 -> US2) = method10()\n",
- " let v573 : US2 option = v5 |> Option.map v572 \n",
- " let v584 : US2 = US2_1\n",
- " let v585 : US2 = v573 |> Option.defaultValue v584 \n",
- " let v682 : System.DateTime =\n",
- " match v585 with\n",
- " | US2_1 -> (* None *)\n",
- " (* run_target_args'\n",
- " let v666 : unit = ()\n",
- " run_target_args' *)\n",
- " \n",
- "#if FABLE_COMPILER || WASM || CONTRACT\n",
- " \n",
- "#if FABLE_COMPILER_RUST && !WASM && !CONTRACT\n",
- " let v667 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v666 = v667 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && WASM\n",
- " let v668 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v666 = v668 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && CONTRACT\n",
- " let v669 : System.DateTime = null |> unbox\n",
- " let _run_target_args'_v666 = v669 \n",
- " #endif\n",
- "#if FABLE_COMPILER_TYPESCRIPT\n",
- " let v672 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v666 = v672 \n",
- " #endif\n",
- "#if FABLE_COMPILER_PYTHON\n",
- " let v673 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v666 = v673 \n",
- " #endif\n",
- "#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON\n",
- " let v674 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v666 = v674 \n",
- " #endif\n",
- "#else\n",
- " let v675 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v666 = v675 \n",
- " #endif\n",
- " let v676 : System.DateTime = _run_target_args'_v666 \n",
- " v676\n",
- " | US2_0(v589) -> (* Some *)\n",
- " (* run_target_args'\n",
- " let v590 : unit = ()\n",
- " run_target_args' *)\n",
- " \n",
- "#if FABLE_COMPILER || WASM || CONTRACT\n",
- " \n",
- "#if FABLE_COMPILER_RUST && !WASM && !CONTRACT\n",
- " let v591 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v590 = v591 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && WASM\n",
- " let v592 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v590 = v592 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && CONTRACT\n",
- " let v593 : System.DateTime = null |> unbox\n",
- " let _run_target_args'_v590 = v593 \n",
- " #endif\n",
- "#if FABLE_COMPILER_TYPESCRIPT\n",
- " let v596 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v590 = v596 \n",
- " #endif\n",
- "#if FABLE_COMPILER_PYTHON\n",
- " let v597 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v590 = v597 \n",
- " #endif\n",
- "#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON\n",
- " let v598 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v590 = v598 \n",
- " #endif\n",
- "#else\n",
- " let v599 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v590 = v599 \n",
- " #endif\n",
- " let v600 : System.DateTime = _run_target_args'_v590 \n",
- " (* run_target_args'\n",
- " let v605 : unit = ()\n",
- " run_target_args' *)\n",
- " \n",
- "#if FABLE_COMPILER || WASM || CONTRACT\n",
- " \n",
- "#if FABLE_COMPILER_RUST && !WASM && !CONTRACT\n",
- " let v606 : (System.DateTime -> int64) = _.Ticks\n",
- " let v607 : int64 = v606 v600\n",
- " let _run_target_args'_v605 = v607 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && WASM\n",
- " let v608 : (System.DateTime -> int64) = _.Ticks\n",
- " let v609 : int64 = v608 v600\n",
- " let _run_target_args'_v605 = v609 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && CONTRACT\n",
- " let v610 : int64 = null |> unbox\n",
- " let _run_target_args'_v605 = v610 \n",
- " #endif\n",
- "#if FABLE_COMPILER_TYPESCRIPT\n",
- " let v613 : (System.DateTime -> int64) = _.Ticks\n",
- " let v614 : int64 = v613 v600\n",
- " let _run_target_args'_v605 = v614 \n",
- " #endif\n",
- "#if FABLE_COMPILER_PYTHON\n",
- " let v615 : (System.DateTime -> int64) = _.Ticks\n",
- " let v616 : int64 = v615 v600\n",
- " let _run_target_args'_v605 = v616 \n",
- " #endif\n",
- "#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON\n",
- " let v617 : (System.DateTime -> int64) = _.Ticks\n",
- " let v618 : int64 = v617 v600\n",
- " let _run_target_args'_v605 = v618 \n",
- " #endif\n",
- "#else\n",
- " let v619 : (System.DateTime -> int64) = _.Ticks\n",
- " let v620 : int64 = v619 v600\n",
- " let _run_target_args'_v605 = v620 \n",
- " #endif\n",
- " let v621 : int64 = _run_target_args'_v605 \n",
- " let v638 : int64 = v621 |> int64 \n",
- " let v641 : int64 = v638 - v589\n",
- " let v642 : System.TimeSpan = v641 |> System.TimeSpan \n",
- " let v647 : (System.TimeSpan -> int32) = _.Hours\n",
- " let v648 : int32 = v647 v642\n",
- " let v651 : (System.TimeSpan -> int32) = _.Minutes\n",
- " let v652 : int32 = v651 v642\n",
- " let v655 : (System.TimeSpan -> int32) = _.Seconds\n",
- " let v656 : int32 = v655 v642\n",
- " let v659 : (System.TimeSpan -> int32) = _.Milliseconds\n",
- " let v660 : int32 = v659 v642\n",
- " let v663 : System.DateTime = System.DateTime (1, 1, 1, v648, v652, v656, v660)\n",
- " v663\n",
- " let v683 : string = method12()\n",
- " let v686 : bool = v683 = \"\"\n",
- " let v688 : string =\n",
- " if v686 then\n",
- " let v687 : string = \"M-d-y hh:mm:ss tt\"\n",
- " v687\n",
- " else\n",
- " v683\n",
- " let v689 : (string -> string) = v682.ToString\n",
- " let v690 : string = v689 v688\n",
- " let _run_target_args'_v6 = v690 \n",
- " #endif\n",
- "#else\n",
- " let v704 : (int64 -> US2) = method10()\n",
- " let v705 : US2 option = v5 |> Option.map v704 \n",
- " let v716 : US2 = US2_1\n",
- " let v717 : US2 = v705 |> Option.defaultValue v716 \n",
- " let v814 : System.DateTime =\n",
- " match v717 with\n",
- " | US2_1 -> (* None *)\n",
- " (* run_target_args'\n",
- " let v798 : unit = ()\n",
- " run_target_args' *)\n",
- " \n",
- "#if FABLE_COMPILER || WASM || CONTRACT\n",
- " \n",
- "#if FABLE_COMPILER_RUST && !WASM && !CONTRACT\n",
- " let v799 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v798 = v799 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && WASM\n",
- " let v800 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v798 = v800 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && CONTRACT\n",
- " let v801 : System.DateTime = null |> unbox\n",
- " let _run_target_args'_v798 = v801 \n",
- " #endif\n",
- "#if FABLE_COMPILER_TYPESCRIPT\n",
- " let v804 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v798 = v804 \n",
- " #endif\n",
- "#if FABLE_COMPILER_PYTHON\n",
- " let v805 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v798 = v805 \n",
- " #endif\n",
- "#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON\n",
- " let v806 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v798 = v806 \n",
- " #endif\n",
- "#else\n",
- " let v807 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v798 = v807 \n",
- " #endif\n",
- " let v808 : System.DateTime = _run_target_args'_v798 \n",
- " v808\n",
- " | US2_0(v721) -> (* Some *)\n",
- " (* run_target_args'\n",
- " let v722 : unit = ()\n",
- " run_target_args' *)\n",
- " \n",
- "#if FABLE_COMPILER || WASM || CONTRACT\n",
- " \n",
- "#if FABLE_COMPILER_RUST && !WASM && !CONTRACT\n",
- " let v723 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v722 = v723 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && WASM\n",
- " let v724 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v722 = v724 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && CONTRACT\n",
- " let v725 : System.DateTime = null |> unbox\n",
- " let _run_target_args'_v722 = v725 \n",
- " #endif\n",
- "#if FABLE_COMPILER_TYPESCRIPT\n",
- " let v728 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v722 = v728 \n",
- " #endif\n",
- "#if FABLE_COMPILER_PYTHON\n",
- " let v729 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v722 = v729 \n",
- " #endif\n",
- "#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON\n",
- " let v730 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v722 = v730 \n",
- " #endif\n",
- "#else\n",
- " let v731 : System.DateTime = System.DateTime.Now\n",
- " let _run_target_args'_v722 = v731 \n",
- " #endif\n",
- " let v732 : System.DateTime = _run_target_args'_v722 \n",
- " (* run_target_args'\n",
- " let v737 : unit = ()\n",
- " run_target_args' *)\n",
- " \n",
- "#if FABLE_COMPILER || WASM || CONTRACT\n",
- " \n",
- "#if FABLE_COMPILER_RUST && !WASM && !CONTRACT\n",
- " let v738 : (System.DateTime -> int64) = _.Ticks\n",
- " let v739 : int64 = v738 v732\n",
- " let _run_target_args'_v737 = v739 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && WASM\n",
- " let v740 : (System.DateTime -> int64) = _.Ticks\n",
- " let v741 : int64 = v740 v732\n",
- " let _run_target_args'_v737 = v741 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && CONTRACT\n",
- " let v742 : int64 = null |> unbox\n",
- " let _run_target_args'_v737 = v742 \n",
- " #endif\n",
- "#if FABLE_COMPILER_TYPESCRIPT\n",
- " let v745 : (System.DateTime -> int64) = _.Ticks\n",
- " let v746 : int64 = v745 v732\n",
- " let _run_target_args'_v737 = v746 \n",
- " #endif\n",
- "#if FABLE_COMPILER_PYTHON\n",
- " let v747 : (System.DateTime -> int64) = _.Ticks\n",
- " let v748 : int64 = v747 v732\n",
- " let _run_target_args'_v737 = v748 \n",
- " #endif\n",
- "#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON\n",
- " let v749 : (System.DateTime -> int64) = _.Ticks\n",
- " let v750 : int64 = v749 v732\n",
- " let _run_target_args'_v737 = v750 \n",
- " #endif\n",
- "#else\n",
- " let v751 : (System.DateTime -> int64) = _.Ticks\n",
- " let v752 : int64 = v751 v732\n",
- " let _run_target_args'_v737 = v752 \n",
- " #endif\n",
- " let v753 : int64 = _run_target_args'_v737 \n",
- " let v770 : int64 = v753 |> int64 \n",
- " let v773 : int64 = v770 - v721\n",
- " let v774 : System.TimeSpan = v773 |> System.TimeSpan \n",
- " let v779 : (System.TimeSpan -> int32) = _.Hours\n",
- " let v780 : int32 = v779 v774\n",
- " let v783 : (System.TimeSpan -> int32) = _.Minutes\n",
- " let v784 : int32 = v783 v774\n",
- " let v787 : (System.TimeSpan -> int32) = _.Seconds\n",
- " let v788 : int32 = v787 v774\n",
- " let v791 : (System.TimeSpan -> int32) = _.Milliseconds\n",
- " let v792 : int32 = v791 v774\n",
- " let v795 : System.DateTime = System.DateTime (1, 1, 1, v780, v784, v788, v792)\n",
- " v795\n",
- " let v815 : string = method12()\n",
- " let v818 : bool = v815 = \"\"\n",
- " let v820 : string =\n",
- " if v818 then\n",
- " let v819 : string = \"M-d-y hh:mm:ss tt\"\n",
- " v819\n",
- " else\n",
- " v815\n",
- " let v821 : (string -> string) = v814.ToString\n",
- " let v822 : string = v821 v820\n",
- " let _run_target_args'_v6 = v822 \n",
- " #endif\n",
- " let v836 : string = _run_target_args'_v6 \n",
- " v836\n",
- "and method15 () : string =\n",
- " let v0 : string = \"\"\n",
- " v0\n",
- "and closure7 (v0 : Mut3, v1 : string) () : unit =\n",
- " let v2 : string = v0.l0\n",
- " let v3 : string = v2 + v1 \n",
- " v0.l0 <- v3\n",
- " ()\n",
- "and method14 (v0 : char) : string =\n",
- " let v1 : string = method15()\n",
- " let v2 : Mut3 = {l0 = v1} : Mut3\n",
- " let v3 : string = $\"{v0}\"\n",
- " let v6 : unit = ()\n",
- " let v7 : (unit -> unit) = closure7(v2, v3)\n",
- " let v8 : unit = (fun () -> v7 (); v6) ()\n",
- " let v11 : string = v2.l0\n",
- " v11\n",
- "and method16 () : string =\n",
- " let v0 : string = \"\\u001b[0m\"\n",
- " v0\n",
- "and method13 () : string =\n",
- " \n",
- " \n",
- " \n",
- " \n",
- " \n",
- " let v0 : string = \"Verbose\"\n",
- " let v1 : (unit -> string) = v0.ToLower\n",
- " let v2 : string = v1 ()\n",
- " let v5 : char = v2.[int 0]\n",
- " let v6 : string = method14(v5)\n",
- " (* run_target_args'\n",
- " let v7 : unit = ()\n",
- " run_target_args' *)\n",
- " \n",
- "#if FABLE_COMPILER || WASM || CONTRACT\n",
- " \n",
- "#if FABLE_COMPILER_RUST && !WASM && !CONTRACT\n",
- " let v8 : string = \"inline_colorization::color_bright_black\"\n",
- " let v9 : Ref = Fable.Core.RustInterop.emitRustExpr () v8 \n",
- " (* run_target_args'\n",
- " let v10 : unit = ()\n",
- " run_target_args' *)\n",
- " \n",
- "#if FABLE_COMPILER || WASM || CONTRACT\n",
- " \n",
- "#if FABLE_COMPILER_RUST && !WASM && !CONTRACT\n",
- " let v11 : string = \"&*$0\"\n",
- " let v12 : Ref = Fable.Core.RustInterop.emitRustExpr v6 v11 \n",
- " let _run_target_args'_v10 = v12 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && WASM\n",
- " let v13 : string = \"&*$0\"\n",
- " let v14 : Ref = Fable.Core.RustInterop.emitRustExpr v6 v13 \n",
- " let _run_target_args'_v10 = v14 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && CONTRACT\n",
- " let v15 : string = \"&*$0\"\n",
- " let v16 : Ref = Fable.Core.RustInterop.emitRustExpr v6 v15 \n",
- " let _run_target_args'_v10 = v16 \n",
- " #endif\n",
- "#if FABLE_COMPILER_TYPESCRIPT\n",
- " let v17 : Ref = v6 |> unbox>\n",
- " let _run_target_args'_v10 = v17 \n",
- " #endif\n",
- "#if FABLE_COMPILER_PYTHON\n",
- " let v20 : Ref = v6 |> unbox>\n",
- " let _run_target_args'_v10 = v20 \n",
- " #endif\n",
- "#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON\n",
- " let v23 : Ref = v6 |> unbox>\n",
- " let _run_target_args'_v10 = v23 \n",
- " #endif\n",
- "#else\n",
- " let v26 : Ref = v6 |> unbox>\n",
- " let _run_target_args'_v10 = v26 \n",
- " #endif\n",
- " let v29 : Ref = _run_target_args'_v10 \n",
- " let v34 : string = \"inline_colorization::color_reset\"\n",
- " let v35 : Ref = Fable.Core.RustInterop.emitRustExpr () v34 \n",
- " let v36 : string = $\"format!(\\\"{{}}{{}}{{}}\\\", $0, $1, $2)\"\n",
- " let v37 : std_string_String = Fable.Core.RustInterop.emitRustExpr struct (v9, v29, v35) v36 \n",
- " let v38 : string = \"fable_library_rust::String_::fromString($0)\"\n",
- " let v39 : string = Fable.Core.RustInterop.emitRustExpr v37 v38 \n",
- " let _run_target_args'_v7 = v39 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && WASM\n",
- " let v40 : string = \"inline_colorization::color_bright_black\"\n",
- " let v41 : Ref = Fable.Core.RustInterop.emitRustExpr () v40 \n",
- " (* run_target_args'\n",
- " let v42 : unit = ()\n",
- " run_target_args' *)\n",
- " \n",
- "#if FABLE_COMPILER || WASM || CONTRACT\n",
- " \n",
- "#if FABLE_COMPILER_RUST && !WASM && !CONTRACT\n",
- " let v43 : string = \"&*$0\"\n",
- " let v44 : Ref = Fable.Core.RustInterop.emitRustExpr v6 v43 \n",
- " let _run_target_args'_v42 = v44 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && WASM\n",
- " let v45 : string = \"&*$0\"\n",
- " let v46 : Ref = Fable.Core.RustInterop.emitRustExpr v6 v45 \n",
- " let _run_target_args'_v42 = v46 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && CONTRACT\n",
- " let v47 : string = \"&*$0\"\n",
- " let v48 : Ref = Fable.Core.RustInterop.emitRustExpr v6 v47 \n",
- " let _run_target_args'_v42 = v48 \n",
- " #endif\n",
- "#if FABLE_COMPILER_TYPESCRIPT\n",
- " let v49 : Ref = v6 |> unbox>\n",
- " let _run_target_args'_v42 = v49 \n",
- " #endif\n",
- "#if FABLE_COMPILER_PYTHON\n",
- " let v52 : Ref = v6 |> unbox>\n",
- " let _run_target_args'_v42 = v52 \n",
- " #endif\n",
- "#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON\n",
- " let v55 : Ref = v6 |> unbox>\n",
- " let _run_target_args'_v42 = v55 \n",
- " #endif\n",
- "#else\n",
- " let v58 : Ref = v6 |> unbox>\n",
- " let _run_target_args'_v42 = v58 \n",
- " #endif\n",
- " let v61 : Ref = _run_target_args'_v42 \n",
- " let v66 : string = \"inline_colorization::color_reset\"\n",
- " let v67 : Ref = Fable.Core.RustInterop.emitRustExpr () v66 \n",
- " let v68 : string = $\"format!(\\\"{{}}{{}}{{}}\\\", $0, $1, $2)\"\n",
- " let v69 : std_string_String = Fable.Core.RustInterop.emitRustExpr struct (v41, v61, v67) v68 \n",
- " let v70 : string = \"fable_library_rust::String_::fromString($0)\"\n",
- " let v71 : string = Fable.Core.RustInterop.emitRustExpr v69 v70 \n",
- " let _run_target_args'_v7 = v71 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && CONTRACT\n",
- " let v72 : string = \"inline_colorization::color_bright_black\"\n",
- " let v73 : Ref = Fable.Core.RustInterop.emitRustExpr () v72 \n",
- " (* run_target_args'\n",
- " let v74 : unit = ()\n",
- " run_target_args' *)\n",
- " \n",
- "#if FABLE_COMPILER || WASM || CONTRACT\n",
- " \n",
- "#if FABLE_COMPILER_RUST && !WASM && !CONTRACT\n",
- " let v75 : string = \"&*$0\"\n",
- " let v76 : Ref = Fable.Core.RustInterop.emitRustExpr v6 v75 \n",
- " let _run_target_args'_v74 = v76 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && WASM\n",
- " let v77 : string = \"&*$0\"\n",
- " let v78 : Ref = Fable.Core.RustInterop.emitRustExpr v6 v77 \n",
- " let _run_target_args'_v74 = v78 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && CONTRACT\n",
- " let v79 : string = \"&*$0\"\n",
- " let v80 : Ref = Fable.Core.RustInterop.emitRustExpr v6 v79 \n",
- " let _run_target_args'_v74 = v80 \n",
- " #endif\n",
- "#if FABLE_COMPILER_TYPESCRIPT\n",
- " let v81 : Ref = v6 |> unbox>\n",
- " let _run_target_args'_v74 = v81 \n",
- " #endif\n",
- "#if FABLE_COMPILER_PYTHON\n",
- " let v84 : Ref = v6 |> unbox>\n",
- " let _run_target_args'_v74 = v84 \n",
- " #endif\n",
- "#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON\n",
- " let v87 : Ref = v6 |> unbox>\n",
- " let _run_target_args'_v74 = v87 \n",
- " #endif\n",
- "#else\n",
- " let v90 : Ref = v6 |> unbox>\n",
- " let _run_target_args'_v74 = v90 \n",
- " #endif\n",
- " let v93 : Ref = _run_target_args'_v74 \n",
- " let v98 : string = \"inline_colorization::color_reset\"\n",
- " let v99 : Ref = Fable.Core.RustInterop.emitRustExpr () v98 \n",
- " let v100 : string = $\"format!(\\\"{{}}{{}}{{}}\\\", $0, $1, $2)\"\n",
- " let v101 : std_string_String = Fable.Core.RustInterop.emitRustExpr struct (v73, v93, v99) v100 \n",
- " let v102 : string = \"fable_library_rust::String_::fromString($0)\"\n",
- " let v103 : string = Fable.Core.RustInterop.emitRustExpr v101 v102 \n",
- " let _run_target_args'_v7 = v103 \n",
- " #endif\n",
- "#if FABLE_COMPILER_TYPESCRIPT\n",
- " let v104 : string = \"\\u001b[90m\"\n",
- " let v105 : string = method16()\n",
- " let v106 : string = v104 + v6 \n",
- " let v107 : string = v106 + v105 \n",
- " let _run_target_args'_v7 = v107 \n",
- " #endif\n",
- "#if FABLE_COMPILER_PYTHON\n",
- " let v108 : string = \"\\u001b[90m\"\n",
- " let v109 : string = method16()\n",
- " let v110 : string = v108 + v6 \n",
- " let v111 : string = v110 + v109 \n",
- " let _run_target_args'_v7 = v111 \n",
- " #endif\n",
- "#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON\n",
- " let v112 : string = \"\\u001b[90m\"\n",
- " let v113 : string = method16()\n",
- " let v114 : string = v112 + v6 \n",
- " let v115 : string = v114 + v113 \n",
- " let _run_target_args'_v7 = v115 \n",
- " #endif\n",
- "#else\n",
- " let v116 : string = \"\\u001b[90m\"\n",
- " let v117 : string = method16()\n",
- " let v118 : string = v116 + v6 \n",
- " let v119 : string = v118 + v117 \n",
- " let _run_target_args'_v7 = v119 \n",
- " #endif\n",
- " let v120 : string = _run_target_args'_v7 \n",
- " v120\n",
- "and method18 (v0 : int32, v1 : string) : string =\n",
- " let v2 : string = method15()\n",
- " let v3 : Mut3 = {l0 = v2} : Mut3\n",
- " let v4 : string = \"{ \"\n",
- " let v5 : string = $\"{v4}\"\n",
- " let v8 : unit = ()\n",
- " let v9 : (unit -> unit) = closure7(v3, v5)\n",
- " let v10 : unit = (fun () -> v9 (); v8) ()\n",
- " let v13 : string = \"port\"\n",
- " let v14 : string = $\"{v13}\"\n",
- " let v17 : unit = ()\n",
- " let v18 : (unit -> unit) = closure7(v3, v14)\n",
- " let v19 : unit = (fun () -> v18 (); v17) ()\n",
- " let v22 : string = \" = \"\n",
- " let v23 : string = $\"{v22}\"\n",
- " let v26 : unit = ()\n",
- " let v27 : (unit -> unit) = closure7(v3, v23)\n",
- " let v28 : unit = (fun () -> v27 (); v26) ()\n",
- " let v31 : string = $\"{v0}\"\n",
- " let v34 : unit = ()\n",
- " let v35 : (unit -> unit) = closure7(v3, v31)\n",
- " let v36 : unit = (fun () -> v35 (); v34) ()\n",
- " let v39 : string = \"; \"\n",
- " let v40 : string = $\"{v39}\"\n",
- " let v43 : unit = ()\n",
- " let v44 : (unit -> unit) = closure7(v3, v40)\n",
- " let v45 : unit = (fun () -> v44 (); v43) ()\n",
- " let v48 : string = \"ex\"\n",
- " let v49 : string = $\"{v48}\"\n",
- " let v52 : unit = ()\n",
- " let v53 : (unit -> unit) = closure7(v3, v49)\n",
- " let v54 : unit = (fun () -> v53 (); v52) ()\n",
- " let v57 : string = $\"{v22}\"\n",
- " let v60 : unit = ()\n",
- " let v61 : (unit -> unit) = closure7(v3, v57)\n",
- " let v62 : unit = (fun () -> v61 (); v60) ()\n",
- " let v65 : string = $\"{v1}\"\n",
- " let v68 : unit = ()\n",
- " let v69 : (unit -> unit) = closure7(v3, v65)\n",
- " let v70 : unit = (fun () -> v69 (); v68) ()\n",
- " let v73 : string = \" }\"\n",
- " let v74 : string = $\"{v73}\"\n",
- " let v77 : unit = ()\n",
- " let v78 : (unit -> unit) = closure7(v3, v74)\n",
- " let v79 : unit = (fun () -> v78 (); v77) ()\n",
- " let v82 : string = v3.l0\n",
- " v82\n",
- "and method19 (v0 : string) : string =\n",
- " let v1 : char list = []\n",
- " let v2 : (char list -> (char [])) = List.toArray\n",
- " let v3 : (char []) = v2 v1\n",
- " let v6 : string = v0.TrimStart v3 \n",
- " let v30 : char list = []\n",
- " let v31 : char list = '/' :: v30 \n",
- " let v34 : char list = ' ' :: v31 \n",
- " let v37 : (char list -> (char [])) = List.toArray\n",
- " let v38 : (char []) = v37 v34\n",
- " let v41 : string = v6.TrimEnd v38 \n",
- " v41\n",
- "and method17 (v0 : Mut0, v1 : Mut1, v2 : Mut2, v3 : Mut3, v4 : Mut4, v5 : int64 option, v6 : string, v7 : string, v8 : int32, v9 : string) : string =\n",
- " let v10 : string = method18(v8, v9)\n",
- " let v11 : int64 = v0.l0\n",
- " let v12 : string = \"networking.test_port_open\"\n",
- " let v13 : string = $\"{v6} {v7} #{v11} %s{v12} / {v10}\"\n",
- " method19(v13)\n",
- "and closure8 (v0 : Mut0) () : unit =\n",
- " let v1 : int64 = v0.l0\n",
- " let v2 : int64 = v1 + 1L\n",
- " v0.l0 <- v2\n",
- " ()\n",
- "and closure10 (v0 : string) () : unit =\n",
- " let v1 : (string -> unit) = System.Console.WriteLine\n",
- " v1 v0\n",
- "and closure9 () (v0 : string) : unit =\n",
- " let v1 : unit = ()\n",
- " let v2 : (unit -> unit) = closure10(v0)\n",
- " let v3 : unit = (fun () -> v2 (); v1) ()\n",
- " ()\n",
- "and method20 (v0 : string) : unit =\n",
- " let v1 : unit = ()\n",
- " let v2 : (unit -> unit) = closure0()\n",
- " let v3 : unit = (fun () -> v2 (); v1) ()\n",
- " let struct (v17 : Mut0, v18 : Mut1, v19 : Mut2, v20 : Mut3, v21 : Mut4, v22 : int64 option) = TraceState.trace_state.Value\n",
- " let v35 : unit = ()\n",
- " let v36 : (unit -> unit) = closure8(v17)\n",
- " let v37 : unit = (fun () -> v36 (); v35) ()\n",
- " let v40 : (string -> unit) = closure9()\n",
- " (* run_target_args'\n",
- " let v41 : unit = ()\n",
- " run_target_args' *)\n",
- " \n",
- "#if FABLE_COMPILER || WASM || CONTRACT\n",
- " \n",
- "#if FABLE_COMPILER_RUST && !WASM && !CONTRACT\n",
- " let v42 : string = @\"println!(\"\"{}\"\", $0)\"\n",
- " Fable.Core.RustInterop.emitRustExpr v0 v42 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && WASM\n",
- " let v43 : string = @\"println!(\"\"{}\"\", $0)\"\n",
- " Fable.Core.RustInterop.emitRustExpr v0 v43 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && CONTRACT\n",
- " let v44 : string = v20.l0\n",
- " let v45 : bool = v44 = \"\"\n",
- " let v53 : string =\n",
- " if v45 then\n",
- " v0\n",
- " else\n",
- " let v46 : bool = v0 = \"\"\n",
- " if v46 then\n",
- " let v47 : string = v20.l0\n",
- " v47\n",
- " else\n",
- " let v48 : string = v20.l0\n",
- " let v49 : string = \"\\n\"\n",
- " let v50 : string = v48 + v49 \n",
- " let v51 : string = v50 + v0 \n",
- " v51\n",
- " (* run_target_args'\n",
- " let v54 : unit = ()\n",
- " run_target_args' *)\n",
- " \n",
- "#if FABLE_COMPILER || WASM || CONTRACT\n",
- " \n",
- "#if FABLE_COMPILER_RUST && !WASM && !CONTRACT\n",
- " let v55 : string = \"&*$0\"\n",
- " let v56 : Ref = Fable.Core.RustInterop.emitRustExpr v53 v55 \n",
- " let _run_target_args'_v54 = v56 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && WASM\n",
- " let v57 : string = \"&*$0\"\n",
- " let v58 : Ref = Fable.Core.RustInterop.emitRustExpr v53 v57 \n",
- " let _run_target_args'_v54 = v58 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && CONTRACT\n",
- " let v59 : string = \"&*$0\"\n",
- " let v60 : Ref = Fable.Core.RustInterop.emitRustExpr v53 v59 \n",
- " let _run_target_args'_v54 = v60 \n",
- " #endif\n",
- "#if FABLE_COMPILER_TYPESCRIPT\n",
- " let v61 : Ref = v53 |> unbox>\n",
- " let _run_target_args'_v54 = v61 \n",
- " #endif\n",
- "#if FABLE_COMPILER_PYTHON\n",
- " let v64 : Ref = v53 |> unbox>\n",
- " let _run_target_args'_v54 = v64 \n",
- " #endif\n",
- "#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON\n",
- " let v67 : Ref = v53 |> unbox>\n",
- " let _run_target_args'_v54 = v67 \n",
- " #endif\n",
- "#else\n",
- " let v70 : Ref = v53 |> unbox>\n",
- " let _run_target_args'_v54 = v70 \n",
- " #endif\n",
- " let v73 : Ref = _run_target_args'_v54 \n",
- " let v78 : string = $\"$0.chars()\"\n",
- " let v79 : Mut<_> = Fable.Core.RustInterop.emitRustExpr v73 v78 \n",
- " let v80 : string = \"$0\"\n",
- " let v81 : _ = Fable.Core.RustInterop.emitRustExpr v79 v80 \n",
- " let v82 : string = \"$0.collect::>()\"\n",
- " let v83 : Vec = Fable.Core.RustInterop.emitRustExpr v81 v82 \n",
- " let v84 : string = \"$0.chunks(15000).map(|x| x.into_iter().map(|x| x.clone()).collect::>()).collect::>()\"\n",
- " let v85 : Vec> = Fable.Core.RustInterop.emitRustExpr v83 v84 \n",
- " let v86 : string = \"true; let _vec_map : Vec<_> = $0.into_iter().map(|x| { //\"\n",
- " let v87 : bool = Fable.Core.RustInterop.emitRustExpr v85 v86 \n",
- " let v88 : string = \"x\"\n",
- " let v89 : Vec = Fable.Core.RustInterop.emitRustExpr () v88 \n",
- " let v90 : string = \"String::from_iter($0)\"\n",
- " let v91 : std_string_String = Fable.Core.RustInterop.emitRustExpr v89 v90 \n",
- " let v92 : string = \"true; $0 }).collect::>()\"\n",
- " let v93 : bool = Fable.Core.RustInterop.emitRustExpr v91 v92 \n",
- " let v94 : string = \"_vec_map\"\n",
- " let v95 : Vec = Fable.Core.RustInterop.emitRustExpr () v94 \n",
- " let v96 : string = \"$0.len()\"\n",
- " let v97 : unativeint = Fable.Core.RustInterop.emitRustExpr v95 v96 \n",
- " let v98 : int32 = v97 |> int32 \n",
- " let v105 : string = \"\"\n",
- " let v106 : bool = v0 <> v105 \n",
- " let v110 : bool =\n",
- " if v106 then\n",
- " let v109 : bool = v98 <= 1\n",
- " v109\n",
- " else\n",
- " false\n",
- " if v110 then\n",
- " v20.l0 <- v53\n",
- " ()\n",
- " else\n",
- " v20.l0 <- v105\n",
- " let v111 : string = \"true; $0.into_iter().for_each(|x| { //\"\n",
- " let v112 : bool = Fable.Core.RustInterop.emitRustExpr v95 v111 \n",
- " let v113 : string = \"x\"\n",
- " let v114 : std_string_String = Fable.Core.RustInterop.emitRustExpr () v113 \n",
- " let v115 : string = $\"true; near_sdk::log!(\\\"{{}}\\\", $0)\"\n",
- " let v116 : bool = Fable.Core.RustInterop.emitRustExpr v114 v115 \n",
- " let v117 : string = $\"true\"\n",
- " let v118 : bool = Fable.Core.RustInterop.emitRustExpr () v117 \n",
- " let v119 : string = \"true; }); //\"\n",
- " let v120 : bool = Fable.Core.RustInterop.emitRustExpr () v119 \n",
- " ()\n",
- " #endif\n",
- "#if FABLE_COMPILER_TYPESCRIPT\n",
- " v40 v0\n",
- " #endif\n",
- "#if FABLE_COMPILER_PYTHON\n",
- " v40 v0\n",
- " #endif\n",
- "#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON\n",
- " v40 v0\n",
- " #endif\n",
- "#else\n",
- " v40 v0\n",
- " #endif\n",
- " // run_target_args' is_unit\n",
- " let v121 : (string -> unit) = v18.l0\n",
- " v121 v0\n",
- "and closure5 (v0 : int32, v1 : exn) () : unit =\n",
- " let v2 : US0 = US0_0\n",
- " let v3 : bool = method8(v2)\n",
- " if v3 then\n",
- " let v4 : unit = ()\n",
- " let v5 : (unit -> unit) = closure0()\n",
- " let v6 : unit = (fun () -> v5 (); v4) ()\n",
- " let struct (v20 : Mut0, v21 : Mut1, v22 : Mut2, v23 : Mut3, v24 : Mut4, v25 : int64 option) = TraceState.trace_state.Value\n",
- " let v38 : string = method9(v20, v21, v22, v23, v24, v25)\n",
- " let v39 : string = method13()\n",
- " (* run_target_args'\n",
- " let v40 : unit = ()\n",
- " run_target_args' *)\n",
- " \n",
- "#if FABLE_COMPILER || WASM || CONTRACT\n",
- " \n",
- "#if FABLE_COMPILER_RUST && !WASM && !CONTRACT\n",
- " let v41 : string = $\"%A{v1}\"\n",
- " let _run_target_args'_v40 = v41 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && WASM\n",
- " let v44 : string = $\"%A{v1}\"\n",
- " let _run_target_args'_v40 = v44 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && CONTRACT\n",
- " let v47 : string = $\"%A{v1}\"\n",
- " let _run_target_args'_v40 = v47 \n",
- " #endif\n",
- "#if FABLE_COMPILER_TYPESCRIPT\n",
- " let v50 : string = $\"%A{v1}\"\n",
- " let _run_target_args'_v40 = v50 \n",
- " #endif\n",
- "#if FABLE_COMPILER_PYTHON\n",
- " let v53 : string = $\"%A{v1}\"\n",
- " let _run_target_args'_v40 = v53 \n",
- " #endif\n",
- "#if !FABLE_COMPILER_RUST && !FABLE_COMPILER_TYPESCRIPT && !FABLE_COMPILER_PYTHON\n",
- " let v56 : string = $\"%A{v1}\"\n",
- " let _run_target_args'_v40 = v56 \n",
- " #endif\n",
- "#else\n",
- " let v59 : string = $\"{v1.GetType ()}: {v1.Message}\"\n",
- " let _run_target_args'_v40 = v59 \n",
- " #endif\n",
- " let v60 : string = _run_target_args'_v40 \n",
- " let v65 : string = method17(v20, v21, v22, v23, v24, v25, v38, v39, v0, v60)\n",
- " method20(v65)\n",
- "and method7 (v0 : string, v1 : int32) : Async =\n",
- " (* run_target_args'\n",
- " let v2 : unit = ()\n",
- " run_target_args' *)\n",
- " \n",
- "#if FABLE_COMPILER || WASM || CONTRACT\n",
- " \n",
- "#if FABLE_COMPILER_RUST && !WASM && !CONTRACT\n",
- " let v3 : Async = null |> unbox>\n",
- " let _run_target_args'_v2 = v3 \n",
- " #endif\n",
- "#if FABLE_COMPILER_RUST && WASM\n",
- " let v6 : Async