Age | Commit message (Collapse) | Author |
|
The latest project templates do not have it, and it is only good for generating warnings like the following in the detailed build log:
Project file contains ToolsVersion="4.0". This toolset may be unknown or missing, in which case you may be able to resolve this by installing the appropriate version of MSBuild, or the build may have been forced to a particular ToolsVersion for policy reasons. Treating the project as if it had ToolsVersion="14.0". For more information, please see http://go.microsoft.com/fwlink/?LinkId=293424.
[tfs-changeset: 1662024]
|
|
[tfs-changeset: 1662020]
|
|
[tfs-changeset: 1661991]
|
|
Bug: https://devdiv.visualstudio.com/DefaultCollection/DevDiv/_workitems/edit/442050
CR: JKotas
[tfs-changeset: 1661975]
|
|
[tfs-changeset: 1661894]
|
|
[tfs-changeset: 1661846]
|
|
|
|
Merge changes from TFS
|
|
- When laying out a nullable type, in addition to performing normal field layout, the NullableValueOffset must be computed, or box/unbox operations will behave incorrectly.
- NullableValueOffset is represented somewhat oddly. If the offset is 1, then it is not encoded. Otherwise the offset -1 is encoded, and consumers of the data will need to adjust the stored value by 1 to get the real offset.
[tfs-changeset: 1661759]
|
|
Merge changes from TFS
|
|
the internal ones public so that we can build the mscorlib facade in corefx for them. Fixes hundreds of serialization tests.
[tfs-changeset: 1661754]
|
|
Merge changes from TFS
|
|
CR: JKotas, FadiM
We forgot to replace the "m_" prefix with just "_" in comments and inactive #if branches.
[tfs-changeset: 1661719]
|
|
Merge changes from TFS
|
|
As opposed to NRE'ing due to using the result of a startup
helper that doesn't exist on the N toolchain...
|
|
The problem surfaces when MRT is built to pure native. The mrt100_app module does not have reflectable types/methods and if we create a NativeFormatModuleInfo instance for the module, we have trouble decoding the reflection data.
[tfs-changeset: 1661708]
|
|
Merge changes from TFS
|
|
[tfs-changeset: 1661698]
|
|
Merge changes from TFS
|
|
CR: JKotas, FadiM, DavidWr
At some moment the CallConverterThunk code took dependency on the blittable check missing in GCHandle.set_Target (change 1566458), so we had to place that check under "#if CORERT" (https://github.com/dotnet/corert/pull/1393). This change enables the check and introduces the UnsafeGCHandle structure to use in the CallConverterThunk code.
UnsafeGCHandle is a faster version of the GCHandle structure with the following differences:
* The constructor assumes the handle type is valid; no range check is performed.
* The pinned flag is not stored in the _handle field.
* The Target getter and setter assume the UnsafeGCHandle has been allocated.
* No blittable check is performed when allocating a pinned UnsafeGCHandle or setting its target.
* The GetRawTargetAddress method returns the raw address of the target (the pointer to its m_pEEType field).
* The Free method is not thread-safe and does not throw if the UnsafeGCHandle has not been allocated or has been already freed.
Also avoid the native runtime call in release builds in the RuntimeImports.RhHandleGet method and Runtime.Base's version of the UnsafeGCHandle.get_Target method (in debug builds the runtime performs additional checks).
[tfs-changeset: 1661633]
|
|
dispatch cell
We used to have two of these because CoreRT used to put a hacky thing in the dictionary. We're now fully unified and the hacky name is the last remnant.
[tfs-changeset: 1661629]
|
|
|
|
Merge master to nmirror
|
|
Pull request #3773 enabled some cleanups I didn't want to do there
because it's a rather big diff with a possible (expected) test
regression:
* ReadyToRunHelperId.VirtualCall and
ReadyToRunHelperId.ResolveVirtualFunction should no longer show up in
connection with generic lookups. We only used them for interface calls
and for those, RyuJIT now knows how to handle with dispatch cells
directly. They're still used in non-generic codepaths where they handle
normal virtual calls with unknown slot numbers.
* Standalone LDVIRTFTN for interface methods on generic interfaces used
a hack where we placed a R2R helper into the dictionary and returned
that. Given this is only reachable outside of delegate creation, I'm
deleting the hack. If we need it, we should implement it the right way,
because this returns function pointers to things that are not user code.
It works most of the time, but not always. I'm expecting some rolling
build fallout from this.
* I'm deleting one of the hacky generic dictionary entries. We should
rename the second one, but that's best done from TFS.
|
|
Merge nmirror to master
|
|
Merge changes from TFS
|
|
|
|
This picks up dotnet/coreclr#12209.
|
|
- Handle both indirect and direct symbol references
- ARM, X86, and X64 architectures
- First need for these is for a stub that has a well known name which jumps to a specific symbol
- We will use these for custom linkage in scenarios involving multiple PE files on Windows
[tfs-changeset: 1661486]
|
|
MRT helpers
This change unifies StackFrameIterator behavior w.r.t. to special handling of various internal addresses within MRT helpers to the way I fixed this before for the UniversalTransitionThunk i.e. instead of exporting a public symbol in the middle of the method which is known to confuse the DIA stack unwinder, we export the pointer by means of an auxiliary data variable.
[tfs-changeset: 1661485]
|
|
Merge changes from TFS
|
|
The problem was that dynamically created MD arrays were getting the "HasSealedVtable" flag without really having a sealed vtable. The flag was coming from the template type. MD arrays should really not have a sealed vtable, and the runtime should use the dispatchmap/sealedvtable of the System.Array basetype instead.
These changes fix the binder to not emit dispatch maps and sealed vtables for md arrays.
Cleanup: Remove unused IsDynamicTypeWithSealedVTableEntriesFlag rare flag.
[tfs-changeset: 1661447]
|
|
Adds an extensibility point to the `CompilationBuilder` that allows
specifying how vtables should be built.
We currently have two strategies: eagerly built VTables (where we just
put all the virtual methods that the type specifies in the metadata into
the VTable), and lazily built vtables (where we track virtual method
usage during the compilation and only generate vtable slots for methods
that were actually used).
The advantage of the former is that we know the slot assignment very
early on and can inline it into the codegen. The advantage of the latter
is natural reduction of the amount of code we compile.
I'm adding an option to specify optional optimization data that can be
used instead of the lazily built strategy and making it possible for the
IL scanner to generate this data. This way we can have an option where
we both have the natural reduction in the amount of generated code, and
also the inlining of slot numbers in codegen (that part depends on #3773
to light up.
|
|
|
|
|
|
Merge master to nmirror
|
|
|
|
* Static methods depend on the cctor, if there's one
* Newobj on valuetypes doesn't actually GC allocate the valuetype
* Activator.DefaultConstructorOf, and RuntimeTypeHandle.GetValueInternal
are MustExpand intrinsics and we need to expand them.
* Instantiation parameters are dependencies of runtime determined call
targets
With these fixes, IL scanner and RyuJIT (unoptimized) agree on what
methods and types we generate in a Hello World program.
|
|
Merge nmirror to master
|
|
Merge changes from TFS
|
|
Merge nmirror to master
|
|
The internal type System.IO.File in CoreLib conflicts with the public type in System.IO.FileSystem. This was causing Rosyln tests in ProjectN to fail(Bug300372) as the type is mentioned in rd.xml and the toolchain was confused by the existence of types with same name.
[tfs-changeset: 1661298]
|
|
Merge changes from TFS
|
|
We were handling only CallingConvension from UnmanagedFuncPointerAttrbiutes , but the networking team hit an issue where they were relaying on SetLastError on by default. This change implement SetLastError , but it's not on by default as in CoreCLR/Desktop. Now we read and store all the attributes from UnmanagedFunctionPointer but only CallingConvesion and SetLastError are handled.
Change also include a fix for DllImport SetLastError whihc was not clearing the error before setting it.
[tfs-changeset: 1661289]
|
|
Merge changes from TFS
|
|
[tfs-changeset: 1661265]
|
|
|
|
Merge changes from TFS
|
|
[tfs-changeset: 1661256]
|
|
(#12181)
* DateTime serialization fixed, added attention labels to serialized fields
* CultureAwareComparer serialization fix
* Order or property fixed
Signed-off-by: dotnet-bot <dotnet-bot@microsoft.com>
|