はじめに
MicroPython/CircuitPython Advent Calendar 2023の1日目は、2023年にリリースされたMicroPyuthonを振り返ります。意外でしたが、今年リリースされたのバージョンは2つだけです。
以下、主な変更点をあげていきます。
v1.20.0
2023年4月26日リリース
- パッケージマネージャとして upip に代えて mip を導入
- mip 導入に伴い、ドライバの多くが micropython-lib に移動
- bytes/memoryview/bytearray への hex/fromhex メソッドの追加
- 辞書結合(PEP 584)のサポート
- networkモジュールにおいて、scan()、connect()、config() のキーワード引数の名前変更 (古いキーワード引数もまだサポート)
- 「essid」→「ssid」
- 「auth」「authmode」→「security」
- 「password」→「key」
- network.hostname() と network.country() 関数追加
- uasyncio.Stream で read(-1) をサポート
- uasyncio.ThreadSafeFlag に clear() メソッド追加
- framebuf モジュールに楕円と多角形の描画メソッドを追加
- framebuf モジュールの rect() に fill 引数を追加
- C言語アプリに MicroPython を組み込むための新しいポート "embed" 追加
- Raspberry Pi Pico W サポート(CYW43xx WiFi ドライバ統合)
v1.21.0
2023年10月6日リリース
- 組込みモジュールのほとんどから "u" 接頭辞を削除
- 圧縮をサポートする新しい deflate モジュール追加
- esp32 ポートのビルド環境が ESP-IDF5 に移行
- Raspberry Pi Pico W での BLE のサポート
- esp8266 と esp32 で ESP-NOW サポート
夜間ビルドのバージョン番号の変更
旧:-unstable-<現リリース番号>-<現リリースからのコミット回数>-g
新:<次期リリース番号>-review.<現リリースからのコミット回数>.g
v2.0開発スタート
公式ドキュメントにMicroPython 2.0 Migration Guideが追加され、v2.0開発が始まったことが示唆されています。GitHubを確認する限りでは、まだv2.0用のコードはほとんど入っていません。
参考:私家版和訳 MicroPython 2.0 移行ガイド
今のところ、変更としてあげられているのは以下3点です。
-
machine モジュールAPIの一貫性向上
個々のボードの事情があるので難しいところはありますが、期待したいところです。特に stm32 系は pyb モジュールのコードの機能をそのまま使っていることが多くてAPI仕様どおりになっていないことがあるので、改善してもらいたいところです。 -
.mpy ファイル をファイルシステムから直接実行
現状は一度RAMにコピーしないと実行できないところを、それをしなくても実行できるようにするとのことです。これにより、コードのデプロイ時間の短縮、メモリのオーバーヘッドと断片化の軽減が期待できます。 -
CPythonとの互換性向上
なんかCircuitPythonが目指している方向性とかぶりますが、どうなりますでしょうか。