SharpLab (previously known as TryRoslyn)
Перейти к файлу
Andrey Shchekin 2ad3e6f7fc [gh-196] Improved JIT ASM static constructor error message. 2017-09-24 22:57:52 +13:00
#build Improved branch builds to include Server.Azure. 2017-08-12 10:44:51 +12:00
source [gh-196] Improved JIT ASM static constructor error message. 2017-09-24 22:57:52 +13:00
.deployment Added Azure deployment file. 2017-03-04 13:39:38 +13:00
.editorconfig Cosmetic improvements. 2017-05-18 21:26:00 +12:00
.gitignore Get rid of "!" character in Roslyn build root directory name, since Roslyn's 'Restore.cmd' script uses old school '%~dp0' thing in statement 'set RoslynRoot=%~dp0' and it badly supports special path symbols, like exclamation mark in '!roslyn' (exlamation mark got trimmed out from folder name) 2016-12-11 03:51:51 +03:00
.gitmodules Changed ILSpy reference to a submodule. 2017-06-25 14:36:39 +12:00
Build.config.json [closes gh-132] Added alrz/jmp-expr to branches. 2017-06-24 19:27:43 +12:00
CONTRIBUTING.md [gh-151] Fixed typo. 2017-09-24 21:49:22 +13:00
LICENSE.txt [closes gh-38] Added license (2-clause BSD). 2016-12-16 23:04:55 +13:00
New-AzureConfig.ps1 Various build fixes, added ashmind branch to the build. 2016-04-29 00:35:22 +12:00
README.md [closes gh-151] Added ONTRIBUTING.md. 2017-09-24 21:39:29 +13:00
setup.bat [closes gh-189] Improved clarity of top folder. 2017-09-21 00:47:22 +12:00

README.md

This repository contains source code for https://sharplab.io.

SharpLab is a .NET code playground that shows intermediate steps and results of code compilation. Some language features are thin wrappers on top of other features -- e.g. using() becomes try/catch. SharpLab allows you to see the code as compiler sees it, and get a better understanding of .NET languages.

Recent versions include experimental support for running code, with some limitations.

Languages

SharpLab supports three source languages:

  1. C#
  2. Visual Basic
  3. F#

Due to complexity of F#'s compiler library, some features might not be available for F#.

Decompilation/Disassembly

There are currently four targets for decompilation/disassembly:

  1. C#
  2. Visual Basic
  3. IL
  4. JIT Asm (Native Asm Code)

Note that C#=>VB or VB=>C# disassembly shouldn't be used to convert between languages, as the produced code is intentionally overly verbose.

Execution

You can use "Run" target to execute your code and see the output.
Execution enables a few nice features such as flow arrows — see here:
https://twitter.com/ashmind/status/894058159223955456.

Execution is intentionally limited, however the limits are continuously improved and corrected.

Contributing

See CONTRIBUTING.md.