zls 0.17.0
ZLS 0.17.0 공개
Zig 언어 서버 ZLS 0.17.0이 공개됐습니다. 심볼 이름 변경 때 별칭을 따라가지 않도록 동작을 조정했으며, Zig 0.17 개발 과정에서 깨진 빌드 시스템 연동 기능 일부는 아직 회귀 문제를 겪고 있습니다.
- 주제
에디터 노트
이번 릴리스의 실질적인 내용은 이름 변경 범위 조정과 Zig 0.17 빌드 시스템 연동 복구입니다. 특히 Windows 파일 감시는 저장 이벤트에 의존하므로 외부 도구가 파일을 바꾼 경우 변경 사항을 놓친다는 조건이 명시돼 있습니다. 타입 해석 문제도 두 종류가 남아 있어, 빌드 설정을 사용하는 개발자는 릴리스 번호만으로 연동이 완전히 복구됐다고 판단하기 어렵습니다. 댓글에서는 별일 없는 릴리스 노트라는 반응과 Zig 0.17 출시 이후 해당 버전용 언어 서버가 없었다는 게시 이유가 맞섭니다. 후자의 설명은 이 릴리스가 필요한 배경을 제시하지만, 남은 회귀 문제를 해소하지는 않습니다. 새 프로토콜이 향후 테스트나 디버깅 도구 연동의 기반이 된다는 설명은 가능성에 관한 전망이며, 이번 버전에서 그런 기능을 제공한다는 뜻은 아닙니다.
AI 요약
ZLS 0.17.0은 Zig 0.17 개발 과정에서 달라진 빌드 시스템 프로토콜에 맞춰 언어 서버를 갱신했습니다. 심볼 이름 변경 동작도 조정해 별칭을 따라가며 이름을 바꾸지 않습니다.
심볼 이름 변경
예제에서 S.foo를 별칭 foo에 대입하면, 별칭 쪽 foo를 이름 변경할 때 함수 선언 fn foo까지 바꾸지 않습니다. 함수 선언의 이름을 바꾸면 기존처럼 선언, 별칭, 호출 등 네 위치가 함께 바뀝니다. 참조 검색도 요청 위치와 관계없이 네 위치를 반환합니다.
빌드 시스템 연동 회귀
Zig 0.17 개발 중 빌더 프로세스와 설정 프로세스를 분리하면서 ZLS의 빌드 시스템 연동 기능에 문제가 생겼습니다. 새 프로토콜을 이용해 대부분 복구했지만 다음 문제는 남아 있으며, 다음 릴리스 주기에 해결할 예정입니다.
build.zig의 패키지 @import 타입 해석이 회귀했습니다. b.addModule로 내보냈지만 컴파일 단계에 연결하지 않은 모듈의 @import도 해석하지 못합니다. Windows에서는 프로토콜의 파일 감시 기능이 깨졌습니다. ZLS는 LSP 저장 이벤트를 받아 이를 보완하지만, 버전 관리 도구 같은 외부 프로그램이 바꾼 파일은 감지하지 못합니다. 이 문제는 zig build --watch CLI 동작에는 영향을 주지 않습니다.
ZLS는 Windows, macOS, Linux, WASI용 바이너리를 제공하며 배포 파일은 minisign으로 서명합니다.
Lobsters 반응
- @vulcan — 이 글을 왜 올렸는지 설명해 주실 수 있나요? 별일 없는 릴리스 노트처럼 보입니다.
- @kdwarn — Zig 0.17은 10월 2일에 출시됐는데, 지금까지 그 버전에 대응하는 언어 서버가 나오지 않았습니다.
원문: ZLS 릴리스 노트 / 번역·요약: Trawling