Age | Commit message (Collapse) | Author |
|
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).
|
|
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]
|
|
With Project file cotains Property <IsDotNetFrameworkProductAssembly>true</IsDotNetFrameworkProductAssembly>, the final assembly will contain assembly attribute
[assembly: AssemblyMetadata(".NETFrameworkAssembly", "")]
|
|
|
|
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]
|
|
Fixes 460497 Delete/modify WACK violations in PN corelib
|
|
- 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
|
|
VS is trying to "upgrate" the full framework projects without ToolsVersion
[tfs-changeset: 1662259]
|
|
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]
|
|
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]
|
|
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
|
|
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]
|
|
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]
|
|
- 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]
|
|
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.
|
|
|
|
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
|
|
|
|
999.999.999.999 which breaks some things like compat when there are direct references to these.
[tfs-changeset: 1560977]
|
|
properties that weren't correct. Also fixed a number of build warnings.
[tfs-changeset: 1560909]
|
|
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]
|
|
|
|
|
|
[tfs-changeset: 1552759]
|