알파카 미리보기: ASP.NET Core가 포함된 네이티브 Swift

SourceGear.Alpaca.Swift.SDK 의 미리 보기 버전( 0.1.10 )에 대한 nuget 패키지를 푸시했습니다 . 네, "라마"가 아니라 "알파카"라고 했습니다. 그래서 아마 설명해야 할 것입니다 …

알파카란? (라마에서 시작)

Llama 프로젝트는 두 가지 주요 부분으로 성장했습니다.

  • LLVM 비트코드를 .NET CIL로 변환하여 다른 언어를 .NET 개발에 사용할 수 있도록 하는 컴파일러입니다. 이 작품이 나의 출발점이었다.
  • 다른 언어가 .NET 라이브러리와 상호 작용할 수 있도록 글루 코드를 생성하는 바인딩 생성기입니다. 이 작품은 나중에 나왔다.

Llama는 이 두 부분 중 첫 번째 부분에서 이름을 따온 것인데, 그 이유는 그것이 핵심 개념이었고 그 부분이 LLVM 중심이고 "Llama"라는 단어가 두 개의 L로 시작하고 이름을 짓는 것이 어렵기 때문에 그래서 저는 더 창의적일 이유가 없습니다.

그러나 나는 최근에 첫 번째 조각 없이 두 번째 조각을 사용할 수 있다는 것을 깨달았습니다. 나는 아마 이것을 더 빨리 알아냈어야 했다.

내 “LLVM 비트코드를 CIL로” 접근 방식은 공통 이름이 없는 이상한 종류의 코드를 생성합니다.

  • CLR에서 실행되는 코드이므로 실제로 "네이티브 코드"가 아닙니다.
  • 그러나 개체 참조나 GC를 전혀 다루지 않는 코드이기도 하므로 "관리 코드"도 아닙니다.

일단 "퍼플 코드"라고 합시다. 시간이 지남에 따라 CLR과의 상호 운용성과 관련하여 보라색 코드에 대한 규칙이 네이티브 코드에 대한 규칙과 매우 유사하다는 사실을 알게 되었습니다.

그리고 제가 최근에야 깨달은 것은 이러한 규칙이 단순히 “유사한” 것이 아니라 정확히 동일하다는 것입니다.

이는 이러한 바인딩이 Llama의 핵심과 독립적일 수 있음을 의미합니다. 예, 서로 다른 방식으로 연결해야 하지만 그 외에는 보라색 코드나 네이티브 코드로 변경 없이 사용할 수 있습니다.

따라서 이러한 바인딩은 LLVM-to-CIL 항목 없이 세계에서 자신의 위치를 ​​탐색할 수 있는 고유한 삶을 누릴 자격이 있습니다.

그래서 제가 그 두 번째 작품에 붙인 이름은 "알파카"입니다.

https://ericsink.com/entries/swift_alpaca.html

이 분의 의미있는 통찰

https://ericsink.com/entries/depth.html

1개의 좋아요