Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.Sign up
Switch release builds to the Roslyn compiler on mono 5.10 #16345
This PR updates our Travis build platform to newer versions of Ubuntu, Mono, and NSIS, and switches from the old
I have kept the Makefile targeting C#5, but we can consider (in a future issue/PR!) raising this and adopting some of the newer language features.
The changes in #16316, #16319, #16324 mean that this should not change the runtime requirements for players, but this will impact downstream packaging (ping @diddledan, @Unrud, @fusion809, @svenstaro) and anyone wanting to compile and run from source - particularly on Ubuntu, Debian, or Fedora.
Updating mono and switching to Roslyn should, in principle, produce more efficient builds with better performance. #8153 and #8282 demonstrated that its not that simple, however, and that stumbling into this blindly may cause significant perf regressions.
I'm PRing this as a draft to raise awareness and encourage people to start testing. We must properly benchmark this and resolve any potential performance regressions before merging.
Test builds are available from https://github.com/pchote/OpenRA/releases/tag/pkgtest-20190323.
An initial test by @teinarss showed the performance regression that I was half expecting to see.
I've hopefully addressed these by adding a new commit that flips the
Once we're happy that perf is back at expected levels I will generate a release-20190314-compatible build, and we can test for desyncs by running standard-release replays on the roslyn+optimization-compiled build.
Updated builds have been pushed to the same tag above.
https://github.com/pchote/OpenRA/releases/tag/pkgtest-release-roslyn contains release-20190314 builds compiled using roslyn - this can/should be used to test for desyncs and more robust performance comparisons.
I think this sufficiently covers the regression risk, so i'm now satisfied and opening this up for review and merge.