×閉じる
mruby/c|レポート mruby/c

mruby/c 3.2 をリリースしました

2023年05月02日

img_ogp

mruby/c 3.2を公開しました。

mruby/c 3.2では、新たにキーワード引数の機能が加わります。 
キーワード引数は、引数にキーワードを付けて対応する引数を決定する記述方法です。
これにより、引数にキーワードを付けることで、何を意味するものか分かりやすくなるとともに、引数に指定する順序を考慮する必要がなくなります。

また、組込みメソッドを新たに追加しています。併せて、テストケースを追加しています。
そして、mruby/c3.2では、mruby3.2のバイトコードに準拠してアップデートを行っています。

mruby/c3.2リリースに関する詳細を以下のとおり紹介します。

キーワード引数の実装

  • キーワード引数を実装しました(mruby3.2互換、mrubyコンパイラ3.2)
  • キーワード引数を使うと、引数名と値のペアで引数を渡せるようになり、可読性が向上します。
  • キーワード引数を使う場合のメソッド定義の構文は次のとおりになります。
def メソッド名(キーワード引数1: デフォルト値1, キーワード引数2: デフォルト値2)
    # メソッドの実装
end

組込みメソッドの追加

  • Arrayクラスにall?、any?、|(or)、&(and)メソッドを追加しました。
  • Stringクラスにbytes、ljust、rjustメソッドを追加しました。
  • Integerクラスにupto、downtoメソッドを追加しました。
  • IntegerクラスとFloatクラスにclampメソッドを追加しました。

例:

12.clamp(0, 100)         #=> 12
523.clamp(0, 100)        #=> 100
-3.123.clamp(0, 100)     #=> 0


ただし、引数にRangeオブジェクトを渡す記述方法には対応していません:

12.clamp(0..100)         #=> ArgumentError

その他のトピック

  • GitHubリポジトリで行われている自動テストを、ローカル環境でも実行できます。テストの方法については、「How to run tests?」にまとめられています。
  • mruby/c 3.2 で実装されているクラス・ライブラリの一覧を「クラス・ライブラリ一覧」に示しています。

ダウンロード

https://github.com/mrubyc/mrubyc/releases/tag/release3.2

mruby/c 3.2のリリースにおいて、バグフィックスと改良に取り組んでいただいた全てのコントリビューターに感謝します。

mruby/cについて

mruby/cはRubyの特徴を引き継ぎつつ、プログラム実行時に必要なメモリ消費量が従来のmruby(組込み向け軽量Ruby)より少ないソフトウェアの開発言語です。小さなワンチップマイコンでも動作するように開発しており、センサーネットワークやウェアラブルデバイスなどの小型端末向けソフトウェア開発に適しています。mruby/cは、しまねソフト研究開発センターと国立大学法人九州工業大学(田中和明准教授)で共同研究開発を行っています。
詳細はこちらのページをご覧ください。

お問い合わせ先

しまねソフト研究開発センター
Phone:0852-61-2225
Email:itoc@s-itoc.jp

このページのトップへ