Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for Beta versions #292

Closed
redknightlois opened this issue Oct 29, 2016 · 11 comments
Closed

Support for Beta versions #292

redknightlois opened this issue Oct 29, 2016 · 11 comments

Comments

@redknightlois
Copy link
Contributor

Dont know if I am doing something wrong (like missing some configuration), it is a defect or just not supported. :)

I am trying to benchmark some changes that have been implemented for us in the SIMD support at the JIT compiler. Problem is that when I update the dependencies to the proper build I get the following error:
D:\Source\ravendb-40.git\BDN.Auto\project.json(19,46): warning NU1012: Dependency conflict. Micro.Benchmark 1.0.0 expected Microsoft.NETCore.App >= 1.2.0-beta-001027-00 but received 1.0.0
Which basically is telling me that I cannot use the new JIT and NETCore.App. If not supported, it would be great, because most of the performance work we are going to be doing soon will be based on the JIT and NETCore.

@adamsitnik
Copy link
Member

@redknightlois it's not supported yet, but I also need it for #284 so I definitely want to add it.

My plan was to wait until netcoreapp1.1 goes RTM. @AndreyAkinshin would you mind if I add a new target to BenchmarkDotNet for netcoreapp1.1 that would have dependencies to beta packages (we would need two releases again like we did with dnxcore50 for some time ;)

@redknightlois
Copy link
Contributor Author

We are using the 1.2.0-beta packages here. Are we talking about the same thing?

@adamsitnik
Copy link
Member

Which TFM are you using? dnxcore50 , netcoreapp1.0 or netcoreapp1.1?

@redknightlois
Copy link
Contributor Author

This one dotnet-core - microsoft.netcore.runtime.coreclr 1.2.0-beta-24629-02

@adamsitnik
Copy link
Member

This is clear to me, me question was which target framework moniker are you using?

Is it:

"frameworks": {
    "netcoreapp1.0": {
      "dependencies": {
        "Microsoft.NETCore.App": {
          "type": "platform",
          "version": "1.2.0-beta-24629-02"
        }
      },
      "imports": "dnxcore50"
    }
  }

or

"frameworks": {
    "netcoreapp1.1": { // the difference is here 1.1 instead of 1.0
      "dependencies": {
        "Microsoft.NETCore.App": {
          "type": "platform",
          "version": "1.2.0-beta-24629-02"
        }
      },
      "imports": "dnxcore50"
    }
  }

Can you post your project.json file here? So I could reproduce the exact behaviour? I have an idea for small change that could most probably fix it

@redknightlois
Copy link
Contributor Author

Irrelevant for our purposes. We are using netcoreapp1.0 but nothing prevents me to change it to netcoreapp1.1 if it is needed. So the easiest fix the better :)

@adamsitnik adamsitnik added this to the v0.10.0 milestone Nov 6, 2016
@redknightlois
Copy link
Contributor Author

For some reason I still cannot make it work. I copied my code to the Sample in order to ensure that I was not doing something wrong, but it continues failing when building with:

Unhandled Exception: System.InvalidOperationException: Process must exit before requested information can be determined.
   at System.Diagnostics.Process.EnsureState(State state)
   at BenchmarkDotNet.Toolchains.DotNetCli.DotNetCliCommandExecutor.ExecuteCommand(String commandWithArguments, String workingDirectory, ILogger logger, TimeSpan timeout)
   at BenchmarkDotNet.Toolchains.DotNetCli.DotNetCliBuilder.Build(GenerateResult generateResult, ILogger logger, Benchmark benchmark, IResolver resolver)
   at BenchmarkDotNet.Running.BenchmarkRunnerCore.Build(ILogger logger, IToolchain toolchain, GenerateResult generateResult, Benchmark benchmark, IResolver resolver)
   at BenchmarkDotNet.Running.BenchmarkRunnerCore.Run(Benchmark benchmark, ILogger logger, IConfig config, String rootArtifactsFolderPath, Func`2 toolchainProvider, IResolver resolver)
   at BenchmarkDotNet.Running.BenchmarkRunnerCore.Run(Benchmark[] benchmarks, ILogger logger, String title, IConfig config, String rootArtifactsFolderPath, Func`2 toolchainProvider, IResolver resolver)
   at BenchmarkDotNet.Running.BenchmarkRunnerCore.Run(Benchmark[] benchmarks, IConfig config, Func`2 toolchainProvider)
   at BenchmarkDotNet.Running.BenchmarkSwitcher.RunBenchmarks(String[] args)
   at BenchmarkDotNet.Samples.Program.Main(String[] args)

@adamsitnik
Copy link
Member

@redknightlois my change was trivial, I suspect that there is some dotnet cli/.net core version mismatch. Could you post your sample here? The most important thing for me to have is to know which dependencies are you using, the code is less important

@redknightlois
Copy link
Contributor Author

@adamsitnik
Copy link
Member

@redknightlois Thanks for the repro, I was able to reproduce and fix the bug, however for some reason I have lost write access to the BenchmarkDotNet repo ;) We are most probably in the middle of moving to different organization ;)

If you don't want to wait we can do this in a less civilised way ;)
samples/BenchmarkDotNet.Samples/project.json => change "netcoreapp1.0" to "netcoreapp1**.1**"
src/BenchmarkDotNet.Core/Toolchains/Core/CoreToolchain.cs => change "netcoreapp1.0" to "netcoreapp1**.1**"
src/BenchmarkDotNet.Core/Toolchains/DotNetCli/DotNetCliCommandExecutor.cs => add extra call to process.BeginOutputReadLine(); after call to process.BeginErrorReadLine();

@redknightlois
Copy link
Contributor Author

@adamsitnik I wouldnt call myself civilized :) ... yes, it is working.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants