Crystal 1.22 - 모든 타깃에 네이티브 이벤트 루프 기본 적용, DWARF 처리 개선

1 week ago 28

Crystal 1.22.0은 모든 타깃에서 시스템 셀렉터를 직접 사용하는 네이티브 이벤트 루프를 기본으로 사용하며, libevent는 명시적으로 선택하는 대체 수단으로 남음 DWARF 파서를 전면 개편해 성능과 메모리 사용량을 개선함. 필요할 때 섹션을 탐색하고 인덱스와 역추적 캐시를 활용함 호환성을 깨는 변경으로 표준 출력/오류 쓰기에서 EPIPE가 발생하면 즉시 종료하며, 1.0 이전부터 사용 중단 예정이었던 Process.fork를 제거함 상수 타입 선언과 컴파일 타임 텍스트 처리 기능을 추가하고, HTTP API와 요청 검증 동작을 개선함 aarch64-linux를 Tier 1으로 승격하고 LLVM 23.1/24.0을 지원함. aarch64-windows-msvc용 빌드도 처음 제공함 실행 환경과 이벤트 루프 모든 타깃이 시스템 셀렉터 기반 네이티브 이벤트 루프를 지원하고 기본으로 사용함 Solaris에서 epoll을 활성화함 나머지 BSD 타깃에도 kqueue를 활성화함(#17421, #17420) libevent는 명시적으로 선택해야 사용할 수 있으며, 후속 릴리스에서 사용 중단 예정으로 전환할 계획임 OpenSSL 바인딩의 Kernel TLS 지원을 기본 활성화했으나, 이 변경은 1.22.1에서 되돌렸으며 비활성 상태를 유지함 호환성 변경과 사용 중단 예정 API STDOUT 또는 STDERR에 쓰다가 EPIPE가 발생하면 프로세스가 즉시 종료함(#17335) 기본 SIGPIPE 동작과 유사하며, 기존에는 IO::Error가 발생해 일반적으로 오류 메시지를 출력한 뒤 종료했음 이제 해당 오류 메시지를 출력하지 않으며, STDOUT.exit_on_broken_pipe = false로 이 동작을 끌 수 있음 1.0 이전부터 사용 중단 예정이었던 Process.fork를 제거함(#17367) 다음 기능과 API를 사용 중단 예정으로 지정함 대문자 인스턴스 변수와 클래스 변수가 해당함(#17160) HTTP::Request#local_address와 #remote_address가 해당함(#17260) LLVM::Type#size와 #alignment가 해당함(#17494) 언어와 컴파일 타임 기능 상수에 타입을 선언할 수 있음(#16951) BAR : Int32 = 1, BAZ : String = ""처럼 작성할 수 있음 QUX : Int64 = 123은 정수 리터럴을 Int64로 자동 변환함 컴파일 타임...

Read Entire Article




피플앤툴즈 네트워크
🛍 샵