diff --git a/IL2C.Runtime/src/Private/msvc_win32.h b/IL2C.Runtime/src/Private/msvc_win32.h
index ea4e26ae..d35193a6 100644
--- a/IL2C.Runtime/src/Private/msvc_win32.h
+++ b/IL2C.Runtime/src/Private/msvc_win32.h
@@ -37,7 +37,7 @@ extern "C" {
#define il2c_wcstof wcstof
#define il2c_wcstod wcstod
#define il2c_wcscmp wcscmp
-#define il2c_wcsicmp wcsicmp
+#define il2c_wcsicmp _wcsicmp
#define il2c_wcslen wcslen
#define il2c_initialize_heap() _CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_CHECK_ALWAYS_DF)
#define il2c_check_heap() _CrtCheckMemory()
diff --git a/README.md b/README.md
index be0b5c7b..b8c21b29 100644
--- a/README.md
+++ b/README.md
@@ -61,13 +61,15 @@ void HelloWorld_Main()
}
```
-[View with comments and other sample translation results (contains complex results), see this page.](sample-translation-results.md)
+[View with comments and other sample translation results (contains complex results), see this page.](docs/sample-translation-results.md)
-## How to beginning
+## Getting started
-The IL2C current status is experimental. Contributions are welcome but there's nothing the official guide documents.
+The IL2C current status is experimental. Contributions are welcome but we have [a only simple Getting started document.](docs/getting-started.md)
-This is first step for use the IL2C: ["Try writing code using both the Azure Sphere Development Kit and C#" (My blog)](https://www.kekyo.net/2019/01/04/6917), or these steps:
+And you can refer the blog post: ["Try writing code using both the Azure Sphere Development Kit and C#" (My blog)](https://www.kekyo.net/2019/01/04/6917).
+
+Below list memoized lazy simple steps:
1. Open the il2c.sln by Visual Studio 2017. Your environment requires enabling the C#, VC++ and NUnit3 vsix addin.
2. Build with "Debug - AnyCPU" configuration.
@@ -87,11 +89,11 @@ This is first step for use the IL2C: ["Try writing code using both the Azure Sph
### These list are auto-generated by unit test.
-* [Supported IL opcodes list](supported-opcodes.md)
+* [Supported IL opcodes list](docs/supported-opcodes.md)
-* [Supported basic types](supported-basic-types.md)
+* [Supported basic types](docs/supported-basic-types.md)
-* [Supported runtime system features](supported-runtime-system-features.md)
+* [Supported runtime system features](docs/supported-runtime-system-features.md)
### These list are manually maintanance (and maybe older...)
diff --git a/docs/getting-started.md b/docs/getting-started.md
new file mode 100644
index 00000000..f5bd2049
--- /dev/null
+++ b/docs/getting-started.md
@@ -0,0 +1,297 @@
+
+# Getting started the IL2C
+
+## How works the IL2C
+
+The IL2C will translate your C# (or another .NET based) code to the C language source code.
+It bites the .NET assembly (*.dll or *.exe) and will produce multiple C language source code files. It illustrates the graph:
+
+
+
+First half stage, we can automate building process with the NuGet package nemed [IL2C.Build](https://www.nuget.org/packages/IL2C.Build).
+
+Then we'll get the translated C language source code files, so we need compile and get the target binary at the second half stage manually.
+
+This document introduces generally usage for the IL2C. Try it!
+
+## 1. Step by step for first trying
+
+We know about better first step, it's the "Hello world." [(The completed projects contain the IL2C repository. You can refer it.)](https://github.com/kekyo/IL2C/tree/master/samples/GettingStartedIL2C)
+
+### 1-1. Create new C# library project with "net46" or "netcoreapp2.0" platform using Visual Studio 2017.
+
+You can choice ether old (.NET Framework style) project or new (.NET Core/Standard style) project. For example, this project named "GettingStartedIL2C".
+
+
+
+### 1-2. Add the [IL2C.Build NuGet package](https://www.nuget.org/packages/IL2C.Build) using the "Package Manager Console" or "NuGet package manager dialog."
+
+
+
+Shows example csproj file:
+
+```xml
+
+
+ Exe
+ netcoreapp2.0
+
+
+
+
+
+```
+
+### 1-3. Write code fragment:
+
+```csharp
+using System;
+
+namespace GettingStartedIL2C
+{
+ public static class Program
+ {
+ public static void Main() =>
+ Console.WriteLine("Hello world with IL2C!");
+ }
+}
+```
+
+### 1-4. Build project and run.
+
+
+
+You'll see print it inside the console window and you'll definitely say: "Is not that natural? It's running on the pure .NET runtime." Yes it is. But you already have the translated C source code files. Check it up:
+
+```
+[The project directory]
+|
+| GettingStartedIL2C.csproj
+| Program.cs
+\---bin
+ \---Debug
+ \---netcoreapp2.0
+ | GettingStartedIL2C.deps.json
+ | GettingStartedIL2C.dll // It's standard .NET executable assembly (we saw results)
+ | GettingStartedIL2C.pdb
+ | GettingStartedIL2C.runtimeconfig.dev.json
+ | GettingStartedIL2C.runtimeconfig.json
+ \---IL2C // The IL2C translated C language source codes
+ +---include
+ | | GettingStartedIL2C.h
+ | |
+ | \---GettingStartedIL2C
+ | \---GettingStartedIL2C
+ | Program.h
+ \---src
+ | GettingStartedIL2C_internal.c
+ | GettingStartedIL2C_internal.h
+ |
+ \---GettingStartedIL2C
+ \---GettingStartedIL2C
+ Program.c
+```
+
+You can find the "IL2C" subdirectory descendant bin directory. It's default output directory for IL2C. These files are the C source codes and headers, indicate extensions "*.c" or "*.h".
+
+The "src" directory contains translated method body code, and the "include" directory contains public/internal types and methods definitions. We can build native binary both using these files and the IL2C runtime library.
+
+"IL2C.Runtime" directory at the IL2C repository root contains runtime library. This tutorial compiles with Visual C++ (But the IL2C is aiming for targeting multiple platform. You can also choice the gcc.)
+
+### 1-5. Add Visual C++ console application into your solution.
+
+This is the second half stage. For example, this project named "GettingStartedIL2CMain".
+
+
+
+(The Visual C++ wizard generates a lot of helper code fragemnts. We can remove it, but I don't it in this tutorial because I'll focus for the IL2C usage.)
+
+Open project file (GettingStartedIL2CMain.vcxproj) and edit directly below (because it's easy way):
+
+1. Add "AdditionalIncludeDirectories" property each descendant ItemDefinitionGroup/ClCompile elements. We have to do it because the VC++ compiler requires referring both IL2C runtime header files and translated header files.
+
+```xml
+
+
+
+
+ $(ProjectDir)../../../IL2C.Runtime/include;$(ProjectDir)../../../IL2C.Runtime/src;$(ProjectDir)../GettingStartedIL2C/bin/$(Configuration)/netcoreapp2.0/IL2C/include;$(ProjectDir)../GettingStartedIL2C/bin/$(Configuration)/netcoreapp2.0/IL2C/src;%(AdditionalIncludeDirectories)
+
+
+
+```
+
+You have to adjust valid paths for your environments. You see a bit detail, the name "netcoreapp2.0" is perhaps different in your environment.
+
+2. Add referring the IL2C runtime and translated files nearly exist "ClInclude" and "ClCompile" elements:
+
+```xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ NotUsing
+
+
+ NotUsing
+
+
+```
+
+You have to adjust valid paths for your environments too. The "PrecompiledHeader" property requires because the translated files target to the "C language" and the feature can use only C++ language. (It's Visual C++ limitation.)
+
+3. Write (modify) C main function body (GettingStartedIL2CMain.cpp):
+
+```c++
+#include "pch.h"
+#include
+
+// Referrer translated code.
+#include
+
+int main()
+{
+ // Initialize the IL2C runtime.
+ il2c_initialize();
+
+ // Invoke (translated) the C# code.
+ GettingStartedIL2C_Program_Main();
+
+ // Shutdown the IL2C runtime.
+ il2c_shutdown();
+
+ return 0;
+}
+```
+
+### 1-5. Finished Hello world
+
+Run the project and got result (Note: you maybe fail if you forget setting the startup project.)
+
+
+
+### 1-6. Visual C++ related hints
+
+If your build random failing, it maybe causes the Visual Studio can't calculate project dependencies. You need to set dependance manually at the "Project dependency" dialog.
+
+
+
+And check it up for success building the entire solution at the "Configuration Manager" dialog.
+
+
+
+## 2. Trying sample for the polish notation calculator
+
+If you understand how to use the IL2C from scratch, you go to the next step. What are we thinking about using the IL2C? A topic is we can apply for OOP design with C# language different the C language.
+
+The next sample code is "The Polish notation calculator." It's the console application, input the PN expression and show result.
+
+
+
+It has modern design using OOP technics. And the solution contains unit test using the NUnit3. [(The completed projects contain the IL2C repository. You can refer it.)](https://github.com/kekyo/IL2C/tree/master/samples/Calculator)
+
+I introduce the project highlights:
+
+### 2-1. Using OOP features
+
+It contains class-base inheritance technics for the AST nodes (Abstract syntax tree).
+
+
+
+For example:
+
+```csharp
+// Base class
+public abstract class AbstractNode
+{
+ public readonly int NextIndex;
+
+ protected AbstractNode(int nextIndex)
+ {
+ this.NextIndex = nextIndex;
+ }
+}
+
+// Derived class
+public class OperatorNode : AbstractNode
+{
+ public readonly char Operator;
+
+ public OperatorNode(char oper, int nextIndex) : base(nextIndex)
+ {
+ this.Operator = oper;
+ }
+}
+
+// Derived class
+public abstract class ReducibleNode : AbstractNode
+{
+ protected ReducibleNode(int nextIndex) : base(nextIndex)
+ {
+ }
+
+ public abstract int Reduce();
+}
+```
+
+If you wanna check these node types, please refer [the repository.](https://github.com/kekyo/IL2C/tree/master/samples/Calculator) Everyday we use the OOP technics both the C# and another languages on the .NET. For class inheritance, polymorphism, interface separation, first class function (delegate) and related many others. All technics can use on the IL2C. (Currently limitations are dynamic related features same as the AOP)
+
+### 2-2. The library
+
+First tutorial the Hello world is combined all source codes into the Visual C++ project. But the normally case we separate the libraries.
+
+The IL2C is capable combined into a library. It's two ways:
+
+* Construct managed library and will combine at linking stage into one native project.
+ * We gonna apply IL2C.Build package each managed library projects.
+* Construct native library from each managed library and linking it.
+ * We gonna apply IL2C.Build package each managed library projects, and compile to native binary each projects.
+
+It illustrates the graph:
+
+
+
+The Polish notation calculator has only one library (IL2C.Runtime) and combined at linking into one native project.
+
+### 2-3. The unit tests
+
+You can test with NUnit or likely testing framework. The test technics isn't different for standard knowleges. You can use the dependency injection technics (using abstract types) if you have a platform depended accessor.
+
+## 3. You can witness working the C# code at non-OSes environment
+
+The IL2C maybe shows abroads these samples, because it's running on the Win32 environment. The .NET Core already has native binary compilation ability. Is it different?
+
+* The IL2C's native binary is VERY SMALL footprint. You'll see the static code size is between 2 and 3 times larger than "native C language code."
+* The IL2C's runtime ports easy to another platform include the embedded systems. The environment doesn't have any operating systems, called "Firmware level programming" or "Bare metal programming".
+
+The third sample targets for the "UEFI." The UEFI is same as the BIOS for PC's. Of course, it's non-OS environment. You can see the UEFI version for the Polish notation calculator.
+
+
+
+"IL2C.Runtime.UEFI" project is the Visual C++ library project for UEFI (VC++ can build it). And "Calculator.UEFI" project is combined both translated source code and runtime library in it. Then, the project outputs "bootx64.efi" file.
+
+It's truly UEFI application binary file. You can store into the USB flash stick with strictly directory structure:
+
+```
+E:.
+\---EFI
+ \---BOOT
+ bootx64.efi
+```
+
+Then, this USB flash stick insert into target (UEFI enabled) PC, reset and invoke the boot device prompt.
+
+
+
+
diff --git a/sample-translation-results.md b/docs/sample-translation-results.md
similarity index 100%
rename from sample-translation-results.md
rename to docs/sample-translation-results.md
diff --git a/supported-basic-types.md b/docs/supported-basic-types.md
similarity index 56%
rename from supported-basic-types.md
rename to docs/supported-basic-types.md
index b3fe0743..cf0ee08c 100644
--- a/supported-basic-types.md
+++ b/docs/supported-basic-types.md
@@ -6,28 +6,28 @@
Type | Test
|:---|:---|
| [System.Array](https://docs.microsoft.com/en-us/dotnet/api/system.array) | |
-| [System.Boolean](https://docs.microsoft.com/en-us/dotnet/api/system.boolean) | [Test [6]](tests/IL2C.Core.Test.Target/BasicTypes/System_Boolean) |
-| [System.Byte](https://docs.microsoft.com/en-us/dotnet/api/system.byte) | [Test [6]](tests/IL2C.Core.Test.Target/BasicTypes/System_Byte) |
-| [System.Char](https://docs.microsoft.com/en-us/dotnet/api/system.char) | [Test [6]](tests/IL2C.Core.Test.Target/BasicTypes/System_Char) |
-| [System.Delegate](https://docs.microsoft.com/en-us/dotnet/api/system.delegate) | [Test [11]](tests/IL2C.Core.Test.Target/BasicTypes/System_Delegate) |
-| [System.Double](https://docs.microsoft.com/en-us/dotnet/api/system.double) | [Test [6]](tests/IL2C.Core.Test.Target/BasicTypes/System_Double) |
+| [System.Boolean](https://docs.microsoft.com/en-us/dotnet/api/system.boolean) | [Test [6]](../tests/IL2C.Core.Test.Target/BasicTypes/System_Boolean) |
+| [System.Byte](https://docs.microsoft.com/en-us/dotnet/api/system.byte) | [Test [6]](../tests/IL2C.Core.Test.Target/BasicTypes/System_Byte) |
+| [System.Char](https://docs.microsoft.com/en-us/dotnet/api/system.char) | [Test [6]](../tests/IL2C.Core.Test.Target/BasicTypes/System_Char) |
+| [System.Delegate](https://docs.microsoft.com/en-us/dotnet/api/system.delegate) | [Test [11]](../tests/IL2C.Core.Test.Target/BasicTypes/System_Delegate) |
+| [System.Double](https://docs.microsoft.com/en-us/dotnet/api/system.double) | [Test [6]](../tests/IL2C.Core.Test.Target/BasicTypes/System_Double) |
| [System.Enum](https://docs.microsoft.com/en-us/dotnet/api/system.enum) | |
| [System.Exception](https://docs.microsoft.com/en-us/dotnet/api/system.exception) | |
| [System.GC](https://docs.microsoft.com/en-us/dotnet/api/system.gc) | |
-| [System.Int16](https://docs.microsoft.com/en-us/dotnet/api/system.int16) | [Test [6]](tests/IL2C.Core.Test.Target/BasicTypes/System_Int16) |
-| [System.Int32](https://docs.microsoft.com/en-us/dotnet/api/system.int32) | [Test [6]](tests/IL2C.Core.Test.Target/BasicTypes/System_Int32) |
-| [System.Int64](https://docs.microsoft.com/en-us/dotnet/api/system.int64) | [Test [6]](tests/IL2C.Core.Test.Target/BasicTypes/System_Int64) |
-| [System.IntPtr](https://docs.microsoft.com/en-us/dotnet/api/system.intptr) | [Test [4]](tests/IL2C.Core.Test.Target/BasicTypes/System_IntPtr) |
-| [System.Object](https://docs.microsoft.com/en-us/dotnet/api/system.object) | [Test [12]](tests/IL2C.Core.Test.Target/BasicTypes/System_Object) |
+| [System.Int16](https://docs.microsoft.com/en-us/dotnet/api/system.int16) | [Test [6]](../tests/IL2C.Core.Test.Target/BasicTypes/System_Int16) |
+| [System.Int32](https://docs.microsoft.com/en-us/dotnet/api/system.int32) | [Test [6]](../tests/IL2C.Core.Test.Target/BasicTypes/System_Int32) |
+| [System.Int64](https://docs.microsoft.com/en-us/dotnet/api/system.int64) | [Test [6]](../tests/IL2C.Core.Test.Target/BasicTypes/System_Int64) |
+| [System.IntPtr](https://docs.microsoft.com/en-us/dotnet/api/system.intptr) | [Test [4]](../tests/IL2C.Core.Test.Target/BasicTypes/System_IntPtr) |
+| [System.Object](https://docs.microsoft.com/en-us/dotnet/api/system.object) | [Test [12]](../tests/IL2C.Core.Test.Target/BasicTypes/System_Object) |
| [System.Runtime.InteropServices.GCHandle](https://docs.microsoft.com/en-us/dotnet/api/system.runtime.interopservices.gchandle) | |
| [System.RuntimeFieldHandle](https://docs.microsoft.com/en-us/dotnet/api/system.runtimefieldhandle) | |
-| [System.SByte](https://docs.microsoft.com/en-us/dotnet/api/system.sbyte) | [Test [6]](tests/IL2C.Core.Test.Target/BasicTypes/System_SByte) |
-| [System.Single](https://docs.microsoft.com/en-us/dotnet/api/system.single) | [Test [6]](tests/IL2C.Core.Test.Target/BasicTypes/System_Single) |
-| [System.String](https://docs.microsoft.com/en-us/dotnet/api/system.string) | [Test [18]](tests/IL2C.Core.Test.Target/BasicTypes/System_String) |
-| [System.Type](https://docs.microsoft.com/en-us/dotnet/api/system.type) | [Test [7]](tests/IL2C.Core.Test.Target/BasicTypes/System_Type) |
-| [System.UInt16](https://docs.microsoft.com/en-us/dotnet/api/system.uint16) | [Test [6]](tests/IL2C.Core.Test.Target/BasicTypes/System_UInt16) |
-| [System.UInt32](https://docs.microsoft.com/en-us/dotnet/api/system.uint32) | [Test [6]](tests/IL2C.Core.Test.Target/BasicTypes/System_UInt32) |
-| [System.UInt64](https://docs.microsoft.com/en-us/dotnet/api/system.uint64) | [Test [6]](tests/IL2C.Core.Test.Target/BasicTypes/System_UInt64) |
-| [System.UIntPtr](https://docs.microsoft.com/en-us/dotnet/api/system.uintptr) | [Test [4]](tests/IL2C.Core.Test.Target/BasicTypes/System_UIntPtr) |
+| [System.SByte](https://docs.microsoft.com/en-us/dotnet/api/system.sbyte) | [Test [6]](../tests/IL2C.Core.Test.Target/BasicTypes/System_SByte) |
+| [System.Single](https://docs.microsoft.com/en-us/dotnet/api/system.single) | [Test [6]](../tests/IL2C.Core.Test.Target/BasicTypes/System_Single) |
+| [System.String](https://docs.microsoft.com/en-us/dotnet/api/system.string) | [Test [18]](../tests/IL2C.Core.Test.Target/BasicTypes/System_String) |
+| [System.Type](https://docs.microsoft.com/en-us/dotnet/api/system.type) | [Test [7]](../tests/IL2C.Core.Test.Target/BasicTypes/System_Type) |
+| [System.UInt16](https://docs.microsoft.com/en-us/dotnet/api/system.uint16) | [Test [6]](../tests/IL2C.Core.Test.Target/BasicTypes/System_UInt16) |
+| [System.UInt32](https://docs.microsoft.com/en-us/dotnet/api/system.uint32) | [Test [6]](../tests/IL2C.Core.Test.Target/BasicTypes/System_UInt32) |
+| [System.UInt64](https://docs.microsoft.com/en-us/dotnet/api/system.uint64) | [Test [6]](../tests/IL2C.Core.Test.Target/BasicTypes/System_UInt64) |
+| [System.UIntPtr](https://docs.microsoft.com/en-us/dotnet/api/system.uintptr) | [Test [4]](../tests/IL2C.Core.Test.Target/BasicTypes/System_UIntPtr) |
| [System.ValueType](https://docs.microsoft.com/en-us/dotnet/api/system.valuetype) | |
| [System.Void](https://docs.microsoft.com/en-us/dotnet/api/system.void) | |
diff --git a/supported-opcodes.md b/docs/supported-opcodes.md
similarity index 79%
rename from supported-opcodes.md
rename to docs/supported-opcodes.md
index 44fc8089..1dd2606f 100644
--- a/supported-opcodes.md
+++ b/docs/supported-opcodes.md
@@ -5,10 +5,10 @@
OpCode | Binary | Implement | Test | ILConverter
|:---|:---|:---|:---|:---|
-| [add](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.add) | 0x58 | Implemented | [Test [13]](tests/IL2C.Core.Test.Target/ILConverters/Add) | IL2C.ILConverters.AddConverter |
+| [add](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.add) | 0x58 | Implemented | [Test [13]](../tests/IL2C.Core.Test.Target/ILConverters/Add) | IL2C.ILConverters.AddConverter |
| [add.ovf](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.add_ovf) | 0xd6 | | | |
| [add.ovf.un](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.add_ovf_un) | 0xd7 | | | |
-| [and](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.and) | 0x5f | Implemented | [Test [5]](tests/IL2C.Core.Test.Target/ILConverters/And) | IL2C.ILConverters.AndConverter |
+| [and](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.and) | 0x5f | Implemented | [Test [5]](../tests/IL2C.Core.Test.Target/ILConverters/And) | IL2C.ILConverters.AndConverter |
| [arglist](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.arglist) | 0xfe00 | | | |
| [beq](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.beq) | 0x3b | Implemented | | IL2C.ILConverters.BeqConverter |
| [beq.s](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.beq_s) | 0x2e | Implemented | | IL2C.ILConverters.Beq_sConverter |
@@ -30,17 +30,17 @@ OpCode | Binary | Implement | Test | ILConverter
| [blt.un.s](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.blt_un_s) | 0x37 | | | |
| [bne.un](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.bne_un) | 0x40 | Implemented | | IL2C.ILConverters.Bne_UnConverter |
| [bne.un.s](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.bne_un_s) | 0x33 | Implemented | | IL2C.ILConverters.Bne_Un_sConverter |
-| [box](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.box) | 0x8c | Implemented | [Test [78]](tests/IL2C.Core.Test.Target/ILConverters/Box) | IL2C.ILConverters.BoxConverter |
-| [br](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.br) | 0x38 | Implemented | [Test [1]](tests/IL2C.Core.Test.Target/ILConverters/Br) | IL2C.ILConverters.BrConverter |
-| [br.s](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.br_s) | 0x2b | Implemented | [Test [1]](tests/IL2C.Core.Test.Target/ILConverters/Br_S) | IL2C.ILConverters.Br_sConverter |
-| [break](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.break) | 0x1 | Implemented | [Test [1]](tests/IL2C.Core.Test.Target/ILConverters/Break) | IL2C.ILConverters.BreakConverter |
-| [brfalse](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.brfalse) | 0x39 | Implemented | [Test [10]](tests/IL2C.Core.Test.Target/ILConverters/Brfalse) | IL2C.ILConverters.BrfalseConverter |
-| [brfalse.s](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.brfalse_s) | 0x2c | Implemented | [Test [10]](tests/IL2C.Core.Test.Target/ILConverters/Brfalse_S) | IL2C.ILConverters.Brfalse_sConverter |
-| [brtrue](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.brtrue) | 0x3a | Implemented | [Test [10]](tests/IL2C.Core.Test.Target/ILConverters/Brtrue) | IL2C.ILConverters.BrtrueConverter |
-| [brtrue.s](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.brtrue_s) | 0x2d | Implemented | [Test [10]](tests/IL2C.Core.Test.Target/ILConverters/Brtrue_S) | IL2C.ILConverters.Brtrue_sConverter |
-| [call](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.call) | 0x28 | Implemented | [Test [17]](tests/IL2C.Core.Test.Target/ILConverters/Call) | IL2C.ILConverters.CallConverter |
+| [box](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.box) | 0x8c | Implemented | [Test [78]](../tests/IL2C.Core.Test.Target/ILConverters/Box) | IL2C.ILConverters.BoxConverter |
+| [br](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.br) | 0x38 | Implemented | [Test [1]](../tests/IL2C.Core.Test.Target/ILConverters/Br) | IL2C.ILConverters.BrConverter |
+| [br.s](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.br_s) | 0x2b | Implemented | [Test [1]](../tests/IL2C.Core.Test.Target/ILConverters/Br_S) | IL2C.ILConverters.Br_sConverter |
+| [break](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.break) | 0x1 | Implemented | [Test [1]](../tests/IL2C.Core.Test.Target/ILConverters/Break) | IL2C.ILConverters.BreakConverter |
+| [brfalse](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.brfalse) | 0x39 | Implemented | [Test [10]](../tests/IL2C.Core.Test.Target/ILConverters/Brfalse) | IL2C.ILConverters.BrfalseConverter |
+| [brfalse.s](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.brfalse_s) | 0x2c | Implemented | [Test [10]](../tests/IL2C.Core.Test.Target/ILConverters/Brfalse_S) | IL2C.ILConverters.Brfalse_sConverter |
+| [brtrue](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.brtrue) | 0x3a | Implemented | [Test [10]](../tests/IL2C.Core.Test.Target/ILConverters/Brtrue) | IL2C.ILConverters.BrtrueConverter |
+| [brtrue.s](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.brtrue_s) | 0x2d | Implemented | [Test [10]](../tests/IL2C.Core.Test.Target/ILConverters/Brtrue_S) | IL2C.ILConverters.Brtrue_sConverter |
+| [call](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.call) | 0x28 | Implemented | [Test [17]](../tests/IL2C.Core.Test.Target/ILConverters/Call) | IL2C.ILConverters.CallConverter |
| [calli](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.calli) | 0x29 | | | |
-| [callvirt](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.callvirt) | 0x6f | Implemented | [Test [23]](tests/IL2C.Core.Test.Target/ILConverters/Callvirt) | IL2C.ILConverters.CallvirtConverter |
+| [callvirt](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.callvirt) | 0x6f | Implemented | [Test [23]](../tests/IL2C.Core.Test.Target/ILConverters/Callvirt) | IL2C.ILConverters.CallvirtConverter |
| [castclass](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.castclass) | 0x74 | Implemented | | IL2C.ILConverters.CastclassConverter |
| [ceq](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ceq) | 0xfe01 | Implemented | | IL2C.ILConverters.CeqConverter |
| [cgt](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.cgt) | 0xfe02 | Implemented | | IL2C.ILConverters.CgtConverter |
@@ -49,9 +49,9 @@ OpCode | Binary | Implement | Test | ILConverter
| [clt](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.clt) | 0xfe04 | Implemented | | IL2C.ILConverters.CltConverter |
| [clt.un](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.clt_un) | 0xfe05 | Implemented | | IL2C.ILConverters.Clt_unConverter |
| [constrained](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.constrained) | 0xfe16 | Implemented | | IL2C.ILConverters.ConstrainedConverter |
-| [conv.i](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.conv_i) | 0xd3 | Implemented | [Test [5]](tests/IL2C.Core.Test.Target/ILConverters/Conv_I) | IL2C.ILConverters.Conv_iConverter |
-| [conv.i1](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.conv_i1) | 0x67 | Implemented | [Test [10]](tests/IL2C.Core.Test.Target/ILConverters/Conv_I1) | IL2C.ILConverters.Conv_i1Converter |
-| [conv.i2](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.conv_i2) | 0x68 | Implemented | [Test [10]](tests/IL2C.Core.Test.Target/ILConverters/Conv_I2) | IL2C.ILConverters.Conv_i2Converter |
+| [conv.i](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.conv_i) | 0xd3 | Implemented | [Test [5]](../tests/IL2C.Core.Test.Target/ILConverters/Conv_I) | IL2C.ILConverters.Conv_iConverter |
+| [conv.i1](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.conv_i1) | 0x67 | Implemented | [Test [10]](../tests/IL2C.Core.Test.Target/ILConverters/Conv_I1) | IL2C.ILConverters.Conv_i1Converter |
+| [conv.i2](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.conv_i2) | 0x68 | Implemented | [Test [10]](../tests/IL2C.Core.Test.Target/ILConverters/Conv_I2) | IL2C.ILConverters.Conv_i2Converter |
| [conv.i4](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.conv_i4) | 0x69 | Implemented | | IL2C.ILConverters.Conv_i4Converter |
| [conv.i8](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.conv_i8) | 0x6a | Implemented | | IL2C.ILConverters.Conv_i8Converter |
| [conv.ovf.i](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.conv_ovf_i) | 0xd4 | | | |
@@ -78,44 +78,44 @@ OpCode | Binary | Implement | Test | ILConverter
| [conv.r4](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.conv_r4) | 0x6b | Implemented | | IL2C.ILConverters.Conv_r4Converter |
| [conv.r8](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.conv_r8) | 0x6c | Implemented | | IL2C.ILConverters.Conv_r8Converter |
| [conv.u](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.conv_u) | 0xe0 | Implemented | | IL2C.ILConverters.Conv_uConverter |
-| [conv.u1](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.conv_u1) | 0xd2 | Implemented | [Test [10]](tests/IL2C.Core.Test.Target/ILConverters/Conv_U1) | IL2C.ILConverters.Conv_u1Converter |
-| [conv.u2](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.conv_u2) | 0xd1 | Implemented | [Test [10]](tests/IL2C.Core.Test.Target/ILConverters/Conv_U2) | IL2C.ILConverters.Conv_u2Converter |
+| [conv.u1](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.conv_u1) | 0xd2 | Implemented | [Test [10]](../tests/IL2C.Core.Test.Target/ILConverters/Conv_U1) | IL2C.ILConverters.Conv_u1Converter |
+| [conv.u2](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.conv_u2) | 0xd1 | Implemented | [Test [10]](../tests/IL2C.Core.Test.Target/ILConverters/Conv_U2) | IL2C.ILConverters.Conv_u2Converter |
| [conv.u4](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.conv_u4) | 0x6d | Implemented | | IL2C.ILConverters.Conv_u4Converter |
| [conv.u8](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.conv_u8) | 0x6e | Implemented | | IL2C.ILConverters.Conv_u8Converter |
| [cpblk](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.cpblk) | 0xfe17 | | | |
| [cpobj](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.cpobj) | 0x70 | | | |
-| [div](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.div) | 0x5b | Implemented | [Test [9]](tests/IL2C.Core.Test.Target/ILConverters/Div) | IL2C.ILConverters.DivConverter |
+| [div](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.div) | 0x5b | Implemented | [Test [9]](../tests/IL2C.Core.Test.Target/ILConverters/Div) | IL2C.ILConverters.DivConverter |
| [div.un](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.div_un) | 0x5c | | | |
-| [dup](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.dup) | 0x25 | Implemented | [Test [2]](tests/IL2C.Core.Test.Target/ILConverters/Dup) | IL2C.ILConverters.DupConverter |
+| [dup](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.dup) | 0x25 | Implemented | [Test [2]](../tests/IL2C.Core.Test.Target/ILConverters/Dup) | IL2C.ILConverters.DupConverter |
| [endfilter](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.endfilter) | 0xfe11 | | | |
| [endfinally](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.endfinally) | 0xdc | Implemented | | IL2C.ILConverters.EndfinallyConverter |
| [initblk](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.initblk) | 0xfe18 | | | |
| [initobj](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.initobj) | 0xfe15 | Implemented | | IL2C.ILConverters.InitobjConverter |
-| [isinst](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.isinst) | 0x75 | Implemented | [Test [4]](tests/IL2C.Core.Test.Target/ILConverters/Isinst) | IL2C.ILConverters.IsinstConverter |
+| [isinst](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.isinst) | 0x75 | Implemented | [Test [4]](../tests/IL2C.Core.Test.Target/ILConverters/Isinst) | IL2C.ILConverters.IsinstConverter |
| [jmp](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.jmp) | 0x27 | | | |
-| [ldarg](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldarg) | 0xfe09 | Implemented | [Test [17]](tests/IL2C.Core.Test.Target/ILConverters/Ldarg) | IL2C.ILConverters.LdargConverter |
-| [ldarg.0](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldarg_0) | 0x2 | Implemented | [Test [16]](tests/IL2C.Core.Test.Target/ILConverters/Ldarg_0) | IL2C.ILConverters.Ldarg_0Converter |
-| [ldarg.1](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldarg_1) | 0x3 | Implemented | [Test [16]](tests/IL2C.Core.Test.Target/ILConverters/Ldarg_1) | IL2C.ILConverters.Ldarg_1Converter |
-| [ldarg.2](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldarg_2) | 0x4 | Implemented | [Test [16]](tests/IL2C.Core.Test.Target/ILConverters/Ldarg_2) | IL2C.ILConverters.Ldarg_2Converter |
-| [ldarg.3](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldarg_3) | 0x5 | Implemented | [Test [16]](tests/IL2C.Core.Test.Target/ILConverters/Ldarg_3) | IL2C.ILConverters.Ldarg_3Converter |
-| [ldarg.s](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldarg_s) | 0xe | Implemented | [Test [17]](tests/IL2C.Core.Test.Target/ILConverters/Ldarg_S) | IL2C.ILConverters.Ldarg_sConverter |
+| [ldarg](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldarg) | 0xfe09 | Implemented | [Test [17]](../tests/IL2C.Core.Test.Target/ILConverters/Ldarg) | IL2C.ILConverters.LdargConverter |
+| [ldarg.0](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldarg_0) | 0x2 | Implemented | [Test [16]](../tests/IL2C.Core.Test.Target/ILConverters/Ldarg_0) | IL2C.ILConverters.Ldarg_0Converter |
+| [ldarg.1](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldarg_1) | 0x3 | Implemented | [Test [16]](../tests/IL2C.Core.Test.Target/ILConverters/Ldarg_1) | IL2C.ILConverters.Ldarg_1Converter |
+| [ldarg.2](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldarg_2) | 0x4 | Implemented | [Test [16]](../tests/IL2C.Core.Test.Target/ILConverters/Ldarg_2) | IL2C.ILConverters.Ldarg_2Converter |
+| [ldarg.3](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldarg_3) | 0x5 | Implemented | [Test [16]](../tests/IL2C.Core.Test.Target/ILConverters/Ldarg_3) | IL2C.ILConverters.Ldarg_3Converter |
+| [ldarg.s](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldarg_s) | 0xe | Implemented | [Test [17]](../tests/IL2C.Core.Test.Target/ILConverters/Ldarg_S) | IL2C.ILConverters.Ldarg_sConverter |
| [ldarga](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldarga) | 0xfe0a | | | |
-| [ldarga.s](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldarga_s) | 0xf | Implemented | [Test [17]](tests/IL2C.Core.Test.Target/ILConverters/Ldarga_S) | IL2C.ILConverters.Ldarga_sConverter |
-| [ldc.i4](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldc_i4) | 0x20 | Implemented | [Test [2]](tests/IL2C.Core.Test.Target/ILConverters/Ldc_I4) | IL2C.ILConverters.Ldc_i4Converter |
-| [ldc.i4.0](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldc_i4_0) | 0x16 | Implemented | [Test [2]](tests/IL2C.Core.Test.Target/ILConverters/Ldc_I4_0) | IL2C.ILConverters.Ldc_i4_0Converter |
-| [ldc.i4.1](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldc_i4_1) | 0x17 | Implemented | [Test [2]](tests/IL2C.Core.Test.Target/ILConverters/Ldc_I4_1) | IL2C.ILConverters.Ldc_i4_1Converter |
-| [ldc.i4.2](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldc_i4_2) | 0x18 | Implemented | [Test [2]](tests/IL2C.Core.Test.Target/ILConverters/Ldc_I4_2) | IL2C.ILConverters.Ldc_i4_2Converter |
-| [ldc.i4.3](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldc_i4_3) | 0x19 | Implemented | [Test [2]](tests/IL2C.Core.Test.Target/ILConverters/Ldc_I4_3) | IL2C.ILConverters.Ldc_i4_3Converter |
-| [ldc.i4.4](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldc_i4_4) | 0x1a | Implemented | [Test [2]](tests/IL2C.Core.Test.Target/ILConverters/Ldc_I4_4) | IL2C.ILConverters.Ldc_i4_4Converter |
-| [ldc.i4.5](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldc_i4_5) | 0x1b | Implemented | [Test [2]](tests/IL2C.Core.Test.Target/ILConverters/Ldc_I4_5) | IL2C.ILConverters.Ldc_i4_5Converter |
-| [ldc.i4.6](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldc_i4_6) | 0x1c | Implemented | [Test [2]](tests/IL2C.Core.Test.Target/ILConverters/Ldc_I4_6) | IL2C.ILConverters.Ldc_i4_6Converter |
-| [ldc.i4.7](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldc_i4_7) | 0x1d | Implemented | [Test [2]](tests/IL2C.Core.Test.Target/ILConverters/Ldc_I4_7) | IL2C.ILConverters.Ldc_i4_7Converter |
-| [ldc.i4.8](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldc_i4_8) | 0x1e | Implemented | [Test [2]](tests/IL2C.Core.Test.Target/ILConverters/Ldc_I4_8) | IL2C.ILConverters.Ldc_i4_8Converter |
-| [ldc.i4.m1](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldc_i4_m1) | 0x15 | Implemented | [Test [2]](tests/IL2C.Core.Test.Target/ILConverters/Ldc_I4_M1) | IL2C.ILConverters.Ldc_i4_m1Converter |
-| [ldc.i4.s](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldc_i4_s) | 0x1f | Implemented | [Test [2]](tests/IL2C.Core.Test.Target/ILConverters/Ldc_I4_S) | IL2C.ILConverters.Ldc_i4_sConverter |
-| [ldc.i8](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldc_i8) | 0x21 | Implemented | [Test [2]](tests/IL2C.Core.Test.Target/ILConverters/Ldc_I8) | IL2C.ILConverters.Ldc_i8Converter |
-| [ldc.r4](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldc_r4) | 0x22 | Implemented | [Test [2]](tests/IL2C.Core.Test.Target/ILConverters/Ldc_R4) | IL2C.ILConverters.Ldc_r4Converter |
-| [ldc.r8](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldc_r8) | 0x23 | Implemented | [Test [2]](tests/IL2C.Core.Test.Target/ILConverters/Ldc_R8) | IL2C.ILConverters.Ldc_r8Converter |
+| [ldarga.s](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldarga_s) | 0xf | Implemented | [Test [17]](../tests/IL2C.Core.Test.Target/ILConverters/Ldarga_S) | IL2C.ILConverters.Ldarga_sConverter |
+| [ldc.i4](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldc_i4) | 0x20 | Implemented | [Test [2]](../tests/IL2C.Core.Test.Target/ILConverters/Ldc_I4) | IL2C.ILConverters.Ldc_i4Converter |
+| [ldc.i4.0](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldc_i4_0) | 0x16 | Implemented | [Test [2]](../tests/IL2C.Core.Test.Target/ILConverters/Ldc_I4_0) | IL2C.ILConverters.Ldc_i4_0Converter |
+| [ldc.i4.1](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldc_i4_1) | 0x17 | Implemented | [Test [2]](../tests/IL2C.Core.Test.Target/ILConverters/Ldc_I4_1) | IL2C.ILConverters.Ldc_i4_1Converter |
+| [ldc.i4.2](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldc_i4_2) | 0x18 | Implemented | [Test [2]](../tests/IL2C.Core.Test.Target/ILConverters/Ldc_I4_2) | IL2C.ILConverters.Ldc_i4_2Converter |
+| [ldc.i4.3](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldc_i4_3) | 0x19 | Implemented | [Test [2]](../tests/IL2C.Core.Test.Target/ILConverters/Ldc_I4_3) | IL2C.ILConverters.Ldc_i4_3Converter |
+| [ldc.i4.4](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldc_i4_4) | 0x1a | Implemented | [Test [2]](../tests/IL2C.Core.Test.Target/ILConverters/Ldc_I4_4) | IL2C.ILConverters.Ldc_i4_4Converter |
+| [ldc.i4.5](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldc_i4_5) | 0x1b | Implemented | [Test [2]](../tests/IL2C.Core.Test.Target/ILConverters/Ldc_I4_5) | IL2C.ILConverters.Ldc_i4_5Converter |
+| [ldc.i4.6](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldc_i4_6) | 0x1c | Implemented | [Test [2]](../tests/IL2C.Core.Test.Target/ILConverters/Ldc_I4_6) | IL2C.ILConverters.Ldc_i4_6Converter |
+| [ldc.i4.7](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldc_i4_7) | 0x1d | Implemented | [Test [2]](../tests/IL2C.Core.Test.Target/ILConverters/Ldc_I4_7) | IL2C.ILConverters.Ldc_i4_7Converter |
+| [ldc.i4.8](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldc_i4_8) | 0x1e | Implemented | [Test [2]](../tests/IL2C.Core.Test.Target/ILConverters/Ldc_I4_8) | IL2C.ILConverters.Ldc_i4_8Converter |
+| [ldc.i4.m1](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldc_i4_m1) | 0x15 | Implemented | [Test [2]](../tests/IL2C.Core.Test.Target/ILConverters/Ldc_I4_M1) | IL2C.ILConverters.Ldc_i4_m1Converter |
+| [ldc.i4.s](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldc_i4_s) | 0x1f | Implemented | [Test [2]](../tests/IL2C.Core.Test.Target/ILConverters/Ldc_I4_S) | IL2C.ILConverters.Ldc_i4_sConverter |
+| [ldc.i8](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldc_i8) | 0x21 | Implemented | [Test [2]](../tests/IL2C.Core.Test.Target/ILConverters/Ldc_I8) | IL2C.ILConverters.Ldc_i8Converter |
+| [ldc.r4](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldc_r4) | 0x22 | Implemented | [Test [2]](../tests/IL2C.Core.Test.Target/ILConverters/Ldc_R4) | IL2C.ILConverters.Ldc_r4Converter |
+| [ldc.r8](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldc_r8) | 0x23 | Implemented | [Test [2]](../tests/IL2C.Core.Test.Target/ILConverters/Ldc_R8) | IL2C.ILConverters.Ldc_r8Converter |
| [ldelem.any](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldelem) | 0xa3 | | | |
| [ldelem.i](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldelem_i) | 0x97 | | | |
| [ldelem.i1](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldelem_i1) | 0x90 | Implemented | | IL2C.ILConverters.Ldelem_i1Converter |
@@ -145,41 +145,41 @@ OpCode | Binary | Implement | Test | ILConverter
| [ldind.u4](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldind_u4) | 0x4b | Implemented | | IL2C.ILConverters.Ldind_u4Converter |
| [ldlen](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldlen) | 0x8e | Implemented | | IL2C.ILConverters.LdlenConverters |
| [ldloc](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldloc) | 0xfe0c | | | |
-| [ldloc.0](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldloc_0) | 0x6 | Implemented | [Test [16]](tests/IL2C.Core.Test.Target/ILConverters/Ldloc_0) | IL2C.ILConverters.Ldloc_0Converter |
-| [ldloc.1](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldloc_1) | 0x7 | Implemented | [Test [16]](tests/IL2C.Core.Test.Target/ILConverters/Ldloc_1) | IL2C.ILConverters.Ldloc_1Converter |
-| [ldloc.2](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldloc_2) | 0x8 | Implemented | [Test [16]](tests/IL2C.Core.Test.Target/ILConverters/Ldloc_2) | IL2C.ILConverters.Ldloc_2Converter |
-| [ldloc.3](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldloc_3) | 0x9 | Implemented | [Test [16]](tests/IL2C.Core.Test.Target/ILConverters/Ldloc_3) | IL2C.ILConverters.Ldloc_3Converter |
-| [ldloc.s](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldloc_s) | 0x11 | Implemented | [Test [17]](tests/IL2C.Core.Test.Target/ILConverters/Ldloc_S) | IL2C.ILConverters.Ldloc_SConverter |
+| [ldloc.0](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldloc_0) | 0x6 | Implemented | [Test [16]](../tests/IL2C.Core.Test.Target/ILConverters/Ldloc_0) | IL2C.ILConverters.Ldloc_0Converter |
+| [ldloc.1](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldloc_1) | 0x7 | Implemented | [Test [16]](../tests/IL2C.Core.Test.Target/ILConverters/Ldloc_1) | IL2C.ILConverters.Ldloc_1Converter |
+| [ldloc.2](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldloc_2) | 0x8 | Implemented | [Test [16]](../tests/IL2C.Core.Test.Target/ILConverters/Ldloc_2) | IL2C.ILConverters.Ldloc_2Converter |
+| [ldloc.3](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldloc_3) | 0x9 | Implemented | [Test [16]](../tests/IL2C.Core.Test.Target/ILConverters/Ldloc_3) | IL2C.ILConverters.Ldloc_3Converter |
+| [ldloc.s](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldloc_s) | 0x11 | Implemented | [Test [17]](../tests/IL2C.Core.Test.Target/ILConverters/Ldloc_S) | IL2C.ILConverters.Ldloc_SConverter |
| [ldloca](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldloca) | 0xfe0d | | | |
-| [ldloca.s](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldloca_s) | 0x12 | Implemented | [Test [17]](tests/IL2C.Core.Test.Target/ILConverters/Ldloca_S) | IL2C.ILConverters.Ldloca_sConverter |
-| [ldnull](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldnull) | 0x14 | Implemented | [Test [3]](tests/IL2C.Core.Test.Target/ILConverters/Ldnull) | IL2C.ILConverters.LdnullConverter |
+| [ldloca.s](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldloca_s) | 0x12 | Implemented | [Test [17]](../tests/IL2C.Core.Test.Target/ILConverters/Ldloca_S) | IL2C.ILConverters.Ldloca_sConverter |
+| [ldnull](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldnull) | 0x14 | Implemented | [Test [3]](../tests/IL2C.Core.Test.Target/ILConverters/Ldnull) | IL2C.ILConverters.LdnullConverter |
| [ldobj](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldobj) | 0x71 | | | |
-| [ldsfld](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldsfld) | 0x7e | Implemented | [Test [16]](tests/IL2C.Core.Test.Target/ILConverters/Ldsfld) | IL2C.ILConverters.LdsfldConverter |
-| [ldsflda](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldsflda) | 0x7f | Implemented | [Test [16]](tests/IL2C.Core.Test.Target/ILConverters/Ldsflda) | IL2C.ILConverters.LdsfldaConverter |
-| [ldstr](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldstr) | 0x72 | Implemented | [Test [1]](tests/IL2C.Core.Test.Target/ILConverters/Ldstr) | IL2C.ILConverters.LdstrConverter |
+| [ldsfld](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldsfld) | 0x7e | Implemented | [Test [16]](../tests/IL2C.Core.Test.Target/ILConverters/Ldsfld) | IL2C.ILConverters.LdsfldConverter |
+| [ldsflda](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldsflda) | 0x7f | Implemented | [Test [16]](../tests/IL2C.Core.Test.Target/ILConverters/Ldsflda) | IL2C.ILConverters.LdsfldaConverter |
+| [ldstr](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldstr) | 0x72 | Implemented | [Test [1]](../tests/IL2C.Core.Test.Target/ILConverters/Ldstr) | IL2C.ILConverters.LdstrConverter |
| [ldtoken](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldtoken) | 0xd0 | Implemented | | IL2C.ILConverters.LdtokenConverters |
| [ldvirtftn](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ldvirtftn) | 0xfe07 | Implemented | | IL2C.ILConverters.LdvirtftnConverter |
| [leave](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.leave) | 0xdd | | | |
| [leave.s](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.leave_s) | 0xde | Implemented | | IL2C.ILConverters.Leave_sConverter |
| [localloc](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.localloc) | 0xfe0f | | | |
| [mkrefany](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.mkrefany) | 0xc6 | | | |
-| [mul](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.mul) | 0x5a | Implemented | [Test [9]](tests/IL2C.Core.Test.Target/ILConverters/Mul) | IL2C.ILConverters.MulConverter |
+| [mul](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.mul) | 0x5a | Implemented | [Test [9]](../tests/IL2C.Core.Test.Target/ILConverters/Mul) | IL2C.ILConverters.MulConverter |
| [mul.ovf](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.mul_ovf) | 0xd8 | | | |
| [mul.ovf.un](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.mul_ovf_un) | 0xd9 | | | |
| [neg](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.neg) | 0x65 | | | |
| [newarr](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.newarr) | 0x8d | Implemented | | IL2C.ILConverters.NewarrConverter |
| [newobj](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.newobj) | 0x73 | Implemented | | IL2C.ILConverters.NewobjConverter |
| no | 0xfe19 | | | |
-| [nop](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.nop) | 0x0 | Implemented | [Test [1]](tests/IL2C.Core.Test.Target/ILConverters/Nop) | IL2C.ILConverters.NopConverter |
+| [nop](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.nop) | 0x0 | Implemented | [Test [1]](../tests/IL2C.Core.Test.Target/ILConverters/Nop) | IL2C.ILConverters.NopConverter |
| [not](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.not) | 0x66 | | | |
-| [or](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.or) | 0x60 | Implemented | [Test [5]](tests/IL2C.Core.Test.Target/ILConverters/Or) | IL2C.ILConverters.OrConverter |
+| [or](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.or) | 0x60 | Implemented | [Test [5]](../tests/IL2C.Core.Test.Target/ILConverters/Or) | IL2C.ILConverters.OrConverter |
| [pop](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.pop) | 0x26 | Implemented | | IL2C.ILConverters.PopConverter |
| [readonly](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.readonly) | 0xfe1e | | | |
| [refanytype](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.refanytype) | 0xfe1d | | | |
| [refanyval](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.refanyval) | 0xc2 | | | |
-| [rem](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.rem) | 0x5d | Implemented | [Test [9]](tests/IL2C.Core.Test.Target/ILConverters/Rem) | IL2C.ILConverters.RemConverter |
+| [rem](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.rem) | 0x5d | Implemented | [Test [9]](../tests/IL2C.Core.Test.Target/ILConverters/Rem) | IL2C.ILConverters.RemConverter |
| [rem.un](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.rem_un) | 0x5e | | | |
-| [ret](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ret) | 0x2a | Implemented | [Test [6]](tests/IL2C.Core.Test.Target/ILConverters/Ret) | IL2C.ILConverters.RetConverter |
+| [ret](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.ret) | 0x2a | Implemented | [Test [6]](../tests/IL2C.Core.Test.Target/ILConverters/Ret) | IL2C.ILConverters.RetConverter |
| [rethrow](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.rethrow) | 0xfe1a | Implemented | | IL2C.ILConverters.RethrowConverter |
| [shl](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.shl) | 0x62 | | | |
| [shr](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.shr) | 0x63 | | | |
@@ -206,14 +206,14 @@ OpCode | Binary | Implement | Test | ILConverter
| [stind.r8](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.stind_r8) | 0x57 | | | |
| [stind.ref](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.stind_ref) | 0x51 | Implemented | | IL2C.ILConverters.Stind_RefConverter |
| [stloc](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.stloc) | 0xfe0e | | | |
-| [stloc.0](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.stloc_0) | 0xa | Implemented | [Test [16]](tests/IL2C.Core.Test.Target/ILConverters/Stloc_0) | IL2C.ILConverters.Stloc_0Converter |
-| [stloc.1](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.stloc_1) | 0xb | Implemented | [Test [16]](tests/IL2C.Core.Test.Target/ILConverters/Stloc_1) | IL2C.ILConverters.Stloc_1Converter |
-| [stloc.2](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.stloc_2) | 0xc | Implemented | [Test [16]](tests/IL2C.Core.Test.Target/ILConverters/Stloc_2) | IL2C.ILConverters.Stloc_2Converter |
-| [stloc.3](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.stloc_3) | 0xd | Implemented | [Test [16]](tests/IL2C.Core.Test.Target/ILConverters/Stloc_3) | IL2C.ILConverters.Stloc_3Converter |
-| [stloc.s](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.stloc_s) | 0x13 | Implemented | [Test [17]](tests/IL2C.Core.Test.Target/ILConverters/Stloc_S) | IL2C.ILConverters.Stloc_SConverter |
+| [stloc.0](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.stloc_0) | 0xa | Implemented | [Test [16]](../tests/IL2C.Core.Test.Target/ILConverters/Stloc_0) | IL2C.ILConverters.Stloc_0Converter |
+| [stloc.1](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.stloc_1) | 0xb | Implemented | [Test [16]](../tests/IL2C.Core.Test.Target/ILConverters/Stloc_1) | IL2C.ILConverters.Stloc_1Converter |
+| [stloc.2](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.stloc_2) | 0xc | Implemented | [Test [16]](../tests/IL2C.Core.Test.Target/ILConverters/Stloc_2) | IL2C.ILConverters.Stloc_2Converter |
+| [stloc.3](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.stloc_3) | 0xd | Implemented | [Test [16]](../tests/IL2C.Core.Test.Target/ILConverters/Stloc_3) | IL2C.ILConverters.Stloc_3Converter |
+| [stloc.s](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.stloc_s) | 0x13 | Implemented | [Test [17]](../tests/IL2C.Core.Test.Target/ILConverters/Stloc_S) | IL2C.ILConverters.Stloc_SConverter |
| [stobj](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.stobj) | 0x81 | | | |
-| [stsfld](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.stsfld) | 0x80 | Implemented | [Test [14]](tests/IL2C.Core.Test.Target/ILConverters/Stsfld) | IL2C.ILConverters.StsfldConverter |
-| [sub](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.sub) | 0x59 | Implemented | [Test [11]](tests/IL2C.Core.Test.Target/ILConverters/Sub) | IL2C.ILConverters.SubConverter |
+| [stsfld](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.stsfld) | 0x80 | Implemented | [Test [14]](../tests/IL2C.Core.Test.Target/ILConverters/Stsfld) | IL2C.ILConverters.StsfldConverter |
+| [sub](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.sub) | 0x59 | Implemented | [Test [11]](../tests/IL2C.Core.Test.Target/ILConverters/Sub) | IL2C.ILConverters.SubConverter |
| [sub.ovf](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.sub_ovf) | 0xda | | | |
| [sub.ovf.un](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.sub_ovf_un) | 0xdb | | | |
| [switch](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.switch) | 0x45 | | | |
@@ -221,6 +221,6 @@ OpCode | Binary | Implement | Test | ILConverter
| [throw](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.throw) | 0x7a | Implemented | | IL2C.ILConverters.ThrowConverter |
| [unaligned](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.unaligned) | 0xfe12 | | | |
| [unbox](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.unbox) | 0x79 | | | |
-| [unbox.any](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.unbox_any) | 0xa5 | Implemented | [Test [2]](tests/IL2C.Core.Test.Target/ILConverters/Unbox_Any) | IL2C.ILConverters.Unbox_AnyConverter |
+| [unbox.any](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.unbox_any) | 0xa5 | Implemented | [Test [2]](../tests/IL2C.Core.Test.Target/ILConverters/Unbox_Any) | IL2C.ILConverters.Unbox_AnyConverter |
| [volatile](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.volatile) | 0xfe13 | | | |
-| [xor](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.xor) | 0x61 | Implemented | [Test [5]](tests/IL2C.Core.Test.Target/ILConverters/Xor) | IL2C.ILConverters.XorConverter |
+| [xor](https://docs.microsoft.com/en-us/dotnet/api/system.reflection.emit.opcodes.xor) | 0x61 | Implemented | [Test [5]](../tests/IL2C.Core.Test.Target/ILConverters/Xor) | IL2C.ILConverters.XorConverter |
diff --git a/docs/supported-runtime-system-features.md b/docs/supported-runtime-system-features.md
new file mode 100644
index 00000000..6bf1cc27
--- /dev/null
+++ b/docs/supported-runtime-system-features.md
@@ -0,0 +1,15 @@
+# Supported runtime system features
+
+
+Feature | Test | Descrition
+|:---|:---|:---|
+| ArrayTypes | [Test [43]](../tests/IL2C.Core.Test.Target/RuntimeSystems/ArrayTypes) | Array type generates on the runtime. Example: System.Int32[] isn't declared anything assembly. These tests are verified the IL2C can handle runtime array types and initialize array items from resources. |
+| DelegateTypes | [Test [15]](../tests/IL2C.Core.Test.Target/RuntimeSystems/DelegateTypes) | The delegate types contain special member fields, the objref instance reference and the raw method pointer. These tests are verified the IL2C can invoke delegate types combination features between static, instance, virtual method and multicasting at the runtime. |
+| EnumTypes | [Test [18]](../tests/IL2C.Core.Test.Target/RuntimeSystems/EnumTypes) | The enum types have the underlying primitive integer types. These tests are verified the IL2C can manage enum underlying types at the boxing-unboxing conversion with narrowing-widing combinations. |
+| ExceptionHandling | [Test [31]](../tests/IL2C.Core.Test.Target/RuntimeSystems/ExceptionHandling) | These tests are verified the IL2C translates with simple and/or complext exception handling. |
+| ExceptionThrownByCLI | [Test [33]](../tests/IL2C.Core.Test.Target/RuntimeSystems/ExceptionThrownByCLI) | These tests are verified the IL2C throw some exceptions from the internal runtimes by ECMA-335 I.12.4.2.1. |
+| GarbageCollection | [Test [10]](../tests/IL2C.Core.Test.Target/RuntimeSystems/GarbageCollection) | These tests are verified the IL2C manages tracing the object references and collect garbages from the heap memory. |
+| Interoperability | [Test [4]](../tests/IL2C.Core.Test.Target/RuntimeSystems/Interoperability) | These tests are verified the IL2C manages interoperability with the P/Invoke adn IL2C/Invoke method and internalcall method. |
+| TypeInitializer | [Test [15]](../tests/IL2C.Core.Test.Target/RuntimeSystems/TypeInitializer) | These tests are verified the IL2C can handle the type initializer special translation cases. |
+| TypeRelations | [Test [95]](../tests/IL2C.Core.Test.Target/RuntimeSystems/TypeRelations) | CLR type system contains single-inheritance class types and multiple-implementation interface types. These tests are verified the IL2C can handle the member methods both simple instance methods and complex overriden virtual methods. |
+| ValueTypes | [Test [18]](../tests/IL2C.Core.Test.Target/RuntimeSystems/ValueTypes) | Value types are specialized types at the .NET type system. Because the type inherited from the System.ValueType (objref type), all method has the managed pointer at the arg0 and these instances will box and apply the pseudo vptrs. These tests are verified the IL2C can handle value types. |
diff --git a/il2c.sln b/il2c.sln
index d8168737..d33c8034 100644
--- a/il2c.sln
+++ b/il2c.sln
@@ -13,10 +13,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
pack.bat = pack.bat
pack.sh = pack.sh
README.md = README.md
- sample-translation-results.md = sample-translation-results.md
- supported-basic-types.md = supported-basic-types.md
- supported-opcodes.md = supported-opcodes.md
- supported-runtime-system-features.md = supported-runtime-system-features.md
EndProjectSection
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IL2C.Core", "IL2C.Core\IL2C.Core.csproj", "{678EFB0E-BC0A-4749-AD48-079F98D9468D}"
@@ -36,6 +32,15 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IL2C.Core.Test.Fixture", "t
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IL2C.Interop", "IL2C.Interop\IL2C.Interop.csproj", "{854E1ABE-0873-4BDC-8ABF-7F9506DD66DB}"
EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "docs", "docs", "{3EBFA913-CF51-4A28-9E4D-73CB5AE27D2F}"
+ ProjectSection(SolutionItems) = preProject
+ docs\getting-started.md = docs\getting-started.md
+ docs\sample-translation-results.md = docs\sample-translation-results.md
+ docs\supported-basic-types.md = docs\supported-basic-types.md
+ docs\supported-opcodes.md = docs\supported-opcodes.md
+ docs\supported-runtime-system-features.md = docs\supported-runtime-system-features.md
+ EndProjectSection
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -77,6 +82,7 @@ Global
GlobalSection(NestedProjects) = preSolution
{ACE3F9B1-0A92-4F1F-B817-7A74114030E5} = {5710A57F-57F8-4D50-8C78-82E2DFDCB613}
{B0F1010D-8B73-46F7-AF8E-E3C58F68525F} = {5710A57F-57F8-4D50-8C78-82E2DFDCB613}
+ {3EBFA913-CF51-4A28-9E4D-73CB5AE27D2F} = {D105E6CD-626A-4C04-8AF6-0AA34A4E9CF4}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {D4628360-6C13-42D4-9011-6E43A3A0777C}
diff --git a/images/overview.png b/images/overview.png
new file mode 100644
index 00000000..5534c8ef
--- /dev/null
+++ b/images/overview.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:0301a709c87a0301fe346ab3f3f566cde9cf3a58da21f1db57c47d58cd65fa5a
+size 106251
diff --git a/images/tutorial11.png b/images/tutorial11.png
new file mode 100644
index 00000000..d4388353
--- /dev/null
+++ b/images/tutorial11.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:215b6096f4b45def00b4b1f2ad9156066a90724e94254c42afe490f58691f199
+size 39809
diff --git a/images/tutorial12.png b/images/tutorial12.png
new file mode 100644
index 00000000..e1d6f357
--- /dev/null
+++ b/images/tutorial12.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:a41d6996a2234b0274b4bd675ac52a9e1239c12f2006750921d23ad4c2ca4d30
+size 113067
diff --git a/images/tutorial13.png b/images/tutorial13.png
new file mode 100644
index 00000000..45443eba
--- /dev/null
+++ b/images/tutorial13.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:1af6b1efcf8f74dfd6a4a3765f739797bb31c934a0b7073a5231da694e923bb2
+size 5132
diff --git a/images/tutorial14.png b/images/tutorial14.png
new file mode 100644
index 00000000..68ffcb56
--- /dev/null
+++ b/images/tutorial14.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:62a94d3b9f233a8e285d23e405cee790d43eeb409b78a706db3af4f9200ce5e2
+size 35468
diff --git a/images/tutorial15.png b/images/tutorial15.png
new file mode 100644
index 00000000..c758589a
--- /dev/null
+++ b/images/tutorial15.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:849ca3526961ae3c46eadc8e0a098563ca016d43ac06d5ad5f00c5c4a62cf23b
+size 123311
diff --git a/images/tutorial16.png b/images/tutorial16.png
new file mode 100644
index 00000000..357812f7
--- /dev/null
+++ b/images/tutorial16.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:5b4d53ab209d4dff42e407c22a7c0a949515988fb91679b511c40df8c18325c9
+size 5359
diff --git a/images/tutorial17.png b/images/tutorial17.png
new file mode 100644
index 00000000..197e4bb9
--- /dev/null
+++ b/images/tutorial17.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e0cb26db2b90ecfed650dcf54a58a9f1513f12c9e4654e26144fe330a167380b
+size 14247
diff --git a/images/tutorial21.png b/images/tutorial21.png
new file mode 100644
index 00000000..448c9407
--- /dev/null
+++ b/images/tutorial21.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:e9f82aab494a93767249600b8cd8b902dd2377fa75c2198fe0287d9e3e7439b4
+size 7950
diff --git a/images/tutorial22.png b/images/tutorial22.png
new file mode 100644
index 00000000..0f40bbfb
--- /dev/null
+++ b/images/tutorial22.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:769b5d6f5ad60504e681f60dc5ed09899c46dda44d279b38e33bac149a7ed370
+size 77671
diff --git a/images/tutorial23.png b/images/tutorial23.png
new file mode 100644
index 00000000..e7cdefb6
--- /dev/null
+++ b/images/tutorial23.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:84046769bd4a1d5b15418ee30ed480cad04e6ccc97fa985c2a9b395e489315a8
+size 128596
diff --git a/images/tutorial31.png b/images/tutorial31.png
new file mode 100644
index 00000000..48eb699d
--- /dev/null
+++ b/images/tutorial31.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:6d9125cd8e8e6e9d9c9a469d709a6d2676a854a2c1a72f11ce3feb9e580dcbf4
+size 11247
diff --git a/images/tutorial32.jpg b/images/tutorial32.jpg
new file mode 100644
index 00000000..3a903c86
--- /dev/null
+++ b/images/tutorial32.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:c817deb599dea6d0b3236927d3688259ed621690271596a22ba04e244f490f00
+size 1535007
diff --git a/images/tutorial33.jpg b/images/tutorial33.jpg
new file mode 100644
index 00000000..fbec1a8f
--- /dev/null
+++ b/images/tutorial33.jpg
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:3849019674a77563cb167cb65b2323fa4c4f4789e65ef6527ff28775d8941428
+size 1028865
diff --git a/samples/Calculator/Calculator.Core/PolishNotation.cs b/samples/Calculator/Calculator.Core/PolishNotation.cs
index ba93566e..be36314c 100644
--- a/samples/Calculator/Calculator.Core/PolishNotation.cs
+++ b/samples/Calculator/Calculator.Core/PolishNotation.cs
@@ -196,9 +196,6 @@ internal static ExpressionNode ParseExpression(string line, int startIndex)
return new ExpressionNode(oper, left, right, index);
}
- //[NativeMethod("Main.h")]
- //private static extern void SendExternalTicker(string message);
-
public static void Main()
{
Console.WriteLine("Polish notation calculator.");
@@ -206,6 +203,8 @@ public static void Main()
Console.WriteLine("https://github.com/kekyo/IL2C");
Console.WriteLine();
Console.WriteLine("Type \"exit\" to exit.");
+ Console.WriteLine("Example: \"+ 2 3\"");
+ Console.WriteLine("Example: \"* + 2 3 6\"");
while (true)
{
@@ -230,12 +229,6 @@ public static void Main()
Console.Write("Reuslt=");
Console.WriteLine(result);
-
- //var message = "(";
- //message += line;
- //message += ") = ";
- //message += result.ToString();
- //SendExternalTicker(message);
}
}
}
diff --git a/samples/Calculator/Generated/src/Calculator.Core/Calculator/PolishNotation.c b/samples/Calculator/Generated/src/Calculator.Core/Calculator/PolishNotation.c
index 5b7f976c..0cb27135 100644
--- a/samples/Calculator/Generated/src/Calculator.Core/Calculator/PolishNotation.c
+++ b/samples/Calculator/Generated/src/Calculator.Core/Calculator/PolishNotation.c
@@ -1163,36 +1163,36 @@ void Calculator_PolishNotation_Main(void)
//-------------------
// [3-3] Local variables (!objref):
-#line 203 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+#line 200 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
bool local1__ = false;
-#line 203 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+#line 200 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
int32_t result = 0;
-#line 203 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+#line 200 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
bool local4__ = false;
-#line 203 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+#line 200 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
bool local5__ = false;
-#line 203 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+#line 200 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
bool local6__ = false;
//-------------------
// [3-4] Evaluation stacks (!objref):
-#line 203 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+#line 200 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
int32_t stack0_1__;
-#line 203 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+#line 200 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
bool stack0_2__;
-#line 203 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+#line 200 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
int32_t stack1_0__;
-#line 203 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+#line 200 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
untyped_ptr stack1_2__;
//-------------------
// [3-5] Setup execution frame:
-#line 203 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+#line 200 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
Calculator_PolishNotation_Main_EXECUTION_FRAME__ frame__ =
{ NULL, 5 };
-#line 203 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+#line 200 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
il2c_link_execution_frame(&frame__);
//-------------------
@@ -1200,189 +1200,203 @@ void Calculator_PolishNotation_Main(void)
/* IL_0000: nop */
/* IL_0001: ldstr "Polish notation calculator." */
-#line 204 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+#line 201 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
frame__.stack0_0__ = Calculator_Core_string0__;
/* IL_0006: call System.Console.WriteLine */
-#line 204 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+#line 201 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
System_Console_WriteLine_10(frame__.stack0_0__);
/* IL_000b: nop */
/* IL_000c: ldstr "This is proof of concept for IL2C." */
-#line 205 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+#line 202 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
frame__.stack0_0__ = Calculator_Core_string1__;
/* IL_0011: call System.Console.WriteLine */
-#line 205 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+#line 202 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
System_Console_WriteLine_10(frame__.stack0_0__);
/* IL_0016: nop */
/* IL_0017: ldstr "https://github.com/kekyo/IL2C" */
-#line 206 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+#line 203 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
frame__.stack0_0__ = Calculator_Core_string2__;
/* IL_001c: call System.Console.WriteLine */
-#line 206 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+#line 203 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
System_Console_WriteLine_10(frame__.stack0_0__);
/* IL_0021: nop */
/* IL_0022: call System.Console.WriteLine */
-#line 207 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+#line 204 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
System_Console_WriteLine();
/* IL_0027: nop */
/* IL_0028: ldstr "Type "exit" to exit." */
-#line 208 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+#line 205 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
frame__.stack0_0__ = Calculator_Core_string3__;
/* IL_002d: call System.Console.WriteLine */
-#line 208 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+#line 205 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
System_Console_WriteLine_10(frame__.stack0_0__);
/* IL_0032: nop */
- /* IL_0033: br.s IL_00aa */
-#line 208 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
- goto IL_00aa;
-IL_0035:
- /* IL_0035: nop */
- /* IL_0036: call System.Console.WriteLine */
-#line 212 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
- System_Console_WriteLine();
- /* IL_003b: nop */
- /* IL_003c: ldstr "PN> " */
-#line 213 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+ /* IL_0033: ldstr "Example: "+ 2 3"" */
+#line 206 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
frame__.stack0_0__ = Calculator_Core_string4__;
- /* IL_0041: call System.Console.Write */
-#line 213 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+ /* IL_0038: call System.Console.WriteLine */
+#line 206 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+ System_Console_WriteLine_10(frame__.stack0_0__);
+ /* IL_003d: nop */
+ /* IL_003e: ldstr "Example: "* + 2 3 6"" */
+#line 207 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+ frame__.stack0_0__ = Calculator_Core_string5__;
+ /* IL_0043: call System.Console.WriteLine */
+#line 207 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+ System_Console_WriteLine_10(frame__.stack0_0__);
+ /* IL_0048: nop */
+ /* IL_0049: br.s IL_00c0 */
+#line 207 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+ goto IL_00c0;
+IL_004b:
+ /* IL_004b: nop */
+ /* IL_004c: call System.Console.WriteLine */
+#line 211 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+ System_Console_WriteLine();
+ /* IL_0051: nop */
+ /* IL_0052: ldstr "PN> " */
+#line 212 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+ frame__.stack0_0__ = Calculator_Core_string6__;
+ /* IL_0057: call System.Console.Write */
+#line 212 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
System_Console_Write_9(frame__.stack0_0__);
- /* IL_0046: nop */
- /* IL_0047: call System.Console.ReadLine */
-#line 214 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+ /* IL_005c: nop */
+ /* IL_005d: call System.Console.ReadLine */
+#line 213 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
frame__.stack0_0__ = System_Console_ReadLine();
- /* IL_004c: stloc.0 */
-#line 214 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+ /* IL_0062: stloc.0 */
+#line 213 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
frame__.line = frame__.stack0_0__;
- /* IL_004d: ldloc.0 */
-#line 215 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+ /* IL_0063: ldloc.0 */
+#line 214 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
frame__.stack0_0__ = frame__.line;
- /* IL_004e: call System.String.IsNullOrWhiteSpace */
-#line 215 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+ /* IL_0064: call System.String.IsNullOrWhiteSpace */
+#line 214 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
stack0_2__ = System_String_IsNullOrWhiteSpace(frame__.stack0_0__);
- /* IL_0053: ldc.i4.0 */
-#line 215 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+ /* IL_0069: ldc.i4.0 */
+#line 214 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
stack1_0__ = 0;
- /* IL_0054: ceq */
-#line 215 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+ /* IL_006a: ceq */
+#line 214 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
stack0_1__ = (int32_t)stack0_2__ == (int32_t)stack1_0__;
- /* IL_0056: stloc.1 */
-#line 215 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+ /* IL_006c: stloc.1 */
+#line 214 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
local1__ = (bool)stack0_1__;
- /* IL_0057: ldloc.1 */
-#line 215 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+ /* IL_006d: ldloc.1 */
+#line 214 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
stack0_2__ = local1__;
- /* IL_0058: brfalse.s IL_00a9 */
-#line 215 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
- if (stack0_2__ == false) goto IL_00a9;
- /* IL_005a: nop */
- /* IL_005b: ldloc.0 */
-#line 217 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+ /* IL_006e: brfalse.s IL_00bf */
+#line 214 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+ if (stack0_2__ == false) goto IL_00bf;
+ /* IL_0070: nop */
+ /* IL_0071: ldloc.0 */
+#line 216 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
frame__.stack0_0__ = frame__.line;
- /* IL_005c: ldstr "exit" */
-#line 217 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
- frame__.stack1_1__ = Calculator_Core_string5__;
- /* IL_0061: call System.String.op_Equality */
-#line 217 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+ /* IL_0072: ldstr "exit" */
+#line 216 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+ frame__.stack1_1__ = Calculator_Core_string7__;
+ /* IL_0077: call System.String.op_Equality */
+#line 216 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
stack0_2__ = System_String_op_Equality(frame__.stack0_0__, frame__.stack1_1__);
- /* IL_0066: stloc.s local4__ */
-#line 217 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+ /* IL_007c: stloc.s local4__ */
+#line 216 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
local4__ = stack0_2__;
- /* IL_0068: ldloc.s local4__ */
-#line 217 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+ /* IL_007e: ldloc.s local4__ */
+#line 216 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
stack0_2__ = local4__;
- /* IL_006a: brfalse.s IL_006f */
-#line 217 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
- if (stack0_2__ == false) goto IL_006f;
- /* IL_006c: nop */
- /* IL_006d: br.s IL_00af */
-#line 219 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
- goto IL_00af;
-IL_006f:
- /* IL_006f: ldloc.0 */
-#line 222 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+ /* IL_0080: brfalse.s IL_0085 */
+#line 216 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+ if (stack0_2__ == false) goto IL_0085;
+ /* IL_0082: nop */
+ /* IL_0083: br.s IL_00c5 */
+#line 218 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+ goto IL_00c5;
+IL_0085:
+ /* IL_0085: ldloc.0 */
+#line 221 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
frame__.stack0_0__ = frame__.line;
- /* IL_0070: ldc.i4.0 */
-#line 222 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+ /* IL_0086: ldc.i4.0 */
+#line 221 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
stack1_0__ = 0;
- /* IL_0071: call Calculator.PolishNotation.ParseExpression */
-#line 222 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+ /* IL_0087: call Calculator.PolishNotation.ParseExpression */
+#line 221 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
frame__.stack0_3__ = Calculator_PolishNotation_ParseExpression(frame__.stack0_0__, stack1_0__);
- /* IL_0076: stloc.2 */
-#line 222 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+ /* IL_008c: stloc.2 */
+#line 221 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
frame__.expr = frame__.stack0_3__;
- /* IL_0077: ldloc.2 */
-#line 223 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+ /* IL_008d: ldloc.2 */
+#line 222 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
frame__.stack0_3__ = frame__.expr;
- /* IL_0078: ldnull */
-#line 223 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+ /* IL_008e: ldnull */
+#line 222 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
stack1_2__ = NULL;
- /* IL_0079: ceq */
-#line 223 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+ /* IL_008f: ceq */
+#line 222 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
stack0_1__ = (intptr_t)frame__.stack0_3__ == (intptr_t)stack1_2__;
- /* IL_007b: stloc.s local5__ */
-#line 223 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+ /* IL_0091: stloc.s local5__ */
+#line 222 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
local5__ = (bool)stack0_1__;
- /* IL_007d: ldloc.s local5__ */
-#line 223 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+ /* IL_0093: ldloc.s local5__ */
+#line 222 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
stack0_2__ = local5__;
- /* IL_007f: brfalse.s IL_008f */
-#line 223 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
- if (stack0_2__ == false) goto IL_008f;
- /* IL_0081: nop */
- /* IL_0082: ldstr "Syntax error." */
-#line 225 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
- frame__.stack0_0__ = Calculator_Core_string6__;
- /* IL_0087: call System.Console.WriteLine */
-#line 225 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+ /* IL_0095: brfalse.s IL_00a5 */
+#line 222 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+ if (stack0_2__ == false) goto IL_00a5;
+ /* IL_0097: nop */
+ /* IL_0098: ldstr "Syntax error." */
+#line 224 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+ frame__.stack0_0__ = Calculator_Core_string8__;
+ /* IL_009d: call System.Console.WriteLine */
+#line 224 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
System_Console_WriteLine_10(frame__.stack0_0__);
- /* IL_008c: nop */
- /* IL_008d: br.s IL_00aa */
-#line 226 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
- goto IL_00aa;
-IL_008f:
- /* IL_008f: ldloc.2 */
-#line 229 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+ /* IL_00a2: nop */
+ /* IL_00a3: br.s IL_00c0 */
+#line 225 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+ goto IL_00c0;
+IL_00a5:
+ /* IL_00a5: ldloc.2 */
+#line 228 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
frame__.stack0_3__ = frame__.expr;
- /* IL_0090: callvirt Calculator.ReducibleNode.Reduce */
-#line 229 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+ /* IL_00a6: callvirt Calculator.ReducibleNode.Reduce */
+#line 228 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
stack0_1__ = frame__.stack0_3__->vptr0__->Reduce((Calculator_ReducibleNode*)frame__.stack0_3__);
- /* IL_0095: stloc.3 */
-#line 229 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+ /* IL_00ab: stloc.3 */
+#line 228 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
result = stack0_1__;
- /* IL_0096: ldstr "Reuslt=" */
-#line 231 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
- frame__.stack0_0__ = Calculator_Core_string7__;
- /* IL_009b: call System.Console.Write */
-#line 231 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+ /* IL_00ac: ldstr "Reuslt=" */
+#line 230 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+ frame__.stack0_0__ = Calculator_Core_string9__;
+ /* IL_00b1: call System.Console.Write */
+#line 230 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
System_Console_Write_9(frame__.stack0_0__);
- /* IL_00a0: nop */
- /* IL_00a1: ldloc.3 */
-#line 232 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+ /* IL_00b6: nop */
+ /* IL_00b7: ldloc.3 */
+#line 231 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
stack0_1__ = result;
- /* IL_00a2: call System.Console.WriteLine */
-#line 232 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+ /* IL_00b8: call System.Console.WriteLine */
+#line 231 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
System_Console_WriteLine_6(stack0_1__);
- /* IL_00a7: nop */
- /* IL_00a8: nop */
-IL_00a9:
- /* IL_00a9: nop */
-IL_00aa:
- /* IL_00aa: ldc.i4.1 */
-#line 210 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+ /* IL_00bd: nop */
+ /* IL_00be: nop */
+IL_00bf:
+ /* IL_00bf: nop */
+IL_00c0:
+ /* IL_00c0: ldc.i4.1 */
+#line 209 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
stack0_1__ = 1;
- /* IL_00ab: stloc.s local6__ */
-#line 210 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+ /* IL_00c1: stloc.s local6__ */
+#line 209 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
local6__ = (bool)stack0_1__;
- /* IL_00ad: br.s IL_0035 */
-#line 210 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
- goto IL_0035;
-IL_00af:
- /* IL_00af: ret */
-#line 241 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+ /* IL_00c3: br.s IL_004b */
+#line 209 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+ goto IL_004b;
+IL_00c5:
+ /* IL_00c5: ret */
+#line 234 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
il2c_unlink_execution_frame(&frame__);
-#line 241 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+#line 234 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
return;
-#line 241 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
+#line 234 "D:\\PROJECT\\IL2C\\samples\\Calculator\\Calculator.Core\\PolishNotation.cs"
}
///////////////////////////////////////
diff --git a/samples/Calculator/Generated/src/Calculator.Core_internal.c b/samples/Calculator/Generated/src/Calculator.Core_internal.c
index fee3a3e3..3970c912 100644
--- a/samples/Calculator/Generated/src/Calculator.Core_internal.c
+++ b/samples/Calculator/Generated/src/Calculator.Core_internal.c
@@ -10,7 +10,9 @@ IL2C_CONST_STRING(Calculator_Core_string0__, L"Polish notation calculator.");
IL2C_CONST_STRING(Calculator_Core_string1__, L"This is proof of concept for IL2C.");
IL2C_CONST_STRING(Calculator_Core_string2__, L"https://github.com/kekyo/IL2C");
IL2C_CONST_STRING(Calculator_Core_string3__, L"Type \"exit\" to exit.");
-IL2C_CONST_STRING(Calculator_Core_string4__, L"PN> ");
-IL2C_CONST_STRING(Calculator_Core_string5__, L"exit");
-IL2C_CONST_STRING(Calculator_Core_string6__, L"Syntax error.");
-IL2C_CONST_STRING(Calculator_Core_string7__, L"Reuslt=");
+IL2C_CONST_STRING(Calculator_Core_string4__, L"Example: \"+ 2 3\"");
+IL2C_CONST_STRING(Calculator_Core_string5__, L"Example: \"* + 2 3 6\"");
+IL2C_CONST_STRING(Calculator_Core_string6__, L"PN> ");
+IL2C_CONST_STRING(Calculator_Core_string7__, L"exit");
+IL2C_CONST_STRING(Calculator_Core_string8__, L"Syntax error.");
+IL2C_CONST_STRING(Calculator_Core_string9__, L"Reuslt=");
diff --git a/samples/Calculator/Generated/src/Calculator.Core_internal.h b/samples/Calculator/Generated/src/Calculator.Core_internal.h
index e2544e9f..b3f368f6 100644
--- a/samples/Calculator/Generated/src/Calculator.Core_internal.h
+++ b/samples/Calculator/Generated/src/Calculator.Core_internal.h
@@ -18,5 +18,7 @@ extern System_String* const Calculator_Core_string4__;
extern System_String* const Calculator_Core_string5__;
extern System_String* const Calculator_Core_string6__;
extern System_String* const Calculator_Core_string7__;
+extern System_String* const Calculator_Core_string8__;
+extern System_String* const Calculator_Core_string9__;
#endif
diff --git a/samples/GettingStartedIL2C/GettingStartedIL2C.sln b/samples/GettingStartedIL2C/GettingStartedIL2C.sln
new file mode 100644
index 00000000..ad6d4324
--- /dev/null
+++ b/samples/GettingStartedIL2C/GettingStartedIL2C.sln
@@ -0,0 +1,54 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 15
+VisualStudioVersion = 15.0.28307.329
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GettingStartedIL2C", "GettingStartedIL2C\GettingStartedIL2C.csproj", "{B2E78CC4-9010-4DB2-81B6-605A463C306E}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GettingStartedIL2CMain", "GettingStartedIL2CMain\GettingStartedIL2CMain.vcxproj", "{CF2AC020-82AB-43D9-BE63-79281A56CFB2}"
+ ProjectSection(ProjectDependencies) = postProject
+ {B2E78CC4-9010-4DB2-81B6-605A463C306E} = {B2E78CC4-9010-4DB2-81B6-605A463C306E}
+ EndProjectSection
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
+ Release|Any CPU = Release|Any CPU
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {B2E78CC4-9010-4DB2-81B6-605A463C306E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {B2E78CC4-9010-4DB2-81B6-605A463C306E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B2E78CC4-9010-4DB2-81B6-605A463C306E}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {B2E78CC4-9010-4DB2-81B6-605A463C306E}.Debug|x64.Build.0 = Debug|Any CPU
+ {B2E78CC4-9010-4DB2-81B6-605A463C306E}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {B2E78CC4-9010-4DB2-81B6-605A463C306E}.Debug|x86.Build.0 = Debug|Any CPU
+ {B2E78CC4-9010-4DB2-81B6-605A463C306E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {B2E78CC4-9010-4DB2-81B6-605A463C306E}.Release|Any CPU.Build.0 = Release|Any CPU
+ {B2E78CC4-9010-4DB2-81B6-605A463C306E}.Release|x64.ActiveCfg = Release|Any CPU
+ {B2E78CC4-9010-4DB2-81B6-605A463C306E}.Release|x64.Build.0 = Release|Any CPU
+ {B2E78CC4-9010-4DB2-81B6-605A463C306E}.Release|x86.ActiveCfg = Release|Any CPU
+ {B2E78CC4-9010-4DB2-81B6-605A463C306E}.Release|x86.Build.0 = Release|Any CPU
+ {CF2AC020-82AB-43D9-BE63-79281A56CFB2}.Debug|Any CPU.ActiveCfg = Debug|Win32
+ {CF2AC020-82AB-43D9-BE63-79281A56CFB2}.Debug|Any CPU.Build.0 = Debug|Win32
+ {CF2AC020-82AB-43D9-BE63-79281A56CFB2}.Debug|x64.ActiveCfg = Debug|x64
+ {CF2AC020-82AB-43D9-BE63-79281A56CFB2}.Debug|x64.Build.0 = Debug|x64
+ {CF2AC020-82AB-43D9-BE63-79281A56CFB2}.Debug|x86.ActiveCfg = Debug|Win32
+ {CF2AC020-82AB-43D9-BE63-79281A56CFB2}.Debug|x86.Build.0 = Debug|Win32
+ {CF2AC020-82AB-43D9-BE63-79281A56CFB2}.Release|Any CPU.ActiveCfg = Release|Win32
+ {CF2AC020-82AB-43D9-BE63-79281A56CFB2}.Release|Any CPU.Build.0 = Release|Win32
+ {CF2AC020-82AB-43D9-BE63-79281A56CFB2}.Release|x64.ActiveCfg = Release|x64
+ {CF2AC020-82AB-43D9-BE63-79281A56CFB2}.Release|x64.Build.0 = Release|x64
+ {CF2AC020-82AB-43D9-BE63-79281A56CFB2}.Release|x86.ActiveCfg = Release|Win32
+ {CF2AC020-82AB-43D9-BE63-79281A56CFB2}.Release|x86.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {3662F6E3-7738-45F9-8B83-143E2996C003}
+ EndGlobalSection
+EndGlobal
diff --git a/samples/GettingStartedIL2C/GettingStartedIL2C/GettingStartedIL2C.csproj b/samples/GettingStartedIL2C/GettingStartedIL2C/GettingStartedIL2C.csproj
new file mode 100644
index 00000000..a4d89edd
--- /dev/null
+++ b/samples/GettingStartedIL2C/GettingStartedIL2C/GettingStartedIL2C.csproj
@@ -0,0 +1,12 @@
+
+
+
+ Exe
+ netcoreapp2.0
+
+
+
+
+
+
+
diff --git a/samples/GettingStartedIL2C/GettingStartedIL2C/Program.cs b/samples/GettingStartedIL2C/GettingStartedIL2C/Program.cs
new file mode 100644
index 00000000..40b60f3e
--- /dev/null
+++ b/samples/GettingStartedIL2C/GettingStartedIL2C/Program.cs
@@ -0,0 +1,10 @@
+using System;
+
+namespace GettingStartedIL2C
+{
+ public static class Program
+ {
+ public static void Main() =>
+ Console.WriteLine("Hello world with IL2C!");
+ }
+}
diff --git a/samples/GettingStartedIL2C/GettingStartedIL2CMain/GettingStartedIL2CMain.cpp b/samples/GettingStartedIL2C/GettingStartedIL2CMain/GettingStartedIL2CMain.cpp
new file mode 100644
index 00000000..dd1e5b32
--- /dev/null
+++ b/samples/GettingStartedIL2C/GettingStartedIL2CMain/GettingStartedIL2CMain.cpp
@@ -0,0 +1,33 @@
+// GettingStartedIL2CMain.cpp : This file contains the 'main' function. Program execution begins and ends there.
+//
+
+#include "pch.h"
+#include
+
+// Referrer translated code.
+#include
+
+int main()
+{
+ // Initialize the IL2C runtime.
+ il2c_initialize();
+
+ // Invoke (translated) the C# code.
+ GettingStartedIL2C_Program_Main();
+
+ // Shutdown the IL2C runtime.
+ il2c_shutdown();
+
+ return 0;
+}
+
+// Run program: Ctrl + F5 or Debug > Start Without Debugging menu
+// Debug program: F5 or Debug > Start Debugging menu
+
+// Tips for Getting Started:
+// 1. Use the Solution Explorer window to add/manage files
+// 2. Use the Team Explorer window to connect to source control
+// 3. Use the Output window to see build output and other messages
+// 4. Use the Error List window to view errors
+// 5. Go to Project > Add New Item to create new code files, or Project > Add Existing Item to add existing code files to the project
+// 6. In the future, to open this project again, go to File > Open > Project and select the .sln file
diff --git a/samples/GettingStartedIL2C/GettingStartedIL2CMain/GettingStartedIL2CMain.vcxproj b/samples/GettingStartedIL2C/GettingStartedIL2CMain/GettingStartedIL2CMain.vcxproj
new file mode 100644
index 00000000..93ac2629
--- /dev/null
+++ b/samples/GettingStartedIL2C/GettingStartedIL2CMain/GettingStartedIL2CMain.vcxproj
@@ -0,0 +1,182 @@
+
+
+
+
+ Debug
+ Win32
+
+
+ Release
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ x64
+
+
+
+ 15.0
+ {CF2AC020-82AB-43D9-BE63-79281A56CFB2}
+ Win32Proj
+ GettingStartedIL2CMain
+ 10.0.17763.0
+
+
+
+ Application
+ true
+ v141
+ Unicode
+
+
+ Application
+ false
+ v141
+ true
+ Unicode
+
+
+ Application
+ true
+ v141
+ Unicode
+
+
+ Application
+ false
+ v141
+ true
+ Unicode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+
+ true
+
+
+ false
+
+
+ false
+
+
+
+ Use
+ Level3
+ Disabled
+ true
+ WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ pch.h
+ $(ProjectDir)../../../IL2C.Runtime/include;$(ProjectDir)../../../IL2C.Runtime/src;$(ProjectDir)../GettingStartedIL2C/bin/$(Configuration)/netcoreapp2.0/IL2C/include;$(ProjectDir)../GettingStartedIL2C/bin/$(Configuration)/netcoreapp2.0/IL2C/src;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+
+
+
+
+ Use
+ Level3
+ Disabled
+ true
+ _DEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ pch.h
+ $(ProjectDir)../../../IL2C.Runtime/include;$(ProjectDir)../../../IL2C.Runtime/src;$(ProjectDir)../GettingStartedIL2C/bin/$(Configuration)/netcoreapp2.0/IL2C/include;$(ProjectDir)../GettingStartedIL2C/bin/$(Configuration)/netcoreapp2.0/IL2C/src;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+
+
+
+
+ Use
+ Level3
+ MaxSpeed
+ true
+ true
+ true
+ WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ pch.h
+ $(ProjectDir)../../../IL2C.Runtime/include;$(ProjectDir)../../../IL2C.Runtime/src;$(ProjectDir)../GettingStartedIL2C/bin/$(Configuration)/netcoreapp2.0/IL2C/include;$(ProjectDir)../GettingStartedIL2C/bin/$(Configuration)/netcoreapp2.0/IL2C/src;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+ Level3
+ MaxSpeed
+ true
+ true
+ true
+ NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
+ true
+ pch.h
+ Use
+ $(ProjectDir)../../../IL2C.Runtime/include;$(ProjectDir)../../../IL2C.Runtime/src;$(ProjectDir)../GettingStartedIL2C/bin/$(Configuration)/netcoreapp2.0/IL2C/include;$(ProjectDir)../GettingStartedIL2C/bin/$(Configuration)/netcoreapp2.0/IL2C/src;%(AdditionalIncludeDirectories)
+
+
+ Console
+ true
+ true
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+ Create
+ Create
+ Create
+ Create
+
+
+ NotUsing
+
+
+ NotUsing
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/GettingStartedIL2C/GettingStartedIL2CMain/GettingStartedIL2CMain.vcxproj.filters b/samples/GettingStartedIL2C/GettingStartedIL2CMain/GettingStartedIL2CMain.vcxproj.filters
new file mode 100644
index 00000000..f84e264f
--- /dev/null
+++ b/samples/GettingStartedIL2C/GettingStartedIL2CMain/GettingStartedIL2CMain.vcxproj.filters
@@ -0,0 +1,1038 @@
+
+
+
+
+ {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
+ cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
+
+
+ {93995380-89BD-4b04-88EB-625FBE52EBFB}
+ h;hh;hpp;hxx;hm;inl;inc;ipp;xsd
+
+
+ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
+ rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
+
+
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+ Header Files
+
+
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+ Source Files
+
+
+
\ No newline at end of file
diff --git a/samples/GettingStartedIL2C/GettingStartedIL2CMain/pch.cpp b/samples/GettingStartedIL2C/GettingStartedIL2CMain/pch.cpp
new file mode 100644
index 00000000..3a3d12b5
--- /dev/null
+++ b/samples/GettingStartedIL2C/GettingStartedIL2CMain/pch.cpp
@@ -0,0 +1,5 @@
+// pch.cpp: source file corresponding to pre-compiled header; necessary for compilation to succeed
+
+#include "pch.h"
+
+// In general, ignore this file, but keep it around if you are using pre-compiled headers.
diff --git a/samples/GettingStartedIL2C/GettingStartedIL2CMain/pch.h b/samples/GettingStartedIL2C/GettingStartedIL2CMain/pch.h
new file mode 100644
index 00000000..b04e71e0
--- /dev/null
+++ b/samples/GettingStartedIL2C/GettingStartedIL2CMain/pch.h
@@ -0,0 +1,14 @@
+// Tips for Getting Started:
+// 1. Use the Solution Explorer window to add/manage files
+// 2. Use the Team Explorer window to connect to source control
+// 3. Use the Output window to see build output and other messages
+// 4. Use the Error List window to view errors
+// 5. Go to Project > Add New Item to create new code files, or Project > Add Existing Item to add existing code files to the project
+// 6. In the future, to open this project again, go to File > Open > Project and select the .sln file
+
+#ifndef PCH_H
+#define PCH_H
+
+// TODO: add headers that you want to pre-compile here
+
+#endif //PCH_H
diff --git a/samples/requires-fix/README.md b/samples/requires-fix/README.md
new file mode 100644
index 00000000..d3584c3a
--- /dev/null
+++ b/samples/requires-fix/README.md
@@ -0,0 +1,3 @@
+This directory contains the IL2C samples, but it can't build with the current version.
+It require for fix and sync to the current version.
+We'll do it in the future.
diff --git a/samples/WDM/WDM.Code/InterceptCDRomDevice.cs b/samples/requires-fix/WDM/WDM.Code/InterceptCDRomDevice.cs
similarity index 100%
rename from samples/WDM/WDM.Code/InterceptCDRomDevice.cs
rename to samples/requires-fix/WDM/WDM.Code/InterceptCDRomDevice.cs
diff --git a/samples/WDM/WDM.Code/Properties/AssemblyInfo.cs b/samples/requires-fix/WDM/WDM.Code/Properties/AssemblyInfo.cs
similarity index 100%
rename from samples/WDM/WDM.Code/Properties/AssemblyInfo.cs
rename to samples/requires-fix/WDM/WDM.Code/Properties/AssemblyInfo.cs
diff --git a/samples/WDM/WDM.Code/WDM.Code.csproj b/samples/requires-fix/WDM/WDM.Code/WDM.Code.csproj
similarity index 100%
rename from samples/WDM/WDM.Code/WDM.Code.csproj
rename to samples/requires-fix/WDM/WDM.Code/WDM.Code.csproj
diff --git a/samples/WDM/WDM.Code/Wdm.cs b/samples/requires-fix/WDM/WDM.Code/Wdm.cs
similarity index 100%
rename from samples/WDM/WDM.Code/Wdm.cs
rename to samples/requires-fix/WDM/WDM.Code/Wdm.cs
diff --git a/samples/WDM/WDM.Target/Generated/WDM.Code.c b/samples/requires-fix/WDM/WDM.Target/Generated/WDM.Code.c
similarity index 100%
rename from samples/WDM/WDM.Target/Generated/WDM.Code.c
rename to samples/requires-fix/WDM/WDM.Target/Generated/WDM.Code.c
diff --git a/samples/WDM/WDM.Target/Generated/WDM.Code.h b/samples/requires-fix/WDM/WDM.Target/Generated/WDM.Code.h
similarity index 100%
rename from samples/WDM/WDM.Target/Generated/WDM.Code.h
rename to samples/requires-fix/WDM/WDM.Target/Generated/WDM.Code.h
diff --git a/samples/WDM/WDM.Target/Main.cpp b/samples/requires-fix/WDM/WDM.Target/Main.cpp
similarity index 100%
rename from samples/WDM/WDM.Target/Main.cpp
rename to samples/requires-fix/WDM/WDM.Target/Main.cpp
diff --git a/samples/WDM/WDM.Target/WDM.Target.vcxproj b/samples/requires-fix/WDM/WDM.Target/WDM.Target.vcxproj
similarity index 100%
rename from samples/WDM/WDM.Target/WDM.Target.vcxproj
rename to samples/requires-fix/WDM/WDM.Target/WDM.Target.vcxproj
diff --git a/samples/WDM/WDM.Target/WDM.Target.vcxproj.filters b/samples/requires-fix/WDM/WDM.Target/WDM.Target.vcxproj.filters
similarity index 100%
rename from samples/WDM/WDM.Target/WDM.Target.vcxproj.filters
rename to samples/requires-fix/WDM/WDM.Target/WDM.Target.vcxproj.filters
diff --git a/samples/WDM/WDM.Target/WDM_Target.inf b/samples/requires-fix/WDM/WDM.Target/WDM_Target.inf
similarity index 100%
rename from samples/WDM/WDM.Target/WDM_Target.inf
rename to samples/requires-fix/WDM/WDM.Target/WDM_Target.inf
diff --git a/samples/WDM/WDM.Target/memmem.c b/samples/requires-fix/WDM/WDM.Target/memmem.c
similarity index 100%
rename from samples/WDM/WDM.Target/memmem.c
rename to samples/requires-fix/WDM/WDM.Target/memmem.c
diff --git a/samples/WDM/WDM.Target/memmem.h b/samples/requires-fix/WDM/WDM.Target/memmem.h
similarity index 100%
rename from samples/WDM/WDM.Target/memmem.h
rename to samples/requires-fix/WDM/WDM.Target/memmem.h
diff --git a/samples/WDM/WDM.Target/runsdvui.cmd b/samples/requires-fix/WDM/WDM.Target/runsdvui.cmd
similarity index 100%
rename from samples/WDM/WDM.Target/runsdvui.cmd
rename to samples/requires-fix/WDM/WDM.Target/runsdvui.cmd
diff --git a/samples/WDM/WDM.Target/setup.bat b/samples/requires-fix/WDM/WDM.Target/setup.bat
similarity index 100%
rename from samples/WDM/WDM.Target/setup.bat
rename to samples/requires-fix/WDM/WDM.Target/setup.bat
diff --git a/samples/WDM/WDM.Target/stdbool.h b/samples/requires-fix/WDM/WDM.Target/stdbool.h
similarity index 100%
rename from samples/WDM/WDM.Target/stdbool.h
rename to samples/requires-fix/WDM/WDM.Target/stdbool.h
diff --git a/samples/WDM/WDM.Target/stdint.h b/samples/requires-fix/WDM/WDM.Target/stdint.h
similarity index 100%
rename from samples/WDM/WDM.Target/stdint.h
rename to samples/requires-fix/WDM/WDM.Target/stdint.h
diff --git a/samples/WDM/data/cdimage.iso b/samples/requires-fix/WDM/data/cdimage.iso
similarity index 100%
rename from samples/WDM/data/cdimage.iso
rename to samples/requires-fix/WDM/data/cdimage.iso
diff --git a/samples/WDM/data/testfile1.txt b/samples/requires-fix/WDM/data/testfile1.txt
similarity index 100%
rename from samples/WDM/data/testfile1.txt
rename to samples/requires-fix/WDM/data/testfile1.txt
diff --git a/samples/WDM/data/testfile2.txt b/samples/requires-fix/WDM/data/testfile2.txt
similarity index 100%
rename from samples/WDM/data/testfile2.txt
rename to samples/requires-fix/WDM/data/testfile2.txt
diff --git a/samples/WDM/data/testfile3.txt b/samples/requires-fix/WDM/data/testfile3.txt
similarity index 100%
rename from samples/WDM/data/testfile3.txt
rename to samples/requires-fix/WDM/data/testfile3.txt
diff --git a/samples/Win32/Win32.Code/DelegateTest.cs b/samples/requires-fix/Win32/Win32.Code/DelegateTest.cs
similarity index 100%
rename from samples/Win32/Win32.Code/DelegateTest.cs
rename to samples/requires-fix/Win32/Win32.Code/DelegateTest.cs
diff --git a/samples/WioLTE/Arduino/il2c/WioLTE.Code.cpp b/samples/requires-fix/WioLTE/Arduino/il2c/WioLTE.Code.cpp
similarity index 100%
rename from samples/WioLTE/Arduino/il2c/WioLTE.Code.cpp
rename to samples/requires-fix/WioLTE/Arduino/il2c/WioLTE.Code.cpp
diff --git a/samples/WioLTE/Arduino/il2c/WioLTE.Code.h b/samples/requires-fix/WioLTE/Arduino/il2c/WioLTE.Code.h
similarity index 100%
rename from samples/WioLTE/Arduino/il2c/WioLTE.Code.h
rename to samples/requires-fix/WioLTE/Arduino/il2c/WioLTE.Code.h
diff --git a/samples/WioLTE/Arduino/il2c/WioLTE.h b/samples/requires-fix/WioLTE/Arduino/il2c/WioLTE.h
similarity index 100%
rename from samples/WioLTE/Arduino/il2c/WioLTE.h
rename to samples/requires-fix/WioLTE/Arduino/il2c/WioLTE.h
diff --git a/samples/WioLTE/Arduino/il2c/il2c.cpp b/samples/requires-fix/WioLTE/Arduino/il2c/il2c.cpp
similarity index 100%
rename from samples/WioLTE/Arduino/il2c/il2c.cpp
rename to samples/requires-fix/WioLTE/Arduino/il2c/il2c.cpp
diff --git a/samples/WioLTE/Arduino/il2c/il2c.h b/samples/requires-fix/WioLTE/Arduino/il2c/il2c.h
similarity index 100%
rename from samples/WioLTE/Arduino/il2c/il2c.h
rename to samples/requires-fix/WioLTE/Arduino/il2c/il2c.h
diff --git a/samples/WioLTE/Arduino/main.ino b/samples/requires-fix/WioLTE/Arduino/main.ino
similarity index 100%
rename from samples/WioLTE/Arduino/main.ino
rename to samples/requires-fix/WioLTE/Arduino/main.ino
diff --git a/samples/WioLTE/README.md b/samples/requires-fix/WioLTE/README.md
similarity index 100%
rename from samples/WioLTE/README.md
rename to samples/requires-fix/WioLTE/README.md
diff --git a/samples/WioLTE/WioLTE.Code/Arduino.cs b/samples/requires-fix/WioLTE/WioLTE.Code/Arduino.cs
similarity index 100%
rename from samples/WioLTE/WioLTE.Code/Arduino.cs
rename to samples/requires-fix/WioLTE/WioLTE.Code/Arduino.cs
diff --git a/samples/WioLTE/WioLTE.Code/Properties/AssemblyInfo.cs b/samples/requires-fix/WioLTE/WioLTE.Code/Properties/AssemblyInfo.cs
similarity index 100%
rename from samples/WioLTE/WioLTE.Code/Properties/AssemblyInfo.cs
rename to samples/requires-fix/WioLTE/WioLTE.Code/Properties/AssemblyInfo.cs
diff --git a/samples/WioLTE/WioLTE.Code/Wio.cs b/samples/requires-fix/WioLTE/WioLTE.Code/Wio.cs
similarity index 100%
rename from samples/WioLTE/WioLTE.Code/Wio.cs
rename to samples/requires-fix/WioLTE/WioLTE.Code/Wio.cs
diff --git a/samples/WioLTE/WioLTE.Code/WioLTE.Code.csproj b/samples/requires-fix/WioLTE/WioLTE.Code/WioLTE.Code.csproj
similarity index 100%
rename from samples/WioLTE/WioLTE.Code/WioLTE.Code.csproj
rename to samples/requires-fix/WioLTE/WioLTE.Code/WioLTE.Code.csproj
diff --git a/samples/microbit/Accelometer.Code/Accelometer.Code.csproj b/samples/requires-fix/microbit/Accelometer.Code/Accelometer.Code.csproj
similarity index 100%
rename from samples/microbit/Accelometer.Code/Accelometer.Code.csproj
rename to samples/requires-fix/microbit/Accelometer.Code/Accelometer.Code.csproj
diff --git a/samples/microbit/Accelometer.Code/Demo.cs b/samples/requires-fix/microbit/Accelometer.Code/Demo.cs
similarity index 100%
rename from samples/microbit/Accelometer.Code/Demo.cs
rename to samples/requires-fix/microbit/Accelometer.Code/Demo.cs
diff --git a/samples/microbit/Accelometer.FSharp.Code/Accelometer.FSharp.Code.fsproj b/samples/requires-fix/microbit/Accelometer.FSharp.Code/Accelometer.FSharp.Code.fsproj
similarity index 100%
rename from samples/microbit/Accelometer.FSharp.Code/Accelometer.FSharp.Code.fsproj
rename to samples/requires-fix/microbit/Accelometer.FSharp.Code/Accelometer.FSharp.Code.fsproj
diff --git a/samples/microbit/Accelometer.FSharp.Code/Demo.fs b/samples/requires-fix/microbit/Accelometer.FSharp.Code/Demo.fs
similarity index 100%
rename from samples/microbit/Accelometer.FSharp.Code/Demo.fs
rename to samples/requires-fix/microbit/Accelometer.FSharp.Code/Demo.fs
diff --git a/samples/microbit/Accelometer.FSharp/Accelometer.FSharp.Code.cpp b/samples/requires-fix/microbit/Accelometer.FSharp/Accelometer.FSharp.Code.cpp
similarity index 100%
rename from samples/microbit/Accelometer.FSharp/Accelometer.FSharp.Code.cpp
rename to samples/requires-fix/microbit/Accelometer.FSharp/Accelometer.FSharp.Code.cpp
diff --git a/samples/microbit/Accelometer.FSharp/Accelometer.FSharp.Code.h b/samples/requires-fix/microbit/Accelometer.FSharp/Accelometer.FSharp.Code.h
similarity index 100%
rename from samples/microbit/Accelometer.FSharp/Accelometer.FSharp.Code.h
rename to samples/requires-fix/microbit/Accelometer.FSharp/Accelometer.FSharp.Code.h
diff --git a/samples/microbit/Accelometer.FSharp/Accelometer.FSharp.ino b/samples/requires-fix/microbit/Accelometer.FSharp/Accelometer.FSharp.ino
similarity index 100%
rename from samples/microbit/Accelometer.FSharp/Accelometer.FSharp.ino
rename to samples/requires-fix/microbit/Accelometer.FSharp/Accelometer.FSharp.ino
diff --git a/samples/microbit/Accelometer.FSharp/Accelometer.h b/samples/requires-fix/microbit/Accelometer.FSharp/Accelometer.h
similarity index 100%
rename from samples/microbit/Accelometer.FSharp/Accelometer.h
rename to samples/requires-fix/microbit/Accelometer.FSharp/Accelometer.h
diff --git a/samples/microbit/Accelometer/Accelometer.Code.cpp b/samples/requires-fix/microbit/Accelometer/Accelometer.Code.cpp
similarity index 100%
rename from samples/microbit/Accelometer/Accelometer.Code.cpp
rename to samples/requires-fix/microbit/Accelometer/Accelometer.Code.cpp
diff --git a/samples/microbit/Accelometer/Accelometer.Code.h b/samples/requires-fix/microbit/Accelometer/Accelometer.Code.h
similarity index 100%
rename from samples/microbit/Accelometer/Accelometer.Code.h
rename to samples/requires-fix/microbit/Accelometer/Accelometer.Code.h
diff --git a/samples/microbit/Accelometer/Accelometer.h b/samples/requires-fix/microbit/Accelometer/Accelometer.h
similarity index 100%
rename from samples/microbit/Accelometer/Accelometer.h
rename to samples/requires-fix/microbit/Accelometer/Accelometer.h
diff --git a/samples/microbit/Accelometer/Accelometer.ino b/samples/requires-fix/microbit/Accelometer/Accelometer.ino
similarity index 100%
rename from samples/microbit/Accelometer/Accelometer.ino
rename to samples/requires-fix/microbit/Accelometer/Accelometer.ino
diff --git a/supported-runtime-system-features.md b/supported-runtime-system-features.md
deleted file mode 100644
index 944ea509..00000000
--- a/supported-runtime-system-features.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# Supported runtime system features
-
-
-Feature | Test | Descrition
-|:---|:---|:---|
-| ArrayTypes | [Test [43]](tests/IL2C.Core.Test.Target/RuntimeSystems/ArrayTypes) | Array type generates on the runtime. Example: System.Int32[] isn't declared anything assembly. These tests are verified the IL2C can handle runtime array types and initialize array items from resources. |
-| DelegateTypes | [Test [15]](tests/IL2C.Core.Test.Target/RuntimeSystems/DelegateTypes) | The delegate types contain special member fields, the objref instance reference and the raw method pointer. These tests are verified the IL2C can invoke delegate types combination features between static, instance, virtual method and multicasting at the runtime. |
-| EnumTypes | [Test [18]](tests/IL2C.Core.Test.Target/RuntimeSystems/EnumTypes) | The enum types have the underlying primitive integer types. These tests are verified the IL2C can manage enum underlying types at the boxing-unboxing conversion with narrowing-widing combinations. |
-| ExceptionHandling | [Test [31]](tests/IL2C.Core.Test.Target/RuntimeSystems/ExceptionHandling) | These tests are verified the IL2C translates with simple and/or complext exception handling. |
-| ExceptionThrownByCLI | [Test [33]](tests/IL2C.Core.Test.Target/RuntimeSystems/ExceptionThrownByCLI) | These tests are verified the IL2C throw some exceptions from the internal runtimes by ECMA-335 I.12.4.2.1. |
-| GarbageCollection | [Test [10]](tests/IL2C.Core.Test.Target/RuntimeSystems/GarbageCollection) | These tests are verified the IL2C manages tracing the object references and collect garbages from the heap memory. |
-| Interoperability | [Test [4]](tests/IL2C.Core.Test.Target/RuntimeSystems/Interoperability) | These tests are verified the IL2C manages interoperability with the P/Invoke adn IL2C/Invoke method and internalcall method. |
-| TypeInitializer | [Test [15]](tests/IL2C.Core.Test.Target/RuntimeSystems/TypeInitializer) | These tests are verified the IL2C can handle the type initializer special translation cases. |
-| TypeRelations | [Test [95]](tests/IL2C.Core.Test.Target/RuntimeSystems/TypeRelations) | CLR type system contains single-inheritance class types and multiple-implementation interface types. These tests are verified the IL2C can handle the member methods both simple instance methods and complex overriden virtual methods. |
-| ValueTypes | [Test [18]](tests/IL2C.Core.Test.Target/RuntimeSystems/ValueTypes) | Value types are specialized types at the .NET type system. Because the type inherited from the System.ValueType (objref type), all method has the managed pointer at the arg0 and these instances will box and apply the pseudo vptrs. These tests are verified the IL2C can handle value types. |
diff --git a/tests/IL2C.Core.Test.Fixture/Generators.cs b/tests/IL2C.Core.Test.Fixture/StatisticsDocumentGenerators.cs
similarity index 95%
rename from tests/IL2C.Core.Test.Fixture/Generators.cs
rename to tests/IL2C.Core.Test.Fixture/StatisticsDocumentGenerators.cs
index cf1ffd68..e0e8a193 100644
--- a/tests/IL2C.Core.Test.Fixture/Generators.cs
+++ b/tests/IL2C.Core.Test.Fixture/StatisticsDocumentGenerators.cs
@@ -2,27 +2,28 @@
using System.IO;
using System.Linq;
using System.Reflection;
+using System.Runtime.InteropServices;
using System.Threading.Tasks;
using Mono.Cecil.Cil;
using NUnit.Framework;
using IL2C.ILConverters;
-using System.Runtime.InteropServices;
namespace IL2C
{
[TestFixture]
- public sealed class Generators
+ public sealed class StatisticsDocumentGenerators
{
private static readonly string generatedDocumentBasePath = Path.GetFullPath(
Path.Combine(
- Path.GetDirectoryName(typeof(Generators).Assembly.Location),
+ Path.GetDirectoryName(typeof(StatisticsDocumentGenerators).Assembly.Location),
+ "..",
"..",
"..",
"..",
"..",
- ".."));
+ "docs"));
[Test]
public static async Task DumpSupportedOpCodes()
@@ -103,7 +104,7 @@ await tw.WriteLineAsync(
(ushort)opCode.Value,
(ilConverter != null) ? "Implemented" : string.Empty,
ilConverterTests.TryGetValue(name, out var count) ?
- string.Format("[Test [{0}]](tests/IL2C.Core.Test.Target/ILConverters/{1})", count, name) :
+ string.Format("[Test [{0}]](../tests/IL2C.Core.Test.Target/ILConverters/{1})", count, name) :
string.Empty,
ilConverter?.GetType().FullName ?? string.Empty));
}
@@ -182,7 +183,7 @@ await tw.WriteLineAsync(
type.FullName.ToLowerInvariant(),
(entry != null) ?
((entry.Count >= 1) ?
- string.Format("[Test [{0}]](tests/IL2C.Core.Test.Target/BasicTypes/{1})", entry.Count, entry.Name) :
+ string.Format("[Test [{0}]](../tests/IL2C.Core.Test.Target/BasicTypes/{1})", entry.Count, entry.Name) :
string.Empty) :
string.Empty));
}
@@ -228,7 +229,7 @@ public static async Task DumpSupportedRuntimeSystems()
foreach (var typeSystemTest in typeSystemsTests.OrderBy(entry => entry.Key))
{
await tw.WriteLineAsync(
- string.Format("| {0} | [Test [{1}]](tests/IL2C.Core.Test.Target/RuntimeSystems/{0}) | {2} |",
+ string.Format("| {0} | [Test [{1}]](../tests/IL2C.Core.Test.Target/RuntimeSystems/{0}) | {2} |",
typeSystemTest.Key,
typeSystemTest.Value.Count,
typeSystemTest.Value.Description));