This repo contains CoreRT, an experimental .NET Core runtime optimized for AOT (ahead of time compilation) scenarios, with the accompanying compiler toolchain.
Перейти к файлу
Simon Nattress 3d56b11db6
Build header tables using metadata manager (#6222)
* Build header tables using metadata manager

* Enable MetadataManager to track use of types / methods

* Introduce `AvailableType` which replaces the CoreRT EETypeNode.
Ready-to-run doesn't emit types directly into the image but records
their use and fills a table of available types used for type resolution
between ready-to-run modules by the runtime.

* Add dependency tracking in a few existing places where references to
types are being made. In library compilation mode, the non-private types
will be rooted so they always end up in the available types table.

* Use a single NodeCache for method entrypoints instead of a separate
dictionary for ready-to-run entrypoints. To smooth over the API
differences between the base `NodeFactory` and
`ReadyToRunCodegenNodeFactory`, allow a custom GetOrAdd method that
takes a creator callback.

* Switch over `RuntimeFunctionsTable`, `TypesTable`,
`MethodEntryPointTable` to use metadata manager for the list of types /
methods to emit entries for.
2018-08-14 12:44:10 -07:00
.vscode Updated paths to ILC in docs and fixed .vscode/launch.json (#4212) 2017-07-21 21:53:46 +02:00
Documentation Rev netcoreapp2.0 to netcoreapp2.1 (#5974) 2018-06-20 17:06:28 -07:00
buildpipeline Publish indexed symbols 2018-06-13 10:33:28 -07:00
buildscripts Ready To Run Test Support (#6156) 2018-08-02 12:50:35 -07:00
cross Enable Alpine ARM/ARM64 cross build (#5911) 2018-06-07 17:45:30 -07:00
pkg Rev netcoreapp2.0 to netcoreapp2.1 (#5974) 2018-06-20 17:06:28 -07:00
samples Fix WebApi sample (#5995) 2018-06-22 23:11:41 +02:00
src Build header tables using metadata manager (#6222) 2018-08-14 12:44:10 -07:00
tests Build header tables using metadata manager (#6222) 2018-08-14 12:44:10 -07:00
.editorconfig Add .editorconfig (#3001) 2017-03-16 18:41:57 -07:00
.gitattributes Add *.in text eol=lf to .gitattributes (#2579) 2017-01-24 20:08:45 -08:00
.gitignore Ready To Run Test Support (#6156) 2018-08-02 12:50:35 -07:00
.gitmirrorall Enable mirroring 2015-10-28 12:32:36 -07:00
BuildToolsVersion.txt Update dependencies (#5918) 2018-06-08 23:17:02 -04:00
DotnetCLIVersion.txt Update to latest released dotnet SDK (#6005) 2018-06-24 10:32:39 -07:00
LICENSE.TXT Update licensing headers 2016-01-27 21:18:14 -08:00
NuGet.config Update CoreRT build to use latest .NET CLI and build tools (#3916) 2017-06-24 11:10:44 -07:00
PATENTS.TXT Adding things to patents 2015-11-17 22:58:13 -08:00
Packaging.props New ObjectWriter NuGet packaging scripts (#5667) 2018-04-09 16:51:17 -07:00
README.md Update main readme file (#5555) 2018-03-15 18:11:57 -07:00
THIRD-PARTY-NOTICES.TXT Update Lincense Info (#3615) 2017-05-15 13:01:28 -07:00
build.cmd Fix rough edges after CLI update (#3983) 2017-06-26 17:10:12 -07:00
build.proj Update CoreRT build to use latest .NET CLI and build tools (#3916) 2017-06-24 11:10:44 -07:00
build.sh Split build scripts for CI (#2309) 2016-12-08 09:56:38 -06:00
dependencies.props Update RyuJIT (#6170) 2018-08-02 17:36:26 +02:00
dir.props Rev netcoreapp2.0 to netcoreapp2.1 (#5974) 2018-06-20 17:06:28 -07:00
dir.targets Rev netcoreapp2.0 to netcoreapp2.1 (#5974) 2018-06-20 17:06:28 -07:00
dir.traversal.targets Fix "build.cmd clean" (#4095) 2017-07-07 04:55:29 +02:00
init-tools.cmd Updating CLI to 2.0.0 version (#4667) 2017-10-03 22:06:17 -07:00
init-tools.msbuild Rev netcoreapp2.0 to netcoreapp2.1 (#5974) 2018-06-20 17:06:28 -07:00
init-tools.sh Undo accidental 2.0 -> 2.1 renames (#5981) 2018-06-20 20:38:07 -07:00
netci.groovy Add WebAssembly to CI (#5845) 2018-08-05 20:46:49 -07:00

README.md

.NET Core Runtime (CoreRT)

This repo contains the .NET Core runtime optimized for ahead of time compilation. The CoreRT compiler can compile a managed .NET Core application into a native (architecture specific) single-file executable that is easy to deploy. It can also produce standalone dynamic or static libraries that can be consumed by applications written in other programming languages. To learn more about CoreRT, see the intro document.

Try Our Samples

If you would like to give CoreRT a try, we publish daily snapshots of CoreRT to MyGet. Using CoreRT is as simple as adding a new package reference to your .NET Core project and publishing it. Check out one of our samples: a "Hello World" console app, a simple ASP.NET Core app, or a MonoGame game. The README.md file in each sample's directory will guide you through the process step by step.

Platform Support

This is a work in progress. The current state of platform support:

How to Engage, Contribute and Provide Feedback

Some of the best ways to contribute are to try things out, file bugs, and join in design conversations.

Looking for something to work on? The up for grabs issues are a great place to start. Take a look at our documentation to find out about the architecture and learn how to build and test the repo.

This project follows the .NET Core Contribution Guidelines.

Join the chat at https://gitter.im/dotnet/corert

Reporting security issues and security bugs

Security issues and bugs should be reported privately, via email, to the Microsoft Security Response Center (MSRC) secure@microsoft.com. You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Further information, including the MSRC PGP key, can be found in the Security TechCenter.

License

The CoreRT Repo is licensed under the MIT license.

.NET Foundation

CoreRT is a .NET Foundation project.

This project has adopted the code of conduct defined by the Contributor Covenant to clarify expected behavior in our community. For more information, see the .NET Foundation Code of Conduct.

There are many .NET related projects on GitHub.

Build Status

Ubuntu 14.04 Windows Mac OS X
Debug Build status Build status Build Status
Release Build status Build status Build Status