1bb85b989d
* Initial support for running tests against CPAOT-built framework The pass rate is not super high right now, I'm seeing 109 failing tests or about 13% pass rate but the main point is that the pass rate is not zero, we can build on that. In the AVAILABLE_TYPES R2R node, I added provisions for emitting exported types. This was one of the issues we were hitting - the partial facade System.Runtime wasn't properly exporting its type forwards. In the PE builder, I dropped copying of all directories per JanK's suggestion, the latest impulse being a mismatch between the debug directory and the CPAOT-compiled executable. * Modify available types to be emitted based on metadata I have applied JanK's suggestion to change AVAILABLE_TYPES to be generated based on metadata rather than based on the results of dependency analysis. * Addressed Michal's PR feedback 1) Unified DefinedTypeInfo and ExportedTypeInfo to use a common generic class TypeInfo<THandle> per Michal's suggestion. 2) Fixed exported type traversal to cater for nested forwards. 3) Added a tiny fix I noticed by comparing CPAOT and Crossgen code - querying method dictionary in a generic lookup should use the "METHOD_HANDLE", not "METHOD_DICTIONARY" fixup. This increases the pass rate of Top200 against CPAOT-built framework to about 82% (22 failures out of 126 tests). Thanks Tomas |
||
---|---|---|
.vscode | ||
Documentation | ||
buildpipeline | ||
buildscripts | ||
cross | ||
pkg | ||
samples | ||
src | ||
tests | ||
.editorconfig | ||
.gitattributes | ||
.gitignore | ||
.gitmirrorall | ||
BuildToolsVersion.txt | ||
DotnetCLIVersion.txt | ||
LICENSE.TXT | ||
NuGet.config | ||
PATENTS.TXT | ||
Packaging.props | ||
README.md | ||
THIRD-PARTY-NOTICES.TXT | ||
build.cmd | ||
build.proj | ||
build.sh | ||
dependencies.props | ||
dir.props | ||
dir.targets | ||
dir.traversal.targets | ||
init-tools.cmd | ||
init-tools.msbuild | ||
init-tools.sh | ||
netci.groovy |
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:
- Windows, MacOS and Linux x64 w/ RyuJIT codegen: Simple apps. Check our ASP.NET Core and MonoGame samples.
- Linux ARM w/ RyuJIT codegen: ElmSharp Hello Tizen application (detailed status)
- CppCodeGen (targets all platforms that support C++): Simple C# programs. The big missing features are reflection, garbage collection and exception handling.
- WebAssembly: Early prototype that compiles and runs very trivial programs only. Many features are not yet implemented.
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.
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.
Related Projects
There are many .NET related projects on GitHub.
- The .NET home repo links to 100s of .NET projects, from Microsoft and the community.
- The ASP.NET home repo is the best place to start learning about ASP.NET Core.
Build Status
Ubuntu 14.04 | Windows | Mac OS X | |
---|---|---|---|
Debug | |||
Release |