Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/corefx.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAtsushi Kanamori <AtsushiKan@users.noreply.github.com>2016-11-16 00:15:16 +0300
committerStephen Toub <stoub@microsoft.com>2016-11-16 00:15:16 +0300
commitccc44b7b2e9145251e2ca98bbe0936938ed94379 (patch)
treeea7795310a027a6f0ac72bc83245ab5be7394159 /src/System.Memory/System.Memory.sln
parent0300e2c42e3ce96240e05daff6f6c5a5e03081a6 (diff)
Portable (and thus slower) version of Span<> (#13562)
* Rebase to make review readable again. * Remove the type casts from DangerousGetPinnedReference - store object as Pinnable<T> * Removed stable version list. * DangerousCreate gets more Dangerous... * Updated dependency versions *again*. * IsReferenceFree fast-paths for common primitives. * Move exception throwing out of inline code. * Remove Windows-only restriction. * Remove baseline version. * Don't hardcode array header size. * Another dependency version change! What's the matter, don't we have any version numbers you like?? * Version => 4.0.0.0 * Use Unsafe.Add rather than SpanHeloer.Add in this[index] (all this repeated source is annoying - unfortunately, Rosylin at this point at least, insists that "ref" variables be initialized once only at declaration point and doesn't allow the conditional ternary operator on ref types. This makes it hard to manually inline DangerousGetPinnableReference in a nice way...) * ThrowHelper.Throw ==> throw ThrowHelper.Create Allow JIT to recognize the throw path as a no-return path so it can throw it into the cold region. * Revert the specific primitive type checks in IsReferenceFree(). It pessimizes the routine on the desktop CLR. * Fix DangerousGetPinnableReference to be a method to match spec. * PR feedback. Description: "Provide classes" => "Provide types" Add fastpath for specific types in IsReferenceFree Make MeasureArrayAdjustment a PerTypeValues private * More concise operator== Eh... hard to tell with all the noise but it did seems to shave a couple of percentage points off. * Follow Ben's suggested ThrowHelper pattern. * Update ThrowHelper comments based on Ben's feedback. * Remove trailing whitespace. * Dependency bump. Again... * Fix up some tests so the IL is Span-legal. Ah, the fun of writing Span code w/out stack-only enforcement. * Add a reference assembly and some of the plumbing... ...to typeforward on CoreClr. Right now, CoreClr fails 44 out of 55 tests so I believe it's premature to throw the switch just yet. This just gets some of the grunt work out of the way. * Add C#6.0 workaround. After chatting offline, we'll accomodate C# 6.0 for now by having the indexer return "T" rather than "ref T". Some performant code require the "ref T" version so as another stopgap, we'll provide a GetItem() method that returns "ref T". Once the tooling story is in better shape, we'll merge GetItem() and the indexer into a single indexer that returns "ref T". * Dependency update again. This is getting really monotonous.
Diffstat (limited to 'src/System.Memory/System.Memory.sln')
-rw-r--r--src/System.Memory/System.Memory.sln27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/System.Memory/System.Memory.sln b/src/System.Memory/System.Memory.sln
new file mode 100644
index 0000000000..9fcf61cee4
--- /dev/null
+++ b/src/System.Memory/System.Memory.sln
@@ -0,0 +1,27 @@
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 15
+VisualStudioVersion = 15.0.25831.1
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Memory", "src\System.Memory.csproj", "{4BBC8F69-D03E-4432-AA8A-D458FA5B235A}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "System.Memory.Tests", "tests\System.Memory.Tests.csproj", "{15DC55FA-E644-4B87-A62A-DCF849031633}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {4BBC8F69-D03E-4432-AA8A-D458FA5B235A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {4BBC8F69-D03E-4432-AA8A-D458FA5B235A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {4BBC8F69-D03E-4432-AA8A-D458FA5B235A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {4BBC8F69-D03E-4432-AA8A-D458FA5B235A}.Release|Any CPU.Build.0 = Release|Any CPU
+ {15DC55FA-E644-4B87-A62A-DCF849031633}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {15DC55FA-E644-4B87-A62A-DCF849031633}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {15DC55FA-E644-4B87-A62A-DCF849031633}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {15DC55FA-E644-4B87-A62A-DCF849031633}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal