dotnet-websharper / core

WebSharper - Full-stack, functional, reactive web apps and microservices in F# and C#
https://websharper.com
Apache License 2.0
593 stars 52 forks source link

FCS 43.7.400 and ParallelOptimization #1349

Closed TheAngryByrd closed 5 months ago

TheAngryByrd commented 1 year ago

👋 FCS 43.7.400 is out and with it brings more optimizations and a new flag --test:ParallelOptimization for more parallel work. Since Websharper is on .300 I'm getting an error using it. Basically the same error as https://github.com/dotnet-websharper/core/issues/1329 The other flags --test:GraphBasedChecking --test:ParallelIlxGen work just fine.

granicz commented 11 months ago

@TheAngryByrd Sorry, it took a while to get this into the pipeline :(

TheAngryByrd commented 11 months ago

no worries!

granicz commented 11 months ago

Sadly, some of the updated packages cause System.Reflection.Metadata, System.Collections.Immutable, System.Diagnostics.DiagnosticSource to be 7.x, and even though these seem to target .NET 6 (?), new WebSharper projects using the build with the proposed changes fail at compile time if a .NET 7 SDK is not installed.

@Jooseppi12 Can you attach the offending WebSharper.nupkg here for further testing and paste in the exception one gets without .NET SDK 7?

In theory, we could bump up the .NET SDK requirement for WebSharper 6, but .NET SDK 7 is not LTS so we should investigate/reconsider first.

TheAngryByrd commented 11 months ago

@vzarytovskii were the updates to those dependencies required?

vzarytovskii commented 11 months ago

@vzarytovskii were the updates to those dependencies required?

Yes, they are required when we bump to new sdk. Mainly for the source build of compiler.

vzarytovskii commented 11 months ago

But then again, I'm not exactly understanding when non-netstandard dependencies are coming into picture. FCS should be ns2.0 (and 2.1 ?), so all dependencies should also be ns.

Jooseppi12 commented 11 months ago

Created this repo with the project and the two used nuget packages:

https://github.com/Jooseppi12/core-1349

The above does not build without dotnet 7.0 present on the machine, but when it is there and the project is fixed to run with the 6.0 sdk through global.json it builds without a problem.

Side note: macos-latest comes with preinstalled dotnet 7 sdk as it seems like, therefore our testing pipeline was able to build the above project on mac, but failed to build on the windows and ubuntu runners.

TheAngryByrd commented 9 months ago

In theory, we could bump up the .NET SDK requirement for WebSharper 6, but .NET SDK 7 is not LTS so we should investigate/reconsider first.

Now that .NET 8 is here, what do you think about supporting it and FCS 43.8.100?

granicz commented 9 months ago

(Currently, WS7 beta releases are made from the websharper7 branch and master points to the latest WS6. Given that this doesn't easily cater to a possible version bump, @Jand42 suggested that we tag master as websharper6 and merge all WS7 work to master. Once this is in place ... )

@TheAngryByrd ... yes, updating to the latest FCS is the natural next move, along with bumping the beta sequence to 8.x.

granicz commented 5 months ago

The above now is in place, so we have:

To benefit from the latest FCS, both 6.x and 7.x-beta needs to target .NET 8, but I'd prefer not breaking the matching of the major version across .NET SDK/FCS and WebSharper.

As a quick solution, we will release a 6.x-net8 version with FCS 43.8.200 (will tag here once it's out), based on a new websharper6 -> websharper6-net8 branch. I expect that this won't need the whole stack re-targeted, just WebSharper itself.

We could do the same for 7.x-beta, but we should just release the final 7.x instead, and quickly move to 8.x-beta and update to the latest FCS in that.

Jooseppi12 commented 5 months ago

6.1.7.441-net8 is out on nuget