Ruby 4.0.0-preview2 출시: 유니코드 17.0.0 업데이트 및 JIT 개선

Ruby 4.0.0 Preview2 Released

작성자
HackerNews
발행일
2025년 11월 17일

핵심 요약

  • 1 Ruby 4.0.0-preview2가 출시되었으며, 유니코드 17.0.0 및 이모지 17.0 지원으로 국제화 기능이 강화되었습니다.
  • 2 `nil` 객체의 `to_a` 호출 중단, `Binding` 객체 개선, `IO.select`의 `Float::INFINITY` 지원 등 언어 및 코어 클래스에 중요한 변경 사항이 적용되었습니다.
  • 3 YJIT에 새로운 통계 및 옵션이 추가되었고, 실험적인 ZJIT 컴파일러가 도입되었으며, 기존 RJIT는 제거되는 등 JIT 컴파일러 생태계에 큰 변화가 있습니다.

도입

2025년 11월 17일, Ruby 4.0.0-preview2가 공식적으로 발표되었습니다. 이번 프리뷰 릴리스는 다가오는 Ruby 4.0의 주요 변경 사항과 개선점을 미리 선보이는 자리로, 특히 유니코드 버전 17.0.0으로의 업데이트를 통해 문자열 및 정규 표현식 처리의 국제화 기능을 대폭 강화했습니다. 또한, JIT 컴파일러 영역에서도 YJIT의 기능 확장과 새로운 실험적 ZJIT의 도입 등 중요한 진전을 이루었습니다.

Ruby 4.0.0-preview2는 언어 자체와 핵심 라이브러리, 그리고 JIT 컴파일러 스택에 걸쳐 다양한 업데이트를 포함합니다. 주요 변경 사항은 다음과 같습니다.

언어 변경 사항

  • nil 객체가 더 이상 nil.to_a를 호출하지 않도록 변경되었습니다. 이는 **nilnil.to_hash를 호출하지 않는 것과 유사한 일관성을 제공합니다. [[Feature #21047]]

코어 클래스 업데이트

  • Binding: `Binding

local_variables가 더 이상 번호 매개변수를 포함하지 않으며, Binding

local_variable_getBinding

local_variable_set`도 번호 매개변수 처리를 거부합니다. [[Bug #21049]]

  • IO: IO.select 메서드가 타임아웃 인수로 Float::INFINITY를 허용하여 무한 대기를 지원합니다. [[Feature #20610]]

  • String: 유니코드 버전이 17.0.0으로, 이모지 버전이 17.0으로 업데이트되었습니다. 이는 Regexp에도 동일하게 적용됩니다. [[Feature #19908]][[Feature #20724]][[Feature #21275]]

표준 라이브러리 업데이트

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 등 다수의 표준 라이브러리가 업데이트되었습니다.

JIT 컴파일러 개선

  • YJIT: ratio_in_yjit는 이제 --enable-yjit=stats로 빌드해야 기본 통계에 포함됩니다. TracePoint에 의해 모든 코드가 무효화될 때 증가하는 invalidate_everything 통계가 추가되었습니다. RubyVM::YJIT.enablemem_size:call_threshold: 옵션이 추가되었습니다.

  • ZJIT: 실험적인 메서드 기반 JIT 컴파일러인 ZJIT가 도입되었습니다. --enable-zjit 옵션으로 활성화할 수 있으나, 현재 Ruby 4.0.0-preview2 버전에서는 대부분의 벤치마크에서 속도 향상을 기대하기 어려우므로, 정식 릴리스까지 성능 평가는 자제해 주십시오.

  • RJIT: --rjit 옵션이 제거되었으며, 해당 구현은 ruby/rjit 저장소로 이전될 예정입니다.

Ruby 3.4.0 이후 총 3607개의 파일이 변경되었고, 197451줄이 추가되고 285607줄이 삭제되는 대규모 업데이트가 이루어졌습니다.

결론

Ruby 4.0.0-preview2는 Ruby 4.0의 중요한 이정표로서, 개발자들에게 새로운 기능과 성능 개선 사항을 미리 경험할 기회를 제공합니다. 특히 유니코드 17.0.0 업데이트는 전 세계 사용자를 위한 애플리케이션 개발에 필수적인 요소이며, JIT 컴파일러의 지속적인 발전은 Ruby의 실행 속도 향상에 크게 기여할 것입니다. 이 프리뷰 릴리스를 통해 개발자들은 다가오는 Ruby 4.0의 안정적인 출시를 위해 호환성 테스트 및 피드백 제공에 적극적으로 참여할 수 있습니다.

댓글 0

로그인이 필요합니다

댓글을 작성하거나 대화에 참여하려면 로그인이 필요합니다.

로그인 하러 가기

아직 댓글이 없습니다

첫 번째 댓글을 작성해보세요!