heal-research / SimSharp

Sim# is a .NET port of SimPy, process-based discrete event simulation framework
MIT License
126 stars 30 forks source link

netcoreapp2.1 → Net4.5 #35

Closed aarjaneiro closed 3 years ago

aarjaneiro commented 3 years ago

Current implementation uses a dated framework which might be hard to acquire for certain OSes (inc. Linux). Tests all pass upon changing TimeSpan calls.

abeham commented 3 years ago

I am sorry, the current target of .NET Core 2.1 is much newer (2018) and friendlier to Linux than the .NET Framework 4.5 (2012) that this PR would change it to. I suppose there is a mistake?

.NET Core 2.1 is still supported until August 2021. It does make sense to go towards newer versions, like .NET 5.0 in the future for these projects, though it is also not essential as only the library project is published to nuget which shall remain compatible with a larger range of framework versions. If you prefer to use another target for the projects Benchmark, Samples, and Test you can fork the repository and use your preferred target.

aarjaneiro commented 3 years ago

My apologies, I was mistaken in terms of .net's versioning. Moreover, while I was having trouble finding netcore2.1 originally for my system it seems that it was merely named differently than I expected (from other dotnet versions offered on my package manager) and thus the package escaped me. Both of my concerns were essentially false.

For what its worth, I can at least confirm that net5.0 mostly works out of the box with the current configuration (changing TargetFramework →net5.0 seems to allow most tests to pass). It seems PseudoRealtimeEnvTest will not pass, however.

Edit: So too does PseudoRealtimeEnvTest2 by a small amount, however not every time I run it, interestingly.

SimSharp.Tests.EnvironmentTests.PseudoRealtimeMultiThreadedTest2

Xunit.Sdk.TrueException
c 999.4666 >= 1000
Expected: True
Actual:   False
abeham commented 3 years ago

Yes this test is a bit difficult due to the threading involved and the measurements in wall clock time. I think it needs to be rewritten entirely.