1. 개요
COSMOSOS에서 제작하여 1~2세대에서 사용되던[1] 도구로, 컴파일 된 C# 바이너리를 XSharp으로 변환해주는 툴이다.2. 사용 방법
현재는 COSMOSOS 위키나 IL2CPU 위키에 나와있지 않기 때문에 CosmosOS 빌드 파일중 하나를 보고 찾아야한다.[2]어떻게든 사용해도 Plug라는 라이브러리가 없으면 변환을 하지 못한다.[3]
3. Plugs/Plug
IL2CPU에서 사용하는 Plug는 시스템 콜을 사용하는 메서드 등을 네이티브 환경에서 사용 가능한 XSharp 코드로 바꾸어주는 라이브러리이다. 여담으로 Char와 Void, Object등의 기본적인 클래스마저 Plug에 존재하여야 한다.4. 빌드 진행 중
Plug가 없다는 오류가 나오면, 말 그대로 코드에 Plug가 존재하지 않는 시스템 콜을 사용하는 메서드가 포함되어 있다는 것이다.[4]빌드 진행 중에는 오랫동안 멈춰있는데, 이는 원래 그런 것으로[5] XSharp으로 변환중에 모든 수식과 함수, 클래스를 기록하고 계산해야하기 때문에 코드가 늘어날수록 빌드 시간도 늘어날 수 밖에 없다.
[1] 3세대부터는 NativeAOT에 Plug를 접목시킨 도구를 기반으로 둔다.[2] 현재는 IL2CPU가 완벽히 CosmosOS에 뿌리를 두고 있어 찾아도 사용할 수 있을지는 모른다.[3] CosmosOS에는 Plug 라이브러리가 기본적으로 내장되어 있다.[4] 주로 System.Reflection 등의 플랫폼/AOT 기반 메서드들이다.[5] 대부분 Method 처리중에 멈춘다.