diff --git a/.github/workflows/Benchmark.yml b/.github/workflows/Benchmark.yml index f4f28dbba..ac73754c3 100644 --- a/.github/workflows/Benchmark.yml +++ b/.github/workflows/Benchmark.yml @@ -12,13 +12,13 @@ jobs: Benchmark: runs-on: ubuntu-latest steps: - - uses: actions/checkout + - uses: actions/checkout@v6 - name: Setup .NET 10 - uses: actions/setup-dotnet + uses: actions/setup-dotnet@v5 with: dotnet-version: '10.x' - include-prerelease: true + dotnet-quality: 'preview' - name: 'Inter version CPU benchmark' run: | diff --git a/.github/workflows/CPPBuild.yml b/.github/workflows/CPPBuild.yml index 316a75d98..89313b13b 100644 --- a/.github/workflows/CPPBuild.yml +++ b/.github/workflows/CPPBuild.yml @@ -19,17 +19,18 @@ jobs: - os: ubuntu-latest flag: linux-x64 - os: macos-latest - flag: osx-x64 + flag: osx-arm64 runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout + - uses: actions/checkout@v6 - name: Setup .NET 10 - uses: actions/setup-dotnet + uses: actions/setup-dotnet@v5 with: dotnet-version: '10.x' + dotnet-quality: 'preview' - name: 'Generating exports' run: | @@ -49,14 +50,14 @@ jobs: cd Sources/Wrappers/AngouriMath.CPP.Exporting mkdir ../AngouriMath.CPP.Importing/out-x64 call "C:\Program Files\Microsoft Visual Studio\18\Enterprise\VC\Auxiliary\Build\vcvars64.bat" - dotnet publish -p:NativeLib=Shared -p:SelfContained=true -r ${{ matrix.flag }} -c release + dotnet publish -p:NativeLib=Shared -p:SelfContained=true -p:PublishAot=true -r ${{ matrix.flag }} -c release - name: 'Building the library into native for Linux & MacOS' if: ${{ matrix.os != 'windows-latest' }} run: | cd Sources/Wrappers/AngouriMath.CPP.Exporting mkdir ../AngouriMath.CPP.Importing/out-x64 - dotnet publish -p:NativeLib=Shared -p:SelfContained=true -r ${{ matrix.flag }} -c release + dotnet publish -p:NativeLib=Shared -p:SelfContained=true -p:PublishAot=true -r ${{ matrix.flag }} -c release - name: 'Renaming the library for Linux' if: ${{ matrix.os == 'ubuntu-latest' }} @@ -72,7 +73,7 @@ jobs: install_name_tool -id "@rpath/libAngouriMath.CPP.Exporting.dylib" libAngouriMath.CPP.Exporting.dylib - name: 'Uploading artifacts' - uses: actions/upload-artifact + uses: actions/upload-artifact@v6 with: name: AngouriMath.CPP-${{ matrix.os }}-x64 path: ./Sources/Wrappers/AngouriMath.CPP.Importing diff --git a/.github/workflows/CPPTest.yml b/.github/workflows/CPPTest.yml index 58d854e62..20d07bb60 100644 --- a/.github/workflows/CPPTest.yml +++ b/.github/workflows/CPPTest.yml @@ -21,18 +21,18 @@ jobs: - os: ubuntu-latest flag: linux-x64 - os: macos-latest - flag: osx-x64 + flag: osx-arm64 runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout + - uses: actions/checkout@v6 - name: Setup .NET 10 - uses: actions/setup-dotnet + uses: actions/setup-dotnet@v5 with: dotnet-version: '10.x' - include-prerelease: true + dotnet-quality: 'preview' - name: 'Install some libs for Linux' if: ${{ matrix.os == 'ubuntu-latest' }} @@ -47,14 +47,14 @@ jobs: cd Sources/Wrappers/AngouriMath.CPP.Exporting mkdir ../AngouriMath.CPP.Importing/out-x64 call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat" - dotnet publish -p:NativeLib=Shared -p:SelfContained=true -r ${{ matrix.flag }} -c release + dotnet publish -p:NativeLib=Shared -p:SelfContained=true -p:PublishAot=true -r ${{ matrix.flag }} -c release - name: 'Building the library into native for Linux & MacOS' if: ${{ matrix.os != 'windows-latest' }} run: | cd Sources/Wrappers/AngouriMath.CPP.Exporting mkdir ../AngouriMath.CPP.Importing/out-x64 - dotnet publish -p:NativeLib=Shared -p:SelfContained=true -r ${{ matrix.flag }} -c release + dotnet publish -p:NativeLib=Shared -p:SelfContained=true -p:PublishAot=true -r ${{ matrix.flag }} -c release - name: 'Preparing tests' run: | @@ -66,7 +66,8 @@ jobs: if: ${{ matrix.os == 'windows-latest' }} run: | cd ${{ env.tests_path }} - copy "..\..\..\Wrappers\AngouriMath.CPP.Importing\out-x64\AngouriMath.CPP.Exporting.dll" "build\Debug\AngouriMath.CPP.Exporting.dll" + copy "..\..\..\Wrappers\AngouriMath.CPP.Importing\out-x64\AngouriMath.CPP.Exporting.dll" "build\Debug\AngouriMath.CPP.Exporting.dll" # needed for run time + copy "..\..\..\Wrappers\AngouriMath.CPP.Importing\out-x64\AngouriMath.CPP.Exporting.lib" "build\Debug\AngouriMath.CPP.Exporting.lib" # needed for link time - name: 'Copying the library for Linux' if: ${{ matrix.os == 'ubuntu-latest' }} @@ -79,9 +80,6 @@ jobs: run: | cd ${{ env.tests_path }} cp -r "../../../Wrappers/AngouriMath.CPP.Importing/out-x64/AngouriMath.CPP.Exporting.dylib" "build/Debug/libAngouriMath.CPP.Exporting.dylib" - cd build/Debug - path=$(pwd) - install_name_tool -id "$path/libAngouriMath.CPP.Exporting.dylib" libAngouriMath.CPP.Exporting.dylib - name: 'Building and running tests' run: | @@ -92,7 +90,7 @@ jobs: - name: 'Upload logs' if: failure() - uses: actions/upload-artifact + uses: actions/upload-artifact@v6 with: name: Logs path: ./Sources/Tests/CPPWrapperUnitTests/tests/build/Testing/Temporary diff --git a/.github/workflows/CSharpBuild.yml b/.github/workflows/CSharpBuild.yml index fa6731a39..ebc874807 100644 --- a/.github/workflows/CSharpBuild.yml +++ b/.github/workflows/CSharpBuild.yml @@ -15,14 +15,14 @@ jobs: matrix: os: [windows-latest, ubuntu-latest, macos-latest] steps: - - uses: actions/checkout + - uses: actions/checkout@v6 with: submodules: 'recursive' - name: Setup .NET 10 - uses: actions/setup-dotnet + uses: actions/setup-dotnet@v5 with: dotnet-version: '10.x' - include-prerelease: true + dotnet-quality: 'preview' - name: Build AngouriMath run: | diff --git a/.github/workflows/CSharpTest.yml b/.github/workflows/CSharpTest.yml index 97cf75eb8..325ae3526 100644 --- a/.github/workflows/CSharpTest.yml +++ b/.github/workflows/CSharpTest.yml @@ -17,15 +17,15 @@ jobs: runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout + - uses: actions/checkout@v6 with: submodules: 'recursive' - name: Setup .NET 10 - uses: actions/setup-dotnet + uses: actions/setup-dotnet@v5 with: dotnet-version: '10.x' - include-prerelease: true + dotnet-quality: 'preview' - name: Build Tests # We need it to be able to retry run: | @@ -51,7 +51,7 @@ jobs: - name: 'Upload report as artifact' if: ${{ matrix.os == 'windows-latest' }} - uses: actions/upload-artifact + uses: actions/upload-artifact@v6 with: name: Report path: ./Sources/Tests/UnitTests/coverage.opencover.xml @@ -59,6 +59,6 @@ jobs: - name: 'Send to codecov' if: ${{ matrix.os == 'windows-latest' }} - uses: codecov/codecov-action + uses: codecov/codecov-action@v5 with: file: ./Sources/Tests/UnitTests/coverage.opencover.xml diff --git a/.github/workflows/EverythingBuild.yml b/.github/workflows/EverythingBuild.yml index 77608ac7e..efb903b10 100644 --- a/.github/workflows/EverythingBuild.yml +++ b/.github/workflows/EverythingBuild.yml @@ -13,15 +13,15 @@ jobs: runs-on: windows-latest # Window application cannot be run on other OS steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v6 with: submodules: 'recursive' - name: Setup .NET 10 - uses: actions/setup-dotnet + uses: actions/setup-dotnet@v5 with: dotnet-version: '10.x' - include-prerelease: true + dotnet-quality: 'preview' - name: Build AM run: dotnet build Sources/AngouriMath/AngouriMath/AngouriMath.csproj diff --git a/.github/workflows/FSharpBuild.yml b/.github/workflows/FSharpBuild.yml index a2b905afd..1bddeecc2 100644 --- a/.github/workflows/FSharpBuild.yml +++ b/.github/workflows/FSharpBuild.yml @@ -17,15 +17,15 @@ jobs: runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout + - uses: actions/checkout@v6 with: submodules: 'recursive' - name: Setup .NET 10 - uses: actions/setup-dotnet + uses: actions/setup-dotnet@v5 with: dotnet-version: '10.x' - include-prerelease: true + dotnet-quality: 'preview' - name: Build run: | diff --git a/.github/workflows/FSharpTest.yml b/.github/workflows/FSharpTest.yml index 92072b976..c09fd4fdb 100644 --- a/.github/workflows/FSharpTest.yml +++ b/.github/workflows/FSharpTest.yml @@ -17,15 +17,15 @@ jobs: runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout + - uses: actions/checkout@v6 with: submodules: 'recursive' - name: Setup .NET 10 - uses: actions/setup-dotnet + uses: actions/setup-dotnet@v5 with: dotnet-version: '10.x' - include-prerelease: true + dotnet-quality: 'preview' - name: Build Tests # We need it to be able to retry run: | diff --git a/.github/workflows/IntegrationTest.yml b/.github/workflows/IntegrationTest.yml index 01dbac729..dfb0c3661 100644 --- a/.github/workflows/IntegrationTest.yml +++ b/.github/workflows/IntegrationTest.yml @@ -19,11 +19,11 @@ jobs: ConsoleApp: runs-on: windows-latest steps: - - uses: actions/checkout - - uses: actions/setup-dotnet + - uses: actions/checkout@v6 + - uses: actions/setup-dotnet@v5 with: dotnet-version: '10.x' - include-prerelease: true + dotnet-quality: 'preview' - name: 'Pack AngouriMath' run: | @@ -61,11 +61,11 @@ jobs: ClassLibConsoleApp: runs-on: windows-latest steps: - - uses: actions/checkout - - uses: actions/setup-dotnet + - uses: actions/checkout@v6 + - uses: actions/setup-dotnet@v5 with: dotnet-version: '10.x' - include-prerelease: true + dotnet-quality: 'preview' - name: 'Pack AngouriMath' run: | diff --git a/.github/workflows/InteractiveBuild.yml b/.github/workflows/InteractiveBuild.yml index 127bc6187..2b9ed9e5e 100644 --- a/.github/workflows/InteractiveBuild.yml +++ b/.github/workflows/InteractiveBuild.yml @@ -17,15 +17,15 @@ jobs: runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v6 with: submodules: 'recursive' - name: Setup .NET 10 - uses: actions/setup-dotnet + uses: actions/setup-dotnet@v5 with: dotnet-version: '10.x' - include-prerelease: true + dotnet-quality: 'preview' - name: Build run: | diff --git a/.github/workflows/InteractiveTest.yml b/.github/workflows/InteractiveTest.yml index bef6d70b0..d301aab3a 100644 --- a/.github/workflows/InteractiveTest.yml +++ b/.github/workflows/InteractiveTest.yml @@ -17,14 +17,15 @@ jobs: runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout + - uses: actions/checkout@v6 with: submodules: 'recursive' - name: Setup .NET 10 - uses: actions/setup-dotnet + uses: actions/setup-dotnet@v5 with: dotnet-version: '10.x' + dotnet-quality: 'preview' - name: Build Tests # We need it to be able to retry run: | diff --git a/.github/workflows/Nuget.yml b/.github/workflows/Nuget.yml index 3d2590802..071d80e10 100644 --- a/.github/workflows/Nuget.yml +++ b/.github/workflows/Nuget.yml @@ -10,12 +10,12 @@ jobs: runs-on: ubuntu-latest steps: - name: Setup .NET 10 - uses: actions/setup-dotnet + uses: actions/setup-dotnet@v5 with: dotnet-version: '10.x' - include-prerelease: true + dotnet-quality: 'preview' - - uses: actions/checkout + - uses: actions/checkout@v6 - name: 'Pack AngouriMath' run: | diff --git a/.github/workflows/TerminalNightly.yml b/.github/workflows/TerminalNightly.yml index 1192de175..307e37b3f 100644 --- a/.github/workflows/TerminalNightly.yml +++ b/.github/workflows/TerminalNightly.yml @@ -12,15 +12,15 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout + - uses: actions/checkout@v6 with: submodules: 'recursive' - name: Setup .NET 10 - uses: actions/setup-dotnet + uses: actions/setup-dotnet@v5 with: dotnet-version: '10.x' - include-prerelease: true + dotnet-quality: 'preview' - name: 'Build terminal' run: | diff --git a/Sources/AngouriMath.sln b/Sources/AngouriMath.sln index 9d6e27bce..de7a3bd8b 100644 --- a/Sources/AngouriMath.sln +++ b/Sources/AngouriMath.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.0.31903.59 +# Visual Studio Version 18 +VisualStudioVersion = 18.1.11312.151 d18.0 MinimumVisualStudioVersion = 10.0.40219.1 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AngouriMath", "AngouriMath", "{F604DFEB-8939-4B4F-8E37-1FDC06E26D5A}" EndProject @@ -35,14 +35,37 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DotnetBenchmark", "Tests\Do EndProject Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "TerminalUnitTests", "Tests\TerminalUnitTests\TerminalUnitTests.fsproj", "{90552AEB-7563-4C06-A0B7-9F810A572E8A}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Analyzers.CodeFixes", "Analyzers\Analyzers.CodeFixes\Analyzers.CodeFixes.csproj", "{9E5FEA3D-F9DE-2F38-D434-8C97DF80633F}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Analyzers.Debug", "Analyzers\Analyzers.Debug\Analyzers.Debug.csproj", "{7C7DE223-D688-E7C3-1021-C86827910720}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AngouriMathPlot", "Samples\AngouriMathPlot\AngouriMathPlot.csproj", "{4B2B48EE-B454-A3AC-5534-63E894592140}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GraphicExample", "Samples\GraphicExample\GraphicExample.csproj", "{13409571-0ADC-B9C6-2EE7-44DF0B4AD43C}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Terminal", "Terminal", "{7FCB69C7-EC31-4F61-BDD9-43B9DEED8750}" +EndProject +Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "AngouriMath.Terminal", "Terminal\AngouriMath.Terminal\AngouriMath.Terminal.fsproj", "{E34FC29D-1046-0B02-E647-858434BFD9E0}" +EndProject +Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "AngouriMath.Terminal.Lib", "Terminal\AngouriMath.Terminal.Lib\AngouriMath.Terminal.Lib.fsproj", "{405E214B-17A6-83E0-90A1-4F8B7213954F}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Utils", "Utils", "{DC3A3E46-854E-403D-8FA5-561DF66277D4}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Utils", "Utils\Utils\Utils.csproj", "{9E733914-18F8-CD3A-EDB8-F32FFEF4A3DA}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Wrappers", "Wrappers", "{D8022D2F-1DCE-4CE1-98DF-70B00D719D59}" +EndProject +Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "AngouriMath.FSharp", "Wrappers\AngouriMath.FSharp\AngouriMath.FSharp.fsproj", "{FD30A551-F0D8-071A-9356-0BF0CDFB2FCC}" +EndProject +Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "AngouriMath.Interactive", "Wrappers\AngouriMath.Interactive\AngouriMath.Interactive.fsproj", "{ABAD0619-30C7-242D-670F-2ECC908074A2}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AngouriMath.CPP.Exporting", "Wrappers\AngouriMath.CPP.Exporting\AngouriMath.CPP.Exporting.csproj", "{40BCFEFF-F691-B86D-DEF7-1B3D75C72011}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {2D495EED-3C58-4E07-9152-9FE8C3CD522F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {2D495EED-3C58-4E07-9152-9FE8C3CD522F}.Debug|Any CPU.Build.0 = Debug|Any CPU @@ -92,6 +115,49 @@ Global {90552AEB-7563-4C06-A0B7-9F810A572E8A}.Debug|Any CPU.Build.0 = Debug|Any CPU {90552AEB-7563-4C06-A0B7-9F810A572E8A}.Release|Any CPU.ActiveCfg = Release|Any CPU {90552AEB-7563-4C06-A0B7-9F810A572E8A}.Release|Any CPU.Build.0 = Release|Any CPU + {9E5FEA3D-F9DE-2F38-D434-8C97DF80633F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9E5FEA3D-F9DE-2F38-D434-8C97DF80633F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9E5FEA3D-F9DE-2F38-D434-8C97DF80633F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9E5FEA3D-F9DE-2F38-D434-8C97DF80633F}.Release|Any CPU.Build.0 = Release|Any CPU + {7C7DE223-D688-E7C3-1021-C86827910720}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7C7DE223-D688-E7C3-1021-C86827910720}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7C7DE223-D688-E7C3-1021-C86827910720}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7C7DE223-D688-E7C3-1021-C86827910720}.Release|Any CPU.Build.0 = Release|Any CPU + {4B2B48EE-B454-A3AC-5534-63E894592140}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4B2B48EE-B454-A3AC-5534-63E894592140}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4B2B48EE-B454-A3AC-5534-63E894592140}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4B2B48EE-B454-A3AC-5534-63E894592140}.Release|Any CPU.Build.0 = Release|Any CPU + {13409571-0ADC-B9C6-2EE7-44DF0B4AD43C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {13409571-0ADC-B9C6-2EE7-44DF0B4AD43C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {13409571-0ADC-B9C6-2EE7-44DF0B4AD43C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {13409571-0ADC-B9C6-2EE7-44DF0B4AD43C}.Release|Any CPU.Build.0 = Release|Any CPU + {E34FC29D-1046-0B02-E647-858434BFD9E0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E34FC29D-1046-0B02-E647-858434BFD9E0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E34FC29D-1046-0B02-E647-858434BFD9E0}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E34FC29D-1046-0B02-E647-858434BFD9E0}.Release|Any CPU.Build.0 = Release|Any CPU + {405E214B-17A6-83E0-90A1-4F8B7213954F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {405E214B-17A6-83E0-90A1-4F8B7213954F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {405E214B-17A6-83E0-90A1-4F8B7213954F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {405E214B-17A6-83E0-90A1-4F8B7213954F}.Release|Any CPU.Build.0 = Release|Any CPU + {9E733914-18F8-CD3A-EDB8-F32FFEF4A3DA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9E733914-18F8-CD3A-EDB8-F32FFEF4A3DA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9E733914-18F8-CD3A-EDB8-F32FFEF4A3DA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9E733914-18F8-CD3A-EDB8-F32FFEF4A3DA}.Release|Any CPU.Build.0 = Release|Any CPU + {FD30A551-F0D8-071A-9356-0BF0CDFB2FCC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FD30A551-F0D8-071A-9356-0BF0CDFB2FCC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FD30A551-F0D8-071A-9356-0BF0CDFB2FCC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FD30A551-F0D8-071A-9356-0BF0CDFB2FCC}.Release|Any CPU.Build.0 = Release|Any CPU + {ABAD0619-30C7-242D-670F-2ECC908074A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {ABAD0619-30C7-242D-670F-2ECC908074A2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {ABAD0619-30C7-242D-670F-2ECC908074A2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {ABAD0619-30C7-242D-670F-2ECC908074A2}.Release|Any CPU.Build.0 = Release|Any CPU + {40BCFEFF-F691-B86D-DEF7-1B3D75C72011}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {40BCFEFF-F691-B86D-DEF7-1B3D75C72011}.Debug|Any CPU.Build.0 = Debug|Any CPU + {40BCFEFF-F691-B86D-DEF7-1B3D75C72011}.Release|Any CPU.ActiveCfg = Release|Any CPU + {40BCFEFF-F691-B86D-DEF7-1B3D75C72011}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution {2D495EED-3C58-4E07-9152-9FE8C3CD522F} = {F604DFEB-8939-4B4F-8E37-1FDC06E26D5A} @@ -106,5 +172,15 @@ Global {FDEE9428-74CB-44ED-BBD7-DAAC9CCBADCA} = {9869C55D-A753-4DE2-9C22-CCF768C6EC53} {C61DD310-AF04-4B4F-8A34-59FFC8A78F41} = {9869C55D-A753-4DE2-9C22-CCF768C6EC53} {90552AEB-7563-4C06-A0B7-9F810A572E8A} = {9869C55D-A753-4DE2-9C22-CCF768C6EC53} + {9E5FEA3D-F9DE-2F38-D434-8C97DF80633F} = {358BFC2B-1A5B-4740-8BA1-0E53EFC7EDAC} + {7C7DE223-D688-E7C3-1021-C86827910720} = {358BFC2B-1A5B-4740-8BA1-0E53EFC7EDAC} + {4B2B48EE-B454-A3AC-5534-63E894592140} = {822E64E5-9BB9-4702-B704-18129D0BC9C7} + {13409571-0ADC-B9C6-2EE7-44DF0B4AD43C} = {822E64E5-9BB9-4702-B704-18129D0BC9C7} + {E34FC29D-1046-0B02-E647-858434BFD9E0} = {7FCB69C7-EC31-4F61-BDD9-43B9DEED8750} + {405E214B-17A6-83E0-90A1-4F8B7213954F} = {7FCB69C7-EC31-4F61-BDD9-43B9DEED8750} + {9E733914-18F8-CD3A-EDB8-F32FFEF4A3DA} = {DC3A3E46-854E-403D-8FA5-561DF66277D4} + {FD30A551-F0D8-071A-9356-0BF0CDFB2FCC} = {D8022D2F-1DCE-4CE1-98DF-70B00D719D59} + {ABAD0619-30C7-242D-670F-2ECC908074A2} = {D8022D2F-1DCE-4CE1-98DF-70B00D719D59} + {40BCFEFF-F691-B86D-DEF7-1B3D75C72011} = {D8022D2F-1DCE-4CE1-98DF-70B00D719D59} EndGlobalSection EndGlobal diff --git a/Sources/Terminal/AngouriMath.Terminal.Lib/AngouriMath.Terminal.Lib.fsproj b/Sources/Terminal/AngouriMath.Terminal.Lib/AngouriMath.Terminal.Lib.fsproj index 4a4ece760..fe21feccb 100644 --- a/Sources/Terminal/AngouriMath.Terminal.Lib/AngouriMath.Terminal.Lib.fsproj +++ b/Sources/Terminal/AngouriMath.Terminal.Lib/AngouriMath.Terminal.Lib.fsproj @@ -1,7 +1,7 @@  - net7.0 + net10.0 true @@ -14,8 +14,7 @@ - - + diff --git a/Sources/Terminal/AngouriMath.Terminal.Lib/FSharpInteractive.fs b/Sources/Terminal/AngouriMath.Terminal.Lib/FSharpInteractive.fs index 8a355c865..115e3bc5a 100644 --- a/Sources/Terminal/AngouriMath.Terminal.Lib/FSharpInteractive.fs +++ b/Sources/Terminal/AngouriMath.Terminal.Lib/FSharpInteractive.fs @@ -17,11 +17,9 @@ open AssemblyLoadBuilder open AngouriMath.FSharp.Core open AngouriMath.InteractiveExtension - let options = JsonSerializerOptions () JsonFSharpConverter () |> options.Converters.Add - let private objectEncode (o : obj) = match o with | :? ILatexiseable as latexiseable -> @@ -41,7 +39,6 @@ let private objectDecode (s : string Option) = JsonSerializer.Deserialize (latex.[EncodingLatexPrefix.Length..], options) | _ -> VoidSuccess - let execute (kernel : FSharpKernel) code = let submitCode = SubmitCode code let computed = (kernel.SendAsync submitCode).Result // Yes. It's Result. @@ -49,26 +46,20 @@ let execute (kernel : FSharpKernel) code = let mutable nonVoidResponse : string Option = None let mutable res : ExecutionResult Option = None - computed.KernelEvents.Subscribe (new Action(fun e -> - match e with - | :? CommandSucceeded -> - res <- objectDecode nonVoidResponse |> Some - | :? CommandFailed as failed -> - res <- Error failed.Message |> Some - | :? DisplayEvent as display -> - nonVoidResponse <- (Seq.head display.FormattedValues).Value |> Some - | _ -> () - )) - |> (fun observer -> observer.Dispose()) + for e in computed.Events do + match e with + | :? CommandSucceeded -> + res <- objectDecode nonVoidResponse |> Some + | :? CommandFailed as failed -> + res <- Error failed.Message |> Some + | :? DisplayEvent as display -> + nonVoidResponse <- (Seq.head display.FormattedValues).Value |> Some + | _ -> () match res with | None -> EndOfFile | Some res -> res - - - - let createKernel () = let kernel = new FSharpKernel () @@ -94,4 +85,4 @@ let createKernel () = |> (fun f -> Func f) |> (fun f -> Formatter.Register (f, "text/plain")) - } + } \ No newline at end of file diff --git a/Sources/Terminal/AngouriMath.Terminal/AngouriMath.Terminal.fsproj b/Sources/Terminal/AngouriMath.Terminal/AngouriMath.Terminal.fsproj index ca6e51893..2a38d825e 100644 --- a/Sources/Terminal/AngouriMath.Terminal/AngouriMath.Terminal.fsproj +++ b/Sources/Terminal/AngouriMath.Terminal/AngouriMath.Terminal.fsproj @@ -31,7 +31,6 @@ - diff --git a/Sources/Terminal/AngouriMath.Terminal/UserInterface.fs b/Sources/Terminal/AngouriMath.Terminal/UserInterface.fs index 7ce0a5a83..01186ab71 100644 --- a/Sources/Terminal/AngouriMath.Terminal/UserInterface.fs +++ b/Sources/Terminal/AngouriMath.Terminal/UserInterface.fs @@ -88,7 +88,4 @@ type TimePrefixEditorPromt() = let getLineEditor (ansiConsole : IAnsiConsole) = - let lineEditor = LineEditor (ansiConsole, null) - lineEditor.Highlighter <- getWordHighlighter () - lineEditor.Prompt <- TimePrefixEditorPromt () - lineEditor \ No newline at end of file + LineEditor (ansiConsole, null, Highlighter = getWordHighlighter (), Prompt = TimePrefixEditorPromt ()) \ No newline at end of file diff --git a/Sources/Tests/CPPWrapperUnitTests/tests/CMakeLists.txt b/Sources/Tests/CPPWrapperUnitTests/tests/CMakeLists.txt index ca00ce3d1..8ac8ecc9f 100644 --- a/Sources/Tests/CPPWrapperUnitTests/tests/CMakeLists.txt +++ b/Sources/Tests/CPPWrapperUnitTests/tests/CMakeLists.txt @@ -1,20 +1,17 @@ -cmake_minimum_required (VERSION 3.8) +cmake_minimum_required (VERSION 3.14) project ("CPlusPlusWrapperUnitTests") set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) - set(AM_TESTS_ENTRY_POINT "RunTests.cpp") - - -### Google Test 1/2 +### Google Test 1/2 - copy from https://google.github.io/googletest/quickstart-cmake.html include(FetchContent) FetchContent_Declare( googletest - URL https://github.com/google/googletest/archive/df7fee587d442b372ef43bd66c6a2f5c9af8c5eb.zip + URL https://github.com/google/googletest/archive/03597a01ee50ed33e9dfd640b249b4be3799d395.zip ) # For Windows: Prevent overriding the parent project's compiler/linker settings set(gtest_force_shared_crt ON CACHE BOOL "" FORCE) diff --git a/Sources/Tests/InteractiveWrapperUnitTests/HtmlOutput.fs b/Sources/Tests/InteractiveWrapperUnitTests/HtmlOutput.fs index d02df0b06..b2a5ddc11 100644 --- a/Sources/Tests/InteractiveWrapperUnitTests/HtmlOutput.fs +++ b/Sources/Tests/InteractiveWrapperUnitTests/HtmlOutput.fs @@ -82,7 +82,6 @@ let ``Latex with magic EInteger`` () = let output = entity.ToDisplayString("text/plain") Assert.Equal("2", output) - [] let ``Latex formatter automatically applied in Interactive`` () = @@ -95,28 +94,24 @@ let ``Latex formatter automatically applied in Interactive`` () = let r = "#r \"nuget:AngouriMath.Interactive, *-*\"" let code = "open Core\nparsed \"x / 2\"" - using ((new FSharpKernel()) - .UseNugetDirective() - .UseKernelHelpers().UseDefaultNamespaces()) (fun kernel -> - async { - // Execute #i magic command and see for no errors - let! after_i = kernel.SendAsync(SubmitCode(i), System.Threading.CancellationToken.None) |> Async.AwaitTask - after_i.KernelEvents.Subscribe(fun ev -> Assert.False(ev :? CommandFailed, "After i: " + ev.ToDisplayString())) |> ignore - - // Execute #r magic command and see for no errors - let! after_r = kernel.SendAsync(SubmitCode(r), System.Threading.CancellationToken.None) |> Async.AwaitTask - after_r.KernelEvents.Subscribe(fun ev -> Assert.False(ev :? CommandFailed, "After r: " + ev.ToDisplayString())) |> ignore - - // Execute our code and find the right LaTeX code - let! res = kernel.SendAsync(SubmitCode(code), System.Threading.CancellationToken.None) |> Async.AwaitTask - let mutable displayValueReceived = false - res.KernelEvents.Subscribe(fun ev -> - match ev with - | :? DisplayEvent as dp -> - Assert.Contains("