mruby 3.3.0 출시

mruby 3.3.0 released

작성자
Ruby Weekly
발행일
2024년 02월 14일

핵심 요약

  • 1 mruby 3.3.0 안정 버전이 출시되었으며, Docker 빌드 지원, DJGPP 및 Nintendo Wii 등 새로운 플랫폼 지원이 추가되었습니다.
  • 2 C API, 메모리 관리 API, mrbgems 전반에 걸쳐 다양한 기능 개선 및 변경 사항이 적용되어 개발 편의성과 확장성이 향상되었습니다.
  • 3 총 763건의 커밋을 통해 다수의 버그가 수정되고 성능이 최적화되어 더욱 안정적인 mruby 환경을 제공합니다.

도입

mruby 프로젝트는 3.3 시리즈의 첫 번째 안정 버전인 mruby 3.3.0의 출시를 발표했습니다. 이번 릴리스는 mruby 3.2 이후의 광범위한 개선 사항을 담고 있으며, 언어 기능, 빌드 시스템, C API, 그리고 mrbgems에 걸쳐 사용자 경험을 향상시키고 개발자에게 더 많은 유연성을 제공하는 데 중점을 두었습니다. 특히, 새로운 플랫폼 지원과 기존 기능의 안정화에 많은 노력이 기울여졌습니다.

mruby 3.3.0은 개발 편의성, 확장성, 그리고 안정성을 중점적으로 개선했습니다. 주요 변경 사항은 다음과 같습니다.

빌드 시스템 및 플랫폼 확장

  • 빌드 환경: Docker를 이용한 빌드 지원이 추가되어 개발 환경 설정이 간소화되었습니다.

  • 새로운 플랫폼: DJGPP (MS-DOS) 및 Nintendo Wii 지원이 추가되었으며, Android 및 Dreamcast 플랫폼 지원도 향상되었습니다.

  • 테스트 제어: 특정 젬에 대한 테스트를 비활성화할 수 있는 기능이 도입되었습니다.

C API 및 메모리 관리 개선

  • API 유연성: mrb_default_allocf 오버라이드가 가능해졌고, 새로운 에러 핸들링 API가 추가되었습니다.

  • 객체 생성 제어: `Class

allocate` 호출을 금지할 수 있는 기능이 도입되었습니다.

  • 하위 호환성 주의: mrb_open_allocf는 사용 중단될 예정이며, mrb_bug()는 서식 지정을 지원하지 않으므로 대체가 권장됩니다.

mrbgems 기능 확장 및 통합

  • 디버거 기본 포함: default.gembox에 mruby 디버거 mrdb가 추가되어 디버깅 환경이 개선되었습니다.

  • 젬 이름 변경 및 통합: mruby-binding-coremruby-binding으로, mruby-bindingmruby-eval로 통합되어 기존 사용자들의 참조 업데이트가 필요합니다.

  • 주요 젬 기능 확장: mruby-fiber의 C 코드 `Fiber

resume 호출 허용, mruby-io의 파일 시간 및 "x" 모드 옵션 추가, mruby-pack`의 새로운 지시어 지원 등 여러 젬에서 유용한 기능들이 도입되었습니다.

기타 중요 변경 사항 및 버그 수정

  • 빌드 시스템 변경: rake install 작업 확장으로 mruby/bin/의 실행 파일이 심볼릭 링크로 제공되므로, 참조 경로 수정이 필요할 수 있습니다.

  • 내부 함수화: mrb_f_raise()mrb_make_exception()이 내부 함수로 전환되었습니다.

  • 안정성 강화: 3.2.0 버전 이후 763건의 커밋을 통해 50개 이상의 다양한 버그가 수정되어 전반적인 안정성이 크게 향상되었습니다.

결론

mruby 3.3.0 릴리스는 경량 Ruby 구현체로서의 mruby의 발전과 안정성을 다시 한번 입증합니다. 이번 버전은 새로운 플랫폼 지원, 핵심 API 개선, 다양한 mrbgems의 기능 확장, 그리고 수많은 버그 수정을 통해 개발자들에게 더욱 강력하고 신뢰할 수 있는 환경을 제공합니다. 특히, 빌드 시스템의 변화와 특정 API의 사용 중단/변경 사항은 기존 사용자들에게 주의를 요구하지만, 전반적으로 mruby 생태계를 더욱 견고하게 만드는 중요한 이정표가 될 것입니다. 이번 릴리스에 기여한 모든 개발자들에게 깊은 감사를 표합니다.

댓글 0

댓글 작성

0/1000
정중하고 건설적인 댓글을 작성해 주세요.

아직 댓글이 없습니다

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