- Fixup EEClassHash to support a hash function that includes enclosing class
- Move namespace/name splitting to the Type.GetType code paths
- Move exported type handling into the normal PopulateAvailableClass flow
- Remove unnecessary work done to detect typedef name duplicates. We don't attempt to protect against invaild assemblies anymore
- Unify path for insertion between ExportedType and TypeDef records, also unify the path for nested vs non-nested
- Fix logic which implements inserts into the case insensitive table when dynamically adding entries to the ExportedType table (Previously it didn't work)
* Created memory-model.md
* addresses some comments
* More details and samples.
* Fix trailing whitespaces.
* More trailing whitespace
* More trailing whitespace.
* Apply suggestions from code review (typos)
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
Co-authored-by: Dan Moseley <danmose@microsoft.com>
* replaced references to CLR with ".NET runtime"
* Addressed some PR review feedback
* Moved to specs folder
* More addressing PR feedback
* Volatile/Interlocked methods are atomic
* Better notes about atomicity of pointers
* Apply suggestions from code review
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
* Addressing more PR feedback
* Updated singleton sample for more clarity.
* Trailing whitespace.
* Move data dependent reads to general section
* Compat disambiguation note on object assignments.
* Apply suggestions from code review
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
* No dots at title ends
* "Data-dependent" spelled with dash consistently
* Apply suggestions from code review
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
* Apply suggestions from code review
Co-authored-by: Aaron Robinson <arobins@microsoft.com>
* Apply suggestions from code review
Co-authored-by: Bruce Forstall <brucefo@microsoft.com>
* order of object assignment and data-dependent memory accesses
* Listed primitive types.
* Briefly explained motivations for the treatment of memory access sideeffects.
* Update docs/design/specs/Memory-model.md
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
* Link to the data-dependent accesses and compiler optimizations followup issue.
* removed unnecessary `[`
* Update docs/design/specs/Memory-model.md
* Trailing whitespace
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
Co-authored-by: Dan Moseley <danmose@microsoft.com>
Co-authored-by: Aaron Robinson <arobins@microsoft.com>
Co-authored-by: Bruce Forstall <brucefo@microsoft.com>
* Describe the validity of null managed pointers
- Declare that it is valid to have a null managed pointer, but declare it invalid to actually read from such a pointer
- In practice this has always been legal, as it has been legal to managed pointer locals for years, and they are included in the list of values that are zeroinitialized on method start
- Also clarify the rules to permit a managed pointer to the location directly following a managed object.
- This is a new capability in the spec that will likely be useful for accessing fixed size data buffers held in objects of the GC heap. However, the GC has been able to tolerate this behavior for many years, so there is no code change necessary.
Fixes#69690
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
Co-authored-by: Aaron Robinson <arobins@microsoft.com>
* Fix typos
* Cleanup trailing whitespaces in committed files
* Revert a macro for win32 compat
* Disambiguate test data method
* Revert XMLPath test which rely on external assets
* Revert whitespace change in Xml tests
* Revert ClrEtwAl and ILLink.Shared
* Revert crossgen2 props/targets and *.wxl
- The preview feature version of virtual statics implemented for .NET 6 does not allow for the interface methods to have a default implementation.
- With this change, we add support for the interface method having an actual implementation to CoreCLR. From what I can tell the Mono runtime already had such support
- There are some small ECMA spec updates to allow this change that are also included
In addition, I've taken the liberty to enable running the coreclr test suite on Mono on Windows. It needed a small amount of fixup.
- Make sure FieldRVA pointers remain aligned as required by the code generator
- Use the same Packing Size approach as the IL Linker will use (See jbevain/cecil#817 for details)
- Compilers that generate CreateSpan will need to follow that trick to be compatible with rewriters.
- Provide ECMA spec augment describing packing size detail
* Only pass perfmap argument for Linux
* Enhance CrossGen2 to emit PerfMap debug directory entry
This is used to correlate PE's with their corresponding PerfMaps. For example the header in the perfmap could be:
```
FFFFFFFF 00 026D4D21B3EE3D93843FF7A964235822
FFFFFFFE 00 1
FFFFFFFD 00 1
FFFFFFFC 00 3
FFFFFFFB 00 1
```
And the PE will have the corresponding entries in the PE as:
```
PerfMap (Type 21):
System.Private.CoreLib.ni.r2rmap, Signature = 026d4d21b3ee3d93843ff7a964235822, Version = 1
```
* Emit headers for debug directory entries from the nodes themselves.
* Add PerfMap Debug Directory Entry spec
* Extend perfmap and r2r documentation
* Add a conv conformance test.
* Fix Ecma description.
* Fix the test.
* Update docs/design/specs/Ecma-335-Augments.md
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
* Disable VN optimizations on arm64 because of the bug.
* add a new chapter.
* fix space
* Fix format.
* exclude the test on mono
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
* Trim trailing whitespaces
* Match raw with rendered
* Delete extra asterisks and |
* Update ELT Hooks - tail calls.md
Co-authored-by: Jan Kotas <jkotas@microsoft.com>