v0.6 → v0.7 마이그레이션 가이드
v0.6.0(2026-10-26) 에서 동작하던 코드가 v0.7.0 에서 다르게 동작하거나 더 동작하지 않는 지점을 모았다. 전체 변경 목록은 CHANGELOG.md 의 [v0.7.0] 절에 있고, 이 문서는 그중 기존 코드나 사용 방법을 바꿔야 하는 항목만 다룬다.
v0.7 의 언어 변경은 C 의 libc 정도 되는 표준 라이브러리를 KingSejong 코드로 쓸 수 있게 하려고 정한 것이다. 각 결정의 이유와 고르지 않은 안은 표준 라이브러리 수준 언어 준비도 4장에 있다.
1. 새 키워드
중단 과 계속 이 반복 제어 키워드가 되었다. 이 이름을 변수로 쓰던 코드는 이름을 바꿔야 한다. 단, 중단 = 1 처럼 대입문 맨 앞에 쓴 경우는 전처럼 대입으로 읽는다.
i가 1부터 10까지 {
만약 (i == 3) { 계속 } # 다음 회차로
만약 (i == 5) { 중단 } # 반복문을 끝낸다
출력(i) # 1 2 4
}2. 언어 동작
조건은
참/거짓만 받는다.만약·반복조건과 패턴 매칭의when가드에 다른 값이 오면 실행 오류다. v0.6 에서는 변수에 담긴 값을 진리값(0,"",없음은 거짓)으로 판별했다. 비교식으로 고쳐 쓴다.!,그리고,또는는 전처럼 진리값을 쓴다.ksj개수 = 0 # v0.6: 만약 (개수) { ... } → v0.7 에서는 실행 오류 만약 (개수 != 0) { 출력("있음") }정수 연산이 64비트 범위를 넘으면 실행 오류다. v0.6 에서는 조용히 감싸 돌았다(
9223372036854775807 + 1→-9223372036854775808). 해시처럼 감싸 돌기가 의도인 계산은감싸더하기,감싸빼기,감싸곱하기를 쓴다.제곱,정수,반올림,올림,내림,절대값도 결과가 정수 범위를 넘으면 오류다.ksj해시 = 0 해시 = 감싸곱하기(해시, 31) 해시 = 감싸더하기(해시, 104) 출력(해시) # 104반복문은 회차마다 새 범위에서 돈다. 반복 변수와 본문에서 처음 만든 변수는 반복문이 끝나면 없다. v0.6 에서는 실행 중에는 남아 있었다(의미 분석기는 이미 막았다). 반복문 뒤에서 쓸 값은 반복문 앞에 변수를 만들어 대입한다. 본문에서 만든 함수는 이제 그 회차의 값을 잡는다(v0.6 에서는 모두 마지막 값을 봤다).
ksj찾은_위치 = -1 i가 0부터 5 미만 { 만약 (i * i > 8) { 찾은_위치 = i 중단 } } 출력(찾은_위치) # 3이상으로 끝나는 범위 반복문은 거꾸로 센다.i가 10부터 1 이상은 10, 9, ..., 1 을 돈다. v0.6 에서는까지처럼 올라가며 세서 한 번도 돌지 않았고,i가 1부터 3 이상은 1~3 을 돌았지만 이제는 돌지 않는다.배열·딕셔너리의
==는 내용을 비교하고, 정수와 실수는 수의 크기로 비교한다. v0.6 에서는[1] == [1]과1 == 1.0이 거짓이었다. 이 결과에 기대어 분기하던 코드는 결과가 바뀐다.포함([1, 2], 2.0)도 참이 된다.
3. 도구
- VS Code 확장은 VS Code 1.91 이상이 필요하다(v0.6 은 1.75). 확장의 의존성(
vscode-languageclient11)을 보안 패치가 들어간 버전으로 올린 결과다.