콘텐츠로 이동

Swift Compiler 빌드·테스트·디버그 스택

이 페이지는 Swift Compiler 기여자의 실무 루프를 한 장으로 묶은 허브다. 즉 “코드를 읽고 → 고치고 → 빌드하고 → 테스트하고 → 디버깅하고 → CI까지 확인하는 흐름”을 연결해서 본다.

전체 루프

편집
→ 빌드 구성 확인
→ 증분 빌드
→ 관련 테스트 실행
→ 실패 시 디버깅
→ 재현 케이스 축소
→ CI 검증

단계별 핵심 도구

단계 핵심 도구 관련 페이지
초기 설정 build-script, checkout, toolchain setup Swift 개발 환경 설정
빌드 그래프/증분 빌드 CMake, Ninja CMake와 Ninja 빌드 인프라
프론트엔드/파이프라인 이해 driver, dependency analysis Swift 컴파일러 드라이버, 의존성 분석 (증분 빌드)
테스트 실행 lit, FileCheck, run-test lit와 FileCheck, Swift 테스트 가이드
디버깅 LLDB, dump flags, SIL/IR 출력 LLDB와 Swift 디버깅, 컴파일러 디버깅 가이드
최적화/백엔드 추적 SIL dump, LLVM IR, pass bisect SIL (Swift Intermediate Language), LLVM 백엔드와 Swift, Swift 옵티마이저 설계
최종 검증 validation / CI 지속적 통합 (CI), 첫 번째 Pull Request 제출

왜 이 허브가 필요한가

기존 문서들은 각각 - 환경 설정 - 테스트 작성 - 디버깅 테크닉 - 드라이버 구조 를 따로 설명한다. 하지만 실제 기여는 이 문서들을 번갈아 오가는 루프로 진행된다. 그래서 이 페이지는 개별 도구보다 “실제 작업 흐름” 중심으로 정리한다.

대표 시나리오

1. 진단 버그 수정

  • 관련 표현식 재현
  • 프론트엔드 출력 / 타입체커 흐름 확인
  • lit/FileCheck 테스트 추가
  • LLDB나 dump 플래그로 내부 상태 확인

연결 페이지: - 진단 시스템 (Diagnostics) - Swift 테스트 가이드 - lit와 FileCheck - LLDB와 Swift 디버깅

2. 최적화/성능 문제 조사

  • SIL 전후 출력 비교
  • 특정 패스 bisect
  • 필요하면 LLVM IR까지 내려가 확인

연결 페이지: - Swift 옵티마이저 설계 - SIL 옵티마이저 패스 카탈로그 - LLVM 백엔드와 Swift - 컴파일러 성능 측정

3. 빌드/인프라 문제 조사

  • CMakeLists / 타깃 등록 확인
  • Ninja 증분 빌드 루프 확인
  • 드라이버/SwiftPM/llbuild 경계 확인

연결 페이지: - CMake와 Ninja 빌드 인프라 - 컴파일러 개발 FAQ - swift-driver (패키지) - llbuild

최소 실무 루프

  1. Swift 개발 환경 설정
  2. CMake와 Ninja 빌드 인프라
  3. Swift 테스트 가이드
  4. lit와 FileCheck
  5. 컴파일러 디버깅 가이드
  6. LLDB와 Swift 디버깅
  7. 지속적 통합 (CI)

같이 보면 좋은 페이지