Skip to content

xen2/SharpLang

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

587 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SharpLang

This project is no longer active, consider migrating to https://github.com/dotnet/corert

SharpLang is a .NET (MSIL) compiler front-end for LLVM.

It allows you to compile C# and other .NET languages code to any supported LLVM backend.

Official twitter account: https://twitter.com/SharpLangDev

Licence

BSD 2-clause license.

Documentation

Getting Started

Objectives

Planned features

It's still a early work in progress. Any help/feedback is welcome!

What's working

  • Codegen (unit tested)
  • Supports most .NET opcodes
  • Branching
  • Classes and interfaces
  • Generics (expanded like C++ template)
  • PInvoke (simple, no marshalling)
  • Delegate (no multicast delegate yet)
  • Boxing
  • Exceptions (DWARF and SEH)
  • Converts huge libraries (i.e. Mono mscorlib, System, System.Core, System.Xml, etc...)
  • Reflection (only types, no method/field yet)
  • x86 and x64
  • Simple code linked against SharpLang-compiled Mono mscorlib is starting to work (i.e. WinForms+SharpDX)

What's next

  • Driver/Linker
  • Runtime (probably lot will be imported from CoreCLR)
  • Reflection (method, fields, custom attributes)
  • Threads, Locks, etc...
  • I/O
  • Marshalling
  • Vararg
  • GC integration (either CoreCLR, Mono or BoehmGC)
  • Cross-platform
  • Emscripten HTML5 (javascript) support
  • Linux/MacOSX support
  • Android, iOS
  • Code quality
  • Documentation

Future

Various technical details

Here for now, until later moved to a more specific documentation.

  • UTF8 string (UTF16 was choosed mainly because of Windows API, but UTF8 is more space efficient, API compatible with char* and avoid many conversions)
  • String/Array indirection to more easily carve substring/subarrays.

About

Compiles .NET/C# to native code using LLVM framework. No longer active, consider migrating to https://github.com/dotnet/corert

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors