저는 학습 목적으로 애완 동물 프로그래밍 언어로 일하고 있으며 지난 한 해 동안 많은 연구를 해왔습니다. 그러한 언어의 개념을 모델링합니다. 우선 JVM 또는 .NET 바이트 코드와 같은 중간 형식으로 컴파일해야합니다. 목표는 멀티 플랫폼/아키텍처입니다. 둘째로, 나는 그것을 빠르게하고 싶다. (나는 또한 많은 다른 것들을 염두에두고 있지만, 그것들을 토론하기위한이 주제의 목적이 아니다.) 컴파일 JVM 바이트 코드와 컴파일 .NET 바이트 코드를 런타임 환경으로 오픈 JDK를 사용하고 컴파일 LLVM IR로 런타임 환경으로 모노를 사용하여 런타임 환경으로 LLVM을 사용 : 내 마음에 온LLVM을 가상 머신으로 사용 - 멀티 플랫폼 및 멀티 아키텍처 코딩
가장 좋은 옵션이었다 .
내가 상상 한 것처럼, 저는 LLVM을 선택했습니다. 왜? 그것의 타오르는 빠른 때문에. 나는 C++ N-Body 코드를 사용하여 벤치마킹을 해본 결과 IR이있는 컴퓨터에서 7 초가 걸렸습니다. clang 원시 컴파일 된 코드가있는 27 개와는 대조적이었습니다.
그럼, 여기 내 질문이다 : 사용할 수있는 LLVM 기본 도구 세트 (필자는 단지 lli가 필요함)의 재배포 가능 버전이 있습니까? 아니면 내 자신을 컴파일해야합니까? 후자의 경우, 어떻게 할 지에 대한 힌트를 제게 제공 할 수 있습니까? 내가 정말로해야만한다면, 내 컴퓨터 (인텔 맥)에서 그들을 크로스 컴파일하고 (윈도우즈 용 .msi, 인기있는 리눅스 배포판 용 .rpm, .pkg와 같은) 인스톨러를 생성한다고 생각하고있다. 맥). LLVM의 최소 부분 집합 만 필요하므로이 하위 집합은 "lli"를 사용하여 VM처럼 작동 할 수 있습니다. 진짜 질문은 전형적인 가상 머신으로 LLVM을 사용하는 방법입니다.
LLVM 프로젝트에는 허가 된 라이센스가 있습니다. ** 핵심 라이브러리 **를 배포해야하는 것처럼 들립니다. –
@RobertHarvey 내가 생각했던 것, 구입할 곳이 어디인지 알지 못합니다. – Salvia
어쨌든 당신이 문서를 읽을 필요가있을 것입니다. 그리고 이미 결정을했기 때문에 ... 저는 LLVM과 함께 일하게되어 기쁩니다. 아아, 아직 설명서를 읽지 않았습니다. –