컴파일러 API 참조
typeshade 패키지가 내보내는 export를 모두 모았습니다. 커밋 26de7be8의 컴파일러에서 뽑았습니다. 함수, 타입, 인터페이스, 클래스마다 페이지가 하나씩 있습니다.
호스트 애플리케이션과 fn() 빌더가 부르는 쪽입니다. 셰이더를 쓰는 사람은 언어 참조를 보십시오.
- 작성 export 48개
- 셰이더를 쓰는 빌더입니다. 모듈과 함수, 변수, 제어 흐름을 여기 있는 호출로 선언합니다.
- 내장 함수 export 96개
- 셰이더에서 부르는 수학, 벡터, 텍스처 함수입니다. 이름 하나로 두 대상 모두에 나갑니다.
- 값 export 15개
- 리터럴과 타입이 붙은 참조, 그리고 자바스크립트 값을 노드로 바꾸는 생성자입니다.
- 타입 export 85개
- 작성 API에 타입을 붙이는 타입 키와 타입 기술자입니다. 셰이더 값의 형태가 여기서 정해집니다.
- IR export 40개
- 모든 백엔드가 읽는 중간 표현입니다. 노드와 문장과 선언이 들어 있고, 출력은 모두 여기서 나옵니다.
- 레이아웃 export 24개
- 구조체와 바인딩 리소스를 한 번만 선언하는 선언자입니다. 호스트와 두 대상이 같은 선언을 씁니다.
- 출력 export 30개
- WGSL과 GLSL ES 3.00을 쓰는 출력기와 모듈 조각, 그리고 그 앞에서 실행되는 패스입니다.
- 리플렉션 export 26개
- reflect()가 모듈에서 복원해 내는 것들입니다. 바인드 그룹과 바이트 레이아웃, 진입점이 여기 있습니다.
- CPU 오라클 export 10개
- 모듈을 f64로 실행하는 CPU 백엔드입니다. 여기서 나온 값이 GPU 출력을 맞춰 보는 기준이 됩니다.
- 콘솔 export 8개
- 셰이더가 console.log로 남기는 내용입니다. CPU가 전달하는 이벤트와, GPU가 기록한 이벤트를 읽는 디코더가 여기 있습니다.
- 런타임 export 21개
- 프로그램 런타임은 컴파일된 프로그램을 WebGPU에서 실행합니다. 커널 호출이 디바이스에 남겨 두는 배열도 여기 있습니다.
- 진단 export 5개
- 코드가 붙은 오류 클래스와, 출력이 나가기 전에 거치는 검증 단계입니다. 실수는 여기서 걸립니다.
- f64 에뮬레이션 export 10개
- f64가 없는 대상에서 쓰는 배정밀도입니다. f32 레인 두 개에 나눠 담아 계산합니다.
- 배리언트 export 17개
- 기능 축을 모듈 한 계열로 다룹니다. 조합마다 컴파일하고 링크해서 프로그램을 냅니다.
- 백엔드 export 27개
- 백엔드가 지켜야 하는 계약과 기능 모델, 그리고 대상마다 내장 함수를 어떤 이름으로 낼지 정하는 레지스트리입니다.
- 도구 export 20개
- 레지스트리 생성과 의미 비교, 출력 동일성 확인, 크기 측정에 쓰는 도구를 모았습니다.
- 편집기 export 8개
- 편집기가 컴파일러에 묻는 것을 모았습니다. 소스 위치를 주면 진단과 자동 완성, 호버 설명이 나옵니다.