5P by neo 19일전 | ★ favorite | 댓글 4개
  • Swift는 다양한 플랫폼을 지원하는 언어로 인기를 얻고 있으며, 다양한 임베디드 장치와 운영 체제에서 사용 가능
  • Apple은 Swift Build라는 강력하고 확장 가능한 빌드 엔진을 오픈 소스로 공개
  • Swift Build는 Xcode의 빌드 엔진으로 사용되며, "App Store 앱 및 Apple 자체 운영체제 빌드"에도 활용됨.
    • Linux와 Windows 타겟 빌드도 지원
  • Swift Build의 핵심 기능

    • 빌드 시스템은 프로젝트 설명과 소스 코드를 명령줄 도구, 라이브러리, 애플리케이션 같은 출력물로 변환하는 역할을 함
    • Swift Build는 Swift Package Manager나 Xcode 같은 상위 클라이언트가 요청한 빌드를 계획하고 실행하는 인프라 구성 요소
    • Swift 컴파일러와의 강력한 통합을 통해 Swift 프로젝트의 빌드를 신뢰성 있고 효율적으로 조정
    • 다양한 제품 유형을 지원하며, 고급 빌드 구성 옵션을 제공
    • Swift와 C 코드 빌드 시 병렬성을 극대화하는 빌드 그래프 최적화를 포함
  • Swift Build의 로드맵

    • Xcode의 빌드 엔진과 비교하여 Swift Package Manager의 빌드 엔진은 비교적 단순함
    • Apple 플랫폼에서 두 가지 다른 패키지 빌드 방법이 사용자 혼란을 초래
    • Xcode의 빌드 엔진을 Swift 프로젝트에 기여하고 Swift 컴파일러와 함께 오픈 소스로 개발하여 이러한 문제를 해결하고자 함
    • SwiftPM은 모든 플랫폼에서 통합된 빌드 실행 엔진을 제공할 기회를 가지게 됨
    • 이 변화는 사용자에게 투명하게 작용하며, 모든 기존 패키지와의 완전한 호환성을 유지
    • 새로운 기능과 개선 사항을 모든 플랫폼과 도구에 걸쳐 제공할 수 있는 기반을 마련
    • Swift Build를 SwiftPM의 대체 빌드 엔진으로 통합하는 PR 제출
    • 커뮤니티와 협력하여 모든 플랫폼과 프로젝트 모델에서 향후 도구 개선의 혜택을 누릴 수 있도록 빌드 시스템 통합 작업을 완료하고자 함
  • 참여 초대

    • Swift 코드 빌드 방식을 계속 발전시키기 위해 커뮤니티와 협력하기를 기대함.
    • GitHub의 Swift 조직에서 swift-build 저장소를 찾을 수 있으며, 빌드 및 기여 방법을 설명하는 README와 문서가 포함되어 있음.
    • 풀 리퀘스트와 이슈를 통한 기여를 환영하며, Swift 포럼에서 개선에 대한 피드백과 아이디어를 받고자 함.
    • Swift의 빌드 시스템에 대한 흥미로운 새로운 장이며, Swift의 모든 잠재력을 열어줄 것으로 기대함.

그러니까... 요약하자면 xcode는 지금과 다를바 없이 쓰레기라는거죠?
ㅠㅠㅠㅠㅠㅠㅠ

https://llvm.org/devmtg/2016-11/… 의 12 page. 가 중요한 내용인거 같네요.

Traditional UNIX compiler/build system model
• Compiler runs as separate process
• Primitive mechanisms for communicating dependencies
• Fixed input/output pipeline defined by command line
• This is an API ...
• ... and we haven’t changed it in decades
• We ❤ breaking APIs

Java 쪽은 코드사이의 의존성을 알려주는 API가 있어서 빌드도구 들에게 어떻게 하면 incremental build가 되는지 알려주도록 되어 있는 것 같은데,
ex: Gradle

Native 빌드에도 해당 방법을 적용하는 방향으로 가야할 것 같습니다.

Hacker News 의견
  • Swift가 "모든 것에 좋지만 Apple 플랫폼에 더 좋음"이라는 인식이 언어에 해로울 수 있음. 이는 Swift 생태계에 더 많은 사람을 끌어들이지 못함

    • 경쟁자들은 더 오픈 소스적이고, 기여자가 많으며, 범위가 좁음
    • Xcode 같은 도구를 오픈 소스로 만들지 않으면 다른 언어와의 격차가 커질 것임
  • Swift는 멋진 언어임

    • "index out of range" 오류 시, 오류 메시지가 어디서 발생했는지 알려주지 않음
    • Golang은 오류가 발생한 파일과 줄 번호를 알려줌
  • Swift의 상황이 초기 C# 시절을 떠올리게 함

    • C#도 오픈 소스와 크로스 플랫폼으로 홍보되었으나 기대에 미치지 못함
  • Swift가 Apple의 LLVM 포크가 아닌 일반 LLVM을 기반으로 구축되었으면 좋겠음

  • Swift는 Xcode와의 분리를 목표로 해야 함

    • Xcode는 3.1점으로 과대평가된 면이 있음
  • SwiftPM의 새로운 릴리스는 모든 플랫폼에서 통합된 빌드 실행 엔진을 제공할 기회를 줌

    • 이는 Swift의 멀티플랫폼 생태계를 구축하는 열쇠가 될 것임
  • Xcode 없이 Swift 개발이 가능한 길을 열 수 있는지 궁금함

  • Swift 빌드가 Swift의 도구 및 언어 서버와 얼마나 잘 통합되어 있는지 명확하지 않음

    • 언어 서버는 이미 오픈 소스임
  • Swift가 Apple로부터 독립되어 기쁨

    • 크로스 플랫폼 프로젝트에서 URLSession.shared.data가 Linux에서 컴파일되지 않아 다른 언어로 전환한 경험이 있음
  • Swift가 임베디드 시스템에 진지한지 궁금함