Ruby 3.5.0-preview1의 주요 변경 사항 중 하나는 유니코드 버전이 15.1.0으로 업데이트되었다는 점입니다. 이는 String
및 Regexp
클래스에도 적용되어 최신 문자 및 이모지 표준을 지원합니다. 언어적인 측면에서는 nil
이 더 이상 nil.to_a
를 호출하지 않도록 변경되었는데, 이는 **nil
이 nil.to_hash
를 호출하지 않는 것과 유사한 일관성을 제공합니다.
핵심 클래스 업데이트로는 Binding
클래스에 중요한 변화가 있습니다. Binding#local_variables
는 더 이상 번호가 매겨진 매개변수(numbered parameters)를 포함하지 않으며, Binding#local_variable_get
및 Binding#local_variable_set
또한 번호가 매겨진 매개변수를 처리하지 않도록 변경되었습니다. 이는 코드의 예측 가능성을 높이고 잠재적인 혼동을 줄이는 데 기여할 것입니다. 또한, IO.select
메서드는 타임아웃 인수로 Float::INFINITY
를 허용하게 되어 무한 대기를 더욱 명시적으로 처리할 수 있게 되었습니다.
표준 라이브러리 역시 여러 가지 주목할 만한 업데이트가 이루어졌습니다. ostruct
0.6.1, pstore
0.2.0, benchmark
0.4.0, logger
1.7.0, rdoc
6.13.1, win32ole
1.9.2, irb
1.15.2, reline
0.6.1, readline
0.0.4, fiddle
1.1.6 등 다양한 라이브러리가 최신 버전으로 업데이트되어 전반적인 안정성과 성능이 향상되었습니다. 이번 릴리스에서는 Ruby 3.4.0 이후 총 2065개의 파일이 변경되었으며, 36581줄이 추가되고 203037줄이 삭제되는 등 상당한 규모의 코드 변경이 있었습니다. 이는 단순한 버그 수정뿐만 아니라, 언어의 핵심적인 개선과 최적화 작업이 광범위하게 이루어졌음을 시사합니다.