Skip to content

v1.3.0 — build 도 거절된 프로그램을 짓지 않는다 · 언어 개정 1.3

Latest

Choose a tag to compare

@rubidus-api rubidus-api released this 26 Sep 10:33
· 22 commits to main since this release

Lowent is still under active development, and the language design is still changing. 문법·진단 코드·명령줄 옵션이 예고 없이 바뀔 수 있다.

무엇이 바뀌었나

언어 개정 1.2 → 1.3(깨지는 변경 넷), 도구 결함 둘을 고쳤고, README 를 새로 썼다.

⚠ 깨지는 변경 (언어 1.2 → 1.3)

무엇 이제 어기면
몸이 C 에 있는 extern 블록 선언: unsafe extern proc f do <절>* end 짝 없는 end 는 E-STMT-NODO, 블록에 문장을 적으면 E-FFI-BODY
op 머리의 절 문장처럼 저마다 자기 점으로 닫는다 E-DOT-MISSING (전에는 다음 절 낱말이 앞 절을 대신 닫았다)
filter·any·all 의 판정 op bool 을 내야 한다 E-PIPE-PRED (전에는 0 아닌 수를 참으로 읽었다)
collect into · 내장 map·filter 의 받는 자리가 참 말없이 남은 원소를 버리지 않는다 길이를 알면 E-COLLECT-FULL, 모르면 넘치는 순간 멈춘다

서식기(--fmt)가 새 꼴로 쓴다.

고침

  • lowentc build 가 거절될 프로그램을 짓고 돌렸다. --check 를 건너뛰어 return true .(u8 op) 같은 프로그램도 실행 파일이 되었다.
    이제 짓기 전에 같은 검사를 돌리고, 거절이면 진단을 보이고 종료 코드 2 로 멈춘다(--run·--test 와 같은 문).
  • 0x·0b 만 적은 수가 0 이 되었다. 진법 표시 뒤에는 숫자가 하나 이상 와야 한다 — E-NUM-EMPTY. 0 은 0x0 으로 적는다.
  • trust.find_anchor 가 파일을 못 읽어도 «없다»(ok 0)로 답했다 → error unreadable / error short_workspace.

문서

  • README 를 새로 썼다 — 영어판이 먼저, 한국어판은 README.ko.md. 맨 위에 개발 중 경고.
  • 매뉴얼: 명세·매뉴얼을 현황에 맞게 정리하고, 어려운 장(ch13·17·24·28·29·30·31 등)에 도해를 넣었다.

확인

회귀 시험(golden) 2,065 / 2,065 통과 · 게이트 t3 · VM·네이티브 대조 50,390 건 동일. 알려진 결함 0.

짓기

cd impl && make        # → build/lowentc   (C23 컴파일러와 POSIX 셸만 있으면 된다)
build/lowentc --version   # lowentc 1.3.0