{"id":51069086,"url":"https://github.com/oozoofrog/yoda","last_synced_at":"2026-06-23T09:00:50.375Z","repository":{"id":349185209,"uuid":"1201355466","full_name":"oozoofrog/yoda","owner":"oozoofrog","description":"Research-based Swift compiler learning docs, tutorials, labs, and case studies.","archived":false,"fork":false,"pushed_at":"2026-04-09T23:59:28.000Z","size":6408,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-20T05:42:56.424Z","etag":null,"topics":["compiler","debugging","learning","swift","tutorial"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/oozoofrog.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-04T15:10:11.000Z","updated_at":"2026-04-09T23:59:37.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/oozoofrog/yoda","commit_stats":null,"previous_names":["oozoofrog/yoda"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/oozoofrog/yoda","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oozoofrog%2Fyoda","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oozoofrog%2Fyoda/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oozoofrog%2Fyoda/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oozoofrog%2Fyoda/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oozoofrog","download_url":"https://codeload.github.com/oozoofrog/yoda/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oozoofrog%2Fyoda/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34682632,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-23T02:00:07.161Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["compiler","debugging","learning","swift","tutorial"],"created_at":"2026-06-23T09:00:48.423Z","updated_at":"2026-06-23T09:00:50.360Z","avatar_url":"https://github.com/oozoofrog.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# yoda 문서 허브\n\n`yoda/`는 Swift 컴파일러 기여와 학습을 위한 문서 모음입니다.  \n이제 문서는 크게 두 층으로 나뉩니다:\n\n- **레퍼런스 문서**: 환경, SIL, Demangling, 전체 기여 흐름을 설명하는 참고 문서\n- **튜토리얼 문서**: 실제 학습 순서, 실습, 사례 복원, 연구 기반 학습 루프를 제공하는 문서\n\n레퍼런스 축은 다시 아래 4가지 주제로 나뉩니다:\n\n- 개발 환경과 빌드/테스트 루프\n- 처음 기여를 시작하는 학습 순서\n- SIL 중심의 내부 구조와 최적화\n- Demangling/Mangling 중심의 심볼/ABI 이해\n\n처음이라면 **항상 개발 환경 문서부터** 시작하세요.  \n다른 문서들은 모두 로컬 빌드/테스트 루프가 잡혀 있다는 전제를 공유합니다.\n\n\n## 가장 먼저 해야 할 일\n\nSwift는 알지만 Swift 컴파일러는 처음이라면, **이 README에서 길을 찾으려 하지 말고 아래 문서 하나만 먼저 여세요.**\n\n- [tutorials/courses/00-swift-compiler-first-contribution-track.md](tutorials/courses/00-swift-compiler-first-contribution-track.md)\n\n이 문서는\n- 지금 뭘 해야 하는지\n- 왜 그 순서가 맞는지\n- 어디서 멈추고 다음 단계로 넘어가야 하는지\n를 한 번에 정해줍니다.\n\n이 아래에 있는 문서 지도와 추천 트랙은 **지금 바로 다 읽으라는 뜻이 아니라, 핵심 코스를 진행하다가 필요할 때만 여는 보조 자료**입니다.\n\n---\n\n## 인터랙티브 웹 문서\n\n`yoda/docs/`에는 이 Markdown 문서들을 바탕으로 만든 **정적 인터랙티브 학습 웹앱**이 있습니다.\n\n- 기본 UX: **개인용 2단 문서 뷰어**\n- 좌측: 전체 문서 목차 / 우측: 선택한 문서 내용 + 개인 메모\n- 배포 방식: **GitHub Pages용 정적 문서**\n\n로컬에서 미리보려면:\n\n```bash\ncd yoda\n./scripts/run_web.sh\n```\n\n그 다음 브라우저에서 `http://127.0.0.1:8123`를 엽니다.\n\n---\n\n## 빠른 진입\n\n### 연구 기반 튜토리얼로 시작하고 싶다면\n1. [tutorials/README.md](tutorials/README.md)\n2. [tutorials/00-curriculum-and-method.md](tutorials/00-curriculum-and-method.md)\n3. [tutorials/01-build-environment-lab.md](tutorials/01-build-environment-lab.md)\n\n### 공식 참고 문서를 같이 받아두고 싶다면\n- [Swift 공식/준공식 참고 문서 다운로드](2026-04-10-swift-official-reference-downloads.md)\n\n### 완전 처음이라면\n1. [Swift 컴파일러 개발 환경 완전 정복](2026-04-04-swift-compiler-dev-environment.md)\n2. [Swift 컴파일러 기여자를 위한 체계적 학습 가이드](2026-04-04-swift-compiler-contributor-learning-guide.md)\n\n### 빌드/테스트 루프부터 잡고 싶다면\n- [Swift 컴파일러 개발 환경 완전 정복](2026-04-04-swift-compiler-dev-environment.md)\n\n### SIL부터 파고들고 싶다면\n1. [Swift 컴파일러 개발 환경 완전 정복](2026-04-04-swift-compiler-dev-environment.md)\n2. [SIL (Swift Intermediate Language) 심화 가이드](2026-04-04-sil-deep-dive.md)\n\n### 심볼/ABI/Demangling부터 보고 싶다면\n1. [Swift 컴파일러 개발 환경 완전 정복](2026-04-04-swift-compiler-dev-environment.md)\n2. [Demangling 심화 가이드](2026-04-04-demangling-deep-dive.md)\n\n---\n\n## 문서 지도\n\n### 레퍼런스 문서\n\n| 문서 | 대상 독자 | 핵심 질문 | 난이도 | 선행 문서 |\n|---|---|---|---|---|\n| [Swift 컴파일러 개발 환경 완전 정복](2026-04-04-swift-compiler-dev-environment.md) | 처음 빌드/테스트 루프를 잡는 기여자 | 로컬 빌드, 증분 빌드, 테스트, 디버깅 루프를 어떻게 잡을까? | 하 | 없음 |\n| [Swift 컴파일러 기여자를 위한 체계적 학습 가이드](2026-04-04-swift-compiler-contributor-learning-guide.md) | 컴파일러 구조가 처음인 Swift 개발자 | 무엇을 어떤 순서로 배우고 어디서 첫 기여를 시작할까? | 하 | 개발 환경 문서 |\n| [SIL (Swift Intermediate Language) 심화 가이드](2026-04-04-sil-deep-dive.md) | SILOptimizer/SILGen 쪽에 관심 있는 기여자 | SIL은 왜 필요하고, 어떻게 읽고, 어디를 고치고, 어떻게 테스트할까? | 중 | 개발 환경 문서 |\n| [Demangling 심화 가이드](2026-04-04-demangling-deep-dive.md) | 심볼, ABI, 런타임 표현에 관심 있는 기여자 | 맹글링/디맹글링은 어떻게 동작하고 어디서 검증할까? | 중 | 개발 환경 문서 |\n\n### 튜토리얼 문서\n\n| 문서 | 역할 | 산출물 |\n|---|---|---|\n| [tutorials/courses/00-swift-compiler-first-contribution-track.md](tutorials/courses/00-swift-compiler-first-contribution-track.md) | Swift 개발자에서 첫 컴파일러 기여까지 가는 단일 핵심 코스 | 빌드→테스트→관찰→작은 수정→PR 준비 |\n| [tutorials/README.md](tutorials/README.md) | 튜토리얼 허브와 추천 순서 | 개인 학습 진입점 |\n| [tutorials/00-curriculum-and-method.md](tutorials/00-curriculum-and-method.md) | 학습법, 복습 루프, 연구 기반 설계 원칙 | 학습 로그와 주간 계획 |\n| [tutorials/01-build-environment-lab.md](tutorials/01-build-environment-lab.md) | 빌드 환경 실습 | 첫 빌드/첫 증분 빌드/첫 테스트 |\n| [tutorials/02-debugging-environment-lab.md](tutorials/02-debugging-environment-lab.md) | AST/SIL/IR/LLDB 관찰 루프 실습 | 디버깅 명령 세트 |\n| [tutorials/03-pipeline-entrypoints-and-knowledge-map.md](tutorials/03-pipeline-entrypoints-and-knowledge-map.md) | 단계별 진입점과 지식 지도 | 단계-파일-문서 매핑 |\n| [tutorials/04-stage-modification-workflow.md](tutorials/04-stage-modification-workflow.md) | 재현 → 수정 → 검증 공통 절차 | 수정 체크리스트 |\n| [tutorials/06-good-first-issues-swift-6.0-6.3.md](tutorials/06-good-first-issues-swift-6.0-6.3.md) | Swift 6.0~6.3 `good first issue` 학습 코스 | open issue 기반 실전 진입 |\n| [tutorials/07-open-issue-analysis-workbook.md](tutorials/07-open-issue-analysis-workbook.md) | open issue 분석 워크북 | 분석 로그와 가설 훈련 |\n| [tutorials/good-first-issues/README.md](tutorials/good-first-issues/README.md) | open `good first issue` 카드 허브 | 버전별 짧은 실전 과제 |\n| [tutorials/courses/README.md](tutorials/courses/README.md) | 장기 학습 코스 허브 | diagnostics / optimizer / compiler core 30일 코스 |\n| [tutorials/case-studies/README.md](tutorials/case-studies/README.md) | 사례 카탈로그와 백로그 | 다음 사례 선택과 난이도 조절 |\n| [tutorials/case-studies/cards/](tutorials/case-studies/cards/) | 많은 사례를 빠르게 탐색하는 case card 모음 | 넓은 사례 학습 |\n| [tutorials/case-studies/](tutorials/case-studies/) | 부모 커밋에서 merged fix를 다시 구현하는 사례 실습 | 사례별 worktree 실습 기록 |\n\n---\n\n## 추천 학습 트랙\n\n### 1) 입문자 트랙\n처음 기여를 준비한다면 이 순서가 가장 안전합니다.\n\n1. [개발 환경 문서](2026-04-04-swift-compiler-dev-environment.md)의 빠른 시작으로 빌드/테스트 루프 확보\n2. [기여자 학습 가이드](2026-04-04-swift-compiler-contributor-learning-guide.md)로 전체 파이프라인과 학습 순서 파악\n3. 이후 관심 분야에 따라 SIL 또는 Demangling 문서로 진입\n\n### 1-보강) 연구 기반 튜토리얼 트랙\n읽기만 하지 않고, 실제로 학습 루프를 설계하며 따라가고 싶다면 이 순서가 가장 좋습니다.\n\n1. [tutorials/README.md](tutorials/README.md)\n2. [tutorials/00-curriculum-and-method.md](tutorials/00-curriculum-and-method.md)\n3. [tutorials/01-build-environment-lab.md](tutorials/01-build-environment-lab.md)\n4. [tutorials/02-debugging-environment-lab.md](tutorials/02-debugging-environment-lab.md)\n5. [tutorials/03-pipeline-entrypoints-and-knowledge-map.md](tutorials/03-pipeline-entrypoints-and-knowledge-map.md)\n6. [tutorials/04-stage-modification-workflow.md](tutorials/04-stage-modification-workflow.md)\n7. [tutorials/06-good-first-issues-swift-6.0-6.3.md](tutorials/06-good-first-issues-swift-6.0-6.3.md)로 open issue 코스를 섞어 본다\n8. [tutorials/07-open-issue-analysis-workbook.md](tutorials/07-open-issue-analysis-workbook.md)로 실제 issue 분석 로그를 남긴다\n9. full tutorial 5개를 순서대로 진행하거나, `tutorials/case-studies/cards/`와 `tutorials/good-first-issues/cards/`에서 짧은 사례를 병행\n\n### 2) SIL 트랙\nSILOptimizer, SILGen, Ownership SSA, 검증기 흐름을 이해하려면 이 순서가 좋습니다.\n\n1. [개발 환경 문서](2026-04-04-swift-compiler-dev-environment.md)\n2. [SIL 심화 가이드](2026-04-04-sil-deep-dive.md)\n3. [tutorials/02-debugging-environment-lab.md](tutorials/02-debugging-environment-lab.md)\n4. [tutorials/case-studies/02-sil-location-explicitness.md](tutorials/case-studies/02-sil-location-explicitness.md)\n\n### 3) 심볼/ABI 트랙\n심볼 이름, Node Tree, ABI 표기, `swift-demangle` 도구에 관심이 있다면 이 순서로 읽습니다.\n\n1. [개발 환경 문서](2026-04-04-swift-compiler-dev-environment.md)\n2. [Demangling 심화 가이드](2026-04-04-demangling-deep-dive.md)\n3. 필요 시 [SIL 심화 가이드](2026-04-04-sil-deep-dive.md)의 SIL 심볼 예시와 교차 참고\n\n### 4) “이미 고쳐진 이슈를 내가 다시 고쳐보기” 트랙\n실제 수정 사례를 복원하며 배우고 싶다면 아래 순서가 좋습니다.\n\n1. [tutorials/04-stage-modification-workflow.md](tutorials/04-stage-modification-workflow.md)\n2. [tutorials/case-studies/01-sema-fixit-source-locs.md](tutorials/case-studies/01-sema-fixit-source-locs.md)\n3. [tutorials/case-studies/02-sil-location-explicitness.md](tutorials/case-studies/02-sil-location-explicitness.md)\n4. [tutorials/case-studies/03-irgen-fast-existential-casts.md](tutorials/case-studies/03-irgen-fast-existential-casts.md)\n5. [tutorials/case-studies/04-optimizer-cond-fail-pass-architecture.md](tutorials/case-studies/04-optimizer-cond-fail-pass-architecture.md)\n6. [tutorials/case-studies/05-optimizer-enum-tag-comparison-correctness.md](tutorials/case-studies/05-optimizer-enum-tag-comparison-correctness.md)\n\n### 5) “이제 실제 open issue에 들어가기” 트랙\n실제 기여 후보를 단계적으로 경험하고 싶다면 이 순서가 좋습니다.\n\n1. [tutorials/06-good-first-issues-swift-6.0-6.3.md](tutorials/06-good-first-issues-swift-6.0-6.3.md)\n2. diagnostics/fix-it 계열 open issue 1개 선택\n3. [tutorials/04-stage-modification-workflow.md](tutorials/04-stage-modification-workflow.md) 체크리스트로 분석\n4. 관련 case card / full tutorial과 교차 학습\n\n### 6) “30일 루프로 꾸준히 밀어붙이기” 트랙\n문서를 읽는 데서 그치지 않고 실제 학습 프로그램으로 운영하고 싶다면 아래 순서가 좋습니다.\n\n1. [tutorials/courses/30-day-diagnostics-track.md](tutorials/courses/30-day-diagnostics-track.md)\n2. 매일 해당 day의 문서 / 카드 / issue를 수행\n3. [tutorials/open-issue-templates/session-log-template.md](tutorials/open-issue-templates/session-log-template.md)으로 로그 축적\n\n---\n\n## 시간 기준 추천 순서\n\n### 30분\n- 튜토리얼 허브와 `00-curriculum-and-method`\n- 개발 환경 문서의 **빠른 시작**\n- 기여자 학습 가이드의 **빠른 시작 + Layer 1**\n- SIL 또는 Demangling 문서의 **빠른 시작** 중 하나\n\n### 반나절\n- 튜토리얼의 **01 / 02**\n- 개발 환경 문서의 **빌드 / 증분 빌드 / 테스트 / 디버깅** 장\n- 기여자 학습 가이드의 **Phase 1~5**\n- 관심 deep dive 문서 하나의 **빠른 시작 / 코드 지도 / 테스트** 섹션\n\n### 1주\n- 튜토리얼 **00~04 + 사례 1개 이상**\n- 개발 환경 문서 전체\n- 기여자 학습 가이드 전체\n- SIL 또는 Demangling 문서 하나를 끝까지 정독\n- 나머지 deep dive 문서는 필요한 섹션만 선택해서 읽기\n\n---\n\n## 문서 운영 규칙\n\n새 문서를 추가하거나 기존 문서를 크게 확장할 때는 아래 원칙을 유지합니다.\n\n1. **파일명 규칙**: `YYYY-MM-DD-topic.md`\n2. **문서 구조 규칙**: 가능하면 `대상 / 목표 / 전제 → 빠른 시작 → Layer 1/2/3` 흐름 유지\n3. **공통 설명 집중화**: 빌드/테스트/디버깅의 공통 설명은 가능한 한 개발 환경 문서에 모으고, deep dive 문서에서는 링크로 참조\n4. **README 동기화**: 새 문서를 추가하면 이 README의 `문서 지도`와 `추천 학습 트랙`도 함께 갱신\n5. **중복 최소화**: 같은 명령/배경 설명을 여러 문서에 길게 반복하지 않고, 각 문서는 자기 주제의 핵심 의사결정에 집중\n6. **튜토리얼 분리 원칙**: 설명형 레퍼런스와 실습형 튜토리얼을 한 문서에 과도하게 섞지 않음\n7. **연구 기반 명시**: 튜토리얼 문서는 가능하면 학습 설계 근거를 짧게 남기고, 자세한 근거는 `tutorials/00-curriculum-and-method.md`에 집중\n\n---\n\n## 현재 추천 시작점\n\n- **무조건 한 문서만 먼저 읽어야 한다면**: [Swift 컴파일러 개발 환경 완전 정복](2026-04-04-swift-compiler-dev-environment.md)\n- **실습형으로 시작하고 싶다면**: [tutorials/README.md](tutorials/README.md)\n- **처음 기여까지 가장 빨리 가고 싶다면**: 개발 환경 → 기여자 학습 가이드\n- **기술적으로 가장 먼저 깊게 파고들 주제를 고른다면**: SIL 또는 Demangling 중 하나만 먼저 선택\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foozoofrog%2Fyoda","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foozoofrog%2Fyoda","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foozoofrog%2Fyoda/lists"}