이번 3.22.0 업데이트는 최신 Ruby 사양 대응과 대대적인 내부 정리 작업을 포함하고 있습니다.
1. 주요 변경 사항 및 EOL 선언
-
프로젝트 종료 예고: ruby_parser의 서비스 종료(End of Life)가 공식적으로 발표되었습니다.
-
최신 버전 대응: Ruby 3.3의 문법적 구조 차이를 좁히는 작업이 진행되었으며, 차기 버전인 Ruby 3.4에 대한 예비 지원이 추가되었습니다.
2. 내부 구조 개선 및 리팩토링
-
할당 로직 재구성: 기존
assignable을old_assignable로 변경하고, 더 깔끔하고 현대적인 방식의 할당 로직을 새롭게 도입했습니다. -
lrama 대응: Ruby의 파서 생성기인 lrama의 변경 사항에 맞춰 비교 rake 태스크와 정규화 과정을 재구조화했습니다.
-
문법 최적화: Ruby 3.2 사양에 가장 가깝게 문법을 업데이트하고 불필요한 프로덕션들을 정리했습니다.
3. 버그 수정 및 코드 클린업
-
엄격한 검증:
STRICT_SEXP=3설정 시 발생하는 오류들을 수정하여 데이터 구조의 일관성을 강화했습니다. -
레거시 제거: 인코딩 관련 등 아주 오래된 호환성 체크 및 패치들을 삭제하여 코드를 경량화했습니다.
-
예외 처리: 모든 구문 오류 발생 시
RubyParser::SyntaxError를 일관되게 발생시키도록 래핑 처리를 완료했습니다.