diff --git a/bin/dune b/bin/dune index a8ab755..010f9ab 100644 --- a/bin/dune +++ b/bin/dune @@ -1,4 +1,4 @@ (executable (name main) - (public_name cool) + (public_name coolc) (libraries coollang)) diff --git a/bin/main.ml b/bin/main.ml index 5aaebe6..73c8d0f 100644 --- a/bin/main.ml +++ b/bin/main.ml @@ -2,13 +2,13 @@ let usage = {|coollang toolchain 사용법: - cool check ... 타입/effect/capability 검사 (import를 따라 모듈 그래프 전체) - cool iface interface 표면과 해시 출력 - cool run typed IR 인터프리터로 실행 - cool tokens 토큰 덤프 (렉서 디버깅) - cool ast 구문 트리 덤프 (파서 디버깅) - cool deps 외부 참조 목록 (모듈의 의존 표면) - cool version 버전 출력 + coolc check ... 타입/effect/capability 검사 (import를 따라 모듈 그래프 전체) + coolc iface interface 표면과 해시 출력 + coolc run typed IR 인터프리터로 실행 + coolc tokens 토큰 덤프 (렉서 디버깅) + coolc ast 구문 트리 덤프 (파서 디버깅) + coolc deps 외부 참조 목록 (모듈의 의존 표면) + coolc version 버전 출력 |} let report_errors errors = diff --git a/docs/thesis.md b/docs/thesis.md index 91f024c..cd3c93a 100644 --- a/docs/thesis.md +++ b/docs/thesis.md @@ -289,8 +289,8 @@ Generics (철학 2에서 파생): - move/affinity 검사, capability use 규칙, affinity 전이 - effect 변수 (effect 다형성) - interface artifact + hash 기반 incremental invalidation -- cool check -- 얇은 typed IR + tree-walking interpreter (cool run 대용) +- coolc check +- 얇은 typed IR + tree-walking interpreter (coolc run 대용) ※ IR을 미루면 non-IR 전제가 스며들어 재작성 됨. 지금, 얇게. ※ effect check가 fast path 예산 안에 드는지가 사활 → 최우선 검증 대상 diff --git a/lib/driver.ml b/lib/driver.ml index e7f6b8b..032a40a 100644 --- a/lib/driver.ml +++ b/lib/driver.ml @@ -1,6 +1,6 @@ (* v0 파이프라인. parse -> name resolution -> type check -> effect/capability check - -> interface artifact + hash -> (cool run 시) 얇은 typed IR -> interpreter + -> interface artifact + hash -> (coolc run 시) 얇은 typed IR -> interpreter 현재 구현된 단계: 어휘 분석, 구문 분석. *) diff --git a/samples/README.md b/samples/README.md index 9a451f9..5c8f15d 100644 --- a/samples/README.md +++ b/samples/README.md @@ -31,7 +31,7 @@ capability를 직접 정의해야 메서드의 effect가 알려지고, 05는 affinity의 뿌리가 capability라 자원 타입을 정의해야 affine임이 유도된다. -01~04, 06, 07은 `cool check`를 통과한다 (exit 0). +01~04, 06, 07은 `coolc check`를 통과한다 (exit 0). 파서는 첫 오류에서 멈춘다(오류 복구 미구현). 타입 검사기는 오류를 전부 모은다.