Skip to content
This repository was archived by the owner on Jan 23, 2023. It is now read-only.

Commit 8a80650

Browse files
committed
Merge in 'release/1.1.0' changes
2 parents 7d363ad + 1ee6851 commit 8a80650

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

59 files changed

+46056
-1049
lines changed

.gitattributes

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,3 +66,13 @@
6666
*.sh text eol=lf
6767
src/pal/tests/palsuite/paltestlist.txt text eol=lf
6868
src/pal/tests/palsuite/paltestlist_to_be_reviewed.txt text eol=lf
69+
70+
tests/src/JIT/Performance/CodeQuality/BenchmarksGame/regexdna/regexdna-input25.txt text eol=lf
71+
tests/src/JIT/Performance/CodeQuality/BenchmarksGame/regexdna/regexdna-input25000.txt text eol=lf
72+
tests/src/JIT/Performance/CodeQuality/BenchmarksGame/regex-redux/regexdna-input25.txt text eol=lf
73+
tests/src/JIT/Performance/CodeQuality/BenchmarksGame/regex-redux/regexdna-input25000.txt text eol=lf
74+
tests/src/JIT/Performance/CodeQuality/BenchmarksGame/reverse-complement/revcomp-input25.txt text eol=lf
75+
tests/src/JIT/Performance/CodeQuality/BenchmarksGame/reverse-complement/revcomp-input25000.txt text eol=lf
76+
tests/src/JIT/Performance/CodeQuality/BenchmarksGame/k-nucleotide/knucleotide-input.txt text eol=lf
77+
tests/src/JIT/Performance/CodeQuality/BenchmarksGame/k-nucleotide/knucleotide-input-big.txt text eol=lf
78+

dependencies.props

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
22
<!-- Source of truth for dependency tooling: the commit hash of the dotnet/versions master branch as of the last auto-upgrade. -->
33
<PropertyGroup>
4-
<CoreFxCurrentRef>83f626674b94f65afdc7f16ec5f15f205f943b7c</CoreFxCurrentRef>
5-
<CoreClrCurrentRef>83f626674b94f65afdc7f16ec5f15f205f943b7c</CoreClrCurrentRef>
4+
<CoreFxCurrentRef>7b186f965bb3288cdeff4283ddeb0364c15e229a</CoreFxCurrentRef>
5+
<CoreClrCurrentRef>7b186f965bb3288cdeff4283ddeb0364c15e229a</CoreClrCurrentRef>
66
</PropertyGroup>
77

88
<!-- Auto-upgraded properties for each build info dependency. -->
99
<PropertyGroup>
10-
<CoreFxExpectedPrerelease>servicing-25705-01</CoreFxExpectedPrerelease>
10+
<CoreFxExpectedPrerelease>servicing-25727-04</CoreFxExpectedPrerelease>
1111
</PropertyGroup>
1212

1313
<!-- Full package version strings that are used in other parts of the build. -->
1414
<PropertyGroup>
15-
<CoreClrPackageVersion>1.1.3</CoreClrPackageVersion>
15+
<CoreClrPackageVersion>1.1.4</CoreClrPackageVersion>
1616
<XunitPackageVersion>2.2.0-beta2-build3300</XunitPackageVersion>
1717

1818
<XUnitPerformanceApiVersion>1.0.0-beta-build0007</XUnitPerformanceApiVersion>

dir.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@
153153
<ProjectUrl>https://dot.net</ProjectUrl>
154154

155155
<!-- Central place to set the versions of all nuget packages produced in the repo -->
156-
<Version Condition="'$(MSBuildProjectExtension)' == '.pkgproj' and '$(Version)' == ''">1.1.4</Version>
156+
<Version Condition="'$(MSBuildProjectExtension)' == '.pkgproj' and '$(Version)' == ''">1.1.5</Version>
157157

158158
<!-- Set the boolean below to true to generate packages with stabilized versions -->
159159
<StabilizePackageVersion Condition="'$(StabilizePackageVersion)' == ''">false</StabilizePackageVersion>

perf.groovy

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ def static getOSGroup(def os) {
4747

4848
def newJob = job(Utilities.getFullJobName(project, jobName, isPR)) {
4949
// Set the label.
50-
label('windows_clr_perf')
50+
label('windows_server_2016_clr_perf')
5151
wrappers {
5252
credentialsBinding {
5353
string('BV_UPLOAD_SAS_TOKEN', 'CoreCLR Perf BenchView Sas')
@@ -172,7 +172,7 @@ def static getOSGroup(def os) {
172172

173173
def newJob = job(Utilities.getFullJobName(project, "perf_throughput_perflab_${os}_${arch}", isPR)) {
174174
// Set the label.
175-
label('windows_clr_perf')
175+
label('windows_server_2016_clr_perf')
176176
wrappers {
177177
credentialsBinding {
178178
string('BV_UPLOAD_SAS_TOKEN', 'CoreCLR Perf BenchView Sas')

tests/issues.targets

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -251,6 +251,12 @@
251251
<ExcludeList Include="$(XunitTestBinBase)\JIT\Regression\CLR-x86-JIT\V1.2-Beta1\b103058\b103058\b103058.cmd">
252252
<Issue>7008</Issue>
253253
</ExcludeList>
254+
<ExcludeList Include="$(XunitTestBinBase)\JIT\Performance\CodeQuality\BenchmarksGame\reverse-complement\reverse-complement-6\reverse-complement-6.cmd">
255+
<Issue>14191</Issue>
256+
</ExcludeList>
257+
<ExcludeList Include="$(XunitTestBinBase)\JIT\Performance\CodeQuality\BenchmarksGame\fasta\fasta-1\fasta-1.cmd">
258+
<Issue>14191</Issue>
259+
</ExcludeList>
254260
</ItemGroup>
255261

256262
<!-- Tests that need to be triaged for vararg usage as that is not supported -->
@@ -424,4 +430,31 @@
424430
<Issue>needs triage</Issue>
425431
</ExcludeList>
426432
</ItemGroup>
433+
434+
435+
<!-- The following are tests that fail when building tests against packages -->
436+
437+
<ItemGroup Condition="'$(XunitTestBinBase)' != '' and '$(BuildTestsAgainstPackages)' == 'true'">
438+
<ExcludeList Include="$(XunitTestBinBase)\JIT\superpmi\superpmicollect\superpmicollect.cmd">
439+
<Issue>needs triage</Issue>
440+
</ExcludeList>
441+
<ExcludeList Include="$(XunitTestBinBase)\JIT\Performance\CodeQuality\BenchmarksGame\k-nucleotide\k-nucleotide-1\k-nucleotide-1.cmd">
442+
<Issue>9314</Issue>
443+
</ExcludeList>
444+
<ExcludeList Include="$(XunitTestBinBase)\JIT\Performance\CodeQuality\BenchmarksGame\k-nucleotide\k-nucleotide-9\k-nucleotide-9.cmd">
445+
<Issue>9314</Issue>
446+
</ExcludeList>
447+
<ExcludeList Include="$(XunitTestBinBase)\JIT\Performance\CodeQuality\BenchmarksGame\regex-redux\regex-redux-1\regex-redux-1.cmd">
448+
<Issue>9314</Issue>
449+
</ExcludeList>
450+
<ExcludeList Include="$(XunitTestBinBase)\JIT\Performance\CodeQuality\BenchmarksGame\regex-redux\regex-redux-5\regex-redux-5.cmd">
451+
<Issue>9314</Issue>
452+
</ExcludeList>
453+
<ExcludeList Include="$(XunitTestBinBase)\JIT\Performance\CodeQuality\BenchmarksGame\reverse-complement\reverse-complement-1\reverse-complement-1.cmd">
454+
<Issue>9314</Issue>
455+
</ExcludeList>
456+
<ExcludeList Include="$(XunitTestBinBase)\JIT\Performance\CodeQuality\BenchmarksGame\reverse-complement\reverse-complement-6\reverse-complement-6.cmd">
457+
<Issue>9314</Issue>
458+
</ExcludeList>
459+
</ItemGroup>
427460
</Project>

tests/src/JIT/Performance/CodeQuality/BenchmarksGame/LICENSE.TXT

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ This is a specific instance of the Open Source Initiative (OSI) BSD license temp
44
http://www.opensource.org/licenses/bsd-license.php
55

66

7-
Copyright © 2004-2008 Brent Fulgham, 2005-2015 Isaac Gouy
7+
Copyright © 2004-2008 Brent Fulgham, 2005-2016 Isaac Gouy
88
All rights reserved.
99

1010
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

tests/src/JIT/Performance/CodeQuality/BenchmarksGame/README.TXT

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,13 @@ The benchmarks in these sub-directories are based on
55

66
See the adjoining LICENSE.TXT file for license terms.
77

8-
Our intention with these tests is to provide interesting test cases
9-
for jit developers to use in daily development practice -- not to
10-
produce variants that give the maximum possible performance.
8+
Our intention with these tests is twofold:
9+
1 - To track .NET Core's performance on these benchmarks in the
10+
same benchmarking system used for other internal .NET Core
11+
performance benchmarks.
12+
2 - To make these available for daily JIT (and runtime) development,
13+
as a factor in assessing the performance impact of compiler
14+
(and runtime) changes.
1115

1216
The benchmarks have been modified to fit into the CoreCLR test and
1317
performance test framework, as follows:
@@ -19,19 +23,15 @@ performance test framework, as follows:
1923
xunit-performance iteration is approximately 1 second on modern x64
2024
hardware
2125
- reducing verbosity when run as a benchmark
22-
- reformatting (via the codeformatter tool)
26+
- calling different APIs in a few places to allow compiling against
27+
netstandard1.4
28+
- reformatting
29+
- in the case of pidigits, implementing on top of .NET's BigInteger
30+
type rather than p/invokes to the native GMP library
2331

2432
These benchmarks are just a subset of the benchmarks available in C# from
25-
the Benchmarks Game site. We've selected variants that do not rely on
26-
multiple threads to ensure relative benchmark stability across a
27-
variety of machines.
28-
29-
We've excluded two benchmarks that are inherently multitheaded:
30-
chamenosredux and threadring. We may revisit this as we improve our
31-
ability to harness threading tests in a stable way.
32-
33-
We've also excluded benchmarks that read in large input files:
34-
knucleotide, regexdna, revcomp.
35-
36-
37-
33+
the Benchmarks Game site. The highest-scoring C# .NET Core variant of each
34+
benchmark is included, and in the (common) case of benchmarks where the
35+
best-scoring variant uses multiple threads, we've also selected variants
36+
that do not rely on multiple threads, to ensure relative benchmark stability
37+
across a variety of machines.
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
.NET Core uses third-party libraries or other resources that may be
2+
distributed under licenses different than the .NET Core software.
3+
4+
In the event that we accidentally failed to list a required notice, please
5+
bring it to our attention. Post an issue or email us:
6+
7+
8+
9+
The attached notices are provided for information only.
10+
11+
License notice for The Computer Language Benchmarks Game
12+
---------------------------
13+
14+
Revised BSD license
15+
16+
This is a specific instance of the Open Source Initiative (OSI) BSD license template
17+
http://www.opensource.org/licenses/bsd-license.php
18+
19+
Copyright (c) 2004-2008 Brent Fulgham, 2005-2015 Isaac Gouy
20+
All rights reserved.
21+
22+
Redistribution and use in source and binary forms, with or without
23+
modification, are permitted provided that the following conditions are met:
24+
25+
Redistributions of source code must retain the above copyright notice, this
26+
list of conditions and the following disclaimer.
27+
28+
Redistributions in binary form must reproduce the above copyright notice,
29+
this list of conditions and the following disclaimer in the documentation
30+
and/or other materials provided with the distribution.
31+
32+
Neither the name of "The Computer Language Benchmarks Game" nor the name of
33+
"The Computer Language Shootout Benchmarks" nor the names of its
34+
contributors may be used to endorse or promote products derived from this
35+
software without specific prior written permission.
36+
37+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
38+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
39+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
40+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
41+
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
42+
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
43+
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
44+
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
45+
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
46+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Lines changed: 122 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,122 @@
1+
// Licensed to the .NET Foundation under one or more agreements.
2+
// The .NET Foundation licenses this file to you under the MIT license.
3+
// See the LICENSE file in the project root for more information.
4+
5+
// Adapted from binary-trees C# .NET Core #2 program
6+
// http://benchmarksgame.alioth.debian.org/u64q/program.php?test=binarytrees&lang=csharpcore&id=2
7+
// aka (as of 2017-09-01) rev 1.3 of https://alioth.debian.org/scm/viewvc.php/benchmarksgame/bench/binarytrees/binarytrees.csharp-2.csharp?root=benchmarksgame&view=log
8+
// Best-scoring single-threaded C# .NET Core version as of 2017-09-01
9+
10+
/* The Computer Language Benchmarks Game
11+
http://benchmarksgame.alioth.debian.org/
12+
13+
contributed by Marek Safar
14+
*reset*
15+
*/
16+
17+
using System;
18+
using Microsoft.Xunit.Performance;
19+
20+
[assembly: OptimizeForBenchmarks]
21+
[assembly: MeasureGCCounts]
22+
23+
namespace BenchmarksGame
24+
{
25+
public class BinaryTrees_2
26+
{
27+
const int minDepth = 4;
28+
29+
public static int Main(String[] args)
30+
{
31+
int n = 0;
32+
if (args.Length > 0) n = Int32.Parse(args[0]);
33+
34+
int check = Bench(n, true);
35+
int expected = 4398;
36+
37+
// Return 100 on success, anything else on failure.
38+
return check - expected + 100;
39+
}
40+
41+
[Benchmark(InnerIterationCount = 7)]
42+
public static void RunBench()
43+
{
44+
Benchmark.Iterate(() => Bench(16, false));
45+
}
46+
47+
static int Bench(int n, bool verbose)
48+
{
49+
int maxDepth = Math.Max(minDepth + 2, n);
50+
int stretchDepth = maxDepth + 1;
51+
52+
int check = (TreeNode.bottomUpTree(stretchDepth)).itemCheck();
53+
int checkSum = check;
54+
if (verbose) Console.WriteLine("stretch tree of depth {0}\t check: {1}", stretchDepth, check);
55+
56+
TreeNode longLivedTree = TreeNode.bottomUpTree(maxDepth);
57+
58+
for (int depth = minDepth; depth <= maxDepth; depth += 2)
59+
{
60+
int iterations = 1 << (maxDepth - depth + minDepth);
61+
62+
check = 0;
63+
for (int i = 1; i <= iterations; i++)
64+
{
65+
check += (TreeNode.bottomUpTree(depth)).itemCheck();
66+
}
67+
checkSum += check;
68+
69+
if (verbose)
70+
Console.WriteLine("{0}\t trees of depth {1}\t check: {2}", iterations, depth, check);
71+
}
72+
73+
check = longLivedTree.itemCheck();
74+
checkSum += check;
75+
76+
if (verbose)
77+
Console.WriteLine("long lived tree of depth {0}\t check: {1}", maxDepth, check);
78+
79+
return checkSum;
80+
}
81+
82+
83+
struct TreeNode
84+
{
85+
class Next
86+
{
87+
public TreeNode left, right;
88+
}
89+
90+
private Next next;
91+
92+
internal static TreeNode bottomUpTree(int depth)
93+
{
94+
if (depth > 0)
95+
{
96+
return new TreeNode(
97+
bottomUpTree(depth - 1)
98+
, bottomUpTree(depth - 1)
99+
);
100+
}
101+
else
102+
{
103+
return new TreeNode();
104+
}
105+
}
106+
107+
TreeNode(TreeNode left, TreeNode right)
108+
{
109+
this.next = new Next();
110+
this.next.left = left;
111+
this.next.right = right;
112+
}
113+
114+
internal int itemCheck()
115+
{
116+
// if necessary deallocate here
117+
if (next == null) return 1;
118+
else return 1 + next.left.itemCheck() + next.right.itemCheck();
119+
}
120+
}
121+
}
122+
}
Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<?xml version="1.0" encoding="utf-8"?>
1+
<?xml version="1.0" encoding="utf-8"?>
22
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
33
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
44
<PropertyGroup>
@@ -7,18 +7,18 @@
77
<SchemaVersion>2.0</SchemaVersion>
88
<ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
99
<OutputType>Exe</OutputType>
10-
<AppDesignerFolder>Properties</AppDesignerFolder>
11-
<FileAlignment>512</FileAlignment>
1210
<ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
13-
<ReferencePath>$(ProgramFiles)\Common Files\microsoft shared\VSTT\11.0\UITestExtensionPackages</ReferencePath>
1411
<SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\..\</SolutionDir>
1512
<NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
1613
<NuGetTargetMoniker>.NETStandard,Version=v1.4</NuGetTargetMoniker>
14+
<GCStressIncompatible>true</GCStressIncompatible>
1715
</PropertyGroup>
1816
<!-- Default configurations to help VS understand the configurations -->
1917
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
2018
</PropertyGroup>
2119
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
20+
</PropertyGroup>
21+
<PropertyGroup>
2222
<DebugType>pdbonly</DebugType>
2323
<Optimize>true</Optimize>
2424
</PropertyGroup>
@@ -31,13 +31,12 @@
3131
<Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
3232
</ItemGroup>
3333
<ItemGroup>
34-
<Compile Include="pi-digits.cs" />
34+
<Compile Include="$(MSBuildProjectName).cs" />
3535
</ItemGroup>
36+
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
37+
<PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' "></PropertyGroup>
3638
<PropertyGroup>
3739
<ProjectJson>$(JitPackagesConfigFileDirectory)benchmark\project.json</ProjectJson>
3840
<ProjectLockJson>$(JitPackagesConfigFileDirectory)benchmark\project.lock.json</ProjectLockJson>
3941
</PropertyGroup>
40-
<Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
41-
<PropertyGroup Condition=" '$(MsBuildProjectDirOverride)' != '' ">
42-
</PropertyGroup>
4342
</Project>

0 commit comments

Comments
 (0)