Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/reignstudios/il2x

Translates .NET IL to unsuported .NET platforms and architectures. (Powered by Cecil)
https://github.com/reignstudios/il2x

c cpp il2c il2cpp msil runtime transpiler

Last synced: 1 day ago
JSON representation

Translates .NET IL to unsuported .NET platforms and architectures. (Powered by Cecil)

Awesome Lists containing this project

README

        

#

# IL2X (Under development)
Translates .NET IL to supported and unsuported .NET platforms and architectures. (Powered by Cecil)

NOTE: CS2X will be for GPU targets

## Goals
This projects focus is on translating .NET IL for non-supported .NET targets & performance. Portibility is a big focus.
* Native C performance
* C89: modern, legacy and embedded platforms (x86, x64, MIPS, SPARK, RISC-V, PPC, 68k, AVR, etc)
* CC65: 6502 platforms (Atari, C64, NES, Apple II, etc)
* SDCC: Many targets (ColecoVision, etc)
* z88dk: Z80 platforms
* Assembly: CP1610 (Intellivision)
* Retarget: Custom assembly targets (FPGA CPU, 16bit bytes, etc)
* Custom Standard lib(s) for various targets.
* Other lang targets: Java, JS, ActionScript, etc (portability or framework targeting)
* Documentation

## Project libraries
* IL2X.Core: .NET IL compiler/emitter lib
* IL2X.CLI: CLI interface for IL2X.Core
* IL2X.CoreLib: The IL2X CoreLib & runtime base

## What IL2X aims to provide CoreCLR / .NET-Native / Mono / Mono-AOT doesn't
* True portability. IL2X output will compile to C89 along with a CPU agnostic GC, Boehm or low-ram embedded GC. Special or platform specific C targets will have options. Such as storing string literals in ROM, VC++, Clang or GCC specifics etc.
* Statically compile the entire program & dependencies in a single AOT binary from any C compiler.
* IL2X can be faster than all currently available .NET runtimes when it comes to heavy number crunching thanks to mature C optimizers and lighter weight code gen.
* Allows you to directly invoke C methods statically for better optimizations vs using DllImport etc.
* Supports many C compilers allowing you to choose what's best.

## Building
NOTE: To clone repo you will need the Git Large File Storage

* Prerequisites
* VS 2022, vscode, Rider, etc
* .NET 8

## Is this project ready for general use?
No still experimental.