mrubyc_dev_jp's profile picture. mruby/c unofficial account.

mrubyc-dev-jp

@mrubyc_dev_jp

mruby/c unofficial account.

Array#difference を実装しました。 Array#- も同じ仕様で動作するようにしています。


NaN boxing を限定的にサポートしました。 1変数あたりのRAM使用量を、劇的に(最大50%downとか)下げることができます。 コンパイルオプション -DMRBC_NAN_BOXING を付けて利用し、32bit CPUでのみ動作し、gccとclang で動作確認しています。


ここで公開されていますね。 github.com/gfd-dennou-clu… 講義用の松江高専オリジナルボードを前提にしていると思われますが、オリジンがESP32の機能なので、ほとんどは流用できるのではないかと。

!!!mruby/cでWiFi!!! (cc. @mkuriki_ @n_ohishi

s01's tweet image. !!!mruby/cでWiFi!!! (cc. @mkuriki_ @n_ohishi


温湿度センサーならDHT22 ですかね? データシートを簡単に確認してみましたが出力データが独自形式のようで、確かに簡単ではないですね。 同族の DHT20 なら I2C なので、以下が参考になるかもしれません。 qiita.com/HirohitoHigash…

raspberrypi picoでmruby/cからDH22を動かそうとしてるけど、簡単じゃないな。。 大人しく同人誌に載ってるセンサー買おう。



拾えます。 mrbc_value *val = mrbc_get_const( mrbc_str_to_symid("MRUBYC_VERSION")); mrbc_p( val ); とか。

mruby/cでも、mrbc_get_const()はあるようだが、ruby側で定義した定数をC側から拾えるのだろうか



こっちはたぶん大丈夫🙂

これ、実はオブジェクトの寿命管理が大丈夫なのかよく分かっていない



プルリク、もしくは issueに「こんなの欲しい」とあげていただくと助かります。 GET_* や SET_*_RETURN は、mrbcプレフィクスがついていないことで察することができるかもしれませんが、草創期の簡易なマクロです。本来このような便利機能もあってしかるべきと考えています。

mruby/cのデータの中身拾うのは、なんかもう型チェックに疲れて全く美しくない関数組んじゃいました。 引数に大いに不満がありますw が動くのが正義ということで(あまり型を気にせずにスクリプト組むので利用初期に死にまくりました

nyasu3w2022's tweet image. mruby/cのデータの中身拾うのは、なんかもう型チェックに疲れて全く美しくない関数組んじゃいました。
引数に大いに不満がありますw が動くのが正義ということで(あまり型を気にせずにスクリプト組むので利用初期に死にまくりました
nyasu3w2022's tweet image. mruby/cのデータの中身拾うのは、なんかもう型チェックに疲れて全く美しくない関数組んじゃいました。
引数に大いに不満がありますw が動くのが正義ということで(あまり型を気にせずにスクリプト組むので利用初期に死にまくりました


何回でもcallして大丈夫に作っているはずです。 ただ、そういったケースはまだ無かったので、ちょっと自信がない。。。

mrbc_run_mrblib()は複数回呼んでちゃんと動く模様(呼んで調べたので条件無しかどうかは不明 左2行目はmrubyc-m5のコードなので無視で、3,4行目で2度の呼び出し(もう一回mruby/cが呼んでるはず)

nyasu3w2022's tweet image. mrbc_run_mrblib()は複数回呼んでちゃんと動く模様(呼んで調べたので条件無しかどうかは不明
左2行目はmrubyc-m5のコードなので無視で、3,4行目で2度の呼び出し(もう一回mruby/cが呼んでるはず)
nyasu3w2022's tweet image. mrbc_run_mrblib()は複数回呼んでちゃんと動く模様(呼んで調べたので条件無しかどうかは不明
左2行目はmrubyc-m5のコードなので無視で、3,4行目で2度の呼び出し(もう一回mruby/cが呼んでるはず)


そうです。 マイコンごとに開発環境があり、mruby/c VM は部品に徹することによって、「どんな環境にもするりと入る」を目指しています。今のところ、この戦略はうまくいってる様子。 逆に全部入りだと思って見に来た人は、拍子抜けするかも。もう少し工夫 (document?) が必要ですね。

どうやらmruby/cは公式レポジトリを各自が必要とするフレームワークに自分で縫い付けて利用するもの、そういう世界観らしい(個人のry



String#[] メソッドで、Rangeによる範囲指定をサポートしました。 "abcd"[1..3] とか、できます。


誤解まねく仕様だとは思っているんですけど、関数から戻るのは return 句の仕事だし、mrbc_raise() で例外が起こることを「指示」した後で別の事をしたり、 mrbc_raise(...); // 普通はこの例外だけど if( exp ) mrbc_raise( ... ); // このケースだけは別 のような書きかたもできるので。

mruby/c、mrbc_raise()しても、即座にreturnしなければそのまま後ろのコードが走ってしまうのか。raiseした時点で返ってこないと思っていた NULLチェックしてもそのまま後ろまで走る



旧チェコスロバキア製のPCを見た。出力がPALだからもう動かせないそう。帰り際に「ギフトだ」といって同社製の古い電子部品をもらった。メタルキャンパッケージなんて、一度しか使ったこと無いぞ。レア品だ。 #MFTokyo2024

mrubyc_dev_jp's tweet image. 旧チェコスロバキア製のPCを見た。出力がPALだからもう動かせないそう。帰り際に「ギフトだ」といって同社製の古い電子部品をもらった。メタルキャンパッケージなんて、一度しか使ったこと無いぞ。レア品だ。
 #MFTokyo2024
mrubyc_dev_jp's tweet image. 旧チェコスロバキア製のPCを見た。出力がPALだからもう動かせないそう。帰り際に「ギフトだ」といって同社製の古い電子部品をもらった。メタルキャンパッケージなんて、一度しか使ったこと無いぞ。レア品だ。
 #MFTokyo2024

アセンブラならもっと悪いことができますぜ、旦那。

C言語は悪いことできて最高だな....



Module を使えるようにしました。 module Module1 class Class1 end end obj = Module1::Class1.new とか、できるようになりました。


買ったー。明日読む。

mrubyc_dev_jp's tweet image. 買ったー。明日読む。
mrubyc_dev_jp's tweet image. 買ったー。明日読む。

5年ぶり位にワンライナー以上の Perl を書いているが、ほぼ完全に忘却しているのもあって、変数の種類ごとに記号を使い分けるのがまったく手になじまない。 HashにArray を入れてそれを操作をするのに、 push( @{$hash{$key}}, $val ); とか、書いた後でならなんとなく納得できなくもないが、、、


Taskクラスの試験実装を行いました。 mruby/c の特徴の一つに複数プログラムの同時実行がありますが、Taskクラスを使うと任意のタイミングでタスクを動かしたり停止したりと、一般的なRTOSと同様な事ができるようになります。 qiita.com/HirohitoHigash…

qiita.com

mruby/c タスククラス (Task class) の設計と実装 - Qiita

はじめに mruby/c は、基本的には mruby バイトコードの Virtual machine (VM) ですが、それに加えて複数の mruby プログラム (mruby バイトコード) をプリエンプティブに複数同時実行するためのスケジューラを含んでおり、mruby...


mrubyc-dev-jp 已转帖

多くは無いけれど、切り捨てるほど少なくもないという感覚でいますね。 Hitachi SH, NXP ColdFire などは古い石ですが全然現役な感じがします。


此帐户目前未关注任何人
Loading...

Something went wrong.


Something went wrong.