1
0
Fork 0
mirror of https://github.com/VSadov/Satori.git synced 2025-06-12 02:30:29 +09:00
Satori/docs
Zoltan Varga 6fecc25b02
[mono] Initial support for unloadable ALCs (#77399)
* [mono] Add LoaderAllocator type, whose instances are used to
detect whenever a collectible ALC has managed references.

* [mono] Add an implicit GC reference between objects allocated from a collectible ALC and its LoaderAllocator object.

* [mono] Add a new hash table which is similar to MonoGHashTable, but it doesn't keep the key/value objects alive by itself.

* [mono] Add a keepalive field to some reflection objects to keep the alc alive if user code
holds a reference to them. Change the reflection hashes in MonoMemoryManager to weak hashes
so the hashes themselves don't keep the alc alive.

* Fix reflection hashes.

* [mono] Optimize the case when mono_method_get_signature_checked () is called with a non-zero context and a non-generic signature.

* Free memory manager caches.

* [mono] Store static variables with GC references in collectible alcs
on the GC heap.

Normally, static variables are stored in an array inside MonoVTable
which is registered as a GC root. For collectible alcs, this would
not work, since GC references in these arrays would keep the alc alive.
Instead, store them in arrays referenced by the LoaderAllocator object.
This assumes the static variables will no longer be accessed after
the LoaderAllocator object dies.

* Add basic unload functionality.

* Fix weak hashes.

* Free MonoJitInfos belonging to unloaded memory managers.

* Avoid returning collectible types from mono_metadata_get_shared_type ().

* Add docs.

* Fix the build.

* Fix the build.

* Disable unloading for now.
2022-12-15 10:43:29 -05:00
..
coding-guidelines Split library and package Readme (#78888) 2022-12-12 11:57:58 +01:00
design [mono] Initial support for unloadable ALCs (#77399) 2022-12-15 10:43:29 -05:00
infra Doc improvements (#76863) 2022-10-11 13:35:53 -07:00
issue-mappings Old repo issue number mapped to new repo issue number (#31981) 2020-02-08 12:20:38 -08:00
manpages/host Fix typos (#72709) 2022-07-23 20:24:28 -07:00
project Update api-review-process.md (#77860) 2022-11-04 11:25:42 -04:00
tools/illink Move illink documentation to runtime's documentation location (#78520) 2022-11-17 13:08:29 -08:00
workflow Follow-up from NetCoreAppCurrent tfm update (#79218) 2022-12-05 18:03:11 -05:00
area-owners.json Introduce System.IO.Ports area (#78743) 2022-11-23 14:17:48 -08:00
area-owners.md Introduce System.IO.Ports area (#78743) 2022-11-23 14:17:48 -08:00
deep-dive-blog-posts.md Update deep-dive-blog-posts.md (#78281) 2022-11-12 16:50:31 -08:00
issue-cleanup.md Add issue cleanup documentation and update automation (#69857) 2022-05-30 11:34:44 +01:00
issues-pr-management.md Quick doc formatting update to test checkout without bundle. 2021-01-14 11:28:34 -08:00
pr-builds.md Update documentation for analyzing PR failures (#74615) 2022-08-25 19:54:06 -07:00
pr-guide.md Update guideline of squashing commits (#71394) 2022-06-28 14:06:37 -07:00
README.md Find&Replace coreclr/src -> coreclr (#45761) 2020-12-08 10:40:17 -08:00

Documents Index

This repo includes several documents that explain both high-level and low-level concepts about the .NET runtime and libraries. These are very useful for contributors, to get context that can be very difficult to acquire from just reading code.

Intro to .NET

.NET is a self-contained .NET runtime and framework that implements ECMA 335. It can be (and has been) ported to multiple architectures and platforms. It support a variety of installation options, having no specific deployment requirements itself.

Getting Started

Workflow (Building, testing, benchmarking, profiling, etc.)

If you want to contribute a code change to this repo, start here.

Design Docs

The Book of the Runtime is a set of chapters that go in depth into various interesting aspects of the design of the .NET Framework.

For your convenience, here are a few quick links to popular chapters:

For additional information, see this list of blog posts that provide a 'deep-dive' into the CoreCLR source code

Coding Guidelines

Project Docs

To be added. Visit the project docs folder directly meanwhile.

Other Information