Sitelet https://web.archive.org/web/20221210100719/https://github.com/reignstudios/IL2X
Skip to content

reignstudios/IL2X

remake
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 

IL2X (Currently Experimental)

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

If IL2X works well, CS2X will focus on shader langs mostly: https://github.com/reignstudios/CS2X

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)
  • Assembly: CP1610 (Intellivision)
  • Retarget: Custom assembly targets (FPGA CPU, 16bit bytes, etc)
  • Custom Standard lib(s) for various targets.
  • 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 should compile without requiring explicit support for different target platforms as portable C does much of this already along with portable GC's strantagies that can compile to any OS or embedded platform. There are special case exceptions and IL2X will try to take care of those. Such as storing string literals in ROM etc.
  • Statically compile the entire programs dependencies (this is required as IL2X can be thought of as a AOT-JIT => C89 etc).
  • 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.
  • Supports many C compilers allowing you to choose what's best.

Building

###Dependencies To build IL2X, you will need the Git Large File Storage extension and the .NET 6 SDK

Terminal

git clone --recursive https://github.com/reignstudios/IL2X.git
cd IL2X
dotnet build

Is this project ready for general use?

No still experimental.

About

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

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published