Skip to content

Copy-edit README.md #62

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 6 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
> [!WARNING]
> This project is still early in its developement. Bugs, crashes and miscompilations are expected. DO NOT USE IT FOR ANYTHING SERIOUS.

`rustc_codegen_clr` is an experimental Rust compiler backend(plugin), which allows you to transpile Rust into .NET assebmlies, or C source files.
`rustc_codegen_clr` is an experimental Rust compiler backend(plugin), which allows you to transpile Rust into .NET assemblies, or C source files.

The end goal of the project is allowing Rust to be used in places where it could not be used before.

Expand Down Expand Up @@ -41,7 +41,7 @@ With this approach, the classes and APIs exposed to .NET can be easily used from

## C support

While .NET is the main focus of my work, this project can also be used to compile Rust to C, by setting the `C_MODE` enviroment flag to `1`.
While .NET is the main focus of my work, this project can also be used to compile Rust to C, by setting the `C_MODE` environment flag to `1`.

This may seem like a strange and unrelated feature, but the project was written in such a way that this is not only possible, but relatively easy.

Expand All @@ -66,7 +66,7 @@ So, you *can* compile a lot of existing Rust code, but it may not necessarily *w

.NET

| Name | Pass | Faliure | Crash \ Timeout| OK precentage
| Name | Pass | Faliure | Crash \ Timeout| OK percentage
|--------------------|--------|-------|-------|------|
| Core tests | 1662 | 39 | 12 | 97.02% |
| Alloc tests | 616 |8 | 40 | 92.77% |
Expand All @@ -77,7 +77,7 @@ So, you *can* compile a lot of existing Rust code, but it may not necessarily *w

C

| Name | Pass | Faliure | OK precentage
| Name | Pass | Faliure | OK percentage
|--------------------|--------|-------|------|
| Core tests | 1419 | 294 | 82.83% |

Expand Down Expand Up @@ -105,12 +105,13 @@ C

### Q: What about Mono?

**A**: *The support for the Mono runtime is not as good as it could be. Due to not supported features and differences, 128-bit integers and checked 64-bit integer arithmetic are not supported on Mono.*
**A**: *The support for the Mono runtime is not as good as it could be. Due to unsupported features and differences, 128-bit integers and checked 64-bit integer arithmetic are not supported on Mono.*
*Aligned allocators(__rust_alloc) and certain intrinsics are also not supported. I plan to expand support for Mono, but my resources are limited.*

### Q: Are there any issues?

**A**: *While the backend is extensively tested, it is still far from perfect, and there are still many edge cases that may break this backend.*

**A**: *Currently, there are no .NET-specific versions of `std` or .NET specific target triples. This means that you will need separate .NET assemblies for each OS.*

## Licensing
Expand Down