dotnet / interactive

.NET Interactive combines the power of .NET with many other languages to create notebooks, REPLs, and embedded coding experiences. Share code, explore data, write, and learn across your apps in ways you couldn't before.
MIT License
2.8k stars 374 forks source link

improve Prebuild parallelizability #3523

Closed jonsequitur closed 2 months ago

jonsequitur commented 2 months ago

The dotnet try compilation process was focused on single-user local execution while Try .NET's was focused on multiple concurrent users. These changes adjust the behaviors toward the latter, reducing mutability side-effects by handing out a new Workspace for each operation instead of attempting to reuse them.

Some performance regression is likely here, which I'll address in a later PR.