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

github.com/mono/corert.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-04-13Fix metadata generation for null string constants (#5690)Michal Strehovský
This should take the code path that returns `ConstantReferenceValue`.
2018-01-03Fix emission of metadata for namespace references (#5189)Michal Strehovský
We were generating NamespaceReference hierarchy with an extra level of nesting. These are used very rarely, so we didn't notice before.
2017-12-07Emit metadata for type forwarders (#5054)Michal Strehovský
2017-11-21Enable generation of stack trace data (#4901)Michal Strehovský
The stack trace metadata supplements reflection metadata to provide information about method names in stack traces (ex. obtained from `Exception.StackTrace` at runtime). I made the emission optional in the compiler. Enabling emission of this data increases the size of a HelloWord-style app by about 300 kB. In this change: * Actual emission of the data in the compiler. This is done by checking what compiled method bodies don't have reflection information and generating metadata for those. * Making the mapping table cross platform. The Project X/N version of this emits `ADDR32NB` relocs (RVA) that are Windows-only. I'm switching to `RELPTR32` outside of N/X. * Enabling S.P.StackTraceMetadata library initializer to run at startup to register a callback from CoreLib. * Weakening an assert in MetadataTransfor to prevent generation of definition metadata for blocked types. We would have probably done this anyway with the work to enable poking random holes into metadata blocking.
2017-06-24Update CoreRT build to use latest .NET CLI and build tools (#3916)Jan Kotas
- Pick up latest .NET Core 2.0 CLI and buildtools - Remove all project.json references and convert everything to msbuild projects - Stick to vanilla .NET CLI project shape as much as possible. Minimize dependencies on buildtools special behaviors
2017-06-20Rollback the ToolsetVersion cleanup for more projectsJan Kotas
[tfs-changeset: 1662283]
2017-06-17Delete ToolsVersion attribute from msbuild filesJan Kotas
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]
2017-05-26Emit module metadata (#3714)Michal Strehovský
CoreRT compiler side of 9557707d915b6c9ed497fd9b2885bafeb4d6fddc.
2017-05-25Enable reflection blocking (#3685)Michal Strehovský
Reflection blocking is a size on disk optimization that prevents generating native metadata for things that are considered private implementation details of the runtime. Since CoreRT is compiled ahead of time, a lot of things that would be needed by a full VM (method names, custom attributes, etc.) are no longer necessary at runtime. Metadata is strictly only necessary to support reflection at runtime. The policy I'm implementing is to consider everything private in our implementation assemblies to be reflection blocked. What this entails: * Adding support for computing reflection blocked state in the compiler * Tweak to blocking policy to allow us to express blocking state of MethodImpls * Uncomment blocking table mapping table scanning (this broke the PInvoke test for CppCodegen and we needed a workaround) * Opt in private assemblies to reflection blocking
2017-04-18Update custom attribute metadata schema to support enum arrays as element of ↵Michal Strehovsky
object arrays Four things: * The actual schema update * Update the CoreRT metadata emitter to emit the new schema * Update the Project N metadata emitter to emit the new schema * Update reflection codebase to read the new schema Fixes dotnet/corert#3328. [tfs-changeset: 1654618]
2017-03-23Implement TypedReference in CoreRT (#3000)Michal Strehovský
This is basically three things: 1. `ByReference<T>` support 2. General support infra in the type system for Byref-like types (to be reused for e.g. `Span<T>`). 3. TypedReference Fixes #367.
2017-03-23Add support for most of the remaining runtime supported GenericLookup typesDavid Wrighton
- UnwrapNullable, FieldOffset, VTableOffset, CallingConventionConverter - Refactor nativelayout method signature stuff to be single instanced on MethodSignature not on MethodDesc (CallingConventionConverter path needs signature but does not have MethodDesc) - Remaining lookups are constrained call lookup and type size lookup - Added SupportsCanon and SupportsUniversalCanon apis to type system context - Dependency tracking to ensure that usg vtables match vtables of all other types in the system (for both lazy and eager vtable generation processes) - VTableOffset generic lookups inject a dependency into code which uses them [tfs-changeset: 1651754]
2017-03-15Allow nulls in string[] custom attribute dataMichal Strehovsky
The existing schema didn't allow it and we were crashing the compiler. Turns out this is popular in xUnit tests in the CoreFX tree. Includes: * Schema update that makes string[] more like object[] than arrays of primitive types * Updates to both of our emitters * Update to the reflection reader * Unit test [tfs-changeset: 1650932]
2017-02-25Update build tools to latest (#2815)Jan Kotas
* Update BuildToolsVersion to latest * Cleanup CLSCompliant warnings * Delete workaround that is no longer needed * Download .NET Core 1.1 * Fix Roslyn props * MSBuild.exe was renamed to MSBuild.dll * Fix CoreCLR tests * Rename netcoreapp12 -> netcoreapp20 * Fix UnitTests runs * Fix RemoveEmptyFinalizers CodeAnalysis warnings * Port init-tools.sh cleanup from CoreCLR
2017-02-14Upgrade .NET Core NuGet packages to latest versions (#2667)Jan Kotas
2017-02-03Port internal changes to allow hosting ILCompiler as a library (#2648)Simon Nattress
* Add a few new node types used when the UTC compiler hosts ILCompiler: `ThreadStaticsIndexNode`, `ThreadStaticsOffsetNode`, `GCStaticDescNode`, `UtcDictionaryLayoutNode`. * Add a UTC-specific `UtcNodeFactory` * Various type visibility changes
2017-01-07Hide a garbage Tools item from Solution Explorer (#2456)Michal Strehovský
This thing is useless in the VS Solution Explorer and has an annoying warning sign.
2016-12-20Add packaging build changes and scripts. (#2325)Chris Rummel
2016-12-09Make ordering of modifiers more consistent (#2318)Jan Kotas
- s/readonly static/static readonly/ - s/static internal/internal static/ - s/static private/private static/ - s/static public/public static/ - s/static protected/protected static/ - s/unsafe static/static unsafe/ - s/unsafe extern/extern unsafe/ - s/internal protected/protected internal/
2016-11-16Do not fail compilation if program has unresolvable custom attributesMichal Strehovský
2016-10-19Extend ScopeDefinition metadata schema (#2037)Michal Strehovský
Add support for representing EntryPoint and the global `<Module>` type. Note: this does not include updates to the Project N metadata writer. The schedule for that is TBD. Fixes #1782.
2016-09-27Extend metadata schema to support function pointers (#1928)Michal Strehovský
Also: * update `MetadataTransform` to emit the new metadata * a simple unit test
2016-09-27Update buildtools to 1.0.26-prerelease-00809-01 (#1922)Jan Kotas
2016-09-27Add function pointer types to the type system (#1920)Michal Strehovský
Even though these can't be expressed in C#, we still have a bunch of test collateral that exercises them. Instead of coming up with excuses as to why we should just ignore the tests every time it shows up, I decided to just implement this. Native metadata schema update and emission will follow later.
2016-09-20Update CLIJan Kotas
2016-08-15Fix representation of modified types in the native metadataMichal Strehovsky
This is actually a simple change, but touches a lot of files. ECMA-335 allows placing custom modifiers on element types of vectors and unmanaged pointers, but the native metadata format didn't allow it. I'm fixing that. As part of the fix, I'm getting rid of the ReturnTypeSignature and ParameterTypeSignature records. Their only purpose was to allow putting a modifier on types. Instead, I'm introducing a ModifiedType record type that can show up in many places where TypeDefOrRefOrSpec does. This way, we're not paying a 1 byte penalty just to say "this parameter has no modifiers". I'm not emitting the modifiers in either transform since there's nobody who would consume them. I'm doing this because besides fixing correctness, this also has a size/perf benefit - makes SharedLibrary.dll 10 kB smaller. [tfs-changeset: 1622393]
2016-07-21Add TypeFlags for signature variables (#1559)Michal Strehovský
This makes signature variables easier to handle in various double dispatch scenarios.
2016-07-21Move Name, Namespace and OwningType to DefType (#1553)Michal Strehovský
The motivation for this change is: * To make the type name formatter general purpose (it can now handle `NoMetadata` types) * To make `NameMangler` able to mangle canon types and runtime determined types without special casing For situation where we have a NoMetadataType, the expectation is that we're asking for the name for diagnostic purposes only (i.e. name formatter wants it). In that case: * In checked builds, the name can actually be retrieved from diagnostic mapping tables, along with the owning type (we have a metadata TypeRef for this). * In the absence of diagnostic mapping tables, the name can be faked up and the type pretended to be non-nested ("System.Runtime.NoMetadataTypes.EEType1234ABCD") As an additional change, I'm also adding `Name` property on `GenericParameterDesc`. We can compute a useful fallback value for this in absence of metadata ("T" + index).
2016-07-12Port changeset #1617250 in branche ProjNDev2 to main branch at Michal's ↵Peter Sollich
request - here's the checkin comment for that changeset: Fix TODO in InitializeFieldDefinition - this caused incorrect field offsets in explicit layout types. While investigating JIT test failures (jit\SIMD\BoxUnbox.csproj and jit\SIMD\VectorMatrix.csproj) I found that the dynamic type loader computes an incorrect size for structs with explicit layout. As it turns out, the native metadata is already wrong and doesn't contain the field offset specified in the source via the FieldOffset attribute (and present in EMCA metadata). The fix is simply to get the offset from the ECMA metadata reader. That API however returns -1 for the case where no explicit offset was specified, so that needs to be checked for. [tfs-changeset: 1617255]
2016-06-08Add IsSignatureVariable helper (#1385)Michal Strehovský
2016-06-01Fix ScopeDefinition to properly honor PublicKeyToken based on assembly flags.Tomas Rylek
[tfs-changeset: 1609348]
2016-05-31Fix custom attribute handling to properly cater for the legal case of arrays ↵Tomas Rylek
with null value. [tfs-changeset: 1609323]
2016-05-28Add support for generating MethodImpl metadata in metadata transform (#1332)David Wrighton
- implementation only for ECMA metadata as we don't have TypeSystem api surface that is general purpose enough to avoid using the ECMA metadata reader directly - metadata transform tests for generic and non-generic scenarios
2016-05-26Add support for ExplicitScopeAttribute to metadata generation (#1321)David Wrighton
* Add support for ExplicitScopeAttribute to metadata generation - Add new IMetadataPolicy member to control the defining module of a type - Added mixin implementation that works for ExplicitScopeAttribute - Added WinRT explicit scope defined types in both the primary metadata assembly and same metadata assembly - Added single file and multi file tests to ensure that both definition and reference to these relocated types is correct - New tests implemented in seperate assemblies to reduce impact on existing unittests - Fix handling of throwIfNotFound parameter in ResolveAssembly in TestTypeSystemContext
2016-05-24Introduce distinction between modules and assemblies (#1286)Michal Strehovský
Introduce distinction between modules and assemblies
2016-05-04Update System.Reflection.Metadata version (#1236)Jan Kotas
2016-04-25Fix build warnings on Ubuntu 14.04 x64 (#1195)Manu
Add ubuntu.14.04-x64 and osx.10.10-x64 to list of supported runtimes.
2016-04-22Update buildtoolsMichal Strehovský
This version has the "make ILPROJ project buildable from VS" fix.
2016-04-18Switch to standardized init-tools scriptsJan Kotas
- Switch over to using standardized init-tools script used by other repos - Update to recent buildtools - Switch to running msbuild against CoreCLR instead of mono - Make build scripts to be otherwise more similar to the ones used by other repos
2016-04-15Update to Microsoft.DiaSymReader with proper netstandard support (#1150)Jan Kotas
2016-04-15Update ILCompiler to netstandard1.3 (#1148)Jan Kotas
2016-04-12Merge pull request #1125 from dotnet-bot/from-tfsMichal Strehovský
Merge changes from TFS
2016-04-12Merge pull request #1122 from dotnet-bot/from-tfsMichal Strehovský
Merge changes from TFS
2016-04-12Fix comment: FieldReference -> MemberReferenceMichal Strehovsky
[tfs-changeset: 1595273]
2016-04-12Update nuget package versionsJan Kotas
2016-04-12Fix metadata transform to emit new QualifiedField records in ↵Tomas Rylek
HandleQualifiedField; relax some assertions in HandleFieldReference to support fields on instantiated types; fix field reference to store uninstantiated signature; update the HandleQualifiedField code comment in MetadataTransform.cs to mention the new record type. [tfs-changeset: 1595205]
2016-04-09Fix an outdated and bad comment in MetadataTransform. The one on ↵Michal Strehovsky
HandleQualifiedField is bad too (no such thing as a FieldReference), but that one will likely go away in ProjNDev2, so I'm not touching it. [tfs-changeset: 1594622]
2016-04-07Always use PublicKeyToken in metadata transform instead of PublicKeyDavid Wrighton
While a PublicKey is a valid representation in a reference, its rarely/never desireable. PublicKeyTokens are all that are expected to be present during assembly resolution, and thus resolution algorithms ignore the extra data encoded in a PublicKey as opposed to a PublicKeyToken, and actually must perform conversion to a PublicKeyToken to function which can be costly.
2016-04-06Remove usage of LINQ from the metadata writerMichal Strehovský
LINQ Select operator uses generic virtual methods, which is both an overkill, and prevents us from selfhosting the compiler. Replacing all of LINQ with a lighter weight implementation for good measure.
2016-03-24Merge pull request #1047 from MichalStrehovsky/conflictsMichal Strehovský
Drop xunit.netcore.extensions from test projects