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-core는mruby-binding으로,mruby-binding은mruby-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개 이상의 다양한 버그가 수정되어 전반적인 안정성이 크게 향상되었습니다.