mruby/c 3.3 をリリースしました
2024年04月09日
mruby/c 3.3 をリリースしました| mruby/c 3.3 has been released
日本語の後に英語が続きます| English follows after Japanese
mruby/c 3.3を公開しました。
mruby/c 3.3では、新たにTaskクラスが加わります。
mruby/cは、mrubyバイトコードの Virtual machine (VM) であると同時に、複数のmrubyプログラム (mrubyバイトコード) を複数同時実行するためのスケジューラを含んでいます。これは、mruby(組込み向け軽量Ruby) には備わっていない mruby/c 独自の特徴となっています。今回、この仕組みをRubyの実行時に操作できるTaskクラスを整備しました。
mruby/c 3.3リリースに関する詳細を以下のとおり紹介します。
Taskクラスの追加
- C言語で記述されているスケジューラの機能を、Rubyプログラムから扱える機能を追加・整備しました。
- Taskクラスの活用によって、タスクの実行の優先順位を変えたり、他のタスクの実行を待ち合わせるのが簡単にできるようになりました。
- mruby/c Taskクラスの設計と実装の意図、用途とサンプルプログラムは、mruby/c開発者の東研究員による以下の技術レポートを参照ください:
https://qiita.com/HirohitoHigashi/items/5399d952fed2ad00c3b6
HALのフォルダ変更
- HAL (Hardware Abstraction Layer) フォルダを、VMソースコード(src) 下から独立させました。
- これにより Eclipseベースの IDE などでの利用が、より簡単になります。
- 変更後のHALフォルダ:https://github.com/mrubyc/mrubyc/tree/master/hal
主な変更点
- 例外を起こしたメソッドとコール順を表示できるようになり、デバッグがより便利になりました。
- initialize メソッドに、ブロックを渡せるようになりました。
- 定数の検索ルールに関して、CRuby,mruby との互換性を向上させました。
- super メソッドの動作に関して、CRuby,mruby との互換性を向上させました。
- String#upcase, #downcase, Mutex#locked?, #owned? メソッドを追加しました。
- その他、様々なバグを修正しました。
その他のトピック
- GitHubリポジトリで行われている自動テストを、ローカル環境でも実行できます。テストの方法については、「How to run tests?」にまとめられています。
- mruby/c 3.3 で実装されているクラス・ライブラリの一覧を「クラス・ライブラリ一覧」に示しています。
ダウンロード
https://github.com/mrubyc/mrubyc/releases/tag/release3.3
mruby/c 3.3のリリースにおいて、バグフィックスと改良に取り組んでいただいた全てのコントリビュータに感謝します。
mruby/cについて
mruby/cはRubyの特徴を引き継ぎつつ、プログラム実行時に必要なメモリ消費量がmruby(組込み向け軽量Ruby)より少ないソフトウェアの開発言語です。小さなワンチップマイコンでも動作するように開発しており、センサーネットワークやウェアラブルデバイスなどの小型端末向けソフトウェア開発に適しています。mruby/cは、しまねソフト研究開発センターと国立大学法人九州工業大学(田中和明准教授)で共同研究開発を行っています。
詳細はこちらのページをご覧ください。
お問い合わせ先
しまねソフト研究開発センター
Phone:0852-61-2225
Email:itoc@s-itoc.jp
mruby/c 3.3 released
mruby/c 3.3 has been released.
mruby/c is an mruby-bytecode virtual machine, It includes a scheduler to run multiple mruby-programs concurrently. It is a feature unique to mruby/c that mruby does not have.This scheduler added Task class that can be manipulated at Ruby runtime.
Refer to the following for detailed changes:
Add Task class
- Add Task class for supporting mruby/c tasks
- You can read more about the Task class and sample programs for how to apply at https://qiita.com/HirohitoHigashi/items/5399d952fed2ad00c3b6
*This page is only available in Japanese.
Change HAL folder place
- Change HAL folder place, which includes hardware dependent functions at https://github.com/mrubyc/mrubyc/tree/master/hal
Notable changes
- Support block passing to class initializer
- mruby-compliant constant search mechanism
- mruby-compliant super method calls
- Add class methods, String#upcase, #downcase, Mutex#locked? and #owned?
- Various bug fixes
Note
- Automated testing with GitHub repository can be run for development environments on local machines.The testing procedure is summarized in "How to run tests?".
- Learn to Implement & Used class libraries In mruby/c 3.3, please refer to "List of Class Libraries".
*This page is only available in Japanese.
Download
https://github.com/mrubyc/mrubyc/releases/tag/release3.3
Thanks to the all contributors who helped with this release of mruby/c 3.3.
About mruby/c | Ruby for Single-chip microcontrollers
mruby/c inherits CRuby features while utilizing less memory during program execution compared to mruby. Designed to operate even on small microcontrollers, it is suitable for software development in resource-constrained devices like sensor networks and wearable devices. mruby/c is a collaborative research and development effort between Shimane IT Open-Innovation Center and Kyushu Institute of Technology (Associate Professor Kazuaki Tanaka).
Contact Us
Shimane IT Open-Innovation Center
Phone:0852-61-2225
Email:itoc@s-itoc.jp