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-01-04Add option to block all metadata in an assembly (#5199)Michal Strehovský
Adding an attribute type whose presence makes everything in an assembly reflection blocked. This reduces the size of a Hello world by ~300 kB (50 kB in metadata blob and the rest are various runtime artifacts we no longer need). If we evacuate public APIs out of System.Private.Interop and mark it fully blocked, we can get some more savings (e.g. the `bool IsComObject(Type type)` method marks `__ComObject` as reflectable (and constructed!) due to the ldtoken and there's no happiness in that).
2017-11-16Decouple BCL module list from MRTTomas Rylek
As part of my work on .NET Native optional component bring-up I have refactored internal framework management of app modules to be independent on MRT. This is needed so that the app and optional component only know about "their own" modules (while MRT stores all their modules). I basically somewhat unified ProjectN and CoreRT behavior in the sense that I switched ProjectN over to use the module lists in StartupCodeHelpers used by CoreRT, making them slightly more flexible to support dynamic accumulation of the module list during ProjectN startup. In incremental build mode, I have reused the already existing "assembly rooting" technique to make sure all the component assemblies are properly registered in the module list. The change passes basic testing in single-file, shared and incremental build modes on x86 and amd64, I'm running a full ToF run and I plan to run an AppCompat run after I stabilize the change by addressing CR feedback. In 2nd iteration I slightly refactored the change based on JanK's and Michal's feedback: I created a secondary version of StartupCodeHelpers specific to .NET Native called StartupCodeHelpers.ProjectN.cs. It only contains the logic regarding the "GetLoadedModules" list which is newly built up using the StartupCodeTrigger calls to StartupCodeHelpers.RegisterModule. The two versions of the module expose the same signatures of the two methods "GetLoadedModules" and "GetLoadedOSModules" that are subsequently called from RuntimeAugments. RhGetLoadedOSModules is still in place as it's needed to produce the dump header. Based on JanK's suggestion I have refactored StackTraceGenerator.Windows to stop calling the method. In 3rd iteration I addressed additional Michal's and Jan's feedback and I tried to answer some questions. In 4th iteration I addressed additional JanK's feedback. Thanks Tomas [tfs-changeset: 1681241]
2017-10-27dd IsDotNetFrameworkProductAssembly for Framework Assemblylouluqun
With Project file cotains Property <IsDotNetFrameworkProductAssembly>true</IsDotNetFrameworkProductAssembly>, the final assembly will contain assembly attribute [assembly: AssemblyMetadata(".NETFrameworkAssembly", "")]
2017-07-15Fix Unix build breakMichal Strehovský
2017-07-14Initial implementation of .NETStandard 2.0 StackTrace / StackFrame APITomas Rylek
This change supplies initial functional implementations of the .NET Standard 2.0 API's in StackTrace, StackFrame and StackFrameExtensions; it also includes runtime provisions for optional retrieval of IL offset and MethodBase when available in the AOT runtime. [tfs-changeset: 1666008]
2017-07-10Whack the WACK's in PN CoreLib. (#4122)Atsushi Kanamori
Fixes 460497 Delete/modify WACK violations in PN corelib
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-20Undo ToolsVersion cleanup on full framework projectsJan Kotas
VS is trying to "upgrate" the full framework projects without ToolsVersion [tfs-changeset: 1662259]
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-06-07Add support for new native metadata blob for autonomous stack trace formattingTomas Rylek
This change adds basic scaffolding for autonomous stack trace formatting in the absence of PDB / DIA. The new assembly System.Private.StackTraceMetadata contains the logic for accessing the new blob and formatting method names based on metadata, the rest of the change basically wires up this logic to the actual Corelib stack trace generator. [tfs-changeset: 1660918]
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-15Avoid mixing references to CoreRT and ProjectN .csprojJan Kotas
The references to CoreRT and ProjectN .csproj were conditionalized in some places, but not others. Apply the condition consistently everywhere to avoid unexpected interactions. [tfs-changeset: 1654415]
2017-03-14Add support for MSDIA140 to DIA-based CoreRT/.NETNative StackTraceGenerator ↵Tomas Rylek
on Windows Include the CLSID of MSDIA140 in the lookup for IDiaSource to enable DIA-based symbolic exception stack traces on machines with new VS installation that only include msdia140. [tfs-changeset: 1650741]
2017-02-15Refactor use of TypeManager and Module pointers within the BCLDavid Wrighton
- Move from using an IntPtr which may represent a TypeManager* or a OS module pointer to using a struct TypeManagerHandle consistently - Except for RuntimeSignature, which has a third possible meaning of its IntPtr. That work will be done in a seperate change, and wil result in removal of nearly all of the new TypeManagerHandle calls in this delta. - This struct contains a bit which indicates which form of pointer is being worked with, as well as routines for performing RVA access as appropriate - Added new api to redhawk to get the OS module list (Used in crash dump generation) - Added new api to get the OS module of of a pointer. These are not yet enabled for TypeManager based scenarios, but that will be done in a followon change. Eventually these will exclusively be use for instruction pointers, and will tie into diagnostic scenarios around stack traces, etc. Currently, it is also used in a few reflection scenarios. Those code patterns will be removed soon. - Similarly distinguished between getting the OS module for an EEType, and getting the module for an EEType. This is used in error message scenarios. - Update RhFindBlob to work with both types of module pointers [tfs-changeset: 1647831]
2017-02-06Avoid unnecessary branches when fixing non-null/empty arrays (#2668)Justin Van Patten
When we know an array is not null or empty at the point where fixed is used, we can reduce the number of branches (and IL size of the method body) by using the address of the first element.
2016-11-01Add developer experience initialization to main methodJan Kotas
2016-02-06Cleanup relative path in compile elements to have a linkTarek Mahmoud Sayed
without the link, VS will show all relative path elements in the root of the project explorer. adding link will organize the view and also avoid a conflic with the same file names
2016-01-28Update licensing headersdotnet-bot
2016-01-04Need to explicitly set the AssemblyVersion otherwise it defaults to ↵Wes Haggard
999.999.999.999 which breaks some things like compat when there are direct references to these. [tfs-changeset: 1560977]
2016-01-04Clean up the new CoreRT project files as they had a bunch of redundant ↵Wes Haggard
properties that weren't correct. Also fixed a number of build warnings. [tfs-changeset: 1560909]
2015-12-23While porting the library I ended up updating quite a few projects to make ↵Alex Ghiondea
sure they continue to work. There were a couple of changes to the build system that are included in this change: - The location of the tool to restore the packages is set to use dnu for now. - When restoring packages for the internal build we need to actually pass the right parameters to the build of the depproj There were a couple of places where we had some issues that I fixed while I was doing the port: - The compiler gave error messages about some method out parameters not being assigned. - There was one missing 'unsafe' modifier on an interop file - I had to pull in a 'debug' method temporarily in the ret build. This was needed because the debug build of CoreLib currently does not build with the 'DEBUG' define. [tfs-changeset: 1559864]
2015-12-03Delete unnecessary global:: prefixesJan Kotas
2015-12-02Use McgIntrinsicsAttribute from CommonJan Kotas
2015-12-01Port StackTraceGenerator to CoreRTdotnet-bot
[tfs-changeset: 1552759]