Crystal 1.22 공개, DWARF 파서 대폭 개선 및 aarch64-linux Tier 1 승격
원제 Crystal 1.22
142 포인트댓글 64

Key Point
Crystal 언어의 성능 개선(특히 디버깅 정보 처리), 플랫폼 확장(ARM 리눅스 공식화), 그리고 HTTP/이벤트 루프 안정성 향상으로 프로덕션 환경에서의 적용성이 강화되었다.
핵심 요약
- Crystal 1.22.0이 공개되었으며 33명의 기여자가 참여한 251개 변경사항을 포함한다.
- STDOUT/STDERR 쓰기 실패 시 SIGPIPE 신호처럼 즉시 종료되도록 변경되었으며, STDOUT.exit_on_broken_pipe = false로 비활성화 가능하다.
- 상수에 타입 선언을 지정할 수 있게 되었다(BAR : Int32 = 1).
- aarch64-linux-gnu과 aarch64-linux-musl이 Tier 2에서 Tier 1 플랫폼으로 승격되었다.
- 1.0 이전부터 deprecated된 Process.fork가 제거되었다.
- 컴파일 타임 텍스트 연산을 위해 StringLiteral#bytesize, NumberLiteral#chr, RangeLiteral#each 매크로가 추가되었다.
- DWARF 파서가 완전히 개편되어 온디맨드 섹션 스캔, 효율적 인덱스 테이블, LRU 캐시를 통해 성능과 메모리 사용량을 개선했으며 DWARF 5 기능을 지원한다.
- HTTP 개선사항으로 #remote_address/#local_address가 Request에서 Context로 이동, HTTP::Headers#merge 추가, 다양한 버그 수정 및 유효성 검사가 포함되었다.
- 모든 플랫폼이 기본 이벤트 루프를 지원하게 되었으며, epoll(Solaris), kqueue(BSD)가 활성화되고 libevent는 선택사항이 되었다.
- Kernel TLS가 OpenSSL 바인딩에서 기본적으로 활성화되었다.
- File.exists?, File::Info의 파일 접근 메서드에 follow_symlinks: false 인자가 추가되었다.
- LLVM 23.1과 24.0을 지원하며, aarch64-windows-msvc 빌드가 처음으로 포함된다.
- Crystal 1.22 빌드에는 1.14 이상의 stage-0 컴파일러가 필요하다.