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("