Ruby 4.0.0은 언어 사양, 내장 클래스, 동시성, JIT 등 광범위한 영역에서 다양한 변경사항을 포함하고 있습니다. 주요 내용은 다음과 같습니다.
언어 및 핵심 기능 개선
-
foo(*nil)의nil.to_a호출 제거 및 논리 이항 연산자의 행 시작 허용으로 언어적 일관성과 가독성이 향상되었습니다. -
`Array
rfind, Math.log1p/expm1 등 유용한 내장 메서드가 추가되었고, Pathname 및 Set` 클래스가 코어 클래스로 승격되어 편의성이 증대되었습니다.
- `Kernel
inspect의 인스턴스 변수 표시 제어 및 error_highlight의 상세한 ArgumentError` 정보 제공으로 디버깅 환경이 개선되었습니다.
동시성 (Ractor) 및 JIT 컴파일러
-
Ractor는Ractor::Port도입으로 통신 메커니즘이 재정비되고Ractor.sharable_proc를 통해 공유 가능한 Proc 생성이 용이해지는 등 안정성과 성능이 크게 향상되었습니다. -
실험적 JIT 컴파일러인
ZJIT가 도입되었으며 (YJIT또한 개선), Rust 1.85.0 이상을 필요로 합니다.
호환성 및 개발 환경
- 보안 문제로 `Kernel
open의 파이프를 이용한 프로세스 생성 기능이 제거되었고, Ractor` 관련 일부 메서드가 삭제되는 등 호환성 변경사항이 존재합니다.
- 백트레이스 표기법 개선 및
IRB의copy명령 추가로 개발 편의성이 향상되었으며, `Class